sage-team 3.5.3 → 3.7.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 (96) hide show
  1. package/README.md +40 -9
  2. package/dist/cli/commands/setup-claude.d.ts +3 -0
  3. package/dist/cli/commands/setup-claude.d.ts.map +1 -0
  4. package/dist/cli/commands/setup-claude.js +75 -0
  5. package/dist/cli/commands/setup-claude.js.map +1 -0
  6. package/dist/cli/index.d.ts.map +1 -1
  7. package/dist/cli/index.js +3 -1
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/engine/__tests__/ceo-brain.test.js +2 -2
  10. package/dist/engine/__tests__/ceo-brain.test.js.map +1 -1
  11. package/dist/engine/ceo-brain.d.ts +15 -8
  12. package/dist/engine/ceo-brain.d.ts.map +1 -1
  13. package/dist/engine/ceo-brain.js +326 -208
  14. package/dist/engine/ceo-brain.js.map +1 -1
  15. package/dist/engine/orchestrator.d.ts +1 -0
  16. package/dist/engine/orchestrator.d.ts.map +1 -1
  17. package/dist/engine/orchestrator.js +27 -1
  18. package/dist/engine/orchestrator.js.map +1 -1
  19. package/dist/mcp/server.js +1 -1
  20. package/dist/server/index.d.ts.map +1 -1
  21. package/dist/server/index.js +9 -3
  22. package/dist/server/index.js.map +1 -1
  23. package/dist/server/routes/api.d.ts.map +1 -1
  24. package/dist/server/routes/api.js +10 -3
  25. package/dist/server/routes/api.js.map +1 -1
  26. package/dist/state/repositories/agents.js +1 -1
  27. package/dist/state/repositories/agents.js.map +1 -1
  28. package/{src/web/dist/assets/BufferResource-CnEVFTWO.js → dist/web/dist/assets/BufferResource-BGsixSHO.js} +1 -1
  29. package/dist/web/dist/assets/BufferResource-BbpTIQ85.js +185 -0
  30. package/dist/web/dist/assets/BufferResource-BjJe3r2a.js +185 -0
  31. package/dist/web/dist/assets/BufferResource-C7ypptTD.js +185 -0
  32. package/dist/web/dist/assets/BufferResource-CuR0zQl9.js +185 -0
  33. package/dist/web/dist/assets/BufferResource-_EbXUkK9.js +185 -0
  34. package/dist/web/dist/assets/BufferResource-dCF0GA9M.js +185 -0
  35. package/{src/web/dist/assets/CanvasRenderer-DJddxDJS.js → dist/web/dist/assets/CanvasRenderer-BGC-Rjpm.js} +1 -1
  36. package/dist/web/dist/assets/CanvasRenderer-BQ7ScDtX.js +1 -0
  37. package/dist/web/dist/assets/CanvasRenderer-CBkg7qb3.js +1 -0
  38. package/dist/web/dist/assets/CanvasRenderer-CcFmL3Lw.js +1 -0
  39. package/dist/web/dist/assets/CanvasRenderer-CwKoxkGD.js +1 -0
  40. package/dist/web/dist/assets/CanvasRenderer-YM8daXJu.js +1 -0
  41. package/dist/web/dist/assets/CanvasRenderer-yT9JOc5o.js +1 -0
  42. package/{src/web/dist/assets/Filter-DWNM0gBH.js → dist/web/dist/assets/Filter-BzM7i9ln.js} +1 -1
  43. package/dist/web/dist/assets/Filter-CJvSyeWH.js +1 -0
  44. package/dist/web/dist/assets/Filter-CUPFlJF_.js +1 -0
  45. package/dist/web/dist/assets/Filter-D2kh6Lyn.js +1 -0
  46. package/dist/web/dist/assets/Filter-DMjNMMPy.js +1 -0
  47. package/dist/web/dist/assets/Filter-GQK6iqrb.js +1 -0
  48. package/dist/web/dist/assets/Filter-nUtqhIEl.js +1 -0
  49. package/{src/web/dist/assets/RenderTargetSystem-C4fzbyMy.js → dist/web/dist/assets/RenderTargetSystem-B-ekYymr.js} +1 -1
  50. package/dist/web/dist/assets/RenderTargetSystem-BylEtp0F.js +172 -0
  51. package/dist/web/dist/assets/RenderTargetSystem-D2L3KLdt.js +172 -0
  52. package/dist/web/dist/assets/RenderTargetSystem-DNsILH5P.js +172 -0
  53. package/dist/web/dist/assets/RenderTargetSystem-lhfSOVIz.js +172 -0
  54. package/dist/web/dist/assets/RenderTargetSystem-nRg6zEP8.js +172 -0
  55. package/dist/web/dist/assets/RenderTargetSystem-uCCnK3Aw.js +172 -0
  56. package/{src/web/dist/assets/WebGLRenderer-Dl5dddTJ.js → dist/web/dist/assets/WebGLRenderer-BEupTZT-.js} +1 -1
  57. package/dist/web/dist/assets/WebGLRenderer-BJuclWjv.js +156 -0
  58. package/dist/web/dist/assets/WebGLRenderer-BONohh1V.js +156 -0
  59. package/dist/web/dist/assets/WebGLRenderer-Bsr1n0Uu.js +156 -0
  60. package/dist/web/dist/assets/WebGLRenderer-Da_BkFlZ.js +156 -0
  61. package/dist/web/dist/assets/WebGLRenderer-DiL4ivWY.js +156 -0
  62. package/dist/web/dist/assets/WebGLRenderer-DqRhyEby.js +156 -0
  63. package/{src/web/dist/assets/WebGPURenderer-DHzWrTEL.js → dist/web/dist/assets/WebGPURenderer-C0BJNyre.js} +1 -1
  64. package/dist/web/dist/assets/WebGPURenderer-Clrsu_cP.js +41 -0
  65. package/dist/web/dist/assets/WebGPURenderer-DbGOPnSE.js +41 -0
  66. package/dist/web/dist/assets/WebGPURenderer-Ds8VNo2-.js +41 -0
  67. package/dist/web/dist/assets/WebGPURenderer-Du7e_Agz.js +41 -0
  68. package/dist/web/dist/assets/WebGPURenderer-pLgFan3y.js +41 -0
  69. package/dist/web/dist/assets/WebGPURenderer-pd03jK7j.js +41 -0
  70. package/{src/web/dist/assets/browserAll-CrRQwob6.js → dist/web/dist/assets/browserAll-1QqybVac.js} +1 -1
  71. package/dist/web/dist/assets/browserAll-Bd3WFbs9.js +14 -0
  72. package/dist/web/dist/assets/browserAll-Bv-Fa9BT.js +14 -0
  73. package/dist/web/dist/assets/browserAll-C9HRyLf9.js +14 -0
  74. package/dist/web/dist/assets/browserAll-D7SUz7ce.js +14 -0
  75. package/dist/web/dist/assets/browserAll-TAEt2LTG.js +14 -0
  76. package/dist/web/dist/assets/browserAll-d1yltqWP.js +14 -0
  77. package/dist/web/dist/assets/index-BQx3wJPr.css +1 -0
  78. package/dist/web/dist/assets/index-C1XGJE1t.js +298 -0
  79. package/dist/web/dist/assets/index-C6hoHqN5.js +298 -0
  80. package/dist/web/dist/assets/index-CFVD9jMF.js +298 -0
  81. package/dist/web/dist/assets/index-CO3-IuiC.js +298 -0
  82. package/dist/web/dist/assets/index-CRT2SA6d.js +298 -0
  83. package/dist/web/dist/assets/index-CVcQAOB6.css +1 -0
  84. package/dist/web/dist/assets/index-CwYVpEl9.js +298 -0
  85. package/dist/web/dist/assets/index-DBSQsI6C.js +298 -0
  86. package/{src/web/dist/assets/webworkerAll-B9FNurHh.js → dist/web/dist/assets/webworkerAll-B3fxgx9g.js} +1 -1
  87. package/dist/web/dist/assets/webworkerAll-BILg7nF2.js +83 -0
  88. package/dist/web/dist/assets/webworkerAll-C7T1zoFZ.js +83 -0
  89. package/dist/web/dist/assets/webworkerAll-CMt6Ulvh.js +83 -0
  90. package/dist/web/dist/assets/webworkerAll-CREQA0I8.js +83 -0
  91. package/dist/web/dist/assets/webworkerAll-CykNhAo8.js +83 -0
  92. package/dist/web/dist/assets/webworkerAll-WnWYpa5G.js +83 -0
  93. package/{src → dist}/web/dist/index.html +2 -2
  94. package/package.json +2 -3
  95. package/src/web/dist/assets/index-8Qtg1JIx.css +0 -1
  96. package/src/web/dist/assets/index-PrNo7ukG.js +0 -298
@@ -0,0 +1,185 @@
1
+ import{w as U,g,c,u as S,B as _,d as m,E as I,e as p}from"./index-C6hoHqN5.js";const x={name:"local-uniform-bit",vertex:{header:`
2
+
3
+ struct LocalUniforms {
4
+ uTransformMatrix:mat3x3<f32>,
5
+ uColor:vec4<f32>,
6
+ uRound:f32,
7
+ }
8
+
9
+ @group(1) @binding(0) var<uniform> localUniforms : LocalUniforms;
10
+ `,main:`
11
+ vColor *= localUniforms.uColor;
12
+ modelMatrix *= localUniforms.uTransformMatrix;
13
+ `,end:`
14
+ if(localUniforms.uRound == 1)
15
+ {
16
+ vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
17
+ }
18
+ `}},C={...x,vertex:{...x.vertex,header:x.vertex.header.replace("group(1)","group(2)")}},D={name:"local-uniform-bit",vertex:{header:`
19
+
20
+ uniform mat3 uTransformMatrix;
21
+ uniform vec4 uColor;
22
+ uniform float uRound;
23
+ `,main:`
24
+ vColor *= uColor;
25
+ modelMatrix = uTransformMatrix;
26
+ `,end:`
27
+ if(uRound == 1.)
28
+ {
29
+ gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
30
+ }
31
+ `}},O={name:"texture-bit",vertex:{header:`
32
+
33
+ struct TextureUniforms {
34
+ uTextureMatrix:mat3x3<f32>,
35
+ }
36
+
37
+ @group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms;
38
+ `,main:`
39
+ uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;
40
+ `},fragment:{header:`
41
+ @group(2) @binding(0) var uTexture: texture_2d<f32>;
42
+ @group(2) @binding(1) var uSampler: sampler;
43
+
44
+
45
+ `,main:`
46
+ outColor = textureSample(uTexture, uSampler, vUV);
47
+ `}},R={name:"texture-bit",vertex:{header:`
48
+ uniform mat3 uTextureMatrix;
49
+ `,main:`
50
+ uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
51
+ `},fragment:{header:`
52
+ uniform sampler2D uTexture;
53
+
54
+
55
+ `,main:`
56
+ outColor = texture(uTexture, vUV);
57
+ `}};function A(e,t){for(const a in e.attributes){const s=e.attributes[a],r=t[a];r?(s.format??(s.format=r.format),s.offset??(s.offset=r.offset),s.instance??(s.instance=r.instance)):U(`Attribute ${a} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}M(e)}function M(e){const{buffers:t,attributes:a}=e,s={},r={};for(const n in t){const o=t[n];s[o.uid]=0,r[o.uid]=0}for(const n in a){const o=a[n];s[o.buffer.uid]+=g(o.format).stride}for(const n in a){const o=a[n];o.stride??(o.stride=s[o.buffer.uid]),o.start??(o.start=r[o.buffer.uid]),r[o.buffer.uid]+=g(o.format).stride}}const d=[];d[c.NONE]=void 0;d[c.DISABLED]={stencilWriteMask:0,stencilReadMask:0};d[c.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};d[c.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};d[c.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};d[c.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}};class B{constructor(t){this._syncFunctionHash=Object.create(null),this._adaptor=t,this._systemCheck()}_systemCheck(){if(!S())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(t){const a=this.getUniformGroupData(t);t.buffer||(t.buffer=new _({data:new Float32Array(a.layout.size/4),usage:m.UNIFORM|m.COPY_DST}))}getUniformGroupData(t){return this._syncFunctionHash[t._signature]||this._initUniformGroup(t)}_initUniformGroup(t){const a=t._signature;let s=this._syncFunctionHash[a];if(!s){const r=Object.keys(t.uniformStructures).map(l=>t.uniformStructures[l]),n=this._adaptor.createUboElements(r),o=this._generateUboSync(n.uboElements);s=this._syncFunctionHash[a]={layout:n,syncFunction:o}}return this._syncFunctionHash[a]}_generateUboSync(t){return this._adaptor.generateUboSync(t)}syncUniformGroup(t,a,s){const r=this.getUniformGroupData(t);t.buffer||(t.buffer=new _({data:new Float32Array(r.layout.size/4),usage:m.UNIFORM|m.COPY_DST}));let n=null;return a||(a=t.buffer.data,n=t.buffer.dataInt32),s||(s=0),r.syncFunction(t.uniforms,a,n,s),!0}updateUniformGroup(t){if(t.isStatic&&!t._dirtyId)return!1;t._dirtyId=0;const a=this.syncUniformGroup(t);return t.buffer.update(),a}destroy(){this._syncFunctionHash=null}}const h=[{type:"mat3x3<f32>",test:e=>e.value.a!==void 0,ubo:`
58
+ var matrix = uv[name].toArray(true);
59
+ data[offset] = matrix[0];
60
+ data[offset + 1] = matrix[1];
61
+ data[offset + 2] = matrix[2];
62
+ data[offset + 4] = matrix[3];
63
+ data[offset + 5] = matrix[4];
64
+ data[offset + 6] = matrix[5];
65
+ data[offset + 8] = matrix[6];
66
+ data[offset + 9] = matrix[7];
67
+ data[offset + 10] = matrix[8];
68
+ `,uniform:`
69
+ gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));
70
+ `},{type:"vec4<f32>",test:e=>e.type==="vec4<f32>"&&e.size===1&&e.value.width!==void 0,ubo:`
71
+ v = uv[name];
72
+ data[offset] = v.x;
73
+ data[offset + 1] = v.y;
74
+ data[offset + 2] = v.width;
75
+ data[offset + 3] = v.height;
76
+ `,uniform:`
77
+ cv = ud[name].value;
78
+ v = uv[name];
79
+ if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {
80
+ cv[0] = v.x;
81
+ cv[1] = v.y;
82
+ cv[2] = v.width;
83
+ cv[3] = v.height;
84
+ gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);
85
+ }
86
+ `},{type:"vec2<f32>",test:e=>e.type==="vec2<f32>"&&e.size===1&&e.value.x!==void 0,ubo:`
87
+ v = uv[name];
88
+ data[offset] = v.x;
89
+ data[offset + 1] = v.y;
90
+ `,uniform:`
91
+ cv = ud[name].value;
92
+ v = uv[name];
93
+ if (cv[0] !== v.x || cv[1] !== v.y) {
94
+ cv[0] = v.x;
95
+ cv[1] = v.y;
96
+ gl.uniform2f(ud[name].location, v.x, v.y);
97
+ }
98
+ `},{type:"vec4<f32>",test:e=>e.type==="vec4<f32>"&&e.size===1&&e.value.red!==void 0,ubo:`
99
+ v = uv[name];
100
+ data[offset] = v.red;
101
+ data[offset + 1] = v.green;
102
+ data[offset + 2] = v.blue;
103
+ data[offset + 3] = v.alpha;
104
+ `,uniform:`
105
+ cv = ud[name].value;
106
+ v = uv[name];
107
+ if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {
108
+ cv[0] = v.red;
109
+ cv[1] = v.green;
110
+ cv[2] = v.blue;
111
+ cv[3] = v.alpha;
112
+ gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);
113
+ }
114
+ `},{type:"vec3<f32>",test:e=>e.type==="vec3<f32>"&&e.size===1&&e.value.red!==void 0,ubo:`
115
+ v = uv[name];
116
+ data[offset] = v.red;
117
+ data[offset + 1] = v.green;
118
+ data[offset + 2] = v.blue;
119
+ `,uniform:`
120
+ cv = ud[name].value;
121
+ v = uv[name];
122
+ if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {
123
+ cv[0] = v.red;
124
+ cv[1] = v.green;
125
+ cv[2] = v.blue;
126
+ gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
127
+ }
128
+ `}];function k(e,t,a,s){const r=[`
129
+ var v = null;
130
+ var v2 = null;
131
+ var t = 0;
132
+ var index = 0;
133
+ var name = null;
134
+ var arrayOffset = null;
135
+ `];let n=0;for(let l=0;l<e.length;l++){const f=e[l],b=f.data.name;let y=!1,i=0;for(let u=0;u<h.length;u++)if(h[u].test(f.data)){i=f.offset/4,r.push(`name = "${b}";`,`offset += ${i-n};`,h[u][t]||h[u].ubo),y=!0;break}if(!y)if(f.data.size>1)i=f.offset/4,r.push(a(f,i-n));else{const u=s[f.data.type];i=f.offset/4,r.push(`
136
+ v = uv.${b};
137
+ offset += ${i-n};
138
+ ${u};
139
+ `)}n=i}const o=r.join(`
140
+ `);return new Function("uv","data","dataInt32","offset",o)}function v(e,t){return`
141
+ for (let i = 0; i < ${e*t}; i++) {
142
+ data[offset + (((i / ${e})|0) * 4) + (i % ${e})] = v[i];
143
+ }
144
+ `}const F={f32:`
145
+ data[offset] = v;`,i32:`
146
+ dataInt32[offset] = v;`,"vec2<f32>":`
147
+ data[offset] = v[0];
148
+ data[offset + 1] = v[1];`,"vec3<f32>":`
149
+ data[offset] = v[0];
150
+ data[offset + 1] = v[1];
151
+ data[offset + 2] = v[2];`,"vec4<f32>":`
152
+ data[offset] = v[0];
153
+ data[offset + 1] = v[1];
154
+ data[offset + 2] = v[2];
155
+ data[offset + 3] = v[3];`,"vec2<i32>":`
156
+ dataInt32[offset] = v[0];
157
+ dataInt32[offset + 1] = v[1];`,"vec3<i32>":`
158
+ dataInt32[offset] = v[0];
159
+ dataInt32[offset + 1] = v[1];
160
+ dataInt32[offset + 2] = v[2];`,"vec4<i32>":`
161
+ dataInt32[offset] = v[0];
162
+ dataInt32[offset + 1] = v[1];
163
+ dataInt32[offset + 2] = v[2];
164
+ dataInt32[offset + 3] = v[3];`,"mat2x2<f32>":`
165
+ data[offset] = v[0];
166
+ data[offset + 1] = v[1];
167
+ data[offset + 4] = v[2];
168
+ data[offset + 5] = v[3];`,"mat3x3<f32>":`
169
+ data[offset] = v[0];
170
+ data[offset + 1] = v[1];
171
+ data[offset + 2] = v[2];
172
+ data[offset + 4] = v[3];
173
+ data[offset + 5] = v[4];
174
+ data[offset + 6] = v[5];
175
+ data[offset + 8] = v[6];
176
+ data[offset + 9] = v[7];
177
+ data[offset + 10] = v[8];`,"mat4x4<f32>":`
178
+ for (let i = 0; i < 16; i++) {
179
+ data[offset + i] = v[i];
180
+ }`,"mat3x2<f32>":v(3,2),"mat4x2<f32>":v(4,2),"mat2x3<f32>":v(2,3),"mat4x3<f32>":v(4,3),"mat2x4<f32>":v(2,4),"mat3x4<f32>":v(3,4)},w={...F,"mat2x2<f32>":`
181
+ data[offset] = v[0];
182
+ data[offset + 1] = v[1];
183
+ data[offset + 2] = v[2];
184
+ data[offset + 3] = v[3];
185
+ `};class P extends I{constructor({buffer:t,offset:a,size:s}){super(),this.uid=p("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=p("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=t,this.offset=a|0,this.size=s,this.buffer.on("change",this.onBufferChange,this)}onBufferChange(){this._resourceId=p("resource"),this.emit("change",this)}destroy(t=!1){this.destroyed=!0,t&&this.buffer.destroy(),this.emit("change",this),this.buffer=null,this.removeAllListeners()}}export{P as B,d as G,B as U,x as a,F as b,k as c,h as d,A as e,D as f,R as g,C as l,O as t,w as u};
@@ -0,0 +1,185 @@
1
+ import{w as U,g,c,u as S,B as _,d as m,E as I,e as p}from"./index-DBSQsI6C.js";const x={name:"local-uniform-bit",vertex:{header:`
2
+
3
+ struct LocalUniforms {
4
+ uTransformMatrix:mat3x3<f32>,
5
+ uColor:vec4<f32>,
6
+ uRound:f32,
7
+ }
8
+
9
+ @group(1) @binding(0) var<uniform> localUniforms : LocalUniforms;
10
+ `,main:`
11
+ vColor *= localUniforms.uColor;
12
+ modelMatrix *= localUniforms.uTransformMatrix;
13
+ `,end:`
14
+ if(localUniforms.uRound == 1)
15
+ {
16
+ vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
17
+ }
18
+ `}},C={...x,vertex:{...x.vertex,header:x.vertex.header.replace("group(1)","group(2)")}},D={name:"local-uniform-bit",vertex:{header:`
19
+
20
+ uniform mat3 uTransformMatrix;
21
+ uniform vec4 uColor;
22
+ uniform float uRound;
23
+ `,main:`
24
+ vColor *= uColor;
25
+ modelMatrix = uTransformMatrix;
26
+ `,end:`
27
+ if(uRound == 1.)
28
+ {
29
+ gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
30
+ }
31
+ `}},O={name:"texture-bit",vertex:{header:`
32
+
33
+ struct TextureUniforms {
34
+ uTextureMatrix:mat3x3<f32>,
35
+ }
36
+
37
+ @group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms;
38
+ `,main:`
39
+ uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;
40
+ `},fragment:{header:`
41
+ @group(2) @binding(0) var uTexture: texture_2d<f32>;
42
+ @group(2) @binding(1) var uSampler: sampler;
43
+
44
+
45
+ `,main:`
46
+ outColor = textureSample(uTexture, uSampler, vUV);
47
+ `}},R={name:"texture-bit",vertex:{header:`
48
+ uniform mat3 uTextureMatrix;
49
+ `,main:`
50
+ uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
51
+ `},fragment:{header:`
52
+ uniform sampler2D uTexture;
53
+
54
+
55
+ `,main:`
56
+ outColor = texture(uTexture, vUV);
57
+ `}};function A(e,t){for(const a in e.attributes){const s=e.attributes[a],r=t[a];r?(s.format??(s.format=r.format),s.offset??(s.offset=r.offset),s.instance??(s.instance=r.instance)):U(`Attribute ${a} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}M(e)}function M(e){const{buffers:t,attributes:a}=e,s={},r={};for(const n in t){const o=t[n];s[o.uid]=0,r[o.uid]=0}for(const n in a){const o=a[n];s[o.buffer.uid]+=g(o.format).stride}for(const n in a){const o=a[n];o.stride??(o.stride=s[o.buffer.uid]),o.start??(o.start=r[o.buffer.uid]),r[o.buffer.uid]+=g(o.format).stride}}const d=[];d[c.NONE]=void 0;d[c.DISABLED]={stencilWriteMask:0,stencilReadMask:0};d[c.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};d[c.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};d[c.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};d[c.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}};class B{constructor(t){this._syncFunctionHash=Object.create(null),this._adaptor=t,this._systemCheck()}_systemCheck(){if(!S())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(t){const a=this.getUniformGroupData(t);t.buffer||(t.buffer=new _({data:new Float32Array(a.layout.size/4),usage:m.UNIFORM|m.COPY_DST}))}getUniformGroupData(t){return this._syncFunctionHash[t._signature]||this._initUniformGroup(t)}_initUniformGroup(t){const a=t._signature;let s=this._syncFunctionHash[a];if(!s){const r=Object.keys(t.uniformStructures).map(l=>t.uniformStructures[l]),n=this._adaptor.createUboElements(r),o=this._generateUboSync(n.uboElements);s=this._syncFunctionHash[a]={layout:n,syncFunction:o}}return this._syncFunctionHash[a]}_generateUboSync(t){return this._adaptor.generateUboSync(t)}syncUniformGroup(t,a,s){const r=this.getUniformGroupData(t);t.buffer||(t.buffer=new _({data:new Float32Array(r.layout.size/4),usage:m.UNIFORM|m.COPY_DST}));let n=null;return a||(a=t.buffer.data,n=t.buffer.dataInt32),s||(s=0),r.syncFunction(t.uniforms,a,n,s),!0}updateUniformGroup(t){if(t.isStatic&&!t._dirtyId)return!1;t._dirtyId=0;const a=this.syncUniformGroup(t);return t.buffer.update(),a}destroy(){this._syncFunctionHash=null}}const h=[{type:"mat3x3<f32>",test:e=>e.value.a!==void 0,ubo:`
58
+ var matrix = uv[name].toArray(true);
59
+ data[offset] = matrix[0];
60
+ data[offset + 1] = matrix[1];
61
+ data[offset + 2] = matrix[2];
62
+ data[offset + 4] = matrix[3];
63
+ data[offset + 5] = matrix[4];
64
+ data[offset + 6] = matrix[5];
65
+ data[offset + 8] = matrix[6];
66
+ data[offset + 9] = matrix[7];
67
+ data[offset + 10] = matrix[8];
68
+ `,uniform:`
69
+ gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));
70
+ `},{type:"vec4<f32>",test:e=>e.type==="vec4<f32>"&&e.size===1&&e.value.width!==void 0,ubo:`
71
+ v = uv[name];
72
+ data[offset] = v.x;
73
+ data[offset + 1] = v.y;
74
+ data[offset + 2] = v.width;
75
+ data[offset + 3] = v.height;
76
+ `,uniform:`
77
+ cv = ud[name].value;
78
+ v = uv[name];
79
+ if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {
80
+ cv[0] = v.x;
81
+ cv[1] = v.y;
82
+ cv[2] = v.width;
83
+ cv[3] = v.height;
84
+ gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);
85
+ }
86
+ `},{type:"vec2<f32>",test:e=>e.type==="vec2<f32>"&&e.size===1&&e.value.x!==void 0,ubo:`
87
+ v = uv[name];
88
+ data[offset] = v.x;
89
+ data[offset + 1] = v.y;
90
+ `,uniform:`
91
+ cv = ud[name].value;
92
+ v = uv[name];
93
+ if (cv[0] !== v.x || cv[1] !== v.y) {
94
+ cv[0] = v.x;
95
+ cv[1] = v.y;
96
+ gl.uniform2f(ud[name].location, v.x, v.y);
97
+ }
98
+ `},{type:"vec4<f32>",test:e=>e.type==="vec4<f32>"&&e.size===1&&e.value.red!==void 0,ubo:`
99
+ v = uv[name];
100
+ data[offset] = v.red;
101
+ data[offset + 1] = v.green;
102
+ data[offset + 2] = v.blue;
103
+ data[offset + 3] = v.alpha;
104
+ `,uniform:`
105
+ cv = ud[name].value;
106
+ v = uv[name];
107
+ if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {
108
+ cv[0] = v.red;
109
+ cv[1] = v.green;
110
+ cv[2] = v.blue;
111
+ cv[3] = v.alpha;
112
+ gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);
113
+ }
114
+ `},{type:"vec3<f32>",test:e=>e.type==="vec3<f32>"&&e.size===1&&e.value.red!==void 0,ubo:`
115
+ v = uv[name];
116
+ data[offset] = v.red;
117
+ data[offset + 1] = v.green;
118
+ data[offset + 2] = v.blue;
119
+ `,uniform:`
120
+ cv = ud[name].value;
121
+ v = uv[name];
122
+ if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {
123
+ cv[0] = v.red;
124
+ cv[1] = v.green;
125
+ cv[2] = v.blue;
126
+ gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
127
+ }
128
+ `}];function k(e,t,a,s){const r=[`
129
+ var v = null;
130
+ var v2 = null;
131
+ var t = 0;
132
+ var index = 0;
133
+ var name = null;
134
+ var arrayOffset = null;
135
+ `];let n=0;for(let l=0;l<e.length;l++){const f=e[l],b=f.data.name;let y=!1,i=0;for(let u=0;u<h.length;u++)if(h[u].test(f.data)){i=f.offset/4,r.push(`name = "${b}";`,`offset += ${i-n};`,h[u][t]||h[u].ubo),y=!0;break}if(!y)if(f.data.size>1)i=f.offset/4,r.push(a(f,i-n));else{const u=s[f.data.type];i=f.offset/4,r.push(`
136
+ v = uv.${b};
137
+ offset += ${i-n};
138
+ ${u};
139
+ `)}n=i}const o=r.join(`
140
+ `);return new Function("uv","data","dataInt32","offset",o)}function v(e,t){return`
141
+ for (let i = 0; i < ${e*t}; i++) {
142
+ data[offset + (((i / ${e})|0) * 4) + (i % ${e})] = v[i];
143
+ }
144
+ `}const F={f32:`
145
+ data[offset] = v;`,i32:`
146
+ dataInt32[offset] = v;`,"vec2<f32>":`
147
+ data[offset] = v[0];
148
+ data[offset + 1] = v[1];`,"vec3<f32>":`
149
+ data[offset] = v[0];
150
+ data[offset + 1] = v[1];
151
+ data[offset + 2] = v[2];`,"vec4<f32>":`
152
+ data[offset] = v[0];
153
+ data[offset + 1] = v[1];
154
+ data[offset + 2] = v[2];
155
+ data[offset + 3] = v[3];`,"vec2<i32>":`
156
+ dataInt32[offset] = v[0];
157
+ dataInt32[offset + 1] = v[1];`,"vec3<i32>":`
158
+ dataInt32[offset] = v[0];
159
+ dataInt32[offset + 1] = v[1];
160
+ dataInt32[offset + 2] = v[2];`,"vec4<i32>":`
161
+ dataInt32[offset] = v[0];
162
+ dataInt32[offset + 1] = v[1];
163
+ dataInt32[offset + 2] = v[2];
164
+ dataInt32[offset + 3] = v[3];`,"mat2x2<f32>":`
165
+ data[offset] = v[0];
166
+ data[offset + 1] = v[1];
167
+ data[offset + 4] = v[2];
168
+ data[offset + 5] = v[3];`,"mat3x3<f32>":`
169
+ data[offset] = v[0];
170
+ data[offset + 1] = v[1];
171
+ data[offset + 2] = v[2];
172
+ data[offset + 4] = v[3];
173
+ data[offset + 5] = v[4];
174
+ data[offset + 6] = v[5];
175
+ data[offset + 8] = v[6];
176
+ data[offset + 9] = v[7];
177
+ data[offset + 10] = v[8];`,"mat4x4<f32>":`
178
+ for (let i = 0; i < 16; i++) {
179
+ data[offset + i] = v[i];
180
+ }`,"mat3x2<f32>":v(3,2),"mat4x2<f32>":v(4,2),"mat2x3<f32>":v(2,3),"mat4x3<f32>":v(4,3),"mat2x4<f32>":v(2,4),"mat3x4<f32>":v(3,4)},w={...F,"mat2x2<f32>":`
181
+ data[offset] = v[0];
182
+ data[offset + 1] = v[1];
183
+ data[offset + 2] = v[2];
184
+ data[offset + 3] = v[3];
185
+ `};class P extends I{constructor({buffer:t,offset:a,size:s}){super(),this.uid=p("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=p("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=t,this.offset=a|0,this.size=s,this.buffer.on("change",this.onBufferChange,this)}onBufferChange(){this._resourceId=p("resource"),this.emit("change",this)}destroy(t=!1){this.destroyed=!0,t&&this.buffer.destroy(),this.emit("change",this),this.buffer=null,this.removeAllListeners()}}export{P as B,d as G,B as U,x as a,F as b,k as c,h as d,A as e,D as f,R as g,C as l,O as t,w as u};
@@ -0,0 +1,185 @@
1
+ import{w as U,g,c,u as S,B as _,d as m,E as I,e as p}from"./index-CFVD9jMF.js";const x={name:"local-uniform-bit",vertex:{header:`
2
+
3
+ struct LocalUniforms {
4
+ uTransformMatrix:mat3x3<f32>,
5
+ uColor:vec4<f32>,
6
+ uRound:f32,
7
+ }
8
+
9
+ @group(1) @binding(0) var<uniform> localUniforms : LocalUniforms;
10
+ `,main:`
11
+ vColor *= localUniforms.uColor;
12
+ modelMatrix *= localUniforms.uTransformMatrix;
13
+ `,end:`
14
+ if(localUniforms.uRound == 1)
15
+ {
16
+ vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
17
+ }
18
+ `}},C={...x,vertex:{...x.vertex,header:x.vertex.header.replace("group(1)","group(2)")}},D={name:"local-uniform-bit",vertex:{header:`
19
+
20
+ uniform mat3 uTransformMatrix;
21
+ uniform vec4 uColor;
22
+ uniform float uRound;
23
+ `,main:`
24
+ vColor *= uColor;
25
+ modelMatrix = uTransformMatrix;
26
+ `,end:`
27
+ if(uRound == 1.)
28
+ {
29
+ gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
30
+ }
31
+ `}},O={name:"texture-bit",vertex:{header:`
32
+
33
+ struct TextureUniforms {
34
+ uTextureMatrix:mat3x3<f32>,
35
+ }
36
+
37
+ @group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms;
38
+ `,main:`
39
+ uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;
40
+ `},fragment:{header:`
41
+ @group(2) @binding(0) var uTexture: texture_2d<f32>;
42
+ @group(2) @binding(1) var uSampler: sampler;
43
+
44
+
45
+ `,main:`
46
+ outColor = textureSample(uTexture, uSampler, vUV);
47
+ `}},R={name:"texture-bit",vertex:{header:`
48
+ uniform mat3 uTextureMatrix;
49
+ `,main:`
50
+ uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
51
+ `},fragment:{header:`
52
+ uniform sampler2D uTexture;
53
+
54
+
55
+ `,main:`
56
+ outColor = texture(uTexture, vUV);
57
+ `}};function A(e,t){for(const a in e.attributes){const s=e.attributes[a],r=t[a];r?(s.format??(s.format=r.format),s.offset??(s.offset=r.offset),s.instance??(s.instance=r.instance)):U(`Attribute ${a} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}M(e)}function M(e){const{buffers:t,attributes:a}=e,s={},r={};for(const n in t){const o=t[n];s[o.uid]=0,r[o.uid]=0}for(const n in a){const o=a[n];s[o.buffer.uid]+=g(o.format).stride}for(const n in a){const o=a[n];o.stride??(o.stride=s[o.buffer.uid]),o.start??(o.start=r[o.buffer.uid]),r[o.buffer.uid]+=g(o.format).stride}}const d=[];d[c.NONE]=void 0;d[c.DISABLED]={stencilWriteMask:0,stencilReadMask:0};d[c.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};d[c.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};d[c.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};d[c.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}};class B{constructor(t){this._syncFunctionHash=Object.create(null),this._adaptor=t,this._systemCheck()}_systemCheck(){if(!S())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(t){const a=this.getUniformGroupData(t);t.buffer||(t.buffer=new _({data:new Float32Array(a.layout.size/4),usage:m.UNIFORM|m.COPY_DST}))}getUniformGroupData(t){return this._syncFunctionHash[t._signature]||this._initUniformGroup(t)}_initUniformGroup(t){const a=t._signature;let s=this._syncFunctionHash[a];if(!s){const r=Object.keys(t.uniformStructures).map(l=>t.uniformStructures[l]),n=this._adaptor.createUboElements(r),o=this._generateUboSync(n.uboElements);s=this._syncFunctionHash[a]={layout:n,syncFunction:o}}return this._syncFunctionHash[a]}_generateUboSync(t){return this._adaptor.generateUboSync(t)}syncUniformGroup(t,a,s){const r=this.getUniformGroupData(t);t.buffer||(t.buffer=new _({data:new Float32Array(r.layout.size/4),usage:m.UNIFORM|m.COPY_DST}));let n=null;return a||(a=t.buffer.data,n=t.buffer.dataInt32),s||(s=0),r.syncFunction(t.uniforms,a,n,s),!0}updateUniformGroup(t){if(t.isStatic&&!t._dirtyId)return!1;t._dirtyId=0;const a=this.syncUniformGroup(t);return t.buffer.update(),a}destroy(){this._syncFunctionHash=null}}const h=[{type:"mat3x3<f32>",test:e=>e.value.a!==void 0,ubo:`
58
+ var matrix = uv[name].toArray(true);
59
+ data[offset] = matrix[0];
60
+ data[offset + 1] = matrix[1];
61
+ data[offset + 2] = matrix[2];
62
+ data[offset + 4] = matrix[3];
63
+ data[offset + 5] = matrix[4];
64
+ data[offset + 6] = matrix[5];
65
+ data[offset + 8] = matrix[6];
66
+ data[offset + 9] = matrix[7];
67
+ data[offset + 10] = matrix[8];
68
+ `,uniform:`
69
+ gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));
70
+ `},{type:"vec4<f32>",test:e=>e.type==="vec4<f32>"&&e.size===1&&e.value.width!==void 0,ubo:`
71
+ v = uv[name];
72
+ data[offset] = v.x;
73
+ data[offset + 1] = v.y;
74
+ data[offset + 2] = v.width;
75
+ data[offset + 3] = v.height;
76
+ `,uniform:`
77
+ cv = ud[name].value;
78
+ v = uv[name];
79
+ if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {
80
+ cv[0] = v.x;
81
+ cv[1] = v.y;
82
+ cv[2] = v.width;
83
+ cv[3] = v.height;
84
+ gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);
85
+ }
86
+ `},{type:"vec2<f32>",test:e=>e.type==="vec2<f32>"&&e.size===1&&e.value.x!==void 0,ubo:`
87
+ v = uv[name];
88
+ data[offset] = v.x;
89
+ data[offset + 1] = v.y;
90
+ `,uniform:`
91
+ cv = ud[name].value;
92
+ v = uv[name];
93
+ if (cv[0] !== v.x || cv[1] !== v.y) {
94
+ cv[0] = v.x;
95
+ cv[1] = v.y;
96
+ gl.uniform2f(ud[name].location, v.x, v.y);
97
+ }
98
+ `},{type:"vec4<f32>",test:e=>e.type==="vec4<f32>"&&e.size===1&&e.value.red!==void 0,ubo:`
99
+ v = uv[name];
100
+ data[offset] = v.red;
101
+ data[offset + 1] = v.green;
102
+ data[offset + 2] = v.blue;
103
+ data[offset + 3] = v.alpha;
104
+ `,uniform:`
105
+ cv = ud[name].value;
106
+ v = uv[name];
107
+ if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {
108
+ cv[0] = v.red;
109
+ cv[1] = v.green;
110
+ cv[2] = v.blue;
111
+ cv[3] = v.alpha;
112
+ gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);
113
+ }
114
+ `},{type:"vec3<f32>",test:e=>e.type==="vec3<f32>"&&e.size===1&&e.value.red!==void 0,ubo:`
115
+ v = uv[name];
116
+ data[offset] = v.red;
117
+ data[offset + 1] = v.green;
118
+ data[offset + 2] = v.blue;
119
+ `,uniform:`
120
+ cv = ud[name].value;
121
+ v = uv[name];
122
+ if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {
123
+ cv[0] = v.red;
124
+ cv[1] = v.green;
125
+ cv[2] = v.blue;
126
+ gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
127
+ }
128
+ `}];function k(e,t,a,s){const r=[`
129
+ var v = null;
130
+ var v2 = null;
131
+ var t = 0;
132
+ var index = 0;
133
+ var name = null;
134
+ var arrayOffset = null;
135
+ `];let n=0;for(let l=0;l<e.length;l++){const f=e[l],b=f.data.name;let y=!1,i=0;for(let u=0;u<h.length;u++)if(h[u].test(f.data)){i=f.offset/4,r.push(`name = "${b}";`,`offset += ${i-n};`,h[u][t]||h[u].ubo),y=!0;break}if(!y)if(f.data.size>1)i=f.offset/4,r.push(a(f,i-n));else{const u=s[f.data.type];i=f.offset/4,r.push(`
136
+ v = uv.${b};
137
+ offset += ${i-n};
138
+ ${u};
139
+ `)}n=i}const o=r.join(`
140
+ `);return new Function("uv","data","dataInt32","offset",o)}function v(e,t){return`
141
+ for (let i = 0; i < ${e*t}; i++) {
142
+ data[offset + (((i / ${e})|0) * 4) + (i % ${e})] = v[i];
143
+ }
144
+ `}const F={f32:`
145
+ data[offset] = v;`,i32:`
146
+ dataInt32[offset] = v;`,"vec2<f32>":`
147
+ data[offset] = v[0];
148
+ data[offset + 1] = v[1];`,"vec3<f32>":`
149
+ data[offset] = v[0];
150
+ data[offset + 1] = v[1];
151
+ data[offset + 2] = v[2];`,"vec4<f32>":`
152
+ data[offset] = v[0];
153
+ data[offset + 1] = v[1];
154
+ data[offset + 2] = v[2];
155
+ data[offset + 3] = v[3];`,"vec2<i32>":`
156
+ dataInt32[offset] = v[0];
157
+ dataInt32[offset + 1] = v[1];`,"vec3<i32>":`
158
+ dataInt32[offset] = v[0];
159
+ dataInt32[offset + 1] = v[1];
160
+ dataInt32[offset + 2] = v[2];`,"vec4<i32>":`
161
+ dataInt32[offset] = v[0];
162
+ dataInt32[offset + 1] = v[1];
163
+ dataInt32[offset + 2] = v[2];
164
+ dataInt32[offset + 3] = v[3];`,"mat2x2<f32>":`
165
+ data[offset] = v[0];
166
+ data[offset + 1] = v[1];
167
+ data[offset + 4] = v[2];
168
+ data[offset + 5] = v[3];`,"mat3x3<f32>":`
169
+ data[offset] = v[0];
170
+ data[offset + 1] = v[1];
171
+ data[offset + 2] = v[2];
172
+ data[offset + 4] = v[3];
173
+ data[offset + 5] = v[4];
174
+ data[offset + 6] = v[5];
175
+ data[offset + 8] = v[6];
176
+ data[offset + 9] = v[7];
177
+ data[offset + 10] = v[8];`,"mat4x4<f32>":`
178
+ for (let i = 0; i < 16; i++) {
179
+ data[offset + i] = v[i];
180
+ }`,"mat3x2<f32>":v(3,2),"mat4x2<f32>":v(4,2),"mat2x3<f32>":v(2,3),"mat4x3<f32>":v(4,3),"mat2x4<f32>":v(2,4),"mat3x4<f32>":v(3,4)},w={...F,"mat2x2<f32>":`
181
+ data[offset] = v[0];
182
+ data[offset + 1] = v[1];
183
+ data[offset + 2] = v[2];
184
+ data[offset + 3] = v[3];
185
+ `};class P extends I{constructor({buffer:t,offset:a,size:s}){super(),this.uid=p("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=p("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=t,this.offset=a|0,this.size=s,this.buffer.on("change",this.onBufferChange,this)}onBufferChange(){this._resourceId=p("resource"),this.emit("change",this)}destroy(t=!1){this.destroyed=!0,t&&this.buffer.destroy(),this.emit("change",this),this.buffer=null,this.removeAllListeners()}}export{P as B,d as G,B as U,x as a,F as b,k as c,h as d,A as e,D as f,R as g,C as l,O as t,w as u};