@needle-tools/engine 4.15.0-next.cecd8e7 → 4.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1965,9 +1965,9 @@ Ro('if(!globalThis["NEEDLE_PROJECT_BUILD_TIME"]) globalThis["NEEDLE_PROJECT_BUIL
1965
1965
  Ro('if(!globalThis["NEEDLE_PUBLIC_KEY"]) globalThis["NEEDLE_PUBLIC_KEY"] = "unknown";');
1966
1966
  Ro('globalThis["__NEEDLE_ENGINE_VERSION__"] = "4.15.0";');
1967
1967
  Ro('globalThis["__NEEDLE_ENGINE_GENERATOR__"] = "undefined";');
1968
- Ro('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "Fri Feb 27 2026 14:09:03 GMT+0000 (Coordinated Universal Time)";');
1968
+ Ro('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "Fri Feb 27 2026 14:00:38 GMT+0000 (Coordinated Universal Time)";');
1969
1969
  Ro('globalThis["__NEEDLE_PUBLIC_KEY__"] = "' + NEEDLE_PUBLIC_KEY + '";');
1970
- const Xi = "4.15.0", Rc = "undefined", Bd = "Fri Feb 27 2026 14:09:03 GMT+0000 (Coordinated Universal Time)";
1970
+ const Xi = "4.15.0", Rc = "undefined", Bd = "Fri Feb 27 2026 14:00:38 GMT+0000 (Coordinated Universal Time)";
1971
1971
  Jv && console.log(`Engine version: ${Xi} (generator: ${Rc})
1972
1972
  Project built at ${Bd}`);
1973
1973
  const gr = NEEDLE_PUBLIC_KEY, bo = "needle_isActiveInHierarchy", da = "builtin_components", cd = "needle_editor_guid";
@@ -2007,149 +2007,13 @@ function bP(s, e) {
2007
2007
  } else L() && console.debug("Spector available: Add '?spector=<frame>' to the URL to enable it and capture a frame.");
2008
2008
  }
2009
2009
  }
2010
- function vP(s) {
2011
- const e = s;
2012
- return !!(e.parser && e.parser.json);
2013
- }
2014
- var hg = /* @__PURE__ */ ((s) => (s[s.None = 0] = "None", s[s.DontExport = 1] = "DontExport", s))(hg || {});
2015
- const wP = /* @__PURE__ */ Symbol("component-name");
2016
- function i0(s) {
2017
- return s && s.isComponent;
2018
- }
2019
- const OD = /* @__PURE__ */ Symbol("object"), Ff = new Yi(() => new _(), 20);
2020
- class xP {
2021
- _point;
2022
- _normal;
2023
- _tangentVelocity;
2024
- /** the distance of the collision point */
2025
- distance;
2026
- /** the impulse velocity */
2027
- impulse;
2028
- friction;
2029
- /** worldspace point */
2030
- get point() {
2031
- return Ff.get().set(this._point.x, this._point.y, this._point.z);
2032
- }
2033
- /** worldspace normal */
2034
- get normal() {
2035
- return Ff.get().set(this._normal.x, this._normal.y, this._normal.z);
2036
- }
2037
- /** worldspace tangent */
2038
- get tangentVelocity() {
2039
- return Ff.get().set(this._tangentVelocity.x, this._tangentVelocity.y, this._tangentVelocity.z);
2040
- }
2041
- /** @internal */
2042
- constructor(e, t, i, n, o, r) {
2043
- this._point = e, this.distance = t, this._normal = i, this.impulse = n, this.friction = o, this._tangentVelocity = r;
2044
- }
2045
- }
2046
- class SP {
2047
- /** The contact points of this collision. Contains information about positions, normals, distance, friction, impulse... */
2048
- contacts;
2049
- /** @internal */
2050
- constructor(e, t, i) {
2051
- this.me = e, this._collider = t, this._gameObject = t.gameObject, this.contacts = i;
2052
- }
2053
- /** the gameobject this collision event belongs to (e.g. if onCollisionEnter is called then `me` is the same as `this.gameObject`) */
2054
- me;
2055
- _collider;
2056
- /** the other collider the collision happened with */
2057
- get collider() {
2058
- return this._collider;
2059
- }
2060
- _gameObject;
2061
- /** the other object the collision happened with */
2062
- get gameObject() {
2063
- return this._gameObject;
2064
- }
2065
- /** the other rigidbody we hit, null if none attached */
2066
- get rigidBody() {
2067
- return this.collider?.attachedRigidbody;
2068
- }
2069
- }
2070
- class CP {
2071
- object;
2072
- collider;
2073
- constructor(e, t) {
2074
- this.object = e, this.collider = t;
2075
- }
2076
- }
2077
- class Fd {
2078
- constructor(e) {
2079
- this.context = e, this.root.style.cssText = `
2080
- position: absolute;
2081
- width: 1px; height: 1px;
2082
- padding: 0; margin: -1px;
2083
- overflow: hidden;
2084
- clip: rect(0, 0, 0, 0);
2085
- white-space: nowrap;
2086
- border: 0;
2087
- `, this.root.setAttribute("role", "region"), this.root.setAttribute("aria-label", "3D Needle Engine scene"), this.liveRegion.setAttribute("aria-live", "polite"), this.liveRegion.setAttribute("aria-atomic", "true"), this.liveRegion.setAttribute("role", "status"), this.root.appendChild(this.liveRegion), this.enabled = !0;
2088
- }
2089
- static _managers = /* @__PURE__ */ new WeakMap();
2090
- /** Returns the {@link AccessibilityManager} associated with the given context or component. */
2091
- static get(e) {
2092
- return i0(e) ? this._managers.get(e.context) : this._managers.get(e);
2093
- }
2094
- _enabled;
2095
- /** Enables or disables the accessibility overlay. When disabled, the overlay DOM is removed. */
2096
- set enabled(e) {
2097
- e !== this._enabled && (this._enabled = e, e ? (Fd._managers.set(this.context, this), (this.context.domElement.shadowRoot || this.context.domElement).prepend(this.root)) : this.root.remove());
2098
- }
2099
- /** Removes all tracked accessibility elements, keeping only the live region. */
2100
- clear() {
2101
- this.root.childNodes.forEach((e) => e.remove()), this.root.appendChild(this.liveRegion);
2102
- }
2103
- /** Removes the overlay from the DOM and unregisters this manager from the context. */
2104
- dispose() {
2105
- this.root.remove(), Fd._managers.delete(this.context);
2106
- }
2107
- root = document.createElement("div");
2108
- liveRegion = document.createElement("div");
2109
- treeElements = /* @__PURE__ */ new WeakMap();
2110
- /**
2111
- * Creates or updates the accessible DOM element for a 3D object or component.
2112
- * @param obj - The scene object or component to represent.
2113
- * @param data - Partial accessibility data (role, label, hidden, busy) to apply.
2114
- */
2115
- updateElement(e, t) {
2116
- let i = this.treeElements.get(e);
2117
- i || (i = document.createElement("div"), this.treeElements.set(e, i), this.root.appendChild(i), typeof t == "object" && (t.role && i.setAttribute("role", t.role), t.label && i.setAttribute("aria-label", t.label), t.hidden !== void 0 && i.setAttribute("aria-hidden", String(t.hidden)), t.busy !== void 0 && i.setAttribute("aria-busy", String(t.busy))));
2118
- }
2119
- /** Moves keyboard focus to the accessible element representing the given object. */
2120
- focus(e) {
2121
- const t = this.treeElements.get(e);
2122
- t && t.focus();
2123
- }
2124
- /** Removes keyboard focus from the accessible element representing the given object. */
2125
- unfocus(e) {
2126
- const t = this.treeElements.get(e);
2127
- t && t.blur();
2128
- }
2129
- /**
2130
- * Announces a hover event to screen readers via the ARIA live region.
2131
- * @param obj - The hovered object (used to look up its label if `text` is not provided).
2132
- * @param text - Optional text to announce. Falls back to the element's `aria-label`.
2133
- */
2134
- hover(e, t) {
2135
- const i = this.treeElements.get(e);
2136
- this.liveRegion.textContent = t || i?.getAttribute("aria-label") || "";
2137
- }
2138
- /** Removes the accessible DOM element for the given object and stops tracking it. */
2139
- removeElement(e) {
2140
- this.treeElements.get(e)?.remove(), this.treeElements.delete(e);
2141
- }
2142
- set liveRegionMode(e) {
2143
- this.liveRegion.setAttribute("aria-live", e);
2144
- }
2145
- }
2146
- const wi = /* @__PURE__ */ Symbol("shadowDomOwner"), PP = x("debugpatch");
2147
- function dg(s, e, t, i) {
2148
- const n = PP === e;
2010
+ const wi = /* @__PURE__ */ Symbol("shadowDomOwner"), vP = x("debugpatch");
2011
+ function hg(s, e, t, i) {
2012
+ const n = vP === e;
2149
2013
  if (!t && !i)
2150
2014
  return;
2151
2015
  const o = e + "___needle";
2152
- kP(s, e, t, i);
2016
+ wP(s, e, t, i);
2153
2017
  const r = Object.getOwnPropertyDescriptor(s, e), a = s[e];
2154
2018
  n && console.log("Patch", s.constructor.name, e, r, a), r ? (n && console.log("Apply patch with existing descriptor", s.constructor.name, e, r), typeof r.value == "function" && (s[e] = f_(r.value, s, e))) : (n && console.log("Create patch with new property", s.constructor.name, e, r), Object.defineProperty(s, e, {
2155
2019
  set: function(l) {
@@ -2157,7 +2021,7 @@ function dg(s, e, t, i) {
2157
2021
  this[o] = f_(l, s, e);
2158
2022
  else {
2159
2023
  const c = this[o];
2160
- n0(s, e, this, c, l), this[o] = l, s0(s, e, this, c, l);
2024
+ i0(s, e, this, c, l), this[o] = l, n0(s, e, this, c, l);
2161
2025
  }
2162
2026
  },
2163
2027
  get: function() {
@@ -2166,8 +2030,8 @@ function dg(s, e, t, i) {
2166
2030
  }
2167
2031
  }));
2168
2032
  }
2169
- function MD(s, e, t) {
2170
- const i = ug(s, e);
2033
+ function OD(s, e, t) {
2034
+ const i = dg(s, e);
2171
2035
  if (i)
2172
2036
  for (let n = i.length - 1; n >= 0; n--) {
2173
2037
  const o = i[n];
@@ -2179,21 +2043,21 @@ function f_(s, e, t) {
2179
2043
  if (s[u_])
2180
2044
  return s;
2181
2045
  const i = function(...n) {
2182
- n0(e, t, this, ...n);
2046
+ i0(e, t, this, ...n);
2183
2047
  const o = s.apply(this, n);
2184
- return s0(e, t, this, o, ...n), o;
2048
+ return n0(e, t, this, o, ...n), o;
2185
2049
  };
2186
2050
  return i[u_] = !0, i;
2187
2051
  }
2188
- const Uf = "Needle:Patches";
2052
+ const Ff = "Needle:Patches";
2189
2053
  function Yp() {
2190
- return globalThis[Uf] || (globalThis[Uf] = /* @__PURE__ */ new WeakMap()), globalThis[Uf];
2054
+ return globalThis[Ff] || (globalThis[Ff] = /* @__PURE__ */ new WeakMap()), globalThis[Ff];
2191
2055
  }
2192
- function ug(s, e) {
2056
+ function dg(s, e) {
2193
2057
  const t = Yp().get(s);
2194
2058
  return t ? t.get(e) : null;
2195
2059
  }
2196
- function kP(s, e, t, i) {
2060
+ function wP(s, e, t, i) {
2197
2061
  let n = Yp().get(s);
2198
2062
  n || (n = /* @__PURE__ */ new Map(), Yp().set(s, n));
2199
2063
  let o = n.get(e);
@@ -2202,48 +2066,48 @@ function kP(s, e, t, i) {
2202
2066
  postfix: i
2203
2067
  });
2204
2068
  }
2205
- function n0(s, e, t, ...i) {
2069
+ function i0(s, e, t, ...i) {
2206
2070
  if (!t) return;
2207
- const n = ug(s, e);
2071
+ const n = dg(s, e);
2208
2072
  if (n)
2209
2073
  for (const o of n)
2210
2074
  o.prefix?.call(t, ...i);
2211
2075
  }
2212
- function s0(s, e, t, i, ...n) {
2076
+ function n0(s, e, t, i, ...n) {
2213
2077
  if (!t) return;
2214
- const o = ug(s, e);
2078
+ const o = dg(s, e);
2215
2079
  if (o)
2216
2080
  for (const r of o)
2217
2081
  r.postfix?.call(t, i, ...n);
2218
2082
  }
2219
2083
  const Wa = [];
2220
- function fg(s) {
2084
+ function ug(s) {
2221
2085
  Wa.indexOf(s) === -1 && Wa.push(s);
2222
2086
  }
2223
- function ED(s) {
2087
+ function MD(s) {
2224
2088
  const e = Wa.indexOf(s);
2225
2089
  e !== -1 && Wa.splice(e, 1);
2226
2090
  }
2227
2091
  const Va = [];
2228
- function o0(s) {
2092
+ function s0(s) {
2229
2093
  Va.indexOf(s) === -1 && Va.push(s);
2230
2094
  }
2231
- function RD(s) {
2095
+ function ED(s) {
2232
2096
  const e = Va.indexOf(s);
2233
2097
  e !== -1 && Va.splice(e, 1);
2234
2098
  }
2235
- function OP(s) {
2099
+ function xP(s) {
2236
2100
  globalThis.dispatchEvent(new CustomEvent("needle-xrsession-start", { detail: s }));
2237
2101
  for (let e = 0; e < Wa.length; e++)
2238
2102
  Wa[e](s);
2239
2103
  }
2240
- function MP(s) {
2104
+ function SP(s) {
2241
2105
  globalThis.dispatchEvent(new CustomEvent("needle-xrsession-end", { detail: s }));
2242
2106
  for (let e = 0; e < Va.length; e++)
2243
2107
  Va[e](s);
2244
2108
  }
2245
2109
  const Ge = x("debuginput");
2246
- var pg = /* @__PURE__ */ ((s) => (s.Mouse = "mouse", s.Touch = "touch", s.Controller = "controller", s.Hand = "hand", s))(pg || {}), Be = /* @__PURE__ */ ((s) => (s.PointerDown = "pointerdown", s.PointerUp = "pointerup", s.PointerMove = "pointermove", s.KeyDown = "keydown", s.KeyUp = "keyup", s.KeyPressed = "keypress", s))(Be || {});
2110
+ var fg = /* @__PURE__ */ ((s) => (s.Mouse = "mouse", s.Touch = "touch", s.Controller = "controller", s.Hand = "hand", s))(fg || {}), Be = /* @__PURE__ */ ((s) => (s.PointerDown = "pointerdown", s.PointerUp = "pointerup", s.PointerMove = "pointermove", s.KeyDown = "keydown", s.KeyUp = "keyup", s.KeyPressed = "keypress", s))(Be || {});
2247
2111
  class to extends PointerEvent {
2248
2112
  /**
2249
2113
  * Spatial input data
@@ -2350,7 +2214,7 @@ class Oh extends KeyboardEvent {
2350
2214
  super.stopImmediatePropagation(), this.source?.stopImmediatePropagation();
2351
2215
  }
2352
2216
  }
2353
- class TD {
2217
+ class RD {
2354
2218
  key;
2355
2219
  keyType;
2356
2220
  source;
@@ -2359,7 +2223,7 @@ class TD {
2359
2223
  }
2360
2224
  }
2361
2225
  var vi = /* @__PURE__ */ ((s) => (s[s.Early = -100] = "Early", s[s.Default = 0] = "Default", s[s.Late = 100] = "Late", s))(vi || {});
2362
- class EP {
2226
+ class CP {
2363
2227
  /** This is a list of event listeners per event type (e.g. pointerdown, pointerup, keydown...). Each entry contains a priority and list of listeners.
2364
2228
  * That way users can control if they want to receive events before or after other listeners (e.g subscribe to pointer events before the EventSystem receives them) - this allows certain listeners to be always invoked first (or last) and stop propagation
2365
2229
  * Listeners per event are sorted
@@ -3014,8 +2878,8 @@ class EP {
3014
2878
  }
3015
2879
  }
3016
2880
  }
3017
- const Pa = new ee().makeRotationY(Math.PI), Vi = new V().setFromAxisAngle(new _(0, 1, 0), Math.PI), RP = x("debugwebxr");
3018
- class TP {
2881
+ const Pa = new ee().makeRotationY(Math.PI), Vi = new V().setFromAxisAngle(new _(0, 1, 0), Math.PI), PP = x("debugwebxr");
2882
+ class kP {
3019
2883
  priority = -1e5;
3020
2884
  gameObject;
3021
2885
  isXRRig() {
@@ -3025,14 +2889,14 @@ class TP {
3025
2889
  return this.gameObject.visible;
3026
2890
  }
3027
2891
  constructor() {
3028
- if (this.gameObject = new M(), this.gameObject.name = "Implicit XR Rig", RP) {
3029
- const e = yg(16733661);
2892
+ if (this.gameObject = new M(), this.gameObject.name = "Implicit XR Rig", PP) {
2893
+ const e = gg(16733661);
3030
2894
  e.position.y += 0.5, this.gameObject.add(e);
3031
2895
  }
3032
2896
  }
3033
2897
  }
3034
- const as = x("debugwebxr"), Mh = x("debugcustomgesture"), AP = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles", IP = "generic-trigger", LP = new V().setFromEuler(new ct(Cs.degToRad(0), Cs.degToRad(-90), Cs.degToRad(-90))), DP = new _(0.04, -0.04, 0);
3035
- class r0 {
2898
+ const as = x("debugwebxr"), Mh = x("debugcustomgesture"), OP = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles", MP = "generic-trigger", EP = new V().setFromEuler(new ct(Cs.degToRad(0), Cs.degToRad(-90), Cs.degToRad(-90))), RP = new _(0.04, -0.04, 0);
2899
+ class o0 {
3036
2900
  /** the Needle XR Session */
3037
2901
  xr;
3038
2902
  get context() {
@@ -3369,7 +3233,7 @@ Layout: `;
3369
3233
  }
3370
3234
  h || (this._object.position.copy(this._rayPosition), this._object.quaternion.copy(this._rayQuaternion).multiply(Vi));
3371
3235
  const p = a.get("middle-finger-metacarpal"), g = p && this.getHandJointPose(p, e);
3372
- g && (this._gripMatrix.fromArray(g.transform.matrix).premultiply(Pa), this._gripMatrix.decompose(this._gripPosition, this._gripQuaternion, z(1, 1, 1)), i = z().copy(g.transform.position), n = bi().copy(g.transform.orientation), n.multiply(LP), i.add(z(DP).applyQuaternion(n)));
3236
+ g && (this._gripMatrix.fromArray(g.transform.matrix).premultiply(Pa), this._gripMatrix.decompose(this._gripPosition, this._gripQuaternion, z(1, 1, 1)), i = z().copy(g.transform.position), n = bi().copy(g.transform.orientation), n.multiply(EP), i.add(z(RP).applyQuaternion(n)));
3373
3237
  } else this.inputSource.gripSpace && this.targetRayMode === "transient-pointer" && i && n ? (this._object.position.copy(i), this._object.quaternion.copy(n).multiply(Vi)) : o && r && (this._object.position.copy(o), this._object.quaternion.copy(r).multiply(Vi));
3374
3238
  as && (o && r && (this._raySpaceObject?.position.copy(o), this._raySpaceObject?.quaternion.copy(r).multiply(Vi)), i && n && (this._gripSpaceObject?.position.copy(i), this._gripSpaceObject?.quaternion.copy(n).multiply(Vi)));
3375
3239
  const l = this.xr.context.mainCamera?.parent, c = l ? ve(l) : void 0;
@@ -3486,7 +3350,7 @@ Layout: `;
3486
3350
  initialize() {
3487
3351
  if (this._hasSelectEvent = this.profiles.includes("generic-hand-select") || this.profiles.some((e) => e.startsWith("generic-trigger")), this._isMetaQuestTouchController = this.profiles.includes("meta-quest-touch-plus") || this.profiles.includes("oculus-touch-v3"), this._isMxInk = this.profiles.includes("logitech-mx-ink"), !this._layout) {
3488
3352
  if (this.inputSource.targetRayMode === "transient-pointer") return;
3489
- const e = UC(this.inputSource, AP, IP);
3353
+ const e = UC(this.inputSource, OP, MP);
3490
3354
  this.getMotionController = e.then((t) => {
3491
3355
  if (!this.connected) return null;
3492
3356
  this._motioncontroller = new zC(
@@ -3786,10 +3650,10 @@ function To(s, e) {
3786
3650
  }
3787
3651
  }
3788
3652
  function Rn(s, e) {
3789
- e === ue.ContextCreated && Zp.delete(s), a0(s, e);
3653
+ e === ue.ContextCreated && Zp.delete(s), r0(s, e);
3790
3654
  }
3791
- function a0(s, e) {
3792
- e === Ce.Start && ka.get(ue.ContextCreated) && a0(s, ue.ContextCreated);
3655
+ function r0(s, e) {
3656
+ e === Ce.Start && ka.get(ue.ContextCreated) && r0(s, ue.ContextCreated);
3793
3657
  const t = e === Ce.Start || e === ue.ContextCreated, i = ba.get(e);
3794
3658
  i && i.length > 0 && __(s, i, t);
3795
3659
  const n = ka.get(e);
@@ -3824,27 +3688,27 @@ function __(s, e, t) {
3824
3688
  } else t && (i || (i = /* @__PURE__ */ new Set(), Zp.set(s, i)), i.add(o));
3825
3689
  }
3826
3690
  }
3827
- const Zp = /* @__PURE__ */ new WeakMap(), l0 = {};
3828
- function c0(s, e) {
3829
- l0[s] = e;
3691
+ const Zp = /* @__PURE__ */ new WeakMap(), a0 = {};
3692
+ function l0(s, e) {
3693
+ a0[s] = e;
3830
3694
  }
3831
- function jP(s) {
3832
- const e = s.getBufferIdentifier(), t = l0[e];
3695
+ function TP(s) {
3696
+ const e = s.getBufferIdentifier(), t = a0[e];
3833
3697
  return t(s);
3834
3698
  }
3835
- function BP(s) {
3699
+ function AP(s) {
3836
3700
  return typeof s.guid == "function" ? s.guid() : null;
3837
3701
  }
3838
- let mg;
3839
- function AD() {
3840
- return mg;
3702
+ let pg;
3703
+ function TD() {
3704
+ return pg;
3841
3705
  }
3842
- function ID(s) {
3843
- mg = s;
3706
+ function AD(s) {
3707
+ pg = s;
3844
3708
  }
3845
- function FP(s, e) {
3709
+ function IP(s, e) {
3846
3710
  return e || (e = {}), e = {
3847
- ...mg,
3711
+ ...pg,
3848
3712
  ...e
3849
3713
  }, s ? new Wy(s, e) : new Wy(e);
3850
3714
  }
@@ -3852,7 +3716,7 @@ async function b_() {
3852
3716
  const s = await import("./vendor-ixwD-vv2.js").then((e) => e.bundler);
3853
3717
  return console.log(s), s.default === void 0 ? s : s.default;
3854
3718
  }
3855
- class UP {
3719
+ class LP {
3856
3720
  get isHost() {
3857
3721
  return this._host !== void 0;
3858
3722
  }
@@ -3870,7 +3734,7 @@ class UP {
3870
3734
  i.on("error", (n) => {
3871
3735
  console.error(n), this._host = void 0, this.trySetupClient(e);
3872
3736
  }), i.on("open", (n) => {
3873
- this._host = new NP(i);
3737
+ this._host = new jP(i);
3874
3738
  });
3875
3739
  }
3876
3740
  async trySetupClient(e) {
@@ -3886,13 +3750,13 @@ class UP {
3886
3750
  });
3887
3751
  }
3888
3752
  }
3889
- class zP {
3753
+ class DP {
3890
3754
  _peer;
3891
3755
  constructor(e) {
3892
3756
  this._peer = e;
3893
3757
  }
3894
3758
  }
3895
- class NP extends zP {
3759
+ class jP extends DP {
3896
3760
  get isHost() {
3897
3761
  return !0;
3898
3762
  }
@@ -3932,8 +3796,8 @@ var Bn = /* @__PURE__ */ ((s) => (s[s.OnConnection = 0] = "OnConnection", s[s.On
3932
3796
  const v_ = "https://urls.needle.tools/default-networking-backend/index";
3933
3797
  let Bi = "wss://networking-2.needle.tools/socket";
3934
3798
  const yi = !!x("debugnet"), Rh = !!(yi || x("debugowner")), Th = x("debugnetbin");
3935
- var $P = /* @__PURE__ */ ((s) => (s.ConnectionInfo = "connection-start-info", s))($P || {}), ie = /* @__PURE__ */ ((s) => (s.Join = "join-room", s.Leave = "leave-room", s.JoinedRoom = "joined-room", s.LeftRoom = "left-room", s.UserJoinedRoom = "user-joined-room", s.UserLeftRoom = "user-left-room", s.RoomStateSent = "room-state-sent", s))(ie || {});
3936
- class LD {
3799
+ var BP = /* @__PURE__ */ ((s) => (s.ConnectionInfo = "connection-start-info", s))(BP || {}), ie = /* @__PURE__ */ ((s) => (s.Join = "join-room", s.Leave = "leave-room", s.JoinedRoom = "joined-room", s.LeftRoom = "left-room", s.UserJoinedRoom = "user-joined-room", s.UserLeftRoom = "user-left-room", s.RoomStateSent = "room-state-sent", s))(ie || {});
3800
+ class ID {
3937
3801
  room;
3938
3802
  // room name
3939
3803
  viewId;
@@ -3941,15 +3805,15 @@ class LD {
3941
3805
  inRoom;
3942
3806
  // connection ids
3943
3807
  }
3944
- class DD {
3808
+ class LD {
3945
3809
  room;
3946
3810
  // room name
3947
3811
  }
3948
- class jD {
3812
+ class DD {
3949
3813
  userId;
3950
3814
  }
3951
- var WP = /* @__PURE__ */ ((s) => (s.RequestHasOwner = "request-has-owner", s.ResponseHasOwner = "response-has-owner", s.RequestIsOwner = "request-is-owner", s.ResponseIsOwner = "response-is-owner", s.RequestOwnership = "request-ownership", s.GainedOwnership = "gained-ownership", s.RemoveOwnership = "remove-ownership", s.LostOwnership = "lost-ownership", s.GainedOwnershipBroadcast = "gained-ownership-broadcast", s.LostOwnershipBroadcast = "lost-ownership-broadcast", s))(WP || {});
3952
- class h0 {
3815
+ var FP = /* @__PURE__ */ ((s) => (s.RequestHasOwner = "request-has-owner", s.ResponseHasOwner = "response-has-owner", s.RequestIsOwner = "request-is-owner", s.ResponseIsOwner = "response-is-owner", s.RequestOwnership = "request-ownership", s.GainedOwnership = "gained-ownership", s.RemoveOwnership = "remove-ownership", s.LostOwnership = "lost-ownership", s.GainedOwnershipBroadcast = "gained-ownership-broadcast", s.LostOwnershipBroadcast = "lost-ownership-broadcast", s))(FP || {});
3816
+ class c0 {
3953
3817
  /** The unique identifier (GUID) of the object this ownership model manages */
3954
3818
  guid;
3955
3819
  connection;
@@ -4062,7 +3926,7 @@ class h0 {
4062
3926
  e === this.guid && (Rh && console.log("LOST OWNERSHIP", this.guid), this._hasOwnership = !1, this._isOwned = !1);
4063
3927
  }
4064
3928
  }
4065
- class VP {
3929
+ class UP {
4066
3930
  context;
4067
3931
  _peer = null;
4068
3932
  constructor(e) {
@@ -4070,7 +3934,7 @@ class VP {
4070
3934
  }
4071
3935
  /** Experimental: networking via peerjs */
4072
3936
  get peer() {
4073
- return this._peer || (this._peer = new UP()), this._peer;
3937
+ return this._peer || (this._peer = new LP()), this._peer;
4074
3938
  }
4075
3939
  /**
4076
3940
  * Returns the cached network state for a given GUID.
@@ -4373,7 +4237,7 @@ class VP {
4373
4237
  Th && console.log("<< bin", this.context.time.frame);
4374
4238
  const t = await e.arrayBuffer();
4375
4239
  var i = new Uint8Array(t);
4376
- const n = new NC(i), o = n.getBufferIdentifier(), r = this._listenersBinary[o], a = jP(n), l = BP(a);
4240
+ const n = new NC(i), o = n.getBufferIdentifier(), r = this._listenersBinary[o], a = TP(n), l = AP(a);
4377
4241
  if (l && typeof l == "string" && (this._state[l] = a), !r) return;
4378
4242
  const c = a ?? n;
4379
4243
  for (const h of r)
@@ -4474,7 +4338,7 @@ ${a.href}`);
4474
4338
  }
4475
4339
  }
4476
4340
  const uc = x("debugwebxr");
4477
- class zf {
4341
+ class Uf {
4478
4342
  controllerStates = [];
4479
4343
  userId;
4480
4344
  context;
@@ -4533,7 +4397,7 @@ class zf {
4533
4397
  }
4534
4398
  }
4535
4399
  }
4536
- class HP {
4400
+ class zP {
4537
4401
  hasState(e) {
4538
4402
  return e ? this._states.has(e) : !1;
4539
4403
  }
@@ -4558,9 +4422,9 @@ class HP {
4558
4422
  }
4559
4423
  onJoinedRoom = () => {
4560
4424
  if (this.context.connection.connectionId) {
4561
- this._states.has(this.context.connection.connectionId) || (uc && console.log("XRSync: Local user joined room", this.context.connection.connectionId), this._states.set(this.context.connection.connectionId, new zf(this.context.connection.connectionId, this.context)));
4425
+ this._states.has(this.context.connection.connectionId) || (uc && console.log("XRSync: Local user joined room", this.context.connection.connectionId), this._states.set(this.context.connection.connectionId, new Uf(this.context.connection.connectionId, this.context)));
4562
4426
  for (const e of this.context.connection.usersInRoom())
4563
- this._states.has(e) || this._states.set(e, new zf(e, this.context));
4427
+ this._states.has(e) || this._states.set(e, new Uf(e, this.context));
4564
4428
  }
4565
4429
  };
4566
4430
  onLeftRoom = () => {
@@ -4568,7 +4432,7 @@ class HP {
4568
4432
  };
4569
4433
  onOtherUserJoinedRoom = (e) => {
4570
4434
  const t = e.userId;
4571
- this._states.has(t) || (uc && console.log("XRSync: Remote user joined room", t), this._states.set(t, new zf(t, this.context)));
4435
+ this._states.has(t) || (uc && console.log("XRSync: Remote user joined room", t), this._states.set(t, new Uf(t, this.context)));
4572
4436
  };
4573
4437
  onOtherUserLeftRoom = (e) => {
4574
4438
  const t = e.userId;
@@ -4623,9 +4487,9 @@ class w_ {
4623
4487
  _transitionPromise = null;
4624
4488
  _transitionResolve = null;
4625
4489
  }
4626
- const GP = '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 187.74"><defs><linearGradient id="a" x1="89.64" y1="184.81" x2="90.48" y2="21.85" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#62d399"/><stop offset=".51" stop-color="#acd842"/><stop offset=".9" stop-color="#d7db0a"/></linearGradient><linearGradient id="b" x1="69.68" y1="178.9" x2="68.08" y2="16.77" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0ba398"/><stop offset=".5" stop-color="#4ca352"/><stop offset="1" stop-color="#76a30a"/></linearGradient><linearGradient id="c" x1="36.6" y1="152.17" x2="34.7" y2="84.19" gradientUnits="userSpaceOnUse"><stop offset=".19" stop-color="#36a382"/><stop offset=".54" stop-color="#49a459"/><stop offset="1" stop-color="#76a30b"/></linearGradient><linearGradient id="d" x1="15.82" y1="153.24" x2="18" y2="90.86" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#267880"/><stop offset=".51" stop-color="#457a5c"/><stop offset="1" stop-color="#717516"/></linearGradient><linearGradient id="e" x1="135.08" y1="135.43" x2="148.93" y2="63.47" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b0d939"/><stop offset="1" stop-color="#eadb04"/></linearGradient><linearGradient id="f" x1="-4163.25" y1="2285.12" x2="-4160.81" y2="2215.34" gradientTransform="rotate(20 4088.49 13316.712)" gradientUnits="userSpaceOnUse"><stop offset=".17" stop-color="#74af52"/><stop offset=".48" stop-color="#99be32"/><stop offset="1" stop-color="#c0c40a"/></linearGradient><symbol id="g" viewBox="0 0 160 187.74"><path style="fill:url(#a)" d="M79.32 36.98v150.76L95 174.54l6.59-156.31-22.27 18.75z"/><path style="fill:url(#b)" d="M79.32 36.98 57.05 18.23l6.59 156.31 15.68 13.2V36.98z"/><path style="fill:url(#c)" d="m25.19 104.83 8.63 49.04 12.5-14.95-2.46-56.42-18.67 22.33z"/><path style="fill:url(#d)" d="M25.19 104.83 0 90.24l16.97 53.86 16.85 9.77-8.63-49.04z"/><path style="fill:#9c3" d="M43.86 82.5 18.69 67.98 0 90.24l25.18 14.59L43.86 82.5z"/><path style="fill:url(#e)" d="m134.82 78.69-9.97 56.5 15.58-9.04L160 64.1l-25.18 14.59z"/><path style="fill:url(#f)" d="m134.82 78.69-18.68-22.33-2.86 65 11.57 13.83 9.97-56.5z"/><path style="fill:#ffe113" d="m160 64.1-18.69-22.26-25.17 14.52 18.67 22.33L160 64.1z"/><path style="fill:#f3e600" d="M101.59 18.23 79.32 0 57.05 18.23l22.27 18.75 22.27-18.75z"/></symbol></defs><use width="160" height="187.74" xlink:href="#g"/></svg>', qP = btoa(GP), XP = "data:image/svg+xml;base64," + qP, Ha = XP, QP = `<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'> <svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" version="1.1" viewBox="0 0 1014 282" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m665.95 132.73v44.88l-10.56-8.4c-0.8-0.64-1.2-1.44-1.2-2.4v-32.4c0-6.48-4.12-9.72-12.36-9.72-2.16 0-4.18 0.4-6.06 1.2s-3.54 1.8-4.98 3-2.56 2.5-3.36 3.9-1.2 2.7-1.2 3.9v40.92l-10.68-8.4c-0.72-0.64-1.08-1.44-1.08-2.4v-53.76l10.92 8.52c0.32 0.24 0.56 0.44 0.72 0.6s0.36 0.32 0.6 0.48c0.96-1.2 2.14-2.28 3.54-3.24s2.92-1.76 4.56-2.4 3.34-1.14 5.1-1.5 3.44-0.54 5.04-0.54c1.44 0 2.92 0.04 4.44 0.12s2.84 0.28 3.96 0.6c4.56 1.12 7.8 3.12 9.72 6s2.88 6.56 2.88 11.04z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m732.38 146.05c0 0.88 0.02 1.5 0.06 1.86s-0.02 0.98-0.18 1.86h-7.08c-2.08 0-4.44-0.02-7.08-0.06s-5.36-0.06-8.16-0.06h-22.08c0 2.88 0.56 5.36 1.68 7.44s2.6 3.8 4.44 5.16 3.94 2.36 6.3 3 4.74 0.96 7.14 0.96c3.04 0 5.9-0.76 8.58-2.28s4.94-3.52 6.78-6c0.64 0.56 1.54 1.48 2.7 2.76s2.94 3.2 5.34 5.76c-2.8 3.36-6.22 6.02-10.26 7.98s-8.42 2.94-13.14 2.94-8.92-0.64-12.84-1.92-7.32-3.24-10.2-5.88-5.12-5.98-6.72-10.02-2.4-8.82-2.4-14.34c0-4.96 0.66-9.42 1.98-13.38s3.22-7.32 5.7-10.08 5.44-4.9 8.88-6.42 7.32-2.28 11.64-2.28c5.76 0 10.52 0.88 14.28 2.64s6.72 4.16 8.88 7.2 3.66 6.54 4.5 10.5 1.26 8.18 1.26 12.66zm-29.4-22.8c-2.16 0.16-4.16 0.72-6 1.68s-3.42 2.2-4.74 3.72-2.36 3.28-3.12 5.28-1.14 4.12-1.14 6.36h33.12c0-2-0.22-4.06-0.66-6.18s-1.3-4.02-2.58-5.7-3.1-3.02-5.46-4.02-5.5-1.38-9.42-1.14z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m795.93 146.05c0 0.88 0.02 1.5 0.06 1.86s-0.02 0.98-0.18 1.86h-7.08c-2.08 0-4.44-0.02-7.08-0.06s-5.36-0.06-8.16-0.06h-22.08c0 2.88 0.56 5.36 1.68 7.44s2.6 3.8 4.44 5.16 3.94 2.36 6.3 3 4.74 0.96 7.14 0.96c3.04 0 5.9-0.76 8.58-2.28s4.94-3.52 6.78-6c0.64 0.56 1.54 1.48 2.7 2.76s2.94 3.2 5.34 5.76c-2.8 3.36-6.22 6.02-10.26 7.98s-8.42 2.94-13.14 2.94-8.92-0.64-12.84-1.92-7.32-3.24-10.2-5.88-5.12-5.98-6.72-10.02-2.4-8.82-2.4-14.34c0-4.96 0.66-9.42 1.98-13.38s3.22-7.32 5.7-10.08 5.44-4.9 8.88-6.42 7.32-2.28 11.64-2.28c5.76 0 10.52 0.88 14.28 2.64s6.72 4.16 8.88 7.2 3.66 6.54 4.5 10.5 1.26 8.18 1.26 12.66zm-29.4-22.8c-2.16 0.16-4.16 0.72-6 1.68s-3.42 2.2-4.74 3.72-2.36 3.28-3.12 5.28-1.14 4.12-1.14 6.36h33.12c0-2-0.22-4.06-0.66-6.18s-1.3-4.02-2.58-5.7-3.1-3.02-5.46-4.02-5.5-1.38-9.42-1.14z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m858.57 97.21c0.64 0.48 0.96 1.16 0.96 2.04v74.88c-0.08 1.04-0.12 2.12-0.12 3.24-1.84-1.52-3.56-2.92-5.16-4.2-1.36-1.12-2.66-2.18-3.9-3.18s-2.06-1.66-2.46-1.98c-1.76 2.48-4.26 4.44-7.5 5.88s-7.02 2.16-11.34 2.16c-3.84 0-7.4-0.7-10.68-2.1s-6.14-3.44-8.58-6.12-4.34-5.94-5.7-9.78-2.04-8.16-2.04-12.96c0-4.32 0.78-8.34 2.34-12.06s3.6-6.92 6.12-9.6 5.38-4.78 8.58-6.3 6.48-2.28 9.84-2.28c2.56 0 4.82 0.22 6.78 0.66s3.68 1.06 5.16 1.86 2.78 1.74 3.9 2.82 2.16 2.22 3.12 3.42v-35.04l10.68 8.64zm-27.96 67.92c3.6 0 6.52-0.68 8.76-2.04s3.98-3.06 5.22-5.1 2.1-4.22 2.58-6.54 0.72-4.44 0.72-6.36v-1.2c0-1.12-0.22-2.7-0.66-4.74s-1.28-4.06-2.52-6.06-3-3.7-5.28-5.1-5.22-2.02-8.82-1.86c-3.44 0-6.26 0.74-8.46 2.22s-3.96 3.26-5.28 5.34-2.24 4.2-2.76 6.36-0.78 3.92-0.78 5.28c0 1.84 0.24 3.92 0.72 6.24s1.36 4.48 2.64 6.48 3.04 3.68 5.28 5.04 5.12 2.04 8.64 2.04z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m882.81 97.09c0.64 0.48 0.96 1.12 0.96 1.92l-0.12 41.04v37.08l-10.56-8.4c-0.72-0.64-1.08-1.44-1.08-2.4v-77.88l10.8 8.64z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m950.36 146.05c0 0.88 0.02 1.5 0.06 1.86s-0.02 0.98-0.18 1.86h-7.08c-2.08 0-4.44-0.02-7.08-0.06s-5.36-0.06-8.16-0.06h-22.08c0 2.88 0.56 5.36 1.68 7.44s2.6 3.8 4.44 5.16 3.94 2.36 6.3 3 4.74 0.96 7.14 0.96c3.04 0 5.9-0.76 8.58-2.28s4.94-3.52 6.78-6c0.64 0.56 1.54 1.48 2.7 2.76s2.94 3.2 5.34 5.76c-2.8 3.36-6.22 6.02-10.26 7.98s-8.42 2.94-13.14 2.94-8.92-0.64-12.84-1.92-7.32-3.24-10.2-5.88-5.12-5.98-6.72-10.02-2.4-8.82-2.4-14.34c0-4.96 0.66-9.42 1.98-13.38s3.22-7.32 5.7-10.08 5.44-4.9 8.88-6.42 7.32-2.28 11.64-2.28c5.76 0 10.52 0.88 14.28 2.64s6.72 4.16 8.88 7.2 3.66 6.54 4.5 10.5 1.26 8.18 1.26 12.66zm-29.4-22.8c-2.16 0.16-4.16 0.72-6 1.68s-3.42 2.2-4.74 3.72-2.36 3.28-3.12 5.28-1.14 4.12-1.14 6.36h33.12c0-2-0.22-4.06-0.66-6.18s-1.3-4.02-2.58-5.7-3.1-3.02-5.46-4.02-5.5-1.38-9.42-1.14z" fill-rule="nonzero"/> </g> <g transform="matrix(1.8559 0 0 .7642 45.348 36.475)"> <g transform="translate(2.7114)"> <path d="m3.935 173.02c-0.331 0-0.497-0.402-0.497-1.207v-51.002c0-0.738 0.138-1.107 0.414-1.107h1.781c0.277 0 0.415 0.335 0.415 1.006v5.935c0 0.336 0.027 0.553 0.083 0.654 0.055 0.101 0.151-0.017 0.289-0.352 0.912-1.744 1.754-3.236 2.527-4.477 0.773-1.24 1.554-2.179 2.341-2.816s1.65-0.956 2.588-0.956c1.685 0 3.011 0.922 3.977 2.766 0.967 1.845 1.602 3.84 1.905 5.986 0.056 0.268 0.139 0.369 0.249 0.302s0.221-0.235 0.331-0.503c0.939-1.811 1.802-3.353 2.589-4.628 0.787-1.274 1.581-2.246 2.382-2.917s1.671-1.006 2.61-1.006c2.016 0 3.569 1.392 4.66 4.175 1.09 2.783 1.636 6.421 1.636 10.915v37.925c0 0.871-0.18 1.307-0.539 1.307h-1.739c-0.138 0-0.249-0.1-0.332-0.301-0.083-0.202-0.124-0.503-0.124-0.906v-36.315c0-3.555-0.338-6.321-1.015-8.3-0.676-1.978-1.76-2.967-3.251-2.967-0.884 0-1.726 0.386-2.527 1.157s-1.519 1.727-2.154 2.867-1.201 2.213-1.699 3.219c-0.248 0.469-0.421 0.905-0.517 1.308-0.097 0.402-0.145 0.972-0.145 1.71v37.221c0 0.871-0.166 1.307-0.497 1.307h-1.74c-0.166 0-0.29-0.1-0.373-0.301-0.083-0.202-0.124-0.503-0.124-0.906v-36.315c0-3.555-0.332-6.321-0.994-8.3-0.663-1.978-1.754-2.967-3.273-2.967-1.242 0-2.375 0.704-3.396 2.112-1.022 1.409-2.223 3.555-3.604 6.439v39.031c0 0.805-0.18 1.207-0.539 1.207h-1.698z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m53.642 166.28c-1.077 2.549-2.237 4.477-3.479 5.785-1.243 1.307-2.61 1.961-4.101 1.961-2.154 0-3.853-1.324-5.095-3.973-1.243-2.649-1.864-6.187-1.864-10.613 0-3.488 0.4-6.489 1.201-9.004s1.988-4.51 3.562-5.985c1.574-1.476 3.521-2.414 5.841-2.817l3.686-0.704c0.221-0.067 0.394-0.218 0.518-0.453 0.124-0.234 0.187-0.587 0.187-1.056v-2.917c0-3.89-0.504-6.975-1.512-9.255s-2.354-3.42-4.039-3.42c-1.298 0-2.472 0.72-3.521 2.162s-2.002 3.572-2.858 6.388c-0.083 0.268-0.159 0.453-0.228 0.554-0.069 0.1-0.172 0.083-0.311-0.051l-1.698-1.71c-0.083-0.134-0.138-0.285-0.166-0.453-0.027-0.167 0.014-0.452 0.125-0.855 0.856-3.353 2.009-6.052 3.459-8.098 1.449-2.045 3.224-3.068 5.322-3.068 1.74 0 3.211 0.687 4.412 2.062s2.112 3.37 2.734 5.986c0.621 2.615 0.932 5.7 0.932 9.255v35.712c0 0.536-0.035 0.888-0.104 1.056s-0.2 0.251-0.393 0.251h-1.533c-0.166 0-0.29-0.117-0.373-0.352-0.083-0.234-0.124-0.553-0.124-0.955l-0.083-5.231c-0.055-0.939-0.221-1.006-0.497-0.202zm0.456-19.314c0-1.14-0.194-1.643-0.58-1.509l-3.107 0.603c-1.436 0.202-2.686 0.638-3.749 1.308-1.063 0.671-1.953 1.543-2.671 2.616s-1.257 2.33-1.616 3.772-0.538 3.102-0.538 4.98c0 3.152 0.455 5.616 1.367 7.393 0.911 1.778 2.14 2.666 3.686 2.666 0.939 0 1.85-0.419 2.734-1.257s1.671-1.895 2.361-3.169c0.663-1.408 1.181-2.85 1.553-4.326 0.373-1.475 0.56-2.883 0.56-4.225v-8.852z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m79.034 173.02c-0.166 0-0.297-0.117-0.394-0.352-0.096-0.234-0.145-0.553-0.145-0.955v-4.628c0-0.536-0.041-0.838-0.124-0.905s-0.207 0.1-0.373 0.503c-0.276 0.67-0.69 1.593-1.242 2.766-0.553 1.174-1.271 2.23-2.154 3.169-0.884 0.939-1.961 1.408-3.231 1.408-1.74 0-3.314-0.989-4.722-2.967-1.409-1.979-2.534-4.963-3.376-8.953-0.843-3.991-1.264-8.937-1.264-14.838 0-5.701 0.415-10.68 1.243-14.939s1.988-7.595 3.479-10.009c1.492-2.415 3.204-3.622 5.137-3.622 1.436 0 2.616 0.57 3.541 1.71 0.926 1.14 1.719 2.381 2.382 3.722 0.249 0.47 0.414 0.637 0.497 0.503s0.125-0.536 0.125-1.207v-23.841c0-0.805 0.151-1.208 0.455-1.208h1.864c0.276 0 0.414 0.369 0.414 1.107v72.128c0 0.537-0.041 0.905-0.124 1.107-0.083 0.201-0.235 0.301-0.455 0.301h-1.533zm-0.621-42.049c-0.939-2.213-1.885-3.94-2.838-5.181s-2.009-1.861-3.169-1.861c-1.463 0-2.768 0.889-3.914 2.666s-2.044 4.376-2.693 7.796-0.973 7.578-0.973 12.474c0 5.097 0.338 9.272 1.015 12.524 0.676 3.253 1.567 5.651 2.672 7.193 1.104 1.543 2.305 2.314 3.603 2.314 1.188 0 2.258-0.704 3.211-2.113 0.952-1.408 1.705-3.118 2.257-5.13s0.829-3.957 0.829-5.835v-24.847z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m89.514 149.38c0 3.42 0.345 6.606 1.035 9.557 0.691 2.951 1.609 5.315 2.755 7.092s2.437 2.666 3.873 2.666c1.519 0 2.837-0.738 3.956-2.213 1.118-1.476 2.064-3.655 2.837-6.539 0.083-0.336 0.166-0.52 0.249-0.554 0.083-0.033 0.179 0.017 0.29 0.151l1.408 1.912c0.221 0.268 0.235 0.67 0.041 1.207-0.69 2.548-1.47 4.661-2.34 6.337-0.87 1.677-1.857 2.935-2.962 3.773-1.104 0.838-2.319 1.257-3.645 1.257-2.043 0-3.838-1.14-5.385-3.42-1.546-2.28-2.761-5.482-3.645-9.607-0.884-4.124-1.325-8.836-1.325-14.134 0-5.901 0.455-10.931 1.367-15.089 0.911-4.158 2.14-7.377 3.686-9.658 1.547-2.28 3.3-3.42 5.261-3.42 1.988 0 3.714 1.073 5.178 3.219 1.463 2.146 2.595 5.231 3.396 9.255s1.201 8.886 1.201 14.587c0 0.469-0.02 0.939-0.062 1.408-0.041 0.469-0.214 0.704-0.517 0.704h-16.362c-0.083 0-0.152 0.151-0.207 0.453-0.056 0.302-0.083 0.654-0.083 1.056zm13.752-6.237c0.304 0 0.497-0.1 0.58-0.302 0.083-0.201 0.124-0.57 0.124-1.106 0-3.219-0.283-6.187-0.849-8.903s-1.367-4.896-2.402-6.539c-1.036-1.643-2.272-2.464-3.708-2.464-1.629 0-2.996 0.955-4.101 2.867-1.104 1.911-1.94 4.342-2.506 7.293s-0.849 6.002-0.849 9.154h13.711z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m148.54 119.7c0.165 0 0.283 0.117 0.352 0.352s0.076 0.52 0.02 0.855l-6.254 50.902c-0.028 0.47-0.104 0.788-0.228 0.956s-0.297 0.251-0.518 0.251h-1.615c-0.442 0-0.718-0.402-0.829-1.207l-5.26-40.138c-0.111-0.604-0.201-0.905-0.27-0.905s-0.131 0.301-0.186 0.905l-5.012 40.138c-0.028 0.47-0.097 0.788-0.207 0.956-0.111 0.168-0.277 0.251-0.497 0.251h-1.74c-0.442 0-0.718-0.402-0.829-1.207l-6.503-50.801c-0.055-0.403-0.048-0.721 0.021-0.956s0.2-0.352 0.393-0.352h1.823c0.166 0 0.297 0.067 0.393 0.201 0.097 0.134 0.159 0.403 0.187 0.805l5.302 41.848c0.083 0.671 0.179 0.989 0.29 0.956 0.11-0.034 0.207-0.386 0.29-1.056l5.219-41.949c0.055-0.268 0.124-0.47 0.207-0.604s0.193-0.201 0.331-0.201h1.533c0.138 0 0.262 0.067 0.373 0.201 0.11 0.134 0.179 0.403 0.207 0.805l5.468 41.848c0.083 0.671 0.179 0.989 0.29 0.956 0.11-0.034 0.207-0.386 0.29-1.056l5.053-41.849c0.055-0.335 0.138-0.57 0.249-0.704 0.11-0.134 0.234-0.201 0.373-0.201h1.284z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m156.49 171.51c0 0.604-0.042 1.006-0.125 1.208-0.082 0.201-0.262 0.301-0.538 0.301h-1.533c-0.221 0-0.366-0.083-0.435-0.251s-0.103-0.486-0.103-0.956v-50.902c0-0.805 0.152-1.207 0.456-1.207h1.822c0.304 0 0.456 0.402 0.456 1.207v50.6zm0.165-63.979c0 1.207-0.207 1.811-0.621 1.811h-1.905c-0.221 0-0.366-0.135-0.435-0.403s-0.104-0.67-0.104-1.207v-7.847c0-1.006 0.18-1.509 0.539-1.509h1.988c0.359 0 0.538 0.47 0.538 1.409v7.746z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m168.3 124.83c-0.221 0-0.331 0.269-0.331 0.805v33.801c0 3.42 0.221 5.667 0.663 6.74 0.441 1.073 1.09 1.609 1.946 1.609h3.024c0.138 0 0.242 0.084 0.311 0.252 0.069 0.167 0.103 0.419 0.103 0.754v2.716c0 0.537-0.138 0.906-0.414 1.107-0.248 0.067-0.614 0.134-1.098 0.201-0.483 0.067-0.959 0.118-1.429 0.151-0.469 0.034-0.828 0.05-1.077 0.05-1.712 0-2.934-0.955-3.665-2.867-0.732-1.911-1.098-5.013-1.098-9.305v-35.108c0-0.604-0.124-0.906-0.373-0.906h-3.521c-0.248 0-0.373-0.268-0.373-0.804v-3.521c0-0.537 0.111-0.805 0.332-0.805h3.686c0.166 0 0.263-0.268 0.29-0.805l0.415-16.095c0-0.805 0.124-1.207 0.372-1.207h1.492c0.303 0 0.455 0.436 0.455 1.307v15.995c0 0.537 0.097 0.805 0.29 0.805h5.468c0.221 0 0.331 0.268 0.331 0.805v3.521c0 0.536-0.124 0.804-0.373 0.804h-5.426z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m179.4 173.02c-0.331 0-0.497-0.402-0.497-1.207v-72.329c0-0.738 0.138-1.107 0.414-1.107h1.782c0.276 0 0.414 0.336 0.414 1.006v27.162c0 0.335 0.034 0.536 0.103 0.603s0.159-0.033 0.27-0.302c0.994-1.81 1.898-3.319 2.713-4.526 0.814-1.208 1.629-2.113 2.444-2.717 0.814-0.603 1.691-0.905 2.63-0.905 2.182 0 3.839 1.375 4.971 4.125 1.132 2.749 1.698 6.404 1.698 10.965v37.925c0 0.871-0.166 1.307-0.497 1.307h-1.74c-0.165 0-0.29-0.1-0.373-0.301-0.082-0.202-0.124-0.503-0.124-0.906v-36.315c0-3.555-0.366-6.321-1.097-8.3-0.732-1.978-1.899-2.967-3.501-2.967-0.883 0-1.705 0.318-2.464 0.956-0.76 0.637-1.526 1.576-2.299 2.816-0.773 1.241-1.643 2.834-2.61 4.779v39.031c0 0.805-0.179 1.207-0.538 1.207h-1.699z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> </g> <g transform="matrix(.80638 0 0 .80638 452.53 65.421)" fill-rule="nonzero"> <path d="m79.32 36.98v150.76l15.68-13.2 6.59-156.31-22.27 18.75z" fill="url(#f)"/> <path d="m79.32 36.98-22.27-18.75 6.59 156.31 15.68 13.2v-150.76z" fill="url(#e)"/> <path d="m25.19 104.83 8.63 49.04 12.5-14.95-2.46-56.42-18.67 22.33z" fill="url(#d)"/> <path d="m25.19 104.83-25.19-14.59 16.97 53.86 16.85 9.77-8.63-49.04z" fill="url(#c)"/> <path d="M43.86,82.5L18.69,67.98L0,90.24L25.18,104.83L43.86,82.5Z" fill="#9c3"/> <path d="m134.82 78.69-9.97 56.5 15.58-9.04 19.57-62.05-25.18 14.59z" fill="url(#b)"/> <path d="m134.82 78.69-18.68-22.33-2.86 65 11.57 13.83 9.97-56.5z" fill="url(#a)"/> <path d="m160 64.1-18.69-22.26-25.17 14.52 18.67 22.33 25.19-14.59z" fill="#ffe113"/> <path d="M101.59,18.23L79.32,0L57.05,18.23L79.32,36.98L101.59,18.23Z" fill="#f3e600"/> </g> <defs> <linearGradient id="f" x2="1" gradientTransform="matrix(.84 -162.96 162.96 .84 89.64 184.81)" gradientUnits="userSpaceOnUse"><stop stop-color="#62d399" offset="0"/><stop stop-color="#acd842" offset=".51"/><stop stop-color="#d7db0a" offset=".9"/><stop stop-color="#d7db0a" offset="1"/></linearGradient> <linearGradient id="e" x2="1" gradientTransform="matrix(-1.6,-162.13,162.13,-1.6,69.68,178.9)" gradientUnits="userSpaceOnUse"><stop stop-color="#0ba398" offset="0"/><stop stop-color="#4ca352" offset=".5"/><stop stop-color="#76a30a" offset="1"/></linearGradient> <linearGradient id="d" x2="1" gradientTransform="matrix(-1.9,-67.98,67.98,-1.9,36.6,152.17)" gradientUnits="userSpaceOnUse"><stop stop-color="#36a382" offset="0"/><stop stop-color="#36a382" offset=".19"/><stop stop-color="#49a459" offset=".54"/><stop stop-color="#76a30b" offset="1"/></linearGradient> <linearGradient id="c" x2="1" gradientTransform="matrix(2.18,-62.38,62.38,2.18,15.82,153.24)" gradientUnits="userSpaceOnUse"><stop stop-color="#267880" offset="0"/><stop stop-color="#457a5c" offset=".51"/><stop stop-color="#717516" offset="1"/></linearGradient> <linearGradient id="b" x2="1" gradientTransform="matrix(13.85,-71.96,71.96,13.85,135.08,135.43)" gradientUnits="userSpaceOnUse"><stop stop-color="#b0d939" offset="0"/><stop stop-color="#eadb04" offset="1"/></linearGradient> <linearGradient id="a" x2="1" gradientTransform="matrix(26.159 -64.737 64.737 26.159 107.42 128.14)" gradientUnits="userSpaceOnUse"><stop stop-color="#74af52" offset="0"/><stop stop-color="#74af52" offset=".17"/><stop stop-color="#99be32" offset=".48"/><stop stop-color="#c0c40a" offset="1"/></linearGradient> </defs> </svg>`;
4627
- btoa(QP);
4628
- const YP = '<svg viewBox="0 0 509 154" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M665.95 132.73v44.88l-10.56-8.4c-.8-.64-1.2-1.44-1.2-2.4v-32.4c0-6.48-4.12-9.72-12.36-9.72-2.16 0-4.18.4-6.06 1.2-1.88.8-3.54 1.8-4.98 3-1.44 1.2-2.56 2.5-3.36 3.9-.8 1.4-1.2 2.7-1.2 3.9v40.92l-10.68-8.4c-.72-.64-1.08-1.44-1.08-2.4v-53.76l10.92 8.52c.32.24.56.44.72.6.16.16.36.32.6.48.96-1.2 2.14-2.28 3.54-3.24 1.4-.96 2.92-1.76 4.56-2.4 1.64-.64 3.34-1.14 5.1-1.5 1.76-.36 3.44-.54 5.04-.54 1.44 0 2.92.04 4.44.12 1.52.08 2.84.28 3.96.6 4.56 1.12 7.8 3.12 9.72 6 1.92 2.88 2.88 6.56 2.88 11.04ZM732.38 146.05c0 .88.02 1.5.06 1.86.04.36-.02.98-.18 1.86h-7.08c-2.08 0-4.44-.02-7.08-.06-2.64-.04-5.36-.06-8.16-.06h-22.08c0 2.88.56 5.36 1.68 7.44 1.12 2.08 2.6 3.8 4.44 5.16 1.84 1.36 3.94 2.36 6.3 3 2.36.64 4.74.96 7.14.96 3.04 0 5.9-.76 8.58-2.28 2.68-1.52 4.94-3.52 6.78-6 .64.56 1.54 1.48 2.7 2.76 1.16 1.28 2.94 3.2 5.34 5.76-2.8 3.36-6.22 6.02-10.26 7.98-4.04 1.96-8.42 2.94-13.14 2.94-4.72 0-8.92-.64-12.84-1.92-3.92-1.28-7.32-3.24-10.2-5.88-2.88-2.64-5.12-5.98-6.72-10.02-1.6-4.04-2.4-8.82-2.4-14.34 0-4.96.66-9.42 1.98-13.38 1.32-3.96 3.22-7.32 5.7-10.08s5.44-4.9 8.88-6.42c3.44-1.52 7.32-2.28 11.64-2.28 5.76 0 10.52.88 14.28 2.64 3.76 1.76 6.72 4.16 8.88 7.2 2.16 3.04 3.66 6.54 4.5 10.5.84 3.96 1.26 8.18 1.26 12.66Zm-29.4-22.8c-2.16.16-4.16.72-6 1.68-1.84.96-3.42 2.2-4.74 3.72-1.32 1.52-2.36 3.28-3.12 5.28-.76 2-1.14 4.12-1.14 6.36h33.12c0-2-.22-4.06-.66-6.18-.44-2.12-1.3-4.02-2.58-5.7-1.28-1.68-3.1-3.02-5.46-4.02-2.36-1-5.5-1.38-9.42-1.14ZM795.93 146.05c0 .88.02 1.5.06 1.86.04.36-.02.98-.18 1.86h-7.08c-2.08 0-4.44-.02-7.08-.06-2.64-.04-5.36-.06-8.16-.06h-22.08c0 2.88.56 5.36 1.68 7.44 1.12 2.08 2.6 3.8 4.44 5.16 1.84 1.36 3.94 2.36 6.3 3 2.36.64 4.74.96 7.14.96 3.04 0 5.9-.76 8.58-2.28 2.68-1.52 4.94-3.52 6.78-6 .64.56 1.54 1.48 2.7 2.76 1.16 1.28 2.94 3.2 5.34 5.76-2.8 3.36-6.22 6.02-10.26 7.98-4.04 1.96-8.42 2.94-13.14 2.94-4.72 0-8.92-.64-12.84-1.92-3.92-1.28-7.32-3.24-10.2-5.88-2.88-2.64-5.12-5.98-6.72-10.02-1.6-4.04-2.4-8.82-2.4-14.34 0-4.96.66-9.42 1.98-13.38 1.32-3.96 3.22-7.32 5.7-10.08s5.44-4.9 8.88-6.42c3.44-1.52 7.32-2.28 11.64-2.28 5.76 0 10.52.88 14.28 2.64 3.76 1.76 6.72 4.16 8.88 7.2 2.16 3.04 3.66 6.54 4.5 10.5.84 3.96 1.26 8.18 1.26 12.66Zm-29.4-22.8c-2.16.16-4.16.72-6 1.68-1.84.96-3.42 2.2-4.74 3.72-1.32 1.52-2.36 3.28-3.12 5.28-.76 2-1.14 4.12-1.14 6.36h33.12c0-2-.22-4.06-.66-6.18-.44-2.12-1.3-4.02-2.58-5.7-1.28-1.68-3.1-3.02-5.46-4.02-2.36-1-5.5-1.38-9.42-1.14ZM858.57 97.21c.64.48.96 1.16.96 2.04v74.88c-.08 1.04-.12 2.12-.12 3.24-1.84-1.52-3.56-2.92-5.16-4.2-1.36-1.12-2.66-2.18-3.9-3.18-1.24-1-2.06-1.66-2.46-1.98-1.76 2.48-4.26 4.44-7.5 5.88-3.24 1.44-7.02 2.16-11.34 2.16-3.84 0-7.4-.7-10.68-2.1-3.28-1.4-6.14-3.44-8.58-6.12-2.44-2.68-4.34-5.94-5.7-9.78-1.36-3.84-2.04-8.16-2.04-12.96 0-4.32.78-8.34 2.34-12.06 1.56-3.72 3.6-6.92 6.12-9.6 2.52-2.68 5.38-4.78 8.58-6.3 3.2-1.52 6.48-2.28 9.84-2.28 2.56 0 4.82.22 6.78.66 1.96.44 3.68 1.06 5.16 1.86s2.78 1.74 3.9 2.82a35.92 35.92 0 0 1 3.12 3.42V88.57l10.68 8.64Zm-27.96 67.92c3.6 0 6.52-.68 8.76-2.04 2.24-1.36 3.98-3.06 5.22-5.1a20.5 20.5 0 0 0 2.58-6.54c.48-2.32.72-4.44.72-6.36v-1.2c0-1.12-.22-2.7-.66-4.74-.44-2.04-1.28-4.06-2.52-6.06s-3-3.7-5.28-5.1c-2.28-1.4-5.22-2.02-8.82-1.86-3.44 0-6.26.74-8.46 2.22-2.2 1.48-3.96 3.26-5.28 5.34-1.32 2.08-2.24 4.2-2.76 6.36-.52 2.16-.78 3.92-.78 5.28 0 1.84.24 3.92.72 6.24.48 2.32 1.36 4.48 2.64 6.48s3.04 3.68 5.28 5.04c2.24 1.36 5.12 2.04 8.64 2.04ZM882.81 97.09c.64.48.96 1.12.96 1.92l-.12 41.04v37.08l-10.56-8.4c-.72-.64-1.08-1.44-1.08-2.4V88.45l10.8 8.64ZM950.36 146.05c0 .88.02 1.5.06 1.86.04.36-.02.98-.18 1.86h-7.08c-2.08 0-4.44-.02-7.08-.06-2.64-.04-5.36-.06-8.16-.06h-22.08c0 2.88.56 5.36 1.68 7.44 1.12 2.08 2.6 3.8 4.44 5.16 1.84 1.36 3.94 2.36 6.3 3 2.36.64 4.74.96 7.14.96 3.04 0 5.9-.76 8.58-2.28 2.68-1.52 4.94-3.52 6.78-6 .64.56 1.54 1.48 2.7 2.76 1.16 1.28 2.94 3.2 5.34 5.76-2.8 3.36-6.22 6.02-10.26 7.98-4.04 1.96-8.42 2.94-13.14 2.94-4.72 0-8.92-.64-12.84-1.92-3.92-1.28-7.32-3.24-10.2-5.88-2.88-2.64-5.12-5.98-6.72-10.02-1.6-4.04-2.4-8.82-2.4-14.34 0-4.96.66-9.42 1.98-13.38 1.32-3.96 3.22-7.32 5.7-10.08s5.44-4.9 8.88-6.42c3.44-1.52 7.32-2.28 11.64-2.28 5.76 0 10.52.88 14.28 2.64 3.76 1.76 6.72 4.16 8.88 7.2 2.16 3.04 3.66 6.54 4.5 10.5.84 3.96 1.26 8.18 1.26 12.66Zm-29.4-22.8c-2.16.16-4.16.72-6 1.68-1.84.96-3.42 2.2-4.74 3.72-1.32 1.52-2.36 3.28-3.12 5.28-.76 2-1.14 4.12-1.14 6.36h33.12c0-2-.22-4.06-.66-6.18-.44-2.12-1.3-4.02-2.58-5.7-1.28-1.68-3.1-3.02-5.46-4.02-2.36-1-5.5-1.38-9.42-1.14Z" style="fill-rule:nonzero" transform="translate(-452.406 -63.709) scale(1.00797)"/><path d="M79.32 36.98v150.76L95 174.54l6.59-156.31-22.27 18.75Z" style="fill:url(#a);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="M79.32 36.98 57.05 18.23l6.59 156.31 15.68 13.2V36.98Z" style="fill:url(#b);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="m25.19 104.83 8.63 49.04 12.5-14.95-2.46-56.42-18.67 22.33Z" style="fill:url(#c);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="M25.19 104.83 0 90.24l16.97 53.86 16.85 9.77-8.63-49.04Z" style="fill:url(#d);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="M43.86 82.5 18.69 67.98 0 90.24l25.18 14.59L43.86 82.5Z" style="fill:#9c3;fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="m134.82 78.69-9.97 56.5 15.58-9.04L160 64.1l-25.18 14.59Z" style="fill:url(#e);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="m134.82 78.69-18.68-22.33-2.86 65 11.57 13.83 9.97-56.5Z" style="fill:url(#f);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="m160 64.1-18.69-22.26-25.17 14.52 18.67 22.33L160 64.1Z" style="fill:#ffe113;fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="M101.59 18.23 79.32 0 57.05 18.23l22.27 18.75 22.27-18.75Z" style="fill:#f3e600;fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><defs><linearGradient id="a" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(.84 -162.96 162.96 .84 89.64 184.81)"><stop offset="0" style="stop-color:#62d399;stop-opacity:1"/><stop offset=".51" style="stop-color:#acd842;stop-opacity:1"/><stop offset=".9" style="stop-color:#d7db0a;stop-opacity:1"/><stop offset="1" style="stop-color:#d7db0a;stop-opacity:1"/></linearGradient><linearGradient id="b" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-90.565 123.412 54.953) scale(162.14)"><stop offset="0" style="stop-color:#0ba398;stop-opacity:1"/><stop offset=".5" style="stop-color:#4ca352;stop-opacity:1"/><stop offset="1" style="stop-color:#76a30a;stop-opacity:1"/></linearGradient><linearGradient id="c" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="scale(-68) rotate(88.4 .881 -1.396)"><stop offset="0" style="stop-color:#36a382;stop-opacity:1"/><stop offset=".19" style="stop-color:#36a382;stop-opacity:1"/><stop offset=".54" style="stop-color:#49a459;stop-opacity:1"/><stop offset="1" style="stop-color:#76a30b;stop-opacity:1"/></linearGradient><linearGradient id="d" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-88 87.255 68.431) scale(62.42)"><stop offset="0" style="stop-color:#267880;stop-opacity:1"/><stop offset=".51" style="stop-color:#457a5c;stop-opacity:1"/><stop offset="1" style="stop-color:#717516;stop-opacity:1"/></linearGradient><linearGradient id="e" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-79.1 149.53 -14.065) scale(73.28)"><stop offset="0" style="stop-color:#b0d939;stop-opacity:1"/><stop offset="1" style="stop-color:#eadb04;stop-opacity:1"/></linearGradient><linearGradient id="f" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-67.997 148.705 -15.558) scale(69.8226)"><stop offset="0" style="stop-color:#74af52;stop-opacity:1"/><stop offset=".17" style="stop-color:#74af52;stop-opacity:1"/><stop offset=".48" style="stop-color:#99be32;stop-opacity:1"/><stop offset="1" style="stop-color:#c0c40a;stop-opacity:1"/></linearGradient></defs></svg>', KP = btoa(YP), ZP = "data:image/svg+xml;charset=utf-8;base64," + KP, x_ = ZP;
4490
+ const NP = '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 187.74"><defs><linearGradient id="a" x1="89.64" y1="184.81" x2="90.48" y2="21.85" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#62d399"/><stop offset=".51" stop-color="#acd842"/><stop offset=".9" stop-color="#d7db0a"/></linearGradient><linearGradient id="b" x1="69.68" y1="178.9" x2="68.08" y2="16.77" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0ba398"/><stop offset=".5" stop-color="#4ca352"/><stop offset="1" stop-color="#76a30a"/></linearGradient><linearGradient id="c" x1="36.6" y1="152.17" x2="34.7" y2="84.19" gradientUnits="userSpaceOnUse"><stop offset=".19" stop-color="#36a382"/><stop offset=".54" stop-color="#49a459"/><stop offset="1" stop-color="#76a30b"/></linearGradient><linearGradient id="d" x1="15.82" y1="153.24" x2="18" y2="90.86" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#267880"/><stop offset=".51" stop-color="#457a5c"/><stop offset="1" stop-color="#717516"/></linearGradient><linearGradient id="e" x1="135.08" y1="135.43" x2="148.93" y2="63.47" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b0d939"/><stop offset="1" stop-color="#eadb04"/></linearGradient><linearGradient id="f" x1="-4163.25" y1="2285.12" x2="-4160.81" y2="2215.34" gradientTransform="rotate(20 4088.49 13316.712)" gradientUnits="userSpaceOnUse"><stop offset=".17" stop-color="#74af52"/><stop offset=".48" stop-color="#99be32"/><stop offset="1" stop-color="#c0c40a"/></linearGradient><symbol id="g" viewBox="0 0 160 187.74"><path style="fill:url(#a)" d="M79.32 36.98v150.76L95 174.54l6.59-156.31-22.27 18.75z"/><path style="fill:url(#b)" d="M79.32 36.98 57.05 18.23l6.59 156.31 15.68 13.2V36.98z"/><path style="fill:url(#c)" d="m25.19 104.83 8.63 49.04 12.5-14.95-2.46-56.42-18.67 22.33z"/><path style="fill:url(#d)" d="M25.19 104.83 0 90.24l16.97 53.86 16.85 9.77-8.63-49.04z"/><path style="fill:#9c3" d="M43.86 82.5 18.69 67.98 0 90.24l25.18 14.59L43.86 82.5z"/><path style="fill:url(#e)" d="m134.82 78.69-9.97 56.5 15.58-9.04L160 64.1l-25.18 14.59z"/><path style="fill:url(#f)" d="m134.82 78.69-18.68-22.33-2.86 65 11.57 13.83 9.97-56.5z"/><path style="fill:#ffe113" d="m160 64.1-18.69-22.26-25.17 14.52 18.67 22.33L160 64.1z"/><path style="fill:#f3e600" d="M101.59 18.23 79.32 0 57.05 18.23l22.27 18.75 22.27-18.75z"/></symbol></defs><use width="160" height="187.74" xlink:href="#g"/></svg>', $P = btoa(NP), WP = "data:image/svg+xml;base64," + $P, Ha = WP, VP = `<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'> <svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" version="1.1" viewBox="0 0 1014 282" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m665.95 132.73v44.88l-10.56-8.4c-0.8-0.64-1.2-1.44-1.2-2.4v-32.4c0-6.48-4.12-9.72-12.36-9.72-2.16 0-4.18 0.4-6.06 1.2s-3.54 1.8-4.98 3-2.56 2.5-3.36 3.9-1.2 2.7-1.2 3.9v40.92l-10.68-8.4c-0.72-0.64-1.08-1.44-1.08-2.4v-53.76l10.92 8.52c0.32 0.24 0.56 0.44 0.72 0.6s0.36 0.32 0.6 0.48c0.96-1.2 2.14-2.28 3.54-3.24s2.92-1.76 4.56-2.4 3.34-1.14 5.1-1.5 3.44-0.54 5.04-0.54c1.44 0 2.92 0.04 4.44 0.12s2.84 0.28 3.96 0.6c4.56 1.12 7.8 3.12 9.72 6s2.88 6.56 2.88 11.04z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m732.38 146.05c0 0.88 0.02 1.5 0.06 1.86s-0.02 0.98-0.18 1.86h-7.08c-2.08 0-4.44-0.02-7.08-0.06s-5.36-0.06-8.16-0.06h-22.08c0 2.88 0.56 5.36 1.68 7.44s2.6 3.8 4.44 5.16 3.94 2.36 6.3 3 4.74 0.96 7.14 0.96c3.04 0 5.9-0.76 8.58-2.28s4.94-3.52 6.78-6c0.64 0.56 1.54 1.48 2.7 2.76s2.94 3.2 5.34 5.76c-2.8 3.36-6.22 6.02-10.26 7.98s-8.42 2.94-13.14 2.94-8.92-0.64-12.84-1.92-7.32-3.24-10.2-5.88-5.12-5.98-6.72-10.02-2.4-8.82-2.4-14.34c0-4.96 0.66-9.42 1.98-13.38s3.22-7.32 5.7-10.08 5.44-4.9 8.88-6.42 7.32-2.28 11.64-2.28c5.76 0 10.52 0.88 14.28 2.64s6.72 4.16 8.88 7.2 3.66 6.54 4.5 10.5 1.26 8.18 1.26 12.66zm-29.4-22.8c-2.16 0.16-4.16 0.72-6 1.68s-3.42 2.2-4.74 3.72-2.36 3.28-3.12 5.28-1.14 4.12-1.14 6.36h33.12c0-2-0.22-4.06-0.66-6.18s-1.3-4.02-2.58-5.7-3.1-3.02-5.46-4.02-5.5-1.38-9.42-1.14z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m795.93 146.05c0 0.88 0.02 1.5 0.06 1.86s-0.02 0.98-0.18 1.86h-7.08c-2.08 0-4.44-0.02-7.08-0.06s-5.36-0.06-8.16-0.06h-22.08c0 2.88 0.56 5.36 1.68 7.44s2.6 3.8 4.44 5.16 3.94 2.36 6.3 3 4.74 0.96 7.14 0.96c3.04 0 5.9-0.76 8.58-2.28s4.94-3.52 6.78-6c0.64 0.56 1.54 1.48 2.7 2.76s2.94 3.2 5.34 5.76c-2.8 3.36-6.22 6.02-10.26 7.98s-8.42 2.94-13.14 2.94-8.92-0.64-12.84-1.92-7.32-3.24-10.2-5.88-5.12-5.98-6.72-10.02-2.4-8.82-2.4-14.34c0-4.96 0.66-9.42 1.98-13.38s3.22-7.32 5.7-10.08 5.44-4.9 8.88-6.42 7.32-2.28 11.64-2.28c5.76 0 10.52 0.88 14.28 2.64s6.72 4.16 8.88 7.2 3.66 6.54 4.5 10.5 1.26 8.18 1.26 12.66zm-29.4-22.8c-2.16 0.16-4.16 0.72-6 1.68s-3.42 2.2-4.74 3.72-2.36 3.28-3.12 5.28-1.14 4.12-1.14 6.36h33.12c0-2-0.22-4.06-0.66-6.18s-1.3-4.02-2.58-5.7-3.1-3.02-5.46-4.02-5.5-1.38-9.42-1.14z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m858.57 97.21c0.64 0.48 0.96 1.16 0.96 2.04v74.88c-0.08 1.04-0.12 2.12-0.12 3.24-1.84-1.52-3.56-2.92-5.16-4.2-1.36-1.12-2.66-2.18-3.9-3.18s-2.06-1.66-2.46-1.98c-1.76 2.48-4.26 4.44-7.5 5.88s-7.02 2.16-11.34 2.16c-3.84 0-7.4-0.7-10.68-2.1s-6.14-3.44-8.58-6.12-4.34-5.94-5.7-9.78-2.04-8.16-2.04-12.96c0-4.32 0.78-8.34 2.34-12.06s3.6-6.92 6.12-9.6 5.38-4.78 8.58-6.3 6.48-2.28 9.84-2.28c2.56 0 4.82 0.22 6.78 0.66s3.68 1.06 5.16 1.86 2.78 1.74 3.9 2.82 2.16 2.22 3.12 3.42v-35.04l10.68 8.64zm-27.96 67.92c3.6 0 6.52-0.68 8.76-2.04s3.98-3.06 5.22-5.1 2.1-4.22 2.58-6.54 0.72-4.44 0.72-6.36v-1.2c0-1.12-0.22-2.7-0.66-4.74s-1.28-4.06-2.52-6.06-3-3.7-5.28-5.1-5.22-2.02-8.82-1.86c-3.44 0-6.26 0.74-8.46 2.22s-3.96 3.26-5.28 5.34-2.24 4.2-2.76 6.36-0.78 3.92-0.78 5.28c0 1.84 0.24 3.92 0.72 6.24s1.36 4.48 2.64 6.48 3.04 3.68 5.28 5.04 5.12 2.04 8.64 2.04z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m882.81 97.09c0.64 0.48 0.96 1.12 0.96 1.92l-0.12 41.04v37.08l-10.56-8.4c-0.72-0.64-1.08-1.44-1.08-2.4v-77.88l10.8 8.64z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m950.36 146.05c0 0.88 0.02 1.5 0.06 1.86s-0.02 0.98-0.18 1.86h-7.08c-2.08 0-4.44-0.02-7.08-0.06s-5.36-0.06-8.16-0.06h-22.08c0 2.88 0.56 5.36 1.68 7.44s2.6 3.8 4.44 5.16 3.94 2.36 6.3 3 4.74 0.96 7.14 0.96c3.04 0 5.9-0.76 8.58-2.28s4.94-3.52 6.78-6c0.64 0.56 1.54 1.48 2.7 2.76s2.94 3.2 5.34 5.76c-2.8 3.36-6.22 6.02-10.26 7.98s-8.42 2.94-13.14 2.94-8.92-0.64-12.84-1.92-7.32-3.24-10.2-5.88-5.12-5.98-6.72-10.02-2.4-8.82-2.4-14.34c0-4.96 0.66-9.42 1.98-13.38s3.22-7.32 5.7-10.08 5.44-4.9 8.88-6.42 7.32-2.28 11.64-2.28c5.76 0 10.52 0.88 14.28 2.64s6.72 4.16 8.88 7.2 3.66 6.54 4.5 10.5 1.26 8.18 1.26 12.66zm-29.4-22.8c-2.16 0.16-4.16 0.72-6 1.68s-3.42 2.2-4.74 3.72-2.36 3.28-3.12 5.28-1.14 4.12-1.14 6.36h33.12c0-2-0.22-4.06-0.66-6.18s-1.3-4.02-2.58-5.7-3.1-3.02-5.46-4.02-5.5-1.38-9.42-1.14z" fill-rule="nonzero"/> </g> <g transform="matrix(1.8559 0 0 .7642 45.348 36.475)"> <g transform="translate(2.7114)"> <path d="m3.935 173.02c-0.331 0-0.497-0.402-0.497-1.207v-51.002c0-0.738 0.138-1.107 0.414-1.107h1.781c0.277 0 0.415 0.335 0.415 1.006v5.935c0 0.336 0.027 0.553 0.083 0.654 0.055 0.101 0.151-0.017 0.289-0.352 0.912-1.744 1.754-3.236 2.527-4.477 0.773-1.24 1.554-2.179 2.341-2.816s1.65-0.956 2.588-0.956c1.685 0 3.011 0.922 3.977 2.766 0.967 1.845 1.602 3.84 1.905 5.986 0.056 0.268 0.139 0.369 0.249 0.302s0.221-0.235 0.331-0.503c0.939-1.811 1.802-3.353 2.589-4.628 0.787-1.274 1.581-2.246 2.382-2.917s1.671-1.006 2.61-1.006c2.016 0 3.569 1.392 4.66 4.175 1.09 2.783 1.636 6.421 1.636 10.915v37.925c0 0.871-0.18 1.307-0.539 1.307h-1.739c-0.138 0-0.249-0.1-0.332-0.301-0.083-0.202-0.124-0.503-0.124-0.906v-36.315c0-3.555-0.338-6.321-1.015-8.3-0.676-1.978-1.76-2.967-3.251-2.967-0.884 0-1.726 0.386-2.527 1.157s-1.519 1.727-2.154 2.867-1.201 2.213-1.699 3.219c-0.248 0.469-0.421 0.905-0.517 1.308-0.097 0.402-0.145 0.972-0.145 1.71v37.221c0 0.871-0.166 1.307-0.497 1.307h-1.74c-0.166 0-0.29-0.1-0.373-0.301-0.083-0.202-0.124-0.503-0.124-0.906v-36.315c0-3.555-0.332-6.321-0.994-8.3-0.663-1.978-1.754-2.967-3.273-2.967-1.242 0-2.375 0.704-3.396 2.112-1.022 1.409-2.223 3.555-3.604 6.439v39.031c0 0.805-0.18 1.207-0.539 1.207h-1.698z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m53.642 166.28c-1.077 2.549-2.237 4.477-3.479 5.785-1.243 1.307-2.61 1.961-4.101 1.961-2.154 0-3.853-1.324-5.095-3.973-1.243-2.649-1.864-6.187-1.864-10.613 0-3.488 0.4-6.489 1.201-9.004s1.988-4.51 3.562-5.985c1.574-1.476 3.521-2.414 5.841-2.817l3.686-0.704c0.221-0.067 0.394-0.218 0.518-0.453 0.124-0.234 0.187-0.587 0.187-1.056v-2.917c0-3.89-0.504-6.975-1.512-9.255s-2.354-3.42-4.039-3.42c-1.298 0-2.472 0.72-3.521 2.162s-2.002 3.572-2.858 6.388c-0.083 0.268-0.159 0.453-0.228 0.554-0.069 0.1-0.172 0.083-0.311-0.051l-1.698-1.71c-0.083-0.134-0.138-0.285-0.166-0.453-0.027-0.167 0.014-0.452 0.125-0.855 0.856-3.353 2.009-6.052 3.459-8.098 1.449-2.045 3.224-3.068 5.322-3.068 1.74 0 3.211 0.687 4.412 2.062s2.112 3.37 2.734 5.986c0.621 2.615 0.932 5.7 0.932 9.255v35.712c0 0.536-0.035 0.888-0.104 1.056s-0.2 0.251-0.393 0.251h-1.533c-0.166 0-0.29-0.117-0.373-0.352-0.083-0.234-0.124-0.553-0.124-0.955l-0.083-5.231c-0.055-0.939-0.221-1.006-0.497-0.202zm0.456-19.314c0-1.14-0.194-1.643-0.58-1.509l-3.107 0.603c-1.436 0.202-2.686 0.638-3.749 1.308-1.063 0.671-1.953 1.543-2.671 2.616s-1.257 2.33-1.616 3.772-0.538 3.102-0.538 4.98c0 3.152 0.455 5.616 1.367 7.393 0.911 1.778 2.14 2.666 3.686 2.666 0.939 0 1.85-0.419 2.734-1.257s1.671-1.895 2.361-3.169c0.663-1.408 1.181-2.85 1.553-4.326 0.373-1.475 0.56-2.883 0.56-4.225v-8.852z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m79.034 173.02c-0.166 0-0.297-0.117-0.394-0.352-0.096-0.234-0.145-0.553-0.145-0.955v-4.628c0-0.536-0.041-0.838-0.124-0.905s-0.207 0.1-0.373 0.503c-0.276 0.67-0.69 1.593-1.242 2.766-0.553 1.174-1.271 2.23-2.154 3.169-0.884 0.939-1.961 1.408-3.231 1.408-1.74 0-3.314-0.989-4.722-2.967-1.409-1.979-2.534-4.963-3.376-8.953-0.843-3.991-1.264-8.937-1.264-14.838 0-5.701 0.415-10.68 1.243-14.939s1.988-7.595 3.479-10.009c1.492-2.415 3.204-3.622 5.137-3.622 1.436 0 2.616 0.57 3.541 1.71 0.926 1.14 1.719 2.381 2.382 3.722 0.249 0.47 0.414 0.637 0.497 0.503s0.125-0.536 0.125-1.207v-23.841c0-0.805 0.151-1.208 0.455-1.208h1.864c0.276 0 0.414 0.369 0.414 1.107v72.128c0 0.537-0.041 0.905-0.124 1.107-0.083 0.201-0.235 0.301-0.455 0.301h-1.533zm-0.621-42.049c-0.939-2.213-1.885-3.94-2.838-5.181s-2.009-1.861-3.169-1.861c-1.463 0-2.768 0.889-3.914 2.666s-2.044 4.376-2.693 7.796-0.973 7.578-0.973 12.474c0 5.097 0.338 9.272 1.015 12.524 0.676 3.253 1.567 5.651 2.672 7.193 1.104 1.543 2.305 2.314 3.603 2.314 1.188 0 2.258-0.704 3.211-2.113 0.952-1.408 1.705-3.118 2.257-5.13s0.829-3.957 0.829-5.835v-24.847z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m89.514 149.38c0 3.42 0.345 6.606 1.035 9.557 0.691 2.951 1.609 5.315 2.755 7.092s2.437 2.666 3.873 2.666c1.519 0 2.837-0.738 3.956-2.213 1.118-1.476 2.064-3.655 2.837-6.539 0.083-0.336 0.166-0.52 0.249-0.554 0.083-0.033 0.179 0.017 0.29 0.151l1.408 1.912c0.221 0.268 0.235 0.67 0.041 1.207-0.69 2.548-1.47 4.661-2.34 6.337-0.87 1.677-1.857 2.935-2.962 3.773-1.104 0.838-2.319 1.257-3.645 1.257-2.043 0-3.838-1.14-5.385-3.42-1.546-2.28-2.761-5.482-3.645-9.607-0.884-4.124-1.325-8.836-1.325-14.134 0-5.901 0.455-10.931 1.367-15.089 0.911-4.158 2.14-7.377 3.686-9.658 1.547-2.28 3.3-3.42 5.261-3.42 1.988 0 3.714 1.073 5.178 3.219 1.463 2.146 2.595 5.231 3.396 9.255s1.201 8.886 1.201 14.587c0 0.469-0.02 0.939-0.062 1.408-0.041 0.469-0.214 0.704-0.517 0.704h-16.362c-0.083 0-0.152 0.151-0.207 0.453-0.056 0.302-0.083 0.654-0.083 1.056zm13.752-6.237c0.304 0 0.497-0.1 0.58-0.302 0.083-0.201 0.124-0.57 0.124-1.106 0-3.219-0.283-6.187-0.849-8.903s-1.367-4.896-2.402-6.539c-1.036-1.643-2.272-2.464-3.708-2.464-1.629 0-2.996 0.955-4.101 2.867-1.104 1.911-1.94 4.342-2.506 7.293s-0.849 6.002-0.849 9.154h13.711z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m148.54 119.7c0.165 0 0.283 0.117 0.352 0.352s0.076 0.52 0.02 0.855l-6.254 50.902c-0.028 0.47-0.104 0.788-0.228 0.956s-0.297 0.251-0.518 0.251h-1.615c-0.442 0-0.718-0.402-0.829-1.207l-5.26-40.138c-0.111-0.604-0.201-0.905-0.27-0.905s-0.131 0.301-0.186 0.905l-5.012 40.138c-0.028 0.47-0.097 0.788-0.207 0.956-0.111 0.168-0.277 0.251-0.497 0.251h-1.74c-0.442 0-0.718-0.402-0.829-1.207l-6.503-50.801c-0.055-0.403-0.048-0.721 0.021-0.956s0.2-0.352 0.393-0.352h1.823c0.166 0 0.297 0.067 0.393 0.201 0.097 0.134 0.159 0.403 0.187 0.805l5.302 41.848c0.083 0.671 0.179 0.989 0.29 0.956 0.11-0.034 0.207-0.386 0.29-1.056l5.219-41.949c0.055-0.268 0.124-0.47 0.207-0.604s0.193-0.201 0.331-0.201h1.533c0.138 0 0.262 0.067 0.373 0.201 0.11 0.134 0.179 0.403 0.207 0.805l5.468 41.848c0.083 0.671 0.179 0.989 0.29 0.956 0.11-0.034 0.207-0.386 0.29-1.056l5.053-41.849c0.055-0.335 0.138-0.57 0.249-0.704 0.11-0.134 0.234-0.201 0.373-0.201h1.284z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m156.49 171.51c0 0.604-0.042 1.006-0.125 1.208-0.082 0.201-0.262 0.301-0.538 0.301h-1.533c-0.221 0-0.366-0.083-0.435-0.251s-0.103-0.486-0.103-0.956v-50.902c0-0.805 0.152-1.207 0.456-1.207h1.822c0.304 0 0.456 0.402 0.456 1.207v50.6zm0.165-63.979c0 1.207-0.207 1.811-0.621 1.811h-1.905c-0.221 0-0.366-0.135-0.435-0.403s-0.104-0.67-0.104-1.207v-7.847c0-1.006 0.18-1.509 0.539-1.509h1.988c0.359 0 0.538 0.47 0.538 1.409v7.746z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m168.3 124.83c-0.221 0-0.331 0.269-0.331 0.805v33.801c0 3.42 0.221 5.667 0.663 6.74 0.441 1.073 1.09 1.609 1.946 1.609h3.024c0.138 0 0.242 0.084 0.311 0.252 0.069 0.167 0.103 0.419 0.103 0.754v2.716c0 0.537-0.138 0.906-0.414 1.107-0.248 0.067-0.614 0.134-1.098 0.201-0.483 0.067-0.959 0.118-1.429 0.151-0.469 0.034-0.828 0.05-1.077 0.05-1.712 0-2.934-0.955-3.665-2.867-0.732-1.911-1.098-5.013-1.098-9.305v-35.108c0-0.604-0.124-0.906-0.373-0.906h-3.521c-0.248 0-0.373-0.268-0.373-0.804v-3.521c0-0.537 0.111-0.805 0.332-0.805h3.686c0.166 0 0.263-0.268 0.29-0.805l0.415-16.095c0-0.805 0.124-1.207 0.372-1.207h1.492c0.303 0 0.455 0.436 0.455 1.307v15.995c0 0.537 0.097 0.805 0.29 0.805h5.468c0.221 0 0.331 0.268 0.331 0.805v3.521c0 0.536-0.124 0.804-0.373 0.804h-5.426z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m179.4 173.02c-0.331 0-0.497-0.402-0.497-1.207v-72.329c0-0.738 0.138-1.107 0.414-1.107h1.782c0.276 0 0.414 0.336 0.414 1.006v27.162c0 0.335 0.034 0.536 0.103 0.603s0.159-0.033 0.27-0.302c0.994-1.81 1.898-3.319 2.713-4.526 0.814-1.208 1.629-2.113 2.444-2.717 0.814-0.603 1.691-0.905 2.63-0.905 2.182 0 3.839 1.375 4.971 4.125 1.132 2.749 1.698 6.404 1.698 10.965v37.925c0 0.871-0.166 1.307-0.497 1.307h-1.74c-0.165 0-0.29-0.1-0.373-0.301-0.082-0.202-0.124-0.503-0.124-0.906v-36.315c0-3.555-0.366-6.321-1.097-8.3-0.732-1.978-1.899-2.967-3.501-2.967-0.883 0-1.705 0.318-2.464 0.956-0.76 0.637-1.526 1.576-2.299 2.816-0.773 1.241-1.643 2.834-2.61 4.779v39.031c0 0.805-0.179 1.207-0.538 1.207h-1.699z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> </g> <g transform="matrix(.80638 0 0 .80638 452.53 65.421)" fill-rule="nonzero"> <path d="m79.32 36.98v150.76l15.68-13.2 6.59-156.31-22.27 18.75z" fill="url(#f)"/> <path d="m79.32 36.98-22.27-18.75 6.59 156.31 15.68 13.2v-150.76z" fill="url(#e)"/> <path d="m25.19 104.83 8.63 49.04 12.5-14.95-2.46-56.42-18.67 22.33z" fill="url(#d)"/> <path d="m25.19 104.83-25.19-14.59 16.97 53.86 16.85 9.77-8.63-49.04z" fill="url(#c)"/> <path d="M43.86,82.5L18.69,67.98L0,90.24L25.18,104.83L43.86,82.5Z" fill="#9c3"/> <path d="m134.82 78.69-9.97 56.5 15.58-9.04 19.57-62.05-25.18 14.59z" fill="url(#b)"/> <path d="m134.82 78.69-18.68-22.33-2.86 65 11.57 13.83 9.97-56.5z" fill="url(#a)"/> <path d="m160 64.1-18.69-22.26-25.17 14.52 18.67 22.33 25.19-14.59z" fill="#ffe113"/> <path d="M101.59,18.23L79.32,0L57.05,18.23L79.32,36.98L101.59,18.23Z" fill="#f3e600"/> </g> <defs> <linearGradient id="f" x2="1" gradientTransform="matrix(.84 -162.96 162.96 .84 89.64 184.81)" gradientUnits="userSpaceOnUse"><stop stop-color="#62d399" offset="0"/><stop stop-color="#acd842" offset=".51"/><stop stop-color="#d7db0a" offset=".9"/><stop stop-color="#d7db0a" offset="1"/></linearGradient> <linearGradient id="e" x2="1" gradientTransform="matrix(-1.6,-162.13,162.13,-1.6,69.68,178.9)" gradientUnits="userSpaceOnUse"><stop stop-color="#0ba398" offset="0"/><stop stop-color="#4ca352" offset=".5"/><stop stop-color="#76a30a" offset="1"/></linearGradient> <linearGradient id="d" x2="1" gradientTransform="matrix(-1.9,-67.98,67.98,-1.9,36.6,152.17)" gradientUnits="userSpaceOnUse"><stop stop-color="#36a382" offset="0"/><stop stop-color="#36a382" offset=".19"/><stop stop-color="#49a459" offset=".54"/><stop stop-color="#76a30b" offset="1"/></linearGradient> <linearGradient id="c" x2="1" gradientTransform="matrix(2.18,-62.38,62.38,2.18,15.82,153.24)" gradientUnits="userSpaceOnUse"><stop stop-color="#267880" offset="0"/><stop stop-color="#457a5c" offset=".51"/><stop stop-color="#717516" offset="1"/></linearGradient> <linearGradient id="b" x2="1" gradientTransform="matrix(13.85,-71.96,71.96,13.85,135.08,135.43)" gradientUnits="userSpaceOnUse"><stop stop-color="#b0d939" offset="0"/><stop stop-color="#eadb04" offset="1"/></linearGradient> <linearGradient id="a" x2="1" gradientTransform="matrix(26.159 -64.737 64.737 26.159 107.42 128.14)" gradientUnits="userSpaceOnUse"><stop stop-color="#74af52" offset="0"/><stop stop-color="#74af52" offset=".17"/><stop stop-color="#99be32" offset=".48"/><stop stop-color="#c0c40a" offset="1"/></linearGradient> </defs> </svg>`;
4491
+ btoa(VP);
4492
+ const HP = '<svg viewBox="0 0 509 154" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M665.95 132.73v44.88l-10.56-8.4c-.8-.64-1.2-1.44-1.2-2.4v-32.4c0-6.48-4.12-9.72-12.36-9.72-2.16 0-4.18.4-6.06 1.2-1.88.8-3.54 1.8-4.98 3-1.44 1.2-2.56 2.5-3.36 3.9-.8 1.4-1.2 2.7-1.2 3.9v40.92l-10.68-8.4c-.72-.64-1.08-1.44-1.08-2.4v-53.76l10.92 8.52c.32.24.56.44.72.6.16.16.36.32.6.48.96-1.2 2.14-2.28 3.54-3.24 1.4-.96 2.92-1.76 4.56-2.4 1.64-.64 3.34-1.14 5.1-1.5 1.76-.36 3.44-.54 5.04-.54 1.44 0 2.92.04 4.44.12 1.52.08 2.84.28 3.96.6 4.56 1.12 7.8 3.12 9.72 6 1.92 2.88 2.88 6.56 2.88 11.04ZM732.38 146.05c0 .88.02 1.5.06 1.86.04.36-.02.98-.18 1.86h-7.08c-2.08 0-4.44-.02-7.08-.06-2.64-.04-5.36-.06-8.16-.06h-22.08c0 2.88.56 5.36 1.68 7.44 1.12 2.08 2.6 3.8 4.44 5.16 1.84 1.36 3.94 2.36 6.3 3 2.36.64 4.74.96 7.14.96 3.04 0 5.9-.76 8.58-2.28 2.68-1.52 4.94-3.52 6.78-6 .64.56 1.54 1.48 2.7 2.76 1.16 1.28 2.94 3.2 5.34 5.76-2.8 3.36-6.22 6.02-10.26 7.98-4.04 1.96-8.42 2.94-13.14 2.94-4.72 0-8.92-.64-12.84-1.92-3.92-1.28-7.32-3.24-10.2-5.88-2.88-2.64-5.12-5.98-6.72-10.02-1.6-4.04-2.4-8.82-2.4-14.34 0-4.96.66-9.42 1.98-13.38 1.32-3.96 3.22-7.32 5.7-10.08s5.44-4.9 8.88-6.42c3.44-1.52 7.32-2.28 11.64-2.28 5.76 0 10.52.88 14.28 2.64 3.76 1.76 6.72 4.16 8.88 7.2 2.16 3.04 3.66 6.54 4.5 10.5.84 3.96 1.26 8.18 1.26 12.66Zm-29.4-22.8c-2.16.16-4.16.72-6 1.68-1.84.96-3.42 2.2-4.74 3.72-1.32 1.52-2.36 3.28-3.12 5.28-.76 2-1.14 4.12-1.14 6.36h33.12c0-2-.22-4.06-.66-6.18-.44-2.12-1.3-4.02-2.58-5.7-1.28-1.68-3.1-3.02-5.46-4.02-2.36-1-5.5-1.38-9.42-1.14ZM795.93 146.05c0 .88.02 1.5.06 1.86.04.36-.02.98-.18 1.86h-7.08c-2.08 0-4.44-.02-7.08-.06-2.64-.04-5.36-.06-8.16-.06h-22.08c0 2.88.56 5.36 1.68 7.44 1.12 2.08 2.6 3.8 4.44 5.16 1.84 1.36 3.94 2.36 6.3 3 2.36.64 4.74.96 7.14.96 3.04 0 5.9-.76 8.58-2.28 2.68-1.52 4.94-3.52 6.78-6 .64.56 1.54 1.48 2.7 2.76 1.16 1.28 2.94 3.2 5.34 5.76-2.8 3.36-6.22 6.02-10.26 7.98-4.04 1.96-8.42 2.94-13.14 2.94-4.72 0-8.92-.64-12.84-1.92-3.92-1.28-7.32-3.24-10.2-5.88-2.88-2.64-5.12-5.98-6.72-10.02-1.6-4.04-2.4-8.82-2.4-14.34 0-4.96.66-9.42 1.98-13.38 1.32-3.96 3.22-7.32 5.7-10.08s5.44-4.9 8.88-6.42c3.44-1.52 7.32-2.28 11.64-2.28 5.76 0 10.52.88 14.28 2.64 3.76 1.76 6.72 4.16 8.88 7.2 2.16 3.04 3.66 6.54 4.5 10.5.84 3.96 1.26 8.18 1.26 12.66Zm-29.4-22.8c-2.16.16-4.16.72-6 1.68-1.84.96-3.42 2.2-4.74 3.72-1.32 1.52-2.36 3.28-3.12 5.28-.76 2-1.14 4.12-1.14 6.36h33.12c0-2-.22-4.06-.66-6.18-.44-2.12-1.3-4.02-2.58-5.7-1.28-1.68-3.1-3.02-5.46-4.02-2.36-1-5.5-1.38-9.42-1.14ZM858.57 97.21c.64.48.96 1.16.96 2.04v74.88c-.08 1.04-.12 2.12-.12 3.24-1.84-1.52-3.56-2.92-5.16-4.2-1.36-1.12-2.66-2.18-3.9-3.18-1.24-1-2.06-1.66-2.46-1.98-1.76 2.48-4.26 4.44-7.5 5.88-3.24 1.44-7.02 2.16-11.34 2.16-3.84 0-7.4-.7-10.68-2.1-3.28-1.4-6.14-3.44-8.58-6.12-2.44-2.68-4.34-5.94-5.7-9.78-1.36-3.84-2.04-8.16-2.04-12.96 0-4.32.78-8.34 2.34-12.06 1.56-3.72 3.6-6.92 6.12-9.6 2.52-2.68 5.38-4.78 8.58-6.3 3.2-1.52 6.48-2.28 9.84-2.28 2.56 0 4.82.22 6.78.66 1.96.44 3.68 1.06 5.16 1.86s2.78 1.74 3.9 2.82a35.92 35.92 0 0 1 3.12 3.42V88.57l10.68 8.64Zm-27.96 67.92c3.6 0 6.52-.68 8.76-2.04 2.24-1.36 3.98-3.06 5.22-5.1a20.5 20.5 0 0 0 2.58-6.54c.48-2.32.72-4.44.72-6.36v-1.2c0-1.12-.22-2.7-.66-4.74-.44-2.04-1.28-4.06-2.52-6.06s-3-3.7-5.28-5.1c-2.28-1.4-5.22-2.02-8.82-1.86-3.44 0-6.26.74-8.46 2.22-2.2 1.48-3.96 3.26-5.28 5.34-1.32 2.08-2.24 4.2-2.76 6.36-.52 2.16-.78 3.92-.78 5.28 0 1.84.24 3.92.72 6.24.48 2.32 1.36 4.48 2.64 6.48s3.04 3.68 5.28 5.04c2.24 1.36 5.12 2.04 8.64 2.04ZM882.81 97.09c.64.48.96 1.12.96 1.92l-.12 41.04v37.08l-10.56-8.4c-.72-.64-1.08-1.44-1.08-2.4V88.45l10.8 8.64ZM950.36 146.05c0 .88.02 1.5.06 1.86.04.36-.02.98-.18 1.86h-7.08c-2.08 0-4.44-.02-7.08-.06-2.64-.04-5.36-.06-8.16-.06h-22.08c0 2.88.56 5.36 1.68 7.44 1.12 2.08 2.6 3.8 4.44 5.16 1.84 1.36 3.94 2.36 6.3 3 2.36.64 4.74.96 7.14.96 3.04 0 5.9-.76 8.58-2.28 2.68-1.52 4.94-3.52 6.78-6 .64.56 1.54 1.48 2.7 2.76 1.16 1.28 2.94 3.2 5.34 5.76-2.8 3.36-6.22 6.02-10.26 7.98-4.04 1.96-8.42 2.94-13.14 2.94-4.72 0-8.92-.64-12.84-1.92-3.92-1.28-7.32-3.24-10.2-5.88-2.88-2.64-5.12-5.98-6.72-10.02-1.6-4.04-2.4-8.82-2.4-14.34 0-4.96.66-9.42 1.98-13.38 1.32-3.96 3.22-7.32 5.7-10.08s5.44-4.9 8.88-6.42c3.44-1.52 7.32-2.28 11.64-2.28 5.76 0 10.52.88 14.28 2.64 3.76 1.76 6.72 4.16 8.88 7.2 2.16 3.04 3.66 6.54 4.5 10.5.84 3.96 1.26 8.18 1.26 12.66Zm-29.4-22.8c-2.16.16-4.16.72-6 1.68-1.84.96-3.42 2.2-4.74 3.72-1.32 1.52-2.36 3.28-3.12 5.28-.76 2-1.14 4.12-1.14 6.36h33.12c0-2-.22-4.06-.66-6.18-.44-2.12-1.3-4.02-2.58-5.7-1.28-1.68-3.1-3.02-5.46-4.02-2.36-1-5.5-1.38-9.42-1.14Z" style="fill-rule:nonzero" transform="translate(-452.406 -63.709) scale(1.00797)"/><path d="M79.32 36.98v150.76L95 174.54l6.59-156.31-22.27 18.75Z" style="fill:url(#a);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="M79.32 36.98 57.05 18.23l6.59 156.31 15.68 13.2V36.98Z" style="fill:url(#b);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="m25.19 104.83 8.63 49.04 12.5-14.95-2.46-56.42-18.67 22.33Z" style="fill:url(#c);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="M25.19 104.83 0 90.24l16.97 53.86 16.85 9.77-8.63-49.04Z" style="fill:url(#d);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="M43.86 82.5 18.69 67.98 0 90.24l25.18 14.59L43.86 82.5Z" style="fill:#9c3;fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="m134.82 78.69-9.97 56.5 15.58-9.04L160 64.1l-25.18 14.59Z" style="fill:url(#e);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="m134.82 78.69-18.68-22.33-2.86 65 11.57 13.83 9.97-56.5Z" style="fill:url(#f);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="m160 64.1-18.69-22.26-25.17 14.52 18.67 22.33L160 64.1Z" style="fill:#ffe113;fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="M101.59 18.23 79.32 0 57.05 18.23l22.27 18.75 22.27-18.75Z" style="fill:#f3e600;fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><defs><linearGradient id="a" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(.84 -162.96 162.96 .84 89.64 184.81)"><stop offset="0" style="stop-color:#62d399;stop-opacity:1"/><stop offset=".51" style="stop-color:#acd842;stop-opacity:1"/><stop offset=".9" style="stop-color:#d7db0a;stop-opacity:1"/><stop offset="1" style="stop-color:#d7db0a;stop-opacity:1"/></linearGradient><linearGradient id="b" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-90.565 123.412 54.953) scale(162.14)"><stop offset="0" style="stop-color:#0ba398;stop-opacity:1"/><stop offset=".5" style="stop-color:#4ca352;stop-opacity:1"/><stop offset="1" style="stop-color:#76a30a;stop-opacity:1"/></linearGradient><linearGradient id="c" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="scale(-68) rotate(88.4 .881 -1.396)"><stop offset="0" style="stop-color:#36a382;stop-opacity:1"/><stop offset=".19" style="stop-color:#36a382;stop-opacity:1"/><stop offset=".54" style="stop-color:#49a459;stop-opacity:1"/><stop offset="1" style="stop-color:#76a30b;stop-opacity:1"/></linearGradient><linearGradient id="d" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-88 87.255 68.431) scale(62.42)"><stop offset="0" style="stop-color:#267880;stop-opacity:1"/><stop offset=".51" style="stop-color:#457a5c;stop-opacity:1"/><stop offset="1" style="stop-color:#717516;stop-opacity:1"/></linearGradient><linearGradient id="e" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-79.1 149.53 -14.065) scale(73.28)"><stop offset="0" style="stop-color:#b0d939;stop-opacity:1"/><stop offset="1" style="stop-color:#eadb04;stop-opacity:1"/></linearGradient><linearGradient id="f" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-67.997 148.705 -15.558) scale(69.8226)"><stop offset="0" style="stop-color:#74af52;stop-opacity:1"/><stop offset=".17" style="stop-color:#74af52;stop-opacity:1"/><stop offset=".48" style="stop-color:#99be32;stop-opacity:1"/><stop offset="1" style="stop-color:#c0c40a;stop-opacity:1"/></linearGradient></defs></svg>', GP = btoa(HP), qP = "data:image/svg+xml;charset=utf-8;base64," + GP, x_ = qP;
4629
4493
  var Hc = /* @__PURE__ */ ((s) => (s[s.Quad = 0] = "Quad", s[s.Cube = 1] = "Cube", s[s.Sphere = 2] = "Sphere", s[s.Cylinder = 3] = "Cylinder", s[s.RoundedCube = 10] = "RoundedCube", s))(Hc || {});
4630
4494
  class zr {
4631
4495
  /**
@@ -4635,7 +4499,7 @@ class zr {
4635
4499
  */
4636
4500
  static createText(e, t) {
4637
4501
  let i = null;
4638
- const n = t?.font || ek(t?.familyFamily || null);
4502
+ const n = t?.font || QP(t?.familyFamily || null);
4639
4503
  n instanceof wC ? i = this.#t(e, n, t) : i == null && (i = new yn());
4640
4504
  const o = t?.color || 16777215, r = new H(i, t?.material ?? new pt({ color: o }));
4641
4505
  return this.applyDefaultObjectOptions(r, t), n instanceof Promise ? n.then((a) => {
@@ -4685,7 +4549,7 @@ class zr {
4685
4549
  case 10:
4686
4550
  case "RoundedCube":
4687
4551
  {
4688
- const o = JP(1, 1, 1, 0.1, 2), r = t?.material ?? new pt({ color: n });
4552
+ const o = XP(1, 1, 1, 0.1, 2), r = t?.material ?? new pt({ color: n });
4689
4553
  t?.texture && "map" in r && (r.map = t.texture), i = new H(o, r), i.name = "RoundedCube";
4690
4554
  }
4691
4555
  break;
@@ -4704,7 +4568,7 @@ class zr {
4704
4568
  }
4705
4569
  break;
4706
4570
  case "ShaderBall":
4707
- i = new Ps(), i.name = "ShaderBall", tk(i, t);
4571
+ i = new Ps(), i.name = "ShaderBall", YP(i, t);
4708
4572
  break;
4709
4573
  }
4710
4574
  return this.applyDefaultObjectOptions(i, t), i;
@@ -4724,7 +4588,7 @@ class zr {
4724
4588
  e.receiveShadow = !0, e.castShadow = !0, t?.name && (e.name = t.name), t?.position && (Array.isArray(t.position) ? e.position.set(t.position[0], t.position[1], t.position[2]) : e.position.set(t.position.x || 0, t.position.y || 0, t.position.z || 0)), t?.rotation && (Array.isArray(t.rotation) ? e.rotation.set(t.rotation[0], t.rotation[1], t.rotation[2]) : e.rotation.set(t.rotation.x || 0, t.rotation.y || 0, t.rotation.z || 0)), t?.scale && (typeof t.scale == "number" ? e.scale.set(t.scale, t.scale, t.scale) : Array.isArray(t.scale) ? e.scale.set(t.scale[0], t.scale[1], t.scale[2]) : e.scale.set(t.scale.x || 1, t.scale.y || 1, t.scale.z || 1)), t?.receiveShadow != null && (e.receiveShadow = t.receiveShadow), t?.castShadow != null && (e.castShadow = t.castShadow), t?.parent && t.parent.add(e);
4725
4589
  }
4726
4590
  }
4727
- function JP(s, e, t, i, n) {
4591
+ function XP(s, e, t, i, n) {
4728
4592
  const o = new oS(), r = 1e-5, a = i - r;
4729
4593
  o.absarc(r, r, r, -Math.PI / 2, -Math.PI, !0), o.absarc(r, e - a * 2, r, Math.PI, Math.PI / 2, !0), o.absarc(s - a * 2, e - a * 2, r, Math.PI / 2, 0, !0), o.absarc(s - a * 2, r, r, 0, -Math.PI / 2, !0);
4730
4594
  const l = new rS(o, {
@@ -4750,7 +4614,7 @@ function JP(s, e, t, i, n) {
4750
4614
  return l.scale(1, 1, 1 - i), l.center(), l.index || l.setIndex(Array.from({ length: l.attributes.position.count }, (c, h) => h)), l.computeVertexNormals(), l;
4751
4615
  }
4752
4616
  const Ah = /* @__PURE__ */ new Map();
4753
- function ek(s) {
4617
+ function QP(s) {
4754
4618
  let e = "";
4755
4619
  switch (s) {
4756
4620
  default:
@@ -4772,24 +4636,24 @@ function ek(s) {
4772
4636
  });
4773
4637
  return Ah.set(e, i), i;
4774
4638
  }
4775
- let Nf = !1, $f = null;
4776
- function tk(s, e) {
4777
- if ($f === null) {
4639
+ let zf = !1, Nf = null;
4640
+ function YP(s, e) {
4641
+ if (Nf === null) {
4778
4642
  const t = "https://cdn.needle.tools/static/models/shaderball.glb", i = new Is(), n = ig(null);
4779
- i.setDRACOLoader(n.dracoLoader), i.setKTX2Loader(n.ktx2Loader), Nf = !0, $f = i.loadAsync(t).then((o) => {
4643
+ i.setDRACOLoader(n.dracoLoader), i.setKTX2Loader(n.ktx2Loader), zf = !0, Nf = i.loadAsync(t).then((o) => {
4780
4644
  const r = o.scene;
4781
4645
  return r.position.y -= 0.5, r;
4782
4646
  }).catch((o) => (console.warn("Failed to load shaderball mesh: " + o.message), C_())).finally(() => {
4783
- Nf = !1;
4647
+ zf = !1;
4784
4648
  });
4785
4649
  }
4786
- if (Nf) {
4650
+ if (zf) {
4787
4651
  const t = C_();
4788
4652
  t.name = "ShaderBall-Placeholder";
4789
4653
  const i = t.children[0];
4790
4654
  i?.type === "Mesh" && S_(i, e), s.add(t);
4791
4655
  }
4792
- $f.then((t) => {
4656
+ Nf.then((t) => {
4793
4657
  s.children.forEach((o) => {
4794
4658
  o.name === "ShaderBall-Placeholder" && s.remove(o);
4795
4659
  });
@@ -4976,14 +4840,14 @@ var Ac;
4976
4840
  s.unregisterExporter = n;
4977
4841
  })(Ac || (Ac = {}));
4978
4842
  const He = x("debugwebxr"), P_ = x("stats");
4979
- let Wf = 0;
4980
- function ik(s) {
4843
+ let $f = 0;
4844
+ function KP(s) {
4981
4845
  let e = null;
4982
4846
  const t = s;
4983
4847
  return t.getAROverlayContainer ? e = t.getAROverlayContainer() : e = s, e;
4984
4848
  }
4985
- nk();
4986
- async function nk() {
4849
+ ZP();
4850
+ async function ZP() {
4987
4851
  let s = "immersive-vr";
4988
4852
  try {
4989
4853
  if (D.isNeedleAppClip() ? s = "immersive-ar" : await navigator.xr?.isSessionSupported("immersive-vr") || (s = "immersive-ar"), !await navigator.xr?.isSessionSupported("immersive-ar") && s === "immersive-ar")
@@ -5017,7 +4881,7 @@ async function nk() {
5017
4881
  navigator.xr?.addEventListener("sessiongranted", async () => {
5018
4882
  const e = sessionStorage.getItem("needle_xr_session_mode"), t = sessionStorage.getItem("needle_xr_session_init") ?? null, i = t ? JSON.parse(t) : null;
5019
4883
  let n = null;
5020
- if (d0() && (await Ga.start(e || s, i || K.getDefaultSessionInit(s)).catch((o) => console.warn("[NeedleXRSession:granted] TemporaryXRContext start failed:", o)), await rk(), n = await Ga.handoff()), n)
4884
+ if (h0() && (await Ga.start(e || s, i || K.getDefaultSessionInit(s)).catch((o) => console.warn("[NeedleXRSession:granted] TemporaryXRContext start failed:", o)), await tk(), n = await Ga.handoff()), n)
5021
4885
  K.setSession(n.mode, n.session, n.init, N.Current);
5022
4886
  else if (e && t) {
5023
4887
  console.log("[NeedleXRSession:granted] Restore last session");
@@ -5028,35 +4892,35 @@ async function nk() {
5028
4892
  }, { once: !0 });
5029
4893
  }
5030
4894
  }
5031
- function sk(s, e) {
4895
+ function JP(s, e) {
5032
4896
  sessionStorage.setItem("needle_xr_session_mode", s), sessionStorage.setItem("needle_xr_session_init", JSON.stringify(e));
5033
4897
  }
5034
- function ok() {
4898
+ function ek() {
5035
4899
  sessionStorage.removeItem("needle_xr_session_mode"), sessionStorage.removeItem("needle_xr_session_init");
5036
4900
  }
5037
- const gg = /* @__PURE__ */ new Set();
4901
+ const mg = /* @__PURE__ */ new Set();
5038
4902
  pe.registerCallback(ue.ContextCreationStart, async (s) => {
5039
- gg.add(s.context);
4903
+ mg.add(s.context);
5040
4904
  });
5041
4905
  pe.registerCallback(ue.ContextCreated, async (s) => {
5042
- gg.delete(s.context);
4906
+ mg.delete(s.context);
5043
4907
  const e = s.context?.domElement.getAttribute("autostart") || null;
5044
- ak(e);
4908
+ ik(e);
5045
4909
  });
5046
- function d0() {
5047
- return gg.size > 0;
4910
+ function h0() {
4911
+ return mg.size > 0;
5048
4912
  }
5049
- function rk() {
4913
+ function tk() {
5050
4914
  return new Promise((s) => {
5051
4915
  const e = Date.now(), t = setInterval(() => {
5052
- (!d0() || Date.now() - e > 6e4) && (clearInterval(t), s());
4916
+ (!h0() || Date.now() - e > 6e4) && (clearInterval(t), s());
5053
4917
  }, 100);
5054
4918
  });
5055
4919
  }
5056
4920
  D.isDesktop() && L() && window.addEventListener("keydown", (s) => {
5057
4921
  (s.key === "x" || s.key === "Escape") && K.active && K.stop();
5058
4922
  });
5059
- function ak(s) {
4923
+ function ik(s) {
5060
4924
  s && s?.toLowerCase() === "ar" && Kn.registerWaitForInteraction(() => {
5061
4925
  K.start("ar");
5062
4926
  });
@@ -5065,7 +4929,7 @@ const Ih = /* @__PURE__ */ Symbol("initial-fov");
5065
4929
  class K {
5066
4930
  static _sync = null;
5067
4931
  static getXRSync(e) {
5068
- return this._sync || (this._sync = new HP(e)), this._sync;
4932
+ return this._sync || (this._sync = new zP(e)), this._sync;
5069
4933
  }
5070
4934
  static get currentSessionRequest() {
5071
4935
  return this._currentSessionRequestMode;
@@ -5259,7 +5123,7 @@ class K {
5259
5123
  {
5260
5124
  if (await this.xrSystem?.isSessionSupported("immersive-ar") !== !0)
5261
5125
  return console.error(e + " is not supported by this browser."), null;
5262
- const l = this.getDefaultSessionInit(e), c = ik(i.domElement);
5126
+ const l = this.getDefaultSessionInit(e), c = KP(i.domElement);
5263
5127
  c && !D.isQuest() && (l.domOverlay = { root: c }, l.optionalFeatures.push("dom-overlay")), t = {
5264
5128
  ...l,
5265
5129
  ...t
@@ -5561,7 +5425,7 @@ class K {
5561
5425
  */
5562
5426
  _mainCamera = null;
5563
5427
  constructor(e, t, i, n) {
5564
- sk(e, n.init), this.session = t, this.mode = e, this.context = i, (He || x("console")) && hc(!0), this._xr_scripts = [...n.scripts], this._xr_update_scripts = this._xr_scripts.filter((o) => typeof o.onUpdateXR == "function"), this._controllerAdded = n.controller_added, this._controllerRemoved = n.controller_removed, Bs(this.onBefore, Ce.LateUpdate), this.context.pre_render_callbacks.push(this.onBeforeRender), this.context.post_render_callbacks.push(this.onAfterRender), (n.init.optionalFeatures?.includes("hit-test") || n.init.requiredFeatures?.includes("hit-test")) && t.requestReferenceSpace("viewer").then((o) => t.requestHitTestSource?.call(t, { space: o })?.then((r) => this._viewerHitTestSource = r).catch((r) => console.error(r))).catch((o) => console.error(o)), this.context.mainCamera && (this._originalCameraWorldPosition = te(this.context.mainCamera, new _()), this._originalCameraWorldRotation = ve(this.context.mainCamera, new V()), this._originalCameraWorldScale = qe(this.context.mainCamera, new _()), this._originalCameraParent = this.context.mainCamera.parent, this.context.mainCamera instanceof ce && (this.context.mainCamera[Ih] = this.context.mainCamera.fov)), this._defaultRig = new TP(), this.context.scene.add(this._defaultRig.gameObject), this.addRig(this._defaultRig);
5428
+ JP(e, n.init), this.session = t, this.mode = e, this.context = i, (He || x("console")) && hc(!0), this._xr_scripts = [...n.scripts], this._xr_update_scripts = this._xr_scripts.filter((o) => typeof o.onUpdateXR == "function"), this._controllerAdded = n.controller_added, this._controllerRemoved = n.controller_removed, Bs(this.onBefore, Ce.LateUpdate), this.context.pre_render_callbacks.push(this.onBeforeRender), this.context.post_render_callbacks.push(this.onAfterRender), (n.init.optionalFeatures?.includes("hit-test") || n.init.requiredFeatures?.includes("hit-test")) && t.requestReferenceSpace("viewer").then((o) => t.requestHitTestSource?.call(t, { space: o })?.then((r) => this._viewerHitTestSource = r).catch((r) => console.error(r))).catch((o) => console.error(o)), this.context.mainCamera && (this._originalCameraWorldPosition = te(this.context.mainCamera, new _()), this._originalCameraWorldRotation = ve(this.context.mainCamera, new V()), this._originalCameraWorldScale = qe(this.context.mainCamera, new _()), this._originalCameraParent = this.context.mainCamera.parent, this.context.mainCamera instanceof ce && (this.context.mainCamera[Ih] = this.context.mainCamera.fov)), this._defaultRig = new kP(), this.context.scene.add(this._defaultRig.gameObject), this.addRig(this._defaultRig);
5565
5429
  for (let o = 0; o < t.inputSources.length; o++) {
5566
5430
  const r = t.inputSources[o];
5567
5431
  if (!r.handedness) {
@@ -5604,7 +5468,7 @@ class K {
5604
5468
  console.debug("Controller already registered for input source", t);
5605
5469
  return;
5606
5470
  }
5607
- const i = new r0(this, e, t);
5471
+ const i = new o0(this, e, t);
5608
5472
  this._newControllers.push(i);
5609
5473
  };
5610
5474
  /** Disconnects the controller, invokes events and notifies previou controller (if any) */
@@ -5646,13 +5510,13 @@ class K {
5646
5510
  action: "session_end",
5647
5511
  mode: this.mode,
5648
5512
  source: "NeedleXRSession.onEnd"
5649
- }), ok(), this.onAfterRender(), this.revertCustomForward(), this._didStart = !1, this._previousCameraParent = null, this.requestedCameraNearPlane = null, To(this.onBefore, Ce.LateUpdate);
5513
+ }), ek(), this.onAfterRender(), this.revertCustomForward(), this._didStart = !1, this._previousCameraParent = null, this.requestedCameraNearPlane = null, To(this.onBefore, Ce.LateUpdate);
5650
5514
  const t = this.context.pre_render_callbacks.indexOf(this.onBeforeRender);
5651
5515
  t >= 0 && this.context.pre_render_callbacks.splice(t, 1);
5652
5516
  const i = this.context.post_render_callbacks.indexOf(this.onAfterRender);
5653
5517
  i >= 0 && this.context.post_render_callbacks.splice(i, 1), this.context.xr = null, this.context.renderer.xr.enabled = !1, this.context.pre_update_oneshot_callbacks.push(() => {
5654
5518
  this.context.mainCameraComponent?.applyClearFlags(), this.context.mainCameraComponent?.applyClippingPlane();
5655
- }), MP({ session: this });
5519
+ }), SP({ session: this });
5656
5520
  for (const o of K._xrEndListeners)
5657
5521
  o({ xr: this });
5658
5522
  const n = [...this.controllers];
@@ -5703,7 +5567,7 @@ class K {
5703
5567
  }
5704
5568
  }
5705
5569
  }
5706
- OP({ session: this }), Ur();
5570
+ xP({ session: this }), Ur();
5707
5571
  for (const o of K._xrStartListeners)
5708
5572
  o(i);
5709
5573
  const n = [...this._xr_scripts];
@@ -5768,7 +5632,7 @@ class K {
5768
5632
  if (He)
5769
5633
  for (const e of this.controllers)
5770
5634
  e.onRenderDebug();
5771
- if ((He || P_) && this.rig && (Wf++, Wf >= 20)) {
5635
+ if ((He || P_) && this.rig && ($f++, $f >= 20)) {
5772
5636
  const e = this.rig.gameObject.worldPosition, t = this.rig.gameObject.worldForward;
5773
5637
  e.add(t.multiplyScalar(1.5));
5774
5638
  const i = this.rig.gameObject.worldUp;
@@ -5778,7 +5642,7 @@ class K {
5778
5642
  for (const o of this.controllers)
5779
5643
  n += `
5780
5644
  ${o.hand ? "hand" : "ctrl"} ${o.inputSource.handedness}[${o.index}] con:${o.connected} tr:${o.isTracking} hts:${o.hasHitTestSource ? "yes" : "no"}`;
5781
- Wf = 0, U.DrawLabel(e, n, void 0, 1 / 60 * 20);
5645
+ $f = 0, U.DrawLabel(e, n, void 0, 1 / 60 * 20);
5782
5646
  }
5783
5647
  }
5784
5648
  onBeforeRender = () => {
@@ -5925,13 +5789,13 @@ ${o.hand ? "hand" : "ctrl"} ${o.inputSource.handedness}[${o.index}] con:${o.conn
5925
5789
  this._transition?.remove();
5926
5790
  }
5927
5791
  }
5928
- const Vf = x("debugwebxr");
5929
- class lk {
5792
+ const Wf = x("debugwebxr");
5793
+ class nk {
5930
5794
  /** Searches the hierarchy for objects following a specific naming scheme */
5931
5795
  static tryFindAvatarObjects(e, t, i) {
5932
5796
  if (i.head && i.leftHand && i.rightHand) return;
5933
5797
  const n = e.name.toLocaleLowerCase();
5934
- !i.head && n.includes("head") && (Vf && console.log("FOUND AVATAR HEAD", e.name), i.head = new ne("", t, e)), n.includes("hand") && (!i.leftHand && n.includes("left") && (Vf && console.log("FOUND AVATAR LEFT HAND", e.name), i.leftHand = new ne("", t, e)), !i.rightHand && n.includes("right") && (Vf && console.log("FOUND AVATAR RIGHT HAND", e.name), i.rightHand = new ne("", t, e)));
5798
+ !i.head && n.includes("head") && (Wf && console.log("FOUND AVATAR HEAD", e.name), i.head = new ne("", t, e)), n.includes("hand") && (!i.leftHand && n.includes("left") && (Wf && console.log("FOUND AVATAR LEFT HAND", e.name), i.leftHand = new ne("", t, e)), !i.rightHand && n.includes("right") && (Wf && console.log("FOUND AVATAR RIGHT HAND", e.name), i.rightHand = new ne("", t, e)));
5935
5799
  for (let o = 0; o < e.children.length; o++) {
5936
5800
  if (i.head && i.leftHand && i.rightHand) return;
5937
5801
  const r = e.children[o];
@@ -6002,7 +5866,7 @@ class ae extends re {
6002
5866
  return new ae(e);
6003
5867
  }
6004
5868
  }
6005
- const It = new _(), k_ = new _(), O_ = new V(), ck = x("debuggizmos"), an = 8947848, Hf = 32;
5869
+ const It = new _(), k_ = new _(), O_ = new V(), sk = x("debuggizmos"), an = 8947848, Vf = 32;
6006
5870
  class U {
6007
5871
  constructor() {
6008
5872
  }
@@ -6182,9 +6046,9 @@ class U {
6182
6046
  "mesh" in e ? (t.geometry = e.mesh.geometry, t.matrixWorld.copy(e.mesh.matrixWorld)) : (t.geometry = e.geometry, t.matrixWorld.copy(e.matrix)), t.matrixAutoUpdate = !1, t.matrixWorldAutoUpdate = !1, t.material.depthTest = e.depthTest ?? !0, t.material.wireframe = !0, dn(t.material, e.color ?? an);
6183
6047
  }
6184
6048
  }
6185
- const hk = new Ba(1, 1, 1);
6186
- function yg(s = null) {
6187
- const e = new re(s ?? 14540253), t = new aS(hk);
6049
+ const ok = new Ba(1, 1, 1);
6050
+ function gg(s = null) {
6051
+ const e = new re(s ?? 14540253), t = new aS(ok);
6188
6052
  return new fv(t, new Qm({ color: e }));
6189
6053
  }
6190
6054
  function dn(s, e) {
@@ -6209,7 +6073,7 @@ class Fi {
6209
6073
  static getTextLabel(e, t, i, n, o) {
6210
6074
  this.ensureFont();
6211
6075
  let r = this.textLabelCache.pop(), a = 1;
6212
- o && typeof o == "string" && o?.length >= 8 && o.startsWith("#") ? (a = parseInt(o.substring(7), 16) / 255, o = o.substring(0, 7), ck && console.log(o, a)) : typeof o == "object" && o.a !== void 0 && (a = o.a);
6076
+ o && typeof o == "string" && o?.length >= 8 && o.startsWith("#") ? (a = parseInt(o.substring(7), 16) / 255, o = o.substring(0, 7), sk && console.log(o, a)) : typeof o == "object" && o.a !== void 0 && (a = o.a);
6213
6077
  const l = {
6214
6078
  boxSizing: "border-box",
6215
6079
  fontFamily: this.familyName,
@@ -6259,11 +6123,11 @@ class Fi {
6259
6123
  t = new Fa();
6260
6124
  let i = t.geometry.getAttribute("position");
6261
6125
  if (!i) {
6262
- i = new mt(new Float32Array(Hf * 3), 3), t.geometry.setAttribute("position", i);
6126
+ i = new mt(new Float32Array(Vf * 3), 3), t.geometry.setAttribute("position", i);
6263
6127
  const n = z(0, 1, 0), o = z(0, 0, 1), r = z(o);
6264
6128
  r.cross(n).normalize();
6265
- const a = z(r), l = Math.PI * 2 / (Hf - 1);
6266
- for (let c = 0; c < Hf + 1; c++) {
6129
+ const a = z(r), l = Math.PI * 2 / (Vf - 1);
6130
+ for (let c = 0; c < Vf + 1; c++) {
6267
6131
  const h = l * c;
6268
6132
  n.copy(a).multiplyScalar(Math.cos(h) * 1), r.copy(o).multiplyScalar(Math.sin(h) * 1);
6269
6133
  const d = n.add(r);
@@ -6349,7 +6213,7 @@ class Fi {
6349
6213
  }
6350
6214
  }
6351
6215
  }
6352
- const Yt = x("debugphysics"), dk = x("debugworker"), M_ = new Co();
6216
+ const Yt = x("debugphysics"), rk = x("debugworker"), M_ = new Co();
6353
6217
  class Nr {
6354
6218
  static AllLayers = 4294967295;
6355
6219
  ray;
@@ -6381,7 +6245,7 @@ class Nr {
6381
6245
  t ? t.mask = e : this.layerMask = e;
6382
6246
  }
6383
6247
  }
6384
- class u0 {
6248
+ class d0 {
6385
6249
  distance;
6386
6250
  point;
6387
6251
  object;
@@ -6494,7 +6358,7 @@ class Ic {
6494
6358
  const f = wv(o);
6495
6359
  f && (a.geometry = f);
6496
6360
  }
6497
- if (!d && fk(a, e, i) || (n.useAcceleratedRaycast !== !1 ? Ud.runMeshBVHRaycast(e, a, i, this.context, n) : e.intersectObject(a, !1, i)), a.geometry = l, Yt && i.length != c) {
6361
+ if (!d && lk(a, e, i) || (n.useAcceleratedRaycast !== !1 ? Fd.runMeshBVHRaycast(e, a, i, this.context, n) : e.intersectObject(a, !1, i)), a.geometry = l, Yt && i.length != c) {
6498
6362
  const f = i[i.length - 1];
6499
6363
  U.DrawWireSphere(f.point, 0.1, 7798784, 1, !1), U.DrawWireMesh({ mesh: o, depthTest: !1, duration: 0.2, color: 7798784 });
6500
6364
  }
@@ -6519,13 +6383,13 @@ class Ic {
6519
6383
  const f = this.sphere;
6520
6384
  f.center.copy(t), f.radius = i;
6521
6385
  const p = o.length;
6522
- if (Ud.runMeshBVHRaycast(this.sphere, h, o, this.context, {}), p != o.length && !r)
6386
+ if (Fd.runMeshBVHRaycast(this.sphere, h, o, this.context, {}), p != o.length && !r)
6523
6387
  return;
6524
6388
  } else if (d.boundingBox || d.computeBoundingBox(), d.boundingBox) {
6525
6389
  h.matrixWorldNeedsUpdate && h.updateWorldMatrix(!1, !1);
6526
6390
  const f = this.tempBoundingBox.copy(d.boundingBox).applyMatrix4(h.matrixWorld), p = this.sphere;
6527
6391
  if (p.center.copy(t), p.radius = i, p.intersectsBox(f)) {
6528
- const g = te(e), y = g.distanceTo(p.center), m = new u0(e, y, g);
6392
+ const g = te(e), y = g.distanceTo(p.center), m = new d0(e, y, g);
6529
6393
  if (o.push(m), !r) return;
6530
6394
  }
6531
6395
  }
@@ -6540,8 +6404,8 @@ class Ic {
6540
6404
  function E_(s) {
6541
6405
  return !(s.index && s.index.array.length < 3);
6542
6406
  }
6543
- const tr = new mu(), Lh = new Mr(), uk = new hv();
6544
- function fk(s, e, t) {
6407
+ const tr = new mu(), Lh = new Mr(), ak = new hv();
6408
+ function lk(s, e, t) {
6545
6409
  const i = s._computeIntersections;
6546
6410
  if (!i)
6547
6411
  return !1;
@@ -6550,7 +6414,7 @@ function fk(s, e, t) {
6550
6414
  const l = this, c = l.geometry.boundingSphere;
6551
6415
  if (c) {
6552
6416
  if (l instanceof Na) {
6553
- Lh.setFromNormalAndCoplanarPoint(z(0, 1, 0), z(0, -l.position.y, 0)), Lh.applyMatrix4(l.matrixWorld, uk);
6417
+ Lh.setFromNormalAndCoplanarPoint(z(0, 1, 0), z(0, -l.position.y, 0)), Lh.applyMatrix4(l.matrixWorld, ak);
6554
6418
  const d = o.ray.intersectPlane(Lh, z());
6555
6419
  if (d) {
6556
6420
  tr.copy(c), tr.applyMatrix4(l.matrixWorld);
@@ -6571,7 +6435,7 @@ function fk(s, e, t) {
6571
6435
  }
6572
6436
  }), s._computeIntersections = n, e.intersectObject(s, !1, t), s._computeIntersections = i, !0;
6573
6437
  }
6574
- var Ud;
6438
+ var Fd;
6575
6439
  ((s) => {
6576
6440
  let e = 0;
6577
6441
  function t(b, w, T, k, E) {
@@ -6598,7 +6462,7 @@ var Ud;
6598
6462
  }
6599
6463
  if (!B && y.length < 3)
6600
6464
  try {
6601
- dk && console.warn("[GenerateMeshBVHWorker] Creating worker with import.meta.url:", import.meta.url), B = new f(), y.push(B);
6465
+ rk && console.warn("[GenerateMeshBVHWorker] Creating worker with import.meta.url:", import.meta.url), B = new f(), y.push(B);
6602
6466
  } catch (G) {
6603
6467
  G instanceof DOMException && G.name === "SecurityError" ? (console.warn("Failed to create MeshBVH worker, falling back to main thread generation. This can happen when running from file://, if the browser does not support workers or if the browser is blocking workers for other reasons."), console.debug(G), e += 10) : (console.error("Failed to create MeshBVH worker. Please see below for more details:"), console.log(G)), e++;
6604
6468
  }
@@ -6635,7 +6499,7 @@ var Ud;
6635
6499
  if (j) {
6636
6500
  const B = b;
6637
6501
  if (c.copy(w.matrixWorld).invert(), B.applyMatrix4(c), j.intersectsSphere(B)) {
6638
- const X = te(w), O = X.distanceTo(B.center), W = new u0(w, O, X);
6502
+ const X = te(w), O = X.distanceTo(B.center), W = new d0(w, O, X);
6639
6503
  T.push(W);
6640
6504
  }
6641
6505
  }
@@ -6664,8 +6528,8 @@ var Ud;
6664
6528
  d = !1;
6665
6529
  });
6666
6530
  }
6667
- })(Ud || (Ud = {}));
6668
- const R_ = /* @__PURE__ */ Symbol("gltf-loader-internal-usage-tracker"), pk = x("debugusers");
6531
+ })(Fd || (Fd = {}));
6532
+ const R_ = /* @__PURE__ */ Symbol("gltf-loader-internal-usage-tracker"), ck = x("debugusers");
6669
6533
  class Oa {
6670
6534
  get name() {
6671
6535
  return "NEEDLE_internal_usage_tracker";
@@ -6693,7 +6557,7 @@ class Oa {
6693
6557
  Oa._loadingProcesses--, this.parser.getDependency = this._getDependency;
6694
6558
  for (const t of this._loadedObjects)
6695
6559
  delete t[R_], t instanceof M && (t.parent || t instanceof H && setTimeout(() => {
6696
- pk && console.warn("> GLTF LOADER: Mesh not used in scene!", t), t.material = null, t.geometry = null;
6560
+ ck && console.warn("> GLTF LOADER: Mesh not used in scene!", t), t.material = null, t.geometry = null;
6697
6561
  }, 1e3));
6698
6562
  return null;
6699
6563
  }
@@ -6710,7 +6574,7 @@ class Oa {
6710
6574
  // // return process;
6711
6575
  // }
6712
6576
  }
6713
- class mk {
6577
+ class hk {
6714
6578
  constructor() {
6715
6579
  window.addEventListener("unhandledrejection", (e) => {
6716
6580
  if (e.defaultPrevented) return;
@@ -6724,32 +6588,32 @@ class mk {
6724
6588
  }
6725
6589
  }
6726
6590
  const ku = x("trackresources");
6727
- function f0() {
6591
+ function u0() {
6728
6592
  return ku === "dispose";
6729
6593
  }
6730
6594
  let $r = !0;
6731
6595
  ku === 0 && ($r = !1);
6732
- function BD(s) {
6596
+ function jD(s) {
6733
6597
  $r = s;
6734
6598
  }
6735
- function gk() {
6599
+ function dk() {
6736
6600
  return $r;
6737
6601
  }
6738
- const p0 = /* @__PURE__ */ Symbol("disposable");
6739
- function yk(s, e) {
6740
- s && (s[p0] = e, wr && console.warn("Set disposable", e, s));
6602
+ const f0 = /* @__PURE__ */ Symbol("disposable");
6603
+ function uk(s, e) {
6604
+ s && (s[f0] = e, wr && console.warn("Set disposable", e, s));
6741
6605
  }
6742
- const m0 = /* @__PURE__ */ Symbol("disposed");
6743
- function FD(s) {
6744
- return s[m0] === !0;
6606
+ const p0 = /* @__PURE__ */ Symbol("disposed");
6607
+ function BD(s) {
6608
+ return s[p0] === !0;
6745
6609
  }
6746
6610
  function Ae(s) {
6747
6611
  if (s) {
6748
- if (s[p0] === !1) {
6612
+ if (s[f0] === !1) {
6749
6613
  wr && console.warn("Object is marked as not disposable", s);
6750
6614
  return;
6751
6615
  }
6752
- if (typeof s == "object" && (s[m0] = !0), s instanceof Mi)
6616
+ if (typeof s == "object" && (s[p0] = !0), s instanceof Mi)
6753
6617
  Ae(s.environment), Ae(s.background), Ae(s.customDepthMaterial), Ae(s.customDistanceMaterial);
6754
6618
  else if (s instanceof yo)
6755
6619
  Ae(s.geometry), Ae(s.material), Ae(s.skeleton), Ae(s.bindMatrix), Ae(s.bindMatrixInverse), Ae(s.customDepthMaterial), Ae(s.customDistanceMaterial), s.visible = !1;
@@ -6784,45 +6648,45 @@ function Ae(s) {
6784
6648
  }
6785
6649
  }
6786
6650
  function ea(s) {
6787
- s && ((wr || f0() || ku) && console.warn("🧨 FREE", s), s instanceof ImageBitmap || "dispose" in s && typeof s.dispose == "function" && s.dispose());
6651
+ s && ((wr || u0() || ku) && console.warn("🧨 FREE", s), s instanceof ImageBitmap || "dispose" in s && typeof s.dispose == "function" && s.dispose());
6788
6652
  }
6789
- function UD(s) {
6653
+ function FD(s) {
6790
6654
  }
6791
- const _k = /* @__PURE__ */ new Set();
6792
- function g0(s, e, t = null, i) {
6793
- if (i || (i = _k, i.clear()), !s) return i;
6655
+ const fk = /* @__PURE__ */ new Set();
6656
+ function m0(s, e, t = null, i) {
6657
+ if (i || (i = fk, i.clear()), !s) return i;
6794
6658
  const n = s[Lc];
6795
6659
  if (n)
6796
6660
  for (const o of n)
6797
- i.has(o) || t?.call(null, o) !== !1 && (i.add(o), e && g0(o, !0, t, i));
6661
+ i.has(o) || t?.call(null, o) !== !1 && (i.add(o), e && m0(o, !0, t, i));
6798
6662
  return i;
6799
6663
  }
6800
- function zD(s) {
6664
+ function UD(s) {
6801
6665
  return s[Ql];
6802
6666
  }
6803
6667
  const wr = x("debugresourceusers") || x("debugmemory"), Lc = /* @__PURE__ */ Symbol("needle-resource-users"), Ql = /* @__PURE__ */ Symbol("needle-resource-users-count");
6804
6668
  function Ht(s, e) {
6805
- dg(s, e, function(t, i) {
6806
- $r && !Ic.raycasting && (zd(Lc, this, t, !1), zd(Lc, this, i, !0));
6669
+ hg(s, e, function(t, i) {
6670
+ $r && !Ic.raycasting && (Ud(Lc, this, t, !1), Ud(Lc, this, i, !0));
6807
6671
  });
6808
6672
  }
6809
6673
  $r && (Ht(H.prototype, "material"), Ht(H.prototype, "geometry"), Ht(be.prototype, "map"), Ht(be.prototype, "bumpMap"), Ht(be.prototype, "alphaMap"), Ht(be.prototype, "normalMap"), Ht(be.prototype, "displacementMap"), Ht(be.prototype, "roughnessMap"), Ht(be.prototype, "metalnessMap"), Ht(be.prototype, "emissiveMap"), Ht(be.prototype, "specularMap"), Ht(be.prototype, "envMap"), Ht(be.prototype, "lightMap"), Ht(be.prototype, "aoMap"), Ht(be.prototype, "gradientMap"));
6810
- function bk(s) {
6674
+ function pk(s) {
6811
6675
  if ($r === !1) return;
6812
6676
  const e = s[Lc];
6813
6677
  if (e)
6814
6678
  for (const t of e)
6815
- zd(Lc, t, s, !1);
6679
+ Ud(Lc, t, s, !1);
6816
6680
  }
6817
- $r && dg(be.prototype, "dispose", function() {
6818
- bk(this);
6681
+ $r && hg(be.prototype, "dispose", function() {
6682
+ pk(this);
6819
6683
  });
6820
6684
  let em = 0;
6821
- function zd(s, e, t, i) {
6685
+ function Ud(s, e, t, i) {
6822
6686
  if (em > 0) return;
6823
6687
  if (Array.isArray(t)) {
6824
6688
  for (const o of t)
6825
- zd(s, e, o, i);
6689
+ Ud(s, e, o, i);
6826
6690
  return;
6827
6691
  }
6828
6692
  if (!t) return;
@@ -6836,12 +6700,12 @@ function zd(s, e, t, i) {
6836
6700
  } else if (e && n.has(e)) {
6837
6701
  n.delete(e);
6838
6702
  let o = t[Ql] || 0;
6839
- o > 0 && (o -= 1, t[Ql] = o), wr && console.warn(`🔴 Removed user of "${t.type}"`, e, t, o, "users:", n), o <= 0 && (Oa.isLoading(t) || (ku && console.warn(`🔴 Removed all user of "${t.type}"`, t), f0() && Ae(t)));
6703
+ o > 0 && (o -= 1, t[Ql] = o), wr && console.warn(`🔴 Removed user of "${t.type}"`, e, t, o, "users:", n), o <= 0 && (Oa.isLoading(t) || (ku && console.warn(`🔴 Removed all user of "${t.type}"`, t), u0() && Ae(t)));
6840
6704
  }
6841
6705
  t[s] = n;
6842
6706
  }
6843
6707
  try {
6844
- dg(
6708
+ hg(
6845
6709
  Fr.prototype,
6846
6710
  "render",
6847
6711
  function() {
@@ -6855,7 +6719,7 @@ try {
6855
6719
  console.warn("Could not wrap WebGLRenderer.render", s);
6856
6720
  }
6857
6721
  const T_ = x("debugcomponentevents");
6858
- class _g {
6722
+ class yg {
6859
6723
  static eventListeners = /* @__PURE__ */ new Map();
6860
6724
  static addComponentLifecylceEventListener(e, t) {
6861
6725
  this.eventListeners.has(e) && this.eventListeners.set(e, []);
@@ -6875,17 +6739,17 @@ class _g {
6875
6739
  n(t);
6876
6740
  }
6877
6741
  }
6878
- const Dc = /* @__PURE__ */ Symbol("NEEDLE_NEED_UPDATE_INSTANCE"), y0 = /* @__PURE__ */ Symbol("isUsingInstancing"), _0 = /* @__PURE__ */ Symbol("instancingRenderer"), Yl = /* @__PURE__ */ Symbol("instancingAutoUpdateBounds");
6742
+ const Dc = /* @__PURE__ */ Symbol("NEEDLE_NEED_UPDATE_INSTANCE"), g0 = /* @__PURE__ */ Symbol("isUsingInstancing"), y0 = /* @__PURE__ */ Symbol("instancingRenderer"), Yl = /* @__PURE__ */ Symbol("instancingAutoUpdateBounds");
6879
6743
  class _n {
6880
6744
  /** Is this object rendered using a InstancedMesh */
6881
6745
  static isUsingInstancing(e) {
6882
- return e[y0] === !0;
6746
+ return e[g0] === !0;
6883
6747
  }
6884
6748
  /** Returns the instanced mesh IF the object is rendered by an instanced mesh
6885
6749
  * @link https://threejs.org/docs/#api/en/objects/InstancedMesh
6886
6750
  */
6887
6751
  static getRenderer(e) {
6888
- return e[_0] || null;
6752
+ return e[y0] || null;
6889
6753
  }
6890
6754
  setAutoUpdateBounds(e, t) {
6891
6755
  const i = _n.getRenderer(e);
@@ -6899,10 +6763,10 @@ class _n {
6899
6763
  _n.markDirty(i, !0);
6900
6764
  }
6901
6765
  }
6902
- var Nd;
6766
+ var zd;
6903
6767
  ((s) => {
6904
6768
  s.experimentalSmartHierarchyUpdate = !1;
6905
- })(Nd || (Nd = {}));
6769
+ })(zd || (zd = {}));
6906
6770
  function Ma(s, e) {
6907
6771
  try {
6908
6772
  e || s();
@@ -6911,11 +6775,11 @@ function Ma(s, e) {
6911
6775
  }
6912
6776
  return !0;
6913
6777
  }
6914
- const tm = x("debugnewscripts"), vk = x("debughierarchy"), Re = [];
6915
- function wk() {
6778
+ const tm = x("debugnewscripts"), mk = x("debughierarchy"), Re = [];
6779
+ function gk() {
6916
6780
  return Re.length > 0;
6917
6781
  }
6918
- function $d(s) {
6782
+ function Nd(s) {
6919
6783
  if (tm && console.log("Register new components", s.new_scripts.length, [...s.new_scripts], s.alias ? "element: " + s.alias : s.hash, s), s.new_scripts_pre_setup_callbacks.length > 0) {
6920
6784
  for (const e of s.new_scripts_pre_setup_callbacks)
6921
6785
  e && e();
@@ -6938,7 +6802,7 @@ The script will be ignored. Please make sure your component extends "Behaviour"
6938
6802
  Did you add and remove a component in the same frame?`), Re.splice(e, 1), e--;
6939
6803
  continue;
6940
6804
  }
6941
- t.context = s, fc(t.gameObject), bg(t, s);
6805
+ t.context = s, fc(t.gameObject), _g(t, s);
6942
6806
  } catch (t) {
6943
6807
  console.error(t), gs(Re[e], s), Re.splice(e, 1), e--;
6944
6808
  }
@@ -6981,10 +6845,10 @@ Did you add and remove a component in the same frame?`), Re.splice(e, 1), e--;
6981
6845
  s.new_scripts_post_setup_callbacks.length = 0;
6982
6846
  }
6983
6847
  }
6984
- function xk(s) {
6848
+ function yk(s) {
6985
6849
  s && (s.__internalDisable(!0), gs(s, s.context));
6986
6850
  }
6987
- function b0(s, e) {
6851
+ function _0(s, e) {
6988
6852
  for (let t = 0; t < s.new_script_start.length; t++)
6989
6853
  try {
6990
6854
  const i = s.new_script_start[t];
@@ -6995,8 +6859,8 @@ function b0(s, e) {
6995
6859
  console.error(i), gs(s.new_script_start[t], s), s.new_script_start.splice(t, 1), t--;
6996
6860
  }
6997
6861
  }
6998
- function bg(s, e) {
6999
- e.scripts.indexOf(s) === -1 && (e.scripts.push(s), s.earlyUpdate && e.scripts_earlyUpdate.push(s), s.update && e.scripts_update.push(s), s.lateUpdate && e.scripts_lateUpdate.push(s), s.onBeforeRender && e.scripts_onBeforeRender.push(s), s.onAfterRender && e.scripts_onAfterRender.push(s), s.onPausedChanged && e.scripts_pausedChanged.push(s), Gf(s, null) && e.new_scripts_xr.push(s), Gf(s, "immersive-vr") && e.scripts_immersive_vr.push(s), Gf(s, "immersive-ar") && e.scripts_immersive_ar.push(s));
6862
+ function _g(s, e) {
6863
+ e.scripts.indexOf(s) === -1 && (e.scripts.push(s), s.earlyUpdate && e.scripts_earlyUpdate.push(s), s.update && e.scripts_update.push(s), s.lateUpdate && e.scripts_lateUpdate.push(s), s.onBeforeRender && e.scripts_onBeforeRender.push(s), s.onAfterRender && e.scripts_onAfterRender.push(s), s.onPausedChanged && e.scripts_pausedChanged.push(s), Hf(s, null) && e.new_scripts_xr.push(s), Hf(s, "immersive-vr") && e.scripts_immersive_vr.push(s), Hf(s, "immersive-ar") && e.scripts_immersive_ar.push(s));
7000
6864
  }
7001
6865
  function gs(s, e) {
7002
6866
  Ui(s, e.new_scripts), Ui(s, e.new_script_start), Ui(s, e.scripts), Ui(s, e.scripts_earlyUpdate), Ui(s, e.scripts_update), Ui(s, e.scripts_lateUpdate), Ui(s, e.scripts_onBeforeRender), Ui(s, e.scripts_onAfterRender), Ui(s, e.scripts_pausedChanged), Ui(s, e.new_scripts_xr), Ui(s, e.scripts_immersive_vr), Ui(s, e.scripts_immersive_ar), e.stopAllCoroutinesFrom(s);
@@ -7005,7 +6869,7 @@ function Ui(s, e) {
7005
6869
  const t = e.indexOf(s);
7006
6870
  t >= 0 && e.splice(t, 1);
7007
6871
  }
7008
- function Gf(s, e) {
6872
+ function Hf(s, e) {
7009
6873
  if (s) {
7010
6874
  const t = s;
7011
6875
  if (t.onBeforeXR || t.onEnterXR || t.onUpdateXR || t.onLeaveXR || t.onXRControllerAdded || t.onXRControllerRemoved)
@@ -7014,11 +6878,11 @@ function Gf(s, e) {
7014
6878
  return !1;
7015
6879
  }
7016
6880
  let im = !0;
7017
- function qf() {
6881
+ function Gf() {
7018
6882
  im = !0;
7019
6883
  }
7020
6884
  function hd(s, e = !1) {
7021
- if (Nd.experimentalSmartHierarchyUpdate) {
6885
+ if (zd.experimentalSmartHierarchyUpdate) {
7022
6886
  if (!e && !im)
7023
6887
  return;
7024
6888
  im = !1;
@@ -7028,10 +6892,10 @@ function hd(s, e = !1) {
7028
6892
  return;
7029
6893
  }
7030
6894
  const t = Qc(s);
7031
- v0(s, t, !0) || (tm || L() ? console.error(`Error updating hierarchy
6895
+ b0(s, t, !0) || (tm || L() ? console.error(`Error updating hierarchy
7032
6896
  Do you have circular references in your project? <a target="_blank" href="https://docs.needle.tools/circular-reference"> Click here for more information.`, s) : console.error('Failed to update active state in hierarchy of "' + s.name + '"', s), console.warn(" ↑ this error might be caused by circular references. Please make sure you don't have files with circular references (e.g. one GLB 1 is loading GLB 2 which is then loading GLB 1 again)."));
7033
6897
  }
7034
- function v0(s, e, t, i = 0) {
6898
+ function b0(s, e, t, i = 0) {
7035
6899
  if (i > 1e3)
7036
6900
  return console.warn("Hierarchy is too deep (> 1000 level) - will abort updating active state"), !1;
7037
6901
  const n = Qc(s);
@@ -7040,13 +6904,13 @@ function v0(s, e, t, i = 0) {
7040
6904
  e = l[bo], e === void 0 && (l instanceof Mi || (e = !0));
7041
6905
  }
7042
6906
  const r = s[bo] !== e;
7043
- r && (s[bo] = e, vk && console.warn("ACTIVE CHANGE", s.name, n, s.visible, e, "changed?" + r, s), Sk(s, (l) => {
6907
+ r && (s[bo] = e, mk && console.warn("ACTIVE CHANGE", s.name, n, s.visible, e, "changed?" + r, s), _k(s, (l) => {
7044
6908
  e ? l.enabled && (Ma(l.__internalAwake.bind(l)), l.enabled && l.__internalEnable()) : l.__didAwake && l.enabled && (l.__didEnable = !1, l.onDisable());
7045
6909
  }));
7046
6910
  let a = !0;
7047
6911
  if (s.children)
7048
6912
  for (const l of s.children)
7049
- v0(l, e, t, i + 1) === !1 && (a = !1);
6913
+ b0(l, e, t, i + 1) === !1 && (a = !1);
7050
6914
  return a;
7051
6915
  }
7052
6916
  function fc(s) {
@@ -7064,18 +6928,18 @@ function fc(s) {
7064
6928
  }
7065
6929
  s[bo] = e && i;
7066
6930
  }
7067
- function Sk(s, e) {
6931
+ function _k(s, e) {
7068
6932
  if (s.userData?.components)
7069
6933
  for (const t of s.userData.components)
7070
6934
  e(t);
7071
6935
  }
7072
- const dd = /* @__PURE__ */ new Map(), w0 = /* @__PURE__ */ Symbol("prewarmFlag"), nm = /* @__PURE__ */ Symbol("waitingForPrewarm"), sm = x("debugprewarm");
7073
- function Ck(s, e) {
7074
- if (!s || s[w0] === !0 || s[nm] === !0) return;
6936
+ const dd = /* @__PURE__ */ new Map(), v0 = /* @__PURE__ */ Symbol("prewarmFlag"), nm = /* @__PURE__ */ Symbol("waitingForPrewarm"), sm = x("debugprewarm");
6937
+ function bk(s, e) {
6938
+ if (!s || s[v0] === !0 || s[nm] === !0) return;
7075
6939
  dd.has(e) || dd.set(e, []), s[nm] = !0, dd.get(e).push(s), sm && console.debug("register prewarm", s.name);
7076
6940
  }
7077
6941
  let A_ = null, I_ = null;
7078
- function Pk(s) {
6942
+ function vk(s) {
7079
6943
  if (!s) return;
7080
6944
  const e = dd.get(s);
7081
6945
  if (!e?.length) return;
@@ -7087,16 +6951,16 @@ function Pk(s) {
7087
6951
  const n = s.scene;
7088
6952
  i.compile(n, t), A_ ??= new dS(64), I_ ??= new uS(1e-3, 9999999, A_), I_.update(i, n);
7089
6953
  for (const o of e)
7090
- o[w0] = !0, o[nm] = !1;
6954
+ o[v0] = !0, o[nm] = !1;
7091
6955
  e.length = 0, sm && console.log("prewarm done");
7092
6956
  }
7093
6957
  }
7094
6958
  }
7095
6959
  pe.registerCallback(ue.ContextCreated, (s) => {
7096
6960
  const e = s.context;
7097
- Tk(e), Mk(e);
6961
+ kk(e), Sk(e);
7098
6962
  });
7099
- const Wd = x("debugcomponents"), L_ = "eff8ba80-635d-11ec-90d6-0242ac120003";
6963
+ const $d = x("debugcomponents"), L_ = "eff8ba80-635d-11ec-90d6-0242ac120003";
7100
6964
  class Ut {
7101
6965
  get seed() {
7102
6966
  return this._seed;
@@ -7131,8 +6995,8 @@ class Ut {
7131
6995
  return t;
7132
6996
  }
7133
6997
  }
7134
- var kk = /* @__PURE__ */ ((s) => (s.NewInstanceCreated = "new-instance-created", s.InstanceDestroyed = "instance-destroyed", s))(kk || {});
7135
- class Ok {
6998
+ var wk = /* @__PURE__ */ ((s) => (s.NewInstanceCreated = "new-instance-created", s.InstanceDestroyed = "instance-destroyed", s))(wk || {});
6999
+ class xk {
7136
7000
  guid;
7137
7001
  dontSave;
7138
7002
  constructor(e) {
@@ -7155,20 +7019,20 @@ function Ou(s, e, t = !0, i) {
7155
7019
  console.warn("Can not send destroy: failed to find guid", s);
7156
7020
  return;
7157
7021
  }
7158
- x0(o, e, i);
7022
+ w0(o, e, i);
7159
7023
  }
7160
- function x0(s, e, t) {
7161
- const i = new Ok(s);
7024
+ function w0(s, e, t) {
7025
+ const i = new xk(s);
7162
7026
  t?.saveInRoom === !1 && (i.dontSave = !0), e.send("instance-destroyed", i, Bn.Queued);
7163
7027
  }
7164
- function Mk(s) {
7028
+ function Sk(s) {
7165
7029
  s.connection.beginListen("instance-destroyed", (e) => {
7166
- Wd && console.log("[Remote] Destroyed", s.scene, e);
7167
- const t = D0(e.guid, s.scene);
7030
+ $d && console.log("[Remote] Destroyed", s.scene, e);
7031
+ const t = L0(e.guid, s.scene);
7168
7032
  t && Ki(t);
7169
7033
  });
7170
7034
  }
7171
- class ND {
7035
+ class zD {
7172
7036
  /** File to download */
7173
7037
  filename;
7174
7038
  /** Checksum to verify its the correct file */
@@ -7179,7 +7043,7 @@ class ND {
7179
7043
  this.filename = e, this.hash = t, this.size = i;
7180
7044
  }
7181
7045
  }
7182
- class Ek {
7046
+ class Ck {
7183
7047
  guid;
7184
7048
  originalGuid;
7185
7049
  seed;
@@ -7200,30 +7064,30 @@ class Ek {
7200
7064
  this.originalGuid = e, this.guid = t;
7201
7065
  }
7202
7066
  }
7203
- function S0(s, e, t, i) {
7067
+ function x0(s, e, t, i) {
7204
7068
  const n = s;
7205
7069
  if (!n.guid)
7206
7070
  return console.warn("Can not instantiate: No guid", n), null;
7207
7071
  if (e.context || (e.context = N.Current), !e.context)
7208
7072
  return console.error("Missing network instantiate options / reference to network connection in sync instantiate"), null;
7209
- const o = e ? { ...e } : null, { instance: r, seed: a } = Ak(n, e);
7073
+ const o = e ? { ...e } : null, { instance: r, seed: a } = Ok(n, e);
7210
7074
  if (r) {
7211
7075
  const l = r;
7212
7076
  if (l.guid) {
7213
- Wd && console.log("[Local] new instance", "gameobject:", r?.guid);
7214
- const c = new Ek(n.guid, l.guid);
7077
+ $d && console.log("[Local] new instance", "gameobject:", r?.guid);
7078
+ const c = new Ck(n.guid, l.guid);
7215
7079
  c.seed = a, e.deleteOnDisconnect === !0 && (c.deleteStateOnDisconnect = !0), o && (o.position && (Array.isArray(o.position) ? c.position = { x: o.position[0], y: o.position[1], z: o.position[2] } : c.position = { x: o.position.x, y: o.position.y, z: o.position.z }), o.rotation && (o.rotation instanceof ct ? o.rotation = new V().setFromEuler(o.rotation) : o.rotation instanceof Array && (o.rotation = new V().fromArray(o.rotation)), c.rotation = { x: o.rotation.x, y: o.rotation.y, z: o.rotation.z, w: o.rotation.w }), o.scale && (Array.isArray(o.scale) ? c.scale = { x: o.scale[0], y: o.scale[1], z: o.scale[2] } : c.scale = { x: o.scale.x, y: o.scale.y, z: o.scale.z })), c.position || (c.position = { x: l.position.x, y: l.position.y, z: l.position.z }), c.rotation || (c.rotation = { x: l.quaternion.x, y: l.quaternion.y, z: l.quaternion.z, w: l.quaternion.w }), c.scale || (c.scale = { x: l.scale.x, y: l.scale.y, z: l.scale.z }), c.visible = n.visible, o?.parent && (typeof o.parent == "string" ? c.parent = o.parent : c.parent = o.parent.guid), c.hostData = t, i === !1 && (c.dontSave = !0), !e?.context?.connection && L() && console.debug("Object will be instantiated but it will not be synced: not connected", n.guid), e.context.connection.isInRoom && ua.push(new WeakRef(l)), e?.context?.connection.send("new-instance-created", c);
7216
7080
  } else console.warn("Missing guid, can not send new instance event", l);
7217
7081
  }
7218
7082
  return r;
7219
7083
  }
7220
- function Rk() {
7084
+ function Pk() {
7221
7085
  return Math.random() * 9999999;
7222
7086
  }
7223
7087
  const ua = new Array();
7224
- function Tk(s) {
7088
+ function kk(s) {
7225
7089
  s.connection.beginListen("new-instance-created", async (e) => {
7226
- const t = await Lk(e.originalGuid, s.scene);
7090
+ const t = await Ek(e.originalGuid, s.scene);
7227
7091
  if (e.preventCreation === !0)
7228
7092
  return;
7229
7093
  if (!t) {
@@ -7231,9 +7095,9 @@ function Tk(s) {
7231
7095
  return;
7232
7096
  }
7233
7097
  const i = new es();
7234
- e.position && (i.position = new _(e.position.x, e.position.y, e.position.z)), e.rotation && (i.rotation = new V(e.rotation.x, e.rotation.y, e.rotation.z, e.rotation.w)), e.scale && (i.scale = new _(e.scale.x, e.scale.y, e.scale.z)), i.parent = e.parent, e.seed && (i.idProvider = new Ut(e.seed)), i.visible = e.visible, i.context = s, Wd && s.alias && console.log("[Remote] instantiate in: " + s.alias);
7098
+ e.position && (i.position = new _(e.position.x, e.position.y, e.position.z)), e.rotation && (i.rotation = new V(e.rotation.x, e.rotation.y, e.rotation.z, e.rotation.w)), e.scale && (i.scale = new _(e.scale.x, e.scale.y, e.scale.z)), i.parent = e.parent, e.seed && (i.idProvider = new Ut(e.seed)), i.visible = e.visible, i.context = s, $d && s.alias && console.log("[Remote] instantiate in: " + s.alias);
7235
7099
  const n = Rr(t, i);
7236
- ua.push(new WeakRef(n)), n && (e.parent === "scene" && s.scene.add(n), Wd && console.log("[Remote] new instance", "gameobject:", n?.guid, t));
7100
+ ua.push(new WeakRef(n)), n && (e.parent === "scene" && s.scene.add(n), $d && console.log("[Remote] new instance", "gameobject:", n?.guid, t));
7237
7101
  }), s.connection.beginListen("left-room", () => {
7238
7102
  ua.length > 0 && console.debug(`Left networking room, cleaning up ${ua.length} instantiated objects`);
7239
7103
  for (const e of ua) {
@@ -7243,50 +7107,50 @@ function Tk(s) {
7243
7107
  ua.length = 0;
7244
7108
  });
7245
7109
  }
7246
- function Ak(s, e) {
7247
- const t = Rk(), i = e ?? new es();
7110
+ function Ok(s, e) {
7111
+ const t = Pk(), i = e ?? new es();
7248
7112
  i.idProvider = new Ut(t);
7249
7113
  const n = Rr(s, i);
7250
7114
  return { seed: t, instance: n };
7251
7115
  }
7252
- const C0 = {};
7253
- function Ik(s, e) {
7254
- C0[s] = e;
7116
+ const S0 = {};
7117
+ function Mk(s, e) {
7118
+ S0[s] = e;
7255
7119
  }
7256
- async function Lk(s, e) {
7257
- const t = C0[s];
7120
+ async function Ek(s, e) {
7121
+ const t = S0[s];
7258
7122
  if (t != null) {
7259
7123
  const i = await t(s);
7260
7124
  if (i) return i;
7261
7125
  }
7262
- return P0(s, e);
7126
+ return C0(s, e);
7263
7127
  }
7264
- function P0(s, e) {
7128
+ function C0(s, e) {
7265
7129
  if (e === null || !s) return null;
7266
7130
  if (e.guid === s)
7267
7131
  return e;
7268
7132
  if (e.children)
7269
7133
  for (const t of e.children) {
7270
- const i = P0(s, t);
7134
+ const i = C0(s, t);
7271
7135
  if (i)
7272
7136
  return i;
7273
7137
  }
7274
7138
  return null;
7275
7139
  }
7276
- const Gc = x("gizmos"), gt = x("debugextension"), Xf = x("debugtypes");
7277
- class Dk {
7140
+ const Gc = x("gizmos"), gt = x("debugextension"), qf = x("debugtypes");
7141
+ class Rk {
7278
7142
  _types = /* @__PURE__ */ new Map();
7279
7143
  _reverseTypes = /* @__PURE__ */ new Map();
7280
7144
  constructor() {
7281
- Xf && console.warn("TypeStore: Created", this);
7145
+ qf && console.warn("TypeStore: Created", this);
7282
7146
  }
7283
7147
  /**
7284
7148
  * add a type to the store
7285
7149
  */
7286
7150
  add(e, t) {
7287
- Xf && console.warn("ADD TYPE", e);
7151
+ qf && console.warn("ADD TYPE", e);
7288
7152
  const i = this._types.get(e);
7289
- i ? Xf && i !== t && console.warn("Type name exists multiple times in your project and may lead to runtime errors:", e) : (this._types.set(e, t), this._reverseTypes.set(t, e));
7153
+ i ? qf && i !== t && console.warn("Type name exists multiple times in your project and may lead to runtime errors:", e) : (this._types.set(e, t), this._reverseTypes.set(t, e));
7290
7154
  }
7291
7155
  /**
7292
7156
  * @returns the type for the given key if registered
@@ -7301,9 +7165,9 @@ class Dk {
7301
7165
  return this._reverseTypes.get(e) || null;
7302
7166
  }
7303
7167
  }
7304
- const jk = /* @__PURE__ */ Symbol("BuiltInType"), P = new Dk(), k0 = function(s) {
7168
+ const Tk = /* @__PURE__ */ Symbol("BuiltInType"), P = new Rk(), P0 = function(s) {
7305
7169
  P.get(s.name) || P.add(s.name, s);
7306
- }, vg = x("debugresolvedependencies"), Bk = ["/extensions/", "extensions/"], Fk = [
7170
+ }, bg = x("debugresolvedependencies"), Ak = ["/extensions/", "extensions/"], Ik = [
7307
7171
  { prefix: "/nodes/", dependencyName: "node" },
7308
7172
  { prefix: "/meshes/", dependencyName: "mesh" },
7309
7173
  { prefix: "/materials/", dependencyName: "material" },
@@ -7316,17 +7180,17 @@ const jk = /* @__PURE__ */ Symbol("BuiltInType"), P = new Dk(), k0 = function(s)
7316
7180
  { prefix: "textures/", dependencyName: "texture" },
7317
7181
  { prefix: "animations/", dependencyName: "animation" }
7318
7182
  ];
7319
- async function wg(s, e) {
7320
- vg && console.log(s, e);
7183
+ async function vg(s, e) {
7184
+ bg && console.log(s, e);
7321
7185
  const t = [];
7322
- om(Fk, s, e, t);
7186
+ om(Ik, s, e, t);
7323
7187
  const i = await Promise.all(t);
7324
7188
  return typeof e == "string" && i.length === 1 ? i[0] : i;
7325
7189
  }
7326
- function Uk(s, e) {
7190
+ function Lk(s, e) {
7327
7191
  return !s || !e ? !1 : s["needle:identifier"] != null && e["needle:identifier"] != null ? s["needle:identifier"] === e["needle:identifier"] : !1;
7328
7192
  }
7329
- function zk(s, e) {
7193
+ function Dk(s, e) {
7330
7194
  s["needle:identifier"] = e;
7331
7195
  }
7332
7196
  function om(s, e, t, i) {
@@ -7352,9 +7216,9 @@ function om(s, e, t, i) {
7352
7216
  continue;
7353
7217
  }
7354
7218
  for (const c of s) {
7355
- const h = O0(c.prefix, a);
7219
+ const h = k0(c.prefix, a);
7356
7220
  if (h >= 0) {
7357
- vg && console.log(c, h, c.dependencyName), i.push(e.getDependency(c.dependencyName, h).then((d) => o[r] = d));
7221
+ bg && console.log(c, h, c.dependencyName), i.push(e.getDependency(c.dependencyName, h).then((d) => o[r] = d));
7358
7222
  break;
7359
7223
  }
7360
7224
  }
@@ -7369,7 +7233,7 @@ function om(s, e, t, i) {
7369
7233
  }
7370
7234
  function D_(s, e) {
7371
7235
  if (s && s.plugins && typeof e == "string") {
7372
- for (const t of Bk)
7236
+ for (const t of Ak)
7373
7237
  if (e.startsWith(t)) {
7374
7238
  let i = e.substring(t.length);
7375
7239
  const n = i.indexOf("/");
@@ -7386,13 +7250,13 @@ function D_(s, e) {
7386
7250
  }
7387
7251
  function j_(s, e, t) {
7388
7252
  for (const i of s) {
7389
- const n = O0(i.prefix, t);
7253
+ const n = k0(i.prefix, t);
7390
7254
  if (n >= 0)
7391
- return vg && console.warn("GET DEPENDENCY", i, n, i.dependencyName), e.getDependency(i.dependencyName, n);
7255
+ return bg && console.warn("GET DEPENDENCY", i, n, i.dependencyName), e.getDependency(i.dependencyName, n);
7392
7256
  }
7393
7257
  return null;
7394
7258
  }
7395
- function O0(s, e) {
7259
+ function k0(s, e) {
7396
7260
  if (typeof e == "string" && e.startsWith(s)) {
7397
7261
  const t = e.substring(s.length), i = Number.parseInt(t);
7398
7262
  if (i >= 0)
@@ -7400,13 +7264,13 @@ function O0(s, e) {
7400
7264
  }
7401
7265
  return -1;
7402
7266
  }
7403
- const Qf = "NEEDLE_persistent_assets";
7404
- function Nk(s) {
7267
+ const Xf = "NEEDLE_persistent_assets";
7268
+ function jk(s) {
7405
7269
  return s?.___persistentAsset === !0;
7406
7270
  }
7407
- class $k {
7271
+ class Bk {
7408
7272
  get name() {
7409
- return Qf;
7273
+ return Xf;
7410
7274
  }
7411
7275
  parser;
7412
7276
  constructor(e) {
@@ -7414,12 +7278,12 @@ class $k {
7414
7278
  }
7415
7279
  async afterRoot(e) {
7416
7280
  if (!this.parser?.json?.extensions) return;
7417
- const t = this.parser.json.extensions[Qf];
7281
+ const t = this.parser.json.extensions[Xf];
7418
7282
  if (!t) return;
7419
7283
  gt && console.log(t);
7420
7284
  const i = new Array();
7421
7285
  for (const n of t?.assets) {
7422
- const o = wg(this.parser, n);
7286
+ const o = vg(this.parser, n);
7423
7287
  o && i.push(o);
7424
7288
  }
7425
7289
  await Promise.all(i);
@@ -7428,7 +7292,7 @@ class $k {
7428
7292
  const i = Number.parseInt(t);
7429
7293
  if (i >= 0) {
7430
7294
  gt && console.log(t);
7431
- const n = e.json.extensions[Qf];
7295
+ const n = e.json.extensions[Xf];
7432
7296
  if (n) {
7433
7297
  const o = n?.assets[i];
7434
7298
  if (o && typeof o == "object") {
@@ -7443,7 +7307,7 @@ class $k {
7443
7307
  }
7444
7308
  }
7445
7309
  const Fn = x("debugserializer");
7446
- class Wk {
7310
+ class Fk {
7447
7311
  register(e, t) {
7448
7312
  if (this.typeMap.has(e)) {
7449
7313
  const i = this.typeMap.get(e);
@@ -7479,7 +7343,7 @@ class Wk {
7479
7343
  Fn && console.warn("No serializer found for " + i, e, e.name, e.constructor.name);
7480
7344
  }
7481
7345
  }
7482
- const Vd = new Wk();
7346
+ const Wd = new Fk();
7483
7347
  class nn {
7484
7348
  name;
7485
7349
  // register<T>(c: Constructor<T> | Constructor<T>[])
@@ -7496,12 +7360,12 @@ class nn {
7496
7360
  constructor(e, t) {
7497
7361
  if (this.name = t, Array.isArray(e))
7498
7362
  for (const i of e)
7499
- Vd.register(i, this);
7363
+ Wd.register(i, this);
7500
7364
  else
7501
- Vd.register(e, this);
7365
+ Wd.register(e, this);
7502
7366
  }
7503
7367
  }
7504
- class Vk {
7368
+ class Uk {
7505
7369
  isDevMode = Qi();
7506
7370
  cache = {};
7507
7371
  /** only call when assigning values for the very first time */
@@ -7516,7 +7380,7 @@ class Vk {
7516
7380
  return this.cache[e] === void 0 ? !1 : this.cache[e].includes(t);
7517
7381
  }
7518
7382
  }
7519
- class M0 {
7383
+ class O0 {
7520
7384
  root;
7521
7385
  gltf;
7522
7386
  /** the url of the glb that is currently being loaded */
@@ -7537,14 +7401,14 @@ class M0 {
7537
7401
  this.root = e;
7538
7402
  }
7539
7403
  }
7540
- function Hk(s, e) {
7404
+ function zk(s, e) {
7541
7405
  const t = s.$serializedTypes;
7542
7406
  if (t === void 0) return null;
7543
7407
  const i = {};
7544
7408
  for (const o in t) {
7545
7409
  const r = s[o];
7546
7410
  if (r != null && typeof r == "object") {
7547
- const a = Vd.getSerializerForConstructor(r);
7411
+ const a = Wd.getSerializerForConstructor(r);
7548
7412
  if (a) {
7549
7413
  i[o] = a.onSerialize(r, e);
7550
7414
  continue;
@@ -7562,11 +7426,11 @@ function Hk(s, e) {
7562
7426
  return i.name = n(s), typeof s.guid == "string" && (i.guid = s.guid), i;
7563
7427
  }
7564
7428
  const ud = [];
7565
- function E0(s, e) {
7429
+ function M0(s, e) {
7566
7430
  if (!s) return e;
7567
7431
  typeof s.$serializedTypes == "object" && (e || (e = {}), Object.assign(e, s.$serializedTypes));
7568
7432
  const t = Object.getPrototypeOf(s);
7569
- return E0(t, e);
7433
+ return M0(t, e);
7570
7434
  }
7571
7435
  function rm(s, e, t) {
7572
7436
  if (!s) return !1;
@@ -7574,7 +7438,7 @@ function rm(s, e, t) {
7574
7438
  const n = s.onBeforeDeserialize(e, t);
7575
7439
  if (typeof n == "boolean") return n;
7576
7440
  }
7577
- const i = E0(s);
7441
+ const i = M0(s);
7578
7442
  if (e) {
7579
7443
  if (typeof e.guid == "string" && (s.guid = e.guid), i)
7580
7444
  for (const n in i) {
@@ -7602,13 +7466,13 @@ function rm(s, e, t) {
7602
7466
  s.onAfterDeserializeMember !== void 0 && s.onAfterDeserializeMember(n, a, t);
7603
7467
  }
7604
7468
  }
7605
- Xk(s, e);
7469
+ Wk(s, e);
7606
7470
  }
7607
- return qk(s, e, t.implementationInformation), s.onAfterDeserialize !== void 0 && s.onAfterDeserialize(e, t), !0;
7471
+ return $k(s, e, t.implementationInformation), s.onAfterDeserialize !== void 0 && s.onAfterDeserialize(e, t), !0;
7608
7472
  }
7609
- const Gk = x("noerrors");
7610
- function qk(s, e, t) {
7611
- if (Gk || !e || !Qi() || !s || s.constructor && s.constructor[jk] === !0) return;
7473
+ const Nk = x("noerrors");
7474
+ function $k(s, e, t) {
7475
+ if (Nk || !e || !Qi() || !s || s.constructor && s.constructor[Tk] === !0) return;
7612
7476
  const i = s.constructor?.name, n = Object.getOwnPropertyNames(e);
7613
7477
  for (const o of n) {
7614
7478
  if (o === "sourceId") continue;
@@ -7660,7 +7524,7 @@ in script ${i}.ts
7660
7524
  }
7661
7525
  }
7662
7526
  }
7663
- function Xk(s, e) {
7527
+ function Wk(s, e) {
7664
7528
  for (const t of Object.keys(e)) {
7665
7529
  const i = e[t];
7666
7530
  if (typeof i == "object" && i !== null && i !== void 0) {
@@ -7671,7 +7535,7 @@ function Xk(s, e) {
7671
7535
  }
7672
7536
  for (const o of Object.keys(i))
7673
7537
  if (n[o] === void 0 && B_(i[o]) && !B_(n)) {
7674
- const a = Qk(n, o);
7538
+ const a = Vk(n, o);
7675
7539
  if (a && (a?.writable === void 0 || a?.writable === !1) && a.set === void 0) {
7676
7540
  Fn && console.warn('Property is not writable "' + o + '"', n, a, i[o], n[o]);
7677
7541
  continue;
@@ -7681,7 +7545,7 @@ function Xk(s, e) {
7681
7545
  }
7682
7546
  }
7683
7547
  }
7684
- function Qk(s, e) {
7548
+ function Vk(s, e) {
7685
7549
  for (; s; ) {
7686
7550
  const t = Object.getOwnPropertyDescriptor(s, e);
7687
7551
  if (t) return t;
@@ -7708,8 +7572,8 @@ function am(s, e, t, i, n) {
7708
7572
  if (t.type = r, !o && n && (n instanceof be || n instanceof H || n instanceof yn || n instanceof Oi))
7709
7573
  return n;
7710
7574
  if (i || (i = {
7711
- serializer: Vd.getSerializerForConstructor(r)
7712
- }), n && typeof n == "object" && Nk(n)) {
7575
+ serializer: Wd.getSerializerForConstructor(r)
7576
+ }), n && typeof n == "object" && jk(n)) {
7713
7577
  if (n.__concreteInstance)
7714
7578
  return n.__concreteInstance;
7715
7579
  const h = n;
@@ -7742,7 +7606,7 @@ function am(s, e, t, i, n) {
7742
7606
  if (s === null && (r === be || r === xe || r === H || r === Oi))
7743
7607
  return null;
7744
7608
  try {
7745
- l = new r(...Yk(s));
7609
+ l = new r(...Hk(s));
7746
7610
  } catch (h) {
7747
7611
  console.error("Error creating " + t.path, t.target, h);
7748
7612
  return;
@@ -7751,7 +7615,7 @@ function am(s, e, t, i, n) {
7751
7615
  const c = l;
7752
7616
  return c.$serializedTypes && rm(c, s, t), l;
7753
7617
  }
7754
- function Yk(s) {
7618
+ function Hk(s) {
7755
7619
  if (ud.length = 0, typeof s == "object" && s !== null && s !== void 0)
7756
7620
  for (const e of Object.keys(s))
7757
7621
  ud.push(s[e]);
@@ -7764,7 +7628,7 @@ function qa(s, e, t, i) {
7764
7628
  const n = s.constructor?.name ?? "unknown";
7765
7629
  t?.registerDefinedKeys(n, s);
7766
7630
  for (const o of Object.keys(e)) {
7767
- const r = Kk(s, o);
7631
+ const r = Gk(s, o);
7768
7632
  if (typeof r?.value != "function" && (!r || r.writable === !0 || r.set !== void 0)) {
7769
7633
  const a = e[o], l = s[o];
7770
7634
  s[o] = a, i?.onAssigned && i.onAssigned(s, o, l, a);
@@ -7772,28 +7636,28 @@ function qa(s, e, t, i) {
7772
7636
  }
7773
7637
  delete s[lm];
7774
7638
  }
7775
- function Kk(s, e) {
7639
+ function Gk(s, e) {
7776
7640
  let t;
7777
7641
  do
7778
7642
  t = Object.getOwnPropertyDescriptor(s, e);
7779
7643
  while (!t && (s = Object.getPrototypeOf(s)));
7780
7644
  return t;
7781
7645
  }
7782
- const R0 = /* @__PURE__ */ Symbol("customVisibilityFlag");
7646
+ const E0 = /* @__PURE__ */ Symbol("customVisibilityFlag");
7783
7647
  function ys(s, e) {
7784
- s.layers[R0] = e;
7648
+ s.layers[E0] = e;
7785
7649
  }
7786
7650
  const F_ = /* @__PURE__ */ Symbol("DidPatchLayers");
7787
- function Zk() {
7651
+ function qk() {
7788
7652
  const s = Co.prototype;
7789
7653
  if (s[F_]) return;
7790
7654
  s[F_] = !0;
7791
7655
  const e = s.test;
7792
7656
  s.test = function(t) {
7793
- return this[R0] === !1 ? !1 : e.call(this, t);
7657
+ return this[E0] === !1 ? !1 : e.call(this, t);
7794
7658
  };
7795
7659
  }
7796
- Zk();
7660
+ qk();
7797
7661
  Object.defineProperty(ce.prototype, "fov", {
7798
7662
  get: function() {
7799
7663
  return this._fov;
@@ -7824,24 +7688,24 @@ Object.defineProperty(ce.prototype, "far", {
7824
7688
  },
7825
7689
  configurable: !0
7826
7690
  });
7827
- const T0 = /* @__PURE__ */ new Map();
7828
- function Jk(s, e) {
7691
+ const R0 = /* @__PURE__ */ new Map();
7692
+ function Xk(s, e) {
7829
7693
  if (!s) return;
7830
7694
  if (!e) {
7831
7695
  console.warn("No prototype found", s, s.prototype, s.constructor);
7832
7696
  return;
7833
7697
  }
7834
- const t = T0.get(e);
7698
+ const t = R0.get(e);
7835
7699
  t && t.apply(s);
7836
7700
  }
7837
- function eO(s) {
7838
- const e = tO(s.prototype);
7839
- T0.set(s, e);
7701
+ function Qk(s) {
7702
+ const e = Yk(s.prototype);
7703
+ R0.set(s, e);
7840
7704
  }
7841
- function tO(s) {
7842
- return new iO(s);
7705
+ function Yk(s) {
7706
+ return new Kk(s);
7843
7707
  }
7844
- class iO {
7708
+ class Kk {
7845
7709
  $symbol;
7846
7710
  extensions;
7847
7711
  descriptors;
@@ -7862,24 +7726,24 @@ class iO {
7862
7726
  }
7863
7727
  }
7864
7728
  }
7865
- const nO = x("debuggetcomponent"), U_ = () => nO || globalThis.NEEDLE_DEBUG_GETCOMPONENT === !0;
7866
- function sO(s) {
7729
+ const Zk = x("debuggetcomponent"), U_ = () => Zk || globalThis.NEEDLE_DEBUG_GETCOMPONENT === !0;
7730
+ function Jk(s) {
7867
7731
  return s == null || s.isObject3D ? s : s.object && s.object.isObject3D ? s.object : s;
7868
7732
  }
7869
- function A0(s, e) {
7733
+ function T0(s, e) {
7870
7734
  if (!s || !s.userData.components) return e;
7871
7735
  const t = s.userData.components.indexOf(e);
7872
- return t < 0 || (_g.dispatchComponentLifecycleEvent("removing-component", e), e.gameObject = null, s.userData.components.splice(t, 1)), e;
7736
+ return t < 0 || (yg.dispatchComponentLifecycleEvent("removing-component", e), e.gameObject = null, s.userData.components.splice(t, 1)), e;
7873
7737
  }
7874
7738
  function Mu(s, e, t) {
7875
7739
  const i = el(s, e);
7876
7740
  return i || Gn(s, e, t);
7877
7741
  }
7878
- const I0 = new Ut("addComponentIdProvider");
7742
+ const A0 = new Ut("addComponentIdProvider");
7879
7743
  function Ea(s, e, t = !0) {
7880
- s.userData || (s.userData = {}), s.userData.components || (s.userData.components = []), s.userData.components.push(e), e.gameObject = s, (e.guid === void 0 || e.guid === "invalid") && (e.guid = I0.generateUUID()), Sg(s), Mg(e, e.context);
7744
+ s.userData || (s.userData = {}), s.userData.components || (s.userData.components = []), s.userData.components.push(e), e.gameObject = s, (e.guid === void 0 || e.guid === "invalid") && (e.guid = A0.generateUUID()), xg(s), Mg(e, e.context);
7881
7745
  try {
7882
- t && e.__internalAwake && (fc(s), e.activeAndEnabled && e.__internalAwake()), _g.dispatchComponentLifecycleEvent("component-added", e);
7746
+ t && e.__internalAwake && (fc(s), e.activeAndEnabled && e.__internalAwake()), yg.dispatchComponentLifecycleEvent("component-added", e);
7883
7747
  } catch (i) {
7884
7748
  console.error(i);
7885
7749
  }
@@ -7901,9 +7765,9 @@ function Gn(s, e, t, i) {
7901
7765
  }
7902
7766
  if (s.userData || (s.userData = {}), !s.userData.components) s.userData.components = [];
7903
7767
  else if (s.userData.components.includes(e)) return e;
7904
- return s.userData.components.push(e), e.gameObject = s, (e.guid === void 0 || e.guid === "invalid") && (e.guid = I0.generateUUID()), t && e._internalInit(t), Mg(e, e.context), e;
7768
+ return s.userData.components.push(e), e.gameObject = s, (e.guid === void 0 || e.guid === "invalid") && (e.guid = A0.generateUUID()), t && e._internalInit(t), Mg(e, e.context), e;
7905
7769
  }
7906
- function oO(s) {
7770
+ function eO(s) {
7907
7771
  if (s.gameObject && s.gameObject.userData.components) {
7908
7772
  const e = s.gameObject.userData.components.indexOf(s);
7909
7773
  s.gameObject.userData.components.splice(e, 1);
@@ -7911,7 +7775,7 @@ function oO(s) {
7911
7775
  s.__internalDisable && s.__internalDisable(), gs(s, s.context ?? N.Current), s.destroy(), s.gameObject = null;
7912
7776
  }
7913
7777
  let z_ = !1;
7914
- function L0(s, e, t) {
7778
+ function I0(s, e, t) {
7915
7779
  if (s == null) return null;
7916
7780
  if (!s.isObject3D)
7917
7781
  return console.error("Object is not object3D"), null;
@@ -7935,11 +7799,11 @@ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects
7935
7799
  return t || null;
7936
7800
  }
7937
7801
  function el(s, e) {
7938
- const t = L0(s, e);
7802
+ const t = I0(s, e);
7939
7803
  return t ? Array.isArray(t) ? t[0] : t : null;
7940
7804
  }
7941
7805
  function Eu(s, e, t, i = !0) {
7942
- return t || (t = []), i && (t.length = 0), L0(s, e, t), t;
7806
+ return t || (t = []), i && (t.length = 0), I0(s, e, t), t;
7943
7807
  }
7944
7808
  function Ru(s, e, t = !1) {
7945
7809
  if (t === !1 && s[bo] === !1) return null;
@@ -7958,20 +7822,20 @@ function qc(s, e, t, i = !0) {
7958
7822
  qc(s.children[n], e, t, !1);
7959
7823
  return t;
7960
7824
  }
7961
- function Hd(s, e, t = !1) {
7825
+ function Vd(s, e, t = !1) {
7962
7826
  if (!s) return null;
7963
7827
  if (Array.isArray(s)) {
7964
7828
  for (let n = 0; n < s.length; n++) {
7965
- const o = sO(s[n]), r = Hd(o, e, t);
7829
+ const o = Jk(s[n]), r = Vd(o, e, t);
7966
7830
  if (r) return r;
7967
7831
  }
7968
7832
  return null;
7969
7833
  }
7970
7834
  const i = el(s, e);
7971
- return i || (s.parent ? Hd(s.parent, e, t) : null);
7835
+ return i || (s.parent ? Vd(s.parent, e, t) : null);
7972
7836
  }
7973
- function xg(s, e, t, i = !0) {
7974
- return t || (t = []), i && (t.length = 0), s ? (Eu(s, e, t, !1), s.parent ? xg(s.parent, e, t, !1) : t) : t;
7837
+ function wg(s, e, t, i = !0) {
7838
+ return t || (t = []), i && (t.length = 0), s ? (Eu(s, e, t, !1), s.parent ? wg(s.parent, e, t, !1) : t) : t;
7975
7839
  }
7976
7840
  function Xc(s, e = void 0, t = !0) {
7977
7841
  if (!s) return null;
@@ -7982,7 +7846,7 @@ function Xc(s, e = void 0, t = !0) {
7982
7846
  const n = Ru(i, s, t);
7983
7847
  return n || null;
7984
7848
  }
7985
- function rO(s, e, t = void 0) {
7849
+ function tO(s, e, t = void 0) {
7986
7850
  if (!s) return e ?? [];
7987
7851
  if (e || (e = []), e.length = 0, !t && (t = N.Current, !t))
7988
7852
  return console.error("Can not search object without any needle context or scene!!!"), e;
@@ -7990,21 +7854,21 @@ function rO(s, e, t = void 0) {
7990
7854
  const i = t;
7991
7855
  return i && qc(i, s, e, !1), e;
7992
7856
  }
7993
- function Sg(s) {
7994
- s && s.isObject3D === !0 && Jk(s, M);
7857
+ function xg(s) {
7858
+ s && s.isObject3D === !0 && Xk(s, M);
7995
7859
  }
7996
- if (Nd.experimentalSmartHierarchyUpdate) {
7860
+ if (zd.experimentalSmartHierarchyUpdate) {
7997
7861
  const s = M.prototype.add;
7998
7862
  M.prototype.add = function(...i) {
7999
- return qf(), s.apply(this, i);
7863
+ return Gf(), s.apply(this, i);
8000
7864
  };
8001
7865
  const e = M.prototype.attach;
8002
7866
  M.prototype.attach = function(...i) {
8003
- return qf(), e.apply(this, i);
7867
+ return Gf(), e.apply(this, i);
8004
7868
  };
8005
7869
  const t = M.prototype.remove;
8006
7870
  M.prototype.remove = function(...i) {
8007
- return qf(), t.apply(this, i);
7871
+ return Gf(), t.apply(this, i);
8008
7872
  };
8009
7873
  }
8010
7874
  M.prototype.SetActive = function(s) {
@@ -8023,7 +7887,7 @@ M.prototype.addNewComponent = function(s, e) {
8023
7887
  return Gn(this, s, e);
8024
7888
  };
8025
7889
  M.prototype.removeComponent = function(s) {
8026
- return A0(this, s);
7890
+ return T0(this, s);
8027
7891
  };
8028
7892
  M.prototype.getOrAddComponent = function(s, e) {
8029
7893
  return Mu(this, s, e);
@@ -8041,10 +7905,10 @@ M.prototype.getComponentsInChildren = function(s, e) {
8041
7905
  return qc(this, s, e);
8042
7906
  };
8043
7907
  M.prototype.getComponentInParent = function(s, e = !1) {
8044
- return Hd(this, s, e);
7908
+ return Vd(this, s, e);
8045
7909
  };
8046
7910
  M.prototype.getComponentsInParent = function(s, e) {
8047
- return xg(this, s, e);
7911
+ return wg(this, s, e);
8048
7912
  };
8049
7913
  Object.getOwnPropertyDescriptor(M.prototype, "activeSelf") || Object.defineProperty(M.prototype, "activeSelf", {
8050
7914
  get: function() {
@@ -8095,13 +7959,13 @@ Object.getOwnPropertyDescriptor(M.prototype, "worldScale") || Object.definePrope
8095
7959
  Ec(this, s);
8096
7960
  }
8097
7961
  });
8098
- const aO = new ee(), lO = new _(0, 0, 0), cO = new _(0, 1, 0);
7962
+ const iO = new ee(), nO = new _(0, 0, 0), sO = new _(0, 1, 0);
8099
7963
  Object.getOwnPropertyDescriptor(M.prototype, "worldForward") || Object.defineProperty(M.prototype, "worldForward", {
8100
7964
  get: function() {
8101
7965
  return z().set(0, 0, 1).applyQuaternion(ve(this));
8102
7966
  },
8103
7967
  set: function(s) {
8104
- const e = bi().setFromRotationMatrix(aO.lookAt(lO.set(0, 0, 0), s, cO.set(0, 1, 0)));
7968
+ const e = bi().setFromRotationMatrix(iO.lookAt(nO.set(0, 0, 0), s, sO.set(0, 1, 0)));
8105
7969
  this.worldQuaternion = e;
8106
7970
  }
8107
7971
  });
@@ -8124,7 +7988,7 @@ Object.getOwnPropertyDescriptor(M.prototype, "contains") || Object.definePropert
8124
7988
  return !1;
8125
7989
  }
8126
7990
  });
8127
- eO(M);
7991
+ Qk(M);
8128
7992
  const fd = x("debuggetcomponent"), xr = x("debuginstantiate");
8129
7993
  class es {
8130
7994
  idProvider;
@@ -8151,24 +8015,24 @@ function Qc(s) {
8151
8015
  function pd(s, e) {
8152
8016
  return typeof e == "number" && (e = e > 0.5), s.visible = e, s.visible;
8153
8017
  }
8154
- function hO(s) {
8155
- return s[bo] || Cg(s);
8018
+ function oO(s) {
8019
+ return s[bo] || Sg(s);
8156
8020
  }
8157
- function dO(s, e) {
8158
- s[y0] = e;
8021
+ function rO(s, e) {
8022
+ s[g0] = e;
8159
8023
  }
8160
- function Cg(s) {
8024
+ function Sg(s) {
8161
8025
  return _n.isUsingInstancing(s);
8162
8026
  }
8163
- function D0(s, e) {
8027
+ function L0(s, e) {
8164
8028
  return Mc(s, e, !0, !0);
8165
8029
  }
8166
- const j0 = /* @__PURE__ */ Symbol("isDestroyed");
8030
+ const D0 = /* @__PURE__ */ Symbol("isDestroyed");
8167
8031
  function Xa(s) {
8168
- return s[j0];
8032
+ return s[D0];
8169
8033
  }
8170
- function uO(s, e) {
8171
- s[j0] = e;
8034
+ function aO(s, e) {
8035
+ s[D0] = e;
8172
8036
  }
8173
8037
  const cm = /* @__PURE__ */ Symbol("isDontDestroy");
8174
8038
  function Al(s, e = !0) {
@@ -8180,7 +8044,7 @@ function Ki(s, e = !0, t = !1) {
8180
8044
  for (const i of md)
8181
8045
  i.gameObject = null, i.context = null;
8182
8046
  for (const i of gd)
8183
- uO(i, !0), t && Ae(i);
8047
+ aO(i, !0), t && Ae(i);
8184
8048
  gd.length = 0, md.length = 0;
8185
8049
  }
8186
8050
  function hm(s, e = !0, t = !0) {
@@ -8211,18 +8075,18 @@ function hm(s, e = !0, t = !0) {
8211
8075
  t && n.removeFromParent();
8212
8076
  }
8213
8077
  function Qa(s, e, t = !0) {
8214
- return B0(s, e, t);
8078
+ return j0(s, e, t);
8215
8079
  }
8216
- function* Pg(s, e, t = !1, i = 999, n = 0) {
8080
+ function* Cg(s, e, t = !1, i = 999, n = 0) {
8217
8081
  if (s?.userData.components && !(n > i)) {
8218
8082
  for (const o of s.userData.components)
8219
8083
  e && o?.isComponent === !0 && o instanceof e ? yield o : yield o;
8220
8084
  if (t === !0)
8221
8085
  for (const o of s.children)
8222
- yield* Pg(o, e, !0, i, n + 1);
8086
+ yield* Cg(o, e, !0, i, n + 1);
8223
8087
  }
8224
8088
  }
8225
- function B0(s, e, t, i = 0) {
8089
+ function j0(s, e, t, i = 0) {
8226
8090
  if (s) {
8227
8091
  if (s.isObject3D, i > 1e3) {
8228
8092
  console.warn("Failed to iterate components: too many levels");
@@ -8241,7 +8105,7 @@ function B0(s, e, t, i = 0) {
8241
8105
  for (let o = 0; o < s.children.length; o++) {
8242
8106
  const r = s.children[o];
8243
8107
  if (!r) continue;
8244
- const a = B0(r, e, t, n);
8108
+ const a = j0(r, e, t, n);
8245
8109
  if (a !== void 0) return a;
8246
8110
  }
8247
8111
  }
@@ -8254,8 +8118,8 @@ function Rr(s, e) {
8254
8118
  e != null && (e.x !== void 0 ? (t = new es(), t.position = e) : t = e);
8255
8119
  let i = N.Current;
8256
8120
  t?.context && (i = t.context), fd && i.alias && console.log("context", i.alias), t && !t.idProvider && (t.idProvider = new Ut(Date.now()));
8257
- const n = [], o = {}, r = {}, a = F0(i, s, t, n, o, r);
8258
- a && (mO(a, o), pO(r, o)), fd && (qp(s, !0), qp(a, !0));
8121
+ const n = [], o = {}, r = {}, a = B0(i, s, t, n, o, r);
8122
+ a && (hO(a, o), cO(r, o)), fd && (qp(s, !0), qp(a, !0));
8259
8123
  const l = {};
8260
8124
  if (t?.components !== !1) {
8261
8125
  for (const c in n) {
@@ -8266,11 +8130,11 @@ function Rr(s, e) {
8266
8130
  const h = n[c];
8267
8131
  h.resolveGuids && h.resolveGuids(l), h.enabled !== !1 && (h.enabled = !0);
8268
8132
  }
8269
- $d(i);
8133
+ Nd(i);
8270
8134
  }
8271
8135
  return a;
8272
8136
  }
8273
- function F0(s, e, t, i, n, o) {
8137
+ function B0(s, e, t, i, n, o) {
8274
8138
  if (!e || e[wi])
8275
8139
  return null;
8276
8140
  const r = e.userData;
@@ -8278,7 +8142,7 @@ function F0(s, e, t, i, n, o) {
8278
8142
  const a = e.children;
8279
8143
  e.children = [];
8280
8144
  const l = e.clone(!1);
8281
- if (Sg(l), e.userData = r, e.children = a, n[e.uuid] = { original: e, clone: l }, xr && console.log("ADD", e, l), e.type === "SkinnedMesh" && (o[e.uuid] = { original: e, clone: l }), t?.visible !== void 0 && (l.visible = t.visible), t?.idProvider) {
8145
+ if (xg(l), e.userData = r, e.children = a, n[e.uuid] = { original: e, clone: l }, xr && console.log("ADD", e, l), e.type === "SkinnedMesh" && (o[e.uuid] = { original: e, clone: l }), t?.visible !== void 0 && (l.visible = t.visible), t?.idProvider) {
8282
8146
  l.uuid = t.idProvider.generateUUID();
8283
8147
  const h = l;
8284
8148
  h && (h.guid = l.uuid);
@@ -8323,17 +8187,17 @@ function F0(s, e, t, i, n, o) {
8323
8187
  l.userData.components = d;
8324
8188
  for (let f = 0; f < h.length; f++) {
8325
8189
  const p = h[f], g = new p.constructor();
8326
- fO(p, g), p[cd] !== void 0 && (g[cd] = p[cd]), d.push(g), g.gameObject = l, i.push(g), n[p.guid] = { original: p, clone: g }, _g.dispatchComponentLifecycleEvent("component-added", g);
8190
+ lO(p, g), p[cd] !== void 0 && (g[cd] = p[cd]), d.push(g), g.gameObject = l, i.push(g), n[p.guid] = { original: p, clone: g }, yg.dispatchComponentLifecycleEvent("component-added", g);
8327
8191
  }
8328
8192
  }
8329
8193
  t && (t.position = void 0, t.rotation = void 0, t.scale = void 0, t.parent = void 0, t.visible = void 0);
8330
8194
  for (const h in e.children) {
8331
- const d = e.children[h], f = F0(s, d, t, i, n, o);
8195
+ const d = e.children[h], f = B0(s, d, t, i, n, o);
8332
8196
  f && (n[f.uuid] = { original: d, clone: f }, l.add(f));
8333
8197
  }
8334
8198
  return l;
8335
8199
  }
8336
- function fO(s, e, t) {
8200
+ function lO(s, e, t) {
8337
8201
  qa(e, s, void 0, {
8338
8202
  // onAssigned: (target, key, _oldValue, value) => {
8339
8203
  // if (value !== null && typeof value === "object") {
@@ -8363,7 +8227,7 @@ function fO(s, e, t) {
8363
8227
  // }
8364
8228
  });
8365
8229
  }
8366
- function pO(s, e) {
8230
+ function cO(s, e) {
8367
8231
  for (const t in s) {
8368
8232
  const i = s[t], n = i.original, o = n.skeleton, r = i.clone;
8369
8233
  if (!o) {
@@ -8384,7 +8248,7 @@ function pO(s, e) {
8384
8248
  i.skeleton.update(), i.bind(i.skeleton, i.bindMatrix), i.updateMatrixWorld(!0);
8385
8249
  }
8386
8250
  }
8387
- function mO(s, e) {
8251
+ function hO(s, e) {
8388
8252
  for (const t in e) {
8389
8253
  const n = e[t].clone;
8390
8254
  if (n?.isObject3D && n?.userData?.components)
@@ -8549,7 +8413,7 @@ var Ya;
8549
8413
  s.download = c;
8550
8414
  })(Ya || (Ya = {}));
8551
8415
  const Gs = x("debugaddressables");
8552
- class gO {
8416
+ class dO {
8553
8417
  _context;
8554
8418
  _assetReferences = {};
8555
8419
  /** @internal */
@@ -8584,7 +8448,7 @@ class gO {
8584
8448
  e.url && delete this._assetReferences[e.url];
8585
8449
  }
8586
8450
  }
8587
- const Yf = /* @__PURE__ */ Symbol("assetReference");
8451
+ const Qf = /* @__PURE__ */ Symbol("assetReference");
8588
8452
  class ne {
8589
8453
  /**
8590
8454
  * Get an AssetReference for a URL to be easily loaded.
@@ -8672,7 +8536,7 @@ class ne {
8672
8536
  i >= 0 && (this._urlName = this._urlName.substring(0, i));
8673
8537
  } else
8674
8538
  this._urlName = this._url;
8675
- Ik(this._url, this.onResolvePrefab.bind(this));
8539
+ Mk(this._url, this.onResolvePrefab.bind(this));
8676
8540
  }
8677
8541
  async onResolvePrefab(e) {
8678
8542
  return e === this.url && (this.mustLoad && await this.loadAssetAsync(), this.asset) ? this.asset : null;
@@ -8719,7 +8583,7 @@ class ne {
8719
8583
  });
8720
8584
  this._loadingPromise.finally(() => this._loadingPromise = null);
8721
8585
  const i = await this._loadingPromise;
8722
- return this._progressListeners.length = 0, this._glbRoot = this.tryGetActualGameObjectRoot(i), i ? (i[Yf] = this, this._glbRoot && (this._glbRoot[Yf] = this), this.asset && (this.asset[Yf] = this), $d(t), i.scene !== void 0 && (this._rawAsset = i), this.asset) : null;
8586
+ return this._progressListeners.length = 0, this._glbRoot = this.tryGetActualGameObjectRoot(i), i ? (i[Qf] = this, this._glbRoot && (this._glbRoot[Qf] = this), this.asset && (this.asset[Qf] = this), Nd(t), i.scene !== void 0 && (this._rawAsset = i), this.asset) : null;
8723
8587
  }
8724
8588
  /** loads and returns a new instance of `asset` */
8725
8589
  instantiate(e) {
@@ -8753,7 +8617,7 @@ class ne {
8753
8617
  o.context = n;
8754
8618
  const a = this.asset;
8755
8619
  a.guid = this.url;
8756
- const l = S0(a, o, void 0, i);
8620
+ const l = x0(a, o, void 0, i);
8757
8621
  if (l)
8758
8622
  return l;
8759
8623
  } else {
@@ -8787,7 +8651,7 @@ class ne {
8787
8651
  return null;
8788
8652
  }
8789
8653
  }
8790
- class yO extends nn {
8654
+ class uO extends nn {
8791
8655
  constructor() {
8792
8656
  super([ne], "AssetReferenceSerializer");
8793
8657
  }
@@ -8811,8 +8675,8 @@ class yO extends nn {
8811
8675
  return null;
8812
8676
  }
8813
8677
  }
8814
- new yO();
8815
- const _O = Promise.resolve(null);
8678
+ new uO();
8679
+ const fO = Promise.resolve(null);
8816
8680
  class Ra {
8817
8681
  static imageReferences = /* @__PURE__ */ new Map();
8818
8682
  static getOrCreate(e) {
@@ -8834,7 +8698,7 @@ class Ra {
8834
8698
  }
8835
8699
  loader = null;
8836
8700
  createTexture() {
8837
- return this.url ? (this.loader || (this.loader = new Or()), this.loader.setCrossOrigin("anonymous"), this.loader.loadAsync(this.url).then((e) => (e && !e.name?.length && (e.name = this.url.split("/").pop() ?? this.url), e))) : (console.error("Can not load texture without url"), _O);
8701
+ return this.url ? (this.loader || (this.loader = new Or()), this.loader.setCrossOrigin("anonymous"), this.loader.loadAsync(this.url).then((e) => (e && !e.name?.length && (e.name = this.url.split("/").pop() ?? this.url), e))) : (console.error("Can not load texture without url"), fO);
8838
8702
  }
8839
8703
  /** Loads the bitmap data of the image */
8840
8704
  getBitmap() {
@@ -8848,7 +8712,7 @@ class Ra {
8848
8712
  }), this._bitmap);
8849
8713
  }
8850
8714
  }
8851
- class bO extends nn {
8715
+ class pO extends nn {
8852
8716
  constructor() {
8853
8717
  super([Ra], "ImageReferenceSerializer");
8854
8718
  }
@@ -8862,7 +8726,7 @@ class bO extends nn {
8862
8726
  }
8863
8727
  }
8864
8728
  }
8865
- new bO();
8729
+ new pO();
8866
8730
  class Ta {
8867
8731
  static cache = /* @__PURE__ */ new Map();
8868
8732
  static getOrCreate(e) {
@@ -8888,7 +8752,7 @@ class Ta {
8888
8752
  this.url = e;
8889
8753
  }
8890
8754
  }
8891
- class vO extends nn {
8755
+ class mO extends nn {
8892
8756
  constructor() {
8893
8757
  super([Ta], "FileReferenceSerializer");
8894
8758
  }
@@ -8902,8 +8766,8 @@ class vO extends nn {
8902
8766
  }
8903
8767
  }
8904
8768
  }
8905
- new vO();
8906
- class wO {
8769
+ new mO();
8770
+ class gO {
8907
8771
  context;
8908
8772
  mixers = [];
8909
8773
  constructor(e) {
@@ -9057,23 +8921,23 @@ class Ls {
9057
8921
  return new Oi("scale", r[r.length - 1], [l]);
9058
8922
  }
9059
8923
  }
9060
- function* U0(s, e = null) {
8924
+ function* F0(s, e = null) {
9061
8925
  const t = e ? e.time : N.Current.time, i = t.time;
9062
8926
  for (; t.time - i < s; )
9063
8927
  yield;
9064
8928
  }
9065
- function* $D(s) {
8929
+ function* ND(s) {
9066
8930
  for (let e = 0; e < s; e++)
9067
8931
  yield;
9068
8932
  }
9069
- function* xO(s) {
8933
+ function* yO(s) {
9070
8934
  let e = !0;
9071
8935
  for (s.then(() => e = !1), s.catch(() => e = !1); e; )
9072
8936
  yield;
9073
8937
  }
9074
8938
  const $_ = "NEEDLE_lightmaps", ta = x("debuglightmapsextension") || x("debuglightmaps");
9075
8939
  var Un = /* @__PURE__ */ ((s) => (s[s.Lightmap = 0] = "Lightmap", s[s.Skybox = 1] = "Skybox", s[s.Reflection = 2] = "Reflection", s))(Un || {});
9076
- class SO {
8940
+ class _O {
9077
8941
  get name() {
9078
8942
  return $_;
9079
8943
  }
@@ -9097,7 +8961,7 @@ class SO {
9097
8961
  let h = null;
9098
8962
  if (c.pointer.startsWith("/textures/") || /** legacy support e.g. SOC */
9099
8963
  c.pointer.startsWith("textures/"))
9100
- ta && console.log("Load texture from gltf", c.pointer), h = wg(this.parser, c.pointer).then((d) => this.resolveTexture(c, d));
8964
+ ta && console.log("Load texture from gltf", c.pointer), h = vg(this.parser, c.pointer).then((d) => this.resolveTexture(c, d));
9101
8965
  else if (typeof c.pointer == "string") {
9102
8966
  ta && console.log("Load texture from path", c.pointer);
9103
8967
  const d = Eo(this.source, c.pointer);
@@ -9119,7 +8983,7 @@ class SO {
9119
8983
  }
9120
8984
  }
9121
8985
  const ia = !!x("debuglightmaps");
9122
- class CO {
8986
+ class bO {
9123
8987
  context;
9124
8988
  map = /* @__PURE__ */ new Map();
9125
8989
  clear() {
@@ -9131,7 +8995,7 @@ class CO {
9131
8995
  registerTexture(e, t, i, n) {
9132
8996
  ia && console.log("Registering ", Un[t] + ' "' + e + '"', i), this.map.has(e) || this.map.set(e, /* @__PURE__ */ new Map());
9133
8997
  const o = this.map.get(e), r = o?.get(t) ?? [];
9134
- r.length < n && (r.length = n + 1), yk(i, !1), r[n] = i, o?.set(t, r);
8998
+ r.length < n && (r.length = n + 1), uk(i, !1), r[n] = i, o?.set(t, r);
9135
8999
  }
9136
9000
  tryGetLightmap(e, t = 0) {
9137
9001
  return this.tryGet(e, Un.Lightmap, t);
@@ -9179,8 +9043,8 @@ irradiance += 0.;
9179
9043
  irradiance += getLightProbeIrradiance( lightProbe, geometry.normal );
9180
9044
  #endif`
9181
9045
  );
9182
- const Kf = x("debugprogressive"), Dh = new Pi(), jh = new mu();
9183
- class PO {
9046
+ const Yf = x("debugprogressive"), Dh = new Pi(), jh = new mu();
9047
+ class vO {
9184
9048
  /** The type of the @needle-tools/gltf-progressive LODsManager - can be used to set static settings */
9185
9049
  static GLTF_PROGRESSIVE_LODSMANAGER_TYPE = Zo;
9186
9050
  context;
@@ -9226,7 +9090,7 @@ class PO {
9226
9090
  }
9227
9091
  /** @internal */
9228
9092
  onAfterUpdatedLOD(e, t, i, n, o) {
9229
- Kf && this.onRenderDebug(i, n, o);
9093
+ Yf && this.onRenderDebug(i, n, o);
9230
9094
  }
9231
9095
  onRenderDebug(e, t, i) {
9232
9096
  if (!t.geometry || !We.hasLODLevelAvailable(t.geometry) && !We.hasLODLevelAvailable(t.material)) return;
@@ -9234,7 +9098,7 @@ class PO {
9234
9098
  if (!n) return;
9235
9099
  let o = i.mesh_lod;
9236
9100
  const r = i.mesh_lod != n.lastLodLevel_Mesh || i.texture_lod != n.lastLodLevel_Texture;
9237
- if (Kf && t.geometry.boundingSphere) {
9101
+ if (Yf && t.geometry.boundingSphere) {
9238
9102
  const a = t.geometry.boundingSphere;
9239
9103
  jh.copy(a), jh.applyMatrix4(t.matrixWorld);
9240
9104
  const l = jh.center, c = jh.radius, h = ["#76c43e", "#bcc43e", "#c4ac3e", "#c4673e", "#ff3e3e"];
@@ -9252,7 +9116,7 @@ class PO {
9252
9116
  const g = f ? f[o]?.density : -1;
9253
9117
  let y = "LOD " + i.mesh_lod + `
9254
9118
  TEX ` + i.texture_lod;
9255
- if (Kf == "density" && (y += `
9119
+ if (Yf == "density" && (y += `
9256
9120
  ` + d + ` tris
9257
9121
  ` + (g / n.lastScreenCoverage).toFixed(0) + ` dens
9258
9122
  ` + (n.lastScreenCoverage * 100).toFixed(1) + `% cov
@@ -9265,9 +9129,9 @@ TEX ` + i.texture_lod;
9265
9129
  }
9266
9130
  }
9267
9131
  }
9268
- const kO = x("debugplayerview");
9132
+ const wO = x("debugplayerview");
9269
9133
  var vo = /* @__PURE__ */ ((s) => (s.Browser = "browser", s.Headset = "headset", s.Handheld = "handheld", s))(vo || {});
9270
- class OO {
9134
+ class xO {
9271
9135
  userId;
9272
9136
  context;
9273
9137
  viewDevice = "browser";
@@ -9286,7 +9150,7 @@ class OO {
9286
9150
  this.userId = e, this.context = t;
9287
9151
  }
9288
9152
  }
9289
- class MO {
9153
+ class SO {
9290
9154
  context;
9291
9155
  playerViews = /* @__PURE__ */ new Map();
9292
9156
  constructor(e) {
@@ -9294,7 +9158,7 @@ class MO {
9294
9158
  }
9295
9159
  setPlayerView(e, t, i) {
9296
9160
  let n = this.playerViews.get(e);
9297
- n || (n = new OO(e, this.context), this.playerViews.set(e, n)), n.viewDevice = i, n.currentObject = t, n.removed = !1;
9161
+ n || (n = new xO(e, this.context), this.playerViews.set(e, n)), n.viewDevice = i, n.currentObject = t, n.removed = !1;
9298
9162
  }
9299
9163
  getPlayerView(e) {
9300
9164
  if (!e) return;
@@ -9306,7 +9170,7 @@ class MO {
9306
9170
  }
9307
9171
  removePlayerView(e, t) {
9308
9172
  const i = this.playerViews.get(e);
9309
- i?.viewDevice === t && (kO && console.log("REMOVE", e), i.removed = !0, this.playerViews.delete(e));
9173
+ i?.viewDevice === t && (wO && console.log("REMOVE", e), i.removed = !0, this.playerViews.delete(e));
9310
9174
  }
9311
9175
  }
9312
9176
  new Ym();
@@ -9315,8 +9179,8 @@ Yc[0] = 255;
9315
9179
  Yc[1] = 255;
9316
9180
  Yc[2] = 255;
9317
9181
  Yc[3] = 255;
9318
- const EO = new Km(Yc, 1, 1, gu);
9319
- function kg(s, e = 1) {
9182
+ const CO = new Km(Yc, 1, 1, gu);
9183
+ function Pg(s, e = 1) {
9320
9184
  const t = "alpha" in s, i = e * e, n = new Uint8Array(4 * i), o = Math.floor(s.r * 255), r = Math.floor(s.g * 255), a = Math.floor(s.b * 255);
9321
9185
  for (let c = 0; c < i; c++) {
9322
9186
  const h = c * 4;
@@ -9325,7 +9189,7 @@ function kg(s, e = 1) {
9325
9189
  const l = new Km(n, e, e);
9326
9190
  return l.needsUpdate = !0, l;
9327
9191
  }
9328
- function RO(s, e, t, i = 1, n = 3) {
9192
+ function PO(s, e, t, i = 1, n = 3) {
9329
9193
  const r = i * n, a = [s, e, t], l = a.length, c = new Uint8Array(4 * l * r), h = new re();
9330
9194
  for (let f = 0; f < n; f++) {
9331
9195
  const p = Math.floor(f / n * l), g = F.clamp(p + 1, 0, l - 1), y = a[p], m = a[g], v = f / n * l % 1;
@@ -9339,7 +9203,7 @@ function RO(s, e, t, i = 1, n = 3) {
9339
9203
  const d = new Km(c, i, n);
9340
9204
  return d.needsUpdate = !0, d;
9341
9205
  }
9342
- function Gd(s, e) {
9206
+ function Hd(s, e) {
9343
9207
  const t = s.elements;
9344
9208
  e || (e = []), e.length = 0;
9345
9209
  for (let i = 0; i < 16; i += 4) {
@@ -9348,16 +9212,16 @@ function Gd(s, e) {
9348
9212
  }
9349
9213
  return e;
9350
9214
  }
9351
- const Zf = [], W_ = [];
9352
- function TO(s, e) {
9353
- if (Zf.length === 0)
9354
- for (let t = 0; t < 27; t++) Zf.push(0);
9355
- e || (e = Zf);
9215
+ const Kf = [], W_ = [];
9216
+ function kO(s, e) {
9217
+ if (Kf.length === 0)
9218
+ for (let t = 0; t < 27; t++) Kf.push(0);
9219
+ e || (e = Kf);
9356
9220
  for (let t = 0; t < 27; t++)
9357
9221
  W_[t] = e[t];
9358
9222
  e = W_, s.unity_SHAr = { value: new ge(e[9], e[3], e[6], e[0]) }, s.unity_SHBr = { value: new ge(e[12], e[15], e[18], e[21]) }, s.unity_SHAg = { value: new ge(e[10], e[4], e[7], e[1]) }, s.unity_SHBg = { value: new ge(e[13], e[16], e[19], e[22]) }, s.unity_SHAb = { value: new ge(e[11], e[5], e[8], e[2]) }, s.unity_SHBb = { value: new ge(e[14], e[17], e[20], e[23]) }, s.unity_SHC = { value: new ge(e[24], e[25], e[26], 1) };
9359
9223
  }
9360
- class AO {
9224
+ class OO {
9361
9225
  vertexShader;
9362
9226
  fragmentShader;
9363
9227
  technique;
@@ -9365,7 +9229,7 @@ class AO {
9365
9229
  this.vertexShader = e, this.fragmentShader = t, this.technique = i;
9366
9230
  }
9367
9231
  }
9368
- async function IO(s, e) {
9232
+ async function MO(s, e) {
9369
9233
  if (!s)
9370
9234
  return console.error("Can not find technique: no shader data"), null;
9371
9235
  const t = s.programs[e], i = t.vertexShader, n = t.fragmentShader;
@@ -9374,7 +9238,7 @@ async function IO(s, e) {
9374
9238
  if (o.uri && r.uri || o.code && r.code) {
9375
9239
  if (!o.code && o.uri && await V_(o), !r.code && r.uri && await V_(r), !o.code || !r.code) return null;
9376
9240
  const a = s.techniques[e];
9377
- return new AO(o.code, r.code, a);
9241
+ return new OO(o.code, r.code, a);
9378
9242
  }
9379
9243
  }
9380
9244
  return console.error("Shader technique not found", e), null;
@@ -9386,16 +9250,16 @@ async function V_(s) {
9386
9250
  const i = await new Ym().loadAsync(e);
9387
9251
  s.code = i.toString();
9388
9252
  } else
9389
- s.code = LO(s.uri);
9253
+ s.code = EO(s.uri);
9390
9254
  }
9391
- function LO(s) {
9255
+ function EO(s) {
9392
9256
  return decodeURIComponent(Array.prototype.map.call(atob(s), function(e) {
9393
9257
  return "%" + ("00" + e.charCodeAt(0).toString(16)).slice(-2);
9394
9258
  }).join(""));
9395
9259
  }
9396
9260
  const ln = x("debugenvlight");
9397
9261
  var pc = /* @__PURE__ */ ((s) => (s[s.Skybox = 0] = "Skybox", s[s.Trilight = 1] = "Trilight", s[s.Flat = 3] = "Flat", s[s.Custom = 4] = "Custom", s))(pc || {}), dm = /* @__PURE__ */ ((s) => (s[s.Skybox = 0] = "Skybox", s[s.Custom = 1] = "Custom", s))(dm || {});
9398
- class DO {
9262
+ class RO {
9399
9263
  context;
9400
9264
  constructor(e) {
9401
9265
  this.context = e, this.context.pre_update_callbacks.push(this.preUpdate.bind(this));
@@ -9482,7 +9346,7 @@ class DO {
9482
9346
  /** @internal */
9483
9347
  internalRegisterReflection(e, t) {
9484
9348
  ln && console.log("Register reflection", e, t);
9485
- const i = new jO(this.context, t, 1);
9349
+ const i = new TO(this.context, t, 1);
9486
9350
  this._lighting[e] = i;
9487
9351
  }
9488
9352
  /** @internal */
@@ -9509,12 +9373,12 @@ class DO {
9509
9373
  switch (t?.ambientMode) {
9510
9374
  case 1:
9511
9375
  if (t.ambientTrilight) {
9512
- const i = t.ambientTrilight, n = RO(i[0], i[1], i[2], 64, 64);
9376
+ const i = t.ambientTrilight, n = PO(i[0], i[1], i[2], 64, 64);
9513
9377
  return n.colorSpace = As, n.mapping = Hn, this.context.scene.environment = n, n;
9514
9378
  } else console.error("Missing ambient trilight", t.sourceId);
9515
9379
  case 3:
9516
9380
  if (t.ambientLight) {
9517
- const i = kg(t.ambientLight, 64);
9381
+ const i = Pg(t.ambientLight, 64);
9518
9382
  return i.colorSpace = As, i.mapping = Hn, this.context.scene.environment = i, i;
9519
9383
  } else console.error("Missing ambientlight", t.sourceId);
9520
9384
  }
@@ -9532,7 +9396,7 @@ class DO {
9532
9396
  }
9533
9397
  _lighting = {};
9534
9398
  }
9535
- class jO {
9399
+ class TO {
9536
9400
  get Source() {
9537
9401
  return this._source;
9538
9402
  }
@@ -9594,7 +9458,7 @@ class jO {
9594
9458
  const H_ = x("timescale");
9595
9459
  let um = 1;
9596
9460
  typeof H_ == "number" && (um = H_);
9597
- class BO {
9461
+ class AO {
9598
9462
  /** The time in seconds since the start of Needle Engine. */
9599
9463
  get time() {
9600
9464
  return this._time;
@@ -9678,11 +9542,11 @@ class BO {
9678
9542
  }
9679
9543
  }
9680
9544
  let G_ = !1;
9681
- function z0(s) {
9682
- G_ || (G_ = !0, FO(), UO());
9545
+ function U0(s) {
9546
+ G_ || (G_ = !0, IO(), LO());
9683
9547
  }
9684
- z0();
9685
- function FO() {
9548
+ U0();
9549
+ function IO() {
9686
9550
  const s = `
9687
9551
  float startCompression = 0.8;
9688
9552
  float desaturation = 0.5;
@@ -9710,7 +9574,7 @@ vec3 NeutralToneMapping( vec3 color ) {
9710
9574
  Zt.tonemapping_pars_fragment = Zt.tonemapping_pars_fragment.replace(o, s);
9711
9575
  } else L() && console.error("Couldn't find NeutralToneMapping in ShaderChunk.tonemapping_pars_fragment");
9712
9576
  }
9713
- function UO() {
9577
+ function LO() {
9714
9578
  const s = `
9715
9579
  // 0: Default, 1: Golden, 2: Punchy
9716
9580
  #define AGX_LOOK 0
@@ -9828,7 +9692,7 @@ vec3 AgXToneMapping( vec3 color ) {
9828
9692
  Zt.tonemapping_pars_fragment = Zt.tonemapping_pars_fragment.replace(o, s);
9829
9693
  } else L() && console.error("Couldn't find AgXToneMapping in ShaderChunk.tonemapping_pars_fragment");
9830
9694
  }
9831
- function N0(s) {
9695
+ function z0(s) {
9832
9696
  if (typeof s == "string")
9833
9697
  switch (s = s.toLowerCase(), s) {
9834
9698
  case "none":
@@ -9863,7 +9727,7 @@ var mc;
9863
9727
  }
9864
9728
  s.getAttributeAndCheckFalsey = i;
9865
9729
  })(mc || (mc = {}));
9866
- async function zO(s) {
9730
+ async function DO(s) {
9867
9731
  if (!globalThis.QRCode) {
9868
9732
  const l = "https://cdn.jsdelivr.net/gh/davidshimjs/qrcodejs@gh-pages/qrcode.min.js";
9869
9733
  let c = document.head.querySelector(`script[src="${l}"]`);
@@ -9885,7 +9749,7 @@ async function zO(s) {
9885
9749
  n < 40 ? r = Math.floor(n / 4) / n : r = Math.floor(n / 6) / n;
9886
9750
  const a = Math.floor(n / 20) / n;
9887
9751
  try {
9888
- const l = await NO(o, { showLogo: s.showLogo, logoSize: r, logoPadding: a }).catch((c) => {
9752
+ const l = await jO(o, { showLogo: s.showLogo, logoSize: r, logoPadding: a }).catch((c) => {
9889
9753
  });
9890
9754
  l && (t.innerHTML = "", t.append(l));
9891
9755
  } catch {
@@ -9904,7 +9768,7 @@ async function zO(s) {
9904
9768
  }
9905
9769
  return t;
9906
9770
  }
9907
- async function NO(s, e) {
9771
+ async function jO(s, e) {
9908
9772
  if (!s) return;
9909
9773
  const t = 8, i = 20, n = e.logoPadding || 1 / 32, o = "transparent", r = 0, a = new Image(), l = document.querySelector("needle-engine");
9910
9774
  l || console.debug("[QR Code] No web component found");
@@ -9947,16 +9811,16 @@ async function NO(s, e) {
9947
9811
  const fm = "Material Symbols Outlined";
9948
9812
  function Ft(s) {
9949
9813
  const e = document.createElement("span");
9950
- return e.style.maxWidth = "48px", e.style.maxHeight = "48px", e.style.overflow = "hidden", e.classList.add("material-symbols-outlined", "notranslate"), e.setAttribute("translate", "no"), e.innerText = s, e.style.visibility = "hidden", e.style.userSelect = "none", e.setAttribute("role", "img"), e.setAttribute("aria-label", s + " icon"), e.setAttribute("aria-hidden", "true"), Og(fm).then((t) => {
9814
+ return e.style.maxWidth = "48px", e.style.maxHeight = "48px", e.style.overflow = "hidden", e.classList.add("material-symbols-outlined", "notranslate"), e.setAttribute("translate", "no"), e.innerText = s, e.style.visibility = "hidden", e.style.userSelect = "none", e.setAttribute("role", "img"), e.setAttribute("aria-label", s + " icon"), e.setAttribute("aria-hidden", "true"), kg(fm).then((t) => {
9951
9815
  t ? e.style.visibility = "" : s === "more_vert" ? (e.style.visibility = "", e.innerText = "More") : e.style.display = "none";
9952
9816
  }), e;
9953
9817
  }
9954
- function $O(s) {
9818
+ function BO(s) {
9955
9819
  return s.classList?.contains("material-symbols-outlined") || !1;
9956
9820
  }
9957
9821
  const Bh = /* @__PURE__ */ new Map();
9958
9822
  async function q_(s) {
9959
- if (await Og(fm), Bh.has(s))
9823
+ if (await kg(fm), Bh.has(s))
9960
9824
  return Bh.get(s);
9961
9825
  const e = document.createElement("canvas"), t = 48;
9962
9826
  e.width = t, e.height = t;
@@ -9968,15 +9832,15 @@ async function q_(s) {
9968
9832
  }
9969
9833
  return Bh.set(s, null), null;
9970
9834
  }
9971
- const Jf = /* @__PURE__ */ new Map();
9972
- async function Og(s, e = 5, t = 0) {
9835
+ const Zf = /* @__PURE__ */ new Map();
9836
+ async function kg(s, e = 5, t = 0) {
9973
9837
  document.fonts.check(`1em '${s}'`) || await document.fonts.ready;
9974
- const n = Jf.get(s) || document.fonts.load(`1em '${s}'`).then((r) => r?.length > 0).finally(() => {
9975
- Jf.delete(s);
9838
+ const n = Zf.get(s) || document.fonts.load(`1em '${s}'`).then((r) => r?.length > 0).finally(() => {
9839
+ Zf.delete(s);
9976
9840
  });
9977
- return Jf.set(s, n), await n ? !0 : t < e ? new Promise((r) => {
9841
+ return Zf.set(s, n), await n ? !0 : t < e ? new Promise((r) => {
9978
9842
  setTimeout(() => {
9979
- r(Og(s, e, t + 1));
9843
+ r(kg(s, e, t + 1));
9980
9844
  }, 1e3);
9981
9845
  }) : !1;
9982
9846
  }
@@ -10103,7 +9967,7 @@ class pn {
10103
9967
  n.style.pointerEvents = "none", n.style.transition = "opacity 0.2s", n.style.opacity = "0", setTimeout(() => n.parentNode?.removeChild(n), 500), window.removeEventListener("click", a), window.removeEventListener("resize", a), window.removeEventListener("scroll", a);
10104
9968
  }
10105
9969
  async function l() {
10106
- const h = await zO({
9970
+ const h = await DO({
10107
9971
  text: t.qrButtonUrl,
10108
9972
  width: 200,
10109
9973
  height: 200
@@ -10115,14 +9979,14 @@ class pn {
10115
9979
  }, { once: !0 }), i;
10116
9980
  }
10117
9981
  hideElementDuringXRSession(e) {
10118
- fg((t) => {
9982
+ ug((t) => {
10119
9983
  e["previous-display"] = e.style.display, e.style.display = "none";
10120
- }), o0((t) => {
9984
+ }), s0((t) => {
10121
9985
  e["previous-display"] != null && (e.style.display = e["previous-display"]);
10122
9986
  });
10123
9987
  }
10124
9988
  }
10125
- function qd(s, e) {
9989
+ function Gd(s, e) {
10126
9990
  const t = e?.element || document.head, i = Array.from(t.querySelectorAll(`link[rel=stylesheet][href*='${s}']`));
10127
9991
  if (i.length <= 0) {
10128
9992
  const n = document.createElement("link");
@@ -10132,16 +9996,16 @@ function qd(s, e) {
10132
9996
  for (let n = 0; n < i.length; n++)
10133
9997
  e?.loadedCallback && i[n].addEventListener("load", e.loadedCallback);
10134
9998
  }
10135
- function $0() {
10136
- qd("https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap");
9999
+ function N0() {
10000
+ Gd("https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap");
10137
10001
  }
10138
- const pm = "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0&display=block", Xd = "needle-logo-element";
10139
- class W0 extends HTMLElement {
10002
+ const pm = "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0&display=block", qd = "needle-logo-element";
10003
+ class $0 extends HTMLElement {
10140
10004
  static get elementName() {
10141
- return Xd;
10005
+ return qd;
10142
10006
  }
10143
10007
  static create() {
10144
- return document.createElement(Xd);
10008
+ return document.createElement(qd);
10145
10009
  }
10146
10010
  constructor() {
10147
10011
  super(), this._root = this.attachShadow({ mode: "closed" });
@@ -10207,9 +10071,9 @@ class W0 extends HTMLElement {
10207
10071
  e === "full" ? (this.logoElement.src = x_, this.logoElement.classList.remove("with-text"), this.logoElement.classList.remove("compact")) : (this.logoElement.src = Ha, this.logoElement.classList.add("with-text"), this.logoElement.classList.add("compact"));
10208
10072
  }
10209
10073
  }
10210
- customElements.get(Xd) || customElements.define(Xd, W0);
10211
- const ep = x("debugspatialmenu");
10212
- class WO {
10074
+ customElements.get(qd) || customElements.define(qd, $0);
10075
+ const Jf = x("debugspatialmenu");
10076
+ class FO {
10213
10077
  _context;
10214
10078
  needleMenu;
10215
10079
  htmlButtonsMap = /* @__PURE__ */ new Map();
@@ -10218,7 +10082,7 @@ class WO {
10218
10082
  this._context = e, this._context.pre_render_callbacks.push(this.preRender), this.needleMenu = t;
10219
10083
  const i = this.needleMenu.shadowRoot?.querySelector(".options");
10220
10084
  i ? new MutationObserver((o) => {
10221
- if (this.enabled && !(this._context.isInXR == !1 && !ep))
10085
+ if (this.enabled && !(this._context.isInXR == !1 && !Jf))
10222
10086
  for (const r of o)
10223
10087
  r.type === "childList" && (r.addedNodes.forEach((a) => {
10224
10088
  this.createButtonFromHTMLNode(a);
@@ -10257,7 +10121,7 @@ class WO {
10257
10121
  this.menu?.removeFromParent();
10258
10122
  return;
10259
10123
  }
10260
- ep && D.isDesktop() && this.updateMenu();
10124
+ Jf && D.isDesktop() && this.updateMenu();
10261
10125
  const e = this._context.xr;
10262
10126
  if (!(e?.running && (e?.isPassThrough || e?.isVR))) {
10263
10127
  this._wasInXR && (this._wasInXR = !1, this.onExitXR());
@@ -10295,7 +10159,7 @@ class WO {
10295
10159
  const t = this._context.mainCamera, n = this._context.xr?.rigScale || 1;
10296
10160
  if (t) {
10297
10161
  const o = t.worldPosition, r = t.worldForward.multiplyScalar(-1), a = r.y > 0.6, l = r.y > 0.4, c = (e.visible ? l : a) || this.userRequestedMenu, h = !e.visible && c;
10298
- e.visible = c || D.isDesktop() && ep, r.multiplyScalar(3 * n), o.add(r), h && (e.position.copy(this._menuTarget.position), e.position.y += 0.25, this._menuTarget.position.copy(e.position), this.positionFilter.reset(e.position), e.quaternion.copy(this._menuTarget.quaternion), this.markDirty());
10162
+ e.visible = c || D.isDesktop() && Jf, r.multiplyScalar(3 * n), o.add(r), h && (e.position.copy(this._menuTarget.position), e.position.y += 0.25, this._menuTarget.position.copy(e.position), this.positionFilter.reset(e.position), e.quaternion.copy(this._menuTarget.quaternion), this.markDirty());
10299
10163
  const f = this._menuTarget.position.distanceTo(o);
10300
10164
  (h || f > 1.5 * n) && (this.ensureRenderOnTop(this.menu), this._menuTarget.position.copy(o), this._context.scene.add(this._menuTarget), Su(this._menuTarget, this._context.mainCamera, !0, !0), this._menuTarget.removeFromParent()), this.positionFilter.filter(this._menuTarget.position, e.position, this._context.time.time), this.menu?.quaternion.slerp(this._menuTarget.quaternion, this._context.time.deltaTime * 5), this.menu?.scale.setScalar(n);
10301
10165
  }
@@ -10424,10 +10288,10 @@ class WO {
10424
10288
  });
10425
10289
  i.add(n), i["needle:use_eventsystem"] = !0;
10426
10290
  const o = new X_(this._context, () => t.click());
10427
- return Ea(i, o), new VO(this, e, t, i, n);
10291
+ return Ea(i, o), new UO(this, e, t, i, n);
10428
10292
  }
10429
10293
  }
10430
- class VO {
10294
+ class UO {
10431
10295
  menu;
10432
10296
  root;
10433
10297
  htmlbutton;
@@ -10454,7 +10318,7 @@ class VO {
10454
10318
  updateText() {
10455
10319
  let e = "", t = "";
10456
10320
  this.htmlbutton.childNodes.forEach((i) => {
10457
- i.nodeType === Node.TEXT_NODE ? e += i.textContent : i instanceof HTMLElement && $O(i) && i.textContent && (t = i.textContent);
10321
+ i.nodeType === Node.TEXT_NODE ? e += i.textContent : i instanceof HTMLElement && BO(i) && i.textContent && (t = i.textContent);
10458
10322
  }), this._lastText !== e && (this._lastText = e, this.spatialText.name = e, this.spatialText.set({ textContent: e }), this.menu.markDirty()), e.length <= 0 ? this.spatialText.parent && (this.spatialText.removeFromParent(), this.menu.markDirty()) : this.spatialText.parent || (this.spatialContainer.add(this.spatialText), this.menu.markDirty()), t && this.createIcon(t);
10459
10323
  }
10460
10324
  _lastTexture;
@@ -10542,7 +10406,7 @@ let wo = class {
10542
10406
  _menu;
10543
10407
  _spatialMenu;
10544
10408
  constructor(e) {
10545
- this._menu = Tu.getOrCreate(e.domElement, e), this._context = e, this._spatialMenu = new WO(e, this._menu), window.addEventListener("message", this.onPostMessage), fg(this.onStartXR);
10409
+ this._menu = Tu.getOrCreate(e.domElement, e), this._context = e, this._spatialMenu = new FO(e, this._menu), window.addEventListener("message", this.onPostMessage), ug(this.onStartXR);
10546
10410
  }
10547
10411
  /** @ignore internal method */
10548
10412
  onDestroy() {
@@ -11055,12 +10919,12 @@ class Tu extends HTMLElement {
11055
10919
  </div>
11056
10920
  `;
11057
10921
  const t = this.attachShadow({ mode: "open" });
11058
- $0(), qd(pm, { loadedCallback: () => {
10922
+ N0(), Gd(pm, { loadedCallback: () => {
11059
10923
  this.handleSizeChange();
11060
- } }), qd(pm, { element: t });
10924
+ } }), Gd(pm, { element: t });
11061
10925
  const i = e.content.cloneNode(!0);
11062
10926
  t?.appendChild(i), this.root = t.querySelector("#root"), this.wrapper = this.root?.querySelector(".wrapper"), this.options = this.root?.querySelector(".options.main-container"), this.optionsCompactMode = this.root?.querySelector(".options.compact-only"), this.logoContainer = this.root?.querySelector(".logo"), this.compactMenuButton = this.root?.querySelector(".compact-menu-button"), this.compactMenuButton.append(Ft("more_vert")), this.foldout = this.root?.querySelector(".foldout"), this.root?.appendChild(this.wrapper), this.wrapper.classList.add("wrapper");
11063
- const n = W0.create();
10927
+ const n = $0.create();
11064
10928
  n.setType("compact"), n.style.minHeight = "1rem", this.logoContainer.append(n), this.logoContainer.addEventListener("click", () => {
11065
10929
  globalThis.open("https://needle.tools", "_blank");
11066
10930
  });
@@ -11358,6 +11222,142 @@ class Tu extends HTMLElement {
11358
11222
  }
11359
11223
  }
11360
11224
  customElements.get(dr) || customElements.define(dr, Tu);
11225
+ function zO(s) {
11226
+ const e = s;
11227
+ return !!(e.parser && e.parser.json);
11228
+ }
11229
+ var Og = /* @__PURE__ */ ((s) => (s[s.None = 0] = "None", s[s.DontExport = 1] = "DontExport", s))(Og || {});
11230
+ const NO = /* @__PURE__ */ Symbol("component-name");
11231
+ function W0(s) {
11232
+ return s && s.isComponent;
11233
+ }
11234
+ const WD = /* @__PURE__ */ Symbol("object"), ep = new Yi(() => new _(), 20);
11235
+ class $O {
11236
+ _point;
11237
+ _normal;
11238
+ _tangentVelocity;
11239
+ /** the distance of the collision point */
11240
+ distance;
11241
+ /** the impulse velocity */
11242
+ impulse;
11243
+ friction;
11244
+ /** worldspace point */
11245
+ get point() {
11246
+ return ep.get().set(this._point.x, this._point.y, this._point.z);
11247
+ }
11248
+ /** worldspace normal */
11249
+ get normal() {
11250
+ return ep.get().set(this._normal.x, this._normal.y, this._normal.z);
11251
+ }
11252
+ /** worldspace tangent */
11253
+ get tangentVelocity() {
11254
+ return ep.get().set(this._tangentVelocity.x, this._tangentVelocity.y, this._tangentVelocity.z);
11255
+ }
11256
+ /** @internal */
11257
+ constructor(e, t, i, n, o, r) {
11258
+ this._point = e, this.distance = t, this._normal = i, this.impulse = n, this.friction = o, this._tangentVelocity = r;
11259
+ }
11260
+ }
11261
+ class WO {
11262
+ /** The contact points of this collision. Contains information about positions, normals, distance, friction, impulse... */
11263
+ contacts;
11264
+ /** @internal */
11265
+ constructor(e, t, i) {
11266
+ this.me = e, this._collider = t, this._gameObject = t.gameObject, this.contacts = i;
11267
+ }
11268
+ /** the gameobject this collision event belongs to (e.g. if onCollisionEnter is called then `me` is the same as `this.gameObject`) */
11269
+ me;
11270
+ _collider;
11271
+ /** the other collider the collision happened with */
11272
+ get collider() {
11273
+ return this._collider;
11274
+ }
11275
+ _gameObject;
11276
+ /** the other object the collision happened with */
11277
+ get gameObject() {
11278
+ return this._gameObject;
11279
+ }
11280
+ /** the other rigidbody we hit, null if none attached */
11281
+ get rigidBody() {
11282
+ return this.collider?.attachedRigidbody;
11283
+ }
11284
+ }
11285
+ class VO {
11286
+ object;
11287
+ collider;
11288
+ constructor(e, t) {
11289
+ this.object = e, this.collider = t;
11290
+ }
11291
+ }
11292
+ class Xd {
11293
+ constructor(e) {
11294
+ this.context = e, this.root.style.cssText = `
11295
+ position: absolute;
11296
+ width: 1px; height: 1px;
11297
+ padding: 0; margin: -1px;
11298
+ overflow: hidden;
11299
+ clip: rect(0, 0, 0, 0);
11300
+ white-space: nowrap;
11301
+ border: 0;
11302
+ `, this.root.setAttribute("role", "region"), this.root.setAttribute("aria-label", "3D Needle Engine scene"), this.liveRegion.setAttribute("aria-live", "polite"), this.liveRegion.setAttribute("aria-atomic", "true"), this.liveRegion.setAttribute("role", "status"), this.root.appendChild(this.liveRegion), this.enabled = !0;
11303
+ }
11304
+ static _managers = /* @__PURE__ */ new WeakMap();
11305
+ /** Returns the {@link AccessibilityManager} associated with the given context or component. */
11306
+ static get(e) {
11307
+ return W0(e) ? this._managers.get(e.context) : this._managers.get(e);
11308
+ }
11309
+ _enabled;
11310
+ /** Enables or disables the accessibility overlay. When disabled, the overlay DOM is removed. */
11311
+ set enabled(e) {
11312
+ e !== this._enabled && (this._enabled = e, e ? (Xd._managers.set(this.context, this), (this.context.domElement.shadowRoot || this.context.domElement).prepend(this.root)) : this.root.remove());
11313
+ }
11314
+ /** Removes all tracked accessibility elements, keeping only the live region. */
11315
+ clear() {
11316
+ this.root.childNodes.forEach((e) => e.remove()), this.root.appendChild(this.liveRegion);
11317
+ }
11318
+ /** Removes the overlay from the DOM and unregisters this manager from the context. */
11319
+ dispose() {
11320
+ this.root.remove(), Xd._managers.delete(this.context);
11321
+ }
11322
+ root = document.createElement("div");
11323
+ liveRegion = document.createElement("div");
11324
+ treeElements = /* @__PURE__ */ new WeakMap();
11325
+ /**
11326
+ * Creates or updates the accessible DOM element for a 3D object or component.
11327
+ * @param obj - The scene object or component to represent.
11328
+ * @param data - Partial accessibility data (role, label, hidden, busy) to apply.
11329
+ */
11330
+ updateElement(e, t) {
11331
+ let i = this.treeElements.get(e);
11332
+ i || (i = document.createElement("div"), this.treeElements.set(e, i), this.root.appendChild(i), typeof t == "object" && (t.role && i.setAttribute("role", t.role), t.label && i.setAttribute("aria-label", t.label), t.hidden !== void 0 && i.setAttribute("aria-hidden", String(t.hidden)), t.busy !== void 0 && i.setAttribute("aria-busy", String(t.busy))));
11333
+ }
11334
+ /** Moves keyboard focus to the accessible element representing the given object. */
11335
+ focus(e) {
11336
+ const t = this.treeElements.get(e);
11337
+ t && t.focus();
11338
+ }
11339
+ /** Removes keyboard focus from the accessible element representing the given object. */
11340
+ unfocus(e) {
11341
+ const t = this.treeElements.get(e);
11342
+ t && t.blur();
11343
+ }
11344
+ /**
11345
+ * Announces a hover event to screen readers via the ARIA live region.
11346
+ * @param obj - The hovered object (used to look up its label if `text` is not provided).
11347
+ * @param text - Optional text to announce. Falls back to the element's `aria-label`.
11348
+ */
11349
+ hover(e, t) {
11350
+ const i = this.treeElements.get(e);
11351
+ this.liveRegion.textContent = t || i?.getAttribute("aria-label") || "";
11352
+ }
11353
+ /** Removes the accessible DOM element for the given object and stops tracking it. */
11354
+ removeElement(e) {
11355
+ this.treeElements.get(e)?.remove(), this.treeElements.delete(e);
11356
+ }
11357
+ set liveRegionMode(e) {
11358
+ this.liveRegion.setAttribute("aria-live", e);
11359
+ }
11360
+ }
11361
11361
  const Ze = x("debugcontext"), HO = x("stats"), GO = x("debugactive"), qO = x("debugframerate"), XO = x("debugcoroutine"), VD = {};
11362
11362
  class HD {
11363
11363
  name;
@@ -11732,7 +11732,7 @@ class N {
11732
11732
  _isVisible = !1;
11733
11733
  _stats = HO ? new CC() : null;
11734
11734
  constructor(e) {
11735
- this.name = e?.name || "", this.alias = e?.alias, this.domElement = e?.domElement || document.body, this.hash = e?.hash, e?.renderer && (this.renderer = e.renderer, this.isManagedExternally = !0), e?.runInBackground !== void 0 && (this.runInBackground = e.runInBackground), e?.scene ? this.scene = e.scene : this.scene = new Mi(), e?.camera && (this._mainCamera = e.camera), this.application = new Kn(this), this.time = new BO(), this.input = new EP(this), this.physics = new Ic(this), this.connection = new VP(this), this.assets = new mk(), this.sceneLighting = new DO(this), this.addressables = new gO(this), this.lightmaps = new CO(this), this.players = new MO(this), this.menu = new wo(this), this.lodsManager = new PO(this), this.animations = new wO(this), this.accessibility = new Fd(this);
11735
+ this.name = e?.name || "", this.alias = e?.alias, this.domElement = e?.domElement || document.body, this.hash = e?.hash, e?.renderer && (this.renderer = e.renderer, this.isManagedExternally = !0), e?.runInBackground !== void 0 && (this.runInBackground = e.runInBackground), e?.scene ? this.scene = e.scene : this.scene = new Mi(), e?.camera && (this._mainCamera = e.camera), this.application = new Kn(this), this.time = new AO(), this.input = new CP(this), this.physics = new Ic(this), this.connection = new UP(this), this.assets = new hk(), this.sceneLighting = new RO(this), this.addressables = new dO(this), this.lightmaps = new bO(this), this.players = new SO(this), this.menu = new wo(this), this.lodsManager = new vO(this), this.animations = new gO(this), this.accessibility = new Xd(this);
11736
11736
  const t = () => this._needsUpdateSize = !0;
11737
11737
  window.addEventListener("resize", t), this._disposeCallbacks.push(() => window.removeEventListener("resize", t));
11738
11738
  const i = new ResizeObserver((n) => this._needsUpdateSize = !0);
@@ -12068,7 +12068,7 @@ Possible solutions:
12068
12068
  }
12069
12069
  }), h ? this.setCurrentCamera(h) : !pe.dispatchCallback(ue.MissingCamera, this, { files: a }) && !this.mainCamera && !this.isManagedExternally && console.warn("Missing camera in main scene", this);
12070
12070
  }
12071
- this.input.bindEvents(), N.Current = this, $d(this), this.physics.engine && (this.physics.engine?.step(0), this.physics.engine?.postStep()), !this.isManagedExternally && this.composer && this.mainCamera, this._needsUpdateSize = !0, this._stats && (this._stats.showPanel(0), this._stats.dom.style.position = "absolute", this.domElement.shadowRoot?.appendChild(this._stats.dom)), Ze && qp(this.scene, !0), this.targetFrameRate === void 0 ? (Ze && console.warn("No target framerate set, using default", N.DefaultTargetFrameRate), this.targetFrameRate = N._defaultTargetFramerate) : Ze && console.log("Target framerate set to", this.targetFrameRate), this._dispatchReadyAfterFrame = !0;
12071
+ this.input.bindEvents(), N.Current = this, Nd(this), this.physics.engine && (this.physics.engine?.step(0), this.physics.engine?.postStep()), !this.isManagedExternally && this.composer && this.mainCamera, this._needsUpdateSize = !0, this._stats && (this._stats.showPanel(0), this._stats.dom.style.position = "absolute", this.domElement.shadowRoot?.appendChild(this._stats.dom)), Ze && qp(this.scene, !0), this.targetFrameRate === void 0 ? (Ze && console.warn("No target framerate set, using default", N.DefaultTargetFrameRate), this.targetFrameRate = N._defaultTargetFramerate) : Ze && console.log("Target framerate set to", this.targetFrameRate), this._dispatchReadyAfterFrame = !0;
12072
12072
  const l = pe.dispatchCallback(ue.ContextCreated, this, { files: a });
12073
12073
  if (l) {
12074
12074
  const h = this.domElement;
@@ -12150,7 +12150,7 @@ Possible solutions:
12150
12150
  _renderlooperrors = 0;
12151
12151
  /** Performs a full update step including script callbacks, rendering (unless isManagedExternally is set to false) and post render callbacks */
12152
12152
  update(e, t) {
12153
- if (t === void 0 && (t = null), L() || Ze || wk())
12153
+ if (t === void 0 && (t = null), L() || Ze || gk())
12154
12154
  try {
12155
12155
  this.internalStep(e, t), this._renderlooperrors = 0;
12156
12156
  } catch (i) {
@@ -12235,7 +12235,7 @@ Possible solutions:
12235
12235
  this._accumulatedTime = 0;
12236
12236
  }
12237
12237
  if (this._stats?.begin(), N.Current = this, this.onHandlePaused()) return !1;
12238
- for (N.Current = this, this.time.update(), qO && console.log("FPS", this.time.smoothedFps.toFixed(0)), $d(this), hd(this.scene), b0(this), Rn(
12238
+ for (N.Current = this, this.time.update(), qO && console.log("FPS", this.time.smoothedFps.toFixed(0)), Nd(this), hd(this.scene), _0(this), Rn(
12239
12239
  this,
12240
12240
  -1
12241
12241
  /* Start */
@@ -12325,7 +12325,7 @@ Possible solutions:
12325
12325
  return this.physics.engine.postStep(), !0;
12326
12326
  }
12327
12327
  internalOnRender() {
12328
- this.isManagedExternally || (Pk(this), this._currentFrameEvent = -1, $y.camera = this.mainCamera, $y.update(), this.renderNow(), this._currentFrameEvent = 4);
12328
+ this.isManagedExternally || (vk(this), this._currentFrameEvent = -1, $y.camera = this.mainCamera, $y.update(), this.renderNow(), this._currentFrameEvent = 4);
12329
12329
  }
12330
12330
  internalOnAfterRender() {
12331
12331
  if (this.isVisibleToUser || this.runInBackground) {
@@ -12375,7 +12375,7 @@ Target Framerate: ` + this.targetFrameRate
12375
12375
  renderNow(e) {
12376
12376
  if (!e && (e = this.mainCamera, !e))
12377
12377
  return !1;
12378
- if (this.handleRendererContextLost(), this._isRendering = !0, this.renderRequiredTextures(), this.renderer.toneMapping !== Ed && z0(), this.composer && !this.isInXR) {
12378
+ if (this.handleRendererContextLost(), this._isRendering = !0, this.renderRequiredTextures(), this.renderer.toneMapping !== Ed && U0(), this.composer && !this.isInXR) {
12379
12379
  e && "setMainCamera" in this.composer && this.composer.passes[0]?.mainCamera != e && this.composer.setMainCamera(e);
12380
12380
  const t = this.renderer.getClearColor(this._tempClearColor), i = this.renderer.getClearAlpha();
12381
12381
  this._tempClearColor2.copy(t), this.renderer.setClearColor(t.convertSRGBToLinear(), this.renderer.getClearAlpha()), this.composer.render(this.time.deltaTime), this.renderer.setClearColor(this._tempClearColor2, i);
@@ -12443,7 +12443,7 @@ Target Framerate: ` + this.targetFrameRate
12443
12443
  } else if (c instanceof Promise) {
12444
12444
  const h = c;
12445
12445
  o.chained || (o.chained = []);
12446
- const d = xO(h);
12446
+ const d = yO(h);
12447
12447
  o.chained?.push(d);
12448
12448
  continue;
12449
12449
  }
@@ -12960,7 +12960,7 @@ function KD(s) {
12960
12960
  }
12961
12961
  d.onAfterHotReloadFields && d.onAfterHotReloadFields();
12962
12962
  } finally {
12963
- p && y && bg(f, y), p && g && (f.enabled = !0);
12963
+ p && y && _g(f, y), p && g && (f.enabled = !0);
12964
12964
  }
12965
12965
  }
12966
12966
  }
@@ -12992,7 +12992,7 @@ class C extends M {
12992
12992
  * @param processStart Whether to process the start callbacks if being activated
12993
12993
  */
12994
12994
  static setActive(e, t, i = !0) {
12995
- e && (pd(e, t), hd(e), t && i && b0(N.Current, e));
12995
+ e && (pd(e, t), hd(e), t && i && _0(N.Current, e));
12996
12996
  }
12997
12997
  /**
12998
12998
  * Checks if the GameObject itself is active (same as go.visible)
@@ -13008,7 +13008,7 @@ class C extends M {
13008
13008
  * @returns True if the GameObject is active in the hierarchy
13009
13009
  */
13010
13010
  static isActiveInHierarchy(e) {
13011
- return hO(e);
13011
+ return oO(e);
13012
13012
  }
13013
13013
  /**
13014
13014
  * Marks a GameObject to be rendered using instancing
@@ -13016,7 +13016,7 @@ class C extends M {
13016
13016
  * @param instanced Whether the GameObject should use instanced rendering
13017
13017
  */
13018
13018
  static markAsInstancedRendered(e, t) {
13019
- dO(e, t);
13019
+ rO(e, t);
13020
13020
  }
13021
13021
  /**
13022
13022
  * Checks if a GameObject is using instanced rendering
@@ -13024,7 +13024,7 @@ class C extends M {
13024
13024
  * @returns True if the GameObject is using instanced rendering
13025
13025
  */
13026
13026
  static isUsingInstancing(e) {
13027
- return Cg(e);
13027
+ return Sg(e);
13028
13028
  }
13029
13029
  /**
13030
13030
  * Executes a callback for all components of the provided type on the provided object and its children
@@ -13043,7 +13043,7 @@ class C extends M {
13043
13043
  * @returns The newly created instance or null if creation failed
13044
13044
  */
13045
13045
  static instantiateSynced(e, t) {
13046
- return e ? S0(e, t) : null;
13046
+ return e ? x0(e, t) : null;
13047
13047
  }
13048
13048
  static instantiate(e, t = null) {
13049
13049
  return "isAssetReference" in e, Rr(e, t);
@@ -13080,7 +13080,7 @@ class C extends M {
13080
13080
  return;
13081
13081
  }
13082
13082
  i || (i = N.Current), t.add(e), pd(e, !0), hd(e), i ? C.foreachComponent(e, (n) => {
13083
- bg(n, i), !n.__internalDidAwakeAndStart && i.new_script_start.includes(n) === !1 && i.new_script_start.push(n);
13083
+ _g(n, i), !n.__internalDidAwakeAndStart && i.new_script_start.includes(n) === !1 && i.new_script_start.push(n);
13084
13084
  }, !0) : console.warn("Missing context");
13085
13085
  }
13086
13086
  }
@@ -13090,7 +13090,7 @@ class C extends M {
13090
13090
  */
13091
13091
  static remove(e) {
13092
13092
  e && (e.parent?.remove(e), pd(e, !1), hd(e), C.foreachComponent(e, (t) => {
13093
- xk(t);
13093
+ yk(t);
13094
13094
  }, !0));
13095
13095
  }
13096
13096
  /**
@@ -13146,7 +13146,7 @@ class C extends M {
13146
13146
  * @returns The removed component
13147
13147
  */
13148
13148
  static removeComponent(e) {
13149
- return A0(e.gameObject, e), e;
13149
+ return T0(e.gameObject, e), e;
13150
13150
  }
13151
13151
  /**
13152
13152
  * Gets or adds a component of the specified type
@@ -13183,7 +13183,7 @@ class C extends M {
13183
13183
  * @returns The found GameObject or Component, or null/undefined if not found
13184
13184
  */
13185
13185
  static findByGuid(e, t) {
13186
- return D0(e, t);
13186
+ return L0(e, t);
13187
13187
  }
13188
13188
  /**
13189
13189
  * Finds the first object of the specified component type in the scene
@@ -13203,7 +13203,7 @@ class C extends M {
13203
13203
  */
13204
13204
  static findObjectsOfType(e, t) {
13205
13205
  const i = [];
13206
- return rO(e, i, t), i;
13206
+ return tO(e, i, t), i;
13207
13207
  }
13208
13208
  /**
13209
13209
  * Gets a component of the specified type in the gameObject's children hierarchy
@@ -13232,7 +13232,7 @@ class C extends M {
13232
13232
  * @returns The first matching component if found, otherwise null
13233
13233
  */
13234
13234
  static getComponentInParent(e, t) {
13235
- return Hd(e, t);
13235
+ return Vd(e, t);
13236
13236
  }
13237
13237
  /**
13238
13238
  * Gets all components of the specified type in the gameObject's parent hierarchy
@@ -13242,7 +13242,7 @@ class C extends M {
13242
13242
  * @returns Array of components
13243
13243
  */
13244
13244
  static getComponentsInParent(e, t, i = null) {
13245
- return xg(e, t, i);
13245
+ return wg(e, t, i);
13246
13246
  }
13247
13247
  /**
13248
13248
  * Gets all components on the gameObject
@@ -13276,7 +13276,7 @@ class R {
13276
13276
  /**
13277
13277
  * Get the original component type name before minification (available if the component is registered in the TypeStore)
13278
13278
  */
13279
- get [wP]() {
13279
+ get [NO]() {
13280
13280
  return P.getKey(this.constructor) || void 0;
13281
13281
  }
13282
13282
  __context;
@@ -13512,7 +13512,7 @@ class R {
13512
13512
  }
13513
13513
  /** @internal */
13514
13514
  __internalDestroy() {
13515
- this.__destroyed || (this.__destroyed = !0, this.__didAwake && (this.onDestroy?.call(this), this.dispatchEvent(new CustomEvent("destroyed", { detail: this }))), oO(this), tb() && sM(this));
13515
+ this.__destroyed || (this.__destroyed = !0, this.__didAwake && (this.onDestroy?.call(this), this.dispatchEvent(new CustomEvent("destroyed", { detail: this }))), eO(this), tb() && sM(this));
13516
13516
  }
13517
13517
  /**
13518
13518
  * Controls whether this component is enabled
@@ -15075,7 +15075,7 @@ class vs extends Xn {
15075
15075
  static _userSet = /* @__PURE__ */ new Set();
15076
15076
  onBeforeRender() {
15077
15077
  vs._userSet.clear();
15078
- const e = g0(this.texture, !0, null, vs._userSet);
15078
+ const e = m0(this.texture, !0, null, vs._userSet);
15079
15079
  for (const t of e)
15080
15080
  t instanceof H && (t[ob] = t.visible, t.visible = !1);
15081
15081
  }
@@ -15942,7 +15942,7 @@ let Je = fi;
15942
15942
  new _();
15943
15943
  new _();
15944
15944
  const io = x("debugsync"), Bc = "STRS";
15945
- c0(Bc, _s.getRootAsSyncedTransformModel);
15945
+ l0(Bc, _s.getRootAsSyncedTransformModel);
15946
15946
  const Tn = new og();
15947
15947
  function Z0(s, e, t = !0) {
15948
15948
  Tn.clear();
@@ -16026,11 +16026,11 @@ class Zn extends R {
16026
16026
  receivedDataCallback = null;
16027
16027
  /** @internal */
16028
16028
  awake() {
16029
- io && console.log("new instance", this.guid, this), this._receivedDataBefore = !1, this._targetPosition = new _(), this._targetRotation = new V(), this.lastPosition = new _(), this.lastRotation = new V(), this.lastScale = new _(), this.rb = C.getComponentInChildren(this.gameObject, Je), this.rb && (this._wasKinematic = this.rb.isKinematic), this.receivedUpdate = !0, this._model = new h0(this.context.connection, this.guid), this.context.connection.isConnected && this.tryGetLastState(), this.joinedRoomCallback = this.tryGetLastState.bind(this), this.context.connection.beginListen(ie.JoinedRoom, this.joinedRoomCallback), this.receivedDataCallback = this.onReceivedData.bind(this), this.context.connection.beginListenBinary(Bc, this.receivedDataCallback);
16029
+ io && console.log("new instance", this.guid, this), this._receivedDataBefore = !1, this._targetPosition = new _(), this._targetRotation = new V(), this.lastPosition = new _(), this.lastRotation = new V(), this.lastScale = new _(), this.rb = C.getComponentInChildren(this.gameObject, Je), this.rb && (this._wasKinematic = this.rb.isKinematic), this.receivedUpdate = !0, this._model = new c0(this.context.connection, this.guid), this.context.connection.isConnected && this.tryGetLastState(), this.joinedRoomCallback = this.tryGetLastState.bind(this), this.context.connection.beginListen(ie.JoinedRoom, this.joinedRoomCallback), this.receivedDataCallback = this.onReceivedData.bind(this), this.context.connection.beginListenBinary(Bc, this.receivedDataCallback);
16030
16030
  }
16031
16031
  /** @internal */
16032
16032
  onDestroy() {
16033
- this.syncDestroy && x0(this.guid, this.context.connection), this._model = null, this.context.connection.stopListen(ie.JoinedRoom, this.joinedRoomCallback), this.context.connection.stopListenBinary(Bc, this.receivedDataCallback);
16033
+ this.syncDestroy && w0(this.guid, this.context.connection), this._model = null, this.context.connection.stopListen(ie.JoinedRoom, this.joinedRoomCallback), this.context.connection.stopListenBinary(Bc, this.receivedDataCallback);
16034
16034
  }
16035
16035
  /**
16036
16036
  * Attempts to retrieve and apply the last known network state for this transform
@@ -16978,7 +16978,7 @@ class hi extends R {
16978
16978
  }
16979
16979
  this.propagate(e, (a) => {
16980
16980
  const l = a;
16981
- l.interactable !== !1 && (!l.activeAndEnabled || !l.enabled || (l.onPointerEnter && o && this.handlePointerEnter(l, t), t.isDown && l.onPointerDown && (l.onPointerDown(t), n?.handlers.add(l), this.handlePointerCapture(t, l)), l.onPointerMove && (r && l.onPointerMove(t), this.handlePointerCapture(t, l)), t.isUp && (l.onPointerUp && (this.invokeOnPointerUp(t, l), n?.handlers.delete(l)), l.onPointerExit && t.event?.pointerType === pg.Touch && (this.handlePointerExit(l, t), this.hoveredByID.delete(t.pointerId))), t.isClick && l.onPointerClick && l.onPointerClick(t)));
16981
+ l.interactable !== !1 && (!l.activeAndEnabled || !l.enabled || (l.onPointerEnter && o && this.handlePointerEnter(l, t), t.isDown && l.onPointerDown && (l.onPointerDown(t), n?.handlers.add(l), this.handlePointerCapture(t, l)), l.onPointerMove && (r && l.onPointerMove(t), this.handlePointerCapture(t, l)), t.isUp && (l.onPointerUp && (this.invokeOnPointerUp(t, l), n?.handlers.delete(l)), l.onPointerExit && t.event?.pointerType === fg.Touch && (this.handlePointerExit(l, t), this.hoveredByID.delete(t.pointerId))), t.isClick && l.onPointerClick && l.onPointerClick(t)));
16982
16982
  }), t.isUp && (n?.handlers.forEach((a) => {
16983
16983
  this.invokeOnPointerUp(t, a);
16984
16984
  }), this.pressedByID.delete(t.pointerId));
@@ -18565,7 +18565,7 @@ class Jd extends R {
18565
18565
  awake() {
18566
18566
  if (this.avatar = C.getComponentInParent(this.gameObject, Fe), this.avatar) {
18567
18567
  const e = C.getComponentInParent(this.gameObject, Fe);
18568
- this._model = new h0(this.context.connection, this.guid), e?.isLocalAvatar && this._model.requestOwnership();
18568
+ this._model = new c0(this.context.connection, this.guid), e?.isLocalAvatar && this._model.requestOwnership();
18569
18569
  }
18570
18570
  this.context.connection.beginListen("avatar-look-target-changed", (e) => {
18571
18571
  this.target && e && e.guid === this.avatar?.guid && Rt(this.target, e.position);
@@ -18756,7 +18756,7 @@ Incoming:`, this._incomingCalls), o;
18756
18756
  if (this.context.connection.connectionId && !this._enabledPeer) {
18757
18757
  if (this._enabledPeer = !0, !this._peer) {
18758
18758
  const e = this.getMyPeerId();
18759
- e ? this._peer = FP(e) : console.error("Failed to setup peerjs because we dont have a connection id", this.context.connection.connectionId);
18759
+ e ? this._peer = IP(e) : console.error("Failed to setup peerjs because we dont have a connection id", this.context.connection.connectionId);
18760
18760
  }
18761
18761
  this._enabled && this.subscribePeerEvents();
18762
18762
  }
@@ -18843,7 +18843,7 @@ class ju extends Jm {
18843
18843
  */
18844
18844
  debug = !1;
18845
18845
  constructor(e, t) {
18846
- if (super(), i0(e)) {
18846
+ if (super(), W0(e)) {
18847
18847
  const i = e;
18848
18848
  e = i.context, t = mo.getOrCreate(i.context, i.guid);
18849
18849
  } else typeof t == "string" && (t = mo.getOrCreate(e, t));
@@ -19496,7 +19496,7 @@ class Mt extends R {
19496
19496
  e && this._color?.set(e), this.gameObject.add(this._helper);
19497
19497
  return;
19498
19498
  }
19499
- this._helper = yg(e), this.gameObject.add(this._helper);
19499
+ this._helper = gg(e), this.gameObject.add(this._helper);
19500
19500
  }
19501
19501
  }
19502
19502
  }
@@ -19954,7 +19954,7 @@ const Gr = class Jl extends R {
19954
19954
  }
19955
19955
  /** @internal */
19956
19956
  awake() {
19957
- Jl._instances.set(this.context, this), this.shadowsRoot.hideFlags = hg.DontExport, Gp(this.shadowsRoot, !1);
19957
+ Jl._instances.set(this.context, this), this.shadowsRoot.hideFlags = Og.DontExport, Gp(this.shadowsRoot, !1);
19958
19958
  }
19959
19959
  /** @internal */
19960
19960
  start() {
@@ -21052,7 +21052,7 @@ class ho {
21052
21052
  const o = i[n];
21053
21053
  if (kE(o.layer, e)) {
21054
21054
  cp && console.log(o), setTimeout(() => {
21055
- Qi() && Cg(e.gameObject) && (_e("Stencil not supported on instanced objects"), console.warn("Stencil not supported on instanced objects", e));
21055
+ Qi() && Sg(e.gameObject) && (_e("Stencil not supported on instanced objects"), console.warn("Stencil not supported on instanced objects", e));
21056
21056
  }, 500);
21057
21057
  for (let r = 0; r < e.sharedMaterials.length; r++) {
21058
21058
  let a = e.sharedMaterials[r];
@@ -21777,7 +21777,7 @@ class gw {
21777
21777
  console.error("Could not find object for node index: " + c, l, t);
21778
21778
  continue;
21779
21779
  }
21780
- Sg(f), o.push(this.createComponents(e, l, f, d));
21780
+ xg(f), o.push(this.createComponents(e, l, f, d));
21781
21781
  }
21782
21782
  }
21783
21783
  }
@@ -21786,7 +21786,7 @@ class gw {
21786
21786
  const a = t.associations.get(r);
21787
21787
  if (a?.materials != null) {
21788
21788
  const l = "/materials/" + a.materials;
21789
- zk(r, l);
21789
+ Dk(r, l);
21790
21790
  }
21791
21791
  }
21792
21792
  }
@@ -21810,7 +21810,7 @@ class gw {
21810
21810
  !c && (An || L()) && console.warn(`[NEEDLE_components] Component '${l.name}' on object '${i.name}' is not added to a mesh or failed to retrieve materials from glTF.`);
21811
21811
  }
21812
21812
  l && this.parser && r.push(
21813
- wg(this.parser, l).catch((c) => console.error(`Error while resolving references (see console for details)
21813
+ vg(this.parser, l).catch((c) => console.error(`Error while resolving references (see console for details)
21814
21814
  `, c, i, l))
21815
21815
  ), i.userData = i.userData || {}, i.userData[da] = i.userData[da] || [], i.userData[da].push(l);
21816
21816
  }
@@ -22040,7 +22040,7 @@ class GE {
22040
22040
  objectToWorld = new Array();
22041
22041
  worldToObject = new Array();
22042
22042
  updateFrom(e) {
22043
- this.objectToWorldMatrix.copy(e.matrixWorld), Gd(this.objectToWorldMatrix, this.objectToWorld), this.worldToObjectMatrix.copy(e.matrixWorld).invert(), Gd(this.worldToObjectMatrix, this.worldToObject);
22043
+ this.objectToWorldMatrix.copy(e.matrixWorld), Hd(this.objectToWorldMatrix, this.objectToWorld), this.worldToObjectMatrix.copy(e.matrixWorld).invert(), Hd(this.worldToObjectMatrix, this.worldToObject);
22044
22044
  }
22045
22045
  }
22046
22046
  class Te extends _v {
@@ -22115,7 +22115,7 @@ class Te extends _v {
22115
22115
  }
22116
22116
  onUpdateUniforms(e, t) {
22117
22117
  const i = N.Current;
22118
- if (e && (Te.viewProjection && this.uniforms[this._viewProjectionName] && (Te.viewProjection.copy(e.projectionMatrix).multiply(e.matrixWorldInverse), Gd(Te.viewProjection, Te._viewProjectionValues)), Te.viewMatrix && this.uniforms[this._viewMatrixName] && (Te.viewMatrix.copy(e.matrixWorldInverse), Gd(Te.viewMatrix, Te._viewMatrixValues)), this.uniforms[Te._worldSpaceCameraPosName] && Te._worldSpaceCameraPos.setFromMatrixPosition(e.matrixWorld)), this.uniforms._TimeParameters && (this.uniforms._TimeParameters.value = i.sceneLighting.timeVec4), this.uniforms._Time) {
22118
+ if (e && (Te.viewProjection && this.uniforms[this._viewProjectionName] && (Te.viewProjection.copy(e.projectionMatrix).multiply(e.matrixWorldInverse), Hd(Te.viewProjection, Te._viewProjectionValues)), Te.viewMatrix && this.uniforms[this._viewMatrixName] && (Te.viewMatrix.copy(e.matrixWorldInverse), Hd(Te.viewMatrix, Te._viewMatrixValues)), this.uniforms[Te._worldSpaceCameraPosName] && Te._worldSpaceCameraPos.setFromMatrixPosition(e.matrixWorld)), this.uniforms._TimeParameters && (this.uniforms._TimeParameters.value = i.sceneLighting.timeVec4), this.uniforms._Time) {
22119
22119
  const a = this.uniforms._Time.value;
22120
22120
  a.x = i.sceneLighting.timeVec4.x / 20, a.y = i.sceneLighting.timeVec4.x, a.z = i.sceneLighting.timeVec4.x * 2, a.w = i.sceneLighting.timeVec4.x * 3;
22121
22121
  }
@@ -22191,7 +22191,7 @@ class qE {
22191
22191
  Dn && console.log(n);
22192
22192
  const o = n.techniques[i];
22193
22193
  return o ? new Promise(async (r, a) => {
22194
- const l = await IO(n, o.program), c = l?.fragmentShader, h = l?.vertexShader;
22194
+ const l = await MO(n, o.program), c = l?.fragmentShader, h = l?.vertexShader;
22195
22195
  if (!c || !h) return a();
22196
22196
  Dn && console.log("loadMaterial", t, l);
22197
22197
  const d = {}, f = o.uniforms;
@@ -22308,10 +22308,10 @@ class qE {
22308
22308
  g.depthTest = !1, g.depthFunc = VS;
22309
22309
  break;
22310
22310
  }
22311
- g.transparent = p, p && (g.depthWrite = !1), TO(d), g.onUpdateUniforms();
22311
+ g.transparent = p, p && (g.depthWrite = !1), kO(d), g.onUpdateUniforms();
22312
22312
  for (const v in f) {
22313
22313
  const b = v, w = f[v].type;
22314
- d[b]?.value === void 0 && (w === yw.SAMPLER_2D ? (d[b] = { value: EO }, console.warn("Missing/unassigned texture, fallback to white: " + b)) : b === "unity_OrthoParams" || console.warn("TODO: EXPECTED UNIFORM / fallback NOT SET: " + b, f[v]));
22314
+ d[b]?.value === void 0 && (w === yw.SAMPLER_2D ? (d[b] = { value: CO }, console.warn("Missing/unassigned texture, fallback to white: " + b)) : b === "unity_OrthoParams" || console.warn("TODO: EXPECTED UNIFORM / fallback NOT SET: " + b, f[v]));
22315
22315
  }
22316
22316
  Dn && console.log(g.uuid, d), _w(g), r(g);
22317
22317
  }) : null;
@@ -22365,7 +22365,7 @@ class YE {
22365
22365
  }
22366
22366
  async function Pm(s, e, t, i) {
22367
22367
  const n = t.indexOf("?");
22368
- n >= 0 && (t = t.substring(0, n)), i || (i = t), (i.startsWith("blob:") || i.startsWith("data:")) && console.debug("[GLTFLoader] Suspicious sourceId detected"), s.register((o) => new $E(o)), s.register((o) => new $k(o)), s.register((o) => new SO(o, e.lightmaps, i)), s.register((o) => new WE(o, i, e)), s.register((o) => new qE(o, i)), s.register((o) => new ho(o, i)), s.register((o) => new We(o)), s.register((o) => new FE(o)), s.register((o) => new HE(e, s, t, o)), gk() && s.register((o) => new Oa(o)), await QE.catch((o) => {
22368
+ n >= 0 && (t = t.substring(0, n)), i || (i = t), (i.startsWith("blob:") || i.startsWith("data:")) && console.debug("[GLTFLoader] Suspicious sourceId detected"), s.register((o) => new $E(o)), s.register((o) => new Bk(o)), s.register((o) => new _O(o, e.lightmaps, i)), s.register((o) => new WE(o, i, e)), s.register((o) => new qE(o, i)), s.register((o) => new ho(o, i)), s.register((o) => new We(o)), s.register((o) => new FE(o)), s.register((o) => new HE(e, s, t, o)), dk() && s.register((o) => new Oa(o)), await QE.catch((o) => {
22369
22369
  }), s.register((o) => {
22370
22370
  if (eu) {
22371
22371
  const r = new eu(o);
@@ -22490,7 +22490,7 @@ class Da {
22490
22490
  /** The mesh information of the object - this tries to also calculate the LOD info */
22491
22491
  meshInformation;
22492
22492
  constructor(e, t) {
22493
- this.__instanceIndex = -1, this.object = e, this.renderer = t, e[_0] = t, this.meshInformation = fr(e.geometry), Da.all.push(this);
22493
+ this.__instanceIndex = -1, this.object = e, this.renderer = t, e[y0] = t, this.meshInformation = fr(e.geometry), Da.all.push(this);
22494
22494
  }
22495
22495
  /** Calculates the mesh information again
22496
22496
  * @returns true if the vertex count or index count has changed
@@ -23785,7 +23785,7 @@ const Vu = class Sw extends R {
23785
23785
  }
23786
23786
  *cloneLimitIntervalFn() {
23787
23787
  for (; this.activeAndEnabled && !this.destroyed; )
23788
- this._currentCount > 0 ? this._currentCount -= 1 : this._currentCount < 0 && (this._currentCount = 0), yield U0(1);
23788
+ this._currentCount > 0 ? this._currentCount -= 1 : this._currentCount < 0 && (this._currentCount = 0), yield F0(1);
23789
23789
  }
23790
23790
  handleDuplication() {
23791
23791
  if (!this.object || this.limitCount > 0 && this._currentCount >= this.limitCount || this.object === this.gameObject) return null;
@@ -23876,11 +23876,11 @@ class cR extends Pw {
23876
23876
  }
23877
23877
  class kw extends Pw {
23878
23878
  beforeWriteTexture(e, t) {
23879
- e.isRenderTargetTexture && (t.newTexture = kg(new ae(1, 1, 1, 0)));
23879
+ e.isRenderTargetTexture && (t.newTexture = Pg(new ae(1, 1, 1, 0)));
23880
23880
  }
23881
23881
  }
23882
23882
  function km(s) {
23883
- const e = hg.DontExport;
23883
+ const e = Og.DontExport;
23884
23884
  return !(s.hideFlags & e);
23885
23885
  }
23886
23886
  class Ow {
@@ -23959,7 +23959,7 @@ const qg = class ya extends R {
23959
23959
  }
23960
23960
  }));
23961
23961
  });
23962
- const a = new M0(r);
23962
+ const a = new O0(r);
23963
23963
  return t?.needleComponents && (this.ext = new gw()), this.ext && (this.ext.registerExport(i), this.ext.context = a), new Promise((c, h) => {
23964
23964
  Gh && console.log("Starting glTF export.");
23965
23965
  try {
@@ -26535,7 +26535,7 @@ const Gu = class qt extends R {
26535
26535
  break;
26536
26536
  }
26537
26537
  } else
26538
- e.material === this.materialToSwitch ? this.objectsWithThisMaterial.push(e) : Uk(e.material, this.materialToSwitch) && this.objectsWithThisMaterial.push(e);
26538
+ e.material === this.materialToSwitch ? this.objectsWithThisMaterial.push(e) : Lk(e.material, this.materialToSwitch) && this.objectsWithThisMaterial.push(e);
26539
26539
  }), this._objectsWithThisMaterial);
26540
26540
  }
26541
26541
  selfModel;
@@ -27221,9 +27221,9 @@ class kr {
27221
27221
  }
27222
27222
  }
27223
27223
  hideElementDuringXRSession(e) {
27224
- fg((t) => {
27224
+ ug((t) => {
27225
27225
  e["previous-display"] = e.style.display, e.style.setProperty("display", "none", "important");
27226
- }), o0((t) => {
27226
+ }), s0((t) => {
27227
27227
  e["previous-display"] != null && (e.style.display = e["previous-display"]);
27228
27228
  });
27229
27229
  }
@@ -27694,7 +27694,7 @@ class mn extends R {
27694
27694
  return;
27695
27695
  }
27696
27696
  let i = this._hits[0];
27697
- if (e && e.origin instanceof r0) {
27697
+ if (e && e.origin instanceof o0) {
27698
27698
  const n = this._reticle[e.origin.index];
27699
27699
  n && (t = n, i = this._hits[e.origin.index]);
27700
27700
  }
@@ -28380,7 +28380,7 @@ class Lr extends R {
28380
28380
  tryFindAvatarObjectsIfMissing() {
28381
28381
  if (!this.head || !this.leftHand || !this.rightHand) {
28382
28382
  const e = { head: this.head, leftHand: this.leftHand, rightHand: this.rightHand };
28383
- lk.tryFindAvatarObjects(this.gameObject, this.sourceId || "", e), e.head && (this.head = e.head), e.leftHand && (this.leftHand = e.leftHand), e.rightHand && (this.rightHand = e.rightHand);
28383
+ nk.tryFindAvatarObjects(this.gameObject, this.sourceId || "", e), e.head && (this.head = e.head), e.leftHand && (this.leftHand = e.leftHand), e.rightHand && (this.rightHand = e.rightHand);
28384
28384
  }
28385
28385
  }
28386
28386
  async prepareAvatar() {
@@ -29576,7 +29576,7 @@ const cn = new _(), Bl = new ee(), Jh = new V(), cl = class Yw extends xn {
29576
29576
  if (!t) return;
29577
29577
  this.gameObject.parent ? this._parentRectTransform = C.getComponentInParent(this.gameObject.parent, Yw) : this._parentRectTransform = void 0, this._transformNeedsUpdate = !1, vp && console.warn("RectTransform → ApplyTransform", this.name + " because " + e), this.isRoot() ? this.Root.screenspace || (t.rotation.y = Math.PI) : (t.matrix.identity(), t.matrixAutoUpdate = !1, cn.set(0, 0, 0), this.applyPivot(cn), t.matrix.setPosition(cn.x, cn.y, 0), (this.gameObject.quaternion.x || this.gameObject.quaternion.y || this.gameObject.quaternion.z) && (Jh.copy(this.gameObject.quaternion), Jh.x *= -1, Jh.z *= -1, Bl.makeRotationFromQuaternion(Jh), t.matrix.premultiply(Bl)), cn.set(0, 0, 0), this.applyAnchoring(cn), this.canvas?.screenspace ? cn.z += 0.1 : cn.z += 0.01, Bl.identity(), Bl.setPosition(cn.x, cn.y, cn.z), t.matrix.premultiply(Bl), t.matrix.scale(this.gameObject.scale)), this.lastMatrix.copy(this.gameObject.matrix);
29578
29578
  const i = !0;
29579
- for (const n of Pg(this.gameObject, xn, i, 1)) {
29579
+ for (const n of Cg(this.gameObject, xn, i, 1)) {
29580
29580
  if (n === this || !n.activeAndEnabled) continue;
29581
29581
  const o = n;
29582
29582
  o.onParentRectTransformChanged && o.onParentRectTransformChanged(this);
@@ -31289,7 +31289,7 @@ class ul extends R {
31289
31289
  _gizmoObject = null;
31290
31290
  _boxHelper = null;
31291
31291
  onEnable() {
31292
- this.isGizmo && !Gc || (this._gizmoObject || (this.objectBounds ? this._gizmoObject = new eC(this.gameObject, this.color ?? 16776960) : (this.objectBounds = !1, this._gizmoObject = yg(this.color ?? 16776960))), this.objectBounds ? (this.scene.add(this._gizmoObject), this._boxHelper = this._gizmoObject, this.startCoroutine(this.syncObjectBounds(), Ce.OnBeforeRender)) : this.gameObject.add(this._gizmoObject));
31292
+ this.isGizmo && !Gc || (this._gizmoObject || (this.objectBounds ? this._gizmoObject = new eC(this.gameObject, this.color ?? 16776960) : (this.objectBounds = !1, this._gizmoObject = gg(this.color ?? 16776960))), this.objectBounds ? (this.scene.add(this._gizmoObject), this._boxHelper = this._gizmoObject, this.startCoroutine(this.syncObjectBounds(), Ce.OnBeforeRender)) : this.gameObject.add(this._gizmoObject));
31293
31293
  }
31294
31294
  onDisable() {
31295
31295
  this._gizmoObject && this.gameObject.remove(this._gizmoObject);
@@ -33864,7 +33864,7 @@ class lA {
33864
33864
  }
33865
33865
  return this.clonedTexture.clone;
33866
33866
  }
33867
- return this.flatWhiteTexture || (this.flatWhiteTexture = kg(new ae(1, 1, 1, 1), 1)), this.flatWhiteTexture;
33867
+ return this.flatWhiteTexture || (this.flatWhiteTexture = Pg(new ae(1, 1, 1, 1), 1)), this.flatWhiteTexture;
33868
33868
  }
33869
33869
  get startTileIndex() {
33870
33870
  return new ZT(this.system);
@@ -34295,7 +34295,7 @@ class $c extends R {
34295
34295
  this.context.connection.stopListen(ie.JoinedRoom, this.tryAssignColor);
34296
34296
  }
34297
34297
  *waitForConnection() {
34298
- for (; !this.destroyed && this.activeAndEnabled && (yield U0(0.2), !this.tryAssignColor()); )
34298
+ for (; !this.destroyed && this.activeAndEnabled && (yield F0(0.2), !this.tryAssignColor()); )
34299
34299
  ;
34300
34300
  }
34301
34301
  tryAssignColor = () => {
@@ -34340,7 +34340,7 @@ function dA(s) {
34340
34340
  function mx(s) {
34341
34341
  let e = s.gameObject;
34342
34342
  for (; e; ) {
34343
- for (const t of Pg(e))
34343
+ for (const t of Cg(e))
34344
34344
  if (t.isPostProcessingManager === !0)
34345
34345
  return t;
34346
34346
  e = e.parent;
@@ -34786,7 +34786,7 @@ class jr extends ht {
34786
34786
  });
34787
34787
  return this.mode.onValueChanged = (i) => {
34788
34788
  if (typeof i == "string")
34789
- i = N0(i), t.mode = kd(i);
34789
+ i = z0(i), t.mode = kd(i);
34790
34790
  else {
34791
34791
  const n = Mp(i);
34792
34792
  t.mode = kd(n);
@@ -38660,7 +38660,7 @@ var OI = Object.defineProperty, MI = (s, e, t, i) => {
38660
38660
  return n && OI(e, t, n), n;
38661
38661
  };
38662
38662
  const au = "SCAM";
38663
- c0(au, Nn.getRootAsSyncedCameraModel);
38663
+ l0(au, Nn.getRootAsSyncedCameraModel);
38664
38664
  const gi = new og();
38665
38665
  class EI {
38666
38666
  userId;
@@ -40345,7 +40345,7 @@ class Go extends R {
40345
40345
  rr && console.warn("Button Up", this.animationTriggers?.highlightedTrigger, this.animator, this._isHovered), this.interactable && (this.transition == 3 && this.animationTriggers && this.animator ? this.animator.setTrigger(this._isHovered ? this.animationTriggers.highlightedTrigger : this.animationTriggers.normalTrigger) : this.transition === 1 && this.colors && this._image?.setState(this._isHovered ? "hovered" : "normal"));
40346
40346
  }
40347
40347
  onPointerClick(e) {
40348
- if (this.interactable && !(e.button !== 0 && e.event.pointerType === pg.Mouse) && (rr && (console.warn("Button Click", this.onClick), Ie("CLICKED button " + this.name + " at " + this.context.time.frameCount)), this.onClick && this.onClick.listenerCount > 0 && (this.onClick.invoke(), e.use(), this.context.accessibility.focus(this), rr))) {
40348
+ if (this.interactable && !(e.button !== 0 && e.event.pointerType === fg.Mouse) && (rr && (console.warn("Button Click", this.onClick), Ie("CLICKED button " + this.name + " at " + this.context.time.frameCount)), this.onClick && this.onClick.listenerCount > 0 && (this.onClick.invoke(), e.use(), this.context.accessibility.focus(this), rr))) {
40349
40349
  const t = this.gameObject.worldPosition;
40350
40350
  t.add(this.gameObject.worldUp.multiplyScalar(1 + Math.random() * 0.5)), U.DrawLabel(t, "CLICK:" + Date.now(), 0.1, 1 + Math.random() * 0.5);
40351
40351
  }
@@ -41147,7 +41147,7 @@ Cl([
41147
41147
  u(Oi)
41148
41148
  ], js.prototype, "idle", 2);
41149
41149
  js = Cl([
41150
- k0
41150
+ P0
41151
41151
  ], js);
41152
41152
  var iL = Object.defineProperty, Pl = (s, e, t, i) => {
41153
41153
  for (var n = void 0, o = s.length - 1, r; o >= 0; o--)
@@ -41460,7 +41460,7 @@ Cf([
41460
41460
  u()
41461
41461
  ], at.prototype, "debug", 2);
41462
41462
  at = Cf([
41463
- k0
41463
+ P0
41464
41464
  ], at);
41465
41465
  var aL = Object.defineProperty, kl = (s, e, t, i) => {
41466
41466
  for (var n = void 0, o = s.length - 1, r; o >= 0; o--)
@@ -42749,10 +42749,10 @@ P.add("PresentationMode", bL);
42749
42749
  const Pc = gt, vL = x("debugtypestore");
42750
42750
  vL && console.log(P);
42751
42751
  function wL(s, e) {
42752
- const i = Hk(s, e);
42752
+ const i = zk(s, e);
42753
42753
  return i !== void 0 ? i : null;
42754
42754
  }
42755
- const xL = new Vk(), jp = /* @__PURE__ */ Symbol("deserialize-queue");
42755
+ const xL = new Uk(), jp = /* @__PURE__ */ Symbol("deserialize-queue");
42756
42756
  async function SL(s, e, t, i = null, n) {
42757
42757
  if (!t) {
42758
42758
  console.debug("Can not create component instances: gltf is null");
@@ -42763,7 +42763,7 @@ async function SL(s, e, t, i = null, n) {
42763
42763
  typeof r == "number" && (r = new Ut(i));
42764
42764
  const a = e.indexOf("?");
42765
42765
  e = a === -1 ? e : e.substring(0, a);
42766
- const l = new M0(t.scene);
42766
+ const l = new O0(t.scene);
42767
42767
  l.gltfId = e, l.context = s, l.gltf = t, l.nodeToObject = n?.nodeToObjectMap, l.implementationInformation = xL;
42768
42768
  let c = s[jp];
42769
42769
  if (c || (c = s[jp] = []), t.scenes)
@@ -42994,14 +42994,14 @@ async function kc(s, e, t, i, n, o) {
42994
42994
  scenes: [a]
42995
42995
  };
42996
42996
  } else Array.isArray(i.scenes) === !1 && console.error(`[Needle Engine] The loaded model object does not have a scenes property '${t}' - please make sure the loader is registered correctly and three.js is not imported multiple times.`);
42997
- return t.includes("?") && (t = t.split("?")[0]), EL(s, i), vP(i) && (KE(t, i, e), await Yn().createBuiltinComponents(e, t, i, n, o || void 0)), await OL(i.scene, e, e.mainCamera), i;
42997
+ return t.includes("?") && (t = t.split("?")[0]), EL(s, i), zO(i) && (KE(t, i, e), await Yn().createBuiltinComponents(e, t, i, n, o || void 0)), await OL(i.scene, e, e.mainCamera), i;
42998
42998
  }
42999
42999
  async function OL(s, e, t) {
43000
43000
  t || (t = e.mainCamera);
43001
43001
  try {
43002
43002
  t ? await e.renderer.compileAsync(s, t, e.scene).catch((i) => {
43003
43003
  console.warn(i.message);
43004
- }) : Ck(s, e);
43004
+ }) : bk(s, e);
43005
43005
  } catch (i) {
43006
43006
  console.warn(i?.message || i);
43007
43007
  }
@@ -43401,7 +43401,7 @@ class Jx extends HTMLElement {
43401
43401
  /** @private set to true after <needle-engine> did load completely at least once. Set to false when < to false when <needle-engine> is removed from the document removed from the document */
43402
43402
  _didFullyLoad = !1;
43403
43403
  constructor() {
43404
- super(), this._overlay_ar = new TL(), this.addEventListener("ready", this.onReady), $0(), this.attachShadow({ mode: "open", delegatesFocus: !0 }), this.setAttribute("role", "application"), this.setAttribute("aria-label", "Needle Engine 3D scene");
43404
+ super(), this._overlay_ar = new TL(), this.addEventListener("ready", this.onReady), N0(), this.attachShadow({ mode: "open", delegatesFocus: !0 }), this.setAttribute("role", "application"), this.setAttribute("aria-label", "Needle Engine 3D scene");
43405
43405
  const e = document.createElement("template");
43406
43406
  e.innerHTML = `<style>
43407
43407
  @import url('https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap');
@@ -43654,7 +43654,7 @@ Needle Engine: finished loading ` + t + `
43654
43654
  // #region applyAttributes
43655
43655
  applyAttributes() {
43656
43656
  if (this._context?.renderer) {
43657
- const n = N0(this.toneMapping);
43657
+ const n = z0(this.toneMapping);
43658
43658
  n !== void 0 && (this._context.renderer.toneMapping = n);
43659
43659
  const o = this.getAttribute("tone-mapping-exposure");
43660
43660
  if (o != null) {
@@ -44128,7 +44128,7 @@ class Oc {
44128
44128
  t,
44129
44129
  i,
44130
44130
  (n) => {
44131
- const o = n[ri], r = new CP(o.gameObject, o);
44131
+ const o = n[ri], r = new VO(o.gameObject, o);
44132
44132
  return this.rapierColliderArray.push(r), !0;
44133
44133
  },
44134
44134
  // TODO: it seems as QueryFilterFlags.EXCLUDE_SENSORS also excludes DYNAMIC Rigidbodies (only if they're set to kinematic)
@@ -44607,11 +44607,11 @@ class UL {
44607
44607
  for (let p = 0; p < a.numSolverContacts(); p++) {
44608
44608
  const g = a.solverContactPoint(p), y = a.contactImpulse(p);
44609
44609
  if (g) {
44610
- const m = a.contactDist(p), v = a.solverContactFriction(p), b = a.solverContactTangentVelocity(p), w = new xP(g, m, f, y, v, b);
44610
+ const m = a.contactDist(p), v = a.solverContactFriction(p), b = a.solverContactTangentVelocity(p), w = new $O(g, m, f, y, v, b);
44611
44611
  d.push(w), Fp && U.DrawDirection(g, f, 16711680, 3, !0);
44612
44612
  }
44613
44613
  }
44614
- o = new SP(r, i, d);
44614
+ o = new WO(r, i, d);
44615
44615
  }
44616
44616
  if (h) {
44617
44617
  const d = { collider: e, component: c, collision: o };
@@ -44882,7 +44882,7 @@ class WL extends HTMLElement {
44882
44882
  justify-content: center;
44883
44883
  gap: .5rem;
44884
44884
  }
44885
- `), this.#n.innerHTML = this.#e.innerHTML, this.#n.style.cssText = "display: flex; align-items: center; justify-content: center;", this.#e.innerHTML = this.#n.outerHTML, this.#t.innerHTML = this.#e.outerHTML, this.#t.prepend(this.#s), qd(pm, { element: this.#t }), this.#o?.disconnect(), this.#o ??= new MutationObserver(() => this.#c()), this.#o.observe(this.#e, { attributes: !0 }), Up && console.log("Needle Button updated", this);
44885
+ `), this.#n.innerHTML = this.#e.innerHTML, this.#n.style.cssText = "display: flex; align-items: center; justify-content: center;", this.#e.innerHTML = this.#n.outerHTML, this.#t.innerHTML = this.#e.outerHTML, this.#t.prepend(this.#s), Gd(pm, { element: this.#t }), this.#o?.disconnect(), this.#o ??= new MutationObserver(() => this.#c()), this.#o.observe(this.#e, { attributes: !0 }), Up && console.log("Needle Button updated", this);
44886
44886
  }
44887
44887
  #c() {
44888
44888
  this.#e && (this.#e.style.display === "none" ? this.style.display = "none" : this.style.display === "none" && (this.style.display = ""));
@@ -45406,12 +45406,12 @@ const XL = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
45406
45406
  GenerateMeshBVHWorker: qL
45407
45407
  }, Symbol.toStringTag, { value: "Module" }));
45408
45408
  export {
45409
- wP as $componentName,
45410
- OD as $physicsKey,
45409
+ NO as $componentName,
45410
+ WD as $physicsKey,
45411
45411
  me as ActionBuilder,
45412
45412
  FR as ActionCollection,
45413
45413
  _i as ActionModel,
45414
- gO as Addressables,
45414
+ dO as Addressables,
45415
45415
  Iu as AlignmentConstraint,
45416
45416
  pc as AmbientMode,
45417
45417
  ei as Animation,
@@ -45426,7 +45426,7 @@ export {
45426
45426
  Uh as AnimatorStateInfo,
45427
45427
  af as Antialiasing,
45428
45428
  Kn as Application,
45429
- mk as AssetDatabase,
45429
+ hk as AssetDatabase,
45430
45430
  ne as AssetReference,
45431
45431
  uh as Attractor,
45432
45432
  rl as AudioExtension,
@@ -45474,17 +45474,17 @@ export {
45474
45474
  Iy as ClickThrough,
45475
45475
  fs as ClipExtrapolation,
45476
45476
  Pn as Collider,
45477
- SP as Collision,
45477
+ WO as Collision,
45478
45478
  Ig as CollisionDetectionMode,
45479
45479
  Qr as ColorAdjustments,
45480
45480
  dh as ColorBySpeedModule,
45481
45481
  fy as ColorOverLifetimeModule,
45482
45482
  ZD as Component,
45483
45483
  R as Component$1,
45484
- _g as ComponentLifecycleEvents,
45484
+ yg as ComponentLifecycleEvents,
45485
45485
  v2 as Components,
45486
- $P as ConnectionEvents,
45487
- xP as ContactPoint,
45486
+ BP as ConnectionEvents,
45487
+ $O as ContactPoint,
45488
45488
  zu as ContactShadows,
45489
45489
  N as Context,
45490
45490
  HD as ContextArgs,
@@ -45516,7 +45516,7 @@ export {
45516
45516
  Gg as EventTrigger,
45517
45517
  tR as FieldWithDefault,
45518
45518
  Ta as FileReference,
45519
- vO as FileReferenceSerializer,
45519
+ mO as FileReferenceSerializer,
45520
45520
  r2 as FileSpawnModel,
45521
45521
  xE as File_Event,
45522
45522
  ax as FixedJoint,
@@ -45535,36 +45535,36 @@ export {
45535
45535
  nx as GridLayoutGroup,
45536
45536
  Fs as GroundProjectedEnv,
45537
45537
  Sa as GroupActionModel,
45538
- hg as HideFlags,
45538
+ Og as HideFlags,
45539
45539
  un as HideOnStart,
45540
45540
  tf as HingeJoint,
45541
45541
  ix as HorizontalLayoutGroup,
45542
- ND as HostData,
45542
+ zD as HostData,
45543
45543
  js as HoverAnimation,
45544
45544
  vh as Image,
45545
45545
  Ra as ImageReference,
45546
- bO as ImageReferenceSerializer,
45546
+ pO as ImageReferenceSerializer,
45547
45547
  ux as InheritVelocityModule,
45548
- EP as Input,
45548
+ CP as Input,
45549
45549
  vi as InputEventQueue,
45550
45550
  Be as InputEvents,
45551
45551
  jx as InputField,
45552
45552
  Da as InstanceHandle,
45553
45553
  Za as InstancingHandler,
45554
45554
  _n as InstancingUtil,
45555
- kk as InstantiateEvent,
45555
+ wk as InstantiateEvent,
45556
45556
  Ut as InstantiateIdProvider,
45557
45557
  es as InstantiateOptions,
45558
45558
  hw as Interactable,
45559
45559
  hu as InternalScreenshotUtils,
45560
- LD as JoinedRoomResponse,
45561
- TD as KeyEventArgs,
45560
+ ID as JoinedRoomResponse,
45561
+ RD as KeyEventArgs,
45562
45562
  Ci as Keyframe,
45563
45563
  hy as LODGroup,
45564
45564
  lh as LODModel,
45565
- DD as LeftRoomResponse,
45565
+ LD as LeftRoomResponse,
45566
45566
  Wt as Light,
45567
- jO as LightData,
45567
+ TO as LightData,
45568
45568
  vt as LimitVelocityOverLifetimeModule,
45569
45569
  g2 as LoadingElementOptions,
45570
45570
  cw as LogStats,
@@ -45583,24 +45583,24 @@ export {
45583
45583
  Wu as MeshRenderer,
45584
45584
  Y as MinMaxCurve,
45585
45585
  ml as MinMaxGradient,
45586
- Nd as NEEDLE_ENGINE_FEATURE_FLAGS,
45586
+ zd as NEEDLE_ENGINE_FEATURE_FLAGS,
45587
45587
  Oh as NEKeyboardEvent,
45588
45588
  to as NEPointerEvent,
45589
45589
  WL as NeedleButtonElement,
45590
45590
  ub as NeedleEngineModelLoader,
45591
45591
  Jx as NeedleEngineWebComponent,
45592
45592
  Ns as NeedleMenu,
45593
- Uf as NeedlePatchesKey,
45594
- r0 as NeedleXRController,
45593
+ Ff as NeedlePatchesKey,
45594
+ o0 as NeedleXRController,
45595
45595
  K as NeedleXRSession,
45596
- HP as NeedleXRSync,
45597
- lk as NeedleXRUtils,
45596
+ zP as NeedleXRSync,
45597
+ nk as NeedleXRUtils,
45598
45598
  ch as NestedGltf,
45599
- VP as NetworkConnection,
45599
+ UP as NetworkConnection,
45600
45600
  ws as NetworkedStreamEvents,
45601
45601
  ju as NetworkedStreams,
45602
45602
  lx as Networking,
45603
- Ek as NewInstanceModel,
45603
+ Ck as NewInstanceModel,
45604
45604
  we as NoiseModule,
45605
45605
  wn as ObjectRaycaster,
45606
45606
  zr as ObjectUtils,
@@ -45610,8 +45610,8 @@ export {
45610
45610
  Sh as OpenURL,
45611
45611
  ye as OrbitControls,
45612
45612
  oh as Outline,
45613
- WP as OwnershipEvent,
45614
- h0 as OwnershipModel,
45613
+ FP as OwnershipEvent,
45614
+ c0 as OwnershipModel,
45615
45615
  gr as PUBLIC_KEY,
45616
45616
  hl as Padding,
45617
45617
  Dm as ParticleBurst,
@@ -45621,7 +45621,7 @@ export {
45621
45621
  On as ParticleSystemRenderer,
45622
45622
  Im as ParticleSystemShapeType,
45623
45623
  mo as PeerHandle,
45624
- UP as PeerNetworking,
45624
+ LP as PeerNetworking,
45625
45625
  Ic as Physics,
45626
45626
  Qw as PhysicsExtension,
45627
45627
  Pt as PhysicsMaterialCombine,
@@ -45633,10 +45633,10 @@ export {
45633
45633
  gn as PlayerState,
45634
45634
  iT as PlayerStateEvent,
45635
45635
  qw as PlayerSync,
45636
- OO as PlayerView,
45637
- MO as PlayerViewManager,
45636
+ xO as PlayerView,
45637
+ SO as PlayerViewManager,
45638
45638
  Du as PointerEventData,
45639
- pg as PointerType,
45639
+ fg as PointerType,
45640
45640
  ht as PostProcessingEffect,
45641
45641
  ut as PostProcessingEffectOrder,
45642
45642
  vx as PostProcessingHandler,
@@ -45659,7 +45659,7 @@ export {
45659
45659
  vs as RenderTexture,
45660
45660
  LM as RenderTextureSerializer,
45661
45661
  ui as Renderer,
45662
- DO as RendererData,
45662
+ RO as RendererData,
45663
45663
  ww as RendererLightmap,
45664
45664
  Je as Rigidbody,
45665
45665
  Ke as RigidbodyConstraints,
@@ -45674,11 +45674,11 @@ export {
45674
45674
  qo as ScrollFollow,
45675
45675
  $o as SeeThrough,
45676
45676
  Bn as SendQueue,
45677
- M0 as SerializationContext,
45677
+ O0 as SerializationContext,
45678
45678
  $w as SetActiveOnClick,
45679
45679
  ff as ShadowCatcher,
45680
45680
  hx as ShapeModule,
45681
- CP as ShapeOverlapResult,
45681
+ VO as ShapeOverlapResult,
45682
45682
  uf as SharpeningEffect,
45683
45683
  Py as SignalAsset,
45684
45684
  yf as SignalReceiver,
@@ -45695,7 +45695,7 @@ export {
45695
45695
  Es as SpatialTriggerReceiver,
45696
45696
  Cy as SpectatorCamera,
45697
45697
  Jc as SphereCollider,
45698
- u0 as SphereIntersection,
45698
+ d0 as SphereIntersection,
45699
45699
  wl as SplineContainer,
45700
45700
  Ds as SplineData,
45701
45701
  av as SplineUtils,
@@ -45721,7 +45721,7 @@ export {
45721
45721
  ny as TextExtension,
45722
45722
  si as TextureSheetAnimationModule,
45723
45723
  Vs as TiltShiftEffect,
45724
- BO as Time,
45724
+ AO as Time,
45725
45725
  jr as ToneMappingEffect,
45726
45726
  bh as TrackHandler,
45727
45727
  Wi as TrackType,
@@ -45742,7 +45742,7 @@ export {
45742
45742
  rx as USDZUIExtension,
45743
45743
  DM as UriSerializer,
45744
45744
  Nu as UsageMarker,
45745
- jD as UserJoinedOrLeftRoomModel,
45745
+ DD as UserJoinedOrLeftRoomModel,
45746
45746
  Xi as VERSION,
45747
45747
  zw as VariantAction,
45748
45748
  Xe as VelocityOverLifetimeModule,
@@ -45756,9 +45756,9 @@ export {
45756
45756
  ph as Volume,
45757
45757
  $ as VolumeParameter,
45758
45758
  gy as VolumeProfile,
45759
- $D as WaitForFrames,
45760
- xO as WaitForPromise,
45761
- U0 as WaitForSeconds,
45759
+ ND as WaitForFrames,
45760
+ yO as WaitForPromise,
45761
+ F0 as WaitForSeconds,
45762
45762
  _o as Watch,
45763
45763
  Pf as WebARCameraBackground,
45764
45764
  mn as WebARSessionRoot,
@@ -45776,25 +45776,25 @@ export {
45776
45776
  li as XRState,
45777
45777
  bs as XRStateFlag,
45778
45778
  GL as __Ignore,
45779
- UD as __internalNotifyObjectDestroyed,
45779
+ FD as __internalNotifyObjectDestroyed,
45780
45780
  bo as activeInHierarchyFieldName,
45781
45781
  Iv as addAttributeChangeCallback,
45782
45782
  Gn as addComponent,
45783
45783
  a2 as addCustomExtensionPlugin,
45784
45784
  Ea as addNewComponent,
45785
- dg as addPatch,
45786
- Sg as apply,
45785
+ hg as addPatch,
45786
+ xg as apply,
45787
45787
  KD as applyHMRChanges,
45788
- Jk as applyPrototypeExtensions,
45789
- Mk as beginListenDestroy,
45790
- Tk as beginListenInstantiate,
45791
- l0 as binaryIdentifierCasts,
45788
+ Xk as applyPrototypeExtensions,
45789
+ Sk as beginListenDestroy,
45790
+ kk as beginListenInstantiate,
45791
+ a0 as binaryIdentifierCasts,
45792
45792
  VD as build_scene_functions,
45793
45793
  da as builtinComponentKeyName,
45794
45794
  Yx as calculateProgress01,
45795
45795
  bD as clearMessages,
45796
45796
  n2 as colorSerializer,
45797
- Uk as compareAssociation,
45797
+ Lk as compareAssociation,
45798
45798
  np as componentSerializer,
45799
45799
  F1 as copyTexture,
45800
45800
  dM as createMotion,
@@ -45806,7 +45806,7 @@ export {
45806
45806
  xu as delayForFrames,
45807
45807
  rm as deserializeObject,
45808
45808
  Ki as destroy,
45809
- oO as destroyComponentInstance,
45809
+ eO as destroyComponentInstance,
45810
45810
  SE as determineMimeTypeFromExtension,
45811
45811
  Ae as disposeObjectResources,
45812
45812
  xs as disposeStream,
@@ -45815,25 +45815,25 @@ export {
45815
45815
  s2 as euler,
45816
45816
  o2 as eventListSerializer,
45817
45817
  b2 as exportAsGLTF,
45818
- D0 as findByGuid,
45818
+ L0 as findByGuid,
45819
45819
  Xc as findObjectOfType,
45820
- rO as findObjectsOfType,
45821
- g0 as findResourceUsers,
45820
+ tO as findObjectsOfType,
45821
+ m0 as findResourceUsers,
45822
45822
  vM as fitCamera,
45823
45823
  $1 as fitObjectIntoVolume,
45824
45824
  Qa as foreachComponent,
45825
- Pg as foreachComponentEnumerator,
45825
+ Cg as foreachComponentEnumerator,
45826
45826
  SD as forward,
45827
- zO as generateQRCode,
45828
- Rk as generateSeed,
45827
+ DO as generateQRCode,
45828
+ Pk as generateSeed,
45829
45829
  di as getBoundingBox,
45830
45830
  w1 as getCameraController,
45831
45831
  el as getComponent,
45832
45832
  Ru as getComponentInChildren,
45833
- Hd as getComponentInParent,
45833
+ Vd as getComponentInParent,
45834
45834
  Eu as getComponents,
45835
45835
  qc as getComponentsInChildren,
45836
- xg as getComponentsInParent,
45836
+ wg as getComponentsInParent,
45837
45837
  uR as getFormattedDate,
45838
45838
  Ft as getIconElement,
45839
45839
  q_ as getIconTexture,
@@ -45842,9 +45842,9 @@ export {
45842
45842
  x as getParam,
45843
45843
  CD as getParentHierarchyPath,
45844
45844
  rD as getPath,
45845
- AD as getPeerOptions,
45846
- FP as getPeerjsInstance,
45847
- zD as getResourceUserCount,
45845
+ TD as getPeerOptions,
45846
+ IP as getPeerjsInstance,
45847
+ UD as getResourceUserCount,
45848
45848
  M1 as getTempColor,
45849
45849
  bi as getTempQuaternion,
45850
45850
  z as getTempVector,
@@ -45864,33 +45864,33 @@ export {
45864
45864
  ER as imageToCanvas,
45865
45865
  Rr as instantiate,
45866
45866
  KE as invokeLoadedImportPluginHooks,
45867
- MP as invokeXRSessionEnd,
45868
- OP as invokeXRSessionStart,
45869
- hO as isActiveInHierarchy,
45867
+ SP as invokeXRSessionEnd,
45868
+ xP as invokeXRSessionStart,
45869
+ oO as isActiveInHierarchy,
45870
45870
  Qc as isActiveSelf,
45871
45871
  dD as isAndroidDevice,
45872
45872
  B1 as isAnimationAction,
45873
- i0 as isComponent,
45873
+ W0 as isComponent,
45874
45874
  iD as isDebugMode,
45875
45875
  aD as isDesktop,
45876
45876
  Xa as isDestroyed,
45877
45877
  L as isDevEnvironment,
45878
- FD as isDisposed,
45878
+ BD as isDisposed,
45879
45879
  _2 as isExporting,
45880
- vP as isGLTFModel,
45880
+ zO as isGLTFModel,
45881
45881
  JC as isHostedOnGlitch,
45882
45882
  tb as isHotReloadEnabled,
45883
45883
  YD as isHotReloading,
45884
45884
  cD as isIPad,
45885
- $O as isIconElement,
45885
+ BO as isIconElement,
45886
45886
  Qi as isLocalNetwork,
45887
45887
  fD as isMacOS,
45888
45888
  lD as isMobileDevice,
45889
45889
  uD as isMozillaXR,
45890
45890
  gD as isQuest,
45891
- gk as isResourceTrackingEnabled,
45891
+ dk as isResourceTrackingEnabled,
45892
45892
  mD as isSafari,
45893
- Cg as isUsingInstancing,
45893
+ Sg as isUsingInstancing,
45894
45894
  pD as isiOS,
45895
45895
  hD as isiPad,
45896
45896
  m2 as loadAsset,
@@ -45903,13 +45903,13 @@ export {
45903
45903
  sD as makeId,
45904
45904
  i1 as makeIdFromRandomWords,
45905
45905
  Ji as makeNameSafe,
45906
- dO as markAsInstancedRendered,
45906
+ rO as markAsInstancedRendered,
45907
45907
  yD as microphonePermissionsGranted,
45908
45908
  tD as nameof,
45909
45909
  e1 as nameofFactory,
45910
45910
  RM as objectSerializer,
45911
- RD as offXRSessionEnd,
45912
- ED as offXRSessionStart,
45911
+ ED as offXRSessionEnd,
45912
+ MD as offXRSessionStart,
45913
45913
  QD as onAfterRender,
45914
45914
  XD as onBeforeRender,
45915
45915
  GD as onClear,
@@ -45917,15 +45917,15 @@ export {
45917
45917
  V0 as onInitialized,
45918
45918
  Eg as onStart,
45919
45919
  QO as onUpdate,
45920
- o0 as onXRSessionEnd,
45921
- fg as onXRSessionStart,
45920
+ s0 as onXRSessionEnd,
45921
+ ug as onXRSessionStart,
45922
45922
  kL as parseSync,
45923
45923
  W1 as placeOnSurface,
45924
45924
  Gv as postprocessFBXMaterials,
45925
45925
  i2 as prefix,
45926
45926
  t1 as pushState,
45927
45927
  oD as randomNumber,
45928
- c0 as registerBinaryType,
45928
+ l0 as registerBinaryType,
45929
45929
  Mg as registerComponent,
45930
45930
  bw as registerComponentExtension,
45931
45931
  Mn as registerCustomEffectType,
@@ -45933,37 +45933,37 @@ export {
45933
45933
  Pm as registerExtensions,
45934
45934
  nM as registerHotReloadType,
45935
45935
  t0 as registerLoader,
45936
- Ik as registerPrefabProvider,
45937
- eO as registerPrototypeExtensions,
45938
- k0 as registerType,
45936
+ Mk as registerPrefabProvider,
45937
+ Qk as registerPrototypeExtensions,
45938
+ P0 as registerType,
45939
45939
  s1 as relativePathPrefix,
45940
45940
  Lv as removeAttributeChangeCallback,
45941
- A0 as removeComponent,
45941
+ T0 as removeComponent,
45942
45942
  l2 as removeCustomImportExtensionType,
45943
- MD as removePatch,
45943
+ OD as removePatch,
45944
45944
  Eo as resolveUrl,
45945
45945
  n1 as sanitizeString,
45946
45946
  hL as saveImage,
45947
45947
  p2 as screenshot,
45948
45948
  Wx as screenshot2,
45949
- x0 as sendDestroyed,
45949
+ w0 as sendDestroyed,
45950
45950
  u as serializable,
45951
- Hk as serializeObject,
45951
+ zk as serializeObject,
45952
45952
  et as serializeable,
45953
45953
  pd as setActive,
45954
45954
  u1 as setAllowBalloonMessages,
45955
45955
  _D as setAllowOverlayMessages,
45956
45956
  Gp as setAutoFitEnabled,
45957
45957
  i_ as setCameraController,
45958
- uO as setDestroyed,
45958
+ aO as setDestroyed,
45959
45959
  kD as setDevEnvironment,
45960
- yk as setDisposable,
45960
+ uk as setDisposable,
45961
45961
  Al as setDontDestroy,
45962
45962
  Yy as setOrAddParamsToUrl,
45963
45963
  nD as setParam,
45964
45964
  Id as setParamWithoutReload,
45965
- ID as setPeerOptions,
45966
- BD as setResourceTrackingEnabled,
45965
+ AD as setPeerOptions,
45966
+ jD as setResourceTrackingEnabled,
45967
45967
  Tv as setState,
45968
45968
  Hv as setVisibleInCustomShadowRendering,
45969
45969
  Vv as setWorldEuler,
@@ -45981,14 +45981,14 @@ export {
45981
45981
  vD as slerp,
45982
45982
  Ou as syncDestroy,
45983
45983
  Hw as syncField,
45984
- S0 as syncInstantiate,
45984
+ x0 as syncInstantiate,
45985
45985
  PD as textureToCanvas,
45986
45986
  o1 as toSourceId,
45987
- jP as tryCastBinary,
45987
+ TP as tryCastBinary,
45988
45988
  PE as tryDetermineMimetypeFromBinary,
45989
45989
  CE as tryDetermineMimetypeFromURL,
45990
45990
  Mc as tryFindObject,
45991
- BP as tryGetGuid,
45991
+ AP as tryGetGuid,
45992
45992
  sM as unregisterHotReloadType,
45993
45993
  Av as unwatchWrite,
45994
45994
  x1 as useForAutoFit,