typegpu 0.4.4 → 0.4.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.
- package/{attributes-Cfiq6vud.d.ts → attributes-B4JpvOTz.d.ts} +1 -1
- package/{attributes-B5bhZAAK.d.cts → attributes-DSOqT8yA.d.cts} +1 -1
- package/chunk-7S2KQX6O.js +4 -0
- package/chunk-7S2KQX6O.js.map +1 -0
- package/chunk-JSF3RDCP.js +2 -0
- package/chunk-JSF3RDCP.js.map +1 -0
- package/chunk-TLEBUZ6A.cjs +4 -0
- package/{chunk-7X4KDNDZ.cjs.map → chunk-TLEBUZ6A.cjs.map} +1 -1
- package/chunk-WVFPBCIE.cjs +2 -0
- package/chunk-WVFPBCIE.cjs.map +1 -0
- package/data/index.cjs +1 -1
- package/data/index.cjs.map +1 -1
- package/data/index.d.cts +10 -5
- package/data/index.d.ts +10 -5
- package/data/index.js +1 -1
- package/index.cjs +13 -11
- package/index.cjs.map +1 -1
- package/index.d.cts +10 -7
- package/index.d.ts +10 -7
- package/index.js +13 -11
- package/index.js.map +1 -1
- package/package.json +2 -2
- package/std/index.cjs +1 -1
- package/std/index.cjs.map +1 -1
- package/std/index.d.cts +20 -2
- package/std/index.d.ts +20 -2
- package/std/index.js +1 -1
- package/std/index.js.map +1 -1
- package/{wgslTypes-DgaoTc4M.d.ts → wgslTypes-VtSRoe90.d.cts} +90 -6
- package/{wgslTypes-DgaoTc4M.d.cts → wgslTypes-VtSRoe90.d.ts} +90 -6
- package/chunk-7X4KDNDZ.cjs +0 -4
- package/chunk-C6C35PDM.cjs +0 -2
- package/chunk-C6C35PDM.cjs.map +0 -1
- package/chunk-ZHXAQ2YE.js +0 -4
- package/chunk-ZHXAQ2YE.js.map +0 -1
- package/chunk-ZJMGYM7L.js +0 -2
- package/chunk-ZJMGYM7L.js.map +0 -1
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "typegpu",
|
3
3
|
"private": false,
|
4
|
-
"version": "0.4.
|
4
|
+
"version": "0.4.5",
|
5
5
|
"description": "A thin layer between JS and WebGPU/WGSL that improves development experience and allows for faster iteration.",
|
6
6
|
"license": "MIT",
|
7
7
|
"type": "module",
|
@@ -49,7 +49,7 @@
|
|
49
49
|
},
|
50
50
|
"homepage": "https://typegpu.com",
|
51
51
|
"dependencies": {
|
52
|
-
"tinyest": "~0.1.0-alpha.
|
52
|
+
"tinyest": "~0.1.0-alpha.3",
|
53
53
|
"typed-binary": "^4.3.1"
|
54
54
|
},
|
55
55
|
"main": "./index.js",
|
package/std/index.cjs
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7X4KDNDZcjs = require('../chunk-7X4KDNDZ.cjs');var z=s=>Math.sqrt(s.x**2+s.y**2),M=s=>Math.sqrt(s.x**2+s.y**2+s.z**2),T=s=>Math.sqrt(s.x**2+s.y**2+s.z**2+s.w**2),d=(s,t)=>s.x*t.x+s.y*t.y,p=(s,t)=>s.x*t.x+s.y*t.y+s.z*t.z,k=(s,t)=>s.x*t.x+s.y*t.y+s.z*t.z+s.w*t.w,e=(s,t,n)=>Math.min(Math.max(t,s),n),l={abs:{vec2f:s=>_chunk7X4KDNDZcjs.n.call(void 0, Math.abs(s.x),Math.abs(s.y)),vec2h:s=>_chunk7X4KDNDZcjs.o.call(void 0, Math.abs(s.x),Math.abs(s.y)),vec2i:s=>_chunk7X4KDNDZcjs.p.call(void 0, Math.abs(s.x),Math.abs(s.y)),vec2u:s=>_chunk7X4KDNDZcjs.q.call(void 0, Math.abs(s.x),Math.abs(s.y)),vec3f:s=>_chunk7X4KDNDZcjs.r.call(void 0, Math.abs(s.x),Math.abs(s.y),Math.abs(s.z)),vec3h:s=>_chunk7X4KDNDZcjs.s.call(void 0, Math.abs(s.x),Math.abs(s.y),Math.abs(s.z)),vec3i:s=>_chunk7X4KDNDZcjs.t.call(void 0, Math.abs(s.x),Math.abs(s.y),Math.abs(s.z)),vec3u:s=>_chunk7X4KDNDZcjs.u.call(void 0, Math.abs(s.x),Math.abs(s.y),Math.abs(s.z)),vec4f:s=>_chunk7X4KDNDZcjs.v.call(void 0, Math.abs(s.x),Math.abs(s.y),Math.abs(s.z),Math.abs(s.w)),vec4h:s=>_chunk7X4KDNDZcjs.w.call(void 0, Math.abs(s.x),Math.abs(s.y),Math.abs(s.z),Math.abs(s.w)),vec4i:s=>_chunk7X4KDNDZcjs.x.call(void 0, Math.abs(s.x),Math.abs(s.y),Math.abs(s.z),Math.abs(s.w)),vec4u:s=>_chunk7X4KDNDZcjs.y.call(void 0, Math.abs(s.x),Math.abs(s.y),Math.abs(s.z),Math.abs(s.w))},ceil:{vec2f:s=>_chunk7X4KDNDZcjs.n.call(void 0, Math.ceil(s.x),Math.ceil(s.y)),vec2h:s=>_chunk7X4KDNDZcjs.o.call(void 0, Math.ceil(s.x),Math.ceil(s.y)),vec2i:s=>_chunk7X4KDNDZcjs.p.call(void 0, Math.ceil(s.x),Math.ceil(s.y)),vec2u:s=>_chunk7X4KDNDZcjs.q.call(void 0, Math.ceil(s.x),Math.ceil(s.y)),vec3f:s=>_chunk7X4KDNDZcjs.r.call(void 0, Math.ceil(s.x),Math.ceil(s.y),Math.ceil(s.z)),vec3h:s=>_chunk7X4KDNDZcjs.s.call(void 0, Math.ceil(s.x),Math.ceil(s.y),Math.ceil(s.z)),vec3i:s=>_chunk7X4KDNDZcjs.t.call(void 0, Math.ceil(s.x),Math.ceil(s.y),Math.ceil(s.z)),vec3u:s=>_chunk7X4KDNDZcjs.u.call(void 0, Math.ceil(s.x),Math.ceil(s.y),Math.ceil(s.z)),vec4f:s=>_chunk7X4KDNDZcjs.v.call(void 0, Math.ceil(s.x),Math.ceil(s.y),Math.ceil(s.z),Math.ceil(s.w)),vec4h:s=>_chunk7X4KDNDZcjs.w.call(void 0, Math.ceil(s.x),Math.ceil(s.y),Math.ceil(s.z),Math.ceil(s.w)),vec4i:s=>_chunk7X4KDNDZcjs.x.call(void 0, Math.ceil(s.x),Math.ceil(s.y),Math.ceil(s.z),Math.ceil(s.w)),vec4u:s=>_chunk7X4KDNDZcjs.y.call(void 0, Math.ceil(s.x),Math.ceil(s.y),Math.ceil(s.z),Math.ceil(s.w))},clamp:{vec2f:(s,t,n)=>_chunk7X4KDNDZcjs.n.call(void 0, e(s.x,t.x,n.x),e(s.y,t.y,n.y)),vec2h:(s,t,n)=>_chunk7X4KDNDZcjs.o.call(void 0, e(s.x,t.x,n.x),e(s.y,t.y,n.y)),vec2i:(s,t,n)=>_chunk7X4KDNDZcjs.p.call(void 0, e(s.x,t.x,n.x),e(s.y,t.y,n.y)),vec2u:(s,t,n)=>_chunk7X4KDNDZcjs.q.call(void 0, e(s.x,t.x,n.x),e(s.y,t.y,n.y)),vec3f:(s,t,n)=>_chunk7X4KDNDZcjs.r.call(void 0, e(s.x,t.x,n.x),e(s.y,t.y,n.y),e(s.z,t.z,n.z)),vec3h:(s,t,n)=>_chunk7X4KDNDZcjs.s.call(void 0, e(s.x,t.x,n.x),e(s.y,t.y,n.y),e(s.z,t.z,n.z)),vec3i:(s,t,n)=>_chunk7X4KDNDZcjs.t.call(void 0, e(s.x,t.x,n.x),e(s.y,t.y,n.y),e(s.z,t.z,n.z)),vec3u:(s,t,n)=>_chunk7X4KDNDZcjs.u.call(void 0, e(s.x,t.x,n.x),e(s.y,t.y,n.y),e(s.z,t.z,n.z)),vec4f:(s,t,n)=>_chunk7X4KDNDZcjs.v.call(void 0, e(s.x,t.x,n.x),e(s.y,t.y,n.y),e(s.z,t.z,n.z),e(s.w,t.w,n.w)),vec4h:(s,t,n)=>_chunk7X4KDNDZcjs.w.call(void 0, e(s.x,t.x,n.x),e(s.y,t.y,n.y),e(s.z,t.z,n.z),e(s.w,t.w,n.w)),vec4i:(s,t,n)=>_chunk7X4KDNDZcjs.x.call(void 0, e(s.x,t.x,n.x),e(s.y,t.y,n.y),e(s.z,t.z,n.z),e(s.w,t.w,n.w)),vec4u:(s,t,n)=>_chunk7X4KDNDZcjs.y.call(void 0, e(s.x,t.x,n.x),e(s.y,t.y,n.y),e(s.z,t.z,n.z),e(s.w,t.w,n.w))},length:{vec2f:z,vec2h:z,vec2i:z,vec2u:z,vec3f:M,vec3h:M,vec3i:M,vec3u:M,vec4f:T,vec4h:T,vec4i:T,vec4u:T},add:{vec2f:(s,t)=>_chunk7X4KDNDZcjs.n.call(void 0, s.x+t.x,s.y+t.y),vec2h:(s,t)=>_chunk7X4KDNDZcjs.o.call(void 0, s.x+t.x,s.y+t.y),vec2i:(s,t)=>_chunk7X4KDNDZcjs.p.call(void 0, s.x+t.x,s.y+t.y),vec2u:(s,t)=>_chunk7X4KDNDZcjs.q.call(void 0, s.x+t.x,s.y+t.y),vec3f:(s,t)=>_chunk7X4KDNDZcjs.r.call(void 0, s.x+t.x,s.y+t.y,s.z+t.z),vec3h:(s,t)=>_chunk7X4KDNDZcjs.s.call(void 0, s.x+t.x,s.y+t.y,s.z+t.z),vec3i:(s,t)=>_chunk7X4KDNDZcjs.t.call(void 0, s.x+t.x,s.y+t.y,s.z+t.z),vec3u:(s,t)=>_chunk7X4KDNDZcjs.u.call(void 0, s.x+t.x,s.y+t.y,s.z+t.z),vec4f:(s,t)=>_chunk7X4KDNDZcjs.v.call(void 0, s.x+t.x,s.y+t.y,s.z+t.z,s.w+t.w),vec4h:(s,t)=>_chunk7X4KDNDZcjs.w.call(void 0, s.x+t.x,s.y+t.y,s.z+t.z,s.w+t.w),vec4i:(s,t)=>_chunk7X4KDNDZcjs.x.call(void 0, s.x+t.x,s.y+t.y,s.z+t.z,s.w+t.w),vec4u:(s,t)=>_chunk7X4KDNDZcjs.y.call(void 0, s.x+t.x,s.y+t.y,s.z+t.z,s.w+t.w)},sub:{vec2f:(s,t)=>_chunk7X4KDNDZcjs.n.call(void 0, s.x-t.x,s.y-t.y),vec2h:(s,t)=>_chunk7X4KDNDZcjs.o.call(void 0, s.x-t.x,s.y-t.y),vec2i:(s,t)=>_chunk7X4KDNDZcjs.p.call(void 0, s.x-t.x,s.y-t.y),vec2u:(s,t)=>_chunk7X4KDNDZcjs.q.call(void 0, s.x-t.x,s.y-t.y),vec3f:(s,t)=>_chunk7X4KDNDZcjs.r.call(void 0, s.x-t.x,s.y-t.y,s.z-t.z),vec3h:(s,t)=>_chunk7X4KDNDZcjs.s.call(void 0, s.x-t.x,s.y-t.y,s.z-t.z),vec3i:(s,t)=>_chunk7X4KDNDZcjs.t.call(void 0, s.x-t.x,s.y-t.y,s.z-t.z),vec3u:(s,t)=>_chunk7X4KDNDZcjs.u.call(void 0, s.x-t.x,s.y-t.y,s.z-t.z),vec4f:(s,t)=>_chunk7X4KDNDZcjs.v.call(void 0, s.x-t.x,s.y-t.y,s.z-t.z,s.w-t.w),vec4h:(s,t)=>_chunk7X4KDNDZcjs.w.call(void 0, s.x-t.x,s.y-t.y,s.z-t.z,s.w-t.w),vec4i:(s,t)=>_chunk7X4KDNDZcjs.x.call(void 0, s.x-t.x,s.y-t.y,s.z-t.z,s.w-t.w),vec4u:(s,t)=>_chunk7X4KDNDZcjs.y.call(void 0, s.x-t.x,s.y-t.y,s.z-t.z,s.w-t.w)},mulSxV:{vec2f:(s,t)=>_chunk7X4KDNDZcjs.n.call(void 0, s*t.x,s*t.y),vec2h:(s,t)=>_chunk7X4KDNDZcjs.o.call(void 0, s*t.x,s*t.y),vec2i:(s,t)=>_chunk7X4KDNDZcjs.p.call(void 0, s*t.x,s*t.y),vec2u:(s,t)=>_chunk7X4KDNDZcjs.q.call(void 0, s*t.x,s*t.y),vec3f:(s,t)=>_chunk7X4KDNDZcjs.r.call(void 0, s*t.x,s*t.y,s*t.z),vec3h:(s,t)=>_chunk7X4KDNDZcjs.s.call(void 0, s*t.x,s*t.y,s*t.z),vec3i:(s,t)=>_chunk7X4KDNDZcjs.t.call(void 0, s*t.x,s*t.y,s*t.z),vec3u:(s,t)=>_chunk7X4KDNDZcjs.u.call(void 0, s*t.x,s*t.y,s*t.z),vec4f:(s,t)=>_chunk7X4KDNDZcjs.v.call(void 0, s*t.x,s*t.y,s*t.z,s*t.w),vec4h:(s,t)=>_chunk7X4KDNDZcjs.w.call(void 0, s*t.x,s*t.y,s*t.z,s*t.w),vec4i:(s,t)=>_chunk7X4KDNDZcjs.x.call(void 0, s*t.x,s*t.y,s*t.z,s*t.w),vec4u:(s,t)=>_chunk7X4KDNDZcjs.y.call(void 0, s*t.x,s*t.y,s*t.z,s*t.w),mat2x2f:(s,t)=>{let n=t.columns;return _chunk7X4KDNDZcjs.z.call(void 0, s*n[0].x,s*n[0].y,s*n[1].x,s*n[1].y)},mat3x3f:(s,t)=>{let n=t.columns;return _chunk7X4KDNDZcjs.A.call(void 0, s*n[0].x,s*n[0].y,s*n[0].z,s*n[1].x,s*n[1].y,s*n[1].z,s*n[2].x,s*n[2].y,s*n[2].z)},mat4x4f:(s,t)=>{let n=t.columns;return _chunk7X4KDNDZcjs.B.call(void 0, s*n[0].x,s*n[0].y,s*n[0].z,s*n[0].w,s*n[1].x,s*n[1].y,s*n[1].z,s*n[1].w,s*n[2].x,s*n[2].y,s*n[2].z,s*n[2].w,s*n[3].x,s*n[3].y,s*n[3].z,s*n[3].w)}},mulVxV:{vec2f:(s,t)=>_chunk7X4KDNDZcjs.n.call(void 0, s.x*t.x,s.y*t.y),vec2h:(s,t)=>_chunk7X4KDNDZcjs.o.call(void 0, s.x*t.x,s.y*t.y),vec2i:(s,t)=>_chunk7X4KDNDZcjs.p.call(void 0, s.x*t.x,s.y*t.y),vec2u:(s,t)=>_chunk7X4KDNDZcjs.q.call(void 0, s.x*t.x,s.y*t.y),vec3f:(s,t)=>_chunk7X4KDNDZcjs.r.call(void 0, s.x*t.x,s.y*t.y,s.z*t.z),vec3h:(s,t)=>_chunk7X4KDNDZcjs.s.call(void 0, s.x*t.x,s.y*t.y,s.z*t.z),vec3i:(s,t)=>_chunk7X4KDNDZcjs.t.call(void 0, s.x*t.x,s.y*t.y,s.z*t.z),vec3u:(s,t)=>_chunk7X4KDNDZcjs.u.call(void 0, s.x*t.x,s.y*t.y,s.z*t.z),vec4f:(s,t)=>_chunk7X4KDNDZcjs.v.call(void 0, s.x*t.x,s.y*t.y,s.z*t.z,s.w*t.w),vec4h:(s,t)=>_chunk7X4KDNDZcjs.w.call(void 0, s.x*t.x,s.y*t.y,s.z*t.z,s.w*t.w),vec4i:(s,t)=>_chunk7X4KDNDZcjs.x.call(void 0, s.x*t.x,s.y*t.y,s.z*t.z,s.w*t.w),vec4u:(s,t)=>_chunk7X4KDNDZcjs.y.call(void 0, s.x*t.x,s.y*t.y,s.z*t.z,s.w*t.w),mat2x2f:(s,t)=>{let n=s.columns,x=t.columns;return _chunk7X4KDNDZcjs.z.call(void 0, n[0].x*x[0].x+n[1].x*x[0].y,n[0].y*x[0].x+n[1].y*x[0].y,n[0].x*x[1].x+n[1].x*x[1].y,n[0].y*x[1].x+n[1].y*x[1].y)},mat3x3f:(s,t)=>{let n=s.columns,x=t.columns;return _chunk7X4KDNDZcjs.A.call(void 0, n[0].x*x[0].x+n[1].x*x[0].y+n[2].x*x[0].z,n[0].y*x[0].x+n[1].y*x[0].y+n[2].y*x[0].z,n[0].z*x[0].x+n[1].z*x[0].y+n[2].z*x[0].z,n[0].x*x[1].x+n[1].x*x[1].y+n[2].x*x[1].z,n[0].y*x[1].x+n[1].y*x[1].y+n[2].y*x[1].z,n[0].z*x[1].x+n[1].z*x[1].y+n[2].z*x[1].z,n[0].x*x[2].x+n[1].x*x[2].y+n[2].x*x[2].z,n[0].y*x[2].x+n[1].y*x[2].y+n[2].y*x[2].z,n[0].z*x[2].x+n[1].z*x[2].y+n[2].z*x[2].z)},mat4x4f:(s,t)=>{let n=s.columns,x=t.columns;return _chunk7X4KDNDZcjs.B.call(void 0, n[0].x*x[0].x+n[1].x*x[0].y+n[2].x*x[0].z+n[3].x*x[0].w,n[0].y*x[0].x+n[1].y*x[0].y+n[2].y*x[0].z+n[3].y*x[0].w,n[0].z*x[0].x+n[1].z*x[0].y+n[2].z*x[0].z+n[3].z*x[0].w,n[0].w*x[0].x+n[1].w*x[0].y+n[2].w*x[0].z+n[3].w*x[0].w,n[0].x*x[1].x+n[1].x*x[1].y+n[2].x*x[1].z+n[3].x*x[1].w,n[0].y*x[1].x+n[1].y*x[1].y+n[2].y*x[1].z+n[3].y*x[1].w,n[0].z*x[1].x+n[1].z*x[1].y+n[2].z*x[1].z+n[3].z*x[1].w,n[0].w*x[1].x+n[1].w*x[1].y+n[2].w*x[1].z+n[3].w*x[1].w,n[0].x*x[2].x+n[1].x*x[2].y+n[2].x*x[2].z+n[3].x*x[2].w,n[0].y*x[2].x+n[1].y*x[2].y+n[2].y*x[2].z+n[3].y*x[2].w,n[0].z*x[2].x+n[1].z*x[2].y+n[2].z*x[2].z+n[3].z*x[2].w,n[0].w*x[2].x+n[1].w*x[2].y+n[2].w*x[2].z+n[3].w*x[2].w,n[0].x*x[3].x+n[1].x*x[3].y+n[2].x*x[3].z+n[3].x*x[3].w,n[0].y*x[3].x+n[1].y*x[3].y+n[2].y*x[3].z+n[3].y*x[3].w,n[0].z*x[3].x+n[1].z*x[3].y+n[2].z*x[3].z+n[3].z*x[3].w,n[0].w*x[3].x+n[1].w*x[3].y+n[2].w*x[3].z+n[3].w*x[3].w)}},mulMxV:{mat2x2f:(s,t)=>{let n=s.columns;return _chunk7X4KDNDZcjs.n.call(void 0, n[0].x*t.x+n[1].x*t.y,n[0].y*t.x+n[1].y*t.y)},mat3x3f:(s,t)=>{let n=s.columns;return _chunk7X4KDNDZcjs.r.call(void 0, n[0].x*t.x+n[1].x*t.y+n[2].x*t.z,n[0].y*t.x+n[1].y*t.y+n[2].y*t.z,n[0].z*t.x+n[1].z*t.y+n[2].z*t.z)},mat4x4f:(s,t)=>{let n=s.columns;return _chunk7X4KDNDZcjs.v.call(void 0, n[0].x*t.x+n[1].x*t.y+n[2].x*t.z+n[3].x*t.w,n[0].y*t.x+n[1].y*t.y+n[2].y*t.z+n[3].y*t.w,n[0].z*t.x+n[1].z*t.y+n[2].z*t.z+n[3].z*t.w,n[0].w*t.x+n[1].w*t.y+n[2].w*t.z+n[3].w*t.w)}},mulVxM:{mat2x2f:(s,t)=>{let n=t.columns;return _chunk7X4KDNDZcjs.n.call(void 0, s.x*n[0].x+s.y*n[0].y,s.x*n[1].x+s.y*n[1].y)},mat3x3f:(s,t)=>{let n=t.columns;return _chunk7X4KDNDZcjs.r.call(void 0, s.x*n[0].x+s.y*n[0].y+s.z*n[0].z,s.x*n[1].x+s.y*n[1].y+s.z*n[1].z,s.x*n[2].x+s.y*n[2].y+s.z*n[2].z)},mat4x4f:(s,t)=>{let n=t.columns;return _chunk7X4KDNDZcjs.v.call(void 0, s.x*n[0].x+s.y*n[0].y+s.z*n[0].z+s.w*n[0].w,s.x*n[1].x+s.y*n[1].y+s.z*n[1].z+s.w*n[1].w,s.x*n[2].x+s.y*n[2].y+s.z*n[2].z+s.w*n[2].w,s.x*n[3].x+s.y*n[3].y+s.z*n[3].z+s.w*n[3].w)}},dot:{vec2f:d,vec2h:d,vec2i:d,vec2u:d,vec3f:p,vec3h:p,vec3i:p,vec3u:p,vec4f:k,vec4h:k,vec4i:k,vec4u:k},normalize:{vec2f:s=>{let t=z(s);return _chunk7X4KDNDZcjs.n.call(void 0, s.x/t,s.y/t)},vec2h:s=>{let t=z(s);return _chunk7X4KDNDZcjs.o.call(void 0, s.x/t,s.y/t)},vec2i:s=>{let t=z(s);return _chunk7X4KDNDZcjs.p.call(void 0, s.x/t,s.y/t)},vec2u:s=>{let t=z(s);return _chunk7X4KDNDZcjs.q.call(void 0, s.x/t,s.y/t)},vec3f:s=>{let t=M(s);return _chunk7X4KDNDZcjs.r.call(void 0, s.x/t,s.y/t,s.z/t)},vec3h:s=>{let t=M(s);return _chunk7X4KDNDZcjs.s.call(void 0, s.x/t,s.y/t,s.z/t)},vec3i:s=>{let t=M(s);return _chunk7X4KDNDZcjs.t.call(void 0, s.x/t,s.y/t,s.z/t)},vec3u:s=>{let t=M(s);return _chunk7X4KDNDZcjs.u.call(void 0, s.x/t,s.y/t,s.z/t)},vec4f:s=>{let t=T(s);return _chunk7X4KDNDZcjs.v.call(void 0, s.x/t,s.y/t,s.z/t,s.w/t)},vec4h:s=>{let t=T(s);return _chunk7X4KDNDZcjs.w.call(void 0, s.x/t,s.y/t,s.z/t,s.w/t)},vec4i:s=>{let t=T(s);return _chunk7X4KDNDZcjs.x.call(void 0, s.x/t,s.y/t,s.z/t,s.w/t)},vec4u:s=>{let t=T(s);return _chunk7X4KDNDZcjs.y.call(void 0, s.x/t,s.y/t,s.z/t,s.w/t)}},cross:{vec3f:(s,t)=>_chunk7X4KDNDZcjs.r.call(void 0, s.y*t.z-s.z*t.y,s.z*t.x-s.x*t.z,s.x*t.y-s.y*t.x),vec3h:(s,t)=>_chunk7X4KDNDZcjs.s.call(void 0, s.y*t.z-s.z*t.y,s.z*t.x-s.x*t.z,s.x*t.y-s.y*t.x),vec3i:(s,t)=>_chunk7X4KDNDZcjs.t.call(void 0, s.y*t.z-s.z*t.y,s.z*t.x-s.x*t.z,s.x*t.y-s.y*t.x),vec3u:(s,t)=>_chunk7X4KDNDZcjs.u.call(void 0, s.y*t.z-s.z*t.y,s.z*t.x-s.x*t.z,s.x*t.y-s.y*t.x)},floor:{vec2f:s=>_chunk7X4KDNDZcjs.n.call(void 0, Math.floor(s.x),Math.floor(s.y)),vec2h:s=>_chunk7X4KDNDZcjs.o.call(void 0, Math.floor(s.x),Math.floor(s.y)),vec2i:s=>_chunk7X4KDNDZcjs.p.call(void 0, Math.floor(s.x),Math.floor(s.y)),vec2u:s=>_chunk7X4KDNDZcjs.q.call(void 0, Math.floor(s.x),Math.floor(s.y)),vec3f:s=>_chunk7X4KDNDZcjs.r.call(void 0, Math.floor(s.x),Math.floor(s.y),Math.floor(s.z)),vec3h:s=>_chunk7X4KDNDZcjs.s.call(void 0, Math.floor(s.x),Math.floor(s.y),Math.floor(s.z)),vec3i:s=>_chunk7X4KDNDZcjs.t.call(void 0, Math.floor(s.x),Math.floor(s.y),Math.floor(s.z)),vec3u:s=>_chunk7X4KDNDZcjs.u.call(void 0, Math.floor(s.x),Math.floor(s.y),Math.floor(s.z)),vec4f:s=>_chunk7X4KDNDZcjs.v.call(void 0, Math.floor(s.x),Math.floor(s.y),Math.floor(s.z),Math.floor(s.w)),vec4h:s=>_chunk7X4KDNDZcjs.w.call(void 0, Math.floor(s.x),Math.floor(s.y),Math.floor(s.z),Math.floor(s.w)),vec4i:s=>_chunk7X4KDNDZcjs.x.call(void 0, Math.floor(s.x),Math.floor(s.y),Math.floor(s.z),Math.floor(s.w)),vec4u:s=>_chunk7X4KDNDZcjs.y.call(void 0, Math.floor(s.x),Math.floor(s.y),Math.floor(s.z),Math.floor(s.w))},max:{vec2f:(s,t)=>_chunk7X4KDNDZcjs.n.call(void 0, Math.max(s.x,t.x),Math.max(s.y,t.y)),vec2h:(s,t)=>_chunk7X4KDNDZcjs.o.call(void 0, Math.max(s.x,t.x),Math.max(s.y,t.y)),vec2i:(s,t)=>_chunk7X4KDNDZcjs.p.call(void 0, Math.max(s.x,t.x),Math.max(s.y,t.y)),vec2u:(s,t)=>_chunk7X4KDNDZcjs.q.call(void 0, Math.max(s.x,t.x),Math.max(s.y,t.y)),vec3f:(s,t)=>_chunk7X4KDNDZcjs.r.call(void 0, Math.max(s.x,t.x),Math.max(s.y,t.y),Math.max(s.z,t.z)),vec3h:(s,t)=>_chunk7X4KDNDZcjs.s.call(void 0, Math.max(s.x,t.x),Math.max(s.y,t.y),Math.max(s.z,t.z)),vec3i:(s,t)=>_chunk7X4KDNDZcjs.t.call(void 0, Math.max(s.x,t.x),Math.max(s.y,t.y),Math.max(s.z,t.z)),vec3u:(s,t)=>_chunk7X4KDNDZcjs.u.call(void 0, Math.max(s.x,t.x),Math.max(s.y,t.y),Math.max(s.z,t.z)),vec4f:(s,t)=>_chunk7X4KDNDZcjs.v.call(void 0, Math.max(s.x,t.x),Math.max(s.y,t.y),Math.max(s.z,t.z),Math.max(s.w,t.w)),vec4h:(s,t)=>_chunk7X4KDNDZcjs.w.call(void 0, Math.max(s.x,t.x),Math.max(s.y,t.y),Math.max(s.z,t.z),Math.max(s.w,t.w)),vec4i:(s,t)=>_chunk7X4KDNDZcjs.x.call(void 0, Math.max(s.x,t.x),Math.max(s.y,t.y),Math.max(s.z,t.z),Math.max(s.w,t.w)),vec4u:(s,t)=>_chunk7X4KDNDZcjs.y.call(void 0, Math.max(s.x,t.x),Math.max(s.y,t.y),Math.max(s.z,t.z),Math.max(s.w,t.w))},min:{vec2f:(s,t)=>_chunk7X4KDNDZcjs.n.call(void 0, Math.min(s.x,t.x),Math.min(s.y,t.y)),vec2h:(s,t)=>_chunk7X4KDNDZcjs.o.call(void 0, Math.min(s.x,t.x),Math.min(s.y,t.y)),vec2i:(s,t)=>_chunk7X4KDNDZcjs.p.call(void 0, Math.min(s.x,t.x),Math.min(s.y,t.y)),vec2u:(s,t)=>_chunk7X4KDNDZcjs.q.call(void 0, Math.min(s.x,t.x),Math.min(s.y,t.y)),vec3f:(s,t)=>_chunk7X4KDNDZcjs.r.call(void 0, Math.min(s.x,t.x),Math.min(s.y,t.y),Math.min(s.z,t.z)),vec3h:(s,t)=>_chunk7X4KDNDZcjs.s.call(void 0, Math.min(s.x,t.x),Math.min(s.y,t.y),Math.min(s.z,t.z)),vec3i:(s,t)=>_chunk7X4KDNDZcjs.t.call(void 0, Math.min(s.x,t.x),Math.min(s.y,t.y),Math.min(s.z,t.z)),vec3u:(s,t)=>_chunk7X4KDNDZcjs.u.call(void 0, Math.min(s.x,t.x),Math.min(s.y,t.y),Math.min(s.z,t.z)),vec4f:(s,t)=>_chunk7X4KDNDZcjs.v.call(void 0, Math.min(s.x,t.x),Math.min(s.y,t.y),Math.min(s.z,t.z),Math.min(s.w,t.w)),vec4h:(s,t)=>_chunk7X4KDNDZcjs.w.call(void 0, Math.min(s.x,t.x),Math.min(s.y,t.y),Math.min(s.z,t.z),Math.min(s.w,t.w)),vec4i:(s,t)=>_chunk7X4KDNDZcjs.x.call(void 0, Math.min(s.x,t.x),Math.min(s.y,t.y),Math.min(s.z,t.z),Math.min(s.w,t.w)),vec4u:(s,t)=>_chunk7X4KDNDZcjs.y.call(void 0, Math.min(s.x,t.x),Math.min(s.y,t.y),Math.min(s.z,t.z),Math.min(s.w,t.w))},pow:{vec2f:(s,t)=>_chunk7X4KDNDZcjs.n.call(void 0, s.x**t.x,s.y**t.y),vec2h:(s,t)=>_chunk7X4KDNDZcjs.o.call(void 0, s.x**t.x,s.y**t.y),vec3f:(s,t)=>_chunk7X4KDNDZcjs.r.call(void 0, s.x**t.x,s.y**t.y,s.z**t.z),vec3h:(s,t)=>_chunk7X4KDNDZcjs.s.call(void 0, s.x**t.x,s.y**t.y,s.z**t.z),vec4f:(s,t)=>_chunk7X4KDNDZcjs.v.call(void 0, s.x**t.x,s.y**t.y,s.z**t.z,s.w**t.w),vec4h:(s,t)=>_chunk7X4KDNDZcjs.w.call(void 0, s.x**t.x,s.y**t.y,s.z**t.z,s.w**t.w)},mix:{vec2f:(s,t,n)=>typeof n=="number"?_chunk7X4KDNDZcjs.n.call(void 0, s.x*(1-n)+t.x*n,s.y*(1-n)+t.y*n):_chunk7X4KDNDZcjs.n.call(void 0, s.x*(1-n.x)+t.x*n.x,s.y*(1-n.y)+t.y*n.y),vec2h:(s,t,n)=>typeof n=="number"?_chunk7X4KDNDZcjs.o.call(void 0, s.x*(1-n)+t.x*n,s.y*(1-n)+t.y*n):_chunk7X4KDNDZcjs.o.call(void 0, s.x*(1-n.x)+t.x*n.x,s.y*(1-n.y)+t.y*n.y),vec3f:(s,t,n)=>typeof n=="number"?_chunk7X4KDNDZcjs.r.call(void 0, s.x*(1-n)+t.x*n,s.y*(1-n)+t.y*n,s.z*(1-n)+t.z*n):_chunk7X4KDNDZcjs.r.call(void 0, s.x*(1-n.x)+t.x*n.x,s.y*(1-n.y)+t.y*n.y,s.z*(1-n.z)+t.z*n.z),vec3h:(s,t,n)=>typeof n=="number"?_chunk7X4KDNDZcjs.s.call(void 0, s.x*(1-n)+t.x*n,s.y*(1-n)+t.y*n,s.z*(1-n)+t.z*n):_chunk7X4KDNDZcjs.s.call(void 0, s.x*(1-n.x)+t.x*n.x,s.y*(1-n.y)+t.y*n.y,s.z*(1-n.z)+t.z*n.z),vec4f:(s,t,n)=>typeof n=="number"?_chunk7X4KDNDZcjs.v.call(void 0, s.x*(1-n)+t.x*n,s.y*(1-n)+t.y*n,s.z*(1-n)+t.z*n,s.w*(1-n)+t.w*n):_chunk7X4KDNDZcjs.v.call(void 0, s.x*(1-n.x)+t.x*n.x,s.y*(1-n.y)+t.y*n.y,s.z*(1-n.z)+t.z*n.z,s.w*(1-n.w)+t.w*n.w),vec4h:(s,t,n)=>typeof n=="number"?_chunk7X4KDNDZcjs.w.call(void 0, s.x*(1-n)+t.x*n,s.y*(1-n)+t.y*n,s.z*(1-n)+t.z*n,s.w*(1-n)+t.w*n):_chunk7X4KDNDZcjs.w.call(void 0, s.x*(1-n.x)+t.x*n.x,s.y*(1-n.y)+t.y*n.y,s.z*(1-n.z)+t.z*n.z,s.w*(1-n.w)+t.w*n.w)}};function K(s,t){return _chunk7X4KDNDZcjs.m.call(void 0, )?`(${s} + ${t})`:l.add[s.kind](s,t)}function I(s,t){return _chunk7X4KDNDZcjs.m.call(void 0, )?`(${s} - ${t})`:l.sub[s.kind](s,t)}function A(s,t){if(_chunk7X4KDNDZcjs.m.call(void 0, ))return`(${s} * ${t})`;if(typeof s=="number")return l.mulSxV[t.kind](s,t);if(typeof s=="object"&&typeof t=="object"&&"kind"in s&&"kind"in t){let n=!s.kind.startsWith("mat"),x=!t.kind.startsWith("mat");if(!n&&x)return l.mulMxV[s.kind](s,t);if(n&&!x)return l.mulVxM[t.kind](s,t)}return l.mulVxV[t.kind](s,t)}function R(s){return _chunk7X4KDNDZcjs.m.call(void 0, )?`abs(${s})`:typeof s=="number"?Math.abs(s):l.abs[s.kind](s)}function _(s){return _chunk7X4KDNDZcjs.m.call(void 0, )?`ceil(${s})`:typeof s=="number"?Math.ceil(s):l.ceil[s.kind](s)}function F(s,t,n){return _chunk7X4KDNDZcjs.m.call(void 0, )?`clamp(${s}, ${t}, ${n})`:typeof s=="number"?Math.min(Math.max(t,s),n):l.clamp[s.kind](s,t,n)}function j(s){return _chunk7X4KDNDZcjs.m.call(void 0, )?`cos(${s})`:Math.cos(s)}function q(s,t){return _chunk7X4KDNDZcjs.m.call(void 0, )?`cross(${s}, ${t})`:l.cross[s.kind](s,t)}function E(s,t){return _chunk7X4KDNDZcjs.m.call(void 0, )?`dot(${s}, ${t})`:l.dot[s.kind](s,t)}function W(s){return _chunk7X4KDNDZcjs.m.call(void 0, )?`normalize(${s})`:l.normalize[s.kind](s)}function O(s){return _chunk7X4KDNDZcjs.m.call(void 0, )?`floor(${s})`:typeof s=="number"?Math.floor(s):l.floor[s.kind](s)}function S(s){return _chunk7X4KDNDZcjs.m.call(void 0, )?`fract(${s})`:s-Math.floor(s)}function G(s){return _chunk7X4KDNDZcjs.m.call(void 0, )?`length(${s})`:typeof s=="number"?Math.abs(s):l.length[s.kind](s)}function P(s,t){return _chunk7X4KDNDZcjs.m.call(void 0, )?`max(${s}, ${t})`:typeof s=="number"?Math.max(s,t):l.max[s.kind](s,t)}function U(s,t){return _chunk7X4KDNDZcjs.m.call(void 0, )?`min(${s}, ${t})`:typeof s=="number"?Math.min(s,t):l.min[s.kind](s,t)}function C(s){return _chunk7X4KDNDZcjs.m.call(void 0, )?`sin(${s})`:Math.sin(s)}function D(s){return _chunk7X4KDNDZcjs.m.call(void 0, )?`exp(${s})`:Math.exp(s)}function H(s,t){if(_chunk7X4KDNDZcjs.m.call(void 0, ))return`pow(${s}, ${t})`;if(typeof s=="number"&&typeof t=="number")return s**t;if(typeof s=="object"&&typeof t=="object"&&"kind"in s&&"kind"in t)return l.pow[s.kind](s,t);throw new Error("Invalid arguments to pow()")}function J(s,t,n){if(_chunk7X4KDNDZcjs.m.call(void 0, ))return`mix(${s}, ${t}, ${n})`;if(typeof s=="number"){if(typeof n!="number"||typeof t!="number")throw new Error("When e1 and e2 are numbers, the blend factor must be a number.");return s*(1-n)+t*n}if(typeof s=="number"||typeof t=="number")throw new Error("e1 and e2 need to both be vectors of the same kind.");return l.mix[s.kind](s,t,n)}exports.abs = R; exports.add = K; exports.ceil = _; exports.clamp = F; exports.cos = j; exports.cross = q; exports.dot = E; exports.exp = D; exports.floor = O; exports.fract = S; exports.length = G; exports.max = P; exports.min = U; exports.mix = J; exports.mul = A; exports.normalize = W; exports.pow = H; exports.sin = C; exports.sub = I;
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkTLEBUZ6Acjs = require('../chunk-TLEBUZ6A.cjs');function en(){if(!_chunkTLEBUZ6Acjs.p.call(void 0, ))throw new Error("discard() can only be used on the GPU.");return"discard;"}var d=n=>Math.sqrt(n.x**2+n.y**2),T=n=>Math.sqrt(n.x**2+n.y**2+n.z**2),h=n=>Math.sqrt(n.x**2+n.y**2+n.z**2+n.w**2),M=(n,e)=>n.x*e.x+n.y*e.y,p=(n,e)=>n.x*e.x+n.y*e.y+n.z*e.z,B=(n,e)=>n.x*e.x+n.y*e.y+n.z*e.z+n.w*e.w,c=(n,e,t)=>Math.min(Math.max(e,n),t),b=n=>e=>_chunkTLEBUZ6Acjs.q.call(void 0, n(e.x),n(e.y)),V=n=>e=>_chunkTLEBUZ6Acjs.r.call(void 0, n(e.x),n(e.y)),O=n=>e=>_chunkTLEBUZ6Acjs.s.call(void 0, n(e.x),n(e.y)),U=n=>e=>_chunkTLEBUZ6Acjs.t.call(void 0, n(e.x),n(e.y)),I=n=>e=>_chunkTLEBUZ6Acjs.u.call(void 0, n(e.x),n(e.y),n(e.z)),K=n=>e=>_chunkTLEBUZ6Acjs.v.call(void 0, n(e.x),n(e.y),n(e.z)),R=n=>e=>_chunkTLEBUZ6Acjs.w.call(void 0, n(e.x),n(e.y),n(e.z)),G=n=>e=>_chunkTLEBUZ6Acjs.x.call(void 0, n(e.x),n(e.y),n(e.z)),P=n=>e=>_chunkTLEBUZ6Acjs.y.call(void 0, n(e.x),n(e.y),n(e.z),n(e.w)),W=n=>e=>_chunkTLEBUZ6Acjs.z.call(void 0, n(e.x),n(e.y),n(e.z),n(e.w)),_=n=>e=>_chunkTLEBUZ6Acjs.A.call(void 0, n(e.x),n(e.y),n(e.z),n(e.w)),E=n=>e=>_chunkTLEBUZ6Acjs.B.call(void 0, n(e.x),n(e.y),n(e.z),n(e.w)),C=n=>(e,t)=>_chunkTLEBUZ6Acjs.q.call(void 0, n(e.x,t.x),n(e.y,t.y)),F=n=>(e,t)=>_chunkTLEBUZ6Acjs.r.call(void 0, n(e.x,t.x),n(e.y,t.y)),S=n=>(e,t)=>_chunkTLEBUZ6Acjs.s.call(void 0, n(e.x,t.x),n(e.y,t.y)),j=n=>(e,t)=>_chunkTLEBUZ6Acjs.t.call(void 0, n(e.x,t.x),n(e.y,t.y)),q=n=>(e,t)=>_chunkTLEBUZ6Acjs.u.call(void 0, n(e.x,t.x),n(e.y,t.y),n(e.z,t.z)),L=n=>(e,t)=>_chunkTLEBUZ6Acjs.v.call(void 0, n(e.x,t.x),n(e.y,t.y),n(e.z,t.z)),X=n=>(e,t)=>_chunkTLEBUZ6Acjs.w.call(void 0, n(e.x,t.x),n(e.y,t.y),n(e.z,t.z)),D=n=>(e,t)=>_chunkTLEBUZ6Acjs.x.call(void 0, n(e.x,t.x),n(e.y,t.y),n(e.z,t.z)),H=n=>(e,t)=>_chunkTLEBUZ6Acjs.y.call(void 0, n(e.x,t.x),n(e.y,t.y),n(e.z,t.z),n(e.w,t.w)),J=n=>(e,t)=>_chunkTLEBUZ6Acjs.z.call(void 0, n(e.x,t.x),n(e.y,t.y),n(e.z,t.z),n(e.w,t.w)),N=n=>(e,t)=>_chunkTLEBUZ6Acjs.A.call(void 0, n(e.x,t.x),n(e.y,t.y),n(e.z,t.z),n(e.w,t.w)),Q=n=>(e,t)=>_chunkTLEBUZ6Acjs.B.call(void 0, n(e.x,t.x),n(e.y,t.y),n(e.z,t.z),n(e.w,t.w)),x={abs:{vec2f:b(Math.abs),vec2h:V(Math.abs),vec2i:O(Math.abs),vec2u:U(Math.abs),vec3f:I(Math.abs),vec3h:K(Math.abs),vec3i:R(Math.abs),vec3u:G(Math.abs),vec4f:P(Math.abs),vec4h:W(Math.abs),vec4i:_(Math.abs),vec4u:E(Math.abs)},atan2:{vec2f:C(Math.atan2),vec2h:F(Math.atan2),vec2i:S(Math.atan2),vec2u:j(Math.atan2),vec3f:q(Math.atan2),vec3h:L(Math.atan2),vec3i:X(Math.atan2),vec3u:D(Math.atan2),vec4f:H(Math.atan2),vec4h:J(Math.atan2),vec4i:N(Math.atan2),vec4u:Q(Math.atan2)},ceil:{vec2f:b(Math.ceil),vec2h:V(Math.ceil),vec2i:O(Math.ceil),vec2u:U(Math.ceil),vec3f:I(Math.ceil),vec3h:K(Math.ceil),vec3i:R(Math.ceil),vec3u:G(Math.ceil),vec4f:P(Math.ceil),vec4h:W(Math.ceil),vec4i:_(Math.ceil),vec4u:E(Math.ceil)},clamp:{vec2f:(n,e,t)=>_chunkTLEBUZ6Acjs.q.call(void 0, c(n.x,e.x,t.x),c(n.y,e.y,t.y)),vec2h:(n,e,t)=>_chunkTLEBUZ6Acjs.r.call(void 0, c(n.x,e.x,t.x),c(n.y,e.y,t.y)),vec2i:(n,e,t)=>_chunkTLEBUZ6Acjs.s.call(void 0, c(n.x,e.x,t.x),c(n.y,e.y,t.y)),vec2u:(n,e,t)=>_chunkTLEBUZ6Acjs.t.call(void 0, c(n.x,e.x,t.x),c(n.y,e.y,t.y)),vec3f:(n,e,t)=>_chunkTLEBUZ6Acjs.u.call(void 0, c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z)),vec3h:(n,e,t)=>_chunkTLEBUZ6Acjs.v.call(void 0, c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z)),vec3i:(n,e,t)=>_chunkTLEBUZ6Acjs.w.call(void 0, c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z)),vec3u:(n,e,t)=>_chunkTLEBUZ6Acjs.x.call(void 0, c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z)),vec4f:(n,e,t)=>_chunkTLEBUZ6Acjs.y.call(void 0, c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z),c(n.w,e.w,t.w)),vec4h:(n,e,t)=>_chunkTLEBUZ6Acjs.z.call(void 0, c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z),c(n.w,e.w,t.w)),vec4i:(n,e,t)=>_chunkTLEBUZ6Acjs.A.call(void 0, c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z),c(n.w,e.w,t.w)),vec4u:(n,e,t)=>_chunkTLEBUZ6Acjs.B.call(void 0, c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z),c(n.w,e.w,t.w))},length:{vec2f:d,vec2h:d,vec2i:d,vec2u:d,vec3f:T,vec3h:T,vec3i:T,vec3u:T,vec4f:h,vec4h:h,vec4i:h,vec4u:h},add:{vec2f:(n,e)=>_chunkTLEBUZ6Acjs.q.call(void 0, n.x+e.x,n.y+e.y),vec2h:(n,e)=>_chunkTLEBUZ6Acjs.r.call(void 0, n.x+e.x,n.y+e.y),vec2i:(n,e)=>_chunkTLEBUZ6Acjs.s.call(void 0, n.x+e.x,n.y+e.y),vec2u:(n,e)=>_chunkTLEBUZ6Acjs.t.call(void 0, n.x+e.x,n.y+e.y),vec3f:(n,e)=>_chunkTLEBUZ6Acjs.u.call(void 0, n.x+e.x,n.y+e.y,n.z+e.z),vec3h:(n,e)=>_chunkTLEBUZ6Acjs.v.call(void 0, n.x+e.x,n.y+e.y,n.z+e.z),vec3i:(n,e)=>_chunkTLEBUZ6Acjs.w.call(void 0, n.x+e.x,n.y+e.y,n.z+e.z),vec3u:(n,e)=>_chunkTLEBUZ6Acjs.x.call(void 0, n.x+e.x,n.y+e.y,n.z+e.z),vec4f:(n,e)=>_chunkTLEBUZ6Acjs.y.call(void 0, n.x+e.x,n.y+e.y,n.z+e.z,n.w+e.w),vec4h:(n,e)=>_chunkTLEBUZ6Acjs.z.call(void 0, n.x+e.x,n.y+e.y,n.z+e.z,n.w+e.w),vec4i:(n,e)=>_chunkTLEBUZ6Acjs.A.call(void 0, n.x+e.x,n.y+e.y,n.z+e.z,n.w+e.w),vec4u:(n,e)=>_chunkTLEBUZ6Acjs.B.call(void 0, n.x+e.x,n.y+e.y,n.z+e.z,n.w+e.w)},sub:{vec2f:(n,e)=>_chunkTLEBUZ6Acjs.q.call(void 0, n.x-e.x,n.y-e.y),vec2h:(n,e)=>_chunkTLEBUZ6Acjs.r.call(void 0, n.x-e.x,n.y-e.y),vec2i:(n,e)=>_chunkTLEBUZ6Acjs.s.call(void 0, n.x-e.x,n.y-e.y),vec2u:(n,e)=>_chunkTLEBUZ6Acjs.t.call(void 0, n.x-e.x,n.y-e.y),vec3f:(n,e)=>_chunkTLEBUZ6Acjs.u.call(void 0, n.x-e.x,n.y-e.y,n.z-e.z),vec3h:(n,e)=>_chunkTLEBUZ6Acjs.v.call(void 0, n.x-e.x,n.y-e.y,n.z-e.z),vec3i:(n,e)=>_chunkTLEBUZ6Acjs.w.call(void 0, n.x-e.x,n.y-e.y,n.z-e.z),vec3u:(n,e)=>_chunkTLEBUZ6Acjs.x.call(void 0, n.x-e.x,n.y-e.y,n.z-e.z),vec4f:(n,e)=>_chunkTLEBUZ6Acjs.y.call(void 0, n.x-e.x,n.y-e.y,n.z-e.z,n.w-e.w),vec4h:(n,e)=>_chunkTLEBUZ6Acjs.z.call(void 0, n.x-e.x,n.y-e.y,n.z-e.z,n.w-e.w),vec4i:(n,e)=>_chunkTLEBUZ6Acjs.A.call(void 0, n.x-e.x,n.y-e.y,n.z-e.z,n.w-e.w),vec4u:(n,e)=>_chunkTLEBUZ6Acjs.B.call(void 0, n.x-e.x,n.y-e.y,n.z-e.z,n.w-e.w)},mulSxV:{vec2f:(n,e)=>_chunkTLEBUZ6Acjs.q.call(void 0, n*e.x,n*e.y),vec2h:(n,e)=>_chunkTLEBUZ6Acjs.r.call(void 0, n*e.x,n*e.y),vec2i:(n,e)=>_chunkTLEBUZ6Acjs.s.call(void 0, n*e.x,n*e.y),vec2u:(n,e)=>_chunkTLEBUZ6Acjs.t.call(void 0, n*e.x,n*e.y),vec3f:(n,e)=>_chunkTLEBUZ6Acjs.u.call(void 0, n*e.x,n*e.y,n*e.z),vec3h:(n,e)=>_chunkTLEBUZ6Acjs.v.call(void 0, n*e.x,n*e.y,n*e.z),vec3i:(n,e)=>_chunkTLEBUZ6Acjs.w.call(void 0, n*e.x,n*e.y,n*e.z),vec3u:(n,e)=>_chunkTLEBUZ6Acjs.x.call(void 0, n*e.x,n*e.y,n*e.z),vec4f:(n,e)=>_chunkTLEBUZ6Acjs.y.call(void 0, n*e.x,n*e.y,n*e.z,n*e.w),vec4h:(n,e)=>_chunkTLEBUZ6Acjs.z.call(void 0, n*e.x,n*e.y,n*e.z,n*e.w),vec4i:(n,e)=>_chunkTLEBUZ6Acjs.A.call(void 0, n*e.x,n*e.y,n*e.z,n*e.w),vec4u:(n,e)=>_chunkTLEBUZ6Acjs.B.call(void 0, n*e.x,n*e.y,n*e.z,n*e.w),mat2x2f:(n,e)=>{let t=e.columns;return _chunkTLEBUZ6Acjs.C.call(void 0, n*t[0].x,n*t[0].y,n*t[1].x,n*t[1].y)},mat3x3f:(n,e)=>{let t=e.columns;return _chunkTLEBUZ6Acjs.D.call(void 0, n*t[0].x,n*t[0].y,n*t[0].z,n*t[1].x,n*t[1].y,n*t[1].z,n*t[2].x,n*t[2].y,n*t[2].z)},mat4x4f:(n,e)=>{let t=e.columns;return _chunkTLEBUZ6Acjs.E.call(void 0, n*t[0].x,n*t[0].y,n*t[0].z,n*t[0].w,n*t[1].x,n*t[1].y,n*t[1].z,n*t[1].w,n*t[2].x,n*t[2].y,n*t[2].z,n*t[2].w,n*t[3].x,n*t[3].y,n*t[3].z,n*t[3].w)}},mulVxV:{vec2f:(n,e)=>_chunkTLEBUZ6Acjs.q.call(void 0, n.x*e.x,n.y*e.y),vec2h:(n,e)=>_chunkTLEBUZ6Acjs.r.call(void 0, n.x*e.x,n.y*e.y),vec2i:(n,e)=>_chunkTLEBUZ6Acjs.s.call(void 0, n.x*e.x,n.y*e.y),vec2u:(n,e)=>_chunkTLEBUZ6Acjs.t.call(void 0, n.x*e.x,n.y*e.y),vec3f:(n,e)=>_chunkTLEBUZ6Acjs.u.call(void 0, n.x*e.x,n.y*e.y,n.z*e.z),vec3h:(n,e)=>_chunkTLEBUZ6Acjs.v.call(void 0, n.x*e.x,n.y*e.y,n.z*e.z),vec3i:(n,e)=>_chunkTLEBUZ6Acjs.w.call(void 0, n.x*e.x,n.y*e.y,n.z*e.z),vec3u:(n,e)=>_chunkTLEBUZ6Acjs.x.call(void 0, n.x*e.x,n.y*e.y,n.z*e.z),vec4f:(n,e)=>_chunkTLEBUZ6Acjs.y.call(void 0, n.x*e.x,n.y*e.y,n.z*e.z,n.w*e.w),vec4h:(n,e)=>_chunkTLEBUZ6Acjs.z.call(void 0, n.x*e.x,n.y*e.y,n.z*e.z,n.w*e.w),vec4i:(n,e)=>_chunkTLEBUZ6Acjs.A.call(void 0, n.x*e.x,n.y*e.y,n.z*e.z,n.w*e.w),vec4u:(n,e)=>_chunkTLEBUZ6Acjs.B.call(void 0, n.x*e.x,n.y*e.y,n.z*e.z,n.w*e.w),mat2x2f:(n,e)=>{let t=n.columns,r=e.columns;return _chunkTLEBUZ6Acjs.C.call(void 0, t[0].x*r[0].x+t[1].x*r[0].y,t[0].y*r[0].x+t[1].y*r[0].y,t[0].x*r[1].x+t[1].x*r[1].y,t[0].y*r[1].x+t[1].y*r[1].y)},mat3x3f:(n,e)=>{let t=n.columns,r=e.columns;return _chunkTLEBUZ6Acjs.D.call(void 0, t[0].x*r[0].x+t[1].x*r[0].y+t[2].x*r[0].z,t[0].y*r[0].x+t[1].y*r[0].y+t[2].y*r[0].z,t[0].z*r[0].x+t[1].z*r[0].y+t[2].z*r[0].z,t[0].x*r[1].x+t[1].x*r[1].y+t[2].x*r[1].z,t[0].y*r[1].x+t[1].y*r[1].y+t[2].y*r[1].z,t[0].z*r[1].x+t[1].z*r[1].y+t[2].z*r[1].z,t[0].x*r[2].x+t[1].x*r[2].y+t[2].x*r[2].z,t[0].y*r[2].x+t[1].y*r[2].y+t[2].y*r[2].z,t[0].z*r[2].x+t[1].z*r[2].y+t[2].z*r[2].z)},mat4x4f:(n,e)=>{let t=n.columns,r=e.columns;return _chunkTLEBUZ6Acjs.E.call(void 0, t[0].x*r[0].x+t[1].x*r[0].y+t[2].x*r[0].z+t[3].x*r[0].w,t[0].y*r[0].x+t[1].y*r[0].y+t[2].y*r[0].z+t[3].y*r[0].w,t[0].z*r[0].x+t[1].z*r[0].y+t[2].z*r[0].z+t[3].z*r[0].w,t[0].w*r[0].x+t[1].w*r[0].y+t[2].w*r[0].z+t[3].w*r[0].w,t[0].x*r[1].x+t[1].x*r[1].y+t[2].x*r[1].z+t[3].x*r[1].w,t[0].y*r[1].x+t[1].y*r[1].y+t[2].y*r[1].z+t[3].y*r[1].w,t[0].z*r[1].x+t[1].z*r[1].y+t[2].z*r[1].z+t[3].z*r[1].w,t[0].w*r[1].x+t[1].w*r[1].y+t[2].w*r[1].z+t[3].w*r[1].w,t[0].x*r[2].x+t[1].x*r[2].y+t[2].x*r[2].z+t[3].x*r[2].w,t[0].y*r[2].x+t[1].y*r[2].y+t[2].y*r[2].z+t[3].y*r[2].w,t[0].z*r[2].x+t[1].z*r[2].y+t[2].z*r[2].z+t[3].z*r[2].w,t[0].w*r[2].x+t[1].w*r[2].y+t[2].w*r[2].z+t[3].w*r[2].w,t[0].x*r[3].x+t[1].x*r[3].y+t[2].x*r[3].z+t[3].x*r[3].w,t[0].y*r[3].x+t[1].y*r[3].y+t[2].y*r[3].z+t[3].y*r[3].w,t[0].z*r[3].x+t[1].z*r[3].y+t[2].z*r[3].z+t[3].z*r[3].w,t[0].w*r[3].x+t[1].w*r[3].y+t[2].w*r[3].z+t[3].w*r[3].w)}},mulMxV:{mat2x2f:(n,e)=>{let t=n.columns;return _chunkTLEBUZ6Acjs.q.call(void 0, t[0].x*e.x+t[1].x*e.y,t[0].y*e.x+t[1].y*e.y)},mat3x3f:(n,e)=>{let t=n.columns;return _chunkTLEBUZ6Acjs.u.call(void 0, t[0].x*e.x+t[1].x*e.y+t[2].x*e.z,t[0].y*e.x+t[1].y*e.y+t[2].y*e.z,t[0].z*e.x+t[1].z*e.y+t[2].z*e.z)},mat4x4f:(n,e)=>{let t=n.columns;return _chunkTLEBUZ6Acjs.y.call(void 0, t[0].x*e.x+t[1].x*e.y+t[2].x*e.z+t[3].x*e.w,t[0].y*e.x+t[1].y*e.y+t[2].y*e.z+t[3].y*e.w,t[0].z*e.x+t[1].z*e.y+t[2].z*e.z+t[3].z*e.w,t[0].w*e.x+t[1].w*e.y+t[2].w*e.z+t[3].w*e.w)}},mulVxM:{mat2x2f:(n,e)=>{let t=e.columns;return _chunkTLEBUZ6Acjs.q.call(void 0, n.x*t[0].x+n.y*t[0].y,n.x*t[1].x+n.y*t[1].y)},mat3x3f:(n,e)=>{let t=e.columns;return _chunkTLEBUZ6Acjs.u.call(void 0, n.x*t[0].x+n.y*t[0].y+n.z*t[0].z,n.x*t[1].x+n.y*t[1].y+n.z*t[1].z,n.x*t[2].x+n.y*t[2].y+n.z*t[2].z)},mat4x4f:(n,e)=>{let t=e.columns;return _chunkTLEBUZ6Acjs.y.call(void 0, n.x*t[0].x+n.y*t[0].y+n.z*t[0].z+n.w*t[0].w,n.x*t[1].x+n.y*t[1].y+n.z*t[1].z+n.w*t[1].w,n.x*t[2].x+n.y*t[2].y+n.z*t[2].z+n.w*t[2].w,n.x*t[3].x+n.y*t[3].y+n.z*t[3].z+n.w*t[3].w)}},dot:{vec2f:M,vec2h:M,vec2i:M,vec2u:M,vec3f:p,vec3h:p,vec3i:p,vec3u:p,vec4f:B,vec4h:B,vec4i:B,vec4u:B},normalize:{vec2f:n=>{let e=d(n);return _chunkTLEBUZ6Acjs.q.call(void 0, n.x/e,n.y/e)},vec2h:n=>{let e=d(n);return _chunkTLEBUZ6Acjs.r.call(void 0, n.x/e,n.y/e)},vec2i:n=>{let e=d(n);return _chunkTLEBUZ6Acjs.s.call(void 0, n.x/e,n.y/e)},vec2u:n=>{let e=d(n);return _chunkTLEBUZ6Acjs.t.call(void 0, n.x/e,n.y/e)},vec3f:n=>{let e=T(n);return _chunkTLEBUZ6Acjs.u.call(void 0, n.x/e,n.y/e,n.z/e)},vec3h:n=>{let e=T(n);return _chunkTLEBUZ6Acjs.v.call(void 0, n.x/e,n.y/e,n.z/e)},vec3i:n=>{let e=T(n);return _chunkTLEBUZ6Acjs.w.call(void 0, n.x/e,n.y/e,n.z/e)},vec3u:n=>{let e=T(n);return _chunkTLEBUZ6Acjs.x.call(void 0, n.x/e,n.y/e,n.z/e)},vec4f:n=>{let e=h(n);return _chunkTLEBUZ6Acjs.y.call(void 0, n.x/e,n.y/e,n.z/e,n.w/e)},vec4h:n=>{let e=h(n);return _chunkTLEBUZ6Acjs.z.call(void 0, n.x/e,n.y/e,n.z/e,n.w/e)},vec4i:n=>{let e=h(n);return _chunkTLEBUZ6Acjs.A.call(void 0, n.x/e,n.y/e,n.z/e,n.w/e)},vec4u:n=>{let e=h(n);return _chunkTLEBUZ6Acjs.B.call(void 0, n.x/e,n.y/e,n.z/e,n.w/e)}},cross:{vec3f:(n,e)=>_chunkTLEBUZ6Acjs.u.call(void 0, n.y*e.z-n.z*e.y,n.z*e.x-n.x*e.z,n.x*e.y-n.y*e.x),vec3h:(n,e)=>_chunkTLEBUZ6Acjs.v.call(void 0, n.y*e.z-n.z*e.y,n.z*e.x-n.x*e.z,n.x*e.y-n.y*e.x),vec3i:(n,e)=>_chunkTLEBUZ6Acjs.w.call(void 0, n.y*e.z-n.z*e.y,n.z*e.x-n.x*e.z,n.x*e.y-n.y*e.x),vec3u:(n,e)=>_chunkTLEBUZ6Acjs.x.call(void 0, n.y*e.z-n.z*e.y,n.z*e.x-n.x*e.z,n.x*e.y-n.y*e.x)},floor:{vec2f:b(Math.floor),vec2h:V(Math.floor),vec2i:O(Math.floor),vec2u:U(Math.floor),vec3f:I(Math.floor),vec3h:K(Math.floor),vec3i:R(Math.floor),vec3u:G(Math.floor),vec4f:P(Math.floor),vec4h:W(Math.floor),vec4i:_(Math.floor),vec4u:E(Math.floor)},max:{vec2f:C(Math.max),vec2h:F(Math.max),vec2i:S(Math.max),vec2u:j(Math.max),vec3f:q(Math.max),vec3h:L(Math.max),vec3i:X(Math.max),vec3u:D(Math.max),vec4f:H(Math.max),vec4h:J(Math.max),vec4i:N(Math.max),vec4u:Q(Math.max)},min:{vec2f:C(Math.min),vec2h:F(Math.min),vec2i:S(Math.min),vec2u:j(Math.min),vec3f:q(Math.min),vec3h:L(Math.min),vec3i:X(Math.min),vec3u:D(Math.min),vec4f:H(Math.min),vec4h:J(Math.min),vec4i:N(Math.min),vec4u:Q(Math.min)},pow:{vec2f:(n,e)=>_chunkTLEBUZ6Acjs.q.call(void 0, n.x**e.x,n.y**e.y),vec2h:(n,e)=>_chunkTLEBUZ6Acjs.r.call(void 0, n.x**e.x,n.y**e.y),vec3f:(n,e)=>_chunkTLEBUZ6Acjs.u.call(void 0, n.x**e.x,n.y**e.y,n.z**e.z),vec3h:(n,e)=>_chunkTLEBUZ6Acjs.v.call(void 0, n.x**e.x,n.y**e.y,n.z**e.z),vec4f:(n,e)=>_chunkTLEBUZ6Acjs.y.call(void 0, n.x**e.x,n.y**e.y,n.z**e.z,n.w**e.w),vec4h:(n,e)=>_chunkTLEBUZ6Acjs.z.call(void 0, n.x**e.x,n.y**e.y,n.z**e.z,n.w**e.w)},mix:{vec2f:(n,e,t)=>typeof t=="number"?_chunkTLEBUZ6Acjs.q.call(void 0, n.x*(1-t)+e.x*t,n.y*(1-t)+e.y*t):_chunkTLEBUZ6Acjs.q.call(void 0, n.x*(1-t.x)+e.x*t.x,n.y*(1-t.y)+e.y*t.y),vec2h:(n,e,t)=>typeof t=="number"?_chunkTLEBUZ6Acjs.r.call(void 0, n.x*(1-t)+e.x*t,n.y*(1-t)+e.y*t):_chunkTLEBUZ6Acjs.r.call(void 0, n.x*(1-t.x)+e.x*t.x,n.y*(1-t.y)+e.y*t.y),vec3f:(n,e,t)=>typeof t=="number"?_chunkTLEBUZ6Acjs.u.call(void 0, n.x*(1-t)+e.x*t,n.y*(1-t)+e.y*t,n.z*(1-t)+e.z*t):_chunkTLEBUZ6Acjs.u.call(void 0, n.x*(1-t.x)+e.x*t.x,n.y*(1-t.y)+e.y*t.y,n.z*(1-t.z)+e.z*t.z),vec3h:(n,e,t)=>typeof t=="number"?_chunkTLEBUZ6Acjs.v.call(void 0, n.x*(1-t)+e.x*t,n.y*(1-t)+e.y*t,n.z*(1-t)+e.z*t):_chunkTLEBUZ6Acjs.v.call(void 0, n.x*(1-t.x)+e.x*t.x,n.y*(1-t.y)+e.y*t.y,n.z*(1-t.z)+e.z*t.z),vec4f:(n,e,t)=>typeof t=="number"?_chunkTLEBUZ6Acjs.y.call(void 0, n.x*(1-t)+e.x*t,n.y*(1-t)+e.y*t,n.z*(1-t)+e.z*t,n.w*(1-t)+e.w*t):_chunkTLEBUZ6Acjs.y.call(void 0, n.x*(1-t.x)+e.x*t.x,n.y*(1-t.y)+e.y*t.y,n.z*(1-t.z)+e.z*t.z,n.w*(1-t.w)+e.w*t.w),vec4h:(n,e,t)=>typeof t=="number"?_chunkTLEBUZ6Acjs.z.call(void 0, n.x*(1-t)+e.x*t,n.y*(1-t)+e.y*t,n.z*(1-t)+e.z*t,n.w*(1-t)+e.w*t):_chunkTLEBUZ6Acjs.z.call(void 0, n.x*(1-t.x)+e.x*t.x,n.y*(1-t.y)+e.y*t.y,n.z*(1-t.z)+e.z*t.z,n.w*(1-t.w)+e.w*t.w)}};function tn(n,e){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`(${n} + ${e})`:x.add[n.kind](n,e)}function Y(n,e){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`(${n} - ${e})`:x.sub[n.kind](n,e)}function Z(n,e){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return`(${n} * ${e})`;if(typeof n=="number")return x.mulSxV[e.kind](n,e);if(typeof n=="object"&&typeof e=="object"&&"kind"in n&&"kind"in e){let t=!n.kind.startsWith("mat"),r=!e.kind.startsWith("mat");if(!t&&r)return x.mulMxV[n.kind](n,e);if(t&&!r)return x.mulVxM[e.kind](n,e)}return x.mulVxV[e.kind](n,e)}function rn(n){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`abs(${n})`:typeof n=="number"?Math.abs(n):x.abs[n.kind](n)}function sn(n,e){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`atan2(${n}, ${e})`:typeof n=="number"&&typeof e=="number"?Math.atan2(n,e):x.atan2[n.kind](n,e)}function cn(n){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`ceil(${n})`:typeof n=="number"?Math.ceil(n):x.ceil[n.kind](n)}function xn(n,e,t){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`clamp(${n}, ${e}, ${t})`:typeof n=="number"?Math.min(Math.max(e,n),t):x.clamp[n.kind](n,e,t)}function wn(n){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`cos(${n})`:Math.cos(n)}function on(n,e){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`cross(${n}, ${e})`:x.cross[n.kind](n,e)}function nn(n,e){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`dot(${n}, ${e})`:x.dot[n.kind](n,e)}function un(n){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`normalize(${n})`:x.normalize[n.kind](n)}function yn(n){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`floor(${n})`:typeof n=="number"?Math.floor(n):x.floor[n.kind](n)}function vn(n){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`fract(${n})`:n-Math.floor(n)}function fn(n){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`length(${n})`:typeof n=="number"?Math.abs(n):x.length[n.kind](n)}function an(n,e){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`max(${n}, ${e})`:typeof n=="number"?Math.max(n,e):x.max[n.kind](n,e)}function ln(n,e){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`min(${n}, ${e})`:typeof n=="number"?Math.min(n,e):x.min[n.kind](n,e)}function mn(n){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`sin(${n})`:Math.sin(n)}function gn(n){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`exp(${n})`:Math.exp(n)}function zn(n,e){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return`pow(${n}, ${e})`;if(typeof n=="number"&&typeof e=="number")return n**e;if(typeof n=="object"&&typeof e=="object"&&"kind"in n&&"kind"in e)return x.pow[n.kind](n,e);throw new Error("Invalid arguments to pow()")}function dn(n,e,t){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return`mix(${n}, ${e}, ${t})`;if(typeof n=="number"){if(typeof t!="number"||typeof e!="number")throw new Error("When e1 and e2 are numbers, the blend factor must be a number.");return n*(1-t)+e*t}if(typeof n=="number"||typeof e=="number")throw new Error("e1 and e2 need to both be vectors of the same kind.");return x.mix[n.kind](n,e,t)}function Tn(n,e){return _chunkTLEBUZ6Acjs.p.call(void 0, )?`reflect(${n}, ${e})`:Y(n,Z(2*nn(e,n),e))}function hn(){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return"workgroupBarrier()";console.warn("workgroupBarrier is a no-op outside of GPU mode.")}function Mn(){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return"storageBarrier()";console.warn("storageBarrier is a no-op outside of GPU mode.")}function pn(){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return"textureBarrier()";console.warn("textureBarrier is a no-op outside of GPU mode.")}function Bn(n){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return`atomicLoad(&${n})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function kn(n,e){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return`atomicStore(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function An(n,e){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return`atomicAdd(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function $n(n,e){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return`atomicSub(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function bn(n,e){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return`atomicMax(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function Vn(n,e){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return`atomicMin(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function On(n,e){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return`atomicAnd(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function Un(n,e){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return`atomicOr(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function In(n,e){if(_chunkTLEBUZ6Acjs.p.call(void 0, ))return`atomicXor(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}exports.abs = rn; exports.add = tn; exports.atan2 = sn; exports.atomicAdd = An; exports.atomicAnd = On; exports.atomicLoad = Bn; exports.atomicMax = bn; exports.atomicMin = Vn; exports.atomicOr = Un; exports.atomicStore = kn; exports.atomicSub = $n; exports.atomicXor = In; exports.ceil = cn; exports.clamp = xn; exports.cos = wn; exports.cross = on; exports.discard = en; exports.dot = nn; exports.exp = gn; exports.floor = yn; exports.fract = vn; exports.length = fn; exports.max = an; exports.min = ln; exports.mix = dn; exports.mul = Z; exports.normalize = un; exports.pow = zn; exports.reflect = Tn; exports.sin = mn; exports.storageBarrier = Mn; exports.sub = Y; exports.textureBarrier = pn; exports.workgroupBarrier = hn;
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/std/index.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["/Users/iwo/Projects/wigsill/packages/typegpu/dist/std/index.cjs","../../src/data/vectorOps.ts","../../src/std/numeric.ts"],"names":["lengthVec2","v","lengthVec3","lengthVec4","dotVec2","lhs","rhs","dotVec3","dotVec4","clamp","value","low","high","VectorOps","vec2f","vec2h","vec2i","vec2u","vec3f","vec3h","vec3i","vec3u","vec4f","vec4h","vec4i","vec4u","a","b","m","m_","mat2x2f","mat3x3f","mat4x4f","a_","b_","len","base","exponent","e1","e2","e3","add","inGPUMode","sub","mul","sIsVector","vIsVector","abs","ceil","cos","radians","cross","dot","normalize","floor","fract","length","max","min","sin","exp","pow","mix"],"mappings":"AAAA,kIAAkJ,ICyB5IA,CAAAA,CAAcC,CAAAA,EAAU,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAA,EAAK,CAAA,CAAIA,CAAAA,CAAE,CAAA,EAAK,CAAC,CAAA,CACrDC,CAAAA,CAAcD,CAAAA,EAAU,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAA,EAAK,CAAA,CAAIA,CAAAA,CAAE,CAAA,EAAK,CAAA,CAAIA,CAAAA,CAAE,CAAA,EAAK,CAAC,CAAA,CAChEE,CAAAA,CAAcF,CAAAA,EAClB,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAA,EAAK,CAAA,CAAIA,CAAAA,CAAE,CAAA,EAAK,CAAA,CAAIA,CAAAA,CAAE,CAAA,EAAK,CAAA,CAAIA,CAAAA,CAAE,CAAA,EAAK,CAAC,CAAA,CAE/CG,CAAAA,CAAU,CAACC,CAAAA,CAASC,CAAAA,CAAAA,EAAYD,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAAID,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAC5DC,CAAAA,CAAU,CAACF,CAAAA,CAASC,CAAAA,CAAAA,EACxBD,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAAID,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAAID,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CACxCE,CAAAA,CAAU,CAACH,CAAAA,CAASC,CAAAA,CAAAA,EACxBD,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAAID,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAAID,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAAID,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAExDG,CAAAA,CAAQ,CAACC,CAAAA,CAAeC,CAAAA,CAAaC,CAAAA,CAAAA,EACzC,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAID,CAAAA,CAAKD,CAAK,CAAA,CAAGE,CAAI,CAAA,CAExBC,CAAAA,CAAY,CACvB,GAAA,CAAK,CACH,KAAA,CAAQZ,CAAAA,EAAgBa,iCAAAA,IAAM,CAAK,GAAA,CAAIb,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAC,CAAA,CAC1D,KAAA,CAAQA,CAAAA,EAAgBc,iCAAAA,IAAM,CAAK,GAAA,CAAId,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAC,CAAA,CAC1D,KAAA,CAAQA,CAAAA,EAAgBe,iCAAAA,IAAM,CAAK,GAAA,CAAIf,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAC,CAAA,CAC1D,KAAA,CAAQA,CAAAA,EAAgBgB,iCAAAA,IAAM,CAAK,GAAA,CAAIhB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAC,CAAA,CAE1D,KAAA,CAAQA,CAAAA,EAAgBiB,iCAAAA,IAAM,CAAK,GAAA,CAAIjB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAC,CAAA,CACzE,KAAA,CAAQA,CAAAA,EAAgBkB,iCAAAA,IAAM,CAAK,GAAA,CAAIlB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAC,CAAA,CACzE,KAAA,CAAQA,CAAAA,EAAgBmB,iCAAAA,IAAM,CAAK,GAAA,CAAInB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAC,CAAA,CACzE,KAAA,CAAQA,CAAAA,EAAgBoB,iCAAAA,IAAM,CAAK,GAAA,CAAIpB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAC,CAAA,CAEzE,KAAA,CAAQA,CAAAA,EACNqB,iCAAAA,IAAM,CAAK,GAAA,CAAIrB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAC,CAAA,CAClE,KAAA,CAAQA,CAAAA,EACNsB,iCAAAA,IAAM,CAAK,GAAA,CAAItB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAC,CAAA,CAClE,KAAA,CAAQA,CAAAA,EACNuB,iCAAAA,IAAM,CAAK,GAAA,CAAIvB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAC,CAAA,CAClE,KAAA,CAAQA,CAAAA,EACNwB,iCAAAA,IAAM,CAAK,GAAA,CAAIxB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAE,CAAC,CAAC,CACpE,CAAA,CAEA,IAAA,CAAM,CACJ,KAAA,CAAQA,CAAAA,EAAgBa,iCAAAA,IAAM,CAAK,IAAA,CAAKb,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAC,CAAA,CAC5D,KAAA,CAAQA,CAAAA,EAAgBc,iCAAAA,IAAM,CAAK,IAAA,CAAKd,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAC,CAAA,CAC5D,KAAA,CAAQA,CAAAA,EAAgBe,iCAAAA,IAAM,CAAK,IAAA,CAAKf,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAC,CAAA,CAC5D,KAAA,CAAQA,CAAAA,EAAgBgB,iCAAAA,IAAM,CAAK,IAAA,CAAKhB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAC,CAAA,CAE5D,KAAA,CAAQA,CAAAA,EACNiB,iCAAAA,IAAM,CAAK,IAAA,CAAKjB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAC,CAAA,CACtD,KAAA,CAAQA,CAAAA,EACNkB,iCAAAA,IAAM,CAAK,IAAA,CAAKlB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAC,CAAA,CACtD,KAAA,CAAQA,CAAAA,EACNmB,iCAAAA,IAAM,CAAK,IAAA,CAAKnB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAC,CAAA,CACtD,KAAA,CAAQA,CAAAA,EACNoB,iCAAAA,IAAM,CAAK,IAAA,CAAKpB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAC,CAAA,CAEtD,KAAA,CAAQA,CAAAA,EACNqB,iCAAAA,IAAM,CAAK,IAAA,CAAKrB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAC,CAAA,CACtE,KAAA,CAAQA,CAAAA,EACNsB,iCAAAA,IAAM,CAAK,IAAA,CAAKtB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAC,CAAA,CACtE,KAAA,CAAQA,CAAAA,EACNuB,iCAAAA,IAAM,CAAK,IAAA,CAAKvB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAC,CAAA,CACtE,KAAA,CAAQA,CAAAA,EACNwB,iCAAAA,IAAM,CAAK,IAAA,CAAKxB,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAC,CAAC,CACxE,CAAA,CAEA,KAAA,CAAO,CACL,KAAA,CAAO,CAACA,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCE,iCAAAA,CAAML,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CAAGH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAC,CAAA,CAC5D,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCG,iCAAAA,CAAMN,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CAAGH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAC,CAAA,CAC5D,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCI,iCAAAA,CAAMP,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CAAGH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAC,CAAA,CAC5D,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCK,iCAAAA,CAAMR,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CAAGH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAC,CAAA,CAE5D,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCM,iCAAAA,CACET,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CAAA,CACF,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCO,iCAAAA,CACEV,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CAAA,CACF,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCQ,iCAAAA,CACEX,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CAAA,CACF,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCS,iCAAAA,CACEZ,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CAAA,CAEF,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCU,iCAAAA,CACEb,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CAAA,CACF,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCW,iCAAAA,CACEd,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CAAA,CACF,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCY,iCAAAA,CACEf,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CAAA,CACF,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCa,iCAAAA,CACEhB,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CACJ,CAAA,CAEA,MAAA,CAAQ,CACN,KAAA,CAAOZ,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOE,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOC,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOA,CACT,CAAA,CAEA,GAAA,CAAK,CACH,KAAA,CAAO,CAACuB,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBb,iCAAAA,CAAMY,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBZ,iCAAAA,CAAMW,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBX,iCAAAA,CAAMU,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBV,iCAAAA,CAAMS,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAE/D,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBT,iCAAAA,CAAMQ,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBR,iCAAAA,CAAMO,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBP,iCAAAA,CAAMM,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBN,iCAAAA,CAAMK,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAE1E,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EACnBL,iCAAAA,CAAMI,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EACnBJ,iCAAAA,CAAMG,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EACnBH,iCAAAA,CAAME,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EACnBF,iCAAAA,CAAMC,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CACpD,CAAA,CAEA,GAAA,CAAK,CACH,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBb,iCAAAA,CAAMY,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBZ,iCAAAA,CAAMW,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBX,iCAAAA,CAAMU,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBV,iCAAAA,CAAMS,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAE/D,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBT,iCAAAA,CAAMQ,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBR,iCAAAA,CAAMO,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBP,iCAAAA,CAAMM,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBN,iCAAAA,CAAMK,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAE1E,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EACnBL,iCAAAA,CAAMI,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EACnBJ,iCAAAA,CAAMG,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EACnBH,iCAAAA,CAAME,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EACnBF,iCAAAA,CAAMC,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CACpD,CAAA,CAEA,MAAA,CAAQ,CACN,KAAA,CAAO,CAAC,CAAA,CAAW1B,CAAAA,CAAAA,EAAgBa,iCAAAA,CAAM,CAAIb,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CACzD,KAAA,CAAO,CAAC,CAAA,CAAWA,CAAAA,CAAAA,EAAgBc,iCAAAA,CAAM,CAAId,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CACzD,KAAA,CAAO,CAAC,CAAA,CAAWA,CAAAA,CAAAA,EAAgBe,iCAAAA,CAAM,CAAIf,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CACzD,KAAA,CAAO,CAAC,CAAA,CAAWA,CAAAA,CAAAA,EAAgBgB,iCAAAA,CAAM,CAAIhB,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAEzD,KAAA,CAAO,CAAC,CAAA,CAAWA,CAAAA,CAAAA,EAAgBiB,iCAAAA,CAAM,CAAIjB,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAClE,KAAA,CAAO,CAAC,CAAA,CAAWA,CAAAA,CAAAA,EAAgBkB,iCAAAA,CAAM,CAAIlB,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAClE,KAAA,CAAO,CAAC,CAAA,CAAWA,CAAAA,CAAAA,EAAgBmB,iCAAAA,CAAM,CAAInB,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAClE,KAAA,CAAO,CAAC,CAAA,CAAWA,CAAAA,CAAAA,EAAgBoB,iCAAAA,CAAM,CAAIpB,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAElE,KAAA,CAAO,CAAC,CAAA,CAAWA,CAAAA,CAAAA,EACjBqB,iCAAAA,CAAM,CAAIrB,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAC1C,KAAA,CAAO,CAAC,CAAA,CAAWA,CAAAA,CAAAA,EACjBsB,iCAAAA,CAAM,CAAItB,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAC1C,KAAA,CAAO,CAAC,CAAA,CAAWA,CAAAA,CAAAA,EACjBuB,iCAAAA,CAAM,CAAIvB,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAC1C,KAAA,CAAO,CAAC,CAAA,CAAWA,CAAAA,CAAAA,EACjBwB,iCAAAA,CAAM,CAAIxB,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAE,CAAC,CAAA,CAE1C,OAAA,CAAS,CAAC,CAAA,CAAW2B,CAAAA,CAAAA,EAAkB,CACrC,IAAMC,CAAAA,CAAKD,CAAAA,CAAE,OAAA,CACb,OAAOE,iCAAAA,CAAQ,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAC,CACnE,CAAA,CAEA,OAAA,CAAS,CAAC,CAAA,CAAWD,CAAAA,CAAAA,EAAkB,CACrC,IAAMC,CAAAA,CAAKD,CAAAA,CAAE,OAAA,CACb,OAAOG,iCAAAA,CACL,CAAIF,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAEV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAEV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CACZ,CACF,CAAA,CAEA,OAAA,CAAS,CAAC,CAAA,CAAWD,CAAAA,CAAAA,EAAkB,CACrC,IAAMC,CAAAA,CAAKD,CAAAA,CAAE,OAAA,CACb,OAAOI,iCAAAA,CACL,CAAIH,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAEV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAEV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAEV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACV,CAAA,CAAIA,CAAAA,CAAG,CAAC,CAAA,CAAE,CACZ,CACF,CACF,CAAA,CAKA,MAAA,CAAQ,CACN,KAAA,CAAO,CAACH,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBb,iCAAAA,CAAMY,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBZ,iCAAAA,CAAMW,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBX,iCAAAA,CAAMU,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBV,iCAAAA,CAAMS,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAE/D,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBT,iCAAAA,CAAMQ,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBR,iCAAAA,CAAMO,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBP,iCAAAA,CAAMM,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EAAgBN,iCAAAA,CAAMK,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAE1E,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EACnBL,iCAAAA,CAAMI,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EACnBJ,iCAAAA,CAAMG,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EACnBH,iCAAAA,CAAME,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACD,CAAAA,CAAaC,CAAAA,CAAAA,EACnBF,iCAAAA,CAAMC,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAA,CAAGD,CAAAA,CAAE,CAAA,CAAIC,CAAAA,CAAE,CAAC,CAAA,CAElD,OAAA,CAAS,CAACD,CAAAA,CAAeC,CAAAA,CAAAA,EAAkB,CACzC,IAAMM,CAAAA,CAAKP,CAAAA,CAAE,OAAA,CACPQ,CAAAA,CAAKP,CAAAA,CAAE,OAAA,CAEb,OAAOG,iCAAAA,CACLG,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACpCD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAEpCD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACpCD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CACtC,CACF,CAAA,CAEA,OAAA,CAAS,CAACR,CAAAA,CAAeC,CAAAA,CAAAA,EAAkB,CACzC,IAAMM,CAAAA,CAAKP,CAAAA,CAAE,OAAA,CACPQ,CAAAA,CAAKP,CAAAA,CAAE,OAAA,CAEb,OAAOI,iCAAAA,CACLE,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACxDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACxDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAExDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACxDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACxDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAExDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACxDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,C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","file":"/Users/iwo/Projects/wigsill/packages/typegpu/dist/std/index.cjs","sourcesContent":[null,"import { mat2x2f, mat3x3f, mat4x4f } from './matrix';\nimport {\n vec2f,\n vec2h,\n vec2i,\n vec2u,\n vec3f,\n vec3h,\n vec3i,\n vec3u,\n vec4f,\n vec4h,\n vec4i,\n vec4u,\n} from './vector';\nimport type * as wgsl from './wgslTypes';\nimport type { VecKind } from './wgslTypes';\n\ntype vBase = { kind: VecKind };\ntype v2 = wgsl.v2f | wgsl.v2h | wgsl.v2i | wgsl.v2u;\ntype v3 = wgsl.v3f | wgsl.v3h | wgsl.v3i | wgsl.v3u;\ntype v4 = wgsl.v4f | wgsl.v4h | wgsl.v4i | wgsl.v4u;\n\ntype MatKind = 'mat2x2f' | 'mat3x3f' | 'mat4x4f';\n\nconst lengthVec2 = (v: v2) => Math.sqrt(v.x ** 2 + v.y ** 2);\nconst lengthVec3 = (v: v3) => Math.sqrt(v.x ** 2 + v.y ** 2 + v.z ** 2);\nconst lengthVec4 = (v: v4) =>\n Math.sqrt(v.x ** 2 + v.y ** 2 + v.z ** 2 + v.w ** 2);\n\nconst dotVec2 = (lhs: v2, rhs: v2) => lhs.x * rhs.x + lhs.y * rhs.y;\nconst dotVec3 = (lhs: v3, rhs: v3) =>\n lhs.x * rhs.x + lhs.y * rhs.y + lhs.z * rhs.z;\nconst dotVec4 = (lhs: v4, rhs: v4) =>\n lhs.x * rhs.x + lhs.y * rhs.y + lhs.z * rhs.z + lhs.w * rhs.w;\n\nconst clamp = (value: number, low: number, high: number) =>\n Math.min(Math.max(low, value), high);\n\nexport const VectorOps = {\n abs: {\n vec2f: (v: wgsl.v2f) => vec2f(Math.abs(v.x), Math.abs(v.y)),\n vec2h: (v: wgsl.v2h) => vec2h(Math.abs(v.x), Math.abs(v.y)),\n vec2i: (v: wgsl.v2i) => vec2i(Math.abs(v.x), Math.abs(v.y)),\n vec2u: (v: wgsl.v2u) => vec2u(Math.abs(v.x), Math.abs(v.y)),\n\n vec3f: (v: wgsl.v3f) => vec3f(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z)),\n vec3h: (v: wgsl.v3h) => vec3h(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z)),\n vec3i: (v: wgsl.v3i) => vec3i(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z)),\n vec3u: (v: wgsl.v3u) => vec3u(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z)),\n\n vec4f: (v: wgsl.v4f) =>\n vec4f(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z), Math.abs(v.w)),\n vec4h: (v: wgsl.v4h) =>\n vec4h(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z), Math.abs(v.w)),\n vec4i: (v: wgsl.v4i) =>\n vec4i(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z), Math.abs(v.w)),\n vec4u: (v: wgsl.v4u) =>\n vec4u(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z), Math.abs(v.w)),\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n ceil: {\n vec2f: (v: wgsl.v2f) => vec2f(Math.ceil(v.x), Math.ceil(v.y)),\n vec2h: (v: wgsl.v2h) => vec2h(Math.ceil(v.x), Math.ceil(v.y)),\n vec2i: (v: wgsl.v2i) => vec2i(Math.ceil(v.x), Math.ceil(v.y)),\n vec2u: (v: wgsl.v2u) => vec2u(Math.ceil(v.x), Math.ceil(v.y)),\n\n vec3f: (v: wgsl.v3f) =>\n vec3f(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z)),\n vec3h: (v: wgsl.v3h) =>\n vec3h(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z)),\n vec3i: (v: wgsl.v3i) =>\n vec3i(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z)),\n vec3u: (v: wgsl.v3u) =>\n vec3u(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z)),\n\n vec4f: (v: wgsl.v4f) =>\n vec4f(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z), Math.ceil(v.w)),\n vec4h: (v: wgsl.v4h) =>\n vec4h(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z), Math.ceil(v.w)),\n vec4i: (v: wgsl.v4i) =>\n vec4i(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z), Math.ceil(v.w)),\n vec4u: (v: wgsl.v4u) =>\n vec4u(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z), Math.ceil(v.w)),\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n clamp: {\n vec2f: (v: wgsl.v2f, low: wgsl.v2f, high: wgsl.v2f) =>\n vec2f(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n vec2h: (v: wgsl.v2h, low: wgsl.v2h, high: wgsl.v2h) =>\n vec2h(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n vec2i: (v: wgsl.v2i, low: wgsl.v2i, high: wgsl.v2i) =>\n vec2i(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n vec2u: (v: wgsl.v2u, low: wgsl.v2u, high: wgsl.v2u) =>\n vec2u(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n\n vec3f: (v: wgsl.v3f, low: wgsl.v3f, high: wgsl.v3f) =>\n vec3f(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n vec3h: (v: wgsl.v3h, low: wgsl.v3h, high: wgsl.v3h) =>\n vec3h(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n vec3i: (v: wgsl.v3i, low: wgsl.v3i, high: wgsl.v3f) =>\n vec3i(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n vec3u: (v: wgsl.v3u, low: wgsl.v3u, high: wgsl.v3f) =>\n vec3u(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n\n vec4f: (v: wgsl.v4f, low: wgsl.v4f, high: wgsl.v4f) =>\n vec4f(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n vec4h: (v: wgsl.v4h, low: wgsl.v4h, high: wgsl.v4h) =>\n vec4h(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n vec4i: (v: wgsl.v4i, low: wgsl.v4i, high: wgsl.v4i) =>\n vec4i(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n vec4u: (v: wgsl.v4u, low: wgsl.v4u, high: wgsl.v4u) =>\n vec4u(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n } as Record<VecKind, <T extends vBase>(v: T, low: T, high: T) => T>,\n\n length: {\n vec2f: lengthVec2,\n vec2h: lengthVec2,\n vec2i: lengthVec2,\n vec2u: lengthVec2,\n vec3f: lengthVec3,\n vec3h: lengthVec3,\n vec3i: lengthVec3,\n vec3u: lengthVec3,\n vec4f: lengthVec4,\n vec4h: lengthVec4,\n vec4i: lengthVec4,\n vec4u: lengthVec4,\n } as Record<VecKind, (v: vBase) => number>,\n\n add: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) => vec2f(a.x + b.x, a.y + b.y),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) => vec2h(a.x + b.x, a.y + b.y),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) => vec2i(a.x + b.x, a.y + b.y),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) => vec2u(a.x + b.x, a.y + b.y),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => vec3f(a.x + b.x, a.y + b.y, a.z + b.z),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => vec3h(a.x + b.x, a.y + b.y, a.z + b.z),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => vec3i(a.x + b.x, a.y + b.y, a.z + b.z),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => vec3u(a.x + b.x, a.y + b.y, a.z + b.z),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n } as Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => T>,\n\n sub: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) => vec2f(a.x - b.x, a.y - b.y),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) => vec2h(a.x - b.x, a.y - b.y),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) => vec2i(a.x - b.x, a.y - b.y),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) => vec2u(a.x - b.x, a.y - b.y),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => vec3f(a.x - b.x, a.y - b.y, a.z - b.z),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => vec3h(a.x - b.x, a.y - b.y, a.z - b.z),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => vec3i(a.x - b.x, a.y - b.y, a.z - b.z),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => vec3u(a.x - b.x, a.y - b.y, a.z - b.z),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n } as Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => T>,\n\n mulSxV: {\n vec2f: (s: number, v: wgsl.v2f) => vec2f(s * v.x, s * v.y),\n vec2h: (s: number, v: wgsl.v2h) => vec2h(s * v.x, s * v.y),\n vec2i: (s: number, v: wgsl.v2i) => vec2i(s * v.x, s * v.y),\n vec2u: (s: number, v: wgsl.v2u) => vec2u(s * v.x, s * v.y),\n\n vec3f: (s: number, v: wgsl.v3f) => vec3f(s * v.x, s * v.y, s * v.z),\n vec3h: (s: number, v: wgsl.v3h) => vec3h(s * v.x, s * v.y, s * v.z),\n vec3i: (s: number, v: wgsl.v3i) => vec3i(s * v.x, s * v.y, s * v.z),\n vec3u: (s: number, v: wgsl.v3u) => vec3u(s * v.x, s * v.y, s * v.z),\n\n vec4f: (s: number, v: wgsl.v4f) =>\n vec4f(s * v.x, s * v.y, s * v.z, s * v.w),\n vec4h: (s: number, v: wgsl.v4h) =>\n vec4h(s * v.x, s * v.y, s * v.z, s * v.w),\n vec4i: (s: number, v: wgsl.v4i) =>\n vec4i(s * v.x, s * v.y, s * v.z, s * v.w),\n vec4u: (s: number, v: wgsl.v4u) =>\n vec4u(s * v.x, s * v.y, s * v.z, s * v.w),\n\n mat2x2f: (s: number, m: wgsl.m2x2f) => {\n const m_ = m.columns as [wgsl.v2f, wgsl.v2f];\n return mat2x2f(s * m_[0].x, s * m_[0].y, s * m_[1].x, s * m_[1].y);\n },\n\n mat3x3f: (s: number, m: wgsl.m3x3f) => {\n const m_ = m.columns as [wgsl.v3f, wgsl.v3f, wgsl.v3f];\n return mat3x3f(\n s * m_[0].x,\n s * m_[0].y,\n s * m_[0].z,\n\n s * m_[1].x,\n s * m_[1].y,\n s * m_[1].z,\n\n s * m_[2].x,\n s * m_[2].y,\n s * m_[2].z,\n );\n },\n\n mat4x4f: (s: number, m: wgsl.m4x4f) => {\n const m_ = m.columns as [wgsl.v4f, wgsl.v4f, wgsl.v4f, wgsl.v4f];\n return mat4x4f(\n s * m_[0].x,\n s * m_[0].y,\n s * m_[0].z,\n s * m_[0].w,\n\n s * m_[1].x,\n s * m_[1].y,\n s * m_[1].z,\n s * m_[1].w,\n\n s * m_[2].x,\n s * m_[2].y,\n s * m_[2].z,\n s * m_[2].w,\n\n s * m_[3].x,\n s * m_[3].y,\n s * m_[3].z,\n s * m_[3].w,\n );\n },\n } as Record<\n VecKind | MatKind,\n <T extends vBase | wgsl.AnyMatInstance>(s: number, v: T) => T\n >,\n\n mulVxV: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) => vec2f(a.x * b.x, a.y * b.y),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) => vec2h(a.x * b.x, a.y * b.y),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) => vec2i(a.x * b.x, a.y * b.y),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) => vec2u(a.x * b.x, a.y * b.y),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => vec3f(a.x * b.x, a.y * b.y, a.z * b.z),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => vec3h(a.x * b.x, a.y * b.y, a.z * b.z),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => vec3i(a.x * b.x, a.y * b.y, a.z * b.z),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => vec3u(a.x * b.x, a.y * b.y, a.z * b.z),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n\n mat2x2f: (a: wgsl.m2x2f, b: wgsl.m2x2f) => {\n const a_ = a.columns as [wgsl.v2f, wgsl.v2f];\n const b_ = b.columns as [wgsl.v2f, wgsl.v2f];\n\n return mat2x2f(\n a_[0].x * b_[0].x + a_[1].x * b_[0].y,\n a_[0].y * b_[0].x + a_[1].y * b_[0].y,\n\n a_[0].x * b_[1].x + a_[1].x * b_[1].y,\n a_[0].y * b_[1].x + a_[1].y * b_[1].y,\n );\n },\n\n mat3x3f: (a: wgsl.m3x3f, b: wgsl.m3x3f) => {\n const a_ = a.columns as [wgsl.v3f, wgsl.v3f, wgsl.v3f];\n const b_ = b.columns as [wgsl.v3f, wgsl.v3f, wgsl.v3f];\n\n return mat3x3f(\n a_[0].x * b_[0].x + a_[1].x * b_[0].y + a_[2].x * b_[0].z,\n a_[0].y * b_[0].x + a_[1].y * b_[0].y + a_[2].y * b_[0].z,\n a_[0].z * b_[0].x + a_[1].z * b_[0].y + a_[2].z * b_[0].z,\n\n a_[0].x * b_[1].x + a_[1].x * b_[1].y + a_[2].x * b_[1].z,\n a_[0].y * b_[1].x + a_[1].y * b_[1].y + a_[2].y * b_[1].z,\n a_[0].z * b_[1].x + a_[1].z * b_[1].y + a_[2].z * b_[1].z,\n\n a_[0].x * b_[2].x + a_[1].x * b_[2].y + a_[2].x * b_[2].z,\n a_[0].y * b_[2].x + a_[1].y * b_[2].y + a_[2].y * b_[2].z,\n a_[0].z * b_[2].x + a_[1].z * b_[2].y + a_[2].z * b_[2].z,\n );\n },\n\n mat4x4f: (a: wgsl.m4x4f, b: wgsl.m4x4f) => {\n const a_ = a.columns as [wgsl.v4f, wgsl.v4f, wgsl.v4f, wgsl.v4f];\n const b_ = b.columns as [wgsl.v4f, wgsl.v4f, wgsl.v4f, wgsl.v4f];\n\n return mat4x4f(\n a_[0].x * b_[0].x +\n a_[1].x * b_[0].y +\n a_[2].x * b_[0].z +\n a_[3].x * b_[0].w,\n a_[0].y * b_[0].x +\n a_[1].y * b_[0].y +\n a_[2].y * b_[0].z +\n a_[3].y * b_[0].w,\n a_[0].z * b_[0].x +\n a_[1].z * b_[0].y +\n a_[2].z * b_[0].z +\n a_[3].z * b_[0].w,\n a_[0].w * b_[0].x +\n a_[1].w * b_[0].y +\n a_[2].w * b_[0].z +\n a_[3].w * b_[0].w,\n\n a_[0].x * b_[1].x +\n a_[1].x * b_[1].y +\n a_[2].x * b_[1].z +\n a_[3].x * b_[1].w,\n a_[0].y * b_[1].x +\n a_[1].y * b_[1].y +\n a_[2].y * b_[1].z +\n a_[3].y * b_[1].w,\n a_[0].z * b_[1].x +\n a_[1].z * b_[1].y +\n a_[2].z * b_[1].z +\n a_[3].z * b_[1].w,\n a_[0].w * b_[1].x +\n a_[1].w * b_[1].y +\n a_[2].w * b_[1].z +\n a_[3].w * b_[1].w,\n\n a_[0].x * b_[2].x +\n a_[1].x * b_[2].y +\n a_[2].x * b_[2].z +\n a_[3].x * b_[2].w,\n a_[0].y * b_[2].x +\n a_[1].y * b_[2].y +\n a_[2].y * b_[2].z +\n a_[3].y * b_[2].w,\n a_[0].z * b_[2].x +\n a_[1].z * b_[2].y +\n a_[2].z * b_[2].z +\n a_[3].z * b_[2].w,\n a_[0].w * b_[2].x +\n a_[1].w * b_[2].y +\n a_[2].w * b_[2].z +\n a_[3].w * b_[2].w,\n\n a_[0].x * b_[3].x +\n a_[1].x * b_[3].y +\n a_[2].x * b_[3].z +\n a_[3].x * b_[3].w,\n a_[0].y * b_[3].x +\n a_[1].y * b_[3].y +\n a_[2].y * b_[3].z +\n a_[3].y * b_[3].w,\n a_[0].z * b_[3].x +\n a_[1].z * b_[3].y +\n a_[2].z * b_[3].z +\n a_[3].z * b_[3].w,\n a_[0].w * b_[3].x +\n a_[1].w * b_[3].y +\n a_[2].w * b_[3].z +\n a_[3].w * b_[3].w,\n );\n },\n } as Record<\n VecKind | MatKind,\n <T extends vBase | wgsl.AnyMatInstance>(lhs: T, rhs: T) => T\n >,\n\n mulMxV: {\n mat2x2f: (m: wgsl.m2x2f, v: wgsl.v2f) => {\n const m_ = m.columns as [wgsl.v2f, wgsl.v2f];\n return vec2f(\n m_[0].x * v.x + m_[1].x * v.y,\n m_[0].y * v.x + m_[1].y * v.y,\n );\n },\n\n mat3x3f: (m: wgsl.m3x3f, v: wgsl.v3f) => {\n const m_ = m.columns as [wgsl.v3f, wgsl.v3f, wgsl.v3f];\n return vec3f(\n m_[0].x * v.x + m_[1].x * v.y + m_[2].x * v.z,\n m_[0].y * v.x + m_[1].y * v.y + m_[2].y * v.z,\n m_[0].z * v.x + m_[1].z * v.y + m_[2].z * v.z,\n );\n },\n\n mat4x4f: (m: wgsl.m4x4f, v: wgsl.v4f) => {\n const m_ = m.columns as [wgsl.v4f, wgsl.v4f, wgsl.v4f, wgsl.v4f];\n return vec4f(\n m_[0].x * v.x + m_[1].x * v.y + m_[2].x * v.z + m_[3].x * v.w,\n m_[0].y * v.x + m_[1].y * v.y + m_[2].y * v.z + m_[3].y * v.w,\n m_[0].z * v.x + m_[1].z * v.y + m_[2].z * v.z + m_[3].z * v.w,\n m_[0].w * v.x + m_[1].w * v.y + m_[2].w * v.z + m_[3].w * v.w,\n );\n },\n } as Record<\n MatKind,\n <T extends wgsl.AnyMatInstance>(\n m: T,\n v: wgsl.vBaseForMat<T>,\n ) => wgsl.vBaseForMat<T>\n >,\n\n mulVxM: {\n mat2x2f: (v: wgsl.v2f, m: wgsl.m2x2f) => {\n const m_ = m.columns as [wgsl.v2f, wgsl.v2f];\n return vec2f(\n v.x * m_[0].x + v.y * m_[0].y,\n v.x * m_[1].x + v.y * m_[1].y,\n );\n },\n\n mat3x3f: (v: wgsl.v3f, m: wgsl.m3x3f) => {\n const m_ = m.columns as [wgsl.v3f, wgsl.v3f, wgsl.v3f];\n return vec3f(\n v.x * m_[0].x + v.y * m_[0].y + v.z * m_[0].z,\n v.x * m_[1].x + v.y * m_[1].y + v.z * m_[1].z,\n v.x * m_[2].x + v.y * m_[2].y + v.z * m_[2].z,\n );\n },\n\n mat4x4f: (v: wgsl.v4f, m: wgsl.m4x4f) => {\n const m_ = m.columns as [wgsl.v4f, wgsl.v4f, wgsl.v4f, wgsl.v4f];\n return vec4f(\n v.x * m_[0].x + v.y * m_[0].y + v.z * m_[0].z + v.w * m_[0].w,\n v.x * m_[1].x + v.y * m_[1].y + v.z * m_[1].z + v.w * m_[1].w,\n v.x * m_[2].x + v.y * m_[2].y + v.z * m_[2].z + v.w * m_[2].w,\n v.x * m_[3].x + v.y * m_[3].y + v.z * m_[3].z + v.w * m_[3].w,\n );\n },\n } as Record<\n MatKind,\n <T extends wgsl.AnyMatInstance>(\n v: wgsl.vBaseForMat<T>,\n m: T,\n ) => wgsl.vBaseForMat<T>\n >,\n\n dot: {\n vec2f: dotVec2,\n vec2h: dotVec2,\n vec2i: dotVec2,\n vec2u: dotVec2,\n vec3f: dotVec3,\n vec3h: dotVec3,\n vec3i: dotVec3,\n vec3u: dotVec3,\n vec4f: dotVec4,\n vec4h: dotVec4,\n vec4i: dotVec4,\n vec4u: dotVec4,\n } as Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => number>,\n\n normalize: {\n vec2f: (v: wgsl.v2f) => {\n const len = lengthVec2(v);\n return vec2f(v.x / len, v.y / len);\n },\n vec2h: (v: wgsl.v2h) => {\n const len = lengthVec2(v);\n return vec2h(v.x / len, v.y / len);\n },\n vec2i: (v: wgsl.v2i) => {\n const len = lengthVec2(v);\n return vec2i(v.x / len, v.y / len);\n },\n vec2u: (v: wgsl.v2u) => {\n const len = lengthVec2(v);\n return vec2u(v.x / len, v.y / len);\n },\n\n vec3f: (v: wgsl.v3f) => {\n const len = lengthVec3(v);\n return vec3f(v.x / len, v.y / len, v.z / len);\n },\n vec3h: (v: wgsl.v3h) => {\n const len = lengthVec3(v);\n return vec3h(v.x / len, v.y / len, v.z / len);\n },\n vec3i: (v: wgsl.v3i) => {\n const len = lengthVec3(v);\n return vec3i(v.x / len, v.y / len, v.z / len);\n },\n vec3u: (v: wgsl.v3u) => {\n const len = lengthVec3(v);\n return vec3u(v.x / len, v.y / len, v.z / len);\n },\n\n vec4f: (v: wgsl.v4f) => {\n const len = lengthVec4(v);\n return vec4f(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n vec4h: (v: wgsl.v4h) => {\n const len = lengthVec4(v);\n return vec4h(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n vec4i: (v: wgsl.v4i) => {\n const len = lengthVec4(v);\n return vec4i(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n vec4u: (v: wgsl.v4u) => {\n const len = lengthVec4(v);\n return vec4u(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n cross: {\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => {\n return vec3f(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => {\n return vec3h(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => {\n return vec3i(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => {\n return vec3u(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n } as Record<\n 'vec3f' | 'vec3i' | 'vec3u',\n <T extends wgsl.v3f | wgsl.v3i | wgsl.v3u>(a: T, b: T) => T\n >,\n\n floor: {\n vec2f: (v: wgsl.v2f) => vec2f(Math.floor(v.x), Math.floor(v.y)),\n vec2h: (v: wgsl.v2h) => vec2h(Math.floor(v.x), Math.floor(v.y)),\n vec2i: (v: wgsl.v2i) => vec2i(Math.floor(v.x), Math.floor(v.y)),\n vec2u: (v: wgsl.v2u) => vec2u(Math.floor(v.x), Math.floor(v.y)),\n\n vec3f: (v: wgsl.v3f) =>\n vec3f(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z)),\n vec3h: (v: wgsl.v3h) =>\n vec3h(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z)),\n vec3i: (v: wgsl.v3i) =>\n vec3i(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z)),\n vec3u: (v: wgsl.v3u) =>\n vec3u(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z)),\n\n vec4f: (v: wgsl.v4f) =>\n vec4f(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z), Math.floor(v.w)),\n vec4h: (v: wgsl.v4h) =>\n vec4h(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z), Math.floor(v.w)),\n vec4i: (v: wgsl.v4i) =>\n vec4i(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z), Math.floor(v.w)),\n vec4u: (v: wgsl.v4u) =>\n vec4u(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z), Math.floor(v.w)),\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n max: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) =>\n vec2f(Math.max(a.x, b.x), Math.max(a.y, b.y)),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) =>\n vec2h(Math.max(a.x, b.x), Math.max(a.y, b.y)),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) =>\n vec2i(Math.max(a.x, b.x), Math.max(a.y, b.y)),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) =>\n vec2u(Math.max(a.x, b.x), Math.max(a.y, b.y)),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) =>\n vec3f(Math.max(a.x, b.x), Math.max(a.y, b.y), Math.max(a.z, b.z)),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) =>\n vec3h(Math.max(a.x, b.x), Math.max(a.y, b.y), Math.max(a.z, b.z)),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) =>\n vec3i(Math.max(a.x, b.x), Math.max(a.y, b.y), Math.max(a.z, b.z)),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) =>\n vec3u(Math.max(a.x, b.x), Math.max(a.y, b.y), Math.max(a.z, b.z)),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(\n Math.max(a.x, b.x),\n Math.max(a.y, b.y),\n Math.max(a.z, b.z),\n Math.max(a.w, b.w),\n ),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(\n Math.max(a.x, b.x),\n Math.max(a.y, b.y),\n Math.max(a.z, b.z),\n Math.max(a.w, b.w),\n ),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(\n Math.max(a.x, b.x),\n Math.max(a.y, b.y),\n Math.max(a.z, b.z),\n Math.max(a.w, b.w),\n ),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(\n Math.max(a.x, b.x),\n Math.max(a.y, b.y),\n Math.max(a.z, b.z),\n Math.max(a.w, b.w),\n ),\n } as Record<VecKind, <T extends vBase>(a: T, b: T) => T>,\n\n min: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) =>\n vec2f(Math.min(a.x, b.x), Math.min(a.y, b.y)),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) =>\n vec2h(Math.min(a.x, b.x), Math.min(a.y, b.y)),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) =>\n vec2i(Math.min(a.x, b.x), Math.min(a.y, b.y)),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) =>\n vec2u(Math.min(a.x, b.x), Math.min(a.y, b.y)),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) =>\n vec3f(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z)),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) =>\n vec3h(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z)),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) =>\n vec3i(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z)),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) =>\n vec3u(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z)),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(\n Math.min(a.x, b.x),\n Math.min(a.y, b.y),\n Math.min(a.z, b.z),\n Math.min(a.w, b.w),\n ),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(\n Math.min(a.x, b.x),\n Math.min(a.y, b.y),\n Math.min(a.z, b.z),\n Math.min(a.w, b.w),\n ),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(\n Math.min(a.x, b.x),\n Math.min(a.y, b.y),\n Math.min(a.z, b.z),\n Math.min(a.w, b.w),\n ),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(\n Math.min(a.x, b.x),\n Math.min(a.y, b.y),\n Math.min(a.z, b.z),\n Math.min(a.w, b.w),\n ),\n } as Record<VecKind, <T extends vBase>(a: T, b: T) => T>,\n\n pow: {\n vec2f: (base: wgsl.v2f, exponent: wgsl.v2f) =>\n vec2f(base.x ** exponent.x, base.y ** exponent.y),\n vec2h: (base: wgsl.v2h, exponent: wgsl.v2h) =>\n vec2h(base.x ** exponent.x, base.y ** exponent.y),\n\n vec3f: (base: wgsl.v3f, exponent: wgsl.v3f) =>\n vec3f(base.x ** exponent.x, base.y ** exponent.y, base.z ** exponent.z),\n vec3h: (base: wgsl.v3h, exponent: wgsl.v3h) =>\n vec3h(base.x ** exponent.x, base.y ** exponent.y, base.z ** exponent.z),\n\n vec4f: (base: wgsl.v4f, exponent: wgsl.v4f) =>\n vec4f(\n base.x ** exponent.x,\n base.y ** exponent.y,\n base.z ** exponent.z,\n base.w ** exponent.w,\n ),\n vec4h: (base: wgsl.v4h, exponent: wgsl.v4h) =>\n vec4h(\n base.x ** exponent.x,\n base.y ** exponent.y,\n base.z ** exponent.z,\n base.w ** exponent.w,\n ),\n } as Record<\n 'vec2f' | 'vec3f' | 'vec4f' | 'vec2h' | 'vec3h' | 'vec4h' | 'number',\n <\n T extends\n | wgsl.v2f\n | wgsl.v3f\n | wgsl.v4f\n | wgsl.v2h\n | wgsl.v3h\n | wgsl.v4h\n | number,\n >(\n a: T,\n b: T,\n ) => T\n >,\n\n mix: {\n vec2f: (e1: wgsl.v2f, e2: wgsl.v2f, e3: wgsl.v2f | number) => {\n if (typeof e3 === 'number') {\n return vec2f(e1.x * (1 - e3) + e2.x * e3, e1.y * (1 - e3) + e2.y * e3);\n }\n return vec2f(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n );\n },\n vec2h: (e1: wgsl.v2h, e2: wgsl.v2h, e3: wgsl.v2h | number) => {\n if (typeof e3 === 'number') {\n return vec2h(e1.x * (1 - e3) + e2.x * e3, e1.y * (1 - e3) + e2.y * e3);\n }\n return vec2h(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n );\n },\n\n vec3f: (e1: wgsl.v3f, e2: wgsl.v3f, e3: wgsl.v3f | number) => {\n if (typeof e3 === 'number') {\n return vec3f(\n e1.x * (1 - e3) + e2.x * e3,\n e1.y * (1 - e3) + e2.y * e3,\n e1.z * (1 - e3) + e2.z * e3,\n );\n }\n return vec3f(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n e1.z * (1 - e3.z) + e2.z * e3.z,\n );\n },\n vec3h: (e1: wgsl.v3h, e2: wgsl.v3h, e3: wgsl.v3h | number) => {\n if (typeof e3 === 'number') {\n return vec3h(\n e1.x * (1 - e3) + e2.x * e3,\n e1.y * (1 - e3) + e2.y * e3,\n e1.z * (1 - e3) + e2.z * e3,\n );\n }\n return vec3h(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n e1.z * (1 - e3.z) + e2.z * e3.z,\n );\n },\n\n vec4f: (e1: wgsl.v4f, e2: wgsl.v4f, e3: wgsl.v4f | number) => {\n if (typeof e3 === 'number') {\n return vec4f(\n e1.x * (1 - e3) + e2.x * e3,\n e1.y * (1 - e3) + e2.y * e3,\n e1.z * (1 - e3) + e2.z * e3,\n e1.w * (1 - e3) + e2.w * e3,\n );\n }\n return vec4f(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n e1.z * (1 - e3.z) + e2.z * e3.z,\n e1.w * (1 - e3.w) + e2.w * e3.w,\n );\n },\n vec4h: (e1: wgsl.v4h, e2: wgsl.v4h, e3: wgsl.v4h | number) => {\n if (typeof e3 === 'number') {\n return vec4h(\n e1.x * (1 - e3) + e2.x * e3,\n e1.y * (1 - e3) + e2.y * e3,\n e1.z * (1 - e3) + e2.z * e3,\n e1.w * (1 - e3) + e2.w * e3,\n );\n }\n return vec4h(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n e1.z * (1 - e3.z) + e2.z * e3.z,\n e1.w * (1 - e3.w) + e2.w * e3.w,\n );\n },\n } as Record<\n 'vec2f' | 'vec3f' | 'vec4f' | 'vec2h' | 'vec3h' | 'vec4h',\n <T extends wgsl.v2f | wgsl.v3f | wgsl.v4f | wgsl.v2h | wgsl.v3h | wgsl.v4h>(\n a: T,\n b: T,\n c: T | number,\n ) => T\n >,\n};\n","import { VectorOps } from '../data/vectorOps';\nimport type {\n AnyMatInstance,\n VecKind,\n v2f,\n v2h,\n v3f,\n v3h,\n v3i,\n v3u,\n v4f,\n v4h,\n vBaseForMat,\n} from '../data/wgslTypes';\nimport { inGPUMode } from '../gpuMode';\n\ntype vBase = { kind: VecKind };\n\nexport function add<T extends vBase>(lhs: T, rhs: T): T {\n if (inGPUMode()) {\n return `(${lhs} + ${rhs})` as unknown as T;\n }\n return VectorOps.add[lhs.kind](lhs, rhs);\n}\n\nexport function sub<T extends vBase>(lhs: T, rhs: T): T {\n if (inGPUMode()) {\n return `(${lhs} - ${rhs})` as unknown as T;\n }\n return VectorOps.sub[lhs.kind](lhs, rhs);\n}\n\nexport function mul<T extends AnyMatInstance, TVec extends vBaseForMat<T>>(\n s: T,\n v: TVec,\n): TVec;\nexport function mul<T extends AnyMatInstance, TVec extends vBaseForMat<T>>(\n s: TVec,\n v: T,\n): TVec;\nexport function mul<T extends vBase | AnyMatInstance>(s: number | T, v: T): T;\nexport function mul(\n s: vBase | AnyMatInstance | number,\n v: vBase | AnyMatInstance,\n): vBase | AnyMatInstance {\n if (inGPUMode()) {\n return `(${s} * ${v})` as unknown as vBase | AnyMatInstance;\n }\n if (typeof s === 'number') {\n // Scalar * Vector/Matrix case\n return VectorOps.mulSxV[v.kind](s, v);\n }\n if (\n typeof s === 'object' &&\n typeof v === 'object' &&\n 'kind' in s &&\n 'kind' in v\n ) {\n const sIsVector = !s.kind.startsWith('mat');\n const vIsVector = !v.kind.startsWith('mat');\n if (!sIsVector && vIsVector) {\n // Matrix * Vector case\n return VectorOps.mulMxV[(s as AnyMatInstance).kind](\n s as AnyMatInstance,\n v as vBaseForMat<AnyMatInstance>,\n );\n }\n if (sIsVector && !vIsVector) {\n // Vector * Matrix case\n return VectorOps.mulVxM[(v as AnyMatInstance).kind](\n s as vBaseForMat<AnyMatInstance>,\n v as AnyMatInstance,\n );\n }\n }\n // Vector * Vector or Matrix * Matrix case\n return VectorOps.mulVxV[v.kind](s, v);\n}\n\nexport function abs<T extends vBase | number>(value: T): T {\n if (inGPUMode()) {\n return `abs(${value})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.abs(value) as T;\n }\n return VectorOps.abs[value.kind](value) as T;\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#ceil-builtin\n */\nexport function ceil<T extends vBase | number>(value: T): T {\n if (inGPUMode()) {\n return `ceil(${value})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.ceil(value) as T;\n }\n return VectorOps.ceil[value.kind](value) as T;\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#clamp\n */\nexport function clamp<T extends vBase | number>(value: T, low: T, high: T): T {\n if (inGPUMode()) {\n return `clamp(${value}, ${low}, ${high})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.min(Math.max(low as number, value), high as number) as T;\n }\n return VectorOps.clamp[value.kind](value, low as vBase, high as vBase) as T;\n}\n\n// TODO: Accept vectors into `cos`\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#cos-builtin\n */\nexport function cos(radians: number): number {\n if (inGPUMode()) {\n return `cos(${radians})` as unknown as number;\n }\n return Math.cos(radians);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#cross-builtin\n */\nexport function cross<T extends v3f | v3i | v3u>(a: T, b: T): T {\n if (inGPUMode()) {\n return `cross(${a}, ${b})` as unknown as T;\n }\n return VectorOps.cross[a.kind](a, b);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#dot-builtin\n */\nexport function dot<T extends vBase>(lhs: T, rhs: T): number {\n if (inGPUMode()) {\n return `dot(${lhs}, ${rhs})` as unknown as number;\n }\n return VectorOps.dot[lhs.kind](lhs, rhs);\n}\n\nexport function normalize<T extends vBase>(v: T): T {\n if (inGPUMode()) {\n return `normalize(${v})` as unknown as T;\n }\n return VectorOps.normalize[v.kind](v);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#floor-builtin\n */\nexport function floor<T extends vBase | number>(value: T): T {\n if (inGPUMode()) {\n return `floor(${value})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.floor(value) as T;\n }\n return VectorOps.floor[value.kind](value) as T;\n}\n\nexport function fract(a: number): number {\n if (inGPUMode()) {\n return `fract(${a})` as unknown as number;\n }\n return a - Math.floor(a);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#length-builtin\n */\nexport function length<T extends vBase | number>(value: T): number {\n if (inGPUMode()) {\n return `length(${value})` as unknown as number;\n }\n if (typeof value === 'number') {\n return Math.abs(value);\n }\n return VectorOps.length[value.kind](value);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#max-float-builtin\n */\nexport function max<T extends vBase | number>(a: T, b: T): T {\n if (inGPUMode()) {\n return `max(${a}, ${b})` as unknown as T;\n }\n if (typeof a === 'number') {\n return Math.max(a, b as number) as T;\n }\n return VectorOps.max[a.kind](a, b as vBase) as T;\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#min-float-builtin\n */\nexport function min<T extends vBase | number>(a: T, b: T): T {\n if (inGPUMode()) {\n return `min(${a}, ${b})` as unknown as T;\n }\n if (typeof a === 'number') {\n return Math.min(a, b as number) as T;\n }\n return VectorOps.min[a.kind](a, b as vBase) as T;\n}\n\nexport function sin(radians: number): number {\n if (inGPUMode()) {\n return `sin(${radians})` as unknown as number;\n }\n return Math.sin(radians);\n}\n\nexport function exp(value: number): number {\n if (inGPUMode()) {\n return `exp(${value})` as unknown as number;\n }\n return Math.exp(value);\n}\n\nexport function pow(base: number, exponent: number): number;\nexport function pow<T extends v2f | v3f | v4f | v2h | v3h | v4h>(\n base: T,\n exponent: T,\n): T;\nexport function pow<T extends v2f | v3f | v4f | v2h | v3h | v4h | number>(\n base: T,\n exponent: T,\n): T {\n if (inGPUMode()) {\n return `pow(${base}, ${exponent})` as unknown as T;\n }\n if (typeof base === 'number' && typeof exponent === 'number') {\n return (base ** exponent) as T;\n }\n if (\n typeof base === 'object' &&\n typeof exponent === 'object' &&\n 'kind' in base &&\n 'kind' in exponent\n ) {\n return VectorOps.pow[base.kind](base, exponent) as T;\n }\n throw new Error('Invalid arguments to pow()');\n}\n\nexport function mix(e1: number, e2: number, e3: number): number;\nexport function mix<T extends v2f | v3f | v4f | v2h | v3h | v4h>(\n e1: T,\n e2: T,\n e3: number,\n): T;\nexport function mix<T extends v2f | v3f | v4f | v2h | v3h | v4h>(\n e1: T,\n e2: T,\n e3: T,\n): T;\n\nexport function mix<T extends v2f | v3f | v4f | v2h | v3h | v4h | number>(\n e1: T,\n e2: T,\n e3: T | number,\n): T {\n if (inGPUMode()) {\n return `mix(${e1}, ${e2}, ${e3})` as unknown as T;\n }\n\n if (typeof e1 === 'number') {\n if (typeof e3 !== 'number' || typeof e2 !== 'number') {\n throw new Error(\n 'When e1 and e2 are numbers, the blend factor must be a number.',\n );\n }\n return (e1 * (1 - e3) + e2 * e3) as T;\n }\n\n if (typeof e1 === 'number' || typeof e2 === 'number') {\n throw new Error('e1 and e2 need to both be vectors of the same kind.');\n }\n\n return VectorOps.mix[e1.kind](e1, e2, e3) as T;\n}\n"]}
|
1
|
+
{"version":3,"sources":["/Users/iwo/Projects/wigsill/packages/typegpu/dist/std/index.cjs","../../src/std/discard.ts","../../src/data/vectorOps.ts","../../src/std/numeric.ts","../../src/std/atomic.ts"],"names":["discard","inGPUMode","lengthVec2","v","lengthVec3","lengthVec4","dotVec2","lhs","rhs","dotVec3","dotVec4","clamp","value","low","high","unary2f","op","a","vec2f","unary2h","vec2h","unary2i","vec2i","unary2u","vec2u","unary3f","vec3f","unary3h","vec3h","unary3i","vec3i","unary3u","vec3u","unary4f","vec4f","unary4h","vec4h","unary4i","vec4i","unary4u","vec4u","binaryComponentWise2f","b","binaryComponentWise2h","binaryComponentWise2i","binaryComponentWise2u","binaryComponentWise3f","binaryComponentWise3h","binaryComponentWise3i","binaryComponentWise3u","binaryComponentWise4f","binaryComponentWise4h","binaryComponentWise4i","binaryComponentWise4u","VectorOps","s","m","m_","mat2x2f","mat3x3f","mat4x4f","a_","b_","len","base","exponent","e1","e2","e3","add","sub","mul","sIsVector","vIsVector","abs","atan2","y","x","ceil","cos","radians","cross","dot","normalize","floor","fract","length","max","min","sin","exp","pow","mix","reflect","workgroupBarrier","storageBarrier","textureBarrier","atomicLoad","atomicStore","atomicAdd","atomicSub","atomicMax","atomicMin","atomicAnd","atomicOr","atomicXor"],"mappings":"AAAA,kIAAkJ,SCElIA,EAAAA,CAAAA,CAAiB,CAC/B,EAAA,CAAI,CAACC,iCAAAA,CAAU,CACb,MAAM,IAAI,KAAA,CAAM,wCAAwC,CAAA,CAE1D,MAAO,UACT,CCkBA,IAAMC,CAAAA,CAAcC,CAAAA,EAAU,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAA,EAAK,CAAA,CAAIA,CAAAA,CAAE,CAAA,EAAK,CAAC,CAAA,CACrDC,CAAAA,CAAcD,CAAAA,EAAU,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAA,EAAK,CAAA,CAAIA,CAAAA,CAAE,CAAA,EAAK,CAAA,CAAIA,CAAAA,CAAE,CAAA,EAAK,CAAC,CAAA,CAChEE,CAAAA,CAAcF,CAAAA,EAClB,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAE,CAAA,EAAK,CAAA,CAAIA,CAAAA,CAAE,CAAA,EAAK,CAAA,CAAIA,CAAAA,CAAE,CAAA,EAAK,CAAA,CAAIA,CAAAA,CAAE,CAAA,EAAK,CAAC,CAAA,CAE/CG,CAAAA,CAAU,CAACC,CAAAA,CAASC,CAAAA,CAAAA,EAAYD,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAAID,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAC5DC,CAAAA,CAAU,CAACF,CAAAA,CAASC,CAAAA,CAAAA,EACxBD,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAAID,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAAID,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CACxCE,CAAAA,CAAU,CAACH,CAAAA,CAASC,CAAAA,CAAAA,EACxBD,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAAID,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAAID,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAAID,CAAAA,CAAI,CAAA,CAAIC,CAAAA,CAAI,CAAA,CAExDG,CAAAA,CAAQ,CAACC,CAAAA,CAAeC,CAAAA,CAAaC,CAAAA,CAAAA,EACzC,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAID,CAAAA,CAAKD,CAAK,CAAA,CAAGE,CAAI,CAAA,CAK/BC,CAAAA,CAAWC,CAAAA,EAAiBC,CAAAA,EAAgBC,iCAAAA,CAAMF,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAC,CAAA,CAClEE,CAAAA,CAAWH,CAAAA,EAAiBC,CAAAA,EAAgBG,iCAAAA,CAAMJ,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAC,CAAA,CAClEI,CAAAA,CAAWL,CAAAA,EAAiBC,CAAAA,EAAgBK,iCAAAA,CAAMN,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAC,CAAA,CAClEM,CAAAA,CAAWP,CAAAA,EAAiBC,CAAAA,EAAgBO,iCAAAA,CAAMR,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAC,CAAA,CAElEQ,CAAAA,CAAWT,CAAAA,EAAiBC,CAAAA,EAChCS,iCAAAA,CAAMV,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAC,CAAA,CAE3BU,CAAAA,CAAWX,CAAAA,EAAiBC,CAAAA,EAChCW,iCAAAA,CAAMZ,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAC,CAAA,CAE3BY,CAAAA,CAAWb,CAAAA,EAAiBC,CAAAA,EAChCa,iCAAAA,CAAMd,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAC,CAAA,CAE3Bc,CAAAA,CAAWf,CAAAA,EAAiBC,CAAAA,EAChCe,iCAAAA,CAAMhB,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAC,CAAA,CAE3BgB,CAAAA,CAAWjB,CAAAA,EAAiBC,CAAAA,EAChCiB,iCAAAA,CAAMlB,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAC,CAAA,CAEpCkB,CAAAA,CAAWnB,CAAAA,EAAiBC,CAAAA,EAChCmB,iCAAAA,CAAMpB,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAC,CAAA,CAEpCoB,CAAAA,CAAWrB,CAAAA,EAAiBC,CAAAA,EAChCqB,iCAAAA,CAAMtB,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAC,CAAA,CAEpCsB,CAAAA,CAAWvB,CAAAA,EAAiBC,CAAAA,EAChCuB,iCAAAA,CAAMxB,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAA,CAAGD,CAAAA,CAAGC,CAAAA,CAAE,CAAC,CAAC,CAAA,CAEpCwB,CAAAA,CAAyBzB,CAAAA,EAAiB,CAACC,CAAAA,CAAayB,CAAAA,CAAAA,EAC5DxB,iCAAAA,CAAMF,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAC,CAAA,CAE5BC,CAAAA,CAAyB3B,CAAAA,EAAiB,CAACC,CAAAA,CAAayB,CAAAA,CAAAA,EAC5DtB,iCAAAA,CAAMJ,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAC,CAAA,CAE5BE,CAAAA,CAAyB5B,CAAAA,EAAiB,CAACC,CAAAA,CAAayB,CAAAA,CAAAA,EAC5DpB,iCAAAA,CAAMN,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAC,CAAA,CAE5BG,CAAAA,CAAyB7B,CAAAA,EAAiB,CAACC,CAAAA,CAAayB,CAAAA,CAAAA,EAC5DlB,iCAAAA,CAAMR,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAC,CAAA,CAE5BI,CAAAA,CAAyB9B,CAAAA,EAAiB,CAACC,CAAAA,CAAayB,CAAAA,CAAAA,EAC5DhB,iCAAAA,CAAMV,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAC,CAAA,CAE1CK,CAAAA,CAAyB/B,CAAAA,EAAiB,CAACC,CAAAA,CAAayB,CAAAA,CAAAA,EAC5Dd,iCAAAA,CAAMZ,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAC,CAAA,CAE1CM,CAAAA,CAAyBhC,CAAAA,EAAiB,CAACC,CAAAA,CAAayB,CAAAA,CAAAA,EAC5DZ,iCAAAA,CAAMd,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAC,CAAA,CAE1CO,CAAAA,CAAyBjC,CAAAA,EAAiB,CAACC,CAAAA,CAAayB,CAAAA,CAAAA,EAC5DV,iCAAAA,CAAMhB,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAC,CAAA,CAE1CQ,CAAAA,CAAyBlC,CAAAA,EAAiB,CAACC,CAAAA,CAAayB,CAAAA,CAAAA,EAC5DR,iCAAAA,CAAMlB,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAC,CAAA,CAExDS,CAAAA,CAAyBnC,CAAAA,EAAiB,CAACC,CAAAA,CAAayB,CAAAA,CAAAA,EAC5DN,iCAAAA,CAAMpB,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAC,CAAA,CAExDU,CAAAA,CAAyBpC,CAAAA,EAAiB,CAACC,CAAAA,CAAayB,CAAAA,CAAAA,EAC5DJ,iCAAAA,CAAMtB,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAC,CAAA,CAExDW,CAAAA,CAAyBrC,CAAAA,EAAiB,CAACC,CAAAA,CAAayB,CAAAA,CAAAA,EAC5DF,iCAAAA,CAAMxB,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAA,CAAG1B,CAAAA,CAAGC,CAAAA,CAAE,CAAA,CAAGyB,CAAAA,CAAE,CAAC,CAAC,CAAA,CAEjDY,CAAAA,CAAY,CACvB,GAAA,CAAK,CACH,KAAA,CAAOvC,CAAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,CACvB,KAAA,CAAOI,CAAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,CACvB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,CACvB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,CAEvB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,CACvB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,CACvB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,CACvB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,CAEvB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,CACvB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,CACvB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,CACvB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,GAAG,CACzB,CAAA,CAEA,KAAA,CAAO,CACL,KAAA,CAAOE,CAAAA,CAAsB,IAAA,CAAK,KAAK,CAAA,CACvC,KAAA,CAAOE,CAAAA,CAAsB,IAAA,CAAK,KAAK,CAAA,CACvC,KAAA,CAAOC,CAAAA,CAAsB,IAAA,CAAK,KAAK,CAAA,CACvC,KAAA,CAAOC,CAAAA,CAAsB,IAAA,CAAK,KAAK,CAAA,CAEvC,KAAA,CAAOC,CAAAA,CAAsB,IAAA,CAAK,KAAK,CAAA,CACvC,KAAA,CAAOC,CAAAA,CAAsB,IAAA,CAAK,KAAK,CAAA,CACvC,KAAA,CAAOC,CAAAA,CAAsB,IAAA,CAAK,KAAK,CAAA,CACvC,KAAA,CAAOC,CAAAA,CAAsB,IAAA,CAAK,KAAK,CAAA,CAEvC,KAAA,CAAOC,CAAAA,CAAsB,IAAA,CAAK,KAAK,CAAA,CACvC,KAAA,CAAOC,CAAAA,CAAsB,IAAA,CAAK,KAAK,CAAA,CACvC,KAAA,CAAOC,CAAAA,CAAsB,IAAA,CAAK,KAAK,CAAA,CACvC,KAAA,CAAOC,CAAAA,CAAsB,IAAA,CAAK,KAAK,CACzC,CAAA,CAEA,IAAA,CAAM,CACJ,KAAA,CAAOtC,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAA,CACxB,KAAA,CAAOI,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAA,CACxB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAA,CACxB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAA,CAExB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAA,CACxB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAA,CACxB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAA,CACxB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAA,CAExB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAA,CACxB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAA,CACxB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAA,CACxB,KAAA,CAAOE,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAC1B,CAAA,CAEA,KAAA,CAAO,CACL,KAAA,CAAO,CAACpC,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCI,iCAAAA,CAAMP,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CAAGH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAC,CAAA,CAC5D,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCM,iCAAAA,CAAMT,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CAAGH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAC,CAAA,CAC5D,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCQ,iCAAAA,CAAMX,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CAAGH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAC,CAAA,CAC5D,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCU,iCAAAA,CAAMb,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CAAGH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAC,CAAA,CAE5D,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCY,iCAAAA,CACEf,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CAAA,CACF,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCc,iCAAAA,CACEjB,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CAAA,CACF,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCgB,iCAAAA,CACEnB,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CAAA,CACF,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCkB,iCAAAA,CACErB,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CAAA,CAEF,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCoB,iCAAAA,CACEvB,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CAAA,CACF,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCsB,iCAAAA,CACEzB,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CAAA,CACF,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClCwB,iCAAAA,CACE3B,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CAAA,CACF,KAAA,CAAO,CAACX,CAAAA,CAAaU,CAAAA,CAAeC,CAAAA,CAAAA,EAClC0B,iCAAAA,CACE7B,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAAA,CACxBH,CAAAA,CAAMR,CAAAA,CAAE,CAAA,CAAGU,CAAAA,CAAI,CAAA,CAAGC,CAAAA,CAAK,CAAC,CAC1B,CACJ,CAAA,CAEA,MAAA,CAAQ,CACN,KAAA,CAAOZ,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOE,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOC,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAOA,CACT,CAAA,CAEA,GAAA,CAAK,CACH,KAAA,CAAO,CAACY,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBxB,iCAAAA,CAAMD,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBtB,iCAAAA,CAAMH,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBpB,iCAAAA,CAAML,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBlB,iCAAAA,CAAMP,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAE/D,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBhB,iCAAAA,CAAMT,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBd,iCAAAA,CAAMX,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBZ,iCAAAA,CAAMb,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBV,iCAAAA,CAAMf,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAE1E,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EACnBR,iCAAAA,CAAMjB,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EACnBN,iCAAAA,CAAMnB,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EACnBJ,iCAAAA,CAAMrB,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EACnBF,iCAAAA,CAAMvB,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CACpD,CAAA,CAEA,GAAA,CAAK,CACH,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBxB,iCAAAA,CAAMD,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBtB,iCAAAA,CAAMH,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBpB,iCAAAA,CAAML,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBlB,iCAAAA,CAAMP,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAE/D,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBhB,iCAAAA,CAAMT,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBd,iCAAAA,CAAMX,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBZ,iCAAAA,CAAMb,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBV,iCAAAA,CAAMf,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAE1E,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EACnBR,iCAAAA,CAAMjB,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EACnBN,iCAAAA,CAAMnB,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EACnBJ,iCAAAA,CAAMrB,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EACnBF,iCAAAA,CAAMvB,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CACpD,CAAA,CAEA,MAAA,CAAQ,CACN,KAAA,CAAO,CAACa,CAAAA,CAAWpD,CAAAA,CAAAA,EAAgBe,iCAAAA,CAAMqC,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAC,CAAA,CACzD,KAAA,CAAO,CAACoD,CAAAA,CAAWpD,CAAAA,CAAAA,EAAgBiB,iCAAAA,CAAMmC,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAC,CAAA,CACzD,KAAA,CAAO,CAACoD,CAAAA,CAAWpD,CAAAA,CAAAA,EAAgBmB,iCAAAA,CAAMiC,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAC,CAAA,CACzD,KAAA,CAAO,CAACoD,CAAAA,CAAWpD,CAAAA,CAAAA,EAAgBqB,iCAAAA,CAAM+B,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAC,CAAA,CAEzD,KAAA,CAAO,CAACoD,CAAAA,CAAWpD,CAAAA,CAAAA,EAAgBuB,iCAAAA,CAAM6B,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAC,CAAA,CAClE,KAAA,CAAO,CAACoD,CAAAA,CAAWpD,CAAAA,CAAAA,EAAgByB,iCAAAA,CAAM2B,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAC,CAAA,CAClE,KAAA,CAAO,CAACoD,CAAAA,CAAWpD,CAAAA,CAAAA,EAAgB2B,iCAAAA,CAAMyB,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAC,CAAA,CAClE,KAAA,CAAO,CAACoD,CAAAA,CAAWpD,CAAAA,CAAAA,EAAgB6B,iCAAAA,CAAMuB,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAC,CAAA,CAElE,KAAA,CAAO,CAACoD,CAAAA,CAAWpD,CAAAA,CAAAA,EACjB+B,iCAAAA,CAAMqB,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAC,CAAA,CAC1C,KAAA,CAAO,CAACoD,CAAAA,CAAWpD,CAAAA,CAAAA,EACjBiC,iCAAAA,CAAMmB,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAC,CAAA,CAC1C,KAAA,CAAO,CAACoD,CAAAA,CAAWpD,CAAAA,CAAAA,EACjBmC,iCAAAA,CAAMiB,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAC,CAAA,CAC1C,KAAA,CAAO,CAACoD,CAAAA,CAAWpD,CAAAA,CAAAA,EACjBqC,iCAAAA,CAAMe,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAA,CAAGoD,CAAAA,CAAIpD,CAAAA,CAAE,CAAC,CAAA,CAE1C,OAAA,CAAS,CAACoD,CAAAA,CAAWC,CAAAA,CAAAA,EAAkB,CACrC,IAAMC,CAAAA,CAAKD,CAAAA,CAAE,OAAA,CACb,OAAOE,iCAAAA,CAAQH,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAGF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAGF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAGF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAC,CACnE,CAAA,CAEA,OAAA,CAAS,CAACF,CAAAA,CAAWC,CAAAA,CAAAA,EAAkB,CACrC,IAAMC,CAAAA,CAAKD,CAAAA,CAAE,OAAA,CACb,OAAOG,iCAAAA,CACLJ,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAEVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAEVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CACZ,CACF,CAAA,CAEA,OAAA,CAAS,CAACF,CAAAA,CAAWC,CAAAA,CAAAA,EAAkB,CACrC,IAAMC,CAAAA,CAAKD,CAAAA,CAAE,OAAA,CACb,OAAOI,iCAAAA,CACLL,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAEVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAEVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAEVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACVF,CAAAA,CAAIE,CAAAA,CAAG,CAAC,CAAA,CAAE,CACZ,CACF,CACF,CAAA,CAKA,MAAA,CAAQ,CACN,KAAA,CAAO,CAACxC,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBxB,iCAAAA,CAAMD,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBtB,iCAAAA,CAAMH,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBpB,iCAAAA,CAAML,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC/D,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBlB,iCAAAA,CAAMP,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAE/D,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBhB,iCAAAA,CAAMT,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBd,iCAAAA,CAAMX,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBZ,iCAAAA,CAAMb,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAC1E,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EAAgBV,iCAAAA,CAAMf,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAE1E,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EACnBR,iCAAAA,CAAMjB,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EACnBN,iCAAAA,CAAMnB,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EACnBJ,iCAAAA,CAAMrB,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAClD,KAAA,CAAO,CAACzB,CAAAA,CAAayB,CAAAA,CAAAA,EACnBF,iCAAAA,CAAMvB,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAA,CAAGzB,CAAAA,CAAE,CAAA,CAAIyB,CAAAA,CAAE,CAAC,CAAA,CAElD,OAAA,CAAS,CAACzB,CAAAA,CAAeyB,CAAAA,CAAAA,EAAkB,CACzC,IAAMmB,CAAAA,CAAK5C,CAAAA,CAAE,OAAA,CACP6C,CAAAA,CAAKpB,CAAAA,CAAE,OAAA,CAEb,OAAOgB,iCAAAA,CACLG,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACpCD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAEpCD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACpCD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CACtC,CACF,CAAA,CAEA,OAAA,CAAS,CAAC7C,CAAAA,CAAeyB,CAAAA,CAAAA,EAAkB,CACzC,IAAMmB,CAAAA,CAAK5C,CAAAA,CAAE,OAAA,CACP6C,CAAAA,CAAKpB,CAAAA,CAAE,OAAA,CAEb,OAAOiB,iCAAAA,CACLE,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACxDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACxDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAExDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACxDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACxDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAExDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACxDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CACxDD,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAID,CAAAA,CAAG,CAAC,CAAA,CAAE,CAAA,CAAIC,CAAAA,CAAG,CAAC,CAAA,CAAE,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","file":"/Users/iwo/Projects/wigsill/packages/typegpu/dist/std/index.cjs","sourcesContent":[null,"import { inGPUMode } from '../gpuMode.js';\n\nexport function discard(): never {\n if (!inGPUMode()) {\n throw new Error('discard() can only be used on the GPU.');\n }\n return 'discard;' as never;\n}\n","import { mat2x2f, mat3x3f, mat4x4f } from './matrix';\nimport {\n vec2f,\n vec2h,\n vec2i,\n vec2u,\n vec3f,\n vec3h,\n vec3i,\n vec3u,\n vec4f,\n vec4h,\n vec4i,\n vec4u,\n} from './vector';\nimport type * as wgsl from './wgslTypes';\nimport type { VecKind } from './wgslTypes';\n\ntype vBase = { kind: VecKind };\ntype v2 = wgsl.v2f | wgsl.v2h | wgsl.v2i | wgsl.v2u;\ntype v3 = wgsl.v3f | wgsl.v3h | wgsl.v3i | wgsl.v3u;\ntype v4 = wgsl.v4f | wgsl.v4h | wgsl.v4i | wgsl.v4u;\n\ntype MatKind = 'mat2x2f' | 'mat3x3f' | 'mat4x4f';\n\nconst lengthVec2 = (v: v2) => Math.sqrt(v.x ** 2 + v.y ** 2);\nconst lengthVec3 = (v: v3) => Math.sqrt(v.x ** 2 + v.y ** 2 + v.z ** 2);\nconst lengthVec4 = (v: v4) =>\n Math.sqrt(v.x ** 2 + v.y ** 2 + v.z ** 2 + v.w ** 2);\n\nconst dotVec2 = (lhs: v2, rhs: v2) => lhs.x * rhs.x + lhs.y * rhs.y;\nconst dotVec3 = (lhs: v3, rhs: v3) =>\n lhs.x * rhs.x + lhs.y * rhs.y + lhs.z * rhs.z;\nconst dotVec4 = (lhs: v4, rhs: v4) =>\n lhs.x * rhs.x + lhs.y * rhs.y + lhs.z * rhs.z + lhs.w * rhs.w;\n\nconst clamp = (value: number, low: number, high: number) =>\n Math.min(Math.max(low, value), high);\n\ntype UnaryOp = (a: number) => number;\ntype BinaryOp = (a: number, b: number) => number;\n\nconst unary2f = (op: UnaryOp) => (a: wgsl.v2f) => vec2f(op(a.x), op(a.y));\nconst unary2h = (op: UnaryOp) => (a: wgsl.v2h) => vec2h(op(a.x), op(a.y));\nconst unary2i = (op: UnaryOp) => (a: wgsl.v2i) => vec2i(op(a.x), op(a.y));\nconst unary2u = (op: UnaryOp) => (a: wgsl.v2u) => vec2u(op(a.x), op(a.y));\n\nconst unary3f = (op: UnaryOp) => (a: wgsl.v3f) =>\n vec3f(op(a.x), op(a.y), op(a.z));\n\nconst unary3h = (op: UnaryOp) => (a: wgsl.v3h) =>\n vec3h(op(a.x), op(a.y), op(a.z));\n\nconst unary3i = (op: UnaryOp) => (a: wgsl.v3i) =>\n vec3i(op(a.x), op(a.y), op(a.z));\n\nconst unary3u = (op: UnaryOp) => (a: wgsl.v3u) =>\n vec3u(op(a.x), op(a.y), op(a.z));\n\nconst unary4f = (op: UnaryOp) => (a: wgsl.v4f) =>\n vec4f(op(a.x), op(a.y), op(a.z), op(a.w));\n\nconst unary4h = (op: UnaryOp) => (a: wgsl.v4h) =>\n vec4h(op(a.x), op(a.y), op(a.z), op(a.w));\n\nconst unary4i = (op: UnaryOp) => (a: wgsl.v4i) =>\n vec4i(op(a.x), op(a.y), op(a.z), op(a.w));\n\nconst unary4u = (op: UnaryOp) => (a: wgsl.v4u) =>\n vec4u(op(a.x), op(a.y), op(a.z), op(a.w));\n\nconst binaryComponentWise2f = (op: BinaryOp) => (a: wgsl.v2f, b: wgsl.v2f) =>\n vec2f(op(a.x, b.x), op(a.y, b.y));\n\nconst binaryComponentWise2h = (op: BinaryOp) => (a: wgsl.v2h, b: wgsl.v2h) =>\n vec2h(op(a.x, b.x), op(a.y, b.y));\n\nconst binaryComponentWise2i = (op: BinaryOp) => (a: wgsl.v2i, b: wgsl.v2i) =>\n vec2i(op(a.x, b.x), op(a.y, b.y));\n\nconst binaryComponentWise2u = (op: BinaryOp) => (a: wgsl.v2u, b: wgsl.v2u) =>\n vec2u(op(a.x, b.x), op(a.y, b.y));\n\nconst binaryComponentWise3f = (op: BinaryOp) => (a: wgsl.v3f, b: wgsl.v3f) =>\n vec3f(op(a.x, b.x), op(a.y, b.y), op(a.z, b.z));\n\nconst binaryComponentWise3h = (op: BinaryOp) => (a: wgsl.v3h, b: wgsl.v3h) =>\n vec3h(op(a.x, b.x), op(a.y, b.y), op(a.z, b.z));\n\nconst binaryComponentWise3i = (op: BinaryOp) => (a: wgsl.v3i, b: wgsl.v3i) =>\n vec3i(op(a.x, b.x), op(a.y, b.y), op(a.z, b.z));\n\nconst binaryComponentWise3u = (op: BinaryOp) => (a: wgsl.v3u, b: wgsl.v3u) =>\n vec3u(op(a.x, b.x), op(a.y, b.y), op(a.z, b.z));\n\nconst binaryComponentWise4f = (op: BinaryOp) => (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(op(a.x, b.x), op(a.y, b.y), op(a.z, b.z), op(a.w, b.w));\n\nconst binaryComponentWise4h = (op: BinaryOp) => (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(op(a.x, b.x), op(a.y, b.y), op(a.z, b.z), op(a.w, b.w));\n\nconst binaryComponentWise4i = (op: BinaryOp) => (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(op(a.x, b.x), op(a.y, b.y), op(a.z, b.z), op(a.w, b.w));\n\nconst binaryComponentWise4u = (op: BinaryOp) => (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(op(a.x, b.x), op(a.y, b.y), op(a.z, b.z), op(a.w, b.w));\n\nexport const VectorOps = {\n abs: {\n vec2f: unary2f(Math.abs),\n vec2h: unary2h(Math.abs),\n vec2i: unary2i(Math.abs),\n vec2u: unary2u(Math.abs),\n\n vec3f: unary3f(Math.abs),\n vec3h: unary3h(Math.abs),\n vec3i: unary3i(Math.abs),\n vec3u: unary3u(Math.abs),\n\n vec4f: unary4f(Math.abs),\n vec4h: unary4h(Math.abs),\n vec4i: unary4i(Math.abs),\n vec4u: unary4u(Math.abs),\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n atan2: {\n vec2f: binaryComponentWise2f(Math.atan2),\n vec2h: binaryComponentWise2h(Math.atan2),\n vec2i: binaryComponentWise2i(Math.atan2),\n vec2u: binaryComponentWise2u(Math.atan2),\n\n vec3f: binaryComponentWise3f(Math.atan2),\n vec3h: binaryComponentWise3h(Math.atan2),\n vec3i: binaryComponentWise3i(Math.atan2),\n vec3u: binaryComponentWise3u(Math.atan2),\n\n vec4f: binaryComponentWise4f(Math.atan2),\n vec4h: binaryComponentWise4h(Math.atan2),\n vec4i: binaryComponentWise4i(Math.atan2),\n vec4u: binaryComponentWise4u(Math.atan2),\n } as Record<VecKind, <T extends vBase>(a: T, b: T) => T>,\n\n ceil: {\n vec2f: unary2f(Math.ceil),\n vec2h: unary2h(Math.ceil),\n vec2i: unary2i(Math.ceil),\n vec2u: unary2u(Math.ceil),\n\n vec3f: unary3f(Math.ceil),\n vec3h: unary3h(Math.ceil),\n vec3i: unary3i(Math.ceil),\n vec3u: unary3u(Math.ceil),\n\n vec4f: unary4f(Math.ceil),\n vec4h: unary4h(Math.ceil),\n vec4i: unary4i(Math.ceil),\n vec4u: unary4u(Math.ceil),\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n clamp: {\n vec2f: (v: wgsl.v2f, low: wgsl.v2f, high: wgsl.v2f) =>\n vec2f(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n vec2h: (v: wgsl.v2h, low: wgsl.v2h, high: wgsl.v2h) =>\n vec2h(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n vec2i: (v: wgsl.v2i, low: wgsl.v2i, high: wgsl.v2i) =>\n vec2i(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n vec2u: (v: wgsl.v2u, low: wgsl.v2u, high: wgsl.v2u) =>\n vec2u(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n\n vec3f: (v: wgsl.v3f, low: wgsl.v3f, high: wgsl.v3f) =>\n vec3f(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n vec3h: (v: wgsl.v3h, low: wgsl.v3h, high: wgsl.v3h) =>\n vec3h(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n vec3i: (v: wgsl.v3i, low: wgsl.v3i, high: wgsl.v3f) =>\n vec3i(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n vec3u: (v: wgsl.v3u, low: wgsl.v3u, high: wgsl.v3f) =>\n vec3u(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n\n vec4f: (v: wgsl.v4f, low: wgsl.v4f, high: wgsl.v4f) =>\n vec4f(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n vec4h: (v: wgsl.v4h, low: wgsl.v4h, high: wgsl.v4h) =>\n vec4h(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n vec4i: (v: wgsl.v4i, low: wgsl.v4i, high: wgsl.v4i) =>\n vec4i(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n vec4u: (v: wgsl.v4u, low: wgsl.v4u, high: wgsl.v4u) =>\n vec4u(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n } as Record<VecKind, <T extends vBase>(v: T, low: T, high: T) => T>,\n\n length: {\n vec2f: lengthVec2,\n vec2h: lengthVec2,\n vec2i: lengthVec2,\n vec2u: lengthVec2,\n vec3f: lengthVec3,\n vec3h: lengthVec3,\n vec3i: lengthVec3,\n vec3u: lengthVec3,\n vec4f: lengthVec4,\n vec4h: lengthVec4,\n vec4i: lengthVec4,\n vec4u: lengthVec4,\n } as Record<VecKind, (v: vBase) => number>,\n\n add: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) => vec2f(a.x + b.x, a.y + b.y),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) => vec2h(a.x + b.x, a.y + b.y),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) => vec2i(a.x + b.x, a.y + b.y),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) => vec2u(a.x + b.x, a.y + b.y),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => vec3f(a.x + b.x, a.y + b.y, a.z + b.z),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => vec3h(a.x + b.x, a.y + b.y, a.z + b.z),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => vec3i(a.x + b.x, a.y + b.y, a.z + b.z),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => vec3u(a.x + b.x, a.y + b.y, a.z + b.z),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n } as Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => T>,\n\n sub: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) => vec2f(a.x - b.x, a.y - b.y),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) => vec2h(a.x - b.x, a.y - b.y),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) => vec2i(a.x - b.x, a.y - b.y),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) => vec2u(a.x - b.x, a.y - b.y),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => vec3f(a.x - b.x, a.y - b.y, a.z - b.z),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => vec3h(a.x - b.x, a.y - b.y, a.z - b.z),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => vec3i(a.x - b.x, a.y - b.y, a.z - b.z),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => vec3u(a.x - b.x, a.y - b.y, a.z - b.z),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n } as Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => T>,\n\n mulSxV: {\n vec2f: (s: number, v: wgsl.v2f) => vec2f(s * v.x, s * v.y),\n vec2h: (s: number, v: wgsl.v2h) => vec2h(s * v.x, s * v.y),\n vec2i: (s: number, v: wgsl.v2i) => vec2i(s * v.x, s * v.y),\n vec2u: (s: number, v: wgsl.v2u) => vec2u(s * v.x, s * v.y),\n\n vec3f: (s: number, v: wgsl.v3f) => vec3f(s * v.x, s * v.y, s * v.z),\n vec3h: (s: number, v: wgsl.v3h) => vec3h(s * v.x, s * v.y, s * v.z),\n vec3i: (s: number, v: wgsl.v3i) => vec3i(s * v.x, s * v.y, s * v.z),\n vec3u: (s: number, v: wgsl.v3u) => vec3u(s * v.x, s * v.y, s * v.z),\n\n vec4f: (s: number, v: wgsl.v4f) =>\n vec4f(s * v.x, s * v.y, s * v.z, s * v.w),\n vec4h: (s: number, v: wgsl.v4h) =>\n vec4h(s * v.x, s * v.y, s * v.z, s * v.w),\n vec4i: (s: number, v: wgsl.v4i) =>\n vec4i(s * v.x, s * v.y, s * v.z, s * v.w),\n vec4u: (s: number, v: wgsl.v4u) =>\n vec4u(s * v.x, s * v.y, s * v.z, s * v.w),\n\n mat2x2f: (s: number, m: wgsl.m2x2f) => {\n const m_ = m.columns as [wgsl.v2f, wgsl.v2f];\n return mat2x2f(s * m_[0].x, s * m_[0].y, s * m_[1].x, s * m_[1].y);\n },\n\n mat3x3f: (s: number, m: wgsl.m3x3f) => {\n const m_ = m.columns as [wgsl.v3f, wgsl.v3f, wgsl.v3f];\n return mat3x3f(\n s * m_[0].x,\n s * m_[0].y,\n s * m_[0].z,\n\n s * m_[1].x,\n s * m_[1].y,\n s * m_[1].z,\n\n s * m_[2].x,\n s * m_[2].y,\n s * m_[2].z,\n );\n },\n\n mat4x4f: (s: number, m: wgsl.m4x4f) => {\n const m_ = m.columns as [wgsl.v4f, wgsl.v4f, wgsl.v4f, wgsl.v4f];\n return mat4x4f(\n s * m_[0].x,\n s * m_[0].y,\n s * m_[0].z,\n s * m_[0].w,\n\n s * m_[1].x,\n s * m_[1].y,\n s * m_[1].z,\n s * m_[1].w,\n\n s * m_[2].x,\n s * m_[2].y,\n s * m_[2].z,\n s * m_[2].w,\n\n s * m_[3].x,\n s * m_[3].y,\n s * m_[3].z,\n s * m_[3].w,\n );\n },\n } as Record<\n VecKind | MatKind,\n <T extends vBase | wgsl.AnyMatInstance>(s: number, v: T) => T\n >,\n\n mulVxV: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) => vec2f(a.x * b.x, a.y * b.y),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) => vec2h(a.x * b.x, a.y * b.y),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) => vec2i(a.x * b.x, a.y * b.y),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) => vec2u(a.x * b.x, a.y * b.y),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => vec3f(a.x * b.x, a.y * b.y, a.z * b.z),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => vec3h(a.x * b.x, a.y * b.y, a.z * b.z),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => vec3i(a.x * b.x, a.y * b.y, a.z * b.z),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => vec3u(a.x * b.x, a.y * b.y, a.z * b.z),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n\n mat2x2f: (a: wgsl.m2x2f, b: wgsl.m2x2f) => {\n const a_ = a.columns as [wgsl.v2f, wgsl.v2f];\n const b_ = b.columns as [wgsl.v2f, wgsl.v2f];\n\n return mat2x2f(\n a_[0].x * b_[0].x + a_[1].x * b_[0].y,\n a_[0].y * b_[0].x + a_[1].y * b_[0].y,\n\n a_[0].x * b_[1].x + a_[1].x * b_[1].y,\n a_[0].y * b_[1].x + a_[1].y * b_[1].y,\n );\n },\n\n mat3x3f: (a: wgsl.m3x3f, b: wgsl.m3x3f) => {\n const a_ = a.columns as [wgsl.v3f, wgsl.v3f, wgsl.v3f];\n const b_ = b.columns as [wgsl.v3f, wgsl.v3f, wgsl.v3f];\n\n return mat3x3f(\n a_[0].x * b_[0].x + a_[1].x * b_[0].y + a_[2].x * b_[0].z,\n a_[0].y * b_[0].x + a_[1].y * b_[0].y + a_[2].y * b_[0].z,\n a_[0].z * b_[0].x + a_[1].z * b_[0].y + a_[2].z * b_[0].z,\n\n a_[0].x * b_[1].x + a_[1].x * b_[1].y + a_[2].x * b_[1].z,\n a_[0].y * b_[1].x + a_[1].y * b_[1].y + a_[2].y * b_[1].z,\n a_[0].z * b_[1].x + a_[1].z * b_[1].y + a_[2].z * b_[1].z,\n\n a_[0].x * b_[2].x + a_[1].x * b_[2].y + a_[2].x * b_[2].z,\n a_[0].y * b_[2].x + a_[1].y * b_[2].y + a_[2].y * b_[2].z,\n a_[0].z * b_[2].x + a_[1].z * b_[2].y + a_[2].z * b_[2].z,\n );\n },\n\n mat4x4f: (a: wgsl.m4x4f, b: wgsl.m4x4f) => {\n const a_ = a.columns as [wgsl.v4f, wgsl.v4f, wgsl.v4f, wgsl.v4f];\n const b_ = b.columns as [wgsl.v4f, wgsl.v4f, wgsl.v4f, wgsl.v4f];\n\n return mat4x4f(\n a_[0].x * b_[0].x +\n a_[1].x * b_[0].y +\n a_[2].x * b_[0].z +\n a_[3].x * b_[0].w,\n a_[0].y * b_[0].x +\n a_[1].y * b_[0].y +\n a_[2].y * b_[0].z +\n a_[3].y * b_[0].w,\n a_[0].z * b_[0].x +\n a_[1].z * b_[0].y +\n a_[2].z * b_[0].z +\n a_[3].z * b_[0].w,\n a_[0].w * b_[0].x +\n a_[1].w * b_[0].y +\n a_[2].w * b_[0].z +\n a_[3].w * b_[0].w,\n\n a_[0].x * b_[1].x +\n a_[1].x * b_[1].y +\n a_[2].x * b_[1].z +\n a_[3].x * b_[1].w,\n a_[0].y * b_[1].x +\n a_[1].y * b_[1].y +\n a_[2].y * b_[1].z +\n a_[3].y * b_[1].w,\n a_[0].z * b_[1].x +\n a_[1].z * b_[1].y +\n a_[2].z * b_[1].z +\n a_[3].z * b_[1].w,\n a_[0].w * b_[1].x +\n a_[1].w * b_[1].y +\n a_[2].w * b_[1].z +\n a_[3].w * b_[1].w,\n\n a_[0].x * b_[2].x +\n a_[1].x * b_[2].y +\n a_[2].x * b_[2].z +\n a_[3].x * b_[2].w,\n a_[0].y * b_[2].x +\n a_[1].y * b_[2].y +\n a_[2].y * b_[2].z +\n a_[3].y * b_[2].w,\n a_[0].z * b_[2].x +\n a_[1].z * b_[2].y +\n a_[2].z * b_[2].z +\n a_[3].z * b_[2].w,\n a_[0].w * b_[2].x +\n a_[1].w * b_[2].y +\n a_[2].w * b_[2].z +\n a_[3].w * b_[2].w,\n\n a_[0].x * b_[3].x +\n a_[1].x * b_[3].y +\n a_[2].x * b_[3].z +\n a_[3].x * b_[3].w,\n a_[0].y * b_[3].x +\n a_[1].y * b_[3].y +\n a_[2].y * b_[3].z +\n a_[3].y * b_[3].w,\n a_[0].z * b_[3].x +\n a_[1].z * b_[3].y +\n a_[2].z * b_[3].z +\n a_[3].z * b_[3].w,\n a_[0].w * b_[3].x +\n a_[1].w * b_[3].y +\n a_[2].w * b_[3].z +\n a_[3].w * b_[3].w,\n );\n },\n } as Record<\n VecKind | MatKind,\n <T extends vBase | wgsl.AnyMatInstance>(lhs: T, rhs: T) => T\n >,\n\n mulMxV: {\n mat2x2f: (m: wgsl.m2x2f, v: wgsl.v2f) => {\n const m_ = m.columns as [wgsl.v2f, wgsl.v2f];\n return vec2f(\n m_[0].x * v.x + m_[1].x * v.y,\n m_[0].y * v.x + m_[1].y * v.y,\n );\n },\n\n mat3x3f: (m: wgsl.m3x3f, v: wgsl.v3f) => {\n const m_ = m.columns as [wgsl.v3f, wgsl.v3f, wgsl.v3f];\n return vec3f(\n m_[0].x * v.x + m_[1].x * v.y + m_[2].x * v.z,\n m_[0].y * v.x + m_[1].y * v.y + m_[2].y * v.z,\n m_[0].z * v.x + m_[1].z * v.y + m_[2].z * v.z,\n );\n },\n\n mat4x4f: (m: wgsl.m4x4f, v: wgsl.v4f) => {\n const m_ = m.columns as [wgsl.v4f, wgsl.v4f, wgsl.v4f, wgsl.v4f];\n return vec4f(\n m_[0].x * v.x + m_[1].x * v.y + m_[2].x * v.z + m_[3].x * v.w,\n m_[0].y * v.x + m_[1].y * v.y + m_[2].y * v.z + m_[3].y * v.w,\n m_[0].z * v.x + m_[1].z * v.y + m_[2].z * v.z + m_[3].z * v.w,\n m_[0].w * v.x + m_[1].w * v.y + m_[2].w * v.z + m_[3].w * v.w,\n );\n },\n } as Record<\n MatKind,\n <T extends wgsl.AnyMatInstance>(\n m: T,\n v: wgsl.vBaseForMat<T>,\n ) => wgsl.vBaseForMat<T>\n >,\n\n mulVxM: {\n mat2x2f: (v: wgsl.v2f, m: wgsl.m2x2f) => {\n const m_ = m.columns as [wgsl.v2f, wgsl.v2f];\n return vec2f(\n v.x * m_[0].x + v.y * m_[0].y,\n v.x * m_[1].x + v.y * m_[1].y,\n );\n },\n\n mat3x3f: (v: wgsl.v3f, m: wgsl.m3x3f) => {\n const m_ = m.columns as [wgsl.v3f, wgsl.v3f, wgsl.v3f];\n return vec3f(\n v.x * m_[0].x + v.y * m_[0].y + v.z * m_[0].z,\n v.x * m_[1].x + v.y * m_[1].y + v.z * m_[1].z,\n v.x * m_[2].x + v.y * m_[2].y + v.z * m_[2].z,\n );\n },\n\n mat4x4f: (v: wgsl.v4f, m: wgsl.m4x4f) => {\n const m_ = m.columns as [wgsl.v4f, wgsl.v4f, wgsl.v4f, wgsl.v4f];\n return vec4f(\n v.x * m_[0].x + v.y * m_[0].y + v.z * m_[0].z + v.w * m_[0].w,\n v.x * m_[1].x + v.y * m_[1].y + v.z * m_[1].z + v.w * m_[1].w,\n v.x * m_[2].x + v.y * m_[2].y + v.z * m_[2].z + v.w * m_[2].w,\n v.x * m_[3].x + v.y * m_[3].y + v.z * m_[3].z + v.w * m_[3].w,\n );\n },\n } as Record<\n MatKind,\n <T extends wgsl.AnyMatInstance>(\n v: wgsl.vBaseForMat<T>,\n m: T,\n ) => wgsl.vBaseForMat<T>\n >,\n\n dot: {\n vec2f: dotVec2,\n vec2h: dotVec2,\n vec2i: dotVec2,\n vec2u: dotVec2,\n vec3f: dotVec3,\n vec3h: dotVec3,\n vec3i: dotVec3,\n vec3u: dotVec3,\n vec4f: dotVec4,\n vec4h: dotVec4,\n vec4i: dotVec4,\n vec4u: dotVec4,\n } as Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => number>,\n\n normalize: {\n vec2f: (v: wgsl.v2f) => {\n const len = lengthVec2(v);\n return vec2f(v.x / len, v.y / len);\n },\n vec2h: (v: wgsl.v2h) => {\n const len = lengthVec2(v);\n return vec2h(v.x / len, v.y / len);\n },\n vec2i: (v: wgsl.v2i) => {\n const len = lengthVec2(v);\n return vec2i(v.x / len, v.y / len);\n },\n vec2u: (v: wgsl.v2u) => {\n const len = lengthVec2(v);\n return vec2u(v.x / len, v.y / len);\n },\n\n vec3f: (v: wgsl.v3f) => {\n const len = lengthVec3(v);\n return vec3f(v.x / len, v.y / len, v.z / len);\n },\n vec3h: (v: wgsl.v3h) => {\n const len = lengthVec3(v);\n return vec3h(v.x / len, v.y / len, v.z / len);\n },\n vec3i: (v: wgsl.v3i) => {\n const len = lengthVec3(v);\n return vec3i(v.x / len, v.y / len, v.z / len);\n },\n vec3u: (v: wgsl.v3u) => {\n const len = lengthVec3(v);\n return vec3u(v.x / len, v.y / len, v.z / len);\n },\n\n vec4f: (v: wgsl.v4f) => {\n const len = lengthVec4(v);\n return vec4f(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n vec4h: (v: wgsl.v4h) => {\n const len = lengthVec4(v);\n return vec4h(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n vec4i: (v: wgsl.v4i) => {\n const len = lengthVec4(v);\n return vec4i(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n vec4u: (v: wgsl.v4u) => {\n const len = lengthVec4(v);\n return vec4u(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n cross: {\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => {\n return vec3f(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => {\n return vec3h(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => {\n return vec3i(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => {\n return vec3u(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n } as Record<\n 'vec3f' | 'vec3i' | 'vec3u',\n <T extends wgsl.v3f | wgsl.v3i | wgsl.v3u>(a: T, b: T) => T\n >,\n\n floor: {\n vec2f: unary2f(Math.floor),\n vec2h: unary2h(Math.floor),\n vec2i: unary2i(Math.floor),\n vec2u: unary2u(Math.floor),\n\n vec3f: unary3f(Math.floor),\n vec3h: unary3h(Math.floor),\n vec3i: unary3i(Math.floor),\n vec3u: unary3u(Math.floor),\n\n vec4f: unary4f(Math.floor),\n vec4h: unary4h(Math.floor),\n vec4i: unary4i(Math.floor),\n vec4u: unary4u(Math.floor),\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n max: {\n vec2f: binaryComponentWise2f(Math.max),\n vec2h: binaryComponentWise2h(Math.max),\n vec2i: binaryComponentWise2i(Math.max),\n vec2u: binaryComponentWise2u(Math.max),\n\n vec3f: binaryComponentWise3f(Math.max),\n vec3h: binaryComponentWise3h(Math.max),\n vec3i: binaryComponentWise3i(Math.max),\n vec3u: binaryComponentWise3u(Math.max),\n\n vec4f: binaryComponentWise4f(Math.max),\n vec4h: binaryComponentWise4h(Math.max),\n vec4i: binaryComponentWise4i(Math.max),\n vec4u: binaryComponentWise4u(Math.max),\n } as Record<VecKind, <T extends vBase>(a: T, b: T) => T>,\n\n min: {\n vec2f: binaryComponentWise2f(Math.min),\n vec2h: binaryComponentWise2h(Math.min),\n vec2i: binaryComponentWise2i(Math.min),\n vec2u: binaryComponentWise2u(Math.min),\n\n vec3f: binaryComponentWise3f(Math.min),\n vec3h: binaryComponentWise3h(Math.min),\n vec3i: binaryComponentWise3i(Math.min),\n vec3u: binaryComponentWise3u(Math.min),\n\n vec4f: binaryComponentWise4f(Math.min),\n vec4h: binaryComponentWise4h(Math.min),\n vec4i: binaryComponentWise4i(Math.min),\n vec4u: binaryComponentWise4u(Math.min),\n } as Record<VecKind, <T extends vBase>(a: T, b: T) => T>,\n\n pow: {\n vec2f: (base: wgsl.v2f, exponent: wgsl.v2f) =>\n vec2f(base.x ** exponent.x, base.y ** exponent.y),\n vec2h: (base: wgsl.v2h, exponent: wgsl.v2h) =>\n vec2h(base.x ** exponent.x, base.y ** exponent.y),\n\n vec3f: (base: wgsl.v3f, exponent: wgsl.v3f) =>\n vec3f(base.x ** exponent.x, base.y ** exponent.y, base.z ** exponent.z),\n vec3h: (base: wgsl.v3h, exponent: wgsl.v3h) =>\n vec3h(base.x ** exponent.x, base.y ** exponent.y, base.z ** exponent.z),\n\n vec4f: (base: wgsl.v4f, exponent: wgsl.v4f) =>\n vec4f(\n base.x ** exponent.x,\n base.y ** exponent.y,\n base.z ** exponent.z,\n base.w ** exponent.w,\n ),\n vec4h: (base: wgsl.v4h, exponent: wgsl.v4h) =>\n vec4h(\n base.x ** exponent.x,\n base.y ** exponent.y,\n base.z ** exponent.z,\n base.w ** exponent.w,\n ),\n } as Record<\n 'vec2f' | 'vec3f' | 'vec4f' | 'vec2h' | 'vec3h' | 'vec4h' | 'number',\n <\n T extends\n | wgsl.v2f\n | wgsl.v3f\n | wgsl.v4f\n | wgsl.v2h\n | wgsl.v3h\n | wgsl.v4h\n | number,\n >(\n a: T,\n b: T,\n ) => T\n >,\n\n mix: {\n vec2f: (e1: wgsl.v2f, e2: wgsl.v2f, e3: wgsl.v2f | number) => {\n if (typeof e3 === 'number') {\n return vec2f(e1.x * (1 - e3) + e2.x * e3, e1.y * (1 - e3) + e2.y * e3);\n }\n return vec2f(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n );\n },\n vec2h: (e1: wgsl.v2h, e2: wgsl.v2h, e3: wgsl.v2h | number) => {\n if (typeof e3 === 'number') {\n return vec2h(e1.x * (1 - e3) + e2.x * e3, e1.y * (1 - e3) + e2.y * e3);\n }\n return vec2h(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n );\n },\n\n vec3f: (e1: wgsl.v3f, e2: wgsl.v3f, e3: wgsl.v3f | number) => {\n if (typeof e3 === 'number') {\n return vec3f(\n e1.x * (1 - e3) + e2.x * e3,\n e1.y * (1 - e3) + e2.y * e3,\n e1.z * (1 - e3) + e2.z * e3,\n );\n }\n return vec3f(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n e1.z * (1 - e3.z) + e2.z * e3.z,\n );\n },\n vec3h: (e1: wgsl.v3h, e2: wgsl.v3h, e3: wgsl.v3h | number) => {\n if (typeof e3 === 'number') {\n return vec3h(\n e1.x * (1 - e3) + e2.x * e3,\n e1.y * (1 - e3) + e2.y * e3,\n e1.z * (1 - e3) + e2.z * e3,\n );\n }\n return vec3h(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n e1.z * (1 - e3.z) + e2.z * e3.z,\n );\n },\n\n vec4f: (e1: wgsl.v4f, e2: wgsl.v4f, e3: wgsl.v4f | number) => {\n if (typeof e3 === 'number') {\n return vec4f(\n e1.x * (1 - e3) + e2.x * e3,\n e1.y * (1 - e3) + e2.y * e3,\n e1.z * (1 - e3) + e2.z * e3,\n e1.w * (1 - e3) + e2.w * e3,\n );\n }\n return vec4f(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n e1.z * (1 - e3.z) + e2.z * e3.z,\n e1.w * (1 - e3.w) + e2.w * e3.w,\n );\n },\n vec4h: (e1: wgsl.v4h, e2: wgsl.v4h, e3: wgsl.v4h | number) => {\n if (typeof e3 === 'number') {\n return vec4h(\n e1.x * (1 - e3) + e2.x * e3,\n e1.y * (1 - e3) + e2.y * e3,\n e1.z * (1 - e3) + e2.z * e3,\n e1.w * (1 - e3) + e2.w * e3,\n );\n }\n return vec4h(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n e1.z * (1 - e3.z) + e2.z * e3.z,\n e1.w * (1 - e3.w) + e2.w * e3.w,\n );\n },\n } as Record<\n 'vec2f' | 'vec3f' | 'vec4f' | 'vec2h' | 'vec3h' | 'vec4h',\n <T extends wgsl.v2f | wgsl.v3f | wgsl.v4f | wgsl.v2h | wgsl.v3h | wgsl.v4h>(\n a: T,\n b: T,\n c: T | number,\n ) => T\n >,\n};\n","import { VectorOps } from '../data/vectorOps';\nimport type {\n AnyMatInstance,\n VecKind,\n v2f,\n v2h,\n v3f,\n v3h,\n v3i,\n v3u,\n v4f,\n v4h,\n vBaseForMat,\n} from '../data/wgslTypes';\nimport { inGPUMode } from '../gpuMode';\n\ntype vBase = { kind: VecKind };\n\nexport function add<T extends vBase>(lhs: T, rhs: T): T {\n if (inGPUMode()) {\n return `(${lhs} + ${rhs})` as unknown as T;\n }\n return VectorOps.add[lhs.kind](lhs, rhs);\n}\n\nexport function sub<T extends vBase>(lhs: T, rhs: T): T {\n if (inGPUMode()) {\n return `(${lhs} - ${rhs})` as unknown as T;\n }\n return VectorOps.sub[lhs.kind](lhs, rhs);\n}\n\nexport function mul<T extends AnyMatInstance, TVec extends vBaseForMat<T>>(\n s: T,\n v: TVec,\n): TVec;\nexport function mul<T extends AnyMatInstance, TVec extends vBaseForMat<T>>(\n s: TVec,\n v: T,\n): TVec;\nexport function mul<T extends vBase | AnyMatInstance>(s: number | T, v: T): T;\nexport function mul(\n s: vBase | AnyMatInstance | number,\n v: vBase | AnyMatInstance,\n): vBase | AnyMatInstance {\n if (inGPUMode()) {\n return `(${s} * ${v})` as unknown as vBase | AnyMatInstance;\n }\n if (typeof s === 'number') {\n // Scalar * Vector/Matrix case\n return VectorOps.mulSxV[v.kind](s, v);\n }\n if (\n typeof s === 'object' &&\n typeof v === 'object' &&\n 'kind' in s &&\n 'kind' in v\n ) {\n const sIsVector = !s.kind.startsWith('mat');\n const vIsVector = !v.kind.startsWith('mat');\n if (!sIsVector && vIsVector) {\n // Matrix * Vector case\n return VectorOps.mulMxV[(s as AnyMatInstance).kind](\n s as AnyMatInstance,\n v as vBaseForMat<AnyMatInstance>,\n );\n }\n if (sIsVector && !vIsVector) {\n // Vector * Matrix case\n return VectorOps.mulVxM[(v as AnyMatInstance).kind](\n s as vBaseForMat<AnyMatInstance>,\n v as AnyMatInstance,\n );\n }\n }\n // Vector * Vector or Matrix * Matrix case\n return VectorOps.mulVxV[v.kind](s, v);\n}\n\nexport function abs<T extends vBase | number>(value: T): T {\n if (inGPUMode()) {\n return `abs(${value})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.abs(value) as T;\n }\n return VectorOps.abs[value.kind](value) as T;\n}\n\nexport function atan2<T extends vBase | number>(y: T, x: T): T {\n if (inGPUMode()) {\n return `atan2(${y}, ${x})` as unknown as T;\n }\n if (typeof y === 'number' && typeof x === 'number') {\n return Math.atan2(y, x) as T;\n }\n return VectorOps.atan2[(y as vBase).kind](y as never, x as never) as T;\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#ceil-builtin\n */\nexport function ceil<T extends vBase | number>(value: T): T {\n if (inGPUMode()) {\n return `ceil(${value})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.ceil(value) as T;\n }\n return VectorOps.ceil[value.kind](value) as T;\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#clamp\n */\nexport function clamp<T extends vBase | number>(value: T, low: T, high: T): T {\n if (inGPUMode()) {\n return `clamp(${value}, ${low}, ${high})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.min(Math.max(low as number, value), high as number) as T;\n }\n return VectorOps.clamp[value.kind](value, low as vBase, high as vBase) as T;\n}\n\n// TODO: Accept vectors into `cos`\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#cos-builtin\n */\nexport function cos(radians: number): number {\n if (inGPUMode()) {\n return `cos(${radians})` as unknown as number;\n }\n return Math.cos(radians);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#cross-builtin\n */\nexport function cross<T extends v3f | v3i | v3u>(a: T, b: T): T {\n if (inGPUMode()) {\n return `cross(${a}, ${b})` as unknown as T;\n }\n return VectorOps.cross[a.kind](a, b);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#dot-builtin\n */\nexport function dot<T extends vBase>(lhs: T, rhs: T): number {\n if (inGPUMode()) {\n return `dot(${lhs}, ${rhs})` as unknown as number;\n }\n return VectorOps.dot[lhs.kind](lhs, rhs);\n}\n\nexport function normalize<T extends vBase>(v: T): T {\n if (inGPUMode()) {\n return `normalize(${v})` as unknown as T;\n }\n return VectorOps.normalize[v.kind](v);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#floor-builtin\n */\nexport function floor<T extends vBase | number>(value: T): T {\n if (inGPUMode()) {\n return `floor(${value})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.floor(value) as T;\n }\n return VectorOps.floor[value.kind](value) as T;\n}\n\nexport function fract(a: number): number {\n if (inGPUMode()) {\n return `fract(${a})` as unknown as number;\n }\n return a - Math.floor(a);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#length-builtin\n */\nexport function length<T extends vBase | number>(value: T): number {\n if (inGPUMode()) {\n return `length(${value})` as unknown as number;\n }\n if (typeof value === 'number') {\n return Math.abs(value);\n }\n return VectorOps.length[value.kind](value);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#max-float-builtin\n */\nexport function max<T extends vBase | number>(a: T, b: T): T {\n if (inGPUMode()) {\n return `max(${a}, ${b})` as unknown as T;\n }\n if (typeof a === 'number') {\n return Math.max(a, b as number) as T;\n }\n return VectorOps.max[a.kind](a, b as vBase) as T;\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#min-float-builtin\n */\nexport function min<T extends vBase | number>(a: T, b: T): T {\n if (inGPUMode()) {\n return `min(${a}, ${b})` as unknown as T;\n }\n if (typeof a === 'number') {\n return Math.min(a, b as number) as T;\n }\n return VectorOps.min[a.kind](a, b as vBase) as T;\n}\n\nexport function sin(radians: number): number {\n if (inGPUMode()) {\n return `sin(${radians})` as unknown as number;\n }\n return Math.sin(radians);\n}\n\nexport function exp(value: number): number {\n if (inGPUMode()) {\n return `exp(${value})` as unknown as number;\n }\n return Math.exp(value);\n}\n\nexport function pow(base: number, exponent: number): number;\nexport function pow<T extends v2f | v3f | v4f | v2h | v3h | v4h>(\n base: T,\n exponent: T,\n): T;\nexport function pow<T extends v2f | v3f | v4f | v2h | v3h | v4h | number>(\n base: T,\n exponent: T,\n): T {\n if (inGPUMode()) {\n return `pow(${base}, ${exponent})` as unknown as T;\n }\n if (typeof base === 'number' && typeof exponent === 'number') {\n return (base ** exponent) as T;\n }\n if (\n typeof base === 'object' &&\n typeof exponent === 'object' &&\n 'kind' in base &&\n 'kind' in exponent\n ) {\n return VectorOps.pow[base.kind](base, exponent) as T;\n }\n throw new Error('Invalid arguments to pow()');\n}\n\nexport function mix(e1: number, e2: number, e3: number): number;\nexport function mix<T extends v2f | v3f | v4f | v2h | v3h | v4h>(\n e1: T,\n e2: T,\n e3: number,\n): T;\nexport function mix<T extends v2f | v3f | v4f | v2h | v3h | v4h>(\n e1: T,\n e2: T,\n e3: T,\n): T;\n\nexport function mix<T extends v2f | v3f | v4f | v2h | v3h | v4h | number>(\n e1: T,\n e2: T,\n e3: T | number,\n): T {\n if (inGPUMode()) {\n return `mix(${e1}, ${e2}, ${e3})` as unknown as T;\n }\n\n if (typeof e1 === 'number') {\n if (typeof e3 !== 'number' || typeof e2 !== 'number') {\n throw new Error(\n 'When e1 and e2 are numbers, the blend factor must be a number.',\n );\n }\n return (e1 * (1 - e3) + e2 * e3) as T;\n }\n\n if (typeof e1 === 'number' || typeof e2 === 'number') {\n throw new Error('e1 and e2 need to both be vectors of the same kind.');\n }\n\n return VectorOps.mix[e1.kind](e1, e2, e3) as T;\n}\n\nexport function reflect<T extends vBase>(e1: T, e2: T): T {\n if (inGPUMode()) {\n return `reflect(${e1}, ${e2})` as unknown as T;\n }\n\n return sub(e1, mul(2 * dot(e2, e1), e2));\n}\n","import type { atomicI32, atomicU32 } from '../data/wgslTypes';\nimport { inGPUMode } from '../gpuMode';\n\ntype AnyAtomic = atomicI32 | atomicU32;\n\nexport function workgroupBarrier(): void {\n if (inGPUMode()) {\n // biome-ignore lint/correctness/noVoidTypeReturn: <string-void duality>\n return 'workgroupBarrier()' as unknown as undefined;\n }\n console.warn('workgroupBarrier is a no-op outside of GPU mode.');\n}\n\nexport function storageBarrier(): void {\n if (inGPUMode()) {\n // biome-ignore lint/correctness/noVoidTypeReturn: <string-void duality>\n return 'storageBarrier()' as unknown as undefined;\n }\n console.warn('storageBarrier is a no-op outside of GPU mode.');\n}\n\nexport function textureBarrier(): void {\n if (inGPUMode()) {\n // biome-ignore lint/correctness/noVoidTypeReturn: <string-void duality>\n return 'textureBarrier()' as unknown as undefined;\n }\n console.warn('textureBarrier is a no-op outside of GPU mode.');\n}\n\nexport function atomicLoad<T extends AnyAtomic>(a: T): number {\n if (inGPUMode()) {\n return `atomicLoad(&${a})` as unknown as number;\n }\n throw new Error('Atomic operations are not supported outside of GPU mode.');\n}\n\nexport function atomicStore<T extends AnyAtomic>(a: T, value: number): void {\n if (inGPUMode()) {\n // biome-ignore lint/correctness/noVoidTypeReturn: <string-void duality>\n return `atomicStore(&${a}, ${value})` as unknown as undefined;\n }\n throw new Error('Atomic operations are not supported outside of GPU mode.');\n}\n\nexport function atomicAdd<T extends AnyAtomic>(a: T, value: number): number {\n if (inGPUMode()) {\n return `atomicAdd(&${a}, ${value})` as unknown as number;\n }\n throw new Error('Atomic operations are not supported outside of GPU mode.');\n}\n\nexport function atomicSub<T extends AnyAtomic>(a: T, value: number): number {\n if (inGPUMode()) {\n return `atomicSub(&${a}, ${value})` as unknown as number;\n }\n throw new Error('Atomic operations are not supported outside of GPU mode.');\n}\n\nexport function atomicMax<T extends AnyAtomic>(a: T, value: number): number {\n if (inGPUMode()) {\n return `atomicMax(&${a}, ${value})` as unknown as number;\n }\n throw new Error('Atomic operations are not supported outside of GPU mode.');\n}\n\nexport function atomicMin<T extends AnyAtomic>(a: T, value: number): number {\n if (inGPUMode()) {\n return `atomicMin(&${a}, ${value})` as unknown as number;\n }\n throw new Error('Atomic operations are not supported outside of GPU mode.');\n}\n\nexport function atomicAnd<T extends AnyAtomic>(a: T, value: number): number {\n if (inGPUMode()) {\n return `atomicAnd(&${a}, ${value})` as unknown as number;\n }\n throw new Error('Atomic operations are not supported outside of GPU mode.');\n}\n\nexport function atomicOr<T extends AnyAtomic>(a: T, value: number): number {\n if (inGPUMode()) {\n return `atomicOr(&${a}, ${value})` as unknown as number;\n }\n throw new Error('Atomic operations are not supported outside of GPU mode.');\n}\n\nexport function atomicXor<T extends AnyAtomic>(a: T, value: number): number {\n if (inGPUMode()) {\n return `atomicXor(&${a}, ${value})` as unknown as number;\n }\n throw new Error('Atomic operations are not supported outside of GPU mode.');\n}\n"]}
|