@loaders.gl/gltf 4.2.0-alpha.4 → 4.2.0-alpha.6

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 (149) hide show
  1. package/dist/dist.dev.js +1056 -524
  2. package/dist/dist.min.js +9 -0
  3. package/dist/glb-loader.d.ts +2 -2
  4. package/dist/glb-loader.d.ts.map +1 -1
  5. package/dist/glb-loader.js +22 -21
  6. package/dist/glb-writer.d.ts +2 -2
  7. package/dist/glb-writer.d.ts.map +1 -1
  8. package/dist/glb-writer.js +27 -24
  9. package/dist/gltf-loader.d.ts +3 -3
  10. package/dist/gltf-loader.d.ts.map +1 -1
  11. package/dist/gltf-loader.js +31 -36
  12. package/dist/gltf-writer.js +24 -26
  13. package/dist/index.cjs +138 -330
  14. package/dist/index.cjs.map +7 -0
  15. package/dist/index.d.ts +17 -17
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -1
  18. package/dist/lib/api/gltf-extensions.d.ts +2 -2
  19. package/dist/lib/api/gltf-extensions.d.ts.map +1 -1
  20. package/dist/lib/api/gltf-extensions.js +45 -22
  21. package/dist/lib/api/gltf-scenegraph.d.ts +2 -2
  22. package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -1
  23. package/dist/lib/api/gltf-scenegraph.js +565 -438
  24. package/dist/lib/api/normalize-gltf-v1.js +249 -181
  25. package/dist/lib/api/post-process-gltf.d.ts +3 -3
  26. package/dist/lib/api/post-process-gltf.d.ts.map +1 -1
  27. package/dist/lib/api/post-process-gltf.js +378 -340
  28. package/dist/lib/encoders/encode-glb.js +62 -48
  29. package/dist/lib/encoders/encode-gltf.js +24 -10
  30. package/dist/lib/extensions/EXT_mesh_features.d.ts +2 -2
  31. package/dist/lib/extensions/EXT_mesh_features.d.ts.map +1 -1
  32. package/dist/lib/extensions/EXT_mesh_features.js +55 -33
  33. package/dist/lib/extensions/EXT_meshopt_compression.d.ts +2 -2
  34. package/dist/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -1
  35. package/dist/lib/extensions/EXT_meshopt_compression.js +27 -31
  36. package/dist/lib/extensions/EXT_structural_metadata.d.ts +2 -2
  37. package/dist/lib/extensions/EXT_structural_metadata.d.ts.map +1 -1
  38. package/dist/lib/extensions/EXT_structural_metadata.js +434 -230
  39. package/dist/lib/extensions/EXT_texture_webp.d.ts +2 -2
  40. package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -1
  41. package/dist/lib/extensions/EXT_texture_webp.js +24 -17
  42. package/dist/lib/extensions/KHR_binary_gltf.d.ts +1 -1
  43. package/dist/lib/extensions/KHR_binary_gltf.d.ts.map +1 -1
  44. package/dist/lib/extensions/KHR_binary_gltf.js +29 -15
  45. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts +2 -2
  46. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -1
  47. package/dist/lib/extensions/KHR_draco_mesh_compression.js +110 -87
  48. package/dist/lib/extensions/KHR_texture_basisu.d.ts +2 -2
  49. package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -1
  50. package/dist/lib/extensions/KHR_texture_basisu.js +19 -12
  51. package/dist/lib/extensions/KHR_texture_transform.d.ts +2 -2
  52. package/dist/lib/extensions/KHR_texture_transform.d.ts.map +1 -1
  53. package/dist/lib/extensions/KHR_texture_transform.js +188 -156
  54. package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts +2 -2
  55. package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -1
  56. package/dist/lib/extensions/deprecated/EXT_feature_metadata.js +263 -143
  57. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts +1 -1
  58. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts.map +1 -1
  59. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js +44 -32
  60. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts +1 -1
  61. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts.map +1 -1
  62. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +30 -24
  63. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts +1 -1
  64. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -1
  65. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +65 -52
  66. package/dist/lib/extensions/utils/3d-tiles-utils.d.ts +2 -2
  67. package/dist/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -1
  68. package/dist/lib/extensions/utils/3d-tiles-utils.js +298 -181
  69. package/dist/lib/gltf-utils/get-typed-array.d.ts +1 -1
  70. package/dist/lib/gltf-utils/get-typed-array.d.ts.map +1 -1
  71. package/dist/lib/gltf-utils/get-typed-array.js +54 -42
  72. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts +1 -1
  73. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts.map +1 -1
  74. package/dist/lib/gltf-utils/gltf-attribute-utils.js +58 -52
  75. package/dist/lib/gltf-utils/gltf-constants.js +27 -27
  76. package/dist/lib/gltf-utils/gltf-utils.d.ts +1 -1
  77. package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -1
  78. package/dist/lib/gltf-utils/gltf-utils.js +67 -60
  79. package/dist/lib/gltf-utils/resolve-url.js +12 -10
  80. package/dist/lib/parsers/parse-glb.d.ts +1 -1
  81. package/dist/lib/parsers/parse-glb.d.ts.map +1 -1
  82. package/dist/lib/parsers/parse-glb.js +132 -89
  83. package/dist/lib/parsers/parse-gltf.d.ts +3 -3
  84. package/dist/lib/parsers/parse-gltf.d.ts.map +1 -1
  85. package/dist/lib/parsers/parse-gltf.js +155 -126
  86. package/dist/lib/types/glb-types.js +0 -1
  87. package/dist/lib/types/gltf-ext-feature-metadata-schema.d.ts +1 -1
  88. package/dist/lib/types/gltf-ext-feature-metadata-schema.d.ts.map +1 -1
  89. package/dist/lib/types/gltf-ext-feature-metadata-schema.js +0 -1
  90. package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts +1 -1
  91. package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts.map +1 -1
  92. package/dist/lib/types/gltf-ext-mesh-features-schema.js +0 -1
  93. package/dist/lib/types/gltf-ext-structural-metadata-schema.d.ts +1 -1
  94. package/dist/lib/types/gltf-ext-structural-metadata-schema.d.ts.map +1 -1
  95. package/dist/lib/types/gltf-ext-structural-metadata-schema.js +0 -1
  96. package/dist/lib/types/gltf-json-schema.js +2 -1
  97. package/dist/lib/types/gltf-postprocessed-schema.js +2 -1
  98. package/dist/lib/types/gltf-types.d.ts +3 -3
  99. package/dist/lib/types/gltf-types.d.ts.map +1 -1
  100. package/dist/lib/types/gltf-types.js +1 -1
  101. package/dist/lib/utils/assert.js +6 -4
  102. package/dist/lib/utils/version.js +4 -2
  103. package/dist/meshopt/meshopt-decoder.js +86 -67
  104. package/dist/webp/webp.js +28 -19
  105. package/package.json +13 -8
  106. package/src/lib/extensions/KHR_texture_transform.ts +18 -24
  107. package/dist/glb-loader.js.map +0 -1
  108. package/dist/glb-writer.js.map +0 -1
  109. package/dist/gltf-loader.js.map +0 -1
  110. package/dist/gltf-writer.js.map +0 -1
  111. package/dist/index.js.map +0 -1
  112. package/dist/lib/api/gltf-extensions.js.map +0 -1
  113. package/dist/lib/api/gltf-scenegraph.js.map +0 -1
  114. package/dist/lib/api/normalize-gltf-v1.js.map +0 -1
  115. package/dist/lib/api/post-process-gltf.js.map +0 -1
  116. package/dist/lib/encoders/encode-glb.js.map +0 -1
  117. package/dist/lib/encoders/encode-gltf.js.map +0 -1
  118. package/dist/lib/extensions/EXT_mesh_features.js.map +0 -1
  119. package/dist/lib/extensions/EXT_meshopt_compression.js.map +0 -1
  120. package/dist/lib/extensions/EXT_structural_metadata.js.map +0 -1
  121. package/dist/lib/extensions/EXT_texture_webp.js.map +0 -1
  122. package/dist/lib/extensions/KHR_binary_gltf.js.map +0 -1
  123. package/dist/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
  124. package/dist/lib/extensions/KHR_texture_basisu.js.map +0 -1
  125. package/dist/lib/extensions/KHR_texture_transform.js.map +0 -1
  126. package/dist/lib/extensions/deprecated/EXT_feature_metadata.js.map +0 -1
  127. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
  128. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
  129. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
  130. package/dist/lib/extensions/utils/3d-tiles-utils.js.map +0 -1
  131. package/dist/lib/gltf-utils/get-typed-array.js.map +0 -1
  132. package/dist/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
  133. package/dist/lib/gltf-utils/gltf-constants.js.map +0 -1
  134. package/dist/lib/gltf-utils/gltf-utils.js.map +0 -1
  135. package/dist/lib/gltf-utils/resolve-url.js.map +0 -1
  136. package/dist/lib/parsers/parse-glb.js.map +0 -1
  137. package/dist/lib/parsers/parse-gltf.js.map +0 -1
  138. package/dist/lib/types/glb-types.js.map +0 -1
  139. package/dist/lib/types/gltf-ext-feature-metadata-schema.js.map +0 -1
  140. package/dist/lib/types/gltf-ext-mesh-features-schema.js.map +0 -1
  141. package/dist/lib/types/gltf-ext-structural-metadata-schema.js.map +0 -1
  142. package/dist/lib/types/gltf-json-schema.js.map +0 -1
  143. package/dist/lib/types/gltf-postprocessed-schema.js.map +0 -1
  144. package/dist/lib/types/gltf-types.js.map +0 -1
  145. package/dist/lib/utils/assert.js.map +0 -1
  146. package/dist/lib/utils/version.js.map +0 -1
  147. package/dist/meshopt/meshopt-decoder.js.map +0 -1
  148. package/dist/meshopt/meshopt-encoder.ts.disabled +0 -409
  149. package/dist/webp/webp.js.map +0 -1
@@ -1,61 +1,74 @@
1
+ // GLTF EXTENSION: KHR_techniques_webgl
2
+ // https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_techniques_webgl
1
3
  import { GLTFScenegraph } from "../../api/gltf-scenegraph.js";
2
4
  const KHR_TECHNIQUES_WEBGL = 'KHR_techniques_webgl';
3
5
  export const name = KHR_TECHNIQUES_WEBGL;
4
6
  export async function decode(gltfData) {
5
- const gltfScenegraph = new GLTFScenegraph(gltfData);
6
- const {
7
- json
8
- } = gltfScenegraph;
9
- const extension = gltfScenegraph.getExtension(KHR_TECHNIQUES_WEBGL);
10
- if (extension) {
11
- const techniques = resolveTechniques(extension, gltfScenegraph);
12
- for (const material of json.materials || []) {
13
- const materialExtension = gltfScenegraph.getObjectExtension(material, KHR_TECHNIQUES_WEBGL);
14
- if (materialExtension) {
15
- material.technique = Object.assign({}, materialExtension, techniques[materialExtension.technique]);
16
- material.technique.values = resolveValues(material.technique, gltfScenegraph);
17
- }
18
- gltfScenegraph.removeObjectExtension(material, KHR_TECHNIQUES_WEBGL);
7
+ const gltfScenegraph = new GLTFScenegraph(gltfData);
8
+ const { json } = gltfScenegraph;
9
+ const extension = gltfScenegraph.getExtension(KHR_TECHNIQUES_WEBGL);
10
+ if (extension) {
11
+ const techniques = resolveTechniques(extension, gltfScenegraph);
12
+ for (const material of json.materials || []) {
13
+ const materialExtension = gltfScenegraph.getObjectExtension(material, KHR_TECHNIQUES_WEBGL);
14
+ if (materialExtension) {
15
+ // @ts-ignore TODO
16
+ material.technique = Object.assign({}, materialExtension,
17
+ // @ts-ignore
18
+ techniques[materialExtension.technique]);
19
+ // @ts-ignore TODO
20
+ material.technique.values = resolveValues(material.technique, gltfScenegraph);
21
+ }
22
+ gltfScenegraph.removeObjectExtension(material, KHR_TECHNIQUES_WEBGL);
23
+ }
24
+ // Remove the top-level extension
25
+ gltfScenegraph.removeExtension(KHR_TECHNIQUES_WEBGL);
19
26
  }
20
- gltfScenegraph.removeExtension(KHR_TECHNIQUES_WEBGL);
21
- }
22
27
  }
23
- export async function encode(gltfData, options) {}
24
- function resolveTechniques(techniquesExtension, gltfScenegraph) {
25
- const {
26
- programs = [],
27
- shaders = [],
28
- techniques = []
29
- } = techniquesExtension;
30
- const textDecoder = new TextDecoder();
31
- shaders.forEach(shader => {
32
- if (Number.isFinite(shader.bufferView)) {
33
- shader.code = textDecoder.decode(gltfScenegraph.getTypedArrayForBufferView(shader.bufferView));
34
- } else {
35
- throw new Error('KHR_techniques_webgl: no shader code');
36
- }
37
- });
38
- programs.forEach(program => {
39
- program.fragmentShader = shaders[program.fragmentShader];
40
- program.vertexShader = shaders[program.vertexShader];
41
- });
42
- techniques.forEach(technique => {
43
- technique.program = programs[technique.program];
44
- });
45
- return techniques;
28
+ // eslint-disable-next-line
29
+ export async function encode(gltfData, options) {
30
+ // TODO
31
+ }
32
+ function resolveTechniques(techniquesExtension,
33
+ // programs: {[key: string]: any}[],
34
+ // shaders: {[key: string]: any}[],
35
+ // techniques: {[key: string]: any}[]
36
+ gltfScenegraph) {
37
+ const { programs = [], shaders = [], techniques = [] } = techniquesExtension;
38
+ const textDecoder = new TextDecoder();
39
+ shaders.forEach((shader) => {
40
+ if (Number.isFinite(shader.bufferView)) {
41
+ shader.code = textDecoder.decode(gltfScenegraph.getTypedArrayForBufferView(shader.bufferView));
42
+ }
43
+ else {
44
+ // TODO: handle URI shader
45
+ throw new Error('KHR_techniques_webgl: no shader code');
46
+ }
47
+ });
48
+ programs.forEach((program) => {
49
+ program.fragmentShader = shaders[program.fragmentShader];
50
+ program.vertexShader = shaders[program.vertexShader];
51
+ });
52
+ techniques.forEach((technique) => {
53
+ technique.program = programs[technique.program];
54
+ });
55
+ return techniques;
46
56
  }
47
57
  function resolveValues(technique, gltfScenegraph) {
48
- const values = Object.assign({}, technique.values);
49
- Object.keys(technique.uniforms || {}).forEach(uniform => {
50
- if (technique.uniforms[uniform].value && !(uniform in values)) {
51
- values[uniform] = technique.uniforms[uniform].value;
52
- }
53
- });
54
- Object.keys(values).forEach(uniform => {
55
- if (typeof values[uniform] === 'object' && values[uniform].index !== undefined) {
56
- values[uniform].texture = gltfScenegraph.getTexture(values[uniform].index);
57
- }
58
- });
59
- return values;
58
+ const values = Object.assign({}, technique.values);
59
+ // merge values from uniforms
60
+ Object.keys(technique.uniforms || {}).forEach((uniform) => {
61
+ if (technique.uniforms[uniform].value && !(uniform in values)) {
62
+ values[uniform] = technique.uniforms[uniform].value;
63
+ }
64
+ });
65
+ // resolve textures
66
+ Object.keys(values).forEach((uniform) => {
67
+ if (typeof values[uniform] === 'object' && values[uniform].index !== undefined) {
68
+ // Assume this is a texture
69
+ // TODO: find if there are any other types that can be referenced
70
+ values[uniform].texture = gltfScenegraph.getTexture(values[uniform].index);
71
+ }
72
+ });
73
+ return values;
60
74
  }
61
- //# sourceMappingURL=KHR_techniques_webgl.js.map
@@ -6,9 +6,9 @@
6
6
  * * EXT_mesh_features
7
7
  * * EXT_structural_metadata
8
8
  */
9
- import type { GLTFTextureInfoMetadata, GLTFMeshPrimitive } from '../../types/gltf-json-schema';
9
+ import type { GLTFTextureInfoMetadata, GLTFMeshPrimitive } from "../../types/gltf-json-schema.js";
10
10
  import type { BigTypedArray, TypedArray } from '@loaders.gl/schema';
11
- import { GLTFScenegraph } from '../../api/gltf-scenegraph';
11
+ import { GLTFScenegraph } from "../../api/gltf-scenegraph.js";
12
12
  export type NumericComponentType = 'INT8' | 'UINT8' | 'INT16' | 'UINT16' | 'INT32' | 'UINT32' | 'INT64' | 'UINT64' | 'FLOAT32' | 'FLOAT64';
13
13
  export declare function getArrayElementByteSize(attributeType: any, componentType: any): number;
14
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"3d-tiles-utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/extensions/utils/3d-tiles-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAC,uBAAuB,EAAE,iBAAiB,EAAC,MAAM,8BAA8B,CAAC;AAC7F,OAAO,KAAK,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAGlE,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAQzD,MAAM,MAAM,oBAAoB,GAC5B,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAyCd,wBAAgB,uBAAuB,CAAC,aAAa,KAAA,EAAE,aAAa,KAAA,GAAG,MAAM,CAK5E;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,EAC1B,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,EAC7D,gBAAgB,EAAE,MAAM,GACvB,UAAU,GAAG,IAAI,CAsBnB;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,oBAAoB,EACnC,YAAY,GAAE,MAAU,GACvB,aAAa,CAcf;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,uBAAuB,EACpC,SAAS,EAAE,iBAAiB,GAC3B,MAAM,EAAE,CA6CV;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,iBAAiB,GAC3B,IAAI,CAkCN;AAsFD;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,aAAa,EACzB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,UAAU,EACxB,qBAAqB,EAAE,MAAM,EAC7B,SAAS,EAAE,MAAM,GAChB,aAAa,EAAE,CAajB;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,aAAa,EACzB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GACjB,aAAa,EAAE,CAOjB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,UAAU,EAC3B,YAAY,EAAE,UAAU,GAAG,IAAI,EAC/B,aAAa,EAAE,UAAU,GAAG,IAAI,GAC/B,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CA0BvB"}
1
+ {"version":3,"file":"3d-tiles-utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/extensions/utils/3d-tiles-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAC,uBAAuB,EAAE,iBAAiB,EAAC,wCAAqC;AAC7F,OAAO,KAAK,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAGlE,OAAO,EAAC,cAAc,EAAC,qCAAkC;AAQzD,MAAM,MAAM,oBAAoB,GAC5B,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAyCd,wBAAgB,uBAAuB,CAAC,aAAa,KAAA,EAAE,aAAa,KAAA,GAAG,MAAM,CAK5E;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,EAC1B,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,EAC7D,gBAAgB,EAAE,MAAM,GACvB,UAAU,GAAG,IAAI,CAsBnB;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,oBAAoB,EACnC,YAAY,GAAE,MAAU,GACvB,aAAa,CAcf;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,uBAAuB,EACpC,SAAS,EAAE,iBAAiB,GAC3B,MAAM,EAAE,CA6CV;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,iBAAiB,GAC3B,IAAI,CAkCN;AAsFD;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,aAAa,EACzB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,UAAU,EACxB,qBAAqB,EAAE,MAAM,EAC7B,SAAS,EAAE,MAAM,GAChB,aAAa,EAAE,CAajB;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,aAAa,EACzB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GACjB,aAAa,EAAE,CAOjB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,UAAU,EAC3B,YAAY,EAAE,UAAU,GAAG,IAAI,EAC/B,aAAa,EAAE,UAAU,GAAG,IAAI,GAC/B,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CA0BvB"}