PageSourceSearch

https://netcruzer.com/assets/index-BDJ9DtT_.js

js netcruzer.com collected 2026-09-26 12:25:24 UTC 1,344,768 bytes, 402 lines download raw bytes

vendor: 4,166 bytes, lines 1-9
1var yD=Object.defineProperty;var J0=e=>{throw TypeError(e)};var bD=(e,t,r)=>t in e?yD(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var nt=(e,t,r)=>bD(e,typeof t!="symbol"?t+"":t,r),hh=(e,t,r)=>t.has(e)||J0("Cannot "+r);var J=(e,t,r)=>(hh(e,t,"read from private field"),r?r.call(e):t.get(e)),Be=(e,t,r)=>t.has(e)?J0("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),xe=(e,t,r,n)=>(hh(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),ze=(e,t,r)=>(hh(e,t,"access private method"),r);var Uc=(e,t,r,n)=>({set _(o){xe(e,t,o,r)},get _(){return J(e,t,n)}});function vD(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const o in n)if(o!=="default"&&!(o in e)){const s=Object.getOwnPropertyDescriptor(n,o);s&&Object.defineProperty(e,o,s.get?s:{enumerable:!0,get:()=>n[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&n(l)}).observe(document,{childList:!0,subtree:!0});function r(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(o){if(o.ep)return;o.ep=!0;const s=r(o);fetch(o.href,s)}})();var Gc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function $u(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ph={exports:{}},Ls={},mh={exports:{}},Ue={};/**
2 * @license React
3 * react.production.min.js
4 *
5 * Copyright (c) Facebook, Inc. and its affiliates.
6 *
7 * This source code is licensed under the MIT license found in the
8 * LICENSE file in the root directory of this source tree.
9 */var ew;function wD(){if(ew)return Ue;ew=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),f=Symbol.iterator;function p(B){return B===null||typeof B!="object"?null:(B=f&&B[f]||B["@@iterator"],typeof B=="function"?B:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},x=Object.assign,b={};function w(B,W,Y){this.props=B,this.context=W,this.refs=b,this.updater=Y||g}w.prototype.isReactComponent={},w.prototype.setState=function(B,W){if(typeof B!="object"&&typeof B!="function"&&B!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,B,W,"setState")},w.prototype.forceUpdate=function(B){this.updater.enqueueForceUpdate(this,B,"forceUpdate")};function y(){}y.prototype=w.prototype;function S(B,W,Y){this.props=B,this.context=W,this.refs=b,this.updater=Y||g}var C=S.prototype=new y;C.constructor=S,x(C,w.prototype),C.isPureReactComponent=!0;var k=Array.isArray,A=Object.prototype.hasOwnProperty,N={current:null},D={key:!0,ref:!0,__self:!0,__source:!0};function _(B,W,Y){var ee,Z={},U=null,V=null;if(W!=null)for(ee in W.ref!==void 0&&(V=W.ref),W.key!==void 0&&(U=""+W.key),W)A.call(W,ee)&&!D.hasOwnProperty(ee)&&(Z[ee]=W[ee]);var te=arguments.length-2;if(te===1)Z.children=Y;else if(1<te){for(var ne=Array(te),ce=0;ce<te;ce++)ne[ce]=arguments[ce+2];Z.children=ne}if(B&&B.defaultProps)for(ee in te=B.defaultProps,te)Z[ee]===void 0&&(Z[ee]=te[ee]);return{$$typeof:e,type:B,key:U,ref:V,props:Z,_owner:N.current}}function F(B,W){return{$$typeof:e,type:B.type,key:W,ref:B.ref,props:B.props,_owner:B._owner}}
vendor: 11,478 bytes, lines 9-33
9function M(B){return typeof B=="object"&&B!==null&&B.$$typeof===e}function O(B){var W={"=":"=0",":":"=2"};return"$"+B.replace(/[=:]/g,function(Y){return W[Y]})}var j=/\/+/g;function I(B,W){return typeof B=="object"&&B!==null&&B.key!=null?O(""+B.key):W.toString(36)}function L(B,W,Y,ee,Z){var U=typeof B;(U==="undefined"||U==="boolean")&&(B=null);var V=!1;if(B===null)V=!0;else switch(U){case"string":case"number":V=!0;break;case"object":switch(B.$$typeof){case e:case t:V=!0}}if(V)return V=B,Z=Z(V),B=ee===""?"."+I(V,0):ee,k(Z)?(Y="",B!=null&&(Y=B.replace(j,"$&/")+"/"),L(Z,W,Y,"",function(ce){return ce})):Z!=null&&(M(Z)&&(Z=F(Z,Y+(!Z.key||V&&V.key===Z.key?"":(""+Z.key).replace(j,"$&/")+"/")+B)),W.push(Z)),1;if(V=0,ee=ee===""?".":ee+":",k(B))for(var te=0;te<B.length;te++){U=B[te];var ne=ee+I(U,te);V+=L(U,W,Y,ne,Z)}else if(ne=p(B),typeof ne=="function")for(B=ne.call(B),te=0;!(U=B.next()).done;)U=U.value,ne=ee+I(U,te++),V+=L(U,W,Y,ne,Z);else if(U==="object")throw W=String(B),Error("Objects are not valid as a React child (found: "+(W==="[object Object]"?"object with keys {"+Object.keys(B).join(", ")+"}":W)+"). If you meant to render a collection of children, use an array instead.");return V}function H(B,W,Y){if(B==null)return B;var ee=[],Z=0;return L(B,ee,"","",function(U){return W.call(Y,U,Z++)}),ee}function G(B){if(B._status===-1){var W=B._result;W=W(),W.then(function(Y){(B._status===0||B._status===-1)&&(B._status=1,B._result=Y)},function(Y){(B._status===0||B._status===-1)&&(B._status=2,B._result=Y)}),B._status===-1&&(B._status=0,B._result=W)}if(B._status===1)return B._result.default;throw B._result}var X={current:null},Q={transition:null},K={ReactCurrentDispatcher:X,ReactCurrentBatchConfig:Q,ReactCurrentOwner:N};function q(){throw Error("act(...) is not supported in production builds of React.")}return Ue.Children={map:H,forEach:function(B,W,Y){H(B,function(){W.apply(this,arguments)},Y)},count:function(B){var W=0;return H(B,function(){W++}),W},toArray:function(B){return H(B,function(W){return W})||[]},only:function(B){if(!M(B))throw Error("React.Children.only expected to receive a single React element child.");return B}},Ue.Component=w,Ue.Fragment=r,Ue.Profiler=o,Ue.PureComponent=S,Ue.StrictMode=n,Ue.Suspense=d,Ue.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=K,Ue.act=q,Ue.cloneElement=function(B,W,Y){if(B==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+B+".");var ee=x({},B.props),Z=B.key,U=B.ref,V=B._owner;if(W!=null){if(W.ref!==void 0&&(U=W.ref,V=N.current),W.key!==void 0&&(Z=""+W.key),B.type&&B.type.defaultProps)var te=B.type.defaultProps;for(ne in W)A.call(W,ne)&&!D.hasOwnProperty(ne)&&(ee[ne]=W[ne]===void 0&&te!==void 0?te[ne]:W[ne])}var ne=arguments.length-2;if(ne===1)ee.children=Y;else if(1<ne){te=Array(ne);for(var ce=0;ce<ne;ce++)te[ce]=arguments[ce+2];ee.children=te}return{$$typeof:e,type:B.type,key:Z,ref:U,props:ee,_owner:V}},Ue.createContext=function(B){return B={$$typeof:l,_currentValue:B,_currentValue2:B,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},B.Provider={$$typeof:s,_context:B},B.Consumer=B},Ue.createElement=_,Ue.createFactory=function(B){var W=_.bind(null,B);return W.type=B,W},Ue.createRef=function(){return{current:null}},Ue.forwardRef=function(B){return{$$typeof:c,render:B}},Ue.isValidElement=M,Ue.lazy=function(B){return{$$typeof:m,_payload:{_status:-1,_result:B},_init:G}},Ue.memo=function(B,W){return{$$typeof:h,type:B,compare:W===void 0?null:W}},Ue.startTransition=function(B){var W=Q.transition;Q.transition={};try{B()}finally{Q.transition=W}},Ue.unstable_act=q,Ue.useCallback=function(B,W){return X.current.useCallback(B,W)},Ue.useContext=function(B){return X.current.useContext(B)},Ue.useDebugValue=function(){},Ue.useDeferredValue=function(B){return X.current.useDeferredValue(B)},Ue.useEffect=function(B,W){return X.current.useEffect(B,W)},Ue.useId=function(){return X.current.useId()},Ue.useImperativeHandle=function(B,W,Y){return X.current.useImperativeHandle(B,W,Y)},Ue.useInsertionEffect=function(B,W){return X.current.useInsertionEffect(B,W)},Ue.useLayoutEffect=function(B,W){return X.current.useLayoutEffect(B,W)},Ue.useMemo=function(B,W){return X.current.useMemo(B,W)},Ue.useReducer=function(B,W,Y){return X.current.useReducer(B,W,Y)},Ue.useRef=function(B){return X.current.useRef(B)},Ue.useState=function(B){return X.current.useState(B)},Ue.useSyncExternalStore=function(B,W,Y){return X.current.useSyncExternalStore(B,W,Y)},Ue.useTransition=function(){return X.current.useTransition()},Ue.version="18.3.1",Ue}var tw;function Qu(){return tw||(tw=1,mh.exports=wD()),mh.exports}/**
10 * @license React
11 * react-jsx-runtime.production.min.js
12 *
13 * Copyright (c) Facebook, Inc. and its affiliates.
14 *
15 * This source code is licensed under the MIT license found in the
16 * LICENSE file in the root directory of this source tree.
17 */var rw;function SD(){if(rw)return Ls;rw=1;var e=Qu(),t=Symbol.for("react.element"),r=Symbol.for("react.fragment"),n=Object.prototype.hasOwnProperty,o=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function l(c,d,h){var m,f={},p=null,g=null;h!==void 0&&(p=""+h),d.key!==void 0&&(p=""+d.key),d.ref!==void 0&&(g=d.ref);for(m in d)n.call(d,m)&&!s.hasOwnProperty(m)&&(f[m]=d[m]);if(c&&c.defaultProps)for(m in d=c.defaultProps,d)f[m]===void 0&&(f[m]=d[m]);return{$$typeof:t,type:c,key:p,ref:g,props:f,_owner:o.current}}return Ls.Fragment=r,Ls.jsx=l,Ls.jsxs=l,Ls}var nw;function kD(){return nw||(nw=1,ph.exports=SD()),ph.exports}var R=kD(),P=Qu();const dr=$u(P),Ug=vD({__proto__:null,default:dr},[P]);var Vc={},gh={exports:{}},sr={},yh={exports:{}},bh={};/**
18 * @license React
19 * scheduler.production.min.js
20 *
21 * Copyright (c) Facebook, Inc. and its affiliates.
22 *
23 * This source code is licensed under the MIT license found in the
24 * LICENSE file in the root directory of this source tree.
25 */var iw;function xD(){return iw||(iw=1,(function(e){function t(Q,K){var q=Q.length;Q.push(K);e:for(;0<q;){var B=q-1>>>1,W=Q[B];if(0<o(W,K))Q[B]=K,Q[q]=W,q=B;else break e}}function r(Q){return Q.length===0?null:Q[0]}function n(Q){if(Q.length===0)return null;var K=Q[0],q=Q.pop();if(q!==K){Q[0]=q;e:for(var B=0,W=Q.length,Y=W>>>1;B<Y;){var ee=2*(B+1)-1,Z=Q[ee],U=ee+1,V=Q[U];if(0>o(Z,q))U<W&&0>o(V,Z)?(Q[B]=V,Q[U]=q,B=U):(Q[B]=Z,Q[ee]=q,B=ee);else if(U<W&&0>o(V,q))Q[B]=V,Q[U]=q,B=U;else break e}}return K}function o(Q,K){var q=Q.sortIndex-K.sortIndex;return q!==0?q:Q.id-K.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var l=Date,c=l.now();e.unstable_now=function(){return l.now()-c}}var d=[],h=[],m=1,f=null,p=3,g=!1,x=!1,b=!1,w=typeof setTimeout=="function"?setTimeout:null,y=typeof clearTimeout=="function"?clearTimeout:null,S=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function C(Q){for(var K=r(h);K!==null;){if(K.callback===null)n(h);else if(K.startTime<=Q)n(h),K.sortIndex=K.expirationTime,t(d,K);else break;K=r(h)}}function k(Q){if(b=!1,C(Q),!x)if(r(d)!==null)x=!0,G(A);else{var K=r(h);K!==null&&X(k,K.startTime-Q)}}function A(Q,K){x=!1,b&&(b=!1,y(_),_=-1),g=!0;var q=p;try{for(C(K),f=r(d);f!==null&&(!(f.expirationTime>K)||Q&&!O());){var B=f.callback;if(typeof B=="function"){f.callback=null,p=f.priorityLevel;var W=B(f.expirationTime<=K);K=e.unstable_now(),typeof W=="function"?f.callback=W:f===r(d)&&n(d),C(K)}else n(d);f=r(d)}if(f!==null)var Y=!0;else{var ee=r(h);ee!==null&&X(k,ee.startTime-K),Y=!1}return Y}finally{f=null,p=q,g=!1}}var N=!1,D=null,_=-1,F=5,M=-1;function O(){return!(e.unstable_now()-M<F)}function j(){if(D!==null){var Q=e.unstable_now();M=Q;var K=!0;try{K=D(!0,Q)}finally{K?I():(N=!1,D=null)}}else N=!1}var I;if(typeof S=="function")I=function(){S(j)};else if(typeof MessageChannel<"u"){var L=new MessageChannel,H=L.port2;L.port1.onmessage=j,I=function(){H.postMessage(null)}}else I=function(){w(j,0)};function G(Q){D=Q,N||(N=!0,I())}function X(Q,K){_=w(function(){Q(e.unstable_now())},K)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(Q){Q.callback=null},e.unstable_continueExecution=function(){x||g||(x=!0,G(A))},e.unstable_forceFrameRate=function(Q){0>Q||125<Q?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):F=0<Q?Math.floor(1e3/Q):5},e.unstable_getCurrentPriorityLevel=function(){return p},e.unstable_getFirstCallbackNode=function(){return r(d)},e.unstable_next=function(Q){switch(p){case 1:case 2:case 3:var K=3;break;default:K=p}var q=p;p=K;try{return Q()}finally{p=q}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(Q,K){switch(Q){case 1:case 2:case 3:case 4:case 5:break;default:Q=3}var q=p;p=Q;try{return K()}finally{p=q}},e.unstable_scheduleCallback=function(Q,K,q){var B=e.unstable_now();switch(typeof q=="object"&&q!==null?(q=q.delay,q=typeof q=="number"&&0<q?B+q:B):q=B,Q){case 1:var W=-1;break;case 2:W=250;break;case 5:W=1073741823;break;case 4:W=1e4;break;default:W=5e3}return W=q+W,Q={id:m++,callback:K,priorityLevel:Q,startTime:q,expirationTime:W,sortIndex:-1},q>B?(Q.sortIndex=q,t(h,Q),r(d)===null&&Q===r(h)&&(b?(y(_),_=-1):b=!0,X(k,q-B))):(Q.sortIndex=W,t(d,Q),x||g||(x=!0,G(A))),Q},e.unstable_shouldYield=O,e.unstable_wrapCallback=function(Q){var K=p;return function(){var q=p;p=K;try{return Q.apply(this,arguments)}finally{p=q}}}})(bh)),bh}var ow;function CD(){return ow||(ow=1,yh.exports=xD()),yh.exports}/**
26 * @license React
27 * react-dom.production.min.js
28 *
29 * Copyright (c) Facebook, Inc. and its affiliates.
30 *
31 * This source code is licensed under the MIT license found in the
32 * LICENSE file in the root directory of this source tree.
33 */var aw;function RD(){if(aw)return sr;aw=1;var e=Qu(),t=CD();function r(i){for(var a="https://reactjs.org/docs/error-decoder.html?invariant="+i,u=1;u<arguments.length;u++)a+="&args[]="+encodeURIComponent(arguments[u]);return"Minified React error #"+i+"; visit "+a+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var n=new Set,o={};function s(i,a){l(i,a),l(i+"Capture",a)}function l(i,a){for(o[i]=a,i=0;i<a.length;i++)n.add(a[i])}var c=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),d=Object.prototype.hasOwnProperty,h=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,m={},f={};function p(i){return d.call(f,i)?!0:d.call(m,i)?!1:h.test(i)?f[i]=!0:(m[i]=!0,!1)}function g(i,a,u,v){if(u!==null&&u.type===0)return!1;switch(typeof a){case"function":case"symbol":return!0;case"boolean":return v?!1:u!==null?!u.acceptsBooleans:(i=i.toLowerCase().slice(0,5),i!=="data-"&&i!=="aria-");default:return!1}}function x(i,a,u,v){if(a===null||typeof a>"u"||g(i,a,u,v))return!0;
vendor: 47,176 bytes, lines 33-38
33if(v)return!1;if(u!==null)switch(u.type){case 3:return!a;case 4:return a===!1;case 5:return isNaN(a);case 6:return isNaN(a)||1>a}return!1}function b(i,a,u,v,T,E,z){this.acceptsBooleans=a===2||a===3||a===4,this.attributeName=v,this.attributeNamespace=T,this.mustUseProperty=u,this.propertyName=i,this.type=a,this.sanitizeURL=E,this.removeEmptyString=z}var w={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(i){w[i]=new b(i,0,!1,i,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(i){var a=i[0];w[a]=new b(a,1,!1,i[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(i){w[i]=new b(i,2,!1,i.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(i){w[i]=new b(i,2,!1,i,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(i){w[i]=new b(i,3,!1,i.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(i){w[i]=new b(i,3,!0,i,null,!1,!1)}),["capture","download"].forEach(function(i){w[i]=new b(i,4,!1,i,null,!1,!1)}),["cols","rows","size","span"].forEach(function(i){w[i]=new b(i,6,!1,i,null,!1,!1)}),["rowSpan","start"].forEach(function(i){w[i]=new b(i,5,!1,i.toLowerCase(),null,!1,!1)});var y=/[\-:]([a-z])/g;function S(i){return i[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(i){var a=i.replace(y,S);w[a]=new b(a,1,!1,i,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(i){var a=i.replace(y,S);w[a]=new b(a,1,!1,i,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(i){var a=i.replace(y,S);w[a]=new b(a,1,!1,i,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(i){w[i]=new b(i,1,!1,i.toLowerCase(),null,!1,!1)}),w.xlinkHref=new b("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(i){w[i]=new b(i,1,!1,i.toLowerCase(),null,!0,!0)});function C(i,a,u,v){var T=w.hasOwnProperty(a)?w[a]:null;(T!==null?T.type!==0:v||!(2<a.length)||a[0]!=="o"&&a[0]!=="O"||a[1]!=="n"&&a[1]!=="N")&&(x(a,u,T,v)&&(u=null),v||T===null?p(a)&&(u===null?i.removeAttribute(a):i.setAttribute(a,""+u)):T.mustUseProperty?i[T.propertyName]=u===null?T.type===3?!1:"":u:(a=T.attributeName,v=T.attributeNamespace,u===null?i.removeAttribute(a):(T=T.type,u=T===3||T===4&&u===!0?"":""+u,v?i.setAttributeNS(v,a,u):i.setAttribute(a,u))))}var k=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,A=Symbol.for("react.element"),N=Symbol.for("react.portal"),D=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),F=Symbol.for("react.profiler"),M=Symbol.for("react.provider"),O=Symbol.for("react.context"),j=Symbol.for("react.forward_ref"),I=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),H=Symbol.for("react.memo"),G=Symbol.for("react.lazy"),X=Symbol.for("react.offscreen"),Q=Symbol.iterator;function K(i){return i===null||typeof i!="object"?null:(i=Q&&i[Q]||i["@@iterator"],typeof i=="function"?i:null)}var q=Object.assign,B;function W(i){if(B===void 0)try{throw Error()}catch(u){var a=u.stack.trim().match(/\n( *(at )?)/);B=a&&a[1]||""}return`
34`+B+i}var Y=!1;function ee(i,a){if(!i||Y)return"";Y=!0;var u=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(a)if(a=function(){throw Error()},Object.defineProperty(a.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(a,[])}catch(ue){var v=ue}Reflect.construct(i,[],a)}else{try{a.call()}catch(ue){v=ue}i.call(a.prototype)}else{try{throw Error()}catch(ue){v=ue}i()}}catch(ue){if(ue&&v&&typeof ue.stack=="string"){for(var T=ue.stack.split(`
35`),E=v.stack.split(`
36`),z=T.length-1,$=E.length-1;1<=z&&0<=$&&T[z]!==E[$];)$--;for(;1<=z&&0<=$;z--,$--)if(T[z]!==E[$]){if(z!==1||$!==1)do if(z--,$--,0>$||T[z]!==E[$]){var re=`
37`+T[z].replace(" at new "," at ");return i.displayName&&re.includes("<anonymous>")&&(re=re.replace("<anonymous>",i.displayName)),re}while(1<=z&&0<=$);break}}}finally{Y=!1,Error.prepareStackTrace=u}return(i=i?i.displayName||i.name:"")?W(i):""}function Z(i){switch(i.tag){case 5:return W(i.type);case 16:return W("Lazy");case 13:return W("Suspense");case 19:return W("SuspenseList");case 0:case 2:case 15:return i=ee(i.type,!1),i;case 11:return i=ee(i.type.render,!1),i;case 1:return i=ee(i.type,!0),i;default:return""}}function U(i){if(i==null)return null;if(typeof i=="function")return i.displayName||i.name||null;if(typeof i=="string")return i;switch(i){case D:return"Fragment";case N:return"Portal";case F:return"Profiler";case _:return"StrictMode";case I:return"Suspense";case L:return"SuspenseList"}if(typeof i=="object")switch(i.$$typeof){case O:return(i.displayName||"Context")+".Consumer";case M:return(i._context.displayName||"Context")+".Provider";case j:var a=i.render;return i=i.displayName,i||(i=a.displayName||a.name||"",i=i!==""?"ForwardRef("+i+")":"ForwardRef"),i;case H:return a=i.displayName||null,a!==null?a:U(i.type)||"Memo";case G:a=i._payload,i=i._init;try{return U(i(a))}catch{}}return null}function V(i){var a=i.type;switch(i.tag){case 24:return"Cache";case 9:return(a.displayName||"Context")+".Consumer";case 10:return(a._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return i=a.render,i=i.displayName||i.name||"",a.displayName||(i!==""?"ForwardRef("+i+")":"ForwardRef");case 7:return"Fragment";case 5:return a;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return U(a);case 8:return a===_?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof a=="function")return a.displayName||a.name||null;if(typeof a=="string")return a}return null}function te(i){switch(typeof i){case"boolean":case"number":case"string":case"undefined":return i;case"object":return i;default:return""}}function ne(i){var a=i.type;return(i=i.nodeName)&&i.toLowerCase()==="input"&&(a==="checkbox"||a==="radio")}function ce(i){var a=ne(i)?"checked":"value",u=Object.getOwnPropertyDescriptor(i.constructor.prototype,a),v=""+i[a];if(!i.hasOwnProperty(a)&&typeof u<"u"&&typeof u.get=="function"&&typeof u.set=="function"){var T=u.get,E=u.set;return Object.defineProperty(i,a,{configurable:!0,get:function(){return T.call(this)},set:function(z){v=""+z,E.call(this,z)}}),Object.defineProperty(i,a,{enumerable:u.enumerable}),{getValue:function(){return v},setValue:function(z){v=""+z},stopTracking:function(){i._valueTracker=null,delete i[a]}}}}function fe(i){i._valueTracker||(i._valueTracker=ce(i))}function ye(i){if(!i)return!1;var a=i._valueTracker;if(!a)return!0;var u=a.getValue(),v="";return i&&(v=ne(i)?i.checked?"true":"false":i.value),i=v,i!==u?(a.setValue(i),!0):!1}function ke(i){if(i=i||(typeof document<"u"?document:void 0),typeof i>"u")return null;try{return i.activeElement||i.body}catch{return i.body}}function Ae(i,a){var u=a.checked;return q({},a,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:u??i._wrapperState.initialChecked})}function Ie(i,a){var u=a.defaultValue==null?"":a.defaultValue,v=a.checked!=null?a.checked:a.defaultChecked;u=te(a.value!=null?a.value:u),i._wrapperState={initialChecked:v,initialValue:u,controlled:a.type==="checkbox"||a.type==="radio"?a.checked!=null:a.value!=null}}function et(i,a){a=a.checked,a!=null&&C(i,"checked",a,!1)}function He(i,a){et(i,a);var u=te(a.value),v=a.type;if(u!=null)v==="number"?(u===0&&i.value===""||i.value!=u)&&(i.value=""+u):i.value!==""+u&&(i.value=""+u);else if(v==="submit"||v==="reset"){i.removeAttribute("value");return}a.hasOwnProperty("value")?de(i,a.type,u):a.hasOwnProperty("defaultValue")&&de(i,a.type,te(a.defaultValue)),a.checked==null&&a.defaultChecked!=null&&(i.defaultChecked=!!a.defaultChecked)}function ae(i,a,u){if(a.hasOwnProperty("value")||a.hasOwnProperty("defaultValue")){var v=a.type;if(!(v!=="submit"&&v!=="reset"||a.value!==void 0&&a.value!==null))return;a=""+i._wrapperState.initialValue,u||a===i.value||(i.value=a),i.defaultValue=a}u=i.name,u!==""&&(i.name=""),i.defaultChecked=!!i._wrapperState.initialChecked,u!==""&&(i.name=u)}function de(i,a,u){(a!=="number"||ke(i.ownerDocument)!==i)&&(u==null?i.defaultValue=""+i._wrapperState.initialValue:i.defaultValue!==""+u&&(i.defaultValue=""+u))}var be=Array.isArray;function we(i,a,u,v){if(i=i.options,a){a={};for(var T=0;T<u.length;T++)a["$"+u[T]]=!0;for(u=0;u<i.length;u++)T=a.hasOwnProperty("$"+i[u].value),i[u].selected!==T&&(i[u].selected=T),T&&v&&(i[u].defaultSelected=!0)}else{for(u=""+te(u),a=null,T=0;T<i.length;T++){if(i[T].value===u){i[T].selected=!0,v&&(i[T].defaultSelected=!0);return}a!==null||i[T].disabled||(a=i[T])}a!==null&&(a.selected=!0)}}function he(i,a){if(a.dangerouslySetInnerHTML!=null)throw Error(r(91));return q({},a,{value:void 0,defaultValue:void 0,children:""+i._wrapperState.initialValue})}function Fe(i,a){var u=a.value;if(u==null){if(u=a.children,a=a.defaultValue,u!=null){if(a!=null)throw Error(r(92));if(be(u)){if(1<u.length)throw Error(r(93));u=u[0]}a=u}a==null&&(a=""),u=a}i._wrapperState={initialValue:te(u)}}function Pe(i,a){var u=te(a.value),v=te(a.defaultValue);u!=null&&(u=""+u,u!==i.value&&(i.value=u),a.defaultValue==null&&i.defaultValue!==u&&(i.defaultValue=u)),v!=null&&(i.defaultValue=""+v)}function We(i){var a=i.textContent;a===i._wrapperState.initialValue&&a!==""&&a!==null&&(i.value=a)}function $t(i){switch(i){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function hr(i,a){return i==null||i==="http://www.w3.org/1999/xhtml"?$t(a):i==="http://www.w3.org/2000/svg"&&a==="foreignObject"?"http://www.w3.org/1999/xhtml":i}var Je,Pl=(function(i){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(a,u,v,T){MSApp.execUnsafeLocalFunction(function(){return i(a,u,v,T)})}:i})(function(i,a){if(i.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in i)i.innerHTML=a;else{for(Je=Je||document.createElement("div"),Je.innerHTML="<svg>"+a.valueOf().toString()+"</svg>",a=Je.firstChild;i.firstChild;)i.removeChild(i.firstChild);for(;a.firstChild;)i.appendChild(a.firstChild)}});function tt(i,a){if(a){var u=i.firstChild;if(u&&u===i.lastChild&&u.nodeType===3){u.nodeValue=a;return}}i.textContent=a}var tr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},SE=["Webkit","ms","Moz","O"];Object.keys(tr).forEach(function(i){SE.forEach(function(a){a=a+i.charAt(0).toUpperCase()+i.substring(1),tr[a]=tr[i]})});function pb(i,a,u){return a==null||typeof a=="boolean"||a===""?"":u||typeof a!="number"||a===0||tr.hasOwnProperty(i)&&tr[i]?(""+a).trim():a+"px"}function mb(i,a){i=i.style;for(var u in a)if(a.hasOwnProperty(u)){var v=u.indexOf("--")===0,T=pb(u,a[u],v);u==="float"&&(u="cssFloat"),v?i.setProperty(u,T):i[u]=T}}var kE=q({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Cd(i,a){if(a){if(kE[i]&&(a.children!=null||a.dangerouslySetInnerHTML!=null))throw Error(r(137,i));if(a.dangerouslySetInnerHTML!=null){if(a.children!=null)throw Error(r(60));if(typeof a.dangerouslySetInnerHTML!="object"||!("__html"in a.dangerouslySetInnerHTML))throw Error(r(61))}if(a.style!=null&&typeof a.style!="object")throw Error(r(62))}}function Rd(i,a){if(i.indexOf("-")===-1)return typeof a.is=="string";switch(i){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ad=null;function Td(i){return i=i.target||i.srcElement||window,i.correspondingUseElement&&(i=i.correspondingUseElement),i.nodeType===3?i.parentNode:i}var Ed=null,Fo=null,Io=null;function gb(i){if(i=vs(i)){if(typeof Ed!="function")throw Error(r(280));var a=i.stateNode;a&&(a=oc(a),Ed(i.stateNode,i.type,a))}}function yb(i){Fo?Io?Io.push(i):Io=[i]:Fo=i}function bb(){if(Fo){var i=Fo,a=Io;if(Io=Fo=null,gb(i),a)for(i=0;i<a.length;i++)gb(a[i])}}function vb(i,a){return i(a)}function wb(){}var _d=!1;function Sb(i,a,u){if(_d)return i(a,u);_d=!0;try{return vb(i,a,u)}finally{_d=!1,(Fo!==null||Io!==null)&&(wb(),bb())}}function Za(i,a){var u=i.stateNode;if(u===null)return null;var v=oc(u);if(v===null)return null;u=v[a];e:switch(a){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(v=!v.disabled)||(i=i.type,v=!(i==="button"||i==="input"||i==="select"||i==="textarea")),i=!v;break e;default:i=!1}if(i)return null;if(u&&typeof u!="function")throw Error(r(231,a,typeof u));return u}var Dd=!1;if(c)try{var Ja={};Object.defineProperty(Ja,"passive",{get:function(){Dd=!0}}),window.addEventListener("test",Ja,Ja),window.removeEventListener("test",Ja,Ja)}catch{Dd=!1}function xE(i,a,u,v,T,E,z,$,re){var ue=Array.prototype.slice.call(arguments,3);try{a.apply(u,ue)}catch(me){this.onError(me)}}var es=!1,jl=null,Fl=!1,Nd=null,CE={onError:function(i){es=!0,jl=i}};function RE(i,a,u,v,T,E,z,$,re){es=!1,jl=null,xE.apply(CE,arguments)}function AE(i,a,u,v,T,E,z,$,re){if(RE.apply(this,arguments),es){if(es){var ue=jl;es=!1,jl=null}else throw Error(r(198));Fl||(Fl=!0,Nd=ue)}}function zi(i){var a=i,u=i;if(i.alternate)for(;a.return;)a=a.return;else{i=a;do a=i,(a.flags&4098)!==0&&(u=a.return),i=a.return;while(i)}return a.tag===3?u:null}function kb(i){if(i.tag===13){var a=i.memoizedState;if(a===null&&(i=i.alternate,i!==null&&(a=i.memoizedState)),a!==null)return a.dehydrated}return null}function xb(i){if(zi(i)!==i)throw Error(r(188))}function TE(i){var a=i.alternate;if(!a){if(a=zi(i),a===null)throw Error(r(188));return a!==i?null:i}for(var u=i,v=a;;){var T=u.return;if(T===null)break;var E=T.alternate;if(E===null){if(v=T.return,v!==null){u=v;continue}break}if(T.child===E.child){for(E=T.child;E;){if(E===u)return xb(T),i;if(E===v)return xb(T),a;E=E.sibling}throw Error(r(188))}if(u.return!==v.return)u=T,v=E;else{for(var z=!1,$=T.child;$;){if($===u){z=!0,u=T,v=E;break}if($===v){z=!0,v=T,u=E;break}$=$.sibling}if(!z){for($=E.child;$;){if($===u){z=!0,u=E,v=T;break}if($===v){z=!0,v=E,u=T;break}$=$.sibling}if(!z)throw Error(r(189))}}if(u.alternate!==v)throw Error(r(190))}if(u.tag!==3)throw Error(r(188));return u.stateNode.current===u?i:a}function Cb(i){return i=TE(i),i!==null?Rb(i):null}function Rb(i){if(i.tag===5||i.tag===6)return i;for(i=i.child;i!==null;){var a=Rb(i);if(a!==null)return a;i=i.sibling}return null}var Ab=t.unstable_scheduleCallback,Tb=t.unstable_cancelCallback,EE=t.unstable_shouldYield,_E=t.unstable_requestPaint,gt=t.unstable_now,DE=t.unstable_getCurrentPriorityLevel,Bd=t.unstable_ImmediatePriority,Eb=t.unstable_UserBlockingPriority,Il=t.unstable_NormalPriority,NE=t.unstable_LowPriority,_b=t.unstable_IdlePriority,Wl=null,Jr=null;function BE(i){if(Jr&&typeof Jr.onCommitFiberRoot=="function")try{Jr.onCommitFiberRoot(Wl,i,void 0,(i.current.flags&128)===128)}catch{}}var Fr=Math.clz32?Math.clz32:ME,OE=Math.log,LE=Math.LN2;function ME(i){return i>>>=0,i===0?32:31-(OE(i)/LE|0)|0}var zl=64,Hl=4194304;function ts(i){switch(i&-i){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return i&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return i&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return i}}function ql(i,a){var u=i.pendingLanes;if(u===0)return 0;var v=0,T=i.suspendedLanes,E=i.pingedLanes,z=u&268435455;if(z!==0){var $=z&~T;$!==0?v=ts($):(E&=z,E!==0&&(v=ts(E)))}else z=u&~T,z!==0?v=ts(z):E!==0&&(v=ts(E));if(v===0)return 0;if(a!==0&&a!==v&&(a&T)===0&&(T=v&-v,E=a&-a,T>=E||T===16&&(E&4194240)!==0))return a;if((v&4)!==0&&(v|=u&16),a=i.entangledLanes,a!==0)for(i=i.entanglements,a&=v;0<a;)u=31-Fr(a),T=1<<u,v|=i[u],a&=~T;return v}function PE(i,a){switch(i){case 1:case 2:case 4:return a+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function jE(i,a){for(var u=i.suspendedLanes,v=i.pingedLanes,T=i.expirationTimes,E=i.pendingLanes;0<E;){var z=31-Fr(E),$=1<<z,re=T[z];re===-1?(($&u)===0||($&v)!==0)&&(T[z]=PE($,a)):re<=a&&(i.expiredLanes|=$),E&=~$}}function Od(i){return i=i.pendingLanes&-1073741825,i!==0?i:i&1073741824?1073741824:0}function Db(){var i=zl;return zl<<=1,(zl&4194240)===0&&(zl=64),i}function Ld(i){for(var a=[],u=0;31>u;u++)a.push(i);return a}function rs(i,a,u){i.pendingLanes|=a,a!==536870912&&(i.suspendedLanes=0,i.pingedLanes=0),i=i.eventTimes,a=31-Fr(a),i[a]=u}function FE(i,a){var u=i.pendingLanes&~a;i.pendingLanes=a,i.suspendedLanes=0,i.pingedLanes=0,i.expiredLanes&=a,i.mutableReadLanes&=a,i.entangledLanes&=a,a=i.entanglements;var v=i.eventTimes;for(i=i.expirationTimes;0<u;){var T=31-Fr(u),E=1<<T;a[T]=0,v[T]=-1,i[T]=-1,u&=~E}}function Md(i,a){var u=i.entangledLanes|=a;for(i=i.entanglements;u;){var v=31-Fr(u),T=1<<v;T&a|i[v]&a&&(i[v]|=a),u&=~T}}var Ze=0;function Nb(i){return i&=-i,1<i?4<i?(i&268435455)!==0?16:536870912:4:1}var Bb,Pd,Ob,Lb,Mb,jd=!1,Ul=[],Hn=null,qn=null,Un=null,ns=new Map,is=new Map,Gn=[],IE="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Pb(i,a){switch(i){case"focusin":case"focusout":Hn=null;break;case"dragenter":case"dragleave":qn=null;break;case"mouseover":case"mouseout":Un=null;break;case"pointerover":case"pointerout":ns.delete(a.pointerId);break;case"gotpointercapture":case"lostpointercapture":is.delete(a.pointerId)}}function os(i,a,u,v,T,E){return i===null||i.nativeEvent!==E?(i={blockedOn:a,domEventName:u,eventSystemFlags:v,nativeEvent:E,targetContainers:[T]},a!==null&&(a=vs(a),a!==null&&Pd(a)),i):(i.eventSystemFlags|=v,a=i.targetContainers,T!==null&&a.indexOf(T)===-1&&a.push(T),i)}function WE(i,a,u,v,T){switch(a){case"focusin":return Hn=os(Hn,i,a,u,v,T),!0;case"dragenter":return qn=os(qn,i,a,u,v,T),!0;case"mouseover":return Un=os(Un,i,a,u,v,T),!0;case"pointerover":var E=T.pointerId;return ns.set(E,os(ns.get(E)||null,i,a,u,v,T)),!0;case"gotpointercapture":return E=T.pointerId,is.set(E,os(is.get(E)||null,i,a,u,v,T)),!0}return!1}function jb(i){var a=Hi(i.target);if(a!==null){var u=zi(a);if(u!==null){if(a=u.tag,a===13){if(a=kb(u),a!==null){i.blockedOn=a,Mb(i.priority,function(){Ob(u)});return}}else if(a===3&&u.stateNode.current.memoizedState.isDehydrated){i.blockedOn=u.tag===3?u.stateNode.containerInfo:null;return}}}i.blockedOn=null}function Gl(i){if(i.blockedOn!==null)return!1;for(var a=i.targetContainers;0<a.length;){var u=Id(i.domEventName,i.eventSystemFlags,a[0],i.nativeEvent);if(u===null){u=i.nativeEvent;var v=new u.constructor(u.type,u);Ad=v,u.target.dispatchEvent(v),Ad=null}else return a=vs(u),a!==null&&Pd(a),i.blockedOn=u,!1;a.shift()}return!0}function Fb(i,a,u){Gl(i)&&u.delete(a)}function zE(){jd=!1,Hn!==null&&Gl(Hn)&&(Hn=null),qn!==null&&Gl(qn)&&(qn=null),Un!==null&&Gl(Un)&&(Un=null),ns.forEach(Fb),is.forEach(Fb)}function as(i,a){i.blockedOn===a&&(i.blockedOn=null,jd||(jd=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,zE)))}function ss(i){function a(T){return as(T,i)}if(0<Ul.length){as(Ul[0],i);for(var u=1;u<Ul.length;u++){var v=Ul[u];v.blockedOn===i&&(v.blockedOn=null)}}for(Hn!==null&&as(Hn,i),qn!==null&&as(qn,i),Un!==null&&as(Un,i),ns.forEach(a),is.forEach(a),u=0;u<Gn.length;u++)v=Gn[u],v.blockedOn===i&&(v.blockedOn=null);for(;0<Gn.length&&(u=Gn[0],u.blockedOn===null);)jb(u),u.blockedOn===null&&Gn.shift()}var Wo=k.ReactCurrentBatchConfig,Vl=!0;function HE(i,a,u,v){var T=Ze,E=Wo.transition;Wo.transition=null;try{Ze=1,Fd(i,a,u,v)}finally{Ze=T,Wo.transition=E}}function qE(i,a,u,v){var T=Ze,E=Wo.transition;Wo.transition=null;try{Ze=4,Fd(i,a,u,v)}finally{Ze=T,Wo.transition=E}}function Fd(i,a,u,v){if(Vl){var T=Id(i,a,u,v);if(T===null)rf(i,a,v,Yl,u),Pb(i,v);else if(WE(T,i,a,u,v))v.stopPropagation();else if(Pb(i,v),a&4&&-1<IE.indexOf(i)){for(;T!==null;){var E=vs(T);if(E!==null&&Bb(E),E=Id(i,a,u,v),E===null&&rf(i,a,v,Yl,u),E===T)break;T=E}T!==null&&v.stopPropagation()}else rf(i,a,v,null,u)}}var Yl=null;function Id(i,a,u,v){if(Yl=null,i=Td(v),i=Hi(i),i!==null)if(a=zi(i),a===null)i=null;else if(u=a.tag,u===13){if(i=kb(a),i!==null)return i;i=null}else if(u===3){if(a.stateNode.current.memoizedState.isDehydrated)return a.tag===3?a.stateNode.containerInfo:null;i=null}else a!==i&&(i=null);return Yl=i,null}function Ib(i){switch(i){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(DE()){case Bd:return 1;case Eb:return 4;case Il:case NE:return 16;case _b:return 536870912;default:return 16}default:return 16}}var Vn=null,Wd=null,Kl=null;function Wb(){if(Kl)return Kl;var i,a=Wd,u=a.length,v,T="value"in Vn?Vn.value:Vn.textContent,E=T.length;for(i=0;i<u&&a[i]===T[i];i++);var z=u-i;for(v=1;v<=z&&a[u-v]===T[E-v];v++);return Kl=T.slice(i,1<v?1-v:void 0)}function Xl(i){var a=i.keyCode;return"charCode"in i?(i=i.charCode,i===0&&a===13&&(i=13)):i=a,i===10&&(i=13),32<=i||i===13?i:0}function $l(){return!0}function zb(){return!1}function pr(i){function a(u,v,T,E,z){this._reactName=u,this._targetInst=T,this.type=v,this.nativeEvent=E,this.target=z,this.currentTarget=null;for(var $ in i)i.hasOwnProperty($)&&(u=i[$],this[$]=u?u(E):E[$]);return this.isDefaultPrevented=(E.defaultPrevented!=null?E.defaultPrevented:E.returnValue===!1)?$l:zb,this.isPropagationStopped=zb,this}return q(a.prototype,{preventDefault:function(){this.defaultPrevented=!0;var u=this.nativeEvent;u&&(u.preventDefault?u.preventDefault():typeof u.returnValue!="unknown"&&(u.returnValue=!1),this.isDefaultPrevented=$l)},stopPropagation:function(){var u=this.nativeEvent;u&&(u.stopPropagation?u.stopPropagation():typeof u.cancelBubble!="unknown"&&(u.cancelBubble=!0),this.isPropagationStopped=$l)},persist:function(){},isPersistent:$l}),a}var zo={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(i){return i.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},zd=pr(zo),ls=q({},zo,{view:0,detail:0}),UE=pr(ls),Hd,qd,cs,Ql=q({},ls,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Gd,button:0,buttons:0,relatedTarget:function(i){return i.relatedTarget===void 0?i.fromElement===i.srcElement?i.toElement:i.fromElement:i.relatedTarget},movementX:function(i){return"movementX"in i?i.movementX:(i!==cs&&(cs&&i.type==="mousemove"?(Hd=i.screenX-cs.screenX,qd=i.screenY-cs.screenY):qd=Hd=0,cs=i),Hd)},movementY:function(i){return"movementY"in i?i.movementY:qd}}),Hb=pr(Ql),GE=q({},Ql,{dataTransfer:0}),VE=pr(GE),YE=q({},ls,{relatedTarget:0}),Ud=pr(YE),KE=q({},zo,{animationName:0,elapsedTime:0,pseudoElement:0}),XE=pr(KE),$E=q({},zo,{clipboardData:function(i){return"clipboardData"in i?i.clipboardData:window.clipboardData}}),QE=pr($E),ZE=q({},zo,{data:0}),qb=pr(ZE),JE={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},e_={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},t_={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function r_(i){var a=this.nativeEvent;return a.getModifierState?a.getModifierState(i):(i=t_[i])?!!a[i]:!1}function Gd(){return r_}var n_=q({},ls,{key:function(i){if(i.key){var a=JE[i.key]||i.key;if(a!=="Unidentified")return a}return i.type==="keypress"?(i=Xl(i),i===13?"Enter":String.fromCharCode(i)):i.type==="keydown"||i.type==="keyup"?e_[i.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Gd,charCode:function(i){return i.type==="keypress"?Xl(i):0},keyCode:function(i){return i.type==="keydown"||i.type==="keyup"?i.keyCode:0},which:function(i){return i.type==="keypress"?Xl(i):i.type==="keydown"||i.type==="keyup"?i.keyCode:0}}),i_=pr(n_),o_=q({},Ql,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Ub=pr(o_),a_=q({},ls,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Gd}),s_=pr(a_),l_=q({},zo,{propertyName:0,elapsedTime:0,pseudoElement:0}),c_=pr(l_),u_=q({},Ql,{deltaX:function(i){return"deltaX"in i?i.deltaX:"wheelDeltaX"in i?-i.wheelDeltaX:0},deltaY:function(i){return"deltaY"in i?i.deltaY:"wheelDeltaY"in i?-i.wheelDeltaY:"wheelDelta"in i?-i.wheelDelta:0},deltaZ:0,deltaMode:0}),d_=pr(u_),f_=[9,13,27,32],Vd=c&&"CompositionEvent"in window,us=null;c&&"documentMode"in document&&(us=document.documentMode);var h_=c&&"TextEvent"in window&&!us,Gb=c&&(!Vd||us&&8<us&&11>=us),Vb=" ",Yb=!1;function Kb(i,a){switch(i){case"keyup":return f_.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Xb(i){return i=i.detail,typeof i=="object"&&"data"in i?i.data:null}var Ho=!1;function p_(i,a){switch(i){case"compositionend":return Xb(a);case"keypress":return a.which!==32?null:(Yb=!0,Vb);case"textInput":return i=a.data,i===Vb&&Yb?null:i;default:return null}}function m_(i,a){if(Ho)return i==="compositionend"||!Vd&&Kb(i,a)?(i=Wb(),Kl=Wd=Vn=null,Ho=!1,i):null;switch(i){case"paste":return null;case"keypress":if(!(a.ctrlKey||a.altKey||a.metaKey)||a.ctrlKey&&a.altKey){if(a.char&&1<a.char.length)return a.char;if(a.which)return String.fromCharCode(a.which)}return null;case"compositionend":return Gb&&a.locale!=="ko"?null:a.data;default:return null}}var g_={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function $b(i){var a=i&&i.nodeName&&i.nodeName.toLowerCase();return a==="input"?!!g_[i.type]:a==="textarea"}function Qb(i,a,u,v){yb(v),a=rc(a,"onChange"),0<a.length&&(u=new zd("onChange","change",null,u,v),i.push({event:u,listeners:a}))}var ds=null,fs=null;function y_(i){mv(i,0)}function Zl(i){var a=Yo(i);if(ye(a))return i}function b_(i,a){if(i==="change")return a}var Zb=!1;if(c){var Yd;if(c){var Kd="oninput"in document;if(!Kd){var Jb=document.createElement("div");Jb.setAttribute("oninput","return;"),Kd=typeof Jb.oninput=="function"}Yd=Kd}else Yd=!1;Zb=Yd&&(!document.documentMode||9<document.documentMode)}function ev(){ds&&(ds.detachEvent("onpropertychange",tv),fs=ds=null)}function tv(i){if(i.propertyName==="value"&&Zl(fs)){var a=[];Qb(a,fs,i,Td(i)),Sb(y_,a)}}function v_(i,a,u){i==="focusin"?(ev(),ds=a,fs=u,ds.attachEvent("onpropertychange",tv)):i==="focusout"&&ev()}function w_(i){if(i==="selectionchange"||i==="keyup"||i==="keydown")return Zl(fs)}function S_(i,a){if(i==="click")return Zl(a)}function k_(i,a){if(i==="input"||i==="change")return Zl(a)}function x_(i,a){return i===a&&(i!==0||1/i===1/a)||i!==i&&a!==a}var Ir=typeof Object.is=="function"?Object.is:x_;function hs(i,a){if(Ir(i,a))return!0;if(typeof i!="object"||i===null||typeof a!="object"||a===null)return!1;var u=Object.keys(i),v=Object.keys(a);if(u.length!==v.length)return!1;for(v=0;v<u.length;v++){var T=u[v];if(!d.call(a,T)||!Ir(i[T],a[T]))return!1}return!0}function rv(i){for(;i&&i.firstChild;)i=i.firstChild;return i}function nv(i,a){var u=rv(i);i=0;for(var v;u;){if(u.nodeType===3){if(v=i+u.textContent.length,i<=a&&v>=a)return{node:u,offset:a-i};i=v}e:{for(;u;){if(u.nextSibling){u=u.nextSibling;break e}u=u.parentNode}u=void 0}u=rv(u)}}function iv(i,a){return i&&a?i===a?!0:i&&i.nodeType===3?!1:a&&a.nodeType===3?iv(i,a.parentNode):"contains"in i?i.contains(a):i.compareDocumentPosition?!!(i.compareDocumentPosition(a)&16):!1:!1}function ov(){for(var i=window,a=ke();a instanceof i.HTMLIFrameElement;){try{var u=typeof a.contentWindow.location.href=="string"}catch{u=!1}if(u)i=a.contentWindow;else break;a=ke(i.document)}return a}function Xd(i){var a=i&&i.nodeName&&i.nodeName.toLowerCase();return a&&(a==="input"&&(i.type==="text"||i.type==="search"||i.type==="tel"||i.type==="url"||i.type==="password")||a==="textarea"||i.contentEditable==="true")}function C_(i){var a=ov(),u=i.focusedElem,v=i.selectionRange;if(a!==u&&u&&u.ownerDocument&&iv(u.ownerDocument.documentElement,u)){if(v!==null&&Xd(u)){if(a=v.start,i=v.end,i===void 0&&(i=a),"selectionStart"in u)u.selectionStart=a,u.selectionEnd=Math.min(i,u.value.length);else if(i=(a=u.ownerDocument||document)&&a.defaultView||window,i.getSelection){i=i.getSelection();var T=u.textContent.length,E=Math.min(v.start,T);v=v.end===void 0?E:Math.min(v.end,T),!i.extend&&E>v&&(T=v,v=E,E=T),T=nv(u,E);var z=nv(u,v);T&&z&&(i.rangeCount!==1||i.anchorNode!==T.node||i.anchorOffset!==T.offset||i.focusNode!==z.node||i.focusOffset!==z.offset)&&(a=a.createRange(),a.setStart(T.node,T.offset),i.removeAllRanges(),E>v?(i.addRange(a),i.extend(z.node,z.offset)):(a.setEnd(z.node,z.offset),i.addRange(a)))}}for(a=[],i=u;i=i.parentNode;)i.nodeType===1&&a.push({element:i,left:i.scrollLeft,top:i.scrollTop});for(typeof u.focus=="function"&&u.focus(),u=0;u<a.length;u++)i=a[u],i.element.scrollLeft=i.left,i.element.scrollTop=i.top}}var R_=c&&"documentMode"in document&&11>=document.documentMode,qo=null,$d=null,ps=null,Qd=!1;function av(i,a,u){var v=u.window===u?u.document:u.nodeType===9?u:u.ownerDocument;Qd||qo==null||qo!==ke(v)||(v=qo,"selectionStart"in v&&Xd(v)?v={start:v.selectionStart,end:v.selectionEnd}:(v=(v.ownerDocument&&v.ownerDocument.defaultView||window).getSelection(),v={anchorNode:v.anchorNode,anchorOffset:v.anchorOffset,focusNode:v.focusNode,focusOffset:v.focusOffset}),ps&&hs(ps,v)||(ps=v,v=rc($d,"onSelect"),0<v.length&&(a=new zd("onSelect","select",null,a,u),i.push({event:a,listeners:v}),a.target=qo)))}function Jl(i,a){var u={};return u[i.toLowerCase()]=a.toLowerCase(),u["Webkit"+i]="webkit"+a,u["Moz"+i]="moz"+a,u}var Uo={animationend:Jl("Animation","AnimationEnd"),animationiteration:Jl("Animation","AnimationIteration"),animationstart:Jl("Animation","AnimationStart"),transitionend:Jl("Transition","TransitionEnd")},Zd={},sv={};c&&(sv=document.createElement("div").style,"AnimationEvent"in window||(delete Uo.animationend.animation,delete Uo.animationiteration.animation,delete Uo.animationstart.animation),"TransitionEvent"in window||delete Uo.transitionend.transition);function ec(i){if(Zd[i])return Zd[i];if(!Uo[i])return i;var a=Uo[i],u;for(u in a)if(a.hasOwnProperty(u)&&u in sv)return Zd[i]=a[u];return i}var lv=ec("animationend"),cv=ec("animationiteration"),uv=ec("animationstart"),dv=ec("transitionend"),fv=new Map,hv="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Yn(i,a){fv.set(i,a),s(a,[i])}for(var Jd=0;Jd<hv.length;Jd++){var ef=hv[Jd],A_=ef.toLowerCase(),T_=ef[0].toUpperCase()+ef.slice(1);Yn(A_,"on"+T_)}Yn(lv,"onAnimationEnd"),Yn(cv,"onAnimationIteration"),Yn(uv,"onAnimationStart"),Yn("dblclick","onDoubleClick"),Yn("focusin","onFocus"),Yn("focusout","onBlur"),Yn(dv,"onTransitionEnd"),l("onMouseEnter",["mouseout","mouseover"]),l("onMouseLeave",["mouseout","mouseover"]),l("onPointerEnter",["pointerout","pointerover"]),l("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var ms="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),E_=new Set("cancel close invalid load scroll toggle".split(" ").concat(ms));function pv(i,a,u){var v=i.type||"unknown-event";i.currentTarget=u,AE(v,a,void 0,i),i.currentTarget=null}function mv(i,a){a=(a&4)!==0;for(var u=0;u<i.length;u++){var v=i[u],T=v.event;v=v.listeners;e:{var E=void 0;if(a)for(var z=v.length-1;0<=z;z--){var $=v[z],re=$.instance,ue=$.currentTarget;if($=$.listener,re!==E&&T.isPropagationStopped())break e;pv(T,$,ue),E=re}else for(z=0;z<v.length;z++){if($=v[z],re=$.instance,ue=$.currentTarget,$=$.listener,re!==E&&T.isPropagationStopped())break e;pv(T,$,ue),E=re}}}if(Fl)throw i=Nd,Fl=!1,Nd=null,i}function it(i,a){var u=a[cf];u===void 0&&(u=a[cf]=new Set);var v=i+"__bubble";u.has(v)||(gv(a,i,2,!1),u.add(v))}function tf(i,a,u){var v=0;a&&(v|=4),gv(u,i,v,a)}var tc="_reactListening"+Math.random().toString(36).slice(2);function gs(i){if(!i[tc]){i[tc]=!0,n.forEach(function(u){u!=="selectionchange"&&(E_.has(u)||tf(u,!1,i),tf(u,!0,i))});var a=i.nodeType===9?i:i.ownerDocument;a===null||a[tc]||(a[tc]=!0,tf("selectionchange",!1,a))}}function gv(i,a,u,v){switch(Ib(a)){case 1:var T=HE;break;case 4:T=qE;break;default:T=Fd}u=T.bind(null,a,u,i),T=void 0,!Dd||a!=="touchstart"&&a!=="touchmove"&&a!=="wheel"||(T=!0),v?T!==void 0?i.addEventListener(a,u,{capture:!0,passive:T}):i.addEventListener(a,u,!0):T!==void 0?i.addEventListener(a,u,{passive:T}):i.addEventListener(a,u,!1)}function rf(i,a,u,v,T){var E=v;if((a&1)===0&&(a&2)===0&&v!==null)e:for(;;){if(v===null)return;var z=v.tag;if(z===3||z===4){var $=v.stateNode.containerInfo;if($===T||$.nodeType===8&&$.parentNode===T)break;if(z===4)for(z=v.return;z!==null;){var re=z.tag;if((re===3||re===4)&&(re=z.stateNode.containerInfo,re===T||re.nodeType===8&&re.parentNode===T))return;z=z.return}for(;$!==null;){if(z=Hi($),z===null)return;if(re=z.tag,re===5||re===6){v=E=z;continue e}$=$.parentNode}}v=v.return}Sb(function(){var ue=E,me=Td(u),ge=[];e:{var pe=fv.get(i);if(pe!==void 0){var Ce=zd,Te=i;switch(i){case"keypress":if(Xl(u)===0)break e;case"keydown":case"keyup":Ce=i_;break;case"focusin":Te="focus",Ce=Ud;break;case"focusout":Te="blur",Ce=Ud;break;case"beforeblur":case"afterblur":Ce=Ud;break;case"click":if(u.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":Ce=Hb;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":Ce=VE;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":Ce=s_;break;case lv:case cv:case uv:Ce=XE;break;case dv:Ce=c_;break;case"scroll":Ce=UE;break;case"wheel":Ce=d_;break;case"copy":case"cut":case"paste":Ce=QE;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":Ce=Ub}var De=(a&4)!==0,yt=!De&&i==="scroll",se=De?pe!==null?pe+"Capture":null:pe;De=[];for(var oe=ue,le;oe!==null;){le=oe;var ve=le.stateNode;if(le.tag===5&&ve!==null&&(le=ve,se!==null&&(ve=Za(oe,se),ve!=null&&De.push(ys(oe,ve,le)))),yt)break;oe=oe.return}0<De.length&&(pe=new Ce(pe,Te,null,u,me),ge.push({event:pe,listeners:De}))}}if((a&7)===0){e:{if(pe=i==="mouseover"||i==="pointerover",Ce=i==="mouseout"||i==="pointerout",pe&&u!==Ad&&(Te=u.relatedTarget||u.fromElement)&&(Hi(Te)||Te[yn]))break e;if((Ce||pe)&&(pe=me.window===me?me:(pe=me.ownerDocument)?pe.defaultView||pe.parentWindow:window,Ce?(Te=u.relatedTarget||u.toElement,Ce=ue,Te=Te?Hi(Te):null,Te!==null&&(yt=zi(Te),Te!==yt||Te.tag!==5&&Te.tag!==6)&&(Te=null)):(Ce=null,Te=ue),Ce!==Te)){if(De=Hb,ve="onMouseLeave",se="onMouseEnter",oe="mouse",(i==="pointerout"||i==="pointerover")&&(De=Ub,ve="onPointerLeave",se="onPointerEnter",oe="pointer"),yt=Ce==null?pe:Yo(Ce),le=Te==null?pe:Yo(Te),pe=new De(ve,oe+"leave",Ce,u,me),pe.target=yt,pe.relatedTarget=le,ve=null,Hi(me)===ue&&(De=new De(se,oe+"enter",Te,u,me),De.target=le,De.relatedTarget=yt,ve=De),yt=ve,Ce&&Te)t:{for(De=Ce,se=Te,oe=0,le=De;le;le=Go(le))oe++;for(le=0,ve=se;ve;ve=Go(ve))le++;for(;0<oe-le;)De=Go(De),oe--;for(;0<le-oe;)se=Go(se),le--;for(;oe--;){if(De===se||se!==null&&De===se.alternate)break t;De=Go(De),se=Go(se)}De=null}else De=null;Ce!==null&&yv(ge,pe,Ce,De,!1),Te!==null&&yt!==null&&yv(ge,yt,Te,De,!0)}}e:{if(pe=ue?Yo(ue):window,Ce=pe.nodeName&&pe.nodeName.toLowerCase(),Ce==="select"||Ce==="input"&&pe.type==="file")var Ne=b_;else if($b(pe))if(Zb)Ne=k_;else{Ne=w_;var Oe=v_}else(Ce=pe.nodeName)&&Ce.toLowerCase()==="input"&&(pe.type==="checkbox"||pe.type==="radio")&&(Ne=S_);if(Ne&&(Ne=Ne(i,ue))){Qb(ge,Ne,u,me);break e}Oe&&Oe(i,pe,ue),i==="focusout"&&(Oe=pe._wrapperState)&&Oe.controlled&&pe.type==="number"&&de(pe,"number",pe.value)}switch(Oe=ue?Yo(ue):window,i){case"focusin":($b(Oe)||Oe.contentEditable==="true")&&(qo=Oe,$d=ue,ps=null);break;case"focusout":ps=$d=qo=null;break;case"mousedown":Qd=!0;break;case"contextmenu":case"mouseup":case"dragend":Qd=!1,av(ge,u,me);break;case"selectionchange":if(R_)break;case"keydown":case"keyup":av(ge,u,me)}var Le;if(Vd)e:{switch(i){case"compositionstart":var je="onCompositionStart";break e;case"compositionend":je="onCompositionEnd";break e;case"compositionupdate":je="onCompositionUpdate";break e}je=void 0}else Ho?Kb(i,u)&&(je="onCompositionEnd"):i==="keydown"&&u.keyCode===229&&(je="onCompositionStart");je&&(Gb&&u.locale!=="ko"&&(Ho||je!=="onCompositionStart"?je==="onCompositionEnd"&&Ho&&(Le=Wb()):(Vn=me,Wd="value"in Vn?Vn.value:Vn.textContent,Ho=!0)),Oe=rc(ue,je),0<Oe.length&&(je=new qb(je,i,null,u,me),ge.push({event:je,listeners:Oe}),Le?je.data=Le:(Le=Xb(u),Le!==null&&(je.data=Le)))),(Le=h_?p_(i,u):m_(i,u))&&(ue=rc(ue,"onBeforeInput"),0<ue.length&&(me=new qb("onBeforeInput","beforeinput",null,u,me),ge.push({event:me,listeners:ue}),me.data=Le))}mv(ge,a)})}function ys(i,a,u){return{instance:i,listener:a,currentTarget:u}}function rc(i,a){for(var u=a+"Capture",v=[];i!==null;){var T=i,E=T.stateNode;T.tag===5&&E!==null&&(T=E,E=Za(i,u),E!=null&&v.unshift(ys(i,E,T)),E=Za(i,a),E!=null&&v.push(ys(i,E,T))),i=i.return}return v}function Go(i){if(i===null)return null;do i=i.return;while(i&&i.tag!==5);return i||null}function yv(i,a,u,v,T){for(var E=a._reactName,z=[];u!==null&&u!==v;){var $=u,re=$.alternate,ue=$.stateNode;if(re!==null&&re===v)break;$.tag===5&&ue!==null&&($=ue,T?(re=Za(u,E),re!=null&&z.unshift(ys(u,re,$))):T||(re=Za(u,E),re!=null&&z.push(ys(u,re,$)))),u=u.return}z.length!==0&&i.push({event:a,listeners:z})}var __=/\r\n?/g,D_=/\u0000|\uFFFD/g;function bv(i){return(typeof i=="string"?i:""+i).replace(__,`
38`).replace(D_,"")}function nc(i,a,u){if(a=bv(a),bv(i)!==a&&u)throw Error(r(425))}function ic(){}var nf=null,of=null;function af(i,a){return i==="textarea"||i==="noscript"||typeof a.children=="string"||typeof a.children=="number"||typeof a.dangerouslySetInnerHTML=="object"&&a.dangerouslySetInnerHTML!==null&&a.dangerouslySetInnerHTML.__html!=null}var sf=typeof setTimeout=="function"?setTimeout:void 0,N_=typeof clearTimeout=="function"?clearTimeout:void 0,vv=typeof Promise=="function"?Promise:void 0,B_=typeof queueMicrotask=="function"?queueMicrotask:typeof vv<"u"?function(i){return vv.resolve(null).then(i).catch(O_)}:sf;function O_(i){setTimeout(function(){throw i})}function lf(i,a){var u=a,v=0;do{var T=u.nextSibling;if(i.removeChild(u),T&&T.nodeType===8)if(u=T.data,u==="/$"){if(v===0){i.removeChild(T),ss(a);return}v--}else u!=="$"&&u!=="$?"&&u!=="$!"||v++;u=T}while(u);ss(a)}function Kn(i){for(;i!=null;i=i.nextSibling){var a=i.nodeType;if(a===1||a===3)break;if(a===8){if(a=i.data,a==="$"||a==="$!"||a==="$?")break;if(a==="/$")return null}}return i}function wv(i){i=i.previousSibling;for(var a=0;i;){if(i.nodeType===8){var u=i.data;if(u==="$"||u==="$!"||u==="$?"){if(a===0)return i;a--}else u==="/$"&&a++}i=i.previousSibling}return null}var Vo=Math.random().toString(36).slice(2),en="__reactFiber$"+Vo,bs="__reactProps$"+Vo,yn="__reactContainer$"+Vo,cf="__reactEvents$"+Vo,L_="__reactListeners$"+Vo,M_="__reactHandles$"+Vo;function Hi(i){var a=i[en];if(a)return a;for(var u=i.parentNode;u;){if(a=u[yn]||u[en]){if(u=a.alternate,a.child!==null||u!==null&&u.child!==null)for(i=wv(i);i!==null;){if(u=i[en])return u;i=wv(i)}return a}i=u,u=i.parentNode}return null}function vs(i){return i=i[en]||i[yn],!i||i.tag!==5&&i.tag!==6&&i.tag!==13&&i.tag!==3?null:i}function Yo(i){if(i.tag===5||i.tag===6)return i.stateNode;throw Error(r(33))}function oc(i){return i[bs]||null}var uf=[],Ko=-1;function Xn(i){return{current:i}}function ot(i){0>Ko||(i.current=uf[Ko],uf[Ko]=null,Ko--)}function rt(i,a){Ko++,uf[Ko]=i.current,i.current=a}var $n={},zt=Xn($n),rr=Xn(!1),qi=$n;function Xo(i,a){var u=i.type.contextTypes;if(!u)return $n;var v=i.stateNode;if(v&&v.__reactInternalMemoizedUnmaskedChildContext===a)return v.__reactInternalMemoizedMaskedChildContext;var T={},E;for(E in u)T[E]=a[E];return v&&(i=i.stateNode,i.__reactInternalMemoizedUnmaskedChildContext=a,i.__reactInternalMemoizedMaskedChildContext=T),T}function nr(i){return i=i.childContextTypes,i!=null}function ac(){ot(rr),ot(zt)}function Sv(i,a,u){if(zt.current!==$n)throw Error(r(168));rt(zt,a),rt(rr,u)}function kv(i,a,u){var v=i.stateNode;if(a=a.childContextTypes,typeof v.getChildContext!="function")return u;v=v.getChildContext();for(var T in v)if(!(T in a))throw Error(r(108,V(i)||"Unknown",T));return q({},u,v)}function sc(i){return i=(i=i.stateNode)&&i.__reactInternalMemoizedMergedChildContext||$n,qi=zt.current,rt(zt,i),rt(rr,rr.current),!0}function xv(i,a,u){var v=i.stateNode;if(!v)throw Error(r(169));u?(i=kv(i,a,qi),v.__reactInternalMemoizedMergedChildContext=i,ot(rr),ot(zt),rt(zt,i)):ot(rr),rt(rr,u)}var bn=null,lc=!1,df=!1;function Cv(i){bn===null?bn=[i]:bn.push(i)}function P_(i){lc=!0,Cv(i)}function Qn(){if(!df&&bn!==null){df=!0;var i=0,a=Ze;try{var u=bn;for(Ze=1;i<u.length;i++){var v=u[i];do v=v(!0);while(v!==null)}bn=null,lc=!1}catch(T){throw bn!==null&&(bn=bn.slice(i+1)),Ab(Bd,Qn),T}finally{Ze=a,df=!1}}return null}var $o=[],Qo=0,cc=null,uc=0,Cr=[],Rr=0,Ui=null,vn=1,wn="";function Gi(i,a){$o[Qo++]=uc,$o[Qo++]=cc,cc=i,uc=a}function Rv(i,a,u){Cr[Rr++]=vn,Cr[Rr++]=wn,Cr[Rr++]=Ui,Ui=i;var v=vn;i=wn;var T=32-Fr(v)-1;v&=~(1<<T),u+=1;var E=32-Fr(a)+T;if(30<E){var z=T-T%5;E=(v&(1<<z)-1).toString(32),v>>=z,T-=z,vn=1<<32-Fr(a)+T|u<<T|v,wn=E+i}else vn=1<<E|u<<T|v,wn=i}function ff(i){i.return!==null&&(Gi(i,1),Rv(i,1,0))}function hf(i){for(;i===cc;)cc=$o[--Qo],$o[Qo]=null,uc=$o[--Qo],$o[Qo]=null;for(;i===Ui;)Ui=Cr[--Rr],Cr[Rr]=null,wn=Cr[--Rr],Cr[Rr]=null,vn=Cr[--Rr],Cr[Rr]=null}
vendor: 15,353 bytes, line 38
38var mr=null,gr=null,st=!1,Wr=null;function Av(i,a){var u=_r(5,null,null,0);u.elementType="DELETED",u.stateNode=a,u.return=i,a=i.deletions,a===null?(i.deletions=[u],i.flags|=16):a.push(u)}function Tv(i,a){switch(i.tag){case 5:var u=i.type;return a=a.nodeType!==1||u.toLowerCase()!==a.nodeName.toLowerCase()?null:a,a!==null?(i.stateNode=a,mr=i,gr=Kn(a.firstChild),!0):!1;case 6:return a=i.pendingProps===""||a.nodeType!==3?null:a,a!==null?(i.stateNode=a,mr=i,gr=null,!0):!1;case 13:return a=a.nodeType!==8?null:a,a!==null?(u=Ui!==null?{id:vn,overflow:wn}:null,i.memoizedState={dehydrated:a,treeContext:u,retryLane:1073741824},u=_r(18,null,null,0),u.stateNode=a,u.return=i,i.child=u,mr=i,gr=null,!0):!1;default:return!1}}function pf(i){return(i.mode&1)!==0&&(i.flags&128)===0}function mf(i){if(st){var a=gr;if(a){var u=a;if(!Tv(i,a)){if(pf(i))throw Error(r(418));a=Kn(u.nextSibling);var v=mr;a&&Tv(i,a)?Av(v,u):(i.flags=i.flags&-4097|2,st=!1,mr=i)}}else{if(pf(i))throw Error(r(418));i.flags=i.flags&-4097|2,st=!1,mr=i}}}function Ev(i){for(i=i.return;i!==null&&i.tag!==5&&i.tag!==3&&i.tag!==13;)i=i.return;mr=i}function dc(i){if(i!==mr)return!1;if(!st)return Ev(i),st=!0,!1;var a;if((a=i.tag!==3)&&!(a=i.tag!==5)&&(a=i.type,a=a!=="head"&&a!=="body"&&!af(i.type,i.memoizedProps)),a&&(a=gr)){if(pf(i))throw _v(),Error(r(418));for(;a;)Av(i,a),a=Kn(a.nextSibling)}if(Ev(i),i.tag===13){if(i=i.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(r(317));e:{for(i=i.nextSibling,a=0;i;){if(i.nodeType===8){var u=i.data;if(u==="/$"){if(a===0){gr=Kn(i.nextSibling);break e}a--}else u!=="$"&&u!=="$!"&&u!=="$?"||a++}i=i.nextSibling}gr=null}}else gr=mr?Kn(i.stateNode.nextSibling):null;return!0}function _v(){for(var i=gr;i;)i=Kn(i.nextSibling)}function Zo(){gr=mr=null,st=!1}function gf(i){Wr===null?Wr=[i]:Wr.push(i)}var j_=k.ReactCurrentBatchConfig;function ws(i,a,u){if(i=u.ref,i!==null&&typeof i!="function"&&typeof i!="object"){if(u._owner){if(u=u._owner,u){if(u.tag!==1)throw Error(r(309));var v=u.stateNode}if(!v)throw Error(r(147,i));var T=v,E=""+i;return a!==null&&a.ref!==null&&typeof a.ref=="function"&&a.ref._stringRef===E?a.ref:(a=function(z){var $=T.refs;z===null?delete $[E]:$[E]=z},a._stringRef=E,a)}if(typeof i!="string")throw Error(r(284));if(!u._owner)throw Error(r(290,i))}return i}function fc(i,a){throw i=Object.prototype.toString.call(a),Error(r(31,i==="[object Object]"?"object with keys {"+Object.keys(a).join(", ")+"}":i))}function Dv(i){var a=i._init;return a(i._payload)}function Nv(i){function a(se,oe){if(i){var le=se.deletions;le===null?(se.deletions=[oe],se.flags|=16):le.push(oe)}}function u(se,oe){if(!i)return null;for(;oe!==null;)a(se,oe),oe=oe.sibling;return null}function v(se,oe){for(se=new Map;oe!==null;)oe.key!==null?se.set(oe.key,oe):se.set(oe.index,oe),oe=oe.sibling;return se}function T(se,oe){return se=oi(se,oe),se.index=0,se.sibling=null,se}function E(se,oe,le){return se.index=le,i?(le=se.alternate,le!==null?(le=le.index,le<oe?(se.flags|=2,oe):le):(se.flags|=2,oe)):(se.flags|=1048576,oe)}function z(se){return i&&se.alternate===null&&(se.flags|=2),se}function $(se,oe,le,ve){return oe===null||oe.tag!==6?(oe=sh(le,se.mode,ve),oe.return=se,oe):(oe=T(oe,le),oe.return=se,oe)}function re(se,oe,le,ve){var Ne=le.type;return Ne===D?me(se,oe,le.props.children,ve,le.key):oe!==null&&(oe.elementType===Ne||typeof Ne=="object"&&Ne!==null&&Ne.$$typeof===G&&Dv(Ne)===oe.type)?(ve=T(oe,le.props),ve.ref=ws(se,oe,le),ve.return=se,ve):(ve=Pc(le.type,le.key,le.props,null,se.mode,ve),ve.ref=ws(se,oe,le),ve.return=se,ve)}function ue(se,oe,le,ve){return oe===null||oe.tag!==4||oe.stateNode.containerInfo!==le.containerInfo||oe.stateNode.implementation!==le.implementation?(oe=lh(le,se.mode,ve),oe.return=se,oe):(oe=T(oe,le.children||[]),oe.return=se,oe)}function me(se,oe,le,ve,Ne){return oe===null||oe.tag!==7?(oe=Ji(le,se.mode,ve,Ne),oe.return=se,oe):(oe=T(oe,le),oe.return=se,oe)}function ge(se,oe,le){if(typeof oe=="string"&&oe!==""||typeof oe=="number")return oe=sh(""+oe,se.mode,le),oe.return=se,oe;if(typeof oe=="object"&&oe!==null){switch(oe.$$typeof){case A:return le=Pc(oe.type,oe.key,oe.props,null,se.mode,le),le.ref=ws(se,null,oe),le.return=se,le;case N:return oe=lh(oe,se.mode,le),oe.return=se,oe;case G:var ve=oe._init;return ge(se,ve(oe._payload),le)}if(be(oe)||K(oe))return oe=Ji(oe,se.mode,le,null),oe.return=se,oe;fc(se,oe)}return null}function pe(se,oe,le,ve){var Ne=oe!==null?oe.key:null;if(typeof le=="string"&&le!==""||typeof le=="number")return Ne!==null?null:$(se,oe,""+le,ve);if(typeof le=="object"&&le!==null){switch(le.$$typeof){case A:return le.key===Ne?re(se,oe,le,ve):null;case N:return le.key===Ne?ue(se,oe,le,ve):null;case G:return Ne=le._init,pe(se,oe,Ne(le._payload),ve)}if(be(le)||K(le))return Ne!==null?null:me(se,oe,le,ve,null);fc(se,le)}return null}function Ce(se,oe,le,ve,Ne){if(typeof ve=="string"&&ve!==""||typeof ve=="number")return se=se.get(le)||null,$(oe,se,""+ve,Ne);if(typeof ve=="object"&&ve!==null){switch(ve.$$typeof){case A:return se=se.get(ve.key===null?le:ve.key)||null,re(oe,se,ve,Ne);case N:return se=se.get(ve.key===null?le:ve.key)||null,ue(oe,se,ve,Ne);case G:var Oe=ve._init;return Ce(se,oe,le,Oe(ve._payload),Ne)}if(be(ve)||K(ve))return se=se.get(le)||null,me(oe,se,ve,Ne,null);fc(oe,ve)}return null}function Te(se,oe,le,ve){for(var Ne=null,Oe=null,Le=oe,je=oe=0,Bt=null;Le!==null&&je<le.length;je++){Le.index>je?(Bt=Le,Le=null):Bt=Le.sibling;var Ke=pe(se,Le,le[je],ve);if(Ke===null){Le===null&&(Le=Bt);break}i&&Le&&Ke.alternate===null&&a(se,Le),oe=E(Ke,oe,je),Oe===null?Ne=Ke:Oe.sibling=Ke,Oe=Ke,Le=Bt}if(je===le.length)return u(se,Le),st&&Gi(se,je),Ne;if(Le===null){for(;je<le.length;je++)Le=ge(se,le[je],ve),Le!==null&&(oe=E(Le,oe,je),Oe===null?Ne=Le:Oe.sibling=Le,Oe=Le);return st&&Gi(se,je),Ne}for(Le=v(se,Le);je<le.length;je++)Bt=Ce(Le,se,je,le[je],ve),Bt!==null&&(i&&Bt.alternate!==null&&Le.delete(Bt.key===null?je:Bt.key),oe=E(Bt,oe,je),Oe===null?Ne=Bt:Oe.sibling=Bt,Oe=Bt);return i&&Le.forEach(function(ai){return a(se,ai)}),st&&Gi(se,je),Ne}function De(se,oe,le,ve){var Ne=K(le);if(typeof Ne!="function")throw Error(r(150));if(le=Ne.call(le),le==null)throw Error(r(151));for(var Oe=Ne=null,Le=oe,je=oe=0,Bt=null,Ke=le.next();Le!==null&&!Ke.done;je++,Ke=le.next()){Le.index>je?(Bt=Le,Le=null):Bt=Le.sibling;var ai=pe(se,Le,Ke.value,ve);if(ai===null){Le===null&&(Le=Bt);break}i&&Le&&ai.alternate===null&&a(se,Le),oe=E(ai,oe,je),Oe===null?Ne=ai:Oe.sibling=ai,Oe=ai,Le=Bt}if(Ke.done)return u(se,Le),st&&Gi(se,je),Ne;if(Le===null){for(;!Ke.done;je++,Ke=le.next())Ke=ge(se,Ke.value,ve),Ke!==null&&(oe=E(Ke,oe,je),Oe===null?Ne=Ke:Oe.sibling=Ke,Oe=Ke);return st&&Gi(se,je),Ne}for(Le=v(se,Le);!Ke.done;je++,Ke=le.next())Ke=Ce(Le,se,je,Ke.value,ve),Ke!==null&&(i&&Ke.alternate!==null&&Le.delete(Ke.key===null?je:Ke.key),oe=E(Ke,oe,je),Oe===null?Ne=Ke:Oe.sibling=Ke,Oe=Ke);return i&&Le.forEach(function(gD){return a(se,gD)}),st&&Gi(se,je),Ne}function yt(se,oe,le,ve){if(typeof le=="object"&&le!==null&&le.type===D&&le.key===null&&(le=le.props.children),typeof le=="object"&&le!==null){switch(le.$$typeof){case A:e:{for(var Ne=le.key,Oe=oe;Oe!==null;){if(Oe.key===Ne){if(Ne=le.type,Ne===D){if(Oe.tag===7){u(se,Oe.sibling),oe=T(Oe,le.props.children),oe.return=se,se=oe;break e}}else if(Oe.elementType===Ne||typeof Ne=="object"&&Ne!==null&&Ne.$$typeof===G&&Dv(Ne)===Oe.type){u(se,Oe.sibling),oe=T(Oe,le.props),oe.ref=ws(se,Oe,le),oe.return=se,se=oe;break e}u(se,Oe);break}else a(se,Oe);Oe=Oe.sibling}le.type===D?(oe=Ji(le.props.children,se.mode,ve,le.key),oe.return=se,se=oe):(ve=Pc(le.type,le.key,le.props,null,se.mode,ve),ve.ref=ws(se,oe,le),ve.return=se,se=ve)}return z(se);case N:e:{for(Oe=le.key;oe!==null;){if(oe.key===Oe)if(oe.tag===4&&oe.stateNode.containerInfo===le.containerInfo&&oe.stateNode.implementation===le.implementation){u(se,oe.sibling),oe=T(oe,le.children||[]),oe.return=se,se=oe;break e}else{u(se,oe);break}else a(se,oe);oe=oe.sibling}oe=lh(le,se.mode,ve),oe.return=se,se=oe}return z(se);case G:return Oe=le._init,yt(se,oe,Oe(le._payload),ve)}if(be(le))return Te(se,oe,le,ve);if(K(le))return De(se,oe,le,ve);fc(se,le)}return typeof le=="string"&&le!==""||typeof le=="number"?(le=""+le,oe!==null&&oe.tag===6?(u(se,oe.sibling),oe=T(oe,le),oe.return=se,se=oe):(u(se,oe),oe=sh(le,se.mode,ve),oe.return=se,se=oe),z(se)):u(se,oe)}return yt}var Jo=Nv(!0),Bv=Nv(!1),hc=Xn(null),pc=null,ea=null,yf=null;function bf(){yf=ea=pc=null}function vf(i){var a=hc.current;ot(hc),i._currentValue=a}function wf(i,a,u){for(;i!==null;){var v=i.alternate;if((i.childLanes&a)!==a?(i.childLanes|=a,v!==null&&(v.childLanes|=a)):v!==null&&(v.childLanes&a)!==a&&(v.childLanes|=a),i===u)break;i=i.return}}function ta(i,a){pc=i,yf=ea=null,i=i.dependencies,i!==null&&i.firstContext!==null&&((i.lanes&a)!==0&&(ir=!0),i.firstContext=null)}function Ar(i){var a=i._currentValue;if(yf!==i)if(i={context:i,memoizedValue:a,next:null},ea===null){if(pc===null)throw Error(r(308));ea=i,pc.dependencies={lanes:0,firstContext:i}}else ea=ea.next=i;return a}var Vi=null;function Sf(i){Vi===null?Vi=[i]:Vi.push(i)}function Ov(i,a,u,v){var T=a.interleaved;return T===null?(u.next=u,Sf(a)):(u.next=T.next,T.next=u),a.interleaved=u,Sn(i,v)}function Sn(i,a){i.lanes|=a;var u=i.alternate;for(u!==null&&(u.lanes|=a),u=i,i=i.return;i!==null;)i.childLanes|=a,u=i.alternate,u!==null&&(u.childLanes|=a),u=i,i=i.return;return u.tag===3?u.stateNode:null}var Zn=!1;function kf(i){i.updateQueue={baseState:i.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Lv(i,a){i=i.updateQueue,a.updateQueue===i&&(a.updateQueue={baseState:i.baseState,firstBaseUpdate:i.firstBaseUpdate,lastBaseUpdate:i.lastBaseUpdate,shared:i.shared,effects:i.effects})}function kn(i,a){return{eventTime:i,lane:a,tag:0,payload:null,callback:null,next:null}}function Jn(i,a,u){var v=i.updateQueue;if(v===null)return null;if(v=v.shared,(Ye&2)!==0){var T=v.pending;return T===null?a.next=a:(a.next=T.next,T.next=a),v.pending=a,Sn(i,u)}return T=v.interleaved,T===null?(a.next=a,Sf(v)):(a.next=T.next,T.next=a),v.interleaved=a,Sn(i,u)}function mc(i,a,u){if(a=a.updateQueue,a!==null&&(a=a.shared,(u&4194240)!==0)){var v=a.lanes;v&=i.pendingLanes,u|=v,a.lanes=u,Md(i,u)}}function Mv(i,a){var u=i.updateQueue,v=i.alternate;if(v!==null&&(v=v.updateQueue,u===v)){var T=null,E=null;if(u=u.firstBaseUpdate,u!==null){do{var z={eventTime:u.eventTime,lane:u.lane,tag:u.tag,payload:u.payload,callback:u.callback,next:null};E===null?T=E=z:E=E.next=z,u=u.next}while(u!==null);E===null?T=E=a:E=E.next=a}else T=E=a;u={baseState:v.baseState,firstBaseUpdate:T,lastBaseUpdate:E,shared:v.shared,effects:v.effects},i.updateQueue=u;return}i=u.lastBaseUpdate,i===null?u.firstBaseUpdate=a:i.next=a,u.lastBaseUpdate=a}function gc(i,a,u,v){var T=i.updateQueue;Zn=!1;var E=T.firstBaseUpdate,z=T.lastBaseUpdate,$=T.shared.pending;if($!==null){T.shared.pending=null;var re=$,ue=re.next;re.next=null,z===null?E=ue:z.next=ue,z=re;var me=i.alternate;me!==null&&(me=me.updateQueue,$=me.lastBaseUpdate,$!==z&&($===null?me.firstBaseUpdate=ue:$.next=ue,me.lastBaseUpdate=re))}if(E!==null){var ge=T.baseState;z=0,me=ue=re=null,$=E;do{var pe=$.lane,Ce=$.eventTime;if((v&pe)===pe){me!==null&&(me=me.next={eventTime:Ce,lane:0,tag:$.tag,payload:$.payload,callback:$.callback,next:null});e:{var Te=i,De=$;switch(pe=a,Ce=u,De.tag){case 1:if(Te=De.payload,typeof Te=="function"){ge=Te.call(Ce,ge,pe);break e}ge=Te;break e;case 3:Te.flags=Te.flags&-65537|128;case 0:if(Te=De.payload,pe=typeof Te=="function"?Te.call(Ce,ge,pe):Te,pe==null)break e;ge=q({},ge,pe);break e;case 2:Zn=!0}}$.callback!==null&&$.lane!==0&&(i.flags|=64,pe=T.effects,pe===null?T.effects=[$]:pe.push($))}else Ce={eventTime:Ce,lane:pe,tag:$.tag,payload:$.payload,callback:$.callback,next:null},me===null?(ue=me=Ce,re=ge):me=me.next=Ce,z|=pe;if($=$.next,$===null){if($=T.shared.pending,$===null)break;pe=$,$=pe.next,pe.next=null,T.lastBaseUpdate=pe,T.shared.pending=null}}while(!0);if(me===null&&(re=ge),T.baseState=re,T.firstBaseUpdate=ue,T.lastBaseUpdate=me,a=T.shared.interleaved,a!==null){T=a;do z|=T.lane,T=T.next;while(T!==a)}else E===null&&(T.shared.lanes=0);Xi|=z,i.lanes=z,i.memoizedState=ge}}function Pv(i,a,u){if(i=a.effects,a.effects=null,i!==null)for(a=0;a<i.length;a++){var v=i[a],T=v.callback;if(T!==null){if(v.callback=null,v=u,typeof T!="function")throw Error(r(191,T));T.call(v)}}}var Ss={},tn=Xn(Ss),ks=Xn(Ss),xs=Xn(Ss);function Yi(i){if(i===Ss)throw Error(r(174));return i}function xf(i,a){switch(rt(xs,a),rt(ks,i),rt(tn,Ss),i=a.nodeType,i){case 9:case 11:a=(a=a.documentElement)?a.namespaceURI:hr(null,"");break;default:i=i===8?a.parentNode:a,a=i.namespaceURI||null,i=i.tagName,a=hr(a,i)}ot(tn),rt(tn,a)}function ra(){ot(tn),ot(ks),ot(xs)}function jv(i){Yi(xs.current);var a=Yi(tn.current),u=hr(a,i.type);a!==u&&(rt(ks,i),rt(tn,u))}function Cf(i){ks.current===i&&(ot(tn),ot(ks))}var lt=Xn(0);function yc(i){for(var a=i;a!==null;){if(a.tag===13){var u=a.memoizedState;if(u!==null&&(u=u.dehydrated,u===null||u.data==="$?"||u.data==="$!"))return a}else if(a.tag===19&&a.memoizedProps.revealOrder!==void 0){if((a.flags&128)!==0)return a}else if(a.child!==null){a.child.return=a,a=a.child;continue}if(a===i)break;for(;a.sibling===null;){if(a.return===null||a.return===i)return null;a=a.return}a.sibling.return=a.return,a=a.sibling}return null}var Rf=[];function Af(){for(var i=0;i<Rf.length;i++)Rf[i]._workInProgressVersionPrimary=null;Rf.length=0}var bc=k.ReactCurrentDispatcher,Tf=k.ReactCurrentBatchConfig,Ki=0,ct=null,At=null,Dt=null,vc=!1,Cs=!1,Rs=0,F_=0;function Ht(){throw Error(r(321))}function Ef(i,a){if(a===null)return!1;for(var u=0;u<a.length&&u<i.length;u++)if(!Ir(i[u],a[u]))return!1;return!0}function _f(i,a,u,v,T,E){if(Ki=E,ct=a,a.memoizedState=null,a.updateQueue=null,a.lanes=0,bc.current=i===null||i.memoizedState===null?H_:q_,i=u(v,T),Cs){E=0;do{if(Cs=!1,Rs=0,25<=E)throw Error(r(301));E+=1,Dt=At=null,a.updateQueue=null,bc.current=U_,i=u(v,T)}while(Cs)}if(bc.current=kc,a=At!==null&&At.next!==null,Ki=0,Dt=At=ct=null,vc=!1,a)throw Error(r(300));return i}function Df(){var i=Rs!==0;return Rs=0,i}function rn(){var i={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Dt===null?ct.memoizedState=Dt=i:Dt=Dt.next=i,Dt}function Tr(){if(At===null){var i=ct.alternate;i=i!==null?i.memoizedState:null}else i=At.next;var a=Dt===null?ct.memoizedState:Dt.next;if(a!==null)Dt=a,At=i;else{if(i===null)throw Error(r(310));At=i,i={memoizedState:At.memoizedState,baseState:At.baseState,baseQueue:At.baseQueue,queue:At.queue,next:null},Dt===null?ct.memoizedState=Dt=i:Dt=Dt.next=i}return Dt}function As(i,a){return typeof a=="function"?a(i):a}function Nf(i){var a=Tr(),u=a.queue;if(u===null)throw Error(r(311));u.lastRenderedReducer=i;var v=At,T=v.baseQueue,E=u.pending;if(E!==null){if(T!==null){var z=T.next;T.next=E.next,E.next=z}v.baseQueue=T=E,u.pending=null}if(T!==null){E=T.next,v=v.baseState;var $=z=null,re=null,ue=E;do{var me=ue.lane;if((Ki&me)===me)re!==null&&(re=re.next={lane:0,action:ue.action,hasEagerState:ue.hasEagerState,eagerState:ue.eagerState,next:null}),v=ue.hasEagerState?ue.eagerState:i(v,ue.action);else{var ge={lane:me,action:ue.action,hasEagerState:ue.hasEagerState,eagerState:ue.eagerState,next:null};re===null?($=re=ge,z=v):re=re.next=ge,ct.lanes|=me,Xi|=me}ue=ue.next}
vendor: 5,182 bytes, line 38
38while(ue!==null&&ue!==E);re===null?z=v:re.next=$,Ir(v,a.memoizedState)||(ir=!0),a.memoizedState=v,a.baseState=z,a.baseQueue=re,u.lastRenderedState=v}if(i=u.interleaved,i!==null){T=i;do E=T.lane,ct.lanes|=E,Xi|=E,T=T.next;while(T!==i)}else T===null&&(u.lanes=0);return[a.memoizedState,u.dispatch]}function Bf(i){var a=Tr(),u=a.queue;if(u===null)throw Error(r(311));u.lastRenderedReducer=i;var v=u.dispatch,T=u.pending,E=a.memoizedState;if(T!==null){u.pending=null;var z=T=T.next;do E=i(E,z.action),z=z.next;while(z!==T);Ir(E,a.memoizedState)||(ir=!0),a.memoizedState=E,a.baseQueue===null&&(a.baseState=E),u.lastRenderedState=E}return[E,v]}function Fv(){}function Iv(i,a){var u=ct,v=Tr(),T=a(),E=!Ir(v.memoizedState,T);if(E&&(v.memoizedState=T,ir=!0),v=v.queue,Of(Hv.bind(null,u,v,i),[i]),v.getSnapshot!==a||E||Dt!==null&&Dt.memoizedState.tag&1){if(u.flags|=2048,Ts(9,zv.bind(null,u,v,T,a),void 0,null),Nt===null)throw Error(r(349));(Ki&30)!==0||Wv(u,a,T)}return T}function Wv(i,a,u){i.flags|=16384,i={getSnapshot:a,value:u},a=ct.updateQueue,a===null?(a={lastEffect:null,stores:null},ct.updateQueue=a,a.stores=[i]):(u=a.stores,u===null?a.stores=[i]:u.push(i))}function zv(i,a,u,v){a.value=u,a.getSnapshot=v,qv(a)&&Uv(i)}function Hv(i,a,u){return u(function(){qv(a)&&Uv(i)})}function qv(i){var a=i.getSnapshot;i=i.value;try{var u=a();return!Ir(i,u)}catch{return!0}}function Uv(i){var a=Sn(i,1);a!==null&&Ur(a,i,1,-1)}function Gv(i){var a=rn();return typeof i=="function"&&(i=i()),a.memoizedState=a.baseState=i,i={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:As,lastRenderedState:i},a.queue=i,i=i.dispatch=z_.bind(null,ct,i),[a.memoizedState,i]}function Ts(i,a,u,v){return i={tag:i,create:a,destroy:u,deps:v,next:null},a=ct.updateQueue,a===null?(a={lastEffect:null,stores:null},ct.updateQueue=a,a.lastEffect=i.next=i):(u=a.lastEffect,u===null?a.lastEffect=i.next=i:(v=u.next,u.next=i,i.next=v,a.lastEffect=i)),i}function Vv(){return Tr().memoizedState}function wc(i,a,u,v){var T=rn();ct.flags|=i,T.memoizedState=Ts(1|a,u,void 0,v===void 0?null:v)}function Sc(i,a,u,v){var T=Tr();v=v===void 0?null:v;var E=void 0;if(At!==null){var z=At.memoizedState;if(E=z.destroy,v!==null&&Ef(v,z.deps)){T.memoizedState=Ts(a,u,E,v);return}}ct.flags|=i,T.memoizedState=Ts(1|a,u,E,v)}function Yv(i,a){return wc(8390656,8,i,a)}function Of(i,a){return Sc(2048,8,i,a)}function Kv(i,a){return Sc(4,2,i,a)}function Xv(i,a){return Sc(4,4,i,a)}function $v(i,a){if(typeof a=="function")return i=i(),a(i),function(){a(null)};if(a!=null)return i=i(),a.current=i,function(){a.current=null}}function Qv(i,a,u){return u=u!=null?u.concat([i]):null,Sc(4,4,$v.bind(null,a,i),u)}function Lf(){}function Zv(i,a){var u=Tr();a=a===void 0?null:a;var v=u.memoizedState;return v!==null&&a!==null&&Ef(a,v[1])?v[0]:(u.memoizedState=[i,a],i)}function Jv(i,a){var u=Tr();a=a===void 0?null:a;var v=u.memoizedState;return v!==null&&a!==null&&Ef(a,v[1])?v[0]:(i=i(),u.memoizedState=[i,a],i)}function e0(i,a,u){return(Ki&21)===0?(i.baseState&&(i.baseState=!1,ir=!0),i.memoizedState=u):(Ir(u,a)||(u=Db(),ct.lanes|=u,Xi|=u,i.baseState=!0),a)}function I_(i,a){var u=Ze;Ze=u!==0&&4>u?u:4,i(!0);var v=Tf.transition;Tf.transition={};try{i(!1),a()}finally{Ze=u,Tf.transition=v}}function t0(){return Tr().memoizedState}function W_(i,a,u){var v=ni(i);if(u={lane:v,action:u,hasEagerState:!1,eagerState:null,next:null},r0(i))n0(a,u);else if(u=Ov(i,a,u,v),u!==null){var T=Zt();Ur(u,i,v,T),i0(u,a,v)}}function z_(i,a,u){var v=ni(i),T={lane:v,action:u,hasEagerState:!1,eagerState:null,next:null};if(r0(i))n0(a,T);else{var E=i.alternate;if(i.lanes===0&&(E===null||E.lanes===0)&&(E=a.lastRenderedReducer,E!==null))try{var z=a.lastRenderedState,$=E(z,u);if(T.hasEagerState=!0,T.eagerState=$,Ir($,z)){var re=a.interleaved;re===null?(T.next=T,Sf(a)):(T.next=re.next,re.next=T),a.interleaved=T;return}}catch{}finally{}u=Ov(i,a,T,v),u!==null&&(T=Zt(),Ur(u,i,v,T),i0(u,a,v))}}function r0(i){var a=i.alternate;return i===ct||a!==null&&a===ct}function n0(i,a){Cs=vc=!0;var u=i.pending;u===null?a.next=a:(a.next=u.next,u.next=a),i.pending=a}function i0(i,a,u){if((u&4194240)!==0){var v=a.lanes;v&=i.pendingLanes,u|=v,a.lanes=u,Md(i,u)}}var kc={readContext:Ar,useCallback:Ht,useContext:Ht,useEffect:Ht,useImperativeHandle:Ht,useInsertionEffect:Ht,useLayoutEffect:Ht,useMemo:Ht,useReducer:Ht,useRef:Ht,useState:Ht,useDebugValue:Ht,useDeferredValue:Ht,useTransition:Ht,useMutableSource:Ht,useSyncExternalStore:Ht,useId:Ht,unstable_isNewReconciler:!1},H_={readContext:Ar,useCallback:function(i,a){return rn().memoizedState=[i,a===void 0?null:a],i},useContext:Ar,useEffect:Yv,useImperativeHandle:function(i,a,u){return u=u!=null?u.concat([i]):null,wc(4194308,4,$v.bind(null,a,i),u)},useLayoutEffect:function(i,a){return wc(4194308,4,i,a)},useInsertionEffect:function(i,a){return wc(4,2,i,a)},useMemo:function(i,a){var u=rn();return a=a===void 0?null:a,i=i(),u.memoizedState=[i,a],i},useReducer:function(i,a,u){var v=rn();return a=u!==void 0?u(a):a,v.memoizedState=v.baseState=a,i={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:i,lastRenderedState:a},v.queue=i,i=i.dispatch=W_.bind(null,ct,i),[v.memoizedState,i]}
vendor: 7,453 bytes, lines 38-40
38,useRef:function(i){var a=rn();return i={current:i},a.memoizedState=i},useState:Gv,useDebugValue:Lf,useDeferredValue:function(i){return rn().memoizedState=i},useTransition:function(){var i=Gv(!1),a=i[0];return i=I_.bind(null,i[1]),rn().memoizedState=i,[a,i]},useMutableSource:function(){},useSyncExternalStore:function(i,a,u){var v=ct,T=rn();if(st){if(u===void 0)throw Error(r(407));u=u()}else{if(u=a(),Nt===null)throw Error(r(349));(Ki&30)!==0||Wv(v,a,u)}T.memoizedState=u;var E={value:u,getSnapshot:a};return T.queue=E,Yv(Hv.bind(null,v,E,i),[i]),v.flags|=2048,Ts(9,zv.bind(null,v,E,u,a),void 0,null),u},useId:function(){var i=rn(),a=Nt.identifierPrefix;if(st){var u=wn,v=vn;u=(v&~(1<<32-Fr(v)-1)).toString(32)+u,a=":"+a+"R"+u,u=Rs++,0<u&&(a+="H"+u.toString(32)),a+=":"}else u=F_++,a=":"+a+"r"+u.toString(32)+":";return i.memoizedState=a},unstable_isNewReconciler:!1},q_={readContext:Ar,useCallback:Zv,useContext:Ar,useEffect:Of,useImperativeHandle:Qv,useInsertionEffect:Kv,useLayoutEffect:Xv,useMemo:Jv,useReducer:Nf,useRef:Vv,useState:function(){return Nf(As)},useDebugValue:Lf,useDeferredValue:function(i){var a=Tr();return e0(a,At.memoizedState,i)},useTransition:function(){var i=Nf(As)[0],a=Tr().memoizedState;return[i,a]},useMutableSource:Fv,useSyncExternalStore:Iv,useId:t0,unstable_isNewReconciler:!1},U_={readContext:Ar,useCallback:Zv,useContext:Ar,useEffect:Of,useImperativeHandle:Qv,useInsertionEffect:Kv,useLayoutEffect:Xv,useMemo:Jv,useReducer:Bf,useRef:Vv,useState:function(){return Bf(As)},useDebugValue:Lf,useDeferredValue:function(i){var a=Tr();return At===null?a.memoizedState=i:e0(a,At.memoizedState,i)},useTransition:function(){var i=Bf(As)[0],a=Tr().memoizedState;return[i,a]},useMutableSource:Fv,useSyncExternalStore:Iv,useId:t0,unstable_isNewReconciler:!1};function zr(i,a){if(i&&i.defaultProps){a=q({},a),i=i.defaultProps;for(var u in i)a[u]===void 0&&(a[u]=i[u]);return a}return a}function Mf(i,a,u,v){a=i.memoizedState,u=u(v,a),u=u==null?a:q({},a,u),i.memoizedState=u,i.lanes===0&&(i.updateQueue.baseState=u)}var xc={isMounted:function(i){return(i=i._reactInternals)?zi(i)===i:!1},enqueueSetState:function(i,a,u){i=i._reactInternals;var v=Zt(),T=ni(i),E=kn(v,T);E.payload=a,u!=null&&(E.callback=u),a=Jn(i,E,T),a!==null&&(Ur(a,i,T,v),mc(a,i,T))},enqueueReplaceState:function(i,a,u){i=i._reactInternals;var v=Zt(),T=ni(i),E=kn(v,T);E.tag=1,E.payload=a,u!=null&&(E.callback=u),a=Jn(i,E,T),a!==null&&(Ur(a,i,T,v),mc(a,i,T))},enqueueForceUpdate:function(i,a){i=i._reactInternals;var u=Zt(),v=ni(i),T=kn(u,v);T.tag=2,a!=null&&(T.callback=a),a=Jn(i,T,v),a!==null&&(Ur(a,i,v,u),mc(a,i,v))}};function o0(i,a,u,v,T,E,z){return i=i.stateNode,typeof i.shouldComponentUpdate=="function"?i.shouldComponentUpdate(v,E,z):a.prototype&&a.prototype.isPureReactComponent?!hs(u,v)||!hs(T,E):!0}function a0(i,a,u){var v=!1,T=$n,E=a.contextType;return typeof E=="object"&&E!==null?E=Ar(E):(T=nr(a)?qi:zt.current,v=a.contextTypes,E=(v=v!=null)?Xo(i,T):$n),a=new a(u,E),i.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=xc,i.stateNode=a,a._reactInternals=i,v&&(i=i.stateNode,i.__reactInternalMemoizedUnmaskedChildContext=T,i.__reactInternalMemoizedMaskedChildContext=E),a}function s0(i,a,u,v){i=a.state,typeof a.componentWillReceiveProps=="function"&&a.componentWillReceiveProps(u,v),typeof a.UNSAFE_componentWillReceiveProps=="function"&&a.UNSAFE_componentWillReceiveProps(u,v),a.state!==i&&xc.enqueueReplaceState(a,a.state,null)}function Pf(i,a,u,v){var T=i.stateNode;T.props=u,T.state=i.memoizedState,T.refs={},kf(i);var E=a.contextType;typeof E=="object"&&E!==null?T.context=Ar(E):(E=nr(a)?qi:zt.current,T.context=Xo(i,E)),T.state=i.memoizedState,E=a.getDerivedStateFromProps,typeof E=="function"&&(Mf(i,a,E,u),T.state=i.memoizedState),typeof a.getDerivedStateFromProps=="function"||typeof T.getSnapshotBeforeUpdate=="function"||typeof T.UNSAFE_componentWillMount!="function"&&typeof T.componentWillMount!="function"||(a=T.state,typeof T.componentWillMount=="function"&&T.componentWillMount(),typeof T.UNSAFE_componentWillMount=="function"&&T.UNSAFE_componentWillMount(),a!==T.state&&xc.enqueueReplaceState(T,T.state,null),gc(i,u,T,v),T.state=i.memoizedState),typeof T.componentDidMount=="function"&&(i.flags|=4194308)}function na(i,a){try{var u="",v=a;do u+=Z(v),v=v.return;while(v);var T=u}catch(E){T=`
39Error generating stack: `+E.message+`
40`+E.stack}return{value:i,source:a,stack:T,digest:null}}function jf(i,a,u){return{value:i,source:null,stack:u??null,digest:a??null}}function Ff(i,a){try{console.error(a.value)}catch(u){setTimeout(function(){throw u})}}var G_=typeof WeakMap=="function"?WeakMap:Map;function l0(i,a,u){u=kn(-1,u),u.tag=3,u.payload={element:null};var v=a.value;return u.callback=function(){Dc||(Dc=!0,Jf=v),Ff(i,a)},u}function c0(i,a,u){u=kn(-1,u),u.tag=3;var v=i.type.getDerivedStateFromError;if(typeof v=="function"){var T=a.value;u.payload=function(){return v(T)},u.callback=function(){Ff(i,a)}}var E=i.stateNode;return E!==null&&typeof E.componentDidCatch=="function"&&(u.callback=function(){Ff(i,a),typeof v!="function"&&(ti===null?ti=new Set([this]):ti.add(this));var z=a.stack;this.componentDidCatch(a.value,{componentStack:z!==null?z:""})}),u}function u0(i,a,u){var v=i.pingCache;if(v===null){v=i.pingCache=new G_;var T=new Set;v.set(a,T)}else T=v.get(a),T===void 0&&(T=new Set,v.set(a,T));T.has(u)||(T.add(u),i=oD.bind(null,i,a,u),a.then(i,i))}function d0(i){do{var a;if((a=i.tag===13)&&(a=i.memoizedState,a=a!==null?a.dehydrated!==null:!0),a)return i;i=i.return}while(i!==null);return null}function f0(i,a,u,v,T){return(i.mode&1)===0?(i===a?i.flags|=65536:(i.flags|=128,u.flags|=131072,u.flags&=-52805,u.tag===1&&(u.alternate===null?u.tag=17:(a=kn(-1,1),a.tag=2,Jn(u,a,1))),u.lanes|=1),i):(i.flags|=65536,i.lanes=T,i)}var V_=k.ReactCurrentOwner,ir=!1;function Qt(i,a,u,v){a.child=i===null?Bv(a,null,u,v):Jo(a,i.child,u,v)}function h0(i,a,u,v,T){u=u.render;var E=a.ref;return ta(a,T),v=_f(i,a,u,v,E,T),u=Df(),i!==null&&!ir?(a.updateQueue=i.updateQueue,a.flags&=-2053,i.lanes&=~T,xn(i,a,T)):(st&&u&&ff(a),a.flags|=1,Qt(i,a,v,T),a.child)}function p0(i,a,u,v,T){if(i===null){var E=u.type;return typeof E=="function"&&!ah(E)&&E.defaultProps===void 0&&u.compare===null&&u.defaultProps===void 0?(a.tag=15,a.type=E,m0(i,a,E,v,T)):(i=Pc(u.type,null,v,a,a.mode,T),i.ref=a.ref,i.return=a,a.child=i)}if(E=i.child,(i.lanes&T)===0){var z=E.memoizedProps;if(u=u.compare,u=u!==null?u:hs,u(z,v)&&i.ref===a.ref)return xn(i,a,T)}return a.flags|=1,i=oi(E,v),i.ref=a.ref,i.return=a,a.child=i}function m0(i,a,u,v,T){if(i!==null){var E=i.memoizedProps;if(hs(E,v)&&i.ref===a.ref)if(ir=!1,a.pendingProps=v=E,(i.lanes&T)!==0)(i.flags&131072)!==0&&(ir=!0);else return a.lanes=i.lanes,xn(i,a,T)}return If(i,a,u,v,T)}function g0(i,a,u){var v=a.pendingProps,T=v.children,E=i!==null?i.memoizedState:null;if(v.mode==="hidden")if((a.mode&1)===0)a.memoizedState={baseLanes:0,cachePool:null,transitions:null},rt(oa,yr),yr|=u;else{if((u&1073741824)===0)return i=E!==null?E.baseLanes|u:u,a.lanes=a.childLanes=1073741824,a.memoizedState={baseLanes:i,cachePool:null,transitions:null},a.updateQueue=null,rt(oa,yr),yr|=i,null;a.memoizedState={baseLanes:0,cachePool:null,transitions:null},v=E!==null?E.baseLanes:u,rt(oa,yr),yr|=v}else E!==null?(v=E.baseLanes|u,a.memoizedState=null):v=u,rt(oa,yr),yr|=v;return Qt(i,a,T,u),a.child}function y0(i,a){var u=a.ref;(i===null&&u!==null||i!==null&&i.ref!==u)&&(a.flags|=512,a.flags|=2097152)}
vendor: 13,822 bytes, line 40
40function If(i,a,u,v,T){var E=nr(u)?qi:zt.current;return E=Xo(a,E),ta(a,T),u=_f(i,a,u,v,E,T),v=Df(),i!==null&&!ir?(a.updateQueue=i.updateQueue,a.flags&=-2053,i.lanes&=~T,xn(i,a,T)):(st&&v&&ff(a),a.flags|=1,Qt(i,a,u,T),a.child)}function b0(i,a,u,v,T){if(nr(u)){var E=!0;sc(a)}else E=!1;if(ta(a,T),a.stateNode===null)Rc(i,a),a0(a,u,v),Pf(a,u,v,T),v=!0;else if(i===null){var z=a.stateNode,$=a.memoizedProps;z.props=$;var re=z.context,ue=u.contextType;typeof ue=="object"&&ue!==null?ue=Ar(ue):(ue=nr(u)?qi:zt.current,ue=Xo(a,ue));var me=u.getDerivedStateFromProps,ge=typeof me=="function"||typeof z.getSnapshotBeforeUpdate=="function";ge||typeof z.UNSAFE_componentWillReceiveProps!="function"&&typeof z.componentWillReceiveProps!="function"||($!==v||re!==ue)&&s0(a,z,v,ue),Zn=!1;var pe=a.memoizedState;z.state=pe,gc(a,v,z,T),re=a.memoizedState,$!==v||pe!==re||rr.current||Zn?(typeof me=="function"&&(Mf(a,u,me,v),re=a.memoizedState),($=Zn||o0(a,u,$,v,pe,re,ue))?(ge||typeof z.UNSAFE_componentWillMount!="function"&&typeof z.componentWillMount!="function"||(typeof z.componentWillMount=="function"&&z.componentWillMount(),typeof z.UNSAFE_componentWillMount=="function"&&z.UNSAFE_componentWillMount()),typeof z.componentDidMount=="function"&&(a.flags|=4194308)):(typeof z.componentDidMount=="function"&&(a.flags|=4194308),a.memoizedProps=v,a.memoizedState=re),z.props=v,z.state=re,z.context=ue,v=$):(typeof z.componentDidMount=="function"&&(a.flags|=4194308),v=!1)}else{z=a.stateNode,Lv(i,a),$=a.memoizedProps,ue=a.type===a.elementType?$:zr(a.type,$),z.props=ue,ge=a.pendingProps,pe=z.context,re=u.contextType,typeof re=="object"&&re!==null?re=Ar(re):(re=nr(u)?qi:zt.current,re=Xo(a,re));var Ce=u.getDerivedStateFromProps;(me=typeof Ce=="function"||typeof z.getSnapshotBeforeUpdate=="function")||typeof z.UNSAFE_componentWillReceiveProps!="function"&&typeof z.componentWillReceiveProps!="function"||($!==ge||pe!==re)&&s0(a,z,v,re),Zn=!1,pe=a.memoizedState,z.state=pe,gc(a,v,z,T);var Te=a.memoizedState;$!==ge||pe!==Te||rr.current||Zn?(typeof Ce=="function"&&(Mf(a,u,Ce,v),Te=a.memoizedState),(ue=Zn||o0(a,u,ue,v,pe,Te,re)||!1)?(me||typeof z.UNSAFE_componentWillUpdate!="function"&&typeof z.componentWillUpdate!="function"||(typeof z.componentWillUpdate=="function"&&z.componentWillUpdate(v,Te,re),typeof z.UNSAFE_componentWillUpdate=="function"&&z.UNSAFE_componentWillUpdate(v,Te,re)),typeof z.componentDidUpdate=="function"&&(a.flags|=4),typeof z.getSnapshotBeforeUpdate=="function"&&(a.flags|=1024)):(typeof z.componentDidUpdate!="function"||$===i.memoizedProps&&pe===i.memoizedState||(a.flags|=4),typeof z.getSnapshotBeforeUpdate!="function"||$===i.memoizedProps&&pe===i.memoizedState||(a.flags|=1024),a.memoizedProps=v,a.memoizedState=Te),z.props=v,z.state=Te,z.context=re,v=ue):(typeof z.componentDidUpdate!="function"||$===i.memoizedProps&&pe===i.memoizedState||(a.flags|=4),typeof z.getSnapshotBeforeUpdate!="function"||$===i.memoizedProps&&pe===i.memoizedState||(a.flags|=1024),v=!1)}return Wf(i,a,u,v,E,T)}function Wf(i,a,u,v,T,E){y0(i,a);var z=(a.flags&128)!==0;if(!v&&!z)return T&&xv(a,u,!1),xn(i,a,E);v=a.stateNode,V_.current=a;var $=z&&typeof u.getDerivedStateFromError!="function"?null:v.render();return a.flags|=1,i!==null&&z?(a.child=Jo(a,i.child,null,E),a.child=Jo(a,null,$,E)):Qt(i,a,$,E),a.memoizedState=v.state,T&&xv(a,u,!0),a.child}function v0(i){var a=i.stateNode;a.pendingContext?Sv(i,a.pendingContext,a.pendingContext!==a.context):a.context&&Sv(i,a.context,!1),xf(i,a.containerInfo)}function w0(i,a,u,v,T){return Zo(),gf(T),a.flags|=256,Qt(i,a,u,v),a.child}var zf={dehydrated:null,treeContext:null,retryLane:0};function Hf(i){return{baseLanes:i,cachePool:null,transitions:null}}function S0(i,a,u){var v=a.pendingProps,T=lt.current,E=!1,z=(a.flags&128)!==0,$;if(($=z)||($=i!==null&&i.memoizedState===null?!1:(T&2)!==0),$?(E=!0,a.flags&=-129):(i===null||i.memoizedState!==null)&&(T|=1),rt(lt,T&1),i===null)return mf(a),i=a.memoizedState,i!==null&&(i=i.dehydrated,i!==null)?((a.mode&1)===0?a.lanes=1:i.data==="$!"?a.lanes=8:a.lanes=1073741824,null):(z=v.children,i=v.fallback,E?(v=a.mode,E=a.child,z={mode:"hidden",children:z},(v&1)===0&&E!==null?(E.childLanes=0,E.pendingProps=z):E=jc(z,v,0,null),i=Ji(i,v,u,null),E.return=a,i.return=a,E.sibling=i,a.child=E,a.child.memoizedState=Hf(u),a.memoizedState=zf,i):qf(a,z));if(T=i.memoizedState,T!==null&&($=T.dehydrated,$!==null))return Y_(i,a,z,v,$,T,u);if(E){E=v.fallback,z=a.mode,T=i.child,$=T.sibling;var re={mode:"hidden",children:v.children};return(z&1)===0&&a.child!==T?(v=a.child,v.childLanes=0,v.pendingProps=re,a.deletions=null):(v=oi(T,re),v.subtreeFlags=T.subtreeFlags&14680064),$!==null?E=oi($,E):(E=Ji(E,z,u,null),E.flags|=2),E.return=a,v.return=a,v.sibling=E,a.child=v,v=E,E=a.child,z=i.child.memoizedState,z=z===null?Hf(u):{baseLanes:z.baseLanes|u,cachePool:null,transitions:z.transitions},E.memoizedState=z,E.childLanes=i.childLanes&~u,a.memoizedState=zf,v}return E=i.child,i=E.sibling,v=oi(E,{mode:"visible",children:v.children}),(a.mode&1)===0&&(v.lanes=u),v.return=a,v.sibling=null,i!==null&&(u=a.deletions,u===null?(a.deletions=[i],a.flags|=16):u.push(i)),a.child=v,a.memoizedState=null,v}function qf(i,a){return a=jc({mode:"visible",children:a},i.mode,0,null),a.return=i,i.child=a}function Cc(i,a,u,v){return v!==null&&gf(v),Jo(a,i.child,null,u),i=qf(a,a.pendingProps.children),i.flags|=2,a.memoizedState=null,i}function Y_(i,a,u,v,T,E,z){if(u)return a.flags&256?(a.flags&=-257,v=jf(Error(r(422))),Cc(i,a,z,v)):a.memoizedState!==null?(a.child=i.child,a.flags|=128,null):(E=v.fallback,T=a.mode,v=jc({mode:"visible",children:v.children},T,0,null),E=Ji(E,T,z,null),E.flags|=2,v.return=a,E.return=a,v.sibling=E,a.child=v,(a.mode&1)!==0&&Jo(a,i.child,null,z),a.child.memoizedState=Hf(z),a.memoizedState=zf,E);if((a.mode&1)===0)return Cc(i,a,z,null);if(T.data==="$!"){if(v=T.nextSibling&&T.nextSibling.dataset,v)var $=v.dgst;return v=$,E=Error(r(419)),v=jf(E,v,void 0),Cc(i,a,z,v)}if($=(z&i.childLanes)!==0,ir||$){if(v=Nt,v!==null){switch(z&-z){case 4:T=2;break;case 16:T=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:T=32;break;case 536870912:T=268435456;break;default:T=0}T=(T&(v.suspendedLanes|z))!==0?0:T,T!==0&&T!==E.retryLane&&(E.retryLane=T,Sn(i,T),Ur(v,i,T,-1))}return oh(),v=jf(Error(r(421))),Cc(i,a,z,v)}return T.data==="$?"?(a.flags|=128,a.child=i.child,a=aD.bind(null,i),T._reactRetry=a,null):(i=E.treeContext,gr=Kn(T.nextSibling),mr=a,st=!0,Wr=null,i!==null&&(Cr[Rr++]=vn,Cr[Rr++]=wn,Cr[Rr++]=Ui,vn=i.id,wn=i.overflow,Ui=a),a=qf(a,v.children),a.flags|=4096,a)}function k0(i,a,u){i.lanes|=a;var v=i.alternate;v!==null&&(v.lanes|=a),wf(i.return,a,u)}function Uf(i,a,u,v,T){var E=i.memoizedState;E===null?i.memoizedState={isBackwards:a,rendering:null,renderingStartTime:0,last:v,tail:u,tailMode:T}:(E.isBackwards=a,E.rendering=null,E.renderingStartTime=0,E.last=v,E.tail=u,E.tailMode=T)}function x0(i,a,u){var v=a.pendingProps,T=v.revealOrder,E=v.tail;if(Qt(i,a,v.children,u),v=lt.current,(v&2)!==0)v=v&1|2,a.flags|=128;else{if(i!==null&&(i.flags&128)!==0)e:for(i=a.child;i!==null;){if(i.tag===13)i.memoizedState!==null&&k0(i,u,a);else if(i.tag===19)k0(i,u,a);else if(i.child!==null){i.child.return=i,i=i.child;continue}if(i===a)break e;for(;i.sibling===null;){if(i.return===null||i.return===a)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}v&=1}if(rt(lt,v),(a.mode&1)===0)a.memoizedState=null;else switch(T){case"forwards":for(u=a.child,T=null;u!==null;)i=u.alternate,i!==null&&yc(i)===null&&(T=u),u=u.sibling;u=T,u===null?(T=a.child,a.child=null):(T=u.sibling,u.sibling=null),Uf(a,!1,T,u,E);break;case"backwards":for(u=null,T=a.child,a.child=null;T!==null;){if(i=T.alternate,i!==null&&yc(i)===null){a.child=T;break}i=T.sibling,T.sibling=u,u=T,T=i}Uf(a,!0,u,null,E);break;case"together":Uf(a,!1,null,null,void 0);break;default:a.memoizedState=null}return a.child}function Rc(i,a){(a.mode&1)===0&&i!==null&&(i.alternate=null,a.alternate=null,a.flags|=2)}function xn(i,a,u){if(i!==null&&(a.dependencies=i.dependencies),Xi|=a.lanes,(u&a.childLanes)===0)return null;if(i!==null&&a.child!==i.child)throw Error(r(153));if(a.child!==null){for(i=a.child,u=oi(i,i.pendingProps),a.child=u,u.return=a;i.sibling!==null;)i=i.sibling,u=u.sibling=oi(i,i.pendingProps),u.return=a;u.sibling=null}return a.child}function K_(i,a,u){switch(a.tag){case 3:v0(a),Zo();break;case 5:jv(a);break;case 1:nr(a.type)&&sc(a);break;case 4:xf(a,a.stateNode.containerInfo);break;case 10:var v=a.type._context,T=a.memoizedProps.value;rt(hc,v._currentValue),v._currentValue=T;break;case 13:if(v=a.memoizedState,v!==null)return v.dehydrated!==null?(rt(lt,lt.current&1),a.flags|=128,null):(u&a.child.childLanes)!==0?S0(i,a,u):(rt(lt,lt.current&1),i=xn(i,a,u),i!==null?i.sibling:null);rt(lt,lt.current&1);break;case 19:if(v=(u&a.childLanes)!==0,(i.flags&128)!==0){if(v)return x0(i,a,u);a.flags|=128}if(T=a.memoizedState,T!==null&&(T.rendering=null,T.tail=null,T.lastEffect=null),rt(lt,lt.current),v)break;return null;case 22:case 23:return a.lanes=0,g0(i,a,u)}return xn(i,a,u)}var C0,Gf,R0,A0;C0=function(i,a){for(var u=a.child;u!==null;){if(u.tag===5||u.tag===6)i.appendChild(u.stateNode);else if(u.tag!==4&&u.child!==null){u.child.return=u,u=u.child;continue}if(u===a)break;for(;u.sibling===null;){if(u.return===null||u.return===a)return;u=u.return}u.sibling.return=u.return,u=u.sibling}},Gf=function(){},R0=function(i,a,u,v){var T=i.memoizedProps;if(T!==v){i=a.stateNode,Yi(tn.current);var E=null;switch(u){case"input":T=Ae(i,T),v=Ae(i,v),E=[];break;case"select":T=q({},T,{value:void 0}),v=q({},v,{value:void 0}),E=[];break;case"textarea":T=he(i,T),v=he(i,v),E=[];break;default:typeof T.onClick!="function"&&typeof v.onClick=="function"&&(i.onclick=ic)}Cd(u,v);var z;u=null;for(ue in T)if(!v.hasOwnProperty(ue)&&T.hasOwnProperty(ue)&&T[ue]!=null)if(ue==="style"){var $=T[ue];for(z in $)$.hasOwnProperty(z)&&(u||(u={}),u[z]="")}else ue!=="dangerouslySetInnerHTML"&&ue!=="children"&&ue!=="suppressContentEditableWarning"&&ue!=="suppressHydrationWarning"&&ue!=="autoFocus"&&(o.hasOwnProperty(ue)?E||(E=[]):(E=E||[]).push(ue,null));for(ue in v){var re=v[ue];if($=T!=null?T[ue]:void 0,v.hasOwnProperty(ue)&&re!==$&&(re!=null||$!=null))if(ue==="style")if($){for(z in $)!$.hasOwnProperty(z)||re&&re.hasOwnProperty(z)||(u||(u={}),u[z]="");for(z in re)re.hasOwnProperty(z)&&$[z]!==re[z]&&(u||(u={}),u[z]=re[z])}else u||(E||(E=[]),E.push(ue,u)),u=re;else ue==="dangerouslySetInnerHTML"?(re=re?re.__html:void 0,$=$?$.__html:void 0,re!=null&&$!==re&&(E=E||[]).push(ue,re)):ue==="children"?typeof re!="string"&&typeof re!="number"||(E=E||[]).push(ue,""+re):ue!=="suppressContentEditableWarning"&&ue!=="suppressHydrationWarning"&&(o.hasOwnProperty(ue)?(re!=null&&ue==="onScroll"&&it("scroll",i),E||$===re||(E=[])):(E=E||[]).push(ue,re))}u&&(E=E||[]).push("style",u);var ue=E;(a.updateQueue=ue)&&(a.flags|=4)}},A0=function(i,a,u,v){u!==v&&(a.flags|=4)};function Es(i,a){if(!st)switch(i.tailMode){case"hidden":a=i.tail;for(var u=null;a!==null;)a.alternate!==null&&(u=a),a=a.sibling;u===null?i.tail=null:u.sibling=null;break;case"collapsed":u=i.tail;for(var v=null;u!==null;)u.alternate!==null&&(v=u),u=u.sibling;v===null?a||i.tail===null?i.tail=null:i.tail.sibling=null:v.sibling=null}}function qt(i){var a=i.alternate!==null&&i.alternate.child===i.child,u=0,v=0;if(a)for(var T=i.child;T!==null;)u|=T.lanes|T.childLanes,v|=T.subtreeFlags&14680064,v|=T.flags&14680064,T.return=i,T=T.sibling;else for(T=i.child;T!==null;)u|=T.lanes|T.childLanes,v|=T.subtreeFlags,v|=T.flags,T.return=i,T=T.sibling;return i.subtreeFlags|=v,i.childLanes=u,a}function X_(i,a,u){var v=a.pendingProps;switch(hf(a),a.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return qt(a),null;case 1:return nr(a.type)&&ac(),qt(a),null;case 3:return v=a.stateNode,ra(),ot(rr),ot(zt),Af(),v.pendingContext&&(v.context=v.pendingContext,v.pendingContext=null),(i===null||i.child===null)&&(dc(a)?a.flags|=4:i===null||i.memoizedState.isDehydrated&&(a.flags&256)===0||(a.flags|=1024,Wr!==null&&(rh(Wr),Wr=null))),Gf(i,a),qt(a),null;case 5:Cf(a);var T=Yi(xs.current);if(u=a.type,i!==null&&a.stateNode!=null)R0(i,a,u,v,T),i.ref!==a.ref&&(a.flags|=512,a.flags|=2097152);else{if(!v){if(a.stateNode===null)throw Error(r(166));return qt(a),null}if(i=Yi(tn.current),dc(a)){v=a.stateNode,u=a.type;var E=a.memoizedProps;switch(v[en]=a,v[bs]=E,i=(a.mode&1)!==0,u){case"dialog":it("cancel",v),it("close",v);break;case"iframe":case"object":case"embed":it("load",v);break;case"video":case"audio":for(T=0;T<ms.length;T++)it(ms[T],v);break;case"source":it("error",v);break;case"img":case"image":case"link":it("error",v),it("load",v);break;case"details":it("toggle",v);break;case"input":Ie(v,E),it("invalid",v);break;case"select":v._wrapperState={wasMultiple:!!E.multiple},it("invalid",v);break;case"textarea":Fe(v,E),it("invalid",v)}Cd(u,E),T=null;for(var z in E)if(E.hasOwnProperty(z)){var $=E[z];z==="children"?typeof $=="string"?v.textContent!==$&&(E.suppressHydrationWarning!==!0&&nc(v.textContent,$,i),T=["children",$]):typeof $=="number"&&v.textContent!==""+$&&(E.suppressHydrationWarning!==!0&&nc(v.textContent,$,i),T=["children",""+$]):o.hasOwnProperty(z)&&$!=null&&z==="onScroll"&&it("scroll",v)}switch(u){case"input":fe(v),ae(v,E,!0);break;case"textarea":fe(v),We(v);break;case"select":case"option":break;default:typeof E.onClick=="function"&&(v.onclick=ic)}v=T,a.updateQueue=v,v!==null&&(a.flags|=4)}else{z=T.nodeType===9?T:T.ownerDocument,i==="http://www.w3.org/1999/xhtml"&&(i=$t(u)),i==="http://www.w3.org/1999/xhtml"?u==="script"?(i=z.createElement("div"),i.innerHTML="<script><\/script>
40",i=i.removeChild(i.firstChild)):typeof v.is=="string"?i=z.createElement(u,{is:v.is}):(i=z.createElement(u),u==="select"&&(z=i,v.multiple?z.multiple=!0:v.size&&(z.size=v.size))):i=z.createElementNS(i,u),i[en]=a,i[bs]=v,C0(i,a,!1,!1),a.stateNode=i;e:{switch(z=Rd(u,v),u){case"dialog":it("cancel",i),it("close",i),T=v;break;case"iframe":case"object":case"embed":it("load",i),T=v;break;case"video":case"audio":for(T=0;T<ms.length;T++)it(ms[T],i);T=v;break;case"source":it("error",i),T=v;break;case"img":case"image":case"link":it("error",i),it("load",i),T=v;break;case"details":it("toggle",i),T=v;break;case"input":Ie(i,v),T=Ae(i,v),it("invalid",i);break;case"option":T=v;break;case"select":i._wrapperState={wasMultiple:!!v.multiple},T=q({},v,{value:void 0}),it("invalid",i);break;case"textarea":Fe(i,v),T=he(i,v),it("invalid",i);break;default:T=v}Cd(u,T),$=T;for(E in $)if($.hasOwnProperty(E)){var re=$[E];E==="style"?mb(i,re):E==="dangerouslySetInnerHTML"?(re=re?re.__html:void 0,re!=null&&Pl(i,re)):E==="children"?typeof re=="string"?(u!=="textarea"||re!=="")&&tt(i,re):typeof re=="number"&&tt(i,""+re):E!=="suppressContentEditableWarning"&&E!=="suppressHydrationWarning"&&E!=="autoFocus"&&(o.hasOwnProperty(E)?re!=null&&E==="onScroll"&&it("scroll",i):re!=null&&C(i,E,re,z))}switch(u){case"input":fe(i),ae(i,v,!1);break;case"textarea":fe(i),We(i);break;case"option":v.value!=null&&i.setAttribute("value",""+te(v.value));break;case"select":i.multiple=!!v.multiple,E=v.value,E!=null?we(i,!!v.multiple,E,!1):v.defaultValue!=null&&we(i,!!v.multiple,v.defaultValue,!0);break;default:typeof T.onClick=="function"&&(i.onclick=ic)}switch(u){case"button":case"input":case"select":case"textarea":v=!!v.autoFocus;break e;case"img":v=!0;break e;default:v=!1}}v&&(a.flags|=4)}a.ref!==null&&(a.flags|=512,a.flags|=2097152)}return qt(a),null;case 6:if(i&&a.stateNode!=null)A0(i,a,i.memoizedProps,v);else{if(typeof v!="string"&&a.stateNode===null)throw Error(r(166));if(u=Yi(xs.current),Yi(tn.current),dc(a)){if(v=a.stateNode,u=a.memoizedProps,v[en]=a,(E=v.nodeValue!==u)&&(i=mr,i!==null))switch(i.tag){case 3:nc(v.nodeValue,u,(i.mode&1)!==0);break;case 5:i.memoizedProps.suppressHydrationWarning!==!0&&nc(v.nodeValue,u,(i.mode&1)!==0)}E&&(a.flags|=4)}else v=(u.nodeType===9?u:u.ownerDocument).createTextNode(v),v[en]=a,a.stateNode=v}return qt(a),null;case 13:if(ot(lt),v=a.memoizedState,i===null||i.memoizedState!==null&&i.memoizedState.dehydrated!==null){if(st&&gr!==null&&(a.mode&1)!==0&&(a.flags&128)===0)_v(),Zo(),a.flags|=98560,E=!1;else if(E=dc(a),v!==null&&v.dehydrated!==null){if(i===null){if(!E)throw Error(r(318));if(E=a.memoizedState,E=E!==null?E.dehydrated:null,!E)throw Error(r(317));E[en]=a}else Zo(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;qt(a),E=!1}else Wr!==null&&(rh(Wr),Wr=null),E=!0;if(!E)return a.flags&65536?a:null}return(a.flags&128)!==0?(a.lanes=u,a):(v=v!==null,v!==(i!==null&&i.memoizedState!==null)&&v&&(a.child.flags|=8192,(a.mode&1)!==0&&(i===null||(lt.current&1)!==0?Tt===0&&(Tt=3):oh())),a.updateQueue!==null&&(a.flags|=4),qt(a),null);case 4:return ra(),Gf(i,a),i===null&&gs(a.stateNode.containerInfo),qt(a),null;case 10:return vf(a.type._context),qt(a),null;case 17:return nr(a.type)&&ac(),qt(a),null;case 19:if(ot(lt),E=a.memoizedState,E===null)return qt(a),null;if(v=(a.flags&128)!==0,z=E.rendering,z===null)if(v)Es(E,!1);else{if(Tt!==0||i!==null&&(i.flags&128)!==0)for(i=a.child;i!==null;){if(z=yc(i),z!==null){for(a.flags|=128,Es(E,!1),v=z.updateQueue,v!==null&&(a.updateQueue=v,a.flags|=4),a.subtreeFlags=0,v=u,u=a.child;u!==null;)E=u,i=v,E.flags&=14680066,z=E.alternate,z===null?(E.childLanes=0,E.lanes=i,E.child=null,E.subtreeFlags=0,E.memoizedProps=null,E.memoizedState=null,E.updateQueue=null,E.dependencies=null,E.stateNode=null):(E.childLanes=z.childLanes,E.lanes=z.lanes,E.child=z.child,E.subtreeFlags=0,E.deletions=null,E.memoizedProps=z.memoizedProps,E.memoizedState=z.memoizedState,E.updateQueue=z.updateQueue,E.type=z.type,i=z.dependencies,E.dependencies=i===null?null:{lanes:i.lanes,firstContext:i.firstContext}),u=u.sibling;return rt(lt,lt.current&1|2),a.child}i=i.sibling}E.tail!==null&&gt()>aa&&(a.flags|=128,v=!0,Es(E,!1),a.lanes=4194304)}else{if(!v)if(i=yc(z),i!==null){if(a.flags|=128,v=!0,u=i.updateQueue,u!==null&&(a.updateQueue=u,a.flags|=4),Es(E,!0),E.tail===null&&E.tailMode==="hidden"&&!z.alternate&&!st)return qt(a),null}else 2*gt()-E.renderingStartTime>aa&&u!==1073741824&&(a.flags|=128,v=!0,Es(E,!1),a.lanes=4194304);E.isBackwards?(z.sibling=a.child,a.child=z):(u=E.last,u!==null?u.sibling=z:a.child=z,E.last=z)}return E.tail!==null?(a=E.tail,E.rendering=a,E.tail=a.sibling,E.renderingStartTime=gt(),a.sibling=null,u=lt.current,rt(lt,v?u&1|2:u&1),a):(qt(a
vendor: 22,582 bytes, line 40
40),null);case 22:case 23:return ih(),v=a.memoizedState!==null,i!==null&&i.memoizedState!==null!==v&&(a.flags|=8192),v&&(a.mode&1)!==0?(yr&1073741824)!==0&&(qt(a),a.subtreeFlags&6&&(a.flags|=8192)):qt(a),null;case 24:return null;case 25:return null}throw Error(r(156,a.tag))}function $_(i,a){switch(hf(a),a.tag){case 1:return nr(a.type)&&ac(),i=a.flags,i&65536?(a.flags=i&-65537|128,a):null;case 3:return ra(),ot(rr),ot(zt),Af(),i=a.flags,(i&65536)!==0&&(i&128)===0?(a.flags=i&-65537|128,a):null;case 5:return Cf(a),null;case 13:if(ot(lt),i=a.memoizedState,i!==null&&i.dehydrated!==null){if(a.alternate===null)throw Error(r(340));Zo()}return i=a.flags,i&65536?(a.flags=i&-65537|128,a):null;case 19:return ot(lt),null;case 4:return ra(),null;case 10:return vf(a.type._context),null;case 22:case 23:return ih(),null;case 24:return null;default:return null}}var Ac=!1,Ut=!1,Q_=typeof WeakSet=="function"?WeakSet:Set,Re=null;function ia(i,a){var u=i.ref;if(u!==null)if(typeof u=="function")try{u(null)}catch(v){ht(i,a,v)}else u.current=null}function Vf(i,a,u){try{u()}catch(v){ht(i,a,v)}}var T0=!1;function Z_(i,a){if(nf=Vl,i=ov(),Xd(i)){if("selectionStart"in i)var u={start:i.selectionStart,end:i.selectionEnd};else e:{u=(u=i.ownerDocument)&&u.defaultView||window;var v=u.getSelection&&u.getSelection();if(v&&v.rangeCount!==0){u=v.anchorNode;var T=v.anchorOffset,E=v.focusNode;v=v.focusOffset;try{u.nodeType,E.nodeType}catch{u=null;break e}var z=0,$=-1,re=-1,ue=0,me=0,ge=i,pe=null;t:for(;;){for(var Ce;ge!==u||T!==0&&ge.nodeType!==3||($=z+T),ge!==E||v!==0&&ge.nodeType!==3||(re=z+v),ge.nodeType===3&&(z+=ge.nodeValue.length),(Ce=ge.firstChild)!==null;)pe=ge,ge=Ce;for(;;){if(ge===i)break t;if(pe===u&&++ue===T&&($=z),pe===E&&++me===v&&(re=z),(Ce=ge.nextSibling)!==null)break;ge=pe,pe=ge.parentNode}ge=Ce}u=$===-1||re===-1?null:{start:$,end:re}}else u=null}u=u||{start:0,end:0}}else u=null;for(of={focusedElem:i,selectionRange:u},Vl=!1,Re=a;Re!==null;)if(a=Re,i=a.child,(a.subtreeFlags&1028)!==0&&i!==null)i.return=a,Re=i;else for(;Re!==null;){a=Re;try{var Te=a.alternate;if((a.flags&1024)!==0)switch(a.tag){case 0:case 11:case 15:break;case 1:if(Te!==null){var De=Te.memoizedProps,yt=Te.memoizedState,se=a.stateNode,oe=se.getSnapshotBeforeUpdate(a.elementType===a.type?De:zr(a.type,De),yt);se.__reactInternalSnapshotBeforeUpdate=oe}break;case 3:var le=a.stateNode.containerInfo;le.nodeType===1?le.textContent="":le.nodeType===9&&le.documentElement&&le.removeChild(le.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(r(163))}}catch(ve){ht(a,a.return,ve)}if(i=a.sibling,i!==null){i.return=a.return,Re=i;break}Re=a.return}return Te=T0,T0=!1,Te}function _s(i,a,u){var v=a.updateQueue;if(v=v!==null?v.lastEffect:null,v!==null){var T=v=v.next;do{if((T.tag&i)===i){var E=T.destroy;T.destroy=void 0,E!==void 0&&Vf(a,u,E)}T=T.next}while(T!==v)}}function Tc(i,a){if(a=a.updateQueue,a=a!==null?a.lastEffect:null,a!==null){var u=a=a.next;do{if((u.tag&i)===i){var v=u.create;u.destroy=v()}u=u.next}while(u!==a)}}function Yf(i){var a=i.ref;if(a!==null){var u=i.stateNode;switch(i.tag){case 5:i=u;break;default:i=u}typeof a=="function"?a(i):a.current=i}}function E0(i){var a=i.alternate;a!==null&&(i.alternate=null,E0(a)),i.child=null,i.deletions=null,i.sibling=null,i.tag===5&&(a=i.stateNode,a!==null&&(delete a[en],delete a[bs],delete a[cf],delete a[L_],delete a[M_])),i.stateNode=null,i.return=null,i.dependencies=null,i.memoizedProps=null,i.memoizedState=null,i.pendingProps=null,i.stateNode=null,i.updateQueue=null}function _0(i){return i.tag===5||i.tag===3||i.tag===4}function D0(i){e:for(;;){for(;i.sibling===null;){if(i.return===null||_0(i.return))return null;i=i.return}for(i.sibling.return=i.return,i=i.sibling;i.tag!==5&&i.tag!==6&&i.tag!==18;){if(i.flags&2||i.child===null||i.tag===4)continue e;i.child.return=i,i=i.child}if(!(i.flags&2))return i.stateNode}}function Kf(i,a,u){var v=i.tag;if(v===5||v===6)i=i.stateNode,a?u.nodeType===8?u.parentNode.insertBefore(i,a):u.insertBefore(i,a):(u.nodeType===8?(a=u.parentNode,a.insertBefore(i,u)):(a=u,a.appendChild(i)),u=u._reactRootContainer,u!=null||a.onclick!==null||(a.onclick=ic));else if(v!==4&&(i=i.child,i!==null))for(Kf(i,a,u),i=i.sibling;i!==null;)Kf(i,a,u),i=i.sibling}function Xf(i,a,u){var v=i.tag;if(v===5||v===6)i=i.stateNode,a?u.insertBefore(i,a):u.appendChild(i);else if(v!==4&&(i=i.child,i!==null))for(Xf(i,a,u),i=i.sibling;i!==null;)Xf(i,a,u),i=i.sibling}var Pt=null,Hr=!1;function ei(i,a,u){for(u=u.child;u!==null;)N0(i,a,u),u=u.sibling}function N0(i,a,u){if(Jr&&typeof Jr.onCommitFiberUnmount=="function")try{Jr.onCommitFiberUnmount(Wl,u)}catch{}switch(u.tag){case 5:Ut||ia(u,a);case 6:var v=Pt,T=Hr;Pt=null,ei(i,a,u),Pt=v,Hr=T,Pt!==null&&(Hr?(i=Pt,u=u.stateNode,i.nodeType===8?i.parentNode.removeChild(u):i.removeChild(u)):Pt.removeChild(u.stateNode));break;case 18:Pt!==null&&(Hr?(i=Pt,u=u.stateNode,i.nodeType===8?lf(i.parentNode,u):i.nodeType===1&&lf(i,u),ss(i)):lf(Pt,u.stateNode));break;case 4:v=Pt,T=Hr,Pt=u.stateNode.containerInfo,Hr=!0,ei(i,a,u),Pt=v,Hr=T;break;case 0:case 11:case 14:case 15:if(!Ut&&(v=u.updateQueue,v!==null&&(v=v.lastEffect,v!==null))){T=v=v.next;do{var E=T,z=E.destroy;E=E.tag,z!==void 0&&((E&2)!==0||(E&4)!==0)&&Vf(u,a,z),T=T.next}while(T!==v)}ei(i,a,u);break;case 1:if(!Ut&&(ia(u,a),v=u.stateNode,typeof v.componentWillUnmount=="function"))try{v.props=u.memoizedProps,v.state=u.memoizedState,v.componentWillUnmount()}catch($){ht(u,a,$)}ei(i,a,u);break;case 21:ei(i,a,u);break;case 22:u.mode&1?(Ut=(v=Ut)||u.memoizedState!==null,ei(i,a,u),Ut=v):ei(i,a,u);break;default:ei(i,a,u)}}function B0(i){var a=i.updateQueue;if(a!==null){i.updateQueue=null;var u=i.stateNode;u===null&&(u=i.stateNode=new Q_),a.forEach(function(v){var T=sD.bind(null,i,v);u.has(v)||(u.add(v),v.then(T,T))})}}function qr(i,a){var u=a.deletions;if(u!==null)for(var v=0;v<u.length;v++){var T=u[v];try{var E=i,z=a,$=z;e:for(;$!==null;){switch($.tag){case 5:Pt=$.stateNode,Hr=!1;break e;case 3:Pt=$.stateNode.containerInfo,Hr=!0;break e;case 4:Pt=$.stateNode.containerInfo,Hr=!0;break e}$=$.return}if(Pt===null)throw Error(r(160));N0(E,z,T),Pt=null,Hr=!1;var re=T.alternate;re!==null&&(re.return=null),T.return=null}catch(ue){ht(T,a,ue)}}if(a.subtreeFlags&12854)for(a=a.child;a!==null;)O0(a,i),a=a.sibling}function O0(i,a){var u=i.alternate,v=i.flags;switch(i.tag){case 0:case 11:case 14:case 15:if(qr(a,i),nn(i),v&4){try{_s(3,i,i.return),Tc(3,i)}catch(De){ht(i,i.return,De)}try{_s(5,i,i.return)}catch(De){ht(i,i.return,De)}}break;case 1:qr(a,i),nn(i),v&512&&u!==null&&ia(u,u.return);break;case 5:if(qr(a,i),nn(i),v&512&&u!==null&&ia(u,u.return),i.flags&32){var T=i.stateNode;try{tt(T,"")}catch(De){ht(i,i.return,De)}}if(v&4&&(T=i.stateNode,T!=null)){var E=i.memoizedProps,z=u!==null?u.memoizedProps:E,$=i.type,re=i.updateQueue;if(i.updateQueue=null,re!==null)try{$==="input"&&E.type==="radio"&&E.name!=null&&et(T,E),Rd($,z);var ue=Rd($,E);for(z=0;z<re.length;z+=2){var me=re[z],ge=re[z+1];me==="style"?mb(T,ge):me==="dangerouslySetInnerHTML"?Pl(T,ge):me==="children"?tt(T,ge):C(T,me,ge,ue)}switch($){case"input":He(T,E);break;case"textarea":Pe(T,E);break;case"select":var pe=T._wrapperState.wasMultiple;T._wrapperState.wasMultiple=!!E.multiple;var Ce=E.value;Ce!=null?we(T,!!E.multiple,Ce,!1):pe!==!!E.multiple&&(E.defaultValue!=null?we(T,!!E.multiple,E.defaultValue,!0):we(T,!!E.multiple,E.multiple?[]:"",!1))}T[bs]=E}catch(De){ht(i,i.return,De)}}break;case 6:if(qr(a,i),nn(i),v&4){if(i.stateNode===null)throw Error(r(162));T=i.stateNode,E=i.memoizedProps;try{T.nodeValue=E}catch(De){ht(i,i.return,De)}}break;case 3:if(qr(a,i),nn(i),v&4&&u!==null&&u.memoizedState.isDehydrated)try{ss(a.containerInfo)}catch(De){ht(i,i.return,De)}break;case 4:qr(a,i),nn(i);break;case 13:qr(a,i),nn(i),T=i.child,T.flags&8192&&(E=T.memoizedState!==null,T.stateNode.isHidden=E,!E||T.alternate!==null&&T.alternate.memoizedState!==null||(Zf=gt())),v&4&&B0(i);break;case 22:if(me=u!==null&&u.memoizedState!==null,i.mode&1?(Ut=(ue=Ut)||me,qr(a,i),Ut=ue):qr(a,i),nn(i),v&8192){if(ue=i.memoizedState!==null,(i.stateNode.isHidden=ue)&&!me&&(i.mode&1)!==0)for(Re=i,me=i.child;me!==null;){for(ge=Re=me;Re!==null;){switch(pe=Re,Ce=pe.child,pe.tag){case 0:case 11:case 14:case 15:_s(4,pe,pe.return);break;case 1:ia(pe,pe.return);var Te=pe.stateNode;if(typeof Te.componentWillUnmount=="function"){v=pe,u=pe.return;try{a=v,Te.props=a.memoizedProps,Te.state=a.memoizedState,Te.componentWillUnmount()}catch(De){ht(v,u,De)}}break;case 5:ia(pe,pe.return);break;case 22:if(pe.memoizedState!==null){P0(ge);continue}}Ce!==null?(Ce.return=pe,Re=Ce):P0(ge)}me=me.sibling}e:for(me=null,ge=i;;){if(ge.tag===5){if(me===null){me=ge;try{T=ge.stateNode,ue?(E=T.style,typeof E.setProperty=="function"?E.setProperty("display","none","important"):E.display="none"):($=ge.stateNode,re=ge.memoizedProps.style,z=re!=null&&re.hasOwnProperty("display")?re.display:null,$.style.display=pb("display",z))}catch(De){ht(i,i.return,De)}}}else if(ge.tag===6){if(me===null)try{ge.stateNode.nodeValue=ue?"":ge.memoizedProps}catch(De){ht(i,i.return,De)}}else if((ge.tag!==22&&ge.tag!==23||ge.memoizedState===null||ge===i)&&ge.child!==null){ge.child.return=ge,ge=ge.child;continue}if(ge===i)break e;for(;ge.sibling===null;){if(ge.return===null||ge.return===i)break e;me===ge&&(me=null),ge=ge.return}me===ge&&(me=null),ge.sibling.return=ge.return,ge=ge.sibling}}break;case 19:qr(a,i),nn(i),v&4&&B0(i);break;case 21:break;default:qr(a,i),nn(i)}}function nn(i){var a=i.flags;if(a&2){try{e:{for(var u=i.return;u!==null;){if(_0(u)){var v=u;break e}u=u.return}throw Error(r(160))}switch(v.tag){case 5:var T=v.stateNode;v.flags&32&&(tt(T,""),v.flags&=-33);var E=D0(i);Xf(i,E,T);break;case 3:case 4:var z=v.stateNode.containerInfo,$=D0(i);Kf(i,$,z);break;default:throw Error(r(161))}}catch(re){ht(i,i.return,re)}i.flags&=-3}a&4096&&(i.flags&=-4097)}function J_(i,a,u){Re=i,L0(i)}function L0(i,a,u){for(var v=(i.mode&1)!==0;Re!==null;){var T=Re,E=T.child;if(T.tag===22&&v){var z=T.memoizedState!==null||Ac;if(!z){var $=T.alternate,re=$!==null&&$.memoizedState!==null||Ut;$=Ac;var ue=Ut;if(Ac=z,(Ut=re)&&!ue)for(Re=T;Re!==null;)z=Re,re=z.child,z.tag===22&&z.memoizedState!==null?j0(T):re!==null?(re.return=z,Re=re):j0(T);for(;E!==null;)Re=E,L0(E),E=E.sibling;Re=T,Ac=$,Ut=ue}M0(i)}else(T.subtreeFlags&8772)!==0&&E!==null?(E.return=T,Re=E):M0(i)}}function M0(i){for(;Re!==null;){var a=Re;if((a.flags&8772)!==0){var u=a.alternate;try{if((a.flags&8772)!==0)switch(a.tag){case 0:case 11:case 15:Ut||Tc(5,a);break;case 1:var v=a.stateNode;if(a.flags&4&&!Ut)if(u===null)v.componentDidMount();else{var T=a.elementType===a.type?u.memoizedProps:zr(a.type,u.memoizedProps);v.componentDidUpdate(T,u.memoizedState,v.__reactInternalSnapshotBeforeUpdate)}var E=a.updateQueue;E!==null&&Pv(a,E,v);break;case 3:var z=a.updateQueue;if(z!==null){if(u=null,a.child!==null)switch(a.child.tag){case 5:u=a.child.stateNode;break;case 1:u=a.child.stateNode}Pv(a,z,u)}break;case 5:var $=a.stateNode;if(u===null&&a.flags&4){u=$;var re=a.memoizedProps;switch(a.type){case"button":case"input":case"select":case"textarea":re.autoFocus&&u.focus();break;case"img":re.src&&(u.src=re.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(a.memoizedState===null){var ue=a.alternate;if(ue!==null){var me=ue.memoizedState;if(me!==null){var ge=me.dehydrated;ge!==null&&ss(ge)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(r(163))}Ut||a.flags&512&&Yf(a)}catch(pe){ht(a,a.return,pe)}}if(a===i){Re=null;break}if(u=a.sibling,u!==null){u.return=a.return,Re=u;break}Re=a.return}}function P0(i){for(;Re!==null;){var a=Re;if(a===i){Re=null;break}var u=a.sibling;if(u!==null){u.return=a.return,Re=u;break}Re=a.return}}function j0(i){for(;Re!==null;){var a=Re;try{switch(a.tag){case 0:case 11:case 15:var u=a.return;try{Tc(4,a)}catch(re){ht(a,u,re)}break;case 1:var v=a.stateNode;if(typeof v.componentDidMount=="function"){var T=a.return;try{v.componentDidMount()}catch(re){ht(a,T,re)}}var E=a.return;try{Yf(a)}catch(re){ht(a,E,re)}break;case 5:var z=a.return;try{Yf(a)}catch(re){ht(a,z,re)}}}catch(re){ht(a,a.return,re)}if(a===i){Re=null;break}var $=a.sibling;if($!==null){$.return=a.return,Re=$;break}Re=a.return}}var eD=Math.ceil,Ec=k.ReactCurrentDispatcher,$f=k.ReactCurrentOwner,Er=k.ReactCurrentBatchConfig,Ye=0,Nt=null,kt=null,jt=0,yr=0,oa=Xn(0),Tt=0,Ds=null,Xi=0,_c=0,Qf=0,Ns=null,or=null,Zf=0,aa=1/0,Cn=null,Dc=!1,Jf=null,ti=null,Nc=!1,ri=null,Bc=0,Bs=0,eh=null,Oc=-1,Lc=0;function Zt(){return(Ye&6)!==0?gt():Oc!==-1?Oc:Oc=gt()}function ni(i){return(i.mode&1)===0?1:(Ye&2)!==0&&jt!==0?jt&-jt:j_.transition!==null?(Lc===0&&(Lc=Db()),Lc):(i=Ze,i!==0||(i=window.event,i=i===void 0?16:Ib(i.type)),i)}function Ur(i,a,u,v){if(50<Bs)throw Bs=0,eh=null,Error(r(185));rs(i,u,v),((Ye&2)===0||i!==Nt)&&(i===Nt&&((Ye&2)===0&&(_c|=u),Tt===4&&ii(i,jt)),ar(i,v),u===1&&Ye===0&&(a.mode&1)===0&&(aa=gt()+500,lc&&Qn()))}function ar(i,a){var u=i.callbackNode;jE(i,a);var v=ql(i,i===Nt?jt:0);if(v===0)u!==null&&Tb(u),i.callbackNode=null,i.callbackPriority=0;else if(a=v&-v,i.callbackPriority!==a){if(u!=null&&Tb(u),a===1)i.tag===0?P_(I0.bind(null,i)):Cv(I0.bind(null,i)),B_(function(){(Ye&6)===0&&Qn()}),u=null;else{switch(Nb(v)){case 1:u=Bd;break;case 4:u=Eb;break;case 16:u=Il;break;case 536870912:u=_b;break;default:u=Il}u=Y0(u,F0.bind(null,i))}i.callbackPriority=a,i.callbackNode=u}}function F0(i,a){if(Oc=-1,Lc=0,(Ye&6)!==0)throw Error(r(327));var u=i.callbackNode;if(sa()&&i.callbackNode!==u)return null;var v=ql(i,i===Nt?jt:0);if(v===0)return null;if((v&30)!==0||(v&i.expiredLanes)!==0||a)a=Mc(i,v);else{a=v;var T=Ye;Ye|=2;var E=z0();(Nt!==i||jt!==a)&&(Cn=null,aa=gt()+500,Qi(i,a));do try{nD();break}catch($){W0(i,$)}while(!0);bf(),Ec.current=E,Ye=T,kt!==null?a=0:(Nt=null,jt=0,a=Tt)}if(a!==0){if(a===2&&(T=Od(i),T!==0&&(v=T,a=th(i,T))),a===1)throw u=Ds,Qi(i,0),ii(i,v),ar(i,gt()),u;if(a===6)ii(i,v);else{if(T=i.current.alternate,(v&30)===0&&!tD(T)&&(a=Mc(i,v),a===2&&(E=Od(i),E!==0&&(v=E,a=th(i,E))),a===1))throw u=Ds,Qi(i,0),ii(i,v),ar(i,gt()),u;switch(i.finishedWork=T,i.finishedLanes=v,a){case 0:case 1:throw Error(r(345));case 2:Zi(i,or,Cn);break;case 3:if(ii(i,v),(v&130023424)===v&&(a=Zf+500-gt(),10<a)){if(ql(i,0)!==0)break;if(T=i.suspendedLanes,(T&v)!==v){Zt(),i.pingedLanes|=i.suspendedLanes&T;break}i.timeoutHandle=sf(Zi.bind(null,i,or,Cn),a);break}Zi(i,or,Cn);break;case 4:if(ii(i,v),(v&4194240)===v)break;for(a=i.eventTimes,T=-1;0<v;){var z=31-Fr(v);E=1<<z,z=a[z],z>T&&(T=z),v&=~E}if(v=T,v=gt()-v,v=(120>v?120:480>v?480:1080>v?1080:1920>v?1920:3e3>v?3e3:4320>v?4320:1960*eD(v/1960))-v,10<v){i.timeoutHandle=sf(Zi.bind(null,i,or,Cn),v);break}Zi(i,or,Cn);break;case 5:Zi(i,or,Cn);break;default:throw Error(r(329))}}}return ar(i,gt()),i.callbackNode===u?F0.bind(null,i):null}function th(i,a){var u=Ns;return i.current.memoizedState.isDehydrated&&(Qi(i,a).flags|=256),i=Mc(i,a),i!==2&&(a=or,or=u,a!==null&&rh(a)),i}function rh(i){or===null?or=i:or.push.apply(or,i)}function tD(i){for(var a=i;;){if(a.flags&16384){var u=a.updateQueue;if(u!==null&&(u=u.stores,u!==null))for(var v=0;v<u.length;v++){var T=u[v],E=T.getSnapshot;T=T.value;try{if(!Ir(E(),T))return!1}catch{return!1}}}if(u=a.child,a.subtreeFlags&16384&&u!==null)u.return=a,a=u;else{if(a===i)break;for(;a.sibling===null;){if(a.return===null||a.return===i)return!0;a=a.return}a.sibling.return=a.return,a=a.sibling}}return!0}function ii(i,a){for(a&=~Qf,a&=~_c,i.suspendedLanes|=a,i.pingedLanes&=~a,i=i.expirationTimes;0<a;){var u=31-Fr(a),v=1<<u;i[u]=-1,a&=~v}}function I0(i){if((Ye&6)!==0)throw Error(r(327));sa();var a=ql(i,0);if((a&1)===0)return ar(i,gt()),null;var u=Mc(i,a);if(i.tag!==0&&u===2){var v=Od(i);v!==0&&(a=v,u=th(i,v))}if(u===1)throw u=Ds,Qi(i,0),ii(i,a),ar(i,gt()),u;if(u===6)throw Error(r(345));return i.finishedWork=i.current.alternate,i.finishedLanes=a,Zi(i,or,Cn),ar(i,gt()),null}function nh(i,a){var u=Ye;Ye|=1;try{return i(a)}finally{Ye=u,Ye===0&&(aa=gt()+500,lc&&Qn())}}function $i(i){ri!==null&&ri.tag===0&&(Ye&6)===0&&sa();var a=Ye;Ye|=1;var u=Er.transition,v=Ze;try{if(Er.transition=null,Ze=1,i)return i()}finally{Ze=v,Er.transition=u,Ye=a,(Ye&6)===0&&Qn()}}function ih(){yr=oa.current,ot(oa)}function Qi(i,a){i.finishedWork=null,i.finishedLanes=0;var u=i.timeoutHandle;if(u!==-1&&(i.timeoutHandle=-1,N_(u)),kt!==null)for(u=kt.return;u!==null;){var v=u;switch(hf(v),v.tag){case 1:v=v.type.childContextTypes,v!=null&&ac();break;case 3:ra(),ot(rr),ot(zt),Af();break;case 5:Cf(v);break;case 4:ra();break;case 13:ot(lt);break;case 19:ot(lt);break;case 10:vf(v.type._context);break;case 22:case 23:ih()}u=u.return}if(Nt=i,kt=i=oi(i.current,null),jt=yr=a,Tt=0,Ds=null,Qf=_c=Xi=0,or=Ns=null,Vi!==null){for(a=0;a<Vi.length;a++)if(u=Vi[a],v=u.interleaved,v!==null){u.interleaved=null;var T=v.next,E=u.pending;if(E!==null){var z=E.next;E.next=T,v.next=z}u.pending=v}Vi=null}return i}function W0(i,a){do{var u=kt;try{if(bf(),bc.current=kc,vc){for(var v=ct.memoizedState;v!==null;){var T=v.queue;T!==null&&(T.pending=null),v=v.next}vc=!1}if(Ki=0,Dt=At=ct=null,Cs=!1,Rs=0,$f.current=null,u===null||u.return===null){Tt=1,Ds=a,kt=null;break}e:{var E=i,z=u.return,$=u,re=a;if(a=jt,$.flags|=32768,re!==null&&typeof re=="object"&&typeof re.then=="function"){var ue=re,me=$,ge=me.tag;if((me.mode&1)===0&&(ge===0||ge===11||ge===15)){var pe=me.alternate;pe?(me.updateQueue=pe.updateQueue,me.memoizedState=pe.memoizedState,me.lanes=pe.lanes):(me.updateQueue=null,me.memoizedState=null)}var Ce=d0(z);if(Ce!==null){Ce.flags&=-257,f0(Ce,z,$,E,a),Ce.mode&1&&u0(E,ue,a),a=Ce,re=ue;var Te=a.updateQueue;if(Te===null){var De=new Set;De.add(re),a.updateQueue=De}else Te.add(re);break e}else{if((a&1)===0){u0(E,ue,a),oh();break e}re=Error(r(426))}}else if(st&&$.mode&1){var yt=d0(z);if(yt!==null){(yt.flags&65536)===0&&(yt.flags|=256),f0(yt,z,$,E,a),gf(na(re,$));break e}}E=re=na(re,$),Tt!==4&&(Tt=2),Ns===null?Ns=[E]:Ns.push(E),E=z;do{switch(E.tag){case 3:E.flags|=65536,a&=-a,E.lanes|=a;var se=l0(E,re,a);Mv(E,se);break e;case 1:$=re;var oe=E.type,le=E.stateNode;if((E.flags&128)===0&&(typeof oe.getDerivedStateFromError=="function"||le!==null&&typeof le.componentDidCatch=="function"&&(ti===null||!ti.has(le)))){E.flags|=65536,a&=-a,E.lanes|=a;var ve=c0(E,$,a);Mv(E,ve);break e}}E=E.return}while(E!==null)}q0(u)}catch(Ne){a=Ne,kt===u&&u!==null&&(kt=u=u.return);continue}break}while(!0)}function z0(){var i=Ec.current;return Ec.current=kc,i===null?kc:i}function oh(){(Tt===0||Tt===3||Tt===2)&&(Tt=4),Nt===null||(Xi&268435455)===0&&(_c&268435455)===0||ii(Nt,jt)}function Mc(i,a){var u=Ye;Ye|=2;var v=z0();(Nt!==i||jt!==a)&&(Cn=null,Qi(i,a));do try{rD();break}catch(T){W0(i,T)}while(!0);if(bf(),Ye=u,Ec.current=v,kt!==null)throw Error(r(261));return Nt=null,jt=0,Tt}function rD(){for(;kt!==null;)H0(kt)}function nD(){for(;kt!==null&&!EE();)H0(kt)}function H0(i){var a=V0(i.alternate,i,yr);i.memoizedProps=i.pendingProps,a===null?q0(i):kt=a,$f.current=null}function q0(i){var a=i;do{var u=a.alternate;if(i=a.return,(a.flags&32768)===0){if(u=X_(u,a,yr),u!==null){kt=u;return}}else{if(u=$_(u,a),u!==null){u.flags&=32767,kt=u;return}if(i!==null)i.flags|=32768,i.subtreeFlags=0,i.deletions=null;else{Tt=6,kt=null;return}}if(a=a.sibling,a!==null){kt=a;return}kt=a=i}while(a!==null);Tt===0&&(Tt=5)}function Zi(i,a,u){var v=Ze,T=Er.transition;try{Er.transition=null,Ze=1,iD(i,a,u,v)}finally{Er.transition=T,Ze=v}return null}function iD(i,a,u,v){do sa();while(ri!==null);if((Ye&6)!==0)throw Error(r(327));u=i.finishedWork;var T=i.finishedLanes;if(u===null)return null;if(i.finishedWork=null,i.finishedLanes=0,u===i.current)throw Error(r(177));i.callbackNode=null,i.callbackPriority=0;var E=u.lanes|u.childLanes;if(FE(i,E),i===Nt&&(kt=Nt=null,jt=0),(u.subtreeFlags&2064)===0&&(u.flags&2064)===0||Nc||(Nc=!0,Y0(Il,function(){return sa(),null})),E=(u.flags&15990)!==0,(u.subtreeFlags&15990)!==0||E){E=Er.transition,Er.transition=null;var z=Ze;Ze=1;var $=Ye;Ye|=4,$f.current=null,Z_(i,u),O0(u,i),C_(of),Vl=!!nf,of=nf=null,i.current=u,J_(u),_E(),Ye=$,Ze=z,Er.transition=E}else i.current=u;if(Nc&&(Nc=!1,ri=i,Bc=T),E=i.pendingLanes,E===0&&(ti=null),BE(u.stateNode),ar(i,gt()),a!==null)for(v=i.onRecoverableError,u=0;u<a.length;u++)T=a[u],v(T.value,{componentStack:T.stack,digest:T.digest});if(Dc)throw Dc=!1,i=Jf,Jf=null,i;return(Bc&1)!==0&&i.tag!==0&&sa(),E=i.pendingLanes,(E&1)!==0?i===eh?Bs++:(Bs=0,eh=i):Bs=0,Qn(),null}function sa(){if(ri!==null){var i=Nb(Bc),a=Er.transition,u=Ze;try{if(Er.transition=null,Ze=16>i?16:i,ri===null)var v=!1;else{if(i=ri,ri=null,Bc=0,(Ye&6)!==0)throw Error(r(331));var T=Ye;for(Ye|=4,Re=i.current;Re!==null;){var E=Re,z=E.child;if((Re.flags&16)!==0){var $=E.deletions;if($!==null){for(var re=0;re<$.length;re++){var ue=$[re];for(Re=ue;Re!==null;){var me=Re;switch(me.tag){case 0:case 11:case 15:_s(8,me,E)}var ge=me.child;if(ge!==null)ge.return=me,Re=ge;else for(;Re!==null;){me=Re;var pe=me.sibling,Ce=me.return;if(E0(me),me===ue){Re=null;break}if(pe!==null){pe.return=Ce,Re=pe;break}Re=Ce}}}var Te=E.alternate;if(Te!==null){var De=Te.child;if(De!==null){Te.child=null;do{var yt=De.sibling;De.sibling=null,De=yt}while(De!==null)}}Re=E}}if((E.subtreeFlags&2064)!==0&&z!==null)z.return=E,Re=z;else e:for(;Re!==null;){if(E=Re,(E.flags&2048)!==0)switch(E.tag){case 0:case 11:case 15:_s(9,E,E.return)}var se=E.sibling;if(se!==null){se.return=E.return,Re=se;break e}Re=E.return}}var oe=i.current;for(Re=oe;Re!==null;){z=Re;var le=z.child;if((z.subtreeFlags&2064)!==0&&le!==null)le.return=z,Re=le;else e:for(z=oe;Re!==null;){if($=Re,($.flags&2048)!==0)try{switch($.tag){case 0:case 11:case 15:Tc(9,$)}}catch(Ne){ht($,$.return,Ne)}if($===z){Re=null;break e}var ve=$.sibling;if(ve!==null){ve.return=$.return,Re=ve;break e}Re=$.return}}if(Ye=T,Qn(),Jr&&typeof Jr.onPostCommitFiberRoot=="function")try{Jr.onPostCommitFiberRoot(Wl,i)}catch{}v=!0}return v}finally{Ze=u,Er.transition=a}}return!1}function U0(i,a,u){a=na(u,a),a=l0(i,a,1),i=Jn(i,a,1),a=Zt(),i!==null&&(rs(i,1,a),ar(i,a))}function ht(i,a,u){if(i.tag===3)U0(i,i,u);else for(;a!==null;){if(a.tag===3){U0(a,i,u);break}else if(a.tag===1){var v=a.stateNode;if(typeof a.type.getDerivedStateFromError=="function"||typeof v.componentDidCatch=="function"&&(ti===null||!ti.has(v))){i=na(u,i),i=c0(a,i,1),a=Jn(a,i,1),i=Zt(),a!==null&&(rs(a,1,i),ar(a,i));break}}a=a.return}}function oD(i,a,u){var v=i.pingCache;v!==null&&v.delete(a),a=Zt(),i.pingedLanes|=i.suspendedLanes&u,Nt===i&&(jt&u)===u&&(Tt===4||Tt===3&&(jt&130023424)===jt&&500>gt()-Zf?Qi(i,0):Qf|=u),ar(i,a)}function G0(i,a){a===0&&((i.mode&1)===0?a=1:(a=Hl,Hl<<=1,(Hl&130023424)===0&&(Hl=4194304)));
vendor: 4,410 bytes, line 40
40var u=Zt();i=Sn(i,a),i!==null&&(rs(i,a,u),ar(i,u))}function aD(i){var a=i.memoizedState,u=0;a!==null&&(u=a.retryLane),G0(i,u)}function sD(i,a){var u=0;switch(i.tag){case 13:var v=i.stateNode,T=i.memoizedState;T!==null&&(u=T.retryLane);break;case 19:v=i.stateNode;break;default:throw Error(r(314))}v!==null&&v.delete(a),G0(i,u)}var V0;V0=function(i,a,u){if(i!==null)if(i.memoizedProps!==a.pendingProps||rr.current)ir=!0;else{if((i.lanes&u)===0&&(a.flags&128)===0)return ir=!1,K_(i,a,u);ir=(i.flags&131072)!==0}else ir=!1,st&&(a.flags&1048576)!==0&&Rv(a,uc,a.index);switch(a.lanes=0,a.tag){case 2:var v=a.type;Rc(i,a),i=a.pendingProps;var T=Xo(a,zt.current);ta(a,u),T=_f(null,a,v,i,T,u);var E=Df();return a.flags|=1,typeof T=="object"&&T!==null&&typeof T.render=="function"&&T.$$typeof===void 0?(a.tag=1,a.memoizedState=null,a.updateQueue=null,nr(v)?(E=!0,sc(a)):E=!1,a.memoizedState=T.state!==null&&T.state!==void 0?T.state:null,kf(a),T.updater=xc,a.stateNode=T,T._reactInternals=a,Pf(a,v,i,u),a=Wf(null,a,v,!0,E,u)):(a.tag=0,st&&E&&ff(a),Qt(null,a,T,u),a=a.child),a;case 16:v=a.elementType;e:{switch(Rc(i,a),i=a.pendingProps,T=v._init,v=T(v._payload),a.type=v,T=a.tag=cD(v),i=zr(v,i),T){case 0:a=If(null,a,v,i,u);break e;case 1:a=b0(null,a,v,i,u);break e;case 11:a=h0(null,a,v,i,u);break e;case 14:a=p0(null,a,v,zr(v.type,i),u);break e}throw Error(r(306,v,""))}return a;case 0:return v=a.type,T=a.pendingProps,T=a.elementType===v?T:zr(v,T),If(i,a,v,T,u);case 1:return v=a.type,T=a.pendingProps,T=a.elementType===v?T:zr(v,T),b0(i,a,v,T,u);case 3:e:{if(v0(a),i===null)throw Error(r(387));v=a.pendingProps,E=a.memoizedState,T=E.element,Lv(i,a),gc(a,v,null,u);var z=a.memoizedState;if(v=z.element,E.isDehydrated)if(E={element:v,isDehydrated:!1,cache:z.cache,pendingSuspenseBoundaries:z.pendingSuspenseBoundaries,transitions:z.transitions},a.updateQueue.baseState=E,a.memoizedState=E,a.flags&256){T=na(Error(r(423)),a),a=w0(i,a,v,u,T);break e}else if(v!==T){T=na(Error(r(424)),a),a=w0(i,a,v,u,T);break e}else for(gr=Kn(a.stateNode.containerInfo.firstChild),mr=a,st=!0,Wr=null,u=Bv(a,null,v,u),a.child=u;u;)u.flags=u.flags&-3|4096,u=u.sibling;else{if(Zo(),v===T){a=xn(i,a,u);break e}Qt(i,a,v,u)}a=a.child}return a;case 5:return jv(a),i===null&&mf(a),v=a.type,T=a.pendingProps,E=i!==null?i.memoizedProps:null,z=T.children,af(v,T)?z=null:E!==null&&af(v,E)&&(a.flags|=32),y0(i,a),Qt(i,a,z,u),a.child;case 6:return i===null&&mf(a),null;case 13:return S0(i,a,u);case 4:return xf(a,a.stateNode.containerInfo),v=a.pendingProps,i===null?a.child=Jo(a,null,v,u):Qt(i,a,v,u),a.child;case 11:return v=a.type,T=a.pendingProps,T=a.elementType===v?T:zr(v,T),h0(i,a,v,T,u);case 7:return Qt(i,a,a.pendingProps,u),a.child;case 8:return Qt(i,a,a.pendingProps.children,u),a.child;case 12:return Qt(i,a,a.pendingProps.children,u),a.child;case 10:e:{if(v=a.type._context,T=a.pendingProps,E=a.memoizedProps,z=T.value,rt(hc,v._currentValue),v._currentValue=z,E!==null)if(Ir(E.value,z)){if(E.children===T.children&&!rr.current){a=xn(i,a,u);break e}}else for(E=a.child,E!==null&&(E.return=a);E!==null;){var $=E.dependencies;if($!==null){z=E.child;for(var re=$.firstContext;re!==null;){if(re.context===v){if(E.tag===1){re=kn(-1,u&-u),re.tag=2;var ue=E.updateQueue;if(ue!==null){ue=ue.shared;var me=ue.pending;me===null?re.next=re:(re.next=me.next,me.next=re),ue.pending=re}}E.lanes|=u,re=E.alternate,re!==null&&(re.lanes|=u),wf(E.return,u,a),$.lanes|=u;break}re=re.next}}else if(E.tag===10)z=E.type===a.type?null:E.child;else if(E.tag===18){if(z=E.return,z===null)throw Error(r(341));z.lanes|=u,$=z.alternate,$!==null&&($.lanes|=u),wf(z,u,a),z=E.sibling}else z=E.child;if(z!==null)z.return=E;else for(z=E;z!==null;){if(z===a){z=null;break}if(E=z.sibling,E!==null){E.return=z.return,z=E;break}z=z.return}E=z}Qt(i,a,T.children,u),a=a.child}return a;case 9:return T=a.type,v=a.pendingProps.children,ta(a,u),T=Ar(T),v=v(T),a.flags|=1,Qt(i,a,v,u),a.child;case 14:return v=a.type,T=zr(v,a.pendingProps),T=zr(v.type,T),p0(i,a,v,T,u);case 15:return m0(i,a,a.type,a.pendingProps,u);case 17:return v=a.type,T=a.pendingProps,T=a.elementType===v?T:zr(v,T),Rc(i,a),a.tag=1,nr(v)?(i=!0,sc(a)):i=!1,ta(a,u),a0(a,v,T),Pf(a,v,T,u),Wf(null,a,v,!0,i,u);case 19:return x0(i,a,u);case 22:return g0(i,a,u)}throw Error(r(156,a.tag))};function Y0(i,a){return Ab(i,a)}function lD(i,a,u,v){this.tag=i,this.key=u,this.sibling=this.child=this.return=this.stateNode=this.t
vendor: 2,810 bytes, line 40
40ype=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=a,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=v,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function _r(i,a,u,v){return new lD(i,a,u,v)}function ah(i){return i=i.prototype,!(!i||!i.isReactComponent)}function cD(i){if(typeof i=="function")return ah(i)?1:0;if(i!=null){if(i=i.$$typeof,i===j)return 11;if(i===H)return 14}return 2}function oi(i,a){var u=i.alternate;return u===null?(u=_r(i.tag,a,i.key,i.mode),u.elementType=i.elementType,u.type=i.type,u.stateNode=i.stateNode,u.alternate=i,i.alternate=u):(u.pendingProps=a,u.type=i.type,u.flags=0,u.subtreeFlags=0,u.deletions=null),u.flags=i.flags&14680064,u.childLanes=i.childLanes,u.lanes=i.lanes,u.child=i.child,u.memoizedProps=i.memoizedProps,u.memoizedState=i.memoizedState,u.updateQueue=i.updateQueue,a=i.dependencies,u.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext},u.sibling=i.sibling,u.index=i.index,u.ref=i.ref,u}function Pc(i,a,u,v,T,E){var z=2;if(v=i,typeof i=="function")ah(i)&&(z=1);else if(typeof i=="string")z=5;else e:switch(i){case D:return Ji(u.children,T,E,a);case _:z=8,T|=8;break;case F:return i=_r(12,u,a,T|2),i.elementType=F,i.lanes=E,i;case I:return i=_r(13,u,a,T),i.elementType=I,i.lanes=E,i;case L:return i=_r(19,u,a,T),i.elementType=L,i.lanes=E,i;case X:return jc(u,T,E,a);default:if(typeof i=="object"&&i!==null)switch(i.$$typeof){case M:z=10;break e;case O:z=9;break e;case j:z=11;break e;case H:z=14;break e;case G:z=16,v=null;break e}throw Error(r(130,i==null?i:typeof i,""))}return a=_r(z,u,a,T),a.elementType=i,a.type=v,a.lanes=E,a}function Ji(i,a,u,v){return i=_r(7,i,v,a),i.lanes=u,i}function jc(i,a,u,v){return i=_r(22,i,v,a),i.elementType=X,i.lanes=u,i.stateNode={isHidden:!1},i}function sh(i,a,u){return i=_r(6,i,null,a),i.lanes=u,i}function lh(i,a,u){return a=_r(4,i.children!==null?i.children:[],i.key,a),a.lanes=u,a.stateNode={containerInfo:i.containerInfo,pendingChildren:null,implementation:i.implementation},a}function uD(i,a,u,v,T){this.tag=a,this.containerInfo=i,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Ld(0),this.expirationTimes=Ld(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ld(0),this.identifierPrefix=v,this.onRecoverableError=T,this.mutableSourceEagerHydrationData=null}function ch(i,a,u,v,T,E,z,$,re){return i=new uD(i,a,u,$,re),a===1?(a=1,E===!0&&(a|=8)):a=0,E=_r(3,null,null,a),i.current=E,E.stateNode=i,E.memoizedState={element:v,isDehydrated:u,cac
vendor: 1,572 bytes, line 40
40he:null,transitions:null,pendingSuspenseBoundaries:null},kf(E),i}function dD(i,a,u){var v=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:N,key:v==null?null:""+v,children:i,containerInfo:a,implementation:u}}function K0(i){if(!i)return $n;i=i._reactInternals;e:{if(zi(i)!==i||i.tag!==1)throw Error(r(170));var a=i;do{switch(a.tag){case 3:a=a.stateNode.context;break e;case 1:if(nr(a.type)){a=a.stateNode.__reactInternalMemoizedMergedChildContext;break e}}a=a.return}while(a!==null);throw Error(r(171))}if(i.tag===1){var u=i.type;if(nr(u))return kv(i,u,a)}return a}function X0(i,a,u,v,T,E,z,$,re){return i=ch(u,v,!0,i,T,E,z,$,re),i.context=K0(null),u=i.current,v=Zt(),T=ni(u),E=kn(v,T),E.callback=a??null,Jn(u,E,T),i.current.lanes=T,rs(i,T,v),ar(i,v),i}function Fc(i,a,u,v){var T=a.current,E=Zt(),z=ni(T);return u=K0(u),a.context===null?a.context=u:a.pendingContext=u,a=kn(E,z),a.payload={element:i},v=v===void 0?null:v,v!==null&&(a.callback=v),i=Jn(T,a,z),i!==null&&(Ur(i,T,z,E),mc(i,T,z)),z}function Ic(i){if(i=i.current,!i.child)return null;switch(i.child.tag){case 5:return i.child.stateNode;default:return i.child.stateNode}}function $0(i,a){if(i=i.memoizedState,i!==null&&i.dehydrated!==null){var u=i.retryLane;i.retryLane=u!==0&&u<a?u:a}}function uh(i,a){$0(i,a),(i=i.alternate)&&$0(i,a)}function fD(){return null}var Q0=typeof reportError=="function"?reportError:function(i){console.error(i)};function dh(i){this._internalRoot=i}Wc.prototype.render=dh.prototype.render=function(i){var a=this._internalRoot;if(a===null)throw Error(r(409));
vendor: 6,309 bytes, line 40
40Fc(i,a,null,null)},Wc.prototype.unmount=dh.prototype.unmount=function(){var i=this._internalRoot;if(i!==null){this._internalRoot=null;var a=i.containerInfo;$i(function(){Fc(null,i,null,null)}),a[yn]=null}};function Wc(i){this._internalRoot=i}Wc.prototype.unstable_scheduleHydration=function(i){if(i){var a=Lb();i={blockedOn:null,target:i,priority:a};for(var u=0;u<Gn.length&&a!==0&&a<Gn[u].priority;u++);Gn.splice(u,0,i),u===0&&jb(i)}};function fh(i){return!(!i||i.nodeType!==1&&i.nodeType!==9&&i.nodeType!==11)}function zc(i){return!(!i||i.nodeType!==1&&i.nodeType!==9&&i.nodeType!==11&&(i.nodeType!==8||i.nodeValue!==" react-mount-point-unstable "))}function Z0(){}function hD(i,a,u,v,T){if(T){if(typeof v=="function"){var E=v;v=function(){var ue=Ic(z);E.call(ue)}}var z=X0(a,v,i,0,null,!1,!1,"",Z0);return i._reactRootContainer=z,i[yn]=z.current,gs(i.nodeType===8?i.parentNode:i),$i(),z}for(;T=i.lastChild;)i.removeChild(T);if(typeof v=="function"){var $=v;v=function(){var ue=Ic(re);$.call(ue)}}var re=ch(i,0,!1,null,null,!1,!1,"",Z0);return i._reactRootContainer=re,i[yn]=re.current,gs(i.nodeType===8?i.parentNode:i),$i(function(){Fc(a,re,u,v)}),re}function Hc(i,a,u,v,T){var E=u._reactRootContainer;if(E){var z=E;if(typeof T=="function"){var $=T;T=function(){var re=Ic(z);$.call(re)}}Fc(a,z,i,T)}else z=hD(u,a,i,T,v);return Ic(z)}Bb=function(i){switch(i.tag){case 3:var a=i.stateNode;if(a.current.memoizedState.isDehydrated){var u=ts(a.pendingLanes);u!==0&&(Md(a,u|1),ar(a,gt()),(Ye&6)===0&&(aa=gt()+500,Qn()))}break;case 13:$i(function(){var v=Sn(i,1);if(v!==null){var T=Zt();Ur(v,i,1,T)}}),uh(i,1)}},Pd=function(i){if(i.tag===13){var a=Sn(i,134217728);if(a!==null){var u=Zt();Ur(a,i,134217728,u)}uh(i,134217728)}},Ob=function(i){if(i.tag===13){var a=ni(i),u=Sn(i,a);if(u!==null){var v=Zt();Ur(u,i,a,v)}uh(i,a)}},Lb=function(){return Ze},Mb=function(i,a){var u=Ze;try{return Ze=i,a()}finally{Ze=u}},Ed=function(i,a,u){switch(a){case"input":if(He(i,u),a=u.name,u.type==="radio"&&a!=null){for(u=i;u.parentNode;)u=u.parentNode;for(u=u.querySelectorAll("input[name="+JSON.stringify(""+a)+'][type="radio"]'),a=0;a<u.length;a++){var v=u[a];if(v!==i&&v.form===i.form){var T=oc(v);if(!T)throw Error(r(90));ye(v),He(v,T)}}}break;case"textarea":Pe(i,u);break;case"select":a=u.value,a!=null&&we(i,!!u.multiple,a,!1)}},vb=nh,wb=$i;var pD={usingClientEntryPoint:!1,Events:[vs,Yo,oc,yb,bb,nh]},Os={findFiberByHostInstance:Hi,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},mD={bundleType:Os.bundleType,version:Os.version,rendererPackageName:Os.rendererPackageName,rendererConfig:Os.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(i){return i=Cb(i),i===null?null:i.stateNode},findFiberByHostInstance:Os.findFiberByHostInstance||fD,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var qc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!qc.isDisabled&&qc.supportsFiber)try{Wl=qc.inject(mD),Jr=qc}catch{}}return sr.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=pD,sr.createPortal=function(i,a){var u=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!fh(a))throw Error(r(200));return dD(i,a,null,u)},sr.createRoot=function(i,a){if(!fh(i))throw Error(r(299));var u=!1,v="",T=Q0;return a!=null&&(a.unstable_strictMode===!0&&(u=!0),a.identifierPrefix!==void 0&&(v=a.identifierPrefix),a.onRecoverableError!==void 0&&(T=a.onRecoverableError)),a=ch(i,1,!1,null,null,u,!1,v,T),i[yn]=a.current,gs(i.nodeType===8?i.parentNode:i),new dh(a)},sr.findDOMNode=function(i){if(i==null)return null;if(i.nodeType===1)return i;var a=i._reactInternals;if(a===void 0)throw typeof i.render=="function"?Error(r(188)):(i=Object.keys(i).join(","),Error(r(268,i)));return i=Cb(a),i=i===null?null:i.stateNode,i},sr.flushSync=function(i){return $i(i)},sr.hydrate=function(i,a,u){if(!zc(a))throw Error(r(200));return Hc(null,i,a,!0,u)},sr.hydrateRoot=function(i,a,u){if(!fh(i))throw Error(r(405));var v=u!=null&&u.hydratedSources||null,T=!1,E="",z=Q0;if(u!=null&&(u.unstable_strictMode===!0&&(T=!0),u.identifierPrefix!==void 0&&(E=u.identifierPrefix),u.onRecoverableError!==void 0&&(z=u.onRecoverableError)),a=X0(a,null,i,1,u??null,T,!1,E,z),i[yn]=a.current,gs(i),v)for(i=0;i<v.length;i++)u=v[i],T=u._getVersion,T=T(u._source),a.mutableSourceEagerHydrationData==null?a.mutableSourceEagerHydrationData=[u,T]:a.mutableSourceEagerHydrationData.push(u,T);return new Wc(a)},sr.render=function(i,a,u){if(!zc(a))throw Error(r(200));return Hc(null,i,a,!1,u)},sr.unmountComponentAtNode=function(i){if(!zc(i))throw Error(r(40));return i._reactRootContainer?($i(function(){Hc(null,null,i,!1,function(){i._reactRootContainer=null,i[yn]=null})}),!0):!1},sr.unstable_batchedUpdates=nh,sr.unstable_renderSubtreeIntoContainer=function(i,a,u,v){if(!zc(u))throw Error(r(200));if(i==null||i._reactInternals===void 0)throw Error(r(38));return Hc(i,a,u,!1,v)},sr.version="18.3.1-next-f1338f8080-20240426",sr}var sw;function Gg(){if(sw)return gh.exports;sw=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),gh.exports=RD(),gh.exports}var lw;function AD(){if(lw)return Vc;lw=1;var e=Gg();return Vc.createRoot=e.createRoot,Vc.hydrateRoot=e.hydrateRoot,Vc}var TD=AD();const ED=$u(TD),_D=20,DD=1e6,Nn={ADD_TOAST:"ADD_TOAST",UPDATE_TOAST:"UPDATE_TOAST",DISMISS_TOAST:"DISMISS_TOAST",REMOVE_TOAST:"REMOVE_TOAST"};let vh=0;function ND(){return vh=(vh+1)%Number.MAX_VALUE,vh.toString()}const wh=new Map,cw=e=>{if(wh.has(e))return;const t=setTimeout(()=>{wh.delete(e),el({type:Nn.REMOVE_TOAST,toastId:e})},DD);wh.set(e,t)},BD=(e,t)=>{switch(t.type){case Nn.ADD_TOAST:return{...e,toasts:[t.toast,...e.toasts].slice(0,_D)};case Nn.UPDATE_TOAST:return{...e,toasts:e.toasts.map(r=>r.id===t.toast.id?{...r,...t.toast}:r)};case Nn.DISMISS_TOAST:{const{toastId:r}=t;
40return r?cw(r):e.toasts.forEach(n=>{cw(n.id)}),{...e,toasts:e.toasts.map(n=>n.id===r||r===void 0?{...n,open:!1}:n)}}case Nn.REMOVE_TOAST:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(r=>r.id!==t.toastId)}}},cu=[];let uu={toasts:[]};function el(e){uu=BD(uu,e),cu.forEach(t=>{t(uu)})}function OD({...e}){const t=ND(),r=o=>el({type:Nn.UPDATE_TOAST,toast:{...o,id:t}}),n=()=>el({type:Nn.DISMISS_TOAST,toastId:t});return el({type:Nn.ADD_TOAST,toast:{...e,id:t,open:!0,onOpenChange:o=>{o||n()}}}),{id:t,dismiss:n,update:r}}function LD(){const[e,t]=P.useState(uu);return P.useEffect(()=>(cu.push(t),()=>{const r=cu.indexOf(t);r>-1&&cu.splice(r,1)}),[e]),{...e,toast:OD,dismiss:r=>el({type:Nn.DISMISS_TOAST,toastId:r})}}function mx(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(r=mx(e[t]))&&(n&&(n+=" "),n+=r)}else for(r in e)e[r]&&(n&&(n+=" "),n+=r);return n}function gx(){for(var e,t,r=0,n="",o=arguments.length;r<o;r++)(e=arguments[r])&&(t=mx(e))&&(n&&(n+=" "),n+=t);return n}const uw=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,dw=gx,Vg=(e,t)=>r=>{var n;if((t==null?void 0:t.variants)==null)return dw(e,r==null?void 0:r.class,r==null?void 0:r.className);const{variants:o,defaultVariants:s}=t,l=Object.keys(o).map(h=>{const m=r==null?void 0:r[h],f=s==null?void 0:s[h];if(m===null)return null;const p=uw(m)||uw(f);return o[h][p]}),c=r&&Object.entries(r).reduce((h,m)=>{let[f,p]=m;return p===void 0||(h[f]=p),h},{}),d=t==null||(n=t.compoundVariants)===null||n===void 0?void 0:n.reduce((h,m)=>{let{class:f,className:p,...g}=m;return Object.entries(g).every(x=>{let[b,w]=x;return Array.isArray(w)?w.includes({...s,...c}[b]):{...s,...c}[b]===w})?[...h,f,p]:h},[]);return dw(e,l,d,r==null?void 0:r.class,r==null?void 0:r.className)};/**
41 * @license lucide-react v0.475.0 - ISC
42 *
43 * This source code is licensed under the ISC license.
44 * See the LICENSE file in the root directory of this source tree.
45 */const MD=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),yx=(...e)=>e.filter((t,r,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===r).join(" ").trim();/**
46 * @license lucide-react v0.475.0 - ISC
47 *
48 * This source code is licensed under the ISC license.
49 * See the LICENSE file in the root directory of this source tree.
50 */var PD={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
51 * @license lucide-react v0.475.0 - ISC
52 *
53 * This source code is licensed under the ISC license.
54 * See the LICENSE file in the root directory of this source tree.
55 */const jD=P.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:o="",children:s,iconNode:l,...c},d)=>P.createElement("svg",{ref:d,...PD,width:t,height:t,stroke:e,strokeWidth:n?Number(r)*24/Number(t):r,className:yx("lucide",o),...c},[...l.map(([h,m])=>P.createElement(h,m)),...Array.isArray(s)?s:[s]]));/**
56 * @license lucide-react v0.475.0 - ISC
57 *
58 * This source code is licensed under the ISC license.
59 * See the LICENSE file in the root directory of this source tree.
60 */const Xe=(e,t)=>{const r=P.forwardRef(({className:n,...o},s)=>P.createElement(jD,{ref:s,iconNode:t,className:yx(`lucide-${MD(e)}`,n),...o}));return r.displayName=`${e}`,r};/**
61 * @license lucide-react v0.475.0 - ISC
62 *
63 * This source code is licensed under the ISC license.
64 * See the LICENSE file in the root directory of this source tree.
65 */const FD=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],bx=Xe("ArrowLeft",FD);/**
66 * @license lucide-react v0.475.0 - ISC
67 *
68 * This source code is licensed under the ISC license.
69 * See the LICENSE file in the root directory of this source tree.
70 */const ID=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],vx=Xe("ArrowRight",ID);/**
71 * @license lucide-react v0.475.0 - ISC
72 *
73 * This source code is licensed under the ISC license.
74 * See the LICENSE file in the root directory of this source tree.
75 */const WD=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],zm=Xe("Calendar",WD);/**
76 * @license lucide-react v0.475.0 - ISC
77 *
78 * This source code is licensed under the ISC license.
79 * See the LICENSE file in the root directory of this source tree.
80 */const zD=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],HD=Xe("Check",zD);/**
81 * @license lucide-react v0.475.0 - ISC
82 *
83 * This source code is licensed under the ISC license.
84 * See the LICENSE file in the root directory of this source tree.
85 */const qD=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Zu=Xe("ChevronDown",qD);/**
86 * @license lucide-react v0.475.0 - ISC
87 *
88 * This source code is licensed under the ISC license.
89 * See the LICENSE file in the root directory of this source tree.
90 */const UD=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],GD=Xe("ChevronLeft",UD);/**
91 * @license lucide-react v0.475.0 - ISC
92 *
93 * This source code is licensed under the ISC license.
94 * See the LICENSE file in the root directory of this source tree.
95 */const VD=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],YD=Xe("ChevronRight",VD);/**
96 * @license lucide-react v0.475.0 - ISC
97 *
98 * This source code is licensed under the ISC license.
99 * See the LICENSE file in the root directory of this source tree.
100 */const KD=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],XD=Xe("ChevronUp",KD);/**
101 * @license lucide-react v0.475.0 - ISC
102 *
103 * This source code is licensed under the ISC license.
104 * See the LICENSE file in the root directory of this source tree.
105 */const $D=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],QD=Xe("CircleAlert",$D);/**
106 * @license lucide-react v0.475.0 - ISC
107 *
108 * This source code is licensed under the ISC license.
109 * See the LICENSE file in the root directory of this source tree.
110 */const ZD=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],fw=Xe("CircleCheck",ZD);/**
111 * @license lucide-react v0.475.0 - ISC
112 *
113 * This source code is licensed under the ISC license.
114 * See the LICENSE file in the root directory of this source tree.
115 */const JD=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Yg=Xe("ExternalLink",JD);/**
116 * @license lucide-react v0.475.0 - ISC
117 *
118 * This source code is licensed under the ISC license.
119 * See the LICENSE file in the root directory of this source tree.
120 */const e5=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],t5=Xe("EyeOff",e5);/**
121 * @license lucide-react v0.475.0 - ISC
122 *
123 * This source code is licensed under the ISC license.
124 * See the LICENSE file in the root directory of this source tree.
125 */const r5=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],n5=Xe("Eye",r5);/**
126 * @license lucide-react v0.475.0 - ISC
127 *
128 * This source code is licensed under the ISC license.
129 * See the LICENSE file in the root directory of this source tree.
130 */const i5=[["path",{d:"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z",key:"1jg4f8"}]],al=Xe("Facebook",i5);/**
131 * @license lucide-react v0.475.0 - ISC
132 *
133 * This source code is licensed under the ISC license.
134 * See the LICENSE file in the root directory of this source tree.
135 */const o5=[["path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",key:"i9b6wo"}],["line",{x1:"4",x2:"4",y1:"22",y2:"15",key:"1cm3nv"}]],a5=Xe("Flag",o5);/**
136 * @license lucide-react v0.475.0 - ISC
137 *
138 * This source code is licensed under the ISC license.
139 * See the LICENSE file in the root directory of this source tree.
140 */const s5=[["rect",{width:"20",height:"20",x:"2",y:"2",rx:"5",ry:"5",key:"2e1cvw"}],["path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z",key:"9exkf1"}],["line",{x1:"17.5",x2:"17.51",y1:"6.5",y2:"6.5",key:"r4j83e"}]],sl=Xe("Instagram",s5);/**
141 * @license lucide-react v0.475.0 - ISC
142 *
143 * This source code is licensed under the ISC license.
144 * See the LICENSE file in the root directory of this source tree.
145 */const l5=[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],c5=Xe("Layers",l5);/**
146 * @license lucide-react v0.475.0 - ISC
147 *
148 * This source code is licensed under the ISC license.
149 * See the LICENSE file in the root directory of this source tree.
150 */const u5=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],ma=Xe("LoaderCircle",u5);/**
151 * @license lucide-react v0.475.0 - ISC
152 *
153 * This source code is licensed under the ISC license.
154 * See the LICENSE file in the root directory of this source tree.
155 */const d5=[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]],f5=Xe("Menu",d5);/**
156 * @license lucide-react v0.475.0 - ISC
157 *
158 * This source code is licensed under the ISC license.
159 * See the LICENSE file in the root directory of this source tree.
160 */const h5=[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]],p5=Xe("Play",h5);/**
161 * @license lucide-react v0.475.0 - ISC
162 *
163 * This source code is licensed under the ISC license.
164 * See the LICENSE file in the root directory of this source tree.
165 */const m5=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],g5=Xe("Plus",m5);/**
166 * @license lucide-react v0.475.0 - ISC
167 *
168 * This source code is licensed under the ISC license.
169 * See the LICENSE file in the root directory of this source tree.
170 */const y5=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]],b5=Xe("Search",y5);/**
171 * @license lucide-react v0.475.0 - ISC
172 *
173 * This source code is licensed under the ISC license.
174 * See the LICENSE file in the root directory of this source tree.
175 */const v5=[["circle",{cx:"8",cy:"21",r:"1",key:"jimo8o"}
175],["circle",{cx:"19",cy:"21",r:"1",key:"13723u"}],["path",{d:"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",key:"9zh506"}]],wx=Xe("ShoppingCart",v5);/**
176 * @license lucide-react v0.475.0 - ISC
177 *
178 * This source code is licensed under the ISC license.
179 * See the LICENSE file in the root directory of this source tree.
180 */const w5=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],S5=Xe("SquarePen",w5);/**
181 * @license lucide-react v0.475.0 - ISC
182 *
183 * This source code is licensed under the ISC license.
184 * See the LICENSE file in the root directory of this source tree.
185 */const k5=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],x5=Xe("Star",k5);/**
186 * @license lucide-react v0.475.0 - ISC
187 *
188 * This source code is licensed under the ISC license.
189 * See the LICENSE file in the root directory of this source tree.
190 */const C5=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],Sx=Xe("Tag",C5);/**
191 * @license lucide-react v0.475.0 - ISC
192 *
193 * This source code is licensed under the ISC license.
194 * See the LICENSE file in the root directory of this source tree.
195 */const R5=[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]],A5=Xe("Trash2",R5);/**
196 * @license lucide-react v0.475.0 - ISC
197 *
198 * This source code is licensed under the ISC license.
199 * See the LICENSE file in the root directory of this source tree.
200 */const T5=[["path",{d:"M6 9H4.5a2.5 2.5 0 0 1 0-5H6",key:"17hqa7"}],["path",{d:"M18 9h1.5a2.5 2.5 0 0 0 0-5H18",key:"lmptdp"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22",key:"1nw9bq"}],["path",{d:"M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22",key:"1np0yb"}],["path",{d:"M18 2H6v7a6 6 0 0 0 12 0V2Z",key:"u46fv3"}]],E5=Xe("Trophy",T5);/**
201 * @license lucide-react v0.475.0 - ISC
202 *
203 * This source code is licensed under the ISC license.
204 * See the LICENSE file in the root directory of this source tree.
205 */const _5=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],kx=Xe("User",_5);/**
206 * @license lucide-react v0.475.0 - ISC
207 *
208 * This source code is licensed under the ISC license.
209 * See the LICENSE file in the root directory of this source tree.
210 */const D5=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],xx=Xe("X",D5);/**
211 * @license lucide-react v0.475.0 - ISC
212 *
213 * This source code is licensed under the ISC license.
214 * See the LICENSE file in the root directory of this source tree.
215 */const N5=[["path",{d:"M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17",key:"1q2vi4"}],["path",{d:"m10 15 5-3-5-3z",key:"1jp15x"}]],Co=Xe("Youtube",N5);/**
216 * @license lucide-react v0.475.0 - ISC
217 *
218 * This source code is licensed under the ISC license.
219 * See the LICENSE file in the root directory of this source tree.
220 */const B5=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],O5=Xe("Zap",B5),L5=(e,t)=>{const r=new Array(e.length+t.length);for(let n=0;n<e.length;n++)r[n]=e[n];for(let n=0;n<t.length;
vendor: 5,391 bytes, line 220
220n++)r[e.length+n]=t[n];return r},M5=(e,t)=>({classGroupId:e,validator:t}),Cx=(e=new Map,t=null,r)=>({nextPart:e,validators:t,classGroupId:r}),Eu="-",hw=[],P5="arbitrary..",j5=e=>{const t=I5(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:l=>{if(l.startsWith("[")&&l.endsWith("]"))return F5(l);const c=l.split(Eu),d=c[0]===""&&c.length>1?1:0;return Rx(c,d,t)},getConflictingClassGroupIds:(l,c)=>{if(c){const d=n[l],h=r[l];return d?h?L5(h,d):d:h||hw}return r[l]||hw}}},Rx=(e,t,r)=>{if(e.length-t===0)return r.classGroupId;const o=e[t],s=r.nextPart.get(o);if(s){const h=Rx(e,t+1,s);if(h)return h}const l=r.validators;if(l===null)return;const c=t===0?e.join(Eu):e.slice(t).join(Eu),d=l.length;for(let h=0;h<d;h++){const m=l[h];if(m.validator(c))return m.classGroupId}},F5=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),r=t.indexOf(":"),n=t.slice(0,r);return n?P5+n:void 0})(),I5=e=>{const{theme:t,classGroups:r}=e;return W5(r,t)},W5=(e,t)=>{const r=Cx();for(const n in e){const o=e[n];Kg(o,r,n,t)}return r},Kg=(e,t,r,n)=>{const o=e.length;for(let s=0;s<o;s++){const l=e[s];z5(l,t,r,n)}},z5=(e,t,r,n)=>{if(typeof e=="string"){H5(e,t,r);return}if(typeof e=="function"){q5(e,t,r,n);return}U5(e,t,r,n)},H5=(e,t,r)=>{const n=e===""?t:Ax(t,e);n.classGroupId=r},q5=(e,t,r,n)=>{if(G5(e)){Kg(e(n),t,r,n);return}t.validators===null&&(t.validators=[]),t.validators.push(M5(r,e))},U5=(e,t,r,n)=>{const o=Object.entries(e),s=o.length;for(let l=0;l<s;l++){const[c,d]=o[l];Kg(d,Ax(t,c),r,n)}},Ax=(e,t)=>{let r=e;const n=t.split(Eu),o=n.length;for(let s=0;s<o;s++){const l=n[s];let c=r.nextPart.get(l);c||(c=Cx(),r.nextPart.set(l,c)),r=c}return r},G5=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,V5=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=Object.create(null),n=Object.create(null);const o=(s,l)=>{r[s]=l,t++,t>e&&(t=0,n=r,r=Object.create(null))};return{get(s){let l=r[s];if(l!==void 0)return l;if((l=n[s])!==void 0)return o(s,l),l},set(s,l){s in r?r[s]=l:o(s,l)}}},Hm="!",pw=":",Y5=[],mw=(e,t,r,n,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:n,isExternal:o}),K5=e=>{const{prefix:t,experimentalParseClassName:r}=e;let n=o=>{const s=[];let l=0,c=0,d=0,h;const m=o.length;for(let b=0;b<m;b++){const w=o[b];if(l===0&&c===0){if(w===pw){s.push(o.slice(d,b)),d=b+1;continue}if(w==="/"){h=b;continue}}w==="["?l++:w==="]"?l--:w==="("?c++:w===")"&&c--}const f=s.length===0?o:o.slice(d);let p=f,g=!1;f.endsWith(Hm)?(p=f.slice(0,-1),g=!0):f.startsWith(Hm)&&(p=f.slice(1),g=!0);const x=h&&h>d?h-d:void 0;return mw(s,g,p,x)};if(t){const o=t+pw,s=n;n=l=>l.startsWith(o)?s(l.slice(o.length)):mw(Y5,!1,l,void 0,!0)}if(r){const o=n;n=s=>r({className:s,parseClassName:o})}return n},X5=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((r,n)=>{t.set(r,1e6+n)}),r=>{const n=[];let o=[];for(let s=0;s<r.length;s++){const l=r[s],c=l[0]==="[",d=t.has(l);c||d?(o.length>0&&(o.sort(),n.push(...o),o=[]),n.push(l)):o.push(l)}return o.length>0&&(o.sort(),n.push(...o)),n}},$5=e=>({cache:V5(e.cacheSize),parseClassName:K5(e),sortModifiers:X5(e),...j5(e)}),Q5=/\s+/,Z5=(e,t)=>{const{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:o,sortModifiers:s}=t,l=[],c=e.trim().split(Q5);let d="";for(let h=c.length-1;h>=0;h-=1){const m=c[h],{isExternal:f,modifiers:p,hasImportantModifier:g,baseClassName:x,maybePostfixModifierPosition:b}=r(m);if(f){d=m+(d.length>0?" "+d:d);continue}let w=!!b,y=n(w?x.substring(0,b):x);if(!y){if(!w){d=m+(d.length>0?" "+d:d);continue}if(y=n(x),!y){d=m+(d.length>0?" "+d:d);continue}w=!1}const S=p.length===0?"":p.length===1?p[0]:s(p).join(":"),C=g?S+Hm:S,k=C+y;if(l.indexOf(k)>-1)continue;l.push(k);const A=o(y,w);for(let N=0;N<A.length;++N){const D=A[N];l.push(C+D)}d=m+(d.length>0?" "+d:d)}return d},J5=(...e)=>{let t=0,r,n,o="";for(;t<e.length;)(r=e[t++])&&(n=Tx(r))&&(o&&(o+=" "),o+=n);return o},Tx=e=>{if(typeof e=="string")return e;let t,r="";for(let n=0;n<e.length;n++)e[n]&&(t=Tx(e[n]))&&(r&&(r+=" "),r+=t);return r},e4=(e,...t)=>{let r,n,o,s;const l=d=>{const h=t.reduce((m,f)=>f(m),e());return r=$5(h),n=r.cache.get,o=r.cache.set,s=c,c(d)},c=d=>{const h=n(d);if(h)return h;const m=Z5(d,r);return o(d,m),m};return s=l,(...d)=>s(J5(...d))},t4=[],Et=e=>{const t=r=>r[e]||t4;return t.isThemeGetter=!0,t},Ex=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,_x=/^\((?:(\w[\w-]*):)?(.+)\)$/i,r4=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,n4=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,i4=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,o4=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,a4=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,s4=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,si=e=>r4.test(e),qe=e=>!!e&&!Number.isNaN(Number(e)),li=e=>!!e&&Number.isInteger(Number(e)),Sh=e=>e.endsWith("%")&&qe(e.slice(0,-1)),Rn=e=>n4.test(e),Dx=()=>!0,l4=e=>i4.test(e)&&!o4.test(e),Xg=()=>!1,c4=e=>a4.test(e),u4=e=>s4.test(e),d4=e=>!Ee(e)&&!_e(e),f4=e=>Oi(e,Ox,Xg),Ee=e=>Ex.test(e),eo=e=>Oi(e,Lx,l4),gw=e=>Oi(e,w4,qe),h4=e=>Oi(e,Px,Dx),p4=e=>Oi(e,Mx,Xg),yw=e=>Oi(e,Nx,Xg),m4=e=>Oi(e,Bx,u4),Yc=e=>Oi(e,jx,c4),_e=e=>_x.test(e),Ms=e=>Oo(e,Lx),g4=e=>Oo(e,Mx),bw=e=>Oo(e,Nx),y4=e=>Oo(e,Ox),b4=e=>Oo(e,Bx),Kc=e=>Oo(e,jx,!0),v4=e=>Oo(e,Px,!0),Oi=(e,t,r)=>{const n=Ex.exec(e);
vendor: 4,189 bytes, line 220
220return n?n[1]?t(n[1]):r(n[2]):!1},Oo=(e,t,r=!1)=>{const n=_x.exec(e);return n?n[1]?t(n[1]):r:!1},Nx=e=>e==="position"||e==="percentage",Bx=e=>e==="image"||e==="url",Ox=e=>e==="length"||e==="size"||e==="bg-size",Lx=e=>e==="length",w4=e=>e==="number",Mx=e=>e==="family-name",Px=e=>e==="number"||e==="weight",jx=e=>e==="shadow",S4=()=>{const e=Et("color"),t=Et("font"),r=Et("text"),n=Et("font-weight"),o=Et("tracking"),s=Et("leading"),l=Et("breakpoint"),c=Et("container"),d=Et("spacing"),h=Et("radius"),m=Et("shadow"),f=Et("inset-shadow"),p=Et("text-shadow"),g=Et("drop-shadow"),x=Et("blur"),b=Et("perspective"),w=Et("aspect"),y=Et("ease"),S=Et("animate"),C=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],A=()=>[...k(),_e,Ee],N=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto","contain","none"],_=()=>[_e,Ee,d],F=()=>[si,"full","auto",..._()],M=()=>[li,"none","subgrid",_e,Ee],O=()=>["auto",{span:["full",li,_e,Ee]},li,_e,Ee],j=()=>[li,"auto",_e,Ee],I=()=>["auto","min","max","fr",_e,Ee],L=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],H=()=>["start","end","center","stretch","center-safe","end-safe"],G=()=>["auto",..._()],X=()=>[si,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",..._()],Q=()=>[si,"screen","full","dvw","lvw","svw","min","max","fit",..._()],K=()=>[si,"screen","full","lh","dvh","lvh","svh","min","max","fit",..._()],q=()=>[e,_e,Ee],B=()=>[...k(),bw,yw,{position:[_e,Ee]}],W=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Y=()=>["auto","cover","contain",y4,f4,{size:[_e,Ee]}],ee=()=>[Sh,Ms,eo],Z=()=>["","none","full",h,_e,Ee],U=()=>["",qe,Ms,eo],V=()=>["solid","dashed","dotted","double"],te=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ne=()=>[qe,Sh,bw,yw],ce=()=>["","none",x,_e,Ee],fe=()=>["none",qe,_e,Ee],ye=()=>["none",qe,_e,Ee],ke=()=>[qe,_e,Ee],Ae=()=>[si,"full",..._()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Rn],breakpoint:[Rn],color:[Dx],container:[Rn],"drop-shadow":[Rn],ease:["in","out","in-out"],font:[d4],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Rn],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Rn],shadow:[Rn],spacing:["px",qe],text:[Rn],"text-shadow":[Rn],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",si,Ee,_e,w]}],container:["container"],columns:[{columns:[qe,Ee,_e,c]}],"break-after":[{"break-after":C()}],"break-before":[{"break-before":C()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:A()}],overflow:[{overflow:N()}],"overflow-x":[{"overflow-x":N()}],"overflow-y":[{"overflow-y":N()}],overscroll:[{overscroll:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:F()}],"inset-x":[{"inset-x":F()}],"inset-y":[{"inset-y":F()}],start:[{"inset-s":F(),start:F()}],end:[{"inset-e":F(),end:F()}],"inset-bs":[{"inset-bs":F()}],"inset-be":[{"inset-be":F()}],top:[{top:F()}
vendor: 4,742 bytes, line 220
220],right:[{right:F()}],bottom:[{bottom:F()}],left:[{left:F()}],visibility:["visible","invisible","collapse"],z:[{z:[li,"auto",_e,Ee]}],basis:[{basis:[si,"full","auto",c,..._()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[qe,si,"auto","initial","none",Ee]}],grow:[{grow:["",qe,_e,Ee]}],shrink:[{shrink:["",qe,_e,Ee]}],order:[{order:[li,"first","last","none",_e,Ee]}],"grid-cols":[{"grid-cols":M()}],"col-start-end":[{col:O()}],"col-start":[{"col-start":j()}],"col-end":[{"col-end":j()}],"grid-rows":[{"grid-rows":M()}],"row-start-end":[{row:O()}],"row-start":[{"row-start":j()}],"row-end":[{"row-end":j()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":I()}],"auto-rows":[{"auto-rows":I()}],gap:[{gap:_()}],"gap-x":[{"gap-x":_()}],"gap-y":[{"gap-y":_()}],"justify-content":[{justify:[...L(),"normal"]}],"justify-items":[{"justify-items":[...H(),"normal"]}],"justify-self":[{"justify-self":["auto",...H()]}],"align-content":[{content:["normal",...L()]}],"align-items":[{items:[...H(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...H(),{baseline:["","last"]}]}],"place-content":[{"place-content":L()}],"place-items":[{"place-items":[...H(),"baseline"]}],"place-self":[{"place-self":["auto",...H()]}],p:[{p:_()}],px:[{px:_()}],py:[{py:_()}],ps:[{ps:_()}],pe:[{pe:_()}],pbs:[{pbs:_()}],pbe:[{pbe:_()}],pt:[{pt:_()}],pr:[{pr:_()}],pb:[{pb:_()}],pl:[{pl:_()}],m:[{m:G()}],mx:[{mx:G()}],my:[{my:G()}],ms:[{ms:G()}],me:[{me:G()}],mbs:[{mbs:G()}],mbe:[{mbe:G()}],mt:[{mt:G()}],mr:[{mr:G()}],mb:[{mb:G()}],ml:[{ml:G()}],"space-x":[{"space-x":_()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":_()}],"space-y-reverse":["space-y-reverse"],size:[{size:X()}],"inline-size":[{inline:["auto",...Q()]}],"min-inline-size":[{"min-inline":["auto",...Q()]}],"max-inline-size":[{"max-inline":["none",...Q()]}],"block-size":[{block:["auto",...K()]}],"min-block-size":[{"min-block":["auto",...K()]}],"max-block-size":[{"max-block":["none",...K()]}],w:[{w:[c,"screen",...X()]}],"min-w":[{"min-w":[c,"screen","none",...X()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[l]},...X()]}],h:[{h:["screen","lh",...X()]}],"min-h":[{"min-h":["screen","lh","none",...X()]}],"max-h":[{"max-h":["screen","lh",...X()]}],"font-size":[{text:["base",r,Ms,eo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,v4,h4]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Sh,Ee]}],"font-family":[{font:[g4,p4,t]}],"font-features":[{"font-features":[Ee]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[o,_e,Ee]}],"line-clamp":[{"line-clamp":[qe,"none",_e,gw]}],leading:[{leading:[s,..._()]}],"list-image":[{"list-image":["none",_e,Ee]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",_e,Ee]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:q()}],"text-color":[{text:q()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...V(),"wavy"]}],"text-decoration-thickness":[{decoration:[qe,"from-font","auto",_e,eo]}],"text-decoration-color":[{decoration:q()}],"underline-offset":[{"underline-offset":[qe,"auto",_e,Ee]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:_()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",_e,Ee]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",_e,Ee]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:B()}],"bg-repeat":[{bg:W()}],"bg-size":[{bg:Y()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},li,_e,Ee],radial:["",_e,Ee],conic:[li,_e,Ee]},b4,m4]}],"bg-color":[{bg:q()}],"gradient-from-pos":[{from:ee()}
vendor: 12,091 bytes, line 220
220],"gradient-via-pos":[{via:ee()}],"gradient-to-pos":[{to:ee()}],"gradient-from":[{from:q()}],"gradient-via":[{via:q()}],"gradient-to":[{to:q()}],rounded:[{rounded:Z()}],"rounded-s":[{"rounded-s":Z()}],"rounded-e":[{"rounded-e":Z()}],"rounded-t":[{"rounded-t":Z()}],"rounded-r":[{"rounded-r":Z()}],"rounded-b":[{"rounded-b":Z()}],"rounded-l":[{"rounded-l":Z()}],"rounded-ss":[{"rounded-ss":Z()}],"rounded-se":[{"rounded-se":Z()}],"rounded-ee":[{"rounded-ee":Z()}],"rounded-es":[{"rounded-es":Z()}],"rounded-tl":[{"rounded-tl":Z()}],"rounded-tr":[{"rounded-tr":Z()}],"rounded-br":[{"rounded-br":Z()}],"rounded-bl":[{"rounded-bl":Z()}],"border-w":[{border:U()}],"border-w-x":[{"border-x":U()}],"border-w-y":[{"border-y":U()}],"border-w-s":[{"border-s":U()}],"border-w-e":[{"border-e":U()}],"border-w-bs":[{"border-bs":U()}],"border-w-be":[{"border-be":U()}],"border-w-t":[{"border-t":U()}],"border-w-r":[{"border-r":U()}],"border-w-b":[{"border-b":U()}],"border-w-l":[{"border-l":U()}],"divide-x":[{"divide-x":U()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":U()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...V(),"hidden","none"]}],"divide-style":[{divide:[...V(),"hidden","none"]}],"border-color":[{border:q()}],"border-color-x":[{"border-x":q()}],"border-color-y":[{"border-y":q()}],"border-color-s":[{"border-s":q()}],"border-color-e":[{"border-e":q()}],"border-color-bs":[{"border-bs":q()}],"border-color-be":[{"border-be":q()}],"border-color-t":[{"border-t":q()}],"border-color-r":[{"border-r":q()}],"border-color-b":[{"border-b":q()}],"border-color-l":[{"border-l":q()}],"divide-color":[{divide:q()}],"outline-style":[{outline:[...V(),"none","hidden"]}],"outline-offset":[{"outline-offset":[qe,_e,Ee]}],"outline-w":[{outline:["",qe,Ms,eo]}],"outline-color":[{outline:q()}],shadow:[{shadow:["","none",m,Kc,Yc]}],"shadow-color":[{shadow:q()}],"inset-shadow":[{"inset-shadow":["none",f,Kc,Yc]}],"inset-shadow-color":[{"inset-shadow":q()}],"ring-w":[{ring:U()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:q()}],"ring-offset-w":[{"ring-offset":[qe,eo]}],"ring-offset-color":[{"ring-offset":q()}],"inset-ring-w":[{"inset-ring":U()}],"inset-ring-color":[{"inset-ring":q()}],"text-shadow":[{"text-shadow":["none",p,Kc,Yc]}],"text-shadow-color":[{"text-shadow":q()}],opacity:[{opacity:[qe,_e,Ee]}],"mix-blend":[{"mix-blend":[...te(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":te()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[qe]}],"mask-image-linear-from-pos":[{"mask-linear-from":ne()}],"mask-image-linear-to-pos":[{"mask-linear-to":ne()}],"mask-image-linear-from-color":[{"mask-linear-from":q()}],"mask-image-linear-to-color":[{"mask-linear-to":q()}],"mask-image-t-from-pos":[{"mask-t-from":ne()}],"mask-image-t-to-pos":[{"mask-t-to":ne()}],"mask-image-t-from-color":[{"mask-t-from":q()}],"mask-image-t-to-color":[{"mask-t-to":q()}],"mask-image-r-from-pos":[{"mask-r-from":ne()}],"mask-image-r-to-pos":[{"mask-r-to":ne()}],"mask-image-r-from-color":[{"mask-r-from":q()}],"mask-image-r-to-color":[{"mask-r-to":q()}],"mask-image-b-from-pos":[{"mask-b-from":ne()}],"mask-image-b-to-pos":[{"mask-b-to":ne()}],"mask-image-b-from-color":[{"mask-b-from":q()}],"mask-image-b-to-color":[{"mask-b-to":q()}],"mask-image-l-from-pos":[{"mask-l-from":ne()}],"mask-image-l-to-pos":[{"mask-l-to":ne()}],"mask-image-l-from-color":[{"mask-l-from":q()}],"mask-image-l-to-color":[{"mask-l-to":q()}],"mask-image-x-from-pos":[{"mask-x-from":ne()}],"mask-image-x-to-pos":[{"mask-x-to":ne()}],"mask-image-x-from-color":[{"mask-x-from":q()}],"mask-image-x-to-color":[{"mask-x-to":q()}],"mask-image-y-from-pos":[{"mask-y-from":ne()}],"mask-image-y-to-pos":[{"mask-y-to":ne()}],"mask-image-y-from-color":[{"mask-y-from":q()}],"mask-image-y-to-color":[{"mask-y-to":q()}],"mask-image-radial":[{"mask-radial":[_e,Ee]}],"mask-image-radial-from-pos":[{"mask-radial-from":ne()}],"mask-image-radial-to-pos":[{"mask-radial-to":ne()}],"mask-image-radial-from-color":[{"mask-radial-from":q()}],"mask-image-radial-to-color":[{"mask-radial-to":q()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":k()}],"mask-image-conic-pos":[{"mask-conic":[qe]}],"mask-image-conic-from-pos":[{"mask-conic-from":ne()}],"mask-image-conic-to-pos":[{"mask-conic-to":ne()}],"mask-image-conic-from-color":[{"mask-conic-from":q()}],"mask-image-conic-to-color":[{"mask-conic-to":q()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:B()}],"mask-repeat":[{mask:W()}],"mask-size":[{mask:Y()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",_e,Ee]}],filter:[{filter:["","none",_e,Ee]}],blur:[{blur:ce()}],brightness:[{brightness:[qe,_e,Ee]}],contrast:[{contrast:[qe,_e,Ee]}],"drop-shadow":[{"drop-shadow":["","none",g,Kc,Yc]}],"drop-shadow-color":[{"drop-shadow":q()}],grayscale:[{grayscale:["",qe,_e,Ee]}],"hue-rotate":[{"hue-rotate":[qe,_e,Ee]}],invert:[{invert:["",qe,_e,Ee]}],saturate:[{saturate:[qe,_e,Ee]}],sepia:[{sepia:["",qe,_e,Ee]}],"backdrop-filter":[{"backdrop-filter":["","none",_e,Ee]}],"backdrop-blur":[{"backdrop-blur":ce()}],"backdrop-brightness":[{"backdrop-brightness":[qe,_e,Ee]}],"backdrop-contrast":[{"backdrop-contrast":[qe,_e,Ee]}],"backdrop-grayscale":[{"backdrop-grayscale":["",qe,_e,Ee]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[qe,_e,Ee]}],"backdrop-invert":[{"backdrop-invert":["",qe,_e,Ee]}],"backdrop-opacity":[{"backdrop-opacity":[qe,_e,Ee]}],"backdrop-saturate":[{"backdrop-saturate":[qe,_e,Ee]}],"backdrop-sepia":[{"backdrop-sepia":["",qe,_e,Ee]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":_()}],"border-spacing-x":[{"border-spacing-x":_()}],"border-spacing-y":[{"border-spacing-y":_()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",_e,Ee]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[qe,"initial",_e,Ee]}],ease:[{ease:["linear","initial",y,_e,Ee]}],delay:[{delay:[qe,_e,Ee]}],animate:[{animate:["none",S,_e,Ee]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[b,_e,Ee]}],"perspective-origin":[{"perspective-origin":A()}],rotate:[{rotate:fe()}],"rotate-x":[{"rotate-x":fe()}],"rotate-y":[{"rotate-y":fe()}],"rotate-z":[{"rotate-z":fe()}],scale:[{scale:ye()}],"scale-x":[{"scale-x":ye()}],"scale-y":[{"scale-y":ye()}],"scale-z":[{"scale-z":ye()}],"scale-3d":["scale-3d"],skew:[{skew:ke()}],"skew-x":[{"skew-x":ke()}],"skew-y":[{"skew-y":ke()}],transform:[{transform:[_e,Ee,"","none","gpu","cpu"]}],"transform-origin":[{origin:A()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ae()}],"translate-x":[{"translate-x":Ae()}],"translate-y":[{"translate-y":Ae()}],"translate-z":[{"translate-z":Ae()}],"translate-none":["translate-none"],accent:[{accent:q()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:q()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",_e,Ee]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":_()}],"scroll-mx":[{"scroll-mx":_()}],"scroll-my":[{"scroll-my":_()}],"scroll-ms":[{"scroll-ms":_()}],"scroll-me":[{"scroll-me":_()}],"scroll-mbs":[{"scroll-mbs":_()}],"scroll-mbe":[{"scroll-mbe":_()}],"scroll-mt":[{"scroll-mt":_()}],"scroll-mr":[{"scroll-mr":_()}],"scroll-mb":[{"scroll-mb":_()}],"scroll-ml":[{"scroll-ml":_()}],"scroll-p":[{"scroll-p":_()}],"scroll-px":[{"scroll-px":_()}],"scroll-py":[{"scroll-py":_()}],"scroll-ps":[{"scroll-ps":_()}],"scroll-pe":[{"scroll-pe":_()}],"scroll-pbs":[{"scroll-pbs":_()}],"scroll-pbe":[{"scroll-pbe":_()}],"scroll-pt":[{"scroll-pt":_()}],"scroll-pr":[{"scroll-pr":_()}],"scroll-pb":[{"scroll-pb":_()}],"scroll-pl":[{"scroll-pl":_()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",_e,Ee]}],fill:[{fill:["none",...q()]}],"stroke-w":[{stroke:[qe,Ms,eo,gw]}],stroke:[{stroke:["none",...q()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}}
220,k4=e4(S4);function ft(...e){return k4(gx(e))}const Fx=P.forwardRef(({...e},t)=>R.jsx("div",{ref:t,className:"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",...e}));Fx.displayName="ToastProvider";const Ix=P.forwardRef(({...e},t)=>R.jsx("div",{ref:t,className:"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",...e}));Ix.displayName="ToastViewport";const x4=Vg("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),Wx=P.forwardRef(({className:e,variant:t,...r},n)=>R.jsx("div",{ref:n,className:ft(x4({variant:t}),e),...r}));Wx.displayName="Toast";const C4=P.forwardRef(({className:e,...t},r)=>R.jsx("div",{ref:r,className:ft("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));C4.displayName="ToastAction";const zx=P.forwardRef(({className:e,...t},r)=>R.jsx("button",{ref:r,className:ft("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:R.jsx(xx,{className:"h-4 w-4"})}));zx.displayName="ToastClose";const Hx=P.forwardRef(({className:e,...t},r)=>R.jsx("div",{ref:r,className:ft("text-sm font-semibold",e),...t}));Hx.displayName="ToastTitle";const qx=P.forwardRef(({className:e,...t},r)=>R.jsx("div",{ref:r,className:ft("text-sm opacity-90",e),...t}));qx.displayName="ToastDescription";function R4(){const{toasts:e}=LD();return R.jsxs(Fx,{children:[e.map(function({id:t,title:r,description:n,action:o,...s}){return R.jsxs(Wx,{...s,children:[R.jsxs("div",{className:"grid gap-1",children:[r&&R.jsx(Hx,{children:r}),n&&R.jsx(qx,{children:n})]}),o,R.jsx(zx,{})]},t)}),R.jsx(Ix,{})]})}var Wa=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},A4={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},pi,qg,nx,T4=(nx=class{constructor(){Be(this,pi,A4);Be(this,qg,!1)}setTimeoutProvider(e){xe(this,pi,e)}setTimeout(e,t){return J(this,pi).setTimeout(e,t)}clearTimeout(e){J(this,pi).clearTimeout(e)}setInterval(e,t){return J(this,pi).setInterval(e,t)}clearInterval(e){J(this,pi).clearInterval(e)}},pi=new WeakMap,qg=new WeakMap,nx),lo=new T4;function E4(e){setTimeout(e,0)}var Ro=typeof window>"u"||"Deno"in globalThis;function er(){}function _4(e,t){return typeof e=="function"?e(t):e}function qm(e){return typeof e=="number"&&e>=0&&e!==1/0}function Ux(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Ri(e,t){return typeof e=="function"?e(t):e}function Mr(e,t){return typeof e=="function"?e(t):e}function vw(e,t){const{type:r="all",exact:n,fetchStatus:o,predicate:s,queryKey:l,stale:c}=e;if(l){if(n){if(t.queryHash!==$g(l,t.options))return!1}else if(!ll(t.queryKey,l))return!1}if(r!=="all"){const d=t.isActive();if(r==="active"&&!d||r==="inactive"&&d)return!1}return!(typeof c=="boolean"&&t.isStale()!==c||o&&o!==t.state.fetchStatus||s&&!s(t))}function ww(e,t){const{exact:r,status:n,predicate:o,mutationKey:s}=e;if(s){if(!t.options.mutationKey)return!1;if(r){if(Ao(t.options.mutationKey)!==Ao(s))return!1}else if(!ll(t.options.mutationKey,s))return!1}return!(n&&t.state.status!==n||o&&!o(t))}function $g(e,t){return((t==null?void 0:t.queryKeyHashFn)||Ao)(e)}function Ao(e){return JSON.stringify(e,(t,r)=>Um(r)?Object.keys(r).sort().reduce((n,o)=>(n[o]=r[o],n),{}):r)}function ll(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(r=>ll(e[r],t[r])):!1}var D4=Object.prototype.hasOwnProperty;function Gx(e,t,r=0){if(e===t)return e;if(r>500)return t;const n=Sw(e)&&Sw(t);if(!n&&!(Um(e)&&Um(t)))return t;const s=(n?e:Object.keys(e)).length,l=n?t:Object.keys(t),c=l.length,d=n?new Array(c):{};let h=0;for(let m=0;m<c;m++){const f=n?m:l[m],p=e[f],g=t[f];if(p===g){d[f]=p,(n?m<s:D4.call(e,f))&&h++;continue}if(p===null||g===null||typeof p!="object"||typeof g!="object"){d[f]=g;continue}const x=Gx(p,g,r+1);d[f]=x,x===p&&h++}return s===c&&h===s?e:d}function _u(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(e[r]!==t[r])return!1;return!0}function Sw(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Um(e){if(!kw(e))return!1;const t=e.constructor;if(t===void 0)return!0;const r=t.prototype;return!(!kw(r)||!r.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function kw(e){return Object.prototype.toString.call(e)==="[object Object]"}function N4(e){return new Promise(t=>{lo.setTimeout(t,e)})}function Gm(e,t,r){return typeof r.structuralSharing=="function"?r.structuralSharing(e,t):r.structuralSharing!==!1?Gx(e,t):t}function B4(e,t,r=0){const n=[...e,t];return r&&n.length>r?n.slice(1):n}function O4(e,t,r=0){const n=[t,...e];return r&&n.length>r?n.slice(0,-1):n}var Qg=Symbol();function Vx(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===Qg?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Zg(e,t){return typeof e=="function"?e(...t):!!e}function L4(e,t,r){let n=!1,o;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(o??(o=t()),n||(n=!0,o.aborted?r():o.addEventListener("abort",r,{once:!0})),o)}),e}var fo,mi,Ca,ix,M4=(ix=class extends Wa{constructor(){super();Be(this,fo);Be(this,mi);Be(this,Ca);xe(this,Ca,t=>{if(!Ro&&window.addEventListener){const r=()=>t();return window.addEventListener("visibilitychange",r,!1),()=>{window.removeEventListener("visibilitychange",r)}}})}onSubscribe(){J(this,mi)||this.setEventListener(J(this,Ca))}onUnsubscribe(){var t;this.hasListeners()||((t=J(this,mi))==null||t.call(this),xe(this,mi,void 0))}setEventListener(t){var r;xe(this,Ca,t),(r=J(this,mi))==null||r.call(this),xe(this,mi,t(n=>{typeof n=="boolean"?this.setFocused(n):this.onFocus()}))}setFocused(t){J(this,fo)!==t&&(xe(this,fo,t),this.onFocus())}onFocus(){const t=this.isFocused();
vendor: 5,005 bytes, line 220
220this.listeners.forEach(r=>{r(t)})}isFocused(){var t;return typeof J(this,fo)=="boolean"?J(this,fo):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},fo=new WeakMap,mi=new WeakMap,Ca=new WeakMap,ix),Jg=new M4;function Vm(){let e,t;const r=new Promise((o,s)=>{e=o,t=s});r.status="pending",r.catch(()=>{});function n(o){Object.assign(r,o),delete r.resolve,delete r.reject}return r.resolve=o=>{n({status:"fulfilled",value:o}),e(o)},r.reject=o=>{n({status:"rejected",reason:o}),t(o)},r}var P4=E4;function j4(){let e=[],t=0,r=c=>{c()},n=c=>{c()},o=P4;const s=c=>{t?e.push(c):o(()=>{r(c)})},l=()=>{const c=e;e=[],c.length&&o(()=>{n(()=>{c.forEach(d=>{r(d)})})})};return{batch:c=>{let d;t++;try{d=c()}finally{t--,t||l()}return d},batchCalls:c=>(...d)=>{s(()=>{c(...d)})},schedule:s,setNotifyFunction:c=>{r=c},setBatchNotifyFunction:c=>{n=c},setScheduler:c=>{o=c}}}var _t=j4(),Ra,gi,Aa,ox,F4=(ox=class extends Wa{constructor(){super();Be(this,Ra,!0);Be(this,gi);Be(this,Aa);xe(this,Aa,t=>{if(!Ro&&window.addEventListener){const r=()=>t(!0),n=()=>t(!1);return window.addEventListener("online",r,!1),window.addEventListener("offline",n,!1),()=>{window.removeEventListener("online",r),window.removeEventListener("offline",n)}}})}onSubscribe(){J(this,gi)||this.setEventListener(J(this,Aa))}onUnsubscribe(){var t;this.hasListeners()||((t=J(this,gi))==null||t.call(this),xe(this,gi,void 0))}setEventListener(t){var r;xe(this,Aa,t),(r=J(this,gi))==null||r.call(this),xe(this,gi,t(this.setOnline.bind(this)))}setOnline(t){J(this,Ra)!==t&&(xe(this,Ra,t),this.listeners.forEach(n=>{n(t)}))}isOnline(){return J(this,Ra)}},Ra=new WeakMap,gi=new WeakMap,Aa=new WeakMap,ox),Du=new F4;function I4(e){return Math.min(1e3*2**e,3e4)}function Yx(e){return(e??"online")==="online"?Du.isOnline():!0}var Ym=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function Kx(e){let t=!1,r=0,n;const o=Vm(),s=()=>o.status!=="pending",l=b=>{var w;if(!s()){const y=new Ym(b);p(y),(w=e.onCancel)==null||w.call(e,y)}},c=()=>{t=!0},d=()=>{t=!1},h=()=>Jg.isFocused()&&(e.networkMode==="always"||Du.isOnline())&&e.canRun(),m=()=>Yx(e.networkMode)&&e.canRun(),f=b=>{s()||(n==null||n(),o.resolve(b))},p=b=>{s()||(n==null||n(),o.reject(b))},g=()=>new Promise(b=>{var w;n=y=>{(s()||h())&&b(y)},(w=e.onPause)==null||w.call(e)}).then(()=>{var b;n=void 0,s()||(b=e.onContinue)==null||b.call(e)}),x=()=>{if(s())return;let b;const w=r===0?e.initialPromise:void 0;try{b=w??e.fn()}catch(y){b=Promise.reject(y)}Promise.resolve(b).then(f).catch(y=>{var N;if(s())return;const S=e.retry??(Ro?0:3),C=e.retryDelay??I4,k=typeof C=="function"?C(r,y):C,A=S===!0||typeof S=="number"&&r<S||typeof S=="function"&&S(r,y);if(t||!A){p(y);return}r++,(N=e.onFail)==null||N.call(e,r,y),N4(k).then(()=>h()?void 0:g()).then(()=>{t?p(y):x()})})};return{promise:o,status:()=>o.status,cancel:l,continue:()=>(n==null||n(),o),cancelRetry:c,continueRetry:d,canStart:m,start:()=>(m()?x():g().then(x),o)}}var ho,ax,Xx=(ax=class{constructor(){Be(this,ho)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),qm(this.gcTime)&&xe(this,ho,lo.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Ro?1/0:300*1e3))}clearGcTimeout(){J(this,ho)&&(lo.clearTimeout(J(this,ho)),xe(this,ho,void 0))}},ho=new WeakMap,ax),po,Ta,Lr,mo,Ot,vl,go,Kr,An,sx,W4=(sx=class extends Xx{constructor(t){super();Be(this,Kr);Be(this,po);Be(this,Ta);Be(this,Lr);Be(this,mo);Be(this,Ot);Be(this,vl);Be(this,go);xe(this,go,!1),xe(this,vl,t.defaultOptions),this.setOptions(t.options),this.observers=[],xe(this,mo,t.client),xe(this,Lr,J(this,mo).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,xe(this,po,Cw(this.options)),this.state=t.state??J(this,po),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var t;return(t=J(this,Ot))==null?void 0:t.promise}setOptions(t){if(this.options={...J(this,vl),...t},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const r=Cw(this.options);r.data!==void 0&&(this.setState(xw(r.data,r.dataUpdatedAt)),xe(this,po,r))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&J(this,Lr).remove(this)}setData(t,r){const n=Gm(this.state.data,t,this.options);return ze(this,Kr,An).call(this,{data:n,type:"success",dataUpdatedAt:r==null?void 0:r.updatedAt,manual:r==null?void 0:r.manual}),n}setState(t,r){ze(this,Kr,An).call(this,{type:"setState",state:t,setStateOptions:r})}cancel(t){var n,o;const r=(n=J(this,Ot))==null?void 0:n.promise;return(o=J(this,Ot))==null||o.cancel(t),r?r.then(er).catch(er):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(J(this,po))}isActive(){return this.observers.some(t=>Mr(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Qg||this.state.dataUpdateCount+this.state.errorUpdate
220Count===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>Ri(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!Ux(this.state.dataUpdatedAt,t)}onFocus(){var r;const t=this.observers.find(n=>n.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(r=J(this,Ot))==null||r.continue()}onOnline(){var r;const t=this.observers.find(n=>n.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(r=J(this,Ot))==null||r.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),J(this,Lr).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(r=>r!==t),this.observers.length||(J(this,Ot)&&(J(this,go)?J(this,Ot).cancel({revert:!0}):J(this,Ot).cancelRetry()),this.scheduleGc()),J(this,Lr).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||ze(this,Kr,An).call(this,{type:"invalidate"})}async fetch(t,r){var d,h,m,f,p,g,x,b,w,y,S,C;if(this.state.fetchStatus!=="idle"&&((d=J(this,Ot))==null?void 0:d.status())!=="rejected"){if(this.state.data!==void 0&&(r!=null&&r.cancelRefetch))this.cancel({silent:!0});else if(J(this,Ot))return J(this,Ot).continueRetry(),J(this,Ot).promise}if(t&&this.setOptions(t),!this.options.queryFn){const k=this.observers.find(A=>A.options.queryFn);k&&this.setOptions(k.options)}const n=new AbortController,o=k=>{Object.defineProperty(k,"signal",{enumerable:!0,get:()=>(xe(this,go,!0),n.signal)})},s=()=>{const k=Vx(this.options,r),N=(()=>{const D={client:J(this,mo),queryKey:this.queryKey,meta:this.meta};return o(D),D})();return xe(this,go,!1),this.options.persister?this.options.persister(k,N,this):k(N)},c=(()=>{const k={fetchOptions:r,options:this.options,queryKey:this.queryKey,client:J(this,mo),state:this.state,fetchFn:s};return o(k),k})();(h=this.options.behavior)==null||h.onFetch(c,this),xe(this,Ta,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((m=c.fetchOptions)==null?void 0:m.meta))&&ze(this,Kr,An).call(this,{type:"fetch",meta:(f=c.fetchOptions)==null?void 0:f.meta}),xe(this,Ot,Kx({initialPromise:r==null?void 0:r.initialPromise,fn:c.fetchFn,onCancel:k=>{k instanceof Ym&&k.revert&&this.setState({...J(this,Ta),fetchStatus:"idle"}),n.abort()},onFail:(k,A)=>{ze(this,Kr,An).call(this,{type:"failed",failureCount:k,error:A})},onPause:()=>{ze(this,Kr,An).call(this,{type:"pause"})},onContinue:()=>{ze(this,Kr,An).call(this,{type:"continue"})},retry:c.options.retry,retryDelay:c.options.retryDelay,networkMode:c.options.networkMode,canRun:()=>!0}));try{const k=await J(this,Ot).start();if(k===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(k),(g=(p=J(this,Lr).config).onSuccess)==null||g.call(p,k,this),(b=(x=J(this,Lr).config).onSettled)==null||b.call(x,k,this.state.error,this),k}catch(k){if(k instanceof Ym){if(k.silent)return J(this,Ot).promise;if(k.revert){if(this.state.data===void 0)throw k;return this.state.data}}throw ze(this,Kr,An).call(this,{type:"error",error:k}),(y=(w=J(this,Lr).config).onError)==null||y.call(w,k,this),(C=(S=J(this,Lr).config).onSettled)==null||C.call(S,this.state.data,k,this),k}finally{this.scheduleGc()}}},po=new WeakMap,Ta=new WeakMap,Lr=new WeakMap,mo=new WeakMap,Ot=new WeakMap,vl=new WeakMap,go=new WeakMap,Kr=new WeakSet,An=function(t){const r=n=>{switch(t.type){case"failed":return{...n,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...n,fetchStatus:"paused"};case"continue":return{...n,fetchStatus:"fetching"};case"fetch":return{...n,...$x(n.data,this.options),fetchMeta:t.meta??null};case"success":const o={...n,...xw(t.data,t.dataUpdatedAt),dataUpdateCount:n.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return xe(this,Ta,t.manual?o:void 0),o;case"error":const s=t.error;
vendor: 4,313 bytes, line 220
220return{...n,error:s,errorUpdateCount:n.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:n.fetchFailureCount+1,fetchFailureReason:s,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...n,isInvalidated:!0};case"setState":return{...n,...t.state}}};this.state=r(this.state),_t.batch(()=>{this.observers.forEach(n=>{n.onQueryUpdate()}),J(this,Lr).notify({query:this,type:"updated",action:t})})},sx);function $x(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Yx(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function xw(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function Cw(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,r=t!==void 0,n=r?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var cr,Ge,wl,Jt,yo,Ea,Tn,yi,Sl,_a,Da,bo,vo,bi,Na,Qe,Us,Km,Xm,$m,Qm,Zm,Jm,eg,Qx,lx,z4=(lx=class extends Wa{constructor(t,r){super();Be(this,Qe);Be(this,cr);Be(this,Ge);Be(this,wl);Be(this,Jt);Be(this,yo);Be(this,Ea);Be(this,Tn);Be(this,yi);Be(this,Sl);Be(this,_a);Be(this,Da);Be(this,bo);Be(this,vo);Be(this,bi);Be(this,Na,new Set);this.options=r,xe(this,cr,t),xe(this,yi,null),xe(this,Tn,Vm()),this.bindMethods(),this.setOptions(r)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(J(this,Ge).addObserver(this),Rw(J(this,Ge),this.options)?ze(this,Qe,Us).call(this):this.updateResult(),ze(this,Qe,Qm).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return tg(J(this,Ge),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return tg(J(this,Ge),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,ze(this,Qe,Zm).call(this),ze(this,Qe,Jm).call(this),J(this,Ge).removeObserver(this)}setOptions(t){const r=this.options,n=J(this,Ge);if(this.options=J(this,cr).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Mr(this.options.enabled,J(this,Ge))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");ze(this,Qe,eg).call(this),J(this,Ge).setOptions(this.options),r._defaulted&&!_u(this.options,r)&&J(this,cr).getQueryCache().notify({type:"observerOptionsUpdated",query:J(this,Ge),observer:this});const o=this.hasListeners();o&&Aw(J(this,Ge),n,this.options,r)&&ze(this,Qe,Us).call(this),this.updateResult(),o&&(J(this,Ge)!==n||Mr(this.options.enabled,J(this,Ge))!==Mr(r.enabled,J(this,Ge))||Ri(this.options.staleTime,J(this,Ge))!==Ri(r.staleTime,J(this,Ge)))&&ze(this,Qe,Km).call(this);const s=ze(this,Qe,Xm).call(this);o&&(J(this,Ge)!==n||Mr(this.options.enabled,J(this,Ge))!==Mr(r.enabled,J(this,Ge))||s!==J(this,bi))&&ze(this,Qe,$m).call(this,s)}getOptimisticResult(t){const r=J(this,cr).getQueryCache().build(J(this,cr),t),n=this.createResult(r,t);return q4(this,n)&&(xe(this,Jt,n),xe(this,Ea,this.options),xe(this,yo,J(this,Ge).state)),n}getCurrentResult(){return J(this,Jt)}trackResult(t,r){return new Proxy(t,{get:(n,o)=>(this.trackProp(o),r==null||r(o),o==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&J(this,Tn).status==="pending"&&J(this,Tn).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(n,o))})}trackProp(t){J(this,Na).add(t)}getCurrentQuery(){return J(this,Ge)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const r=J(this,cr).defaultQueryOptions(t),n=J(this,cr).getQueryCache().build(J(this,cr),r);return n.fetch().then(()=>this.createResult(n,r))}fetch(t){return ze(this,Qe,Us).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),J(this,Jt)))}createResult(t,r){var F;const n=J(this,Ge),o=this.options,s=J(this,Jt),l=J(this,yo),c=J(this,Ea),h=t!==n?t.state:J(this,wl),{state:m}=t;let f={...m},p=!1,g;if(r._optimisticResults){const M=this.hasListeners(),O=!M&&Rw(t,r),j=M&&Aw(t,
vendor: 2,155 bytes, line 220
220n,r,o);(O||j)&&(f={...f,...$x(m.data,t.options)}),r._optimisticResults==="isRestoring"&&(f.fetchStatus="idle")}let{error:x,errorUpdatedAt:b,status:w}=f;g=f.data;let y=!1;if(r.placeholderData!==void 0&&g===void 0&&w==="pending"){let M;s!=null&&s.isPlaceholderData&&r.placeholderData===(c==null?void 0:c.placeholderData)?(M=s.data,y=!0):M=typeof r.placeholderData=="function"?r.placeholderData((F=J(this,Da))==null?void 0:F.state.data,J(this,Da)):r.placeholderData,M!==void 0&&(w="success",g=Gm(s==null?void 0:s.data,M,r),p=!0)}if(r.select&&g!==void 0&&!y)if(s&&g===(l==null?void 0:l.data)&&r.select===J(this,Sl))g=J(this,_a);else try{xe(this,Sl,r.select),g=r.select(g),g=Gm(s==null?void 0:s.data,g,r),xe(this,_a,g),xe(this,yi,null)}catch(M){xe(this,yi,M)}J(this,yi)&&(x=J(this,yi),g=J(this,_a),b=Date.now(),w="error");const S=f.fetchStatus==="fetching",C=w==="pending",k=w==="error",A=C&&S,N=g!==void 0,_={status:w,fetchStatus:f.fetchStatus,isPending:C,isSuccess:w==="success",isError:k,isInitialLoading:A,isLoading:A,data:g,dataUpdatedAt:f.dataUpdatedAt,error:x,errorUpdatedAt:b,failureCount:f.fetchFailureCount,failureReason:f.fetchFailureReason,errorUpdateCount:f.errorUpdateCount,isFetched:f.dataUpdateCount>0||f.errorUpdateCount>0,isFetchedAfterMount:f.dataUpdateCount>h.dataUpdateCount||f.errorUpdateCount>h.errorUpdateCount,isFetching:S,isRefetching:S&&!C,isLoadingError:k&&!N,isPaused:f.fetchStatus==="paused",isPlaceholderData:p,isRefetchError:k&&N,isStale:ey(t,r),refetch:this.refetch,promise:J(this,Tn),isEnabled:Mr(r.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const M=_.data!==void 0,O=_.status==="error"&&!M,j=H=>{O?H.reject(_.error):M&&H.resolve(_.data)},I=()=>{const H=xe(this,Tn,_.promise=Vm());j(H)},L=J(this,Tn);switch(L.status){case"pending":t.queryHash===n.queryHash&&j(L);break;case"fulfilled":(O||_.data!==L.value)&&I();break;case"rejected":(!O||_.error!==L.reason)&&I();break}}return _}updateResult(){const t=J(this,Jt),r=this.createResult(J(this,Ge),this.options);if(xe(this,yo,J(this,Ge).state),xe(this,Ea,this.options),J(this,yo).data!==void 0&&xe(this,Da,J(this,Ge)),_u(r,t))return;xe(this,Jt,r);const n=()=>
vendor: 7,406 bytes, line 220
220{if(!t)return!0;const{notifyOnChangeProps:o}=this.options,s=typeof o=="function"?o():o;if(s==="all"||!s&&!J(this,Na).size)return!0;const l=new Set(s??J(this,Na));return this.options.throwOnError&&l.add("error"),Object.keys(J(this,Jt)).some(c=>{const d=c;return J(this,Jt)[d]!==t[d]&&l.has(d)})};ze(this,Qe,Qx).call(this,{listeners:n()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&ze(this,Qe,Qm).call(this)}},cr=new WeakMap,Ge=new WeakMap,wl=new WeakMap,Jt=new WeakMap,yo=new WeakMap,Ea=new WeakMap,Tn=new WeakMap,yi=new WeakMap,Sl=new WeakMap,_a=new WeakMap,Da=new WeakMap,bo=new WeakMap,vo=new WeakMap,bi=new WeakMap,Na=new WeakMap,Qe=new WeakSet,Us=function(t){ze(this,Qe,eg).call(this);let r=J(this,Ge).fetch(this.options,t);return t!=null&&t.throwOnError||(r=r.catch(er)),r},Km=function(){ze(this,Qe,Zm).call(this);const t=Ri(this.options.staleTime,J(this,Ge));if(Ro||J(this,Jt).isStale||!qm(t))return;const n=Ux(J(this,Jt).dataUpdatedAt,t)+1;xe(this,bo,lo.setTimeout(()=>{J(this,Jt).isStale||this.updateResult()},n))},Xm=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(J(this,Ge)):this.options.refetchInterval)??!1},$m=function(t){ze(this,Qe,Jm).call(this),xe(this,bi,t),!(Ro||Mr(this.options.enabled,J(this,Ge))===!1||!qm(J(this,bi))||J(this,bi)===0)&&xe(this,vo,lo.setInterval(()=>{(this.options.refetchIntervalInBackground||Jg.isFocused())&&ze(this,Qe,Us).call(this)},J(this,bi)))},Qm=function(){ze(this,Qe,Km).call(this),ze(this,Qe,$m).call(this,ze(this,Qe,Xm).call(this))},Zm=function(){J(this,bo)&&(lo.clearTimeout(J(this,bo)),xe(this,bo,void 0))},Jm=function(){J(this,vo)&&(lo.clearInterval(J(this,vo)),xe(this,vo,void 0))},eg=function(){const t=J(this,cr).getQueryCache().build(J(this,cr),this.options);if(t===J(this,Ge))return;const r=J(this,Ge);xe(this,Ge,t),xe(this,wl,t.state),this.hasListeners()&&(r==null||r.removeObserver(this),t.addObserver(this))},Qx=function(t){_t.batch(()=>{t.listeners&&this.listeners.forEach(r=>{r(J(this,Jt))}),J(this,cr).getQueryCache().notify({query:J(this,Ge),type:"observerResultsUpdated"})})},lx);function H4(e,t){return Mr(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&t.retryOnMount===!1)}function Rw(e,t){return H4(e,t)||e.state.data!==void 0&&tg(e,t,t.refetchOnMount)}function tg(e,t,r){if(Mr(t.enabled,e)!==!1&&Ri(t.staleTime,e)!=="static"){const n=typeof r=="function"?r(e):r;return n==="always"||n!==!1&&ey(e,t)}return!1}function Aw(e,t,r,n){return(e!==t||Mr(n.enabled,e)===!1)&&(!r.suspense||e.state.status!=="error")&&ey(e,r)}function ey(e,t){return Mr(t.enabled,e)!==!1&&e.isStaleByTime(Ri(t.staleTime,e))}function q4(e,t){return!_u(e.getCurrentResult(),t)}function Tw(e){return{onFetch:(t,r)=>{var m,f,p,g,x;const n=t.options,o=(p=(f=(m=t.fetchOptions)==null?void 0:m.meta)==null?void 0:f.fetchMore)==null?void 0:p.direction,s=((g=t.state.data)==null?void 0:g.pages)||[],l=((x=t.state.data)==null?void 0:x.pageParams)||[];let c={pages:[],pageParams:[]},d=0;const h=async()=>{let b=!1;const w=C=>{L4(C,()=>t.signal,()=>b=!0)},y=Vx(t.options,t.fetchOptions),S=async(C,k,A)=>{if(b)return Promise.reject();if(k==null&&C.pages.length)return Promise.resolve(C);const D=(()=>{const O={client:t.client,queryKey:t.queryKey,pageParam:k,direction:A?"backward":"forward",meta:t.options.meta};return w(O),O})(),_=await y(D),{maxPages:F}=t.options,M=A?O4:B4;return{pages:M(C.pages,_,F),pageParams:M(C.pageParams,k,F)}};if(o&&s.length){const C=o==="backward",k=C?U4:Ew,A={pages:s,pageParams:l},N=k(n,A);c=await S(A,N,C)}else{const C=e??s.length;do{const k=d===0?l[0]??n.initialPageParam:Ew(n,c);if(d>0&&k==null)break;c=await S(c,k),d++}while(d<C)}return c};t.options.persister?t.fetchFn=()=>{var b,w;return(w=(b=t.options).persister)==null?void 0:w.call(b,h,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},r)}:t.fetchFn=h}}}function Ew(e,{pages:t,pageParams:r}){const n=t.length-1;return t.length>0?e.getNextPageParam(t[n],t,r[n],r):void 0}function U4(e,{pages:t,pageParams:r}){var n;return t.length>0?(n=e.getPreviousPageParam)==null?void 0:n.call(e,t[0],t,r[0],r):void 0}var kl,on,Vt,wo,an,di,cx,G4=(cx=class extends Xx{constructor(t){super();Be(this,an);Be(this,kl);Be(this,on);Be(this,Vt);Be(this,wo);xe(this,kl,t.client),this.mutationId=t.mutationId,xe(this,Vt,t.mutationCache),xe(this,on,[]),this.state=t.state||Zx(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){J(this,on).includes(t)||(J(this,on).push(t),this.clearGcTimeout(),J(this,Vt).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){xe(this,on,J(this,on).filter(r=>r!==t)),this.scheduleGc(),J(this,Vt).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){J(this,on).length||(this.state.status==="pending"?this.scheduleGc():J(this,Vt).remove(this))}continue(){var t;return((t=J(this,wo))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var l,c,d,h,m,f,p,g,x,b,w,y,S,C,k,A,N,D;const r=()=>{ze(this,an,di).call(this,{type:"continue"})},n={client:J(this,kl),meta:this.options.meta,mutationKey:this.options.mutationKey};xe(this,wo,Kx({fn:()=>this.options.mutationFn?this.options.mutationFn(t,n):Promise.reject(new Error("No mutationFn found")),onFail:(_,F)=>{ze(this,an,di).call(this,{type:"failed",failureCount:_,error:F})},onPause:()=>{ze(this,an,di).call(this,{type:"pause"})},onContinue:r,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>J(this,Vt).canRun(this)}));const o=this.state.status==="pending",s=!J(this,wo).canStart();try{if(o)r();else{ze(this,an,di).call(this,{type:"pending",variables:t,isPaused:s}),J(this,Vt).config.onMutate&&await J(this,Vt).config.onMutate(t,this,n);const F=await((c=(l=this.options).onMutate)==null?void 0:c.call(l,t,n));F!==this.state.context&&ze(this,an,di).call(this,{type:"pending",context:F,variables:t,isPaused:s})}const _=await J(this,wo).start();return await((h=(d=J(this,Vt).config).onSuccess)==null?void 0:h.call(d,_,t,this.state.context,this,n)),await((f=(m=this.options).onSuccess)==null?void 0:f.call(m,_,t,this.state.context,n)),await((g=(p=J(this,Vt).config).onSettled)==null?void 0:g.call(p,_,null,this.state.variables,this.state.context,this,n)),await((b=(x=this.options).onSettled)==null?void 0:b.call(x,_,null,t,this.state.context,n)),ze(this,an,di).call(this,{type:"success",data:_}),_}catch(_){try{await((y=(w=J(this,Vt).config).onError)==null?void 0:y.call(w,_,t,this.state.context,this,n))}catch(F){Promise.reject(F)}try{await((C=(S=this.options).onError)==null?void 0:C.call(S,_,t,this.state.context,n))}catch(F){Promise.reject(F)}try{await((A=(k=J(this,Vt).config).onSettled)==null?void 0:A.call(k,void 0,_,this.state.variables,this.state.context,this,n))}catch(F){Promise.reject(F)}try{await((D=(N=this.options).onSettled)==null?void 0:D.call(N,void 0,_,t,this.state.context,n))}catch(F){Promise.reject(F)}throw ze(this,an,di).call(this,{type:"error",error:_}),_}finally{J(this,Vt).runNext(this)}}},kl=new WeakMap,on=new WeakMap,Vt=new WeakMap,wo=new WeakMap,an=new WeakSet,di=function(t){const r=n=>{switch(t.type){case"failed":return{...n,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...n,isPaused:!0};case"continue":return{...n,isPaused:!1};
220case"pending":return{...n,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...n,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...n,data:void 0,error:t.error,failureCount:n.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=r(this.state),_t.batch(()=>{J(this,on).forEach(n=>{n.onMutationUpdate(t)}),J(this,Vt).notify({mutation:this,type:"updated",action:t})})},cx);function Zx(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var En,Xr,xl,ux,V4=(ux=class extends Wa{constructor(t={}){super();Be(this,En);Be(this,Xr);Be(this,xl);this.config=t,xe(this,En,new Set),xe(this,Xr,new Map),xe(this,xl,0)}build(t,r,n){const o=new G4({client:t,mutationCache:this,mutationId:++Uc(this,xl)._,options:t.defaultMutationOptions(r),state:n});return this.add(o),o}add(t){J(this,En).add(t);const r=Xc(t);if(typeof r=="string"){const n=J(this,Xr).get(r);n?n.push(t):J(this,Xr).set(r,[t])}this.notify({type:"added",mutation:t})}remove(t){if(J(this,En).delete(t)){const r=Xc(t);if(typeof r=="string"){const n=J(this,Xr).get(r);if(n)if(n.length>1){const o=n.indexOf(t);o!==-1&&n.splice(o,1)}else n[0]===t&&J(this,Xr).delete(r)}}this.notify({type:"removed",mutation:t})}canRun(t){const r=Xc(t);if(typeof r=="string"){const n=J(this,Xr).get(r),o=n==null?void 0:n.find(s=>s.state.status==="pending");return!o||o===t}else return!0}runNext(t){var n;const r=Xc(t);if(typeof r=="string"){const o=(n=J(this,Xr).get(r))==null?void 0:n.find(s=>s!==t&&s.state.isPaused);return(o==null?void 0:o.continue())??Promise.resolve()}else return Promise.resolve()}clear(){_t.batch(()=>{J(this,En).forEach(t=>{this.notify({type:"removed",mutation:t})}),J(this,En).clear(),J(this,Xr).clear()})}getAll(){return Array.from(J(this,En))}find(t){const r={exact:!0,...t};return this.getAll().find(n=>ww(r,n))}findAll(t={}){return this.getAll().filter(r=>ww(t,r))}notify(t){_t.batch(()=>{this.listeners.forEach(r=>{r(t)})})}resumePausedMutations(){const t=this.getAll().filter(r=>
vendor: 5,122 bytes, line 220
220r.state.isPaused);return _t.batch(()=>Promise.all(t.map(r=>r.continue().catch(er))))}},En=new WeakMap,Xr=new WeakMap,xl=new WeakMap,ux);function Xc(e){var t;return(t=e.options.scope)==null?void 0:t.id}var _n,vi,ur,Dn,Mn,du,rg,dx,Y4=(dx=class extends Wa{constructor(r,n){super();Be(this,Mn);Be(this,_n);Be(this,vi);Be(this,ur);Be(this,Dn);xe(this,_n,r),this.setOptions(n),this.bindMethods(),ze(this,Mn,du).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(r){var o;const n=this.options;this.options=J(this,_n).defaultMutationOptions(r),_u(this.options,n)||J(this,_n).getMutationCache().notify({type:"observerOptionsUpdated",mutation:J(this,ur),observer:this}),n!=null&&n.mutationKey&&this.options.mutationKey&&Ao(n.mutationKey)!==Ao(this.options.mutationKey)?this.reset():((o=J(this,ur))==null?void 0:o.state.status)==="pending"&&J(this,ur).setOptions(this.options)}onUnsubscribe(){var r;this.hasListeners()||(r=J(this,ur))==null||r.removeObserver(this)}onMutationUpdate(r){ze(this,Mn,du).call(this),ze(this,Mn,rg).call(this,r)}getCurrentResult(){return J(this,vi)}reset(){var r;(r=J(this,ur))==null||r.removeObserver(this),xe(this,ur,void 0),ze(this,Mn,du).call(this),ze(this,Mn,rg).call(this)}mutate(r,n){var o;return xe(this,Dn,n),(o=J(this,ur))==null||o.removeObserver(this),xe(this,ur,J(this,_n).getMutationCache().build(J(this,_n),this.options)),J(this,ur).addObserver(this),J(this,ur).execute(r)}},_n=new WeakMap,vi=new WeakMap,ur=new WeakMap,Dn=new WeakMap,Mn=new WeakSet,du=function(){var n;const r=((n=J(this,ur))==null?void 0:n.state)??Zx();xe(this,vi,{...r,isPending:r.status==="pending",isSuccess:r.status==="success",isError:r.status==="error",isIdle:r.status==="idle",mutate:this.mutate,reset:this.reset})},rg=function(r){_t.batch(()=>{var n,o,s,l,c,d,h,m;if(J(this,Dn)&&this.hasListeners()){const f=J(this,vi).variables,p=J(this,vi).context,g={client:J(this,_n),meta:this.options.meta,mutationKey:this.options.mutationKey};if((r==null?void 0:r.type)==="success"){try{(o=(n=J(this,Dn)).onSuccess)==null||o.call(n,r.data,f,p,g)}catch(x){Promise.reject(x)}try{(l=(s=J(this,Dn)).onSettled)==null||l.call(s,r.data,null,f,p,g)}catch(x){Promise.reject(x)}}else if((r==null?void 0:r.type)==="error"){try{(d=(c=J(this,Dn)).onError)==null||d.call(c,r.error,f,p,g)}catch(x){Promise.reject(x)}try{(m=(h=J(this,Dn)).onSettled)==null||m.call(h,void 0,r.error,f,p,g)}catch(x){Promise.reject(x)}}}this.listeners.forEach(f=>{f(J(this,vi))})})},dx),sn,fx,K4=(fx=class extends Wa{constructor(t={}){super();Be(this,sn);this.config=t,xe(this,sn,new Map)}build(t,r,n){const o=r.queryKey,s=r.queryHash??$g(o,r);let l=this.get(s);return l||(l=new W4({client:t,queryKey:o,queryHash:s,options:t.defaultQueryOptions(r),state:n,defaultOptions:t.getQueryDefaults(o)}),this.add(l)),l}add(t){J(this,sn).has(t.queryHash)||(J(this,sn).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const r=J(this,sn).get(t.queryHash);r&&(t.destroy(),r===t&&J(this,sn).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){_t.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return J(this,sn).get(t)}getAll(){return[...J(this,sn).values()]}find(t){const r={exact:!0,...t};return this.getAll().find(n=>vw(r,n))}findAll(t={}){const r=this.getAll();return Object.keys(t).length>0?r.filter(n=>vw(t,n)):r}notify(t){_t.batch(()=>{this.listeners.forEach(r=>{r(t)})})}onFocus(){_t.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){_t.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},sn=new WeakMap,fx),pt,wi,Si,Ba,Oa,ki,La,Ma,hx,X4=(hx=class{constructor(e={}){Be(this,pt);Be(this,wi);Be(this,Si);Be(this,Ba);Be(this,Oa);Be(this,ki);Be(this,La);Be(this,Ma);xe(this,pt,e.queryCache||new K4),xe(this,wi,e.mutationCache||new V4),xe(this,Si,e.defaultOptions||{}),xe(this,Ba,new Map),xe(this,Oa,new Map),xe(this,ki,0)}mount(){Uc(this,ki)._++,J(this,ki)===1&&(xe(this,La,Jg.subscribe(async e=>{e&&(await this.resumePausedMutations(),J(this,pt).onFocus())})),xe(this,Ma,Du.subscribe(async e=>{e&&(await this.resumePausedMutations(),J(this,pt).onOnline())})))}unmount(){var e,t;Uc(this,ki)._--,J(this,ki)===0&&((e=J(this,La))==null||e.call(this),xe(this,La,void 0),(t=J(this,Ma))==null||t.call(this),xe(this,Ma,void 0))}isFetching(e){return J(this,pt).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return J(this,wi).findAll({...e,status:"pending"}).length}getQueryData(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=J(this,pt).get(t.queryHash))==null?void 0:r.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),r=J(this,pt).build(this,t),n=r.state.data;return n===void 0?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime(Ri(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(n))}getQueriesData(e){return J(this,pt).findAll(e).map(({queryKey:t,state:r})=>{const n=r.data;return[t,n]})}setQueryData(e,t,r){const n=this.defaultQueryOptions({queryKey:e}),o=J(this,pt).get(n.queryHash),s=o==null?void 0:o.state.data,l=_4(t,s);if(l!==void 0)return J(this,pt).build(this,n).setData(l,{...r,manual:!0})}
220setQueriesData(e,t,r){return _t.batch(()=>J(this,pt).findAll(e).map(({queryKey:n})=>[n,this.setQueryData(n,t,r)]))}getQueryState(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=J(this,pt).get(t.queryHash))==null?void 0:r.state}removeQueries(e){const t=J(this,pt);_t.batch(()=>{t.findAll(e).forEach(r=>{t.remove(r)})})}resetQueries(e,t){const r=J(this,pt);return _t.batch(()=>(r.findAll(e).forEach(n=>{n.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const r={revert:!0,...t},n=_t.batch(()=>J(this,pt).findAll(e).map(o=>o.cancel(r)));return Promise.all(n).then(er).catch(er)}invalidateQueries(e,t={}){return _t.batch(()=>(J(this,pt).findAll(e).forEach(r=>{r.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const r={...t,cancelRefetch:t.cancelRefetch??!0},n=_t.batch(()=>J(this,pt).findAll(e).filter(o=>!o.isDisabled()&&!o.isStatic()).map(o=>{let s=o.fetch(void 0,r);return r.throwOnError||(s=s.catch(er)),o.state.fetchStatus==="paused"?Promise.resolve():s}));return Promise.all(n).then(er)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const r=J(this,pt).build(this,t);return r.isStaleByTime(Ri(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(er).catch(er)}fetchInfiniteQuery(e){return e.behavior=Tw(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(er).catch(er)}ensureInfiniteQueryData(e){return e.behavior=Tw(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return Du.isOnline()?J(this,wi).resumePausedMutations():Promise.resolve()}getQueryCache(){return J(this,pt)}getMutationCache(){return J(this,wi)}getDefaultOptions(){return J(this,Si)}setDefaultOptions(e){xe(this,Si,e)}setQueryDefaults(e,t){J(this,Ba).set(Ao(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...J(this,Ba).values()],r={};return t.forEach(n=>{ll(e,n.queryKey)&&Object.assign(r,n.defaultOptions)}),r}setMutationDefaults(e,t){J(this,Oa).set(Ao(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...J(this,Oa).values()],r={};return t.forEach(n=>{ll(e,n.mutationKey)&&Object.assign(r,n.defaultOptions)}),r}defaultQueryOptions(e){if(e._defaulted)return e;const t={...J(this,Si).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=$g(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===Qg&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...J(this,Si).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){J(this,pt).clear(),J(this,wi).clear()}},pt=new WeakMap,wi=new WeakMap,Si=new WeakMap,Ba=new WeakMap,Oa=new WeakMap,ki=new WeakMap,La=new WeakMap,Ma=new WeakMap,hx),Jx=P.createContext(void 0),ty=e=>{const t=P.useContext(Jx);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},$4=({client:e,children:t})=>(P.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),R.jsx(Jx.Provider,{value:e,children:t})),eC=P.createContext(!1),Q4=()=>P.useContext(eC);eC.Provider;function Z4(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var J4=P.createContext(Z4()),e3=()=>P.useContext(J4),t3=(e,t,r)=>{const n=r!=null&&r.state.error&&typeof e.throwOnError=="function"?Zg(e.throwOnError,[r.state.error,r]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||n)&&(t.isReset()||(e.retryOnMount=!1))},r3=e=>{P.useEffect(()=>{e.clearReset()},[e])},n3=({result:e,errorResetBoundary:t,throwOnError:r,query:n,suspense:o})=>e.isError&&!t.isReset()&&!e.isFetching&&n&&(o&&e.data===void 0||Zg(r,[e.error,n])),i3=e=>{if(e.suspense){const r=o=>o==="static"?o:Math.max(o??1e3,1e3),n=e.staleTime;e.staleTime=typeof n=="function"?(...o)=>r(n(...o)):r(n),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},o3=(e,t)=>e.isLoading&&e.isFetching&&!t,a3=(e,t)=>
220(e==null?void 0:e.suspense)&&t.isPending,_w=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function s3(e,t,r){var p,g,x,b;const n=Q4(),o=e3(),s=ty(),l=s.defaultQueryOptions(e);(g=(p=s.getDefaultOptions().queries)==null?void 0:p._experimental_beforeQuery)==null||g.call(p,l);const c=s.getQueryCache().get(l.queryHash);l._optimisticResults=n?"isRestoring":"optimistic",i3(l),t3(l,o,c),r3(o);const d=!s.getQueryCache().get(l.queryHash),[h]=P.useState(()=>new t(s,l)),m=h.getOptimisticResult(l),f=!n&&e.subscribed!==!1;if(P.useSyncExternalStore(P.useCallback(w=>{const y=f?h.subscribe(_t.batchCalls(w)):er;return h.updateResult(),y},[h,f]),()=>h.getCurrentResult(),()=>h.getCurrentResult()),P.useEffect(()=>{h.setOptions(l)},[l,h]),a3(l,m))throw _w(l,h,o);if(n3({result:m,errorResetBoundary:o,throwOnError:l.throwOnError,query:c,suspense:l.suspense}))throw m.error;if((b=(x=s.getDefaultOptions().queries)==null?void 0:x._experimental_afterQuery)==null||b.call(x,l,m),l.experimental_prefetchInRender&&!Ro&&o3(m,n)){const w=d?_w(l,h,o):c==null?void 0:c.promise;w==null||w.catch(er).finally(()=>{h.updateResult()})}return l.notifyOnChangeProps?m:h.trackResult(m)}function za(e,t){return s3(e,z4)}function kh(e,t){const r=ty(),[n]=P.useState(()=>new Y4(r,e));P.useEffect(()=>{n.setOptions(e)},[n,e]);const o=P.useSyncExternalStore(P.useCallback(l=>n.subscribe(_t.batchCalls(l)),[n]),()=>n.getCurrentResult(),()=>n.getCurrentResult()),s=P.useCallback((l,c)=>{n.mutate(l,c).catch(er)},[n]);if(o.error&&Zg(n.options.throwOnError,[o.error]))throw o.error;return{...o,mutate:s,mutateAsync:o.mutate}}const l3=new X4({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1}}});var Cl=Gg();const c3=$u(Cl);/**
221 * @remix-run/router v1.23.2
222 *
223 * Copyright (c) Remix Software Inc.
224 *
225 * This source code is licensed under the MIT license found in the
226 * LICENSE.md file in the root directory of this source tree.
227 *
228 * @license MIT
229 */function cl(){return cl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},cl.apply(this,arguments)}var xi;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(xi||(xi={}));const Dw="popstate";function u3(e){e===void 0&&(e={});function t(n,o){let{pathname:s,search:l,hash:c}=n.location;return ng("",{pathname:s,search:l,hash:c},o.state&&o.state.usr||null,o.state&&o.state.key||"default")}function r(n,o){return typeof o=="string"?o:Nu(o)}return f3(t,r,null,e)}function Rt(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function ry(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function d3(){return Math.random().toString(36).substr(2,8)}function Nw(e,t){return{usr:e.state,key:e.key,idx:t}}function ng(e,t,r,n){return r===void 0&&(r=null),cl({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ha(t):t,{state:r,key:t&&t.key||n||d3()})}function Nu(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function Ha(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function f3(e,t,r,n){n===void 0&&(n={});let{window:o=document.defaultView,v5Compat:s=!1}=n,l=o.history,c=xi.Pop,d=null,h=m();h==null&&(h=0,l.replaceState(cl({},l.state,{idx:h}),""));function m(){return(l.state||{idx:null}).idx}function f(){c=xi.Pop;let w=m(),y=w==null?null:w-h;h=w,d&&d({action:c,location:b.location,delta:y})}function p(w,y){c=xi.Push;let S=ng(b.location,w,y);h=m()+1;let C=Nw(S,h),k=b.createHref(S);try{l.pushState(C,"",k)}catch(A){if(A instanceof DOMException&&A.name==="DataCloneError")throw A;o.location.assign(k)}s&&d&&d({action:c,location:b.location,delta:1})}function g(w,y){c=xi.Replace;let S=ng(b.location,w,y);h=m();let C=Nw(S,h),k=b.createHref(S);l.replaceState(C,"",k),s&&d&&d({action:c,location:b.location,delta:0})}function x(w){let y=o.location.origin!=="null"?o.location.origin:o.location.href,S=typeof w=="string"?w:Nu(w);return S=S.replace(/ $/,"%20"),Rt(y,"No window.location.(origin|href) available to create URL for href: "+S),new URL(S,y)}let b={get action(){return c},get location(){return e(o,l)},listen(w){if(d)throw new Error("A history only accepts one active listener");
vendor: 6,871 bytes, lines 229-238
229return o.addEventListener(Dw,f),d=w,()=>{o.removeEventListener(Dw,f),d=null}},createHref(w){return t(o,w)},createURL:x,encodeLocation(w){let y=x(w);return{pathname:y.pathname,search:y.search,hash:y.hash}},push:p,replace:g,go(w){return l.go(w)}};return b}var Bw;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Bw||(Bw={}));function h3(e,t,r){return r===void 0&&(r="/"),p3(e,t,r)}function p3(e,t,r,n){let o=typeof t=="string"?Ha(t):t,s=ny(o.pathname||"/",r);if(s==null)return null;let l=tC(e);m3(l);let c=null;for(let d=0;c==null&&d<l.length;++d){let h=T3(s);c=C3(l[d],h)}return c}function tC(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n="");let o=(s,l,c)=>{let d={relativePath:c===void 0?s.path||"":c,caseSensitive:s.caseSensitive===!0,childrenIndex:l,route:s};d.relativePath.startsWith("/")&&(Rt(d.relativePath.startsWith(n),'Absolute route path "'+d.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),d.relativePath=d.relativePath.slice(n.length));let h=Ai([n,d.relativePath]),m=r.concat(d);s.children&&s.children.length>0&&(Rt(s.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+h+'".')),tC(s.children,t,m,h)),!(s.path==null&&!s.index)&&t.push({path:h,score:k3(h,s.index),routesMeta:m})};return e.forEach((s,l)=>{var c;if(s.path===""||!((c=s.path)!=null&&c.includes("?")))o(s,l);else for(let d of rC(s.path))o(s,l,d)}),t}function rC(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,o=r.endsWith("?"),s=r.replace(/\?$/,"");if(n.length===0)return o?[s,""]:[s];let l=rC(n.join("/")),c=[];return c.push(...l.map(d=>d===""?s:[s,d].join("/"))),o&&c.push(...l),c.map(d=>e.startsWith("/")&&d===""?"/":d)}function m3(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:x3(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const g3=/^:[\w-]+$/,y3=3,b3=2,v3=1,w3=10,S3=-2,Ow=e=>e==="*";function k3(e,t){let r=e.split("/"),n=r.length;return r.some(Ow)&&(n+=S3),t&&(n+=b3),r.filter(o=>!Ow(o)).reduce((o,s)=>o+(g3.test(s)?y3:s===""?v3:w3),n)}function x3(e,t){return e.length===t.length&&e.slice(0,-1).every((n,o)=>n===t[o])?e[e.length-1]-t[t.length-1]:0}function C3(e,t,r){let{routesMeta:n}=e,o={},s="/",l=[];for(let c=0;c<n.length;++c){let d=n[c],h=c===n.length-1,m=s==="/"?t:t.slice(s.length)||"/",f=R3({path:d.relativePath,caseSensitive:d.caseSensitive,end:h},m),p=d.route;if(!f)return null;Object.assign(o,f.params),l.push({params:o,pathname:Ai([s,f.pathname]),pathnameBase:B3(Ai([s,f.pathnameBase])),route:p}),f.pathnameBase!=="/"&&(s=Ai([s,f.pathnameBase]))}return l}function R3(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=A3(e.path,e.caseSensitive,e.end),o=t.match(r);if(!o)return null;let s=o[0],l=s.replace(/(.)\/+$/,"$1"),c=o.slice(1);return{params:n.reduce((h,m,f)=>{let{paramName:p,isOptional:g}=m;if(p==="*"){let b=c[f]||"";l=s.slice(0,s.length-b.length).replace(/(.)\/+$/,"$1")}const x=c[f];return g&&!x?h[p]=void 0:h[p]=(x||"").replace(/%2F/g,"/"),h},{}),pathname:s,pathnameBase:l,pattern:e}}function A3(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),ry(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(l,c,d)=>(n.push({paramName:c,isOptional:d!=null}),d?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?o+="\\/*$":e!==""&&e!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),n]}function T3(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return ry(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function ny(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}const E3=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,_3=e=>E3.test(e);function D3(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:o=""}=typeof e=="string"?Ha(e):e,s;if(r)if(_3(r))s=r;else{if(r.includes("//")){let l=r;r=r.replace(/\/\/+/g,"/"),ry(!1,"Pathnames cannot have embedded double slashes - normalizing "+(l+" -> "+r))}r.startsWith("/")?s=Lw(r.substring(1),"/"):s=Lw(r,t)}else s=t;return{pathname:s,search:O3(n),hash:L3(o)}}function Lw(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(o=>{o===".."?r.length>1&&r.pop():o!=="."&&r.push(o)}),r.length>1?r.join("/"):"/"}function xh(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"].  Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function N3(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function nC(e,t){let r=N3(e);return t?r.map((n,o)=>o===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function iC(e,t,r,n){n===void 0&&(n=!1);let o;typeof e=="string"?o=Ha(e):(o=cl({},e),Rt(!o.pathname||!o.pathname.includes("?"),xh("?","pathname","search",o)),Rt(!o.pathname||!o.pathname.includes("#"),xh("#","pathname","hash",o)),Rt(!o.search||!o.search.includes("#"),xh("#","search","hash",o)));let s=e===""||o.pathname==="",l=s?"/":o.pathname,c;if(l==null)c=r;else{let f=t.length-1;if(!n&&l.startsWith("..")){let p=l.split("/");for(;p[0]==="..";)p.shift(),f-=1;o.pathname=p.join("/")}c=f>=0?t[f]:"/"}let d=D3(o,c),h=l&&l!=="/"&&l.endsWith("/"),m=(s||l===".")&&r.endsWith("/");return!d.pathname.endsWith("/")&&(h||m)&&(d.pathname+="/"),d}const Ai=e=>e.join("/").replace(/\/\/+/g,"/"),B3=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),O3=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,L3=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function M3(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const oC=["post","put","patch","delete"];new Set(oC);const P3=["get",...oC];new Set(P3);/**
230 * React Router v6.30.3
231 *
232 * Copyright (c) Remix Software Inc.
233 *
234 * This source code is licensed under the MIT license found in the
235 * LICENSE.md file in the root directory of this source tree.
236 *
237 * @license MIT
238 */function ul(){return ul=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];
vendor: 5,436 bytes, line 238
238for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ul.apply(this,arguments)}const iy=P.createContext(null),j3=P.createContext(null),Lo=P.createContext(null),Ju=P.createContext(null),Li=P.createContext({outlet:null,matches:[],isDataRoute:!1}),aC=P.createContext(null);function F3(e,t){let{relative:r}=t===void 0?{}:t;Rl()||Rt(!1);let{basename:n,navigator:o}=P.useContext(Lo),{hash:s,pathname:l,search:c}=lC(e,{relative:r}),d=l;return n!=="/"&&(d=l==="/"?n:Ai([n,l])),o.createHref({pathname:d,search:c,hash:s})}function Rl(){return P.useContext(Ju)!=null}function Mo(){return Rl()||Rt(!1),P.useContext(Ju).location}function sC(e){P.useContext(Lo).static||P.useLayoutEffect(e)}function oy(){let{isDataRoute:e}=P.useContext(Li);return e?Z3():I3()}function I3(){Rl()||Rt(!1);let e=P.useContext(iy),{basename:t,future:r,navigator:n}=P.useContext(Lo),{matches:o}=P.useContext(Li),{pathname:s}=Mo(),l=JSON.stringify(nC(o,r.v7_relativeSplatPath)),c=P.useRef(!1);return sC(()=>{c.current=!0}),P.useCallback(function(h,m){if(m===void 0&&(m={}),!c.current)return;if(typeof h=="number"){n.go(h);return}let f=iC(h,JSON.parse(l),s,m.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:Ai([t,f.pathname])),(m.replace?n.replace:n.push)(f,m.state,m)},[t,n,l,s,e])}function W3(){let{matches:e}=P.useContext(Li),t=e[e.length-1];return t?t.params:{}}function lC(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=P.useContext(Lo),{matches:o}=P.useContext(Li),{pathname:s}=Mo(),l=JSON.stringify(nC(o,n.v7_relativeSplatPath));return P.useMemo(()=>iC(e,JSON.parse(l),s,r==="path"),[e,l,s,r])}function z3(e,t){return H3(e,t)}function H3(e,t,r,n){Rl()||Rt(!1);let{navigator:o}=P.useContext(Lo),{matches:s}=P.useContext(Li),l=s[s.length-1],c=l?l.params:{};l&&l.pathname;let d=l?l.pathnameBase:"/";l&&l.route;let h=Mo(),m;if(t){var f;let w=typeof t=="string"?Ha(t):t;d==="/"||(f=w.pathname)!=null&&f.startsWith(d)||Rt(!1),m=w}else m=h;let p=m.pathname||"/",g=p;if(d!=="/"){let w=d.replace(/^\//,"").split("/");g="/"+p.replace(/^\//,"").split("/").slice(w.length).join("/")}let x=h3(e,{pathname:g}),b=Y3(x&&x.map(w=>Object.assign({},w,{params:Object.assign({},c,w.params),pathname:Ai([d,o.encodeLocation?o.encodeLocation(w.pathname).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?d:Ai([d,o.encodeLocation?o.encodeLocation(w.pathnameBase).pathname:w.pathnameBase])})),s,r,n);return t&&b?P.createElement(Ju.Provider,{value:{location:ul({pathname:"/",search:"",hash:"",state:null,key:"default"},m),navigationType:xi.Pop}},b):b}function q3(){let e=Q3(),t=M3(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,o={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return P.createElement(P.Fragment,null,P.createElement("h2",null,"Unexpected Application Error!"),P.createElement("h3",{style:{fontStyle:"italic"}},t),r?P.createElement("pre",{style:o},r):null,null)}const U3=P.createElement(q3,null);class G3 extends P.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?P.createElement(Li.Provider,{value:this.props.routeContext},P.createElement(aC.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function V3(e){let{routeContext:t,match:r,children:n}=e,o=P.useContext(iy);return o&&o.static&&o.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=r.route.id),P.createElement(Li.Provider,{value:t},n)}function Y3(e,t,r,n){var o;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var s;if(!r)return null;if(r.errors)e=r.matches;else if((s=n)!=null&&s.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let l=e,c=(o=r)==null?void 0:o.errors;if(c!=null){let m=l.findIndex(f=>f.route.id&&(c==null?void 0:c[f.route.id])!==void 0);m>=0||Rt(!1),l=l.slice(0,Math.min(l.length,m+1))}let d=!1,h=-1;if(r&&n&&n.v7_partialHydration)for(let m=0;m<l.length;m++){let f=l[m];if((f.route.HydrateFallback||f.route.hydrateFallbackElement)&&(h=m),f.route.id){let{loaderData:p,errors:g}=r,x=f.route.loader&&p[f.route.id]===void 0&&(!g||g[f.route.id]===void 0);if(f.route.lazy||x){d=!0,h>=0?l=l.slice(0,h+1):l=[l[0]];break}}}return l.reduceRight((m,f,p)=>{let g,x=!1,b=null,w=null;r&&(g=c&&f.route.id?c[f.route.id]:void 0,b=f.route.errorElement||U3,d&&(h<0&&p===0?(J3("route-fallback"),x=!0,w=null):h===p&&(x=!0,w=f.route.hydrateFallbackElement||null)));let y=t.concat(l.slice(0,p+1)),S=()=>{let C;return g?C=b:x?C=w:f.route.Component?C=P.createElement(f.route.Component,null):f.route.element?C=f.route.element:C=m,P.createElement(V3,{match:f,routeContext:{outlet:m,matches:y,isDataRoute:r!=null},children:C})};return r&&(f.route.ErrorBoundary||f.route.errorElement||p===0)?P.createElement(G3,{location:r.location,revalidation:r.revalidation,component:b,error:g,children:S(),routeC
238ontext:{outlet:null,matches:y,isDataRoute:!0}}):S()},null)}var cC=(function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e})(cC||{}),uC=(function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e})(uC||{});function K3(e){let t=P.useContext(iy);return t||Rt(!1),t}function X3(e){let t=P.useContext(j3);return t||Rt(!1),t}function $3(e){let t=P.useContext(Li);return t||Rt(!1),t}function dC(e){let t=$3(),r=t.matches[t.matches.length-1];return r.route.id||Rt(!1),r.route.id}function Q3(){var e;let t=P.useContext(aC),r=X3(),n=dC();return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function Z3(){let{router:e}=K3(cC.UseNavigateStable),t=dC(uC.UseNavigateStable),r=P.useRef(!1);return sC(()=>{r.current=!0}),P.useCallback(function(o,s){s===void 0&&(s={}),r.current&&(typeof o=="number"?e.navigate(o):e.navigate(o,ul({fromRouteId:t},s)))},[e,t])}const Mw={};function J3(e,t,r){Mw[e]||(Mw[e]=!0)}function eN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function lr(e){Rt(!1)}function tN(e){let{basename:t="/",children:r=null,location:n,navigationType:o=xi.Pop,navigator:s,static:l=!1,future:c}=e;Rl()&&Rt(!1);let d=t.replace(/^\/*/,"/"),h=P.useMemo(()=>({basename:d,navigator:s,static:l,future:ul({v7_relativeSplatPath:!1},c)}),[d,c,s,l]);typeof n=="string"&&(n=Ha(n));let{pathname:m="/",search:f="",hash:p="",state:g=null,key:x="default"}=n,b=P.useMemo(()=>{let w=ny(m,d);return w==null?null:{location:{pathname:w,search:f,hash:p,state:g,key:x},navigationType:o}},[d,m,f,p,g,x,o]);return b==null?null:P.createElement(Lo.Provider,{value:h},P.createElement(Ju.Provider,{children:r,value:b}))}function rN(e){let{children:t,location:r}=e;return z3(ig(t),r)}new Promise(()=>{});function ig(e,t){t===void 0&&(t=[]);let r=[];return P.Children.forEach(e,(n,o)=>{if(!P.isValidElement(n))return;let s=[...t,o];if(n.type===P.Fragment){r.push.apply(r,ig(n.props.children,s));return}n.type!==lr&&Rt(!1),!n.props.index||!n.props.children||Rt(!1);let l={id:n.props.id||s.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,loader:n.props.loader,action:n.props.action,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(l.children=ig(n.props.children,s)),r.push(l)}),r}/**
239 * React Router DOM v6.30.3
240 *
241 * Copyright (c) Remix Software Inc.
242 *
243 * This source code is licensed under the MIT license found in the
244 * LICENSE.md file in the root directory of this source tree.
245 *
246 * @license MIT
247 */function og(){return og=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},og.apply(this,arguments)}function nN(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,s;for(s=0;s<n.length;s++)o=n[s],!(t.indexOf(o)>=0)&&(r[o]=e[o]);return r}function iN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function oN(e,t){return e.button===0&&(!t||t==="_self")&&!iN(e)}const aN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],sN="6";try{window.__reactRouterVersion=sN}catch{}const lN="startTransition",Pw=Ug[lN];function cN(e){let{basename:t,children:r,future:n,window:o}=e,s=P.useRef();s.current==null&&(s.current=u3({window:o,v5Compat:!0}));let l=s.current,[c,d]=P.useState({action:l.action,location:l.location}),{v7_startTransition:h}=n||{},m=P.useCallback(f=>{h&&Pw?Pw(()=>d(f)):d(f)},[d,h]);return P.useLayoutEffect(()=>l.listen(m),[l,m]),P.useEffect(()=>eN(n),[n]),P.createElement(tN,{basename:t,children:r,location:c.location,navigationType:c.action,navigator:l,future:n})}const uN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",dN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,So=P.forwardRef(function(t,r){let{onClick:n,relative:o,reloadDocument:s,replace:l,state:c,target:d,to:h,preventScrollReset:m,viewTransition:f}=t,p=nN(t,aN),{basename:g}=P.useContext(Lo),x,b=!1;if(typeof h=="string"&&dN.test(h)&&(x=h,uN))try{let C=new URL(window.location.href),k=h.startsWith("//")?new URL(C.protocol+h):new URL(h),A=ny(k.pathname,g);k.origin===C.origin&&A!=null?h=A+k.search+k.hash:b=!0}catch{}let w=F3(h,{relative:o}),y=fN(h,{replace:l,state:c,target:d,preventScrollReset:m,relative:o,viewTransition:f});function S(C){n&&n(C),C.defaultPrevented||y(C)}return P.createElement("a",og({},p,{href:x||w,onClick:b||s?n:S,ref:r,target:d}))});var jw;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(jw||(jw={}));var Fw;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Fw||(Fw={}));function fN(e,t){let{target:r,replace:n,state:o,preventScrollReset:s,relative:l,viewTransition:c}=t===void 0?{}:t,d=oy(),h=Mo(),m=lC(e,{relative:l});return P.useCallback(f=>{if(oN(f,r)){f.preventDefault();let p=n!==void 0?n:Nu(h)===Nu(m);d(e,{replace:p,state:o,preventScrollReset:s,relative:l,viewTransition:c})}},[h,d,m,n,o,r,e,s,l,c])}function fC(e,t){return function(){return e.apply(t,arguments)}}const{toString:hN}=Object.prototype,{getPrototypeOf:Ei}=Object,{iterator:Al,toStringTag:hC}=Symbol,dl=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),pC=e=>typeof e=="string"&&(e==="__proto__"||e==="constructor"||e==="prototype"),mC=(e,t,r)=>e===Object.prototype||!r&&t===null,pN=e=>{if(!Object.isExtensible(e))return!1;const t=Object.getOwnPropertyNames(e);
vendor: 13,241 bytes, lines 247-249
247return Object.getOwnPropertySymbols&&t.push(...Object.getOwnPropertySymbols(e)),t.every(r=>{if(pC(r))return!1;const n=Object.getOwnPropertyDescriptor(e,r);return!!n&&n.configurable&&n.writable===!0})},fl=(e,t)=>{let r=e;const n=[];for(;r!=null;){if(n.indexOf(r)!==-1)return!1;n.push(r);const o=Ei(r);if(mC(r,o,r===e))return!1;if(dl(r,t))return!0;r=o}return!1},mN=(e,t)=>e!=null&&fl(e,t)?e[t]:void 0,gN=e=>{if(e==null||typeof e!="object"&&typeof e!="function")return e;const t=Ei(e);if(t===null&&pN(e))return e;const r=Object.create(null),n=Object.create(null),o=[];let s=e;for(;s!=null&&o.indexOf(s)===-1;){o.push(s);const l=s===e?t:Ei(s);if(mC(s,l,s===e))break;const c=Object.getOwnPropertyNames(s);Object.getOwnPropertySymbols&&c.push(...Object.getOwnPropertySymbols(s));for(const d of c)pC(d)||dl(n,d)||(r[d]=e[d],n[d]=!0);s=l}return r},ay=(e=>t=>{const r=hN.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),jr=e=>(e=e.toLowerCase(),t=>ay(t)===e),ed=e=>t=>typeof t===e,{isArray:To}=Array,Eo=ed("undefined");function qa(e){return e!==null&&!Eo(e)&&e.constructor!==null&&!Eo(e.constructor)&&fr(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const gC=jr("ArrayBuffer");function yN(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&gC(e.buffer),t}const bN=ed("string"),fr=ed("function"),yC=ed("number"),Ua=e=>e!==null&&typeof e=="object",vN=e=>e===!0||e===!1,fu=e=>{if(!Ua(e))return!1;const t=Ei(e);return(t===null||t===Object.prototype||Ei(t)===null)&&!fl(e,hC)&&!fl(e,Al)},wN=e=>{if(!Ua(e)||qa(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},SN=jr("Date"),kN=jr("File"),xN=e=>!!(e&&typeof e.uri<"u"),CN=e=>e&&typeof e.getParts<"u",RN=jr("Blob"),AN=jr("FileList"),TN=jr("Set"),EN=e=>Ua(e)&&fr(e.pipe);function _N(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const Iw=_N(),Ww=typeof Iw.FormData<"u"?Iw.FormData:void 0,DN=e=>{if(!e)return!1;if(Ww&&e instanceof Ww)return!0;const t=Ei(e);if(!t||t===Object.prototype||!fr(e.append))return!1;const r=ay(e);return r==="formdata"||r==="object"&&fr(e.toString)&&e.toString()==="[object FormData]"},NN=jr("URLSearchParams"),[BN,ON,LN,MN]=["ReadableStream","Request","Response","Headers"].map(jr),PN=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Tl(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let n,o;if(typeof e!="object"&&(e=[e]),To(e))for(n=0,o=e.length;n<o;n++)t.call(null,e[n],n,e);else{if(qa(e))return;const s=r?Object.getOwnPropertyNames(e):Object.keys(e),l=s.length;let c;for(n=0;n<l;n++)c=s[n],t.call(null,e[c],c,e)}}function bC(e,t){if(qa(e))return null;t=t.toLowerCase();const r=Object.keys(e);let n=r.length,o;for(;n-- >0;)if(o=r[n],t===o.toLowerCase())return o;return null}const co=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,vC=e=>!Eo(e)&&e!==co;function ag(...e){const{caseless:t,skipUndefined:r}=vC(this)&&this||{},n={},o=(s,l)=>{if(l==="__proto__"||l==="constructor"||l==="prototype")return;const c=t&&typeof l=="string"&&bC(n,l)||l,d=dl(n,c)?n[c]:void 0;fu(d)&&fu(s)?n[c]=ag(d,s):fu(s)?n[c]=ag({},s):To(s)?n[c]=s.slice():(!r||!Eo(s))&&(n[c]=s)};for(let s=0,l=e.length;s<l;s++){const c=e[s];if(!c||qa(c)||(Tl(c,o),typeof c!="object"||To(c)))continue;const d=Object.getOwnPropertySymbols(c);for(let h=0;h<d.length;h++){const m=d[h];KN.call(c,m)&&o(c[m],m)}}return n}const jN=(e,t,r,{allOwnKeys:n}={})=>(Tl(t,(o,s)=>{r&&fr(o)?Object.defineProperty(e,s,{__proto__:null,value:fC(o,r),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,s,{__proto__:null,value:o,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:n}),e),FN=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),IN=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),r&&Object.assign(e.prototype,r)},WN=(e,t,r,n)=>{let o,s,l;const c={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),s=o.length;s-- >0;)l=o[s],(!n||n(l,e,t))&&!c[l]&&(t[l]=e[l],c[l]=!0);e=r!==!1&&Ei(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},zN=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return n!==-1&&n===r},HN=e=>{if(!e)return null;if(To(e))return e;let t=e.length;if(!yC(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},qN=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ei(Uint8Array)),UN=(e,t)=>{const n=(e&&e[Al]).call(e);let o;for(;(o=n.next())&&!o.done;){const s=o.value;t.call(e,s[0],s[1])}},GN=(e,t)=>{let r;const n=[];for(;(r=e.exec(t))!==null;)n.push(r);return n},VN=jr("HTMLFormElement"),YN=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,o){return n.toUpperCase()+o}),{propertyIsEnumerable:KN}=Object.prototype,XN=jr("RegExp"),wC=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};Tl(r,(o,s)=>{let l;(l=t(o,s,e))!==!1&&(n[s]=l||o)}),Object.defineProperties(e,n)},$N=e=>{wC(e,(t,r)=>{if(fr(e)&&["arguments","caller","callee"].includes(r))return!1;const n=e[r];if(fr(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},QN=(e,t)=>{const r={},n=o=>{o.forEach(s=>{r[s]=!0})};return To(e)?n(e):n(String(e).split(t)),r},ZN=()=>{},JN=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function eB(e){return!!(e&&fr(e.append)&&e[hC]==="FormData"&&e[Al])}const tB=e=>{const t=new WeakSet,r=n=>{if(Ua(n)){if(t.has(n))return;if(qa(n))return n;if(!("toJSON"in n)){t.add(n);let o;if(TN(n)){o=[];for(const s of n){const l=r(s);!Eo(l)&&o.push(l)}}else o=To(n)?[]:{},Tl(n,(s,l)=>{const c=r(s);!Eo(c)&&(o[l]=c)});return t.delete(n),o}}return n};return r(e)},rB=jr("AsyncFunction"),nB=e=>e&&(Ua(e)||fr(e))&&fr(e.then)&&fr(e.catch),SC=((e,t)=>e?setImmediate:t?((r,n)=>(co.addEventListener("message",({source:o,data:s})=>{o===co&&s===r&&n.length&&n.shift()()},!1),o=>{n.push(o),co.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",fr(co.postMessage)),iB=typeof queueMicrotask<"u"?queueMicrotask.bind(co):typeof process<"u"&&process.nextTick||SC,kC=e=>e!=null&&fr(e[Al]),oB=e=>e!=null&&fl(e,Al)&&kC(e),ie={isArray:To,isArrayBuffer:gC,isBuffer:qa,isFormData:DN,isArrayBufferView:yN,isString:bN,isNumber:yC,isBoolean:vN,isObject:Ua,isPlainObject:fu,isEmptyObject:wN,isReadableStream:BN,isRequest:ON,isResponse:LN,isHeaders:MN,isUndefined:Eo,isDate:SN,isFile:kN,isReactNativeBlob:xN,isReactNative:CN,isBlob:RN,isRegExp:XN,isFunction:fr,isStream:EN,isURLSearchParams:NN,isTypedArray:qN,isFileList:AN,forEach:Tl,merge:ag,extend:jN,trim:PN,stripBOM:FN,inherits:IN,toFlatObject:WN,kindOf:ay,kindOfTest:jr,endsWith:zN,toArray:HN,forEachEntry:UN,matchAll:GN,isHTMLForm:VN,hasOwnProperty:dl,hasOwnProp:dl,hasOwnInPrototypeChain:fl,getSafeProp:mN,toSafeFlatObject:gN,reduceDescriptors:wC,freezeMethods:$N,toObjectSet:QN,toCamelCase:YN,noop:ZN,toFiniteNumber:JN,findKey:bC,global:co,isContextDefined:vC,isSpecCompliantForm:eB,toJSONObject:tB,isAsyncFn:rB,isThenable:nB,setImmediate:SC,asap:iB,isIterable:kC,isSafeIterable:oB},aB=ie.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),sB=e=>{const t={};let r,n,o;return e&&e.split(`
248`).forEach(function(l){o=l.indexOf(":"),r=l.substring(0,o).trim().toLowerCase(),n=l.substring(o+1).trim();const c=ie.hasOwnProp(t,r);!r||c&&ie.hasOwnProp(aB,r)||(r==="set-cookie"?c?t[r].push(n):t[r]=[n]:t[r]=c?t[r]+", "+n:n)}),t};function lB(e){let t=0,r=e.length;for(;t<r;){const n=e.charCodeAt(t);if(n!==9&&n!==32)break;t+=1}for(;r>t;){const n=e.charCodeAt(r-1);if(n!==9&&n!==32)break;r-=1}return t===0&&r===e.length?e:e.slice(t,r)}const cB=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),uB=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function sy(e,t){return ie.isArray(e)?e.map(r=>sy(r,t)):lB(String(e).replace(t,""))}const dB=e=>sy(e,cB),fB=e=>sy(e,uB);function xC(e){const t=Object.create(null);return ie.forEach(e.toJSON(),(r,n)=>{t[n]=fB(r)}),t}const zw=Symbol("internals");function Ps(e){return e&&String(e).trim().toLowerCase()}function hu(e){return e===!1||e==null?e:ie.isArray(e)?e.map(hu):dB(String(e))}function hB(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}const pB=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function Ch(e){let t=0,r=e.length;for(;t<r;){const n=e.charCodeAt(t);if(n!==9&&n!==32)break;t+=1}for(;r>t;){const n=e.charCodeAt(r-1);if(n!==9&&n!==32)break;r-=1}return t===0&&r===e.length?e:e.slice(t,r)}function mB(e){const t=e.length-1;if(t<1||e.charCodeAt(0)!==34||e.charCodeAt(t)!==34)return e;let r="";for(let n=1;n<t;n++){const o=e.charCodeAt(n);if(o===34||o===92&&(n+=1,n>=t))return e;r+=e[n]}return r}function gB(e){const t=Object.create(null),r=String(e);let n=0,o=!1,s=!1;function l(c){const d=Ch(r.slice(n,c)),h=d.indexOf("=");if(h<1)return;const m=Ch(d.slice(0,h));if(!pB.test(m))return;const f=m.toLowerCase();if(f==="__proto__"||f==="constructor"||f==="prototype")return;const p=Ch(d.slice(h+1));t[f]=mB(p)}for(let c=0;c<r.length;c++){const d=r.charCodeAt(c);o?s?s=!1:d===92?s=!0:d===34&&(o=!1):d===34?o=!0:(d===44||d===59)&&(l(c),n=c+1)}return l(r.length),t}const yB=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Rh(e,t,r,n,o){if(ie.isFunction(n))return n.call(this,t,r);if(o&&(t=r),!!ie.isString(t)){if(ie.isString(n))return t.indexOf(n)!==-1;if(ie.isRegExp(n))return n.test(t)}}function bB(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,r,n)=>r.toUpperCase()+n)}function vB(e,t){const r=ie.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+r,{__proto__:null,value:function(o,s,l){return this[n].call(this,t,o,s,l)},configurable:!0})})}let Xt=class{constructor(t){t&&this.set(t)}set(t,r,n){const o=this;function s(c,d,h){const m=Ps(d);if(!m)return;const f=ie.findKey(o,m);(!f||o[f]===void 0||h===!0||h===void 0&&o[f]!==!1)&&(o[f||d]=hu(c))}const l=(c,d)=>ie.forEach(c,(h,m)=>s(h,m,d));if(ie.isPlainObject(t)||t instanceof this.constructor)l(t,r);else if(ie.isString(t)&&(t=t.trim())&&!yB(t))l(sB(t),r);else if(ie.isObject(t)&&ie.isSafeIterable(t)){let c=Object.create(null),d,h;for(const m of t){if(!ie.isArray(m))throw new TypeError("Object iterator must return a key-value pair");h=m[0],ie.hasOwnProp(c,h)?(d=c[h],c[h]=ie.isArray(d)?[...d,m[1]]:[d,m[1]]):c[h]=m[1]}l(c,r)}else t!=null&&s(r,t,n);return this}get(t,r){if(t=Ps(t),t){const n=ie.findKey(this,t);if(n){const o=this[n];if(!r)return o;if(r===!0)return hB(o);if(ie.isFunction(r))return r.call(this,o,n);if(ie.isRegExp(r))return r.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,r){if(t=Ps(t),t){const n=ie.findKey(this,t);return!!(n&&this[n]!==void 0&&(!r||Rh(this,this[n],n,r)))}return!1}delete(t,r){const n=this;let o=!1;function s(l){if(l=Ps(l),l){const c=ie.findKey(n,l);c&&(!r||Rh(n,n[c],c,r))&&(delete n[c],o=!0)}}return ie.isArray(t)?t.forEach(s):s(t),o}clear(t){const r=Object.keys(this);let n=r.length,o=!1;for(;n--;){const s=r[n];(!t||Rh(this,this[s],s,t,!0))&&(delete this[s],o=!0)}return o}normalize(t){const r=this,n={};return ie.forEach(this,(o,s)=>{const l=ie.findKey(n,s);if(l){r[l]=hu(o),delete r[s];return}const c=t?bB(s):String(s).trim();c!==s&&delete r[s],r[c]=hu(o),n[c]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const r=Object.create(null);return ie.forEach(this,(n,o)=>{n!=null&&n!==!1&&(r[o]=t&&ie.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,r])=>t+": "+r).join(`
249`)}getSetCookie(){const t=this.get("set-cookie");return ie.isArray(t)?t:t==null||t===!1?[]:[t]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static parseParameters(t){return gB(t)}static concat(t,...r){const n=new this(t);return r.forEach(o=>n.set(o)),n}static accessor(t){const n=(this[zw]=this[zw]={accessors:{}}).accessors,o=this.prototype;function s(l){const c=Ps(l);n[c]||(vB(o,l),n[c]=!0)}return ie.isArray(t)?t.forEach(s):s(t),this}};Xt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);ie.reduceDescriptors(Xt.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(n){this[r]=n}}});ie.freezeMethods(Xt);const Bu="[REDACTED ****]";function wB(e){if(ie.hasOwnProp(e,"toJSON"))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(ie.hasOwnProp(t,"toJSON"))return!0;t=Object.getPrototypeOf(t)}return!1}function SB(e,t){const r=new Set(t.map(s=>String(s).toLowerCase())),n=[],o=s=>{if(s===null||typeof s!="object"||ie.isBuffer(s))return s;if(n.indexOf(s)!==-1)return;s instanceof Xt&&(s=s.toJSON()),n.push(s);let l;
vendor: 4,420 bytes, line 249
249if(ie.isArray(s))l=[],s.forEach((c,d)=>{const h=o(c);ie.isUndefined(h)||(l[d]=h)});else{if(!ie.isPlainObject(s)&&wB(s))return n.pop(),s;l=Object.create(null);for(const[c,d]of Object.entries(s)){const h=r.has(c.toLowerCase())?Bu:o(d);ie.isUndefined(h)||(l[c]=h)}}return n.pop(),l};return o(e)}function Hw(e){try{return String(e)}catch{return""}}function kB(e){return e.errors.map(r=>{try{return r&&r.message?Hw(r.message):Hw(r)}catch{return""}}).filter(Boolean).join("; ")||e.name||"AggregateError"}let Se=class CC extends Error{static from(t,r,n,o,s,l){let c=t.message;!c&&ie.isArray(t.errors)&&t.errors.length&&(c=kB(t));const d=new CC(c,r||t.code,n,o,s);return Object.defineProperty(d,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),d.name=t.name,t.status!=null&&d.status==null&&(d.status=t.status),l&&Object.assign(d,l),d}constructor(t,r,n,o,s){super(t),Object.defineProperty(this,"message",{__proto__:null,value:t,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,r&&(this.code=r),n&&(this.config=n),o&&(this.request=o),s&&(this.response=s,this.status=s.status)}toJSON(){const t=this.config,r=t&&ie.hasOwnProp(t,"redact")?t.redact:void 0,n=ie.isArray(r)&&r.length>0?SB(t,r):ie.toJSONObject(t);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};Se.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";Se.ERR_BAD_OPTION="ERR_BAD_OPTION";Se.ECONNABORTED="ECONNABORTED";Se.ETIMEDOUT="ETIMEDOUT";Se.ECONNREFUSED="ECONNREFUSED";Se.ERR_NETWORK="ERR_NETWORK";Se.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";Se.ERR_DEPRECATED="ERR_DEPRECATED";Se.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";Se.ERR_BAD_REQUEST="ERR_BAD_REQUEST";Se.ERR_CANCELED="ERR_CANCELED";Se.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";Se.ERR_INVALID_URL="ERR_INVALID_URL";Se.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const xB=null,RC=100;function sg(e){return ie.isPlainObject(e)||ie.isArray(e)}function AC(e){return ie.endsWith(e,"[]")?e.slice(0,-2):e}function Ah(e,t,r){return e?e.concat(t).map(function(o,s){return o=AC(o),!r&&s?"["+o+"]":o}).join(r?".":""):t}function CB(e){return ie.isArray(e)&&!e.some(sg)}const RB=ie.toFlatObject(ie,{},null,function(t){return/^is[A-Z]/.test(t)});function td(e,t,r){if(!ie.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const n=(S,C)=>{const k=ie.getSafeProp(r,S);return ie.isUndefined(k)?C:k},o=n("metaTokens",!0),s=n("visitor")||b,l=n("dots",!1),c=n("indexes",!1),d=n("Blob")||typeof Blob<"u"&&Blob,h=n("maxDepth",RC),m=d&&ie.isSpecCompliantForm(t),f=[];if(!ie.isFunction(s))throw new TypeError("visitor must be a function");function p(S){if(S===null)return"";if(ie.isDate(S))return S.toISOString();if(ie.isBoolean(S))return S.toString();if(!m&&ie.isBlob(S))throw new Se("Blob is not supported. Use a Buffer instead.");if(ie.isArrayBuffer(S)||ie.isTypedArray(S)){if(m&&typeof d=="function")return new d([S]);throw new Se("Blob is not supported. Use a Buffer instead.",Se.ERR_NOT_SUPPORT)}return S}function g(S){if(S>h)throw new Se("Object is too deeply nested ("+S+" levels). Max depth: "+h,Se.ERR_FORM_DATA_DEPTH_EXCEEDED)}function x(S,C){if(h===1/0)return JSON.stringify(S);const k=[];return JSON.stringify(S,function(N,D){if(!ie.isObject(D))return D;for(;k.length&&k[k.length-1]!==this;)k.pop();return k.push(D),g(C+k.length-1),D})}function b(S,C,k){let A=S;if(ie.isReactNative(t)&&ie.isReactNativeBlob(S))return t.append(Ah(k,C,l),p(S)),!1;if(S&&!k&&typeof S=="object"){if(ie.endsWith(C,"{}"))C=o?C:C.slice(0,-2),S=x(S,1);else if(ie.isArray(S)&&CB(S)||(ie.isFileList(S)||ie.endsWith(C,"[]"))&&(A=ie.toArray(S)))return C=AC(C),A.forEach(function(D,_){!(ie.isUndefined(D)||D===null)&&t.append(c===!0?Ah([C],_,l):c===null?C:C+"[]",p(D))}),!1}return sg(S)?!0:(t.append(Ah(k,C,l),p(S)),!1)}const w=Object.assign(RB,{defaultVisitor:b,convertValue:p,isVisitable:sg});function y(S,C,k=0){if(!ie.isUndefined(S)){if(g(k),f.indexOf(S)!==-1)throw new Error("Circular reference detected in "+C.join("."));f.push(S),ie.forEach(S,function(N,D){(!(ie.isUndefined(N)||N===null)&&s.call(t,N,ie.isString(D)?D.trim():D,C,w))===!0&&y(N,C?C.concat(D):[D],k+1)}),f.pop()}}if(!ie.isObject(e))throw new TypeError("data must be an object");return y(e),t}
249function qw(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(n){return t[n]})}function ly(e,t){this._pairs=[],e&&td(e,this,t)}const TC=ly.prototype;TC.append=function(t,r){this._pairs.push([t,r])};TC.toString=function(t){const r=t?n=>t.call(this,n,qw):qw;return this._pairs.map(function(o){return r(o[0])+"="+r(o[1])},"").join("&")};function AB(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function EC(e,t,r){if(!t)return e;e=e||"";const n=ie.isFunction(r)?{serialize:r}:r,o=ie.getSafeProp(n,"encode")||AB,s=ie.getSafeProp(n,"serialize");let l;if(s?l=s(t,n):l=ie.isURLSearchParams(t)?t.toString():new ly(t,n).toString(o),l){const c=e.indexOf("#");c!==-1&&(e=e.slice(0,c)),e+=(e.indexOf("?")===-1?"?":"&")+l}return e}const js=Symbol("internals");function _C(e){return e?e.length:0}function Uw(e){if(e)for(;e.length&&e[e.length-1]===null;)e.pop()}function Fs(e,t){const r=e.handlers,n=_C(r);r!==t.handlersRef?(t.handlersRef=r,t.handlerEntries.clear()):n!==t.handlersLength&&(n?t.handlerEntries.forEach(function(s,l){r[s.index]!==s.handler&&t.handlerEntries.delete(l)}):t.handlerEntries.clear()),t.handlersLength=n}class Gw{constructor(){this.handlers=[],this[js]={handlersRef:this.handlers,handlersLength:this.handlers.length,handlerEntries:new Map,iterationDepth:0,nextId:0}}use(t,r,n){const o={fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null},s=this[js];this.handlers==null&&(this.handlers=[]),Fs(this,s);const l=s.nextId++;return this.handlers.push(o),s.handlerEntries.set(l,{handler:o,index:this.handlers.length-1}),s.handlersLength=this.handlers.length,l}eject(t){const r=this[js];Fs(this,r);const n=r.handlerEntries.get(t);if(n){if(r.handlerEntries.delete(t),this.handlers[n.index]!==n.handler)return;this.handlers[n.index]=null,r.iterationDepth||(Uw(this.handlers),r.handlersLength=this.handlers.length)}}clear(){this.handlers&&(this.handlers=[],Fs(this,this[js]))}forEach(t){const r=this[js];Fs(this,r),r.iterationDepth++;try{ie.forEach(this.handlers,function(o){o!==null&&t(o)})}finally{--r.iterationDepth||(Fs(this,r),Uw(this.handlers),r.handlersLength=_C(this.handlers))}}}const cy={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},TB=typeof URLSearchParams<"u"?URLSearchParams:ly,EB=typeof FormData<"u"?FormData:null,_B=typeof Blob<"u"?Blob:null,DB={isBrowser:!0,classes:{URLSearchParams:TB,FormData:EB,Blob:_B},protocols:["http","https","file","blob","url","data"]},uy=typeof window<"u"&&typeof document<"u",lg=typeof navigator=="object"&&navigator||void 0,NB=uy&&(!lg||["ReactNative","NativeScript","NS"].indexOf(lg.product)<0),BB=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",OB=uy&&window.location.href||"http://localhost",LB=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:uy,hasStandardBrowserEnv:NB,hasStandardBrowserWebWorkerEnv:BB,navigator:lg,origin:OB},Symbol.toStringTag,{value:"Module"})),Lt={...LB,...DB};function MB(e,t){return td(e,new Lt.classes.URLSearchParams,{visitor:function(r,n,o,s){return Lt.isNode&&ie.isBuffer(r)?(this.append(n,r.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...t})}const Vw=RC;function DC(e){if(e>Vw)throw new Se("FormData field is too deeply nested ("+e+" levels). Max depth: "+Vw,Se.ER
vendor: 8,619 bytes, line 249
249R_FORM_DATA_DEPTH_EXCEEDED)}function PB(e){const t=[],r=/[^.[\]]+|\[([^.[\]]*)]/g;let n;for(;(n=r.exec(e))!==null;)DC(t.length),t.push(n[0]==="[]"?"":n[1]||n[0]);return t}function jB(e){const t={},r=Object.keys(e);let n;const o=r.length;let s;for(n=0;n<o;n++)s=r[n],t[s]=e[s];return t}function NC(e){function t(r,n,o,s){DC(s);let l=r[s++];if(l==="__proto__")return!0;const c=Number.isFinite(+l),d=s>=r.length;return l=!l&&ie.isArray(o)?o.length:l,d?(ie.hasOwnProp(o,l)?o[l]=ie.isArray(o[l])?o[l].concat(n):[o[l],n]:o[l]=n,!c):((!ie.hasOwnProp(o,l)||!ie.isObject(o[l]))&&(o[l]=[]),t(r,n,o[l],s)&&ie.isArray(o[l])&&(o[l]=jB(o[l])),!c)}if(ie.isFormData(e)&&ie.isFunction(e.entries)){const r={};return ie.forEachEntry(e,(n,o)=>{t(PB(n),o,r,0)}),r}return null}const BC=Object.freeze(["get","delete","head","options","post","put","patch","purge","link","unlink","query"]),la=(e,t)=>e!=null&&ie.hasOwnProp(e,t)?e[t]:void 0;function FB(e,t,r){if(ie.isString(e))try{return(t||JSON.parse)(e),ie.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}const El={transitional:cy,adapter:["xhr","http","fetch"],transformRequest:[function(t,r){const n=r.getContentType()||"",o=n.indexOf("application/json")>-1,s=ie.isObject(t);if(s&&ie.isHTMLForm(t)&&(t=new FormData(t)),ie.isFormData(t))return o?JSON.stringify(NC(t)):t;if(ie.isArrayBuffer(t)||ie.isBuffer(t)||ie.isStream(t)||ie.isFile(t)||ie.isBlob(t)||ie.isReadableStream(t))return t;if(ie.isArrayBufferView(t))return t.buffer;if(ie.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let c;if(s){const d=la(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return MB(t,d).toString();if((c=ie.isFileList(t))||n.indexOf("multipart/form-data")>-1){const h=la(this,"env"),m=h&&h.FormData;return td(c?{"files[]":t}:t,m&&new m,d)}}return s||o?(r.setContentType("application/json",!1),FB(t)):t}],transformResponse:[function(t){const r=la(this,"transitional")||El.transitional,n=r&&r.forcedJSONParsing,o=la(this,"responseType"),s=o==="json";if(ie.isResponse(t)||ie.isReadableStream(t))return t;if(t&&ie.isString(t)&&(n&&!o||s)){const c=!(r&&r.silentJSONParsing)&&s;try{return JSON.parse(t,la(this,"parseReviver"))}catch(d){if(c)throw d.name==="SyntaxError"?Se.from(d,Se.ERR_BAD_RESPONSE,this,null,la(this,"response")):d}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Lt.classes.FormData,Blob:Lt.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ie.forEach(BC,e=>{El.headers[e]={}});function Th(e,t){const r=this||El,n=t||r,o=Xt.from(n.headers);let s=n.data;return ie.forEach(e,function(c){s=c.call(r,s,o.normalize(),t?t.status:void 0)}),o.normalize(),s}function OC(e){return!!(e&&e.__CANCEL__)}let _l=class extends Se{constructor(t,r,n){super(t??"canceled",Se.ERR_CANCELED,r,n),this.name="CanceledError",this.__CANCEL__=!0}};function LC(e,t,r){const n=r.config.validateStatus;!r.status||!n||n(r.status)?e(r):t(new Se("Request failed with status code "+r.status,r.status>=400&&r.status<500?Se.ERR_BAD_REQUEST:Se.ERR_BAD_RESPONSE,r.config,r.request,r))}const IB=/[\t\n\r]/g;function MC(e){if(typeof e!="string")return e;let t=0;for(;t<e.length&&e.charCodeAt(t)<=32;)t++;return e.slice(t).replace(IB,"")}function Eh(e){const t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||""}function WB(e,t){e=e||10;const r=new Array(e),n=new Array(e);let o=0,s=0,l;return t=t!==void 0?t:1e3,function(d){const h=Date.now(),m=n[s];l||(l=h),r[o]=d,n[o]=h;let f=s,p=0;for(;f!==o;)p+=r[f++],f=f%e;if(o=(o+1)%e,o===s&&(s=(s+1)%e),h-l<t)return;const g=m&&h-m;return g?Math.round(p*1e3/g):void 0}}function zB(e,t){let r=0,n=1e3/t,o,s;const l=(m,f=Date.now())=>{r=f,o=null,s&&(clearTimeout(s),s=null),e(...m)};return[(...m)=>{const f=Date.now(),p=f-r;p>=n?l(m,f):(o=m,s||(s=setTimeout(()=>{s=null,l(o)},n-p)))},()=>o&&l(o),(...m)=>l(m)]}const Ou=(e,t,r=3)=>{let n=0;const o=WB(50,250);return zB(s=>{if(!s||!ie.isNumber(s.loaded))return;const l=s.loaded,c=s.lengthComputable?s.total:void 0,d=Math.max(0,c!=null?Math.min(l,c):l),h=Math.max(0,d-n),m=o(h);n=Math.max(n,d);const f={loaded:d,total:c,progress:c?d/c:void 0,bytes:h,rate:m||void 0,estimated:m&&c?(c-d)/m:void 0,event:s,lengthComputable:c!=null,[t?"download":"upload"]:!0};e(f)},r)},Yw=(e,t)=>{const r=e!=null;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},Kw=(e,t=ie.asap)=>(...r)=>t(()=>e(...r)),HB=Lt.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,Lt.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(Lt.origin),Lt.navigator&&/(msie|trident)/i.test(Lt.navigator.userAgent)):()=>!0,qB=Lt.hasStandardBrowserEnv?{write(e,t,r,n,o,s,l){if(typeof document>"u")return;const c=[`${e}=${encodeURIComponent(t)}`];ie.isNumber(r)&&c.push(`expires=${new Date(r).toUTCString()}`),ie.isString(n)&&c.push(`path=${n}`),ie.isString(o)&&c.push(`domain=${o}`),s===!0&&c.push("secure"),ie.isString(l)&&c.push(`SameSite=${l}`),document.cookie=c.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.split(";");for(let r=0;r<t.length;r++){const n=t[r].replace(/^\s+/,""),o=n.indexOf("=");if(o!==-1&&n.slice(0,o)===e)try{return decodeURIComponent(n.slice(o+1))}catch{return n.slice(o+1)}}return null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function UB(e){return typeof e!="string"?!1:/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function GB(e,t){if(!t)return e;let r=e.length;for(;r>0&&e.charCodeAt(r-1)===47;)r--;return e.slice(0,r)+"/"+t.replace(/^\/+/,"")}const VB=/^https?:(?!\/\/)/i;function YB(e){return e&&e.replace(/(^|&)([^=&]*=)?[^&]+/g,(t,r,n="")=>`${r}${n}${Bu}`)}function KB(e){const t=e.replace(/^(https?:\/{0,2})[^/?#]*@/i,`$1${Bu}@`),r=t.indexOf("#"),o=(r===-1?t:t.slice(0,r)).replace(/([?&][^=&#]*=)[^&#]*/g,`$1${Bu}`);return r===-1?o:`${o}#${YB(t.slice(r+1))}`}function Xw(e,t){if(typeof e=="string"){const r=MC(e);if(VB.test(r))throw new Se(`Invalid URL ${JSON.stringify(KB(r))}: missing "//" after protocol`,Se.ERR_INVALID_URL,t)}}function PC(e,t,r,n){Xw(t,n);let o=!UB(t);return e&&(o||r===!1)?(Xw(e,n),GB(e,t)):t}const $w=e=>e instanceof Xt?{...e}:e,XB=e=>Object.getOwnPropertySymbols&&Object.getOwnPropertyDescriptor?Object.keys(e).concat(Object.getOwnPropertySymbols(e).filter(t=>Object.getOwnPropertyDescriptor(e,t).enumerable)):Object.keys(e);function _o(e,t){e=e||{},t=t||{};const r=Object.create(null);Object.defineProperty(r,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function n(m,f,p,g){return ie.isPlainObject(m)&&ie.isPlainObject(f)?ie.merge.call({caseless:g},m,f):ie.isPlainObject(f)?ie.merge({},f):ie.isArray(f)?f.slice():f}function o(m,f,p,g){if(ie.isUndefined(f)){if(!ie.isUndefined(m))return n(void 0,m,p,g)}else return n(m,f,p,g)}function s(m,f){if(!ie.isUndefined(f))return n(void 0,f)}function l(m,f){if(ie.isUndefined(f)){if(!ie.isUndefined(m))return n(void 0,m)}else return n(void 0,f)}function c(m){const f=ie.hasOwnProp(t,"transitional")?t.transitional:void 0;if(!ie.isUndefined(f))if(ie.isPlainObject(f)){if(ie.hasOwnProp(f,m))return f[m]}else return;const p=ie.hasOwnProp(e,"transitional")?e.transitional:void 0;if(ie.isPlainObject(p)&&ie.hasOwnProp(p,m))return p[m]}function d(m,f,p){if(ie.hasOwnProp(t,p))return n(m,f);if(ie.hasOwnProp(e,p))return n(void 0,m)}const h={url:s,method:s,data:s,baseURL:l,transformRequest:l,transformResponse:l,paramsSerializer:l,timeout:l,timeoutErrorMessage:l,withCredentials:l,withXSRFToken:l,adapter:l,responseType:l,xsrfCookieName:l,xsrfHeaderName:l,onUploadProgress:l,onDownloadProgress:l,decompress:l,maxContentLength:l,maxBodyLength:l,beforeRedirect:l,transport:l,httpAgent:l,httpsAgent:l,cancelToken:l,socketPath:l,allowedSocketPaths:l,responseEncoding:l,validateStatus:d,headers:(m,f,p)=>o($w(m),$w(f),p,!0)};return ie.forEach(XB({...e,...t}),function(f){if(f==="__proto__"||f==="constructor"||f==="prototype")return;const p=ie.hasOwnProp(h,f)?h[f]:o,g=ie.hasOwnProp(e,f)?e[f]:void 0,x=ie.hasOwnProp(t,f)?t[f]:void 0,b=p(g,x,f);ie.isUndefined(b)&&p!==d||(r[f]=b)}),ie.hasOwnProp(t,"validateStatus")&&ie.isUndefined(t.validateStatus)&&c("validateStatusUndefinedResolves")===!1&&(ie.hasOwnProp(e,"validateStatus")?r.validateStatus=n(void 0,e.validateStatus):delete r.validateStatus),r}const $B=["content-type","content-length"];function QB(e,t,r){if(r!=="content-only"){e.set(t);return}Object.entries(t||{}
249).forEach(([n,o])=>{$B.includes(n.toLowerCase())&&e.set(n,o)})}const ZB=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(t,r)=>String.fromCharCode(parseInt(r,16)));function jC(e){const t=_o({},e),r=p=>ie.hasOwnProp(t,p)?t[p]:void 0,n=r("data");let o=r("withXSRFToken");const s=r("xsrfHeaderName"),l=r("xsrfCookieName");let c=r("headers");const d=r("auth"),h=r("baseURL"),m=r("allowAbsoluteUrls"),f=r("url");if(t.headers=c=Xt.from(c),t.url=EC(PC(h,f,m,t),r("params"),r("paramsSerializer")),d){const p=ie.getSafeProp(d,"username")||"",g=ie.getSafeProp(d,"password")||"";try{c.set("Authorization","Basic "+btoa(p+":"+(g?ZB(g):"")))}catch(x){throw Se.from(x,Se.ERR_BAD_OPTION_VALUE,e)}}if(ie.isFormData(n)){const p=ie.getSafeProp(n,"getHeaders");Lt.hasStandardBrowserEnv||Lt.hasStandardBrowserWebWorkerEnv||ie.isReactNative(n)?c.setContentType(void 0):ie.isFunction(p)&&QB(c,p.call(n),r("formDataHeaderPolicy"))}if(Lt.hasStandardBrowserEnv&&(ie.isFunction(o)&&(o=o(t)),o===!0||o==null&&HB(t.url))){const g=s&&l&&qB.read(l);g&&c.set(s,g)}return t}const JB=typeof XMLHttpRequest<"u",eO=JB&&function(e){return new Promise(function(r,n){const o=jC(e);let s=o.data;const l=Xt.from(o.headers).normalize();let{responseType:c,onUploadProgress:d,onDownloadProgress:h}=o,m,f,p,g,x,b;function w(){g&&g(),x&&x(),o.cancelToken&&o.cancelToken.unsubscribe(m),o.signal&&o.signal.removeEventListener("abort",m)}let y=new XMLHttpRequest;y.open(o.method.toUpperCase(),o.url,!0),y.timeout=o.timeout;function S(k){if(!y)return;if(y.status===0&&(Eh(MC(o.url))||Eh(Lt.origin))!=="file"&&!(y.responseURL&&y.responseURL.startsWith("file:"))){n(new Se("Request aborted",Se.ECONNABORTED,e,y)),w(),y=null;return}try{k?b&&b(k):x&&x()}catch(_){setTimeout(()=>{throw _})}if(!y)return;const A=Xt.from("getAllResponseHeaders"in y&&y.getAllResponseHeaders()),D={data:!c||c==="text"||c==="json"?y.responseText:y.response,status:y.status,statusText:y.statusText,headers:A,config:e,request:y};LC(function(F){r(F),w()},function(F){n(F),w()},D),y=null}"onloadend"in y?y.onloadend=S:y.onreadystatechange=function(){!y||y.readyState!==4||y.status===0&&!(y.responseURL&&y.responseURL.startsWith("file:"))||setTimeout(S)},y.onabort=function(){y&&(n(new Se("Request aborted",Se.ECONNABORTED,e,y)),w(),y=null)},y.onerror=function(A){const N=A&&A.message?A.message:"Network Error",D=new Se(N,Se.ERR_NETWORK,e,y);D.event=A||null,n(D),w(),y=null},y.ontimeout=function(){let A=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const N=o.transitional||cy;o.timeoutErrorMessage&&(A=o.timeoutErrorMessage),n(new Se(A,N.clarifyTimeoutError?Se.ETIMEDOUT:Se.ECONNABORTED,e,y)),w(),y=null},s===void 0&&l.setContentType(null),"setRequestHeader"in y&&ie.forEach(xC(l),function(A,N){y.setRequestHeader(N,A)}),ie.isUndefined(o.withCredentials)||(y.withCredentials=!!o.withCredentials),c&&c!=="json"&&(y.responseType=o.responseType),h&&([p,x,b]=Ou(h,!0),y.addEventListener("progress",p)),d&&y.upload&&([f,g]=Ou(d),y.upload.addEventListener("progress",f),y.upload.addEventListener("loadend",g)),(o.cancelToken||o.signal)&&(m=k=>{y&&(n(!k||k.type?new _l(null,e,y):k),y.abort(),w(),y=null)},o.cancelToken&&o.cancelToken.subscribe(m),o.signal&&(o.signal.aborted?m():o.signal.addEventListener("abort",m)));const C=Eh(o.url);if(C&&!Lt.protocols.includes(C)){n(new Se("Unsupported protocol "+C+":",Se.ERR_BAD_REQUEST,e)),w();return}y.send(s||null)})},tO=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;const r=new AbortController;let n=!1;const o=function(d){if(!n){n=!0,l();const h=d instanceof Error?d:this.reason;r.abort(h instanceof Se?h:new _l(h instanceof Error?h.message:h))}};let s=t&&setTimeout(()=>{s=null,o(new Se(`timeout of ${t}ms exceeded`,Se.ETIMEDOUT))},t);const l=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach(d=>{d.unsubscribe?d.unsubscribe(o):d.removeEventListener("abort",o)}),e=null)};e.forEach(d=>{if(!n){if(d.aborted){o.call(d);return}d.addEventListener("abort",o,{once:!0})}});const{signal:c}=r;return c.unsubscribe=()=>ie.asap(l),c},rO=function*(e,t){let r=e.byteLength;if(r<t){yield e;return}let n=0,o;for(;n<r;)o=n+t,yield e.slice(n,o),n=o},nO=async function*(e,t){for await(const r of iO(e))yield*rO(r,t)},iO=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:r,value:n}=await t.read();if(r)break;yield n}}finally{await t.cancel()}},Qw=(e,t,r,n)=>{const o=nO(e,t);let s=0,l,c=d=>{l||(l=!0,n&&n(d))};return new ReadableStream({async pull(d){try{const{done:h,value:m}=await o.next();if(h){c(),d.close();return}let f=m.byteLength;if(r){let p=s+=f;r(p)}d.enqueue(new Uint8Array(m))}catch(h){throw c(h),h}},cancel(d){return c(d),o.return()}},{highWaterMark:2})},Zw=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,FC=(e,t,r)=>t+2<r&&Zw(e.charCodeAt(t+1))&&Zw(e.charCodeAt(t+2)),Jw=e=>e<=57?e-48:(e&223)-55,oO=e=>e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===47||e===45||e===95,aO=e=>e===9||e===10||e===12||e===13||e===32,sO=e=>{const t=Math.floor(e/4),r=e%4;return t*3+(r===2?1:r===3?2:0)},lO=e=>{const t=e.length;let r=0;return t>0&&e.charCodeAt(t-1)===61&&(r++,t>1&&e.charCodeAt(t-2)===61&&r++),Math.floor((t-r)*3/4)},cO=e=>{const t=e.length;let r=0,n=0,o=!1;for(let s=0;s<t;s++){let l=e.charCodeAt(s);if(l===37&&FC(e,s,t)&&(l=Jw(e.charCodeAt(s+1))*16+Jw(e.charCodeAt(s+2)),s+=2),!aO(l)){if(l===61){n++;continue}if(!oO(l)||n>0){o=!0;continue}r++}}return o||n>2||n>0&&(r+n)%4!==0||r%4===1?lO(e):sO(r)},uO=(e,t)=>{if(!e||typeof e!="string"||!e.startsWith("data:"))return 0;const r=e.indexOf(",");if(r<0)return 0;const n=e.slice(5,r),o=e.slice(r+1);if(/;base64/i.test(n))return t(o);let l=0;for(let c=0,d=o.length;c<d;
vendor: 1,877 bytes, line 249
249c++){const h=o.charCodeAt(c);if(h===37&&FC(o,c,d))l+=1,c+=2;else if(h<128)l+=1;else if(h<2048)l+=2;else if(h>=55296&&h<=56319&&c+1<d){const m=o.charCodeAt(c+1);m>=56320&&m<=57343?(l+=4,c++):l+=3}else l+=3}return l};function dO(e){const t=typeof e=="string"?e.indexOf("#"):-1;return uO(t===-1?e:e.slice(0,t),cO)}const dy="1.20.0",e1=64*1024,fO={cache:"default",redirect:"follow",referrer:"about:client",referrerPolicy:"",mode:"cors",integrity:"",keepalive:!1,priority:"auto",window:null},{isFunction:$c}=ie,hO=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(t,r)=>String.fromCharCode(parseInt(r,16))),t1=e=>{if(!ie.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},r1=(e,...t)=>{try{return!!e(...t)}catch{return!1}},pO=e=>{const t=e.indexOf("://");let r=e;return t!==-1&&(r=r.slice(t+3)),r.includes("@")||r.includes(":")},mO=e=>{const t=ie.global!==void 0&&ie.global!==null?ie.global:globalThis,{ReadableStream:r,TextEncoder:n}=t;e=ie.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);const{fetch:o,Request:s,Response:l}=e,c=o?$c(o):typeof fetch=="function",d=$c(s),h=$c(l);if(!c)return!1;const m=c&&$c(r),f=c&&(typeof n=="function"?(y=>S=>y.encode(S))(new n):async y=>new Uint8Array(await new s(y).arrayBuffer())),p=d&&m&&r1(()=>{let y=!1;const S=new s(Lt.origin,{body:new r,method:"POST",get duplex(){return y=!0,"half"}}),C=S.headers.has("Content-Type");return S.body!=null&&S.body.cancel(),y&&!C}),g=h&&m&&r1(()=>ie.isReadableStream(new l("").body)),x={stream:g&&(y=>y.body)};c&&["text","arrayBuffer","blob","formData","stream"].forEach(y=>{!x[y]&&(x[y]=(S,C)=>{let k=S&&S[y];if(k)return k.call(S);throw new Se(`Response type '${y}' is not supported`,Se.ERR_NOT_SUPPORT,C)})});const b=async y=>{if(y==null)return 0;if(ie.isBlob(y))return y.size;if(ie.isSpecCompliantForm(y))return(await new s(Lt.origin,{method:"POST",body:y}
vendor: 8,716 bytes, lines 249-255
249).arrayBuffer()).byteLength;if(ie.isArrayBufferView(y)||ie.isArrayBuffer(y))return y.byteLength;if(ie.isURLSearchParams(y)&&(y=y+""),ie.isString(y))return(await f(y)).byteLength},w=async(y,S)=>{const C=ie.toFiniteNumber(y.getContentLength());return C??b(S)};return async y=>{let{url:S,method:C,data:k,signal:A,cancelToken:N,timeout:D,onDownloadProgress:_,onUploadProgress:F,responseType:M,headers:O,withCredentials:j="same-origin",fetchOptions:I,maxContentLength:L,maxBodyLength:H,maxRedirects:G}=jC(y);const X=ie.isNumber(L)&&L>-1,Q=ie.isNumber(H)&&H>-1,K=V=>ie.hasOwnProp(y,V)?y[V]:void 0;let q=o||fetch;M=M?(M+"").toLowerCase():"text";let B=tO([A,N&&N.toAbortSignal()],D),W=null;const Y=B&&B.unsubscribe&&(()=>{B.unsubscribe()});let ee,Z=null;const U=()=>new Se("Request body larger than maxBodyLength limit",Se.ERR_BAD_REQUEST,y,W);try{let V;const te=K("auth");if(te){const ae=ie.getSafeProp(te,"username")||"",de=ie.getSafeProp(te,"password")||"";V={username:ae,password:de}}if(pO(S)){const ae=new URL(S,Lt.origin);if(!V&&(ae.username||ae.password)){const de=t1(ae.username),be=t1(ae.password);V={username:de,password:be}}(ae.username||ae.password)&&(ae.username="",ae.password="",S=ae.href)}if(V&&(O.delete("authorization"),O.set("Authorization","Basic "+btoa(hO((V.username||"")+":"+(V.password||""))))),X&&typeof S=="string"&&S.startsWith("data:")&&dO(S)>L)throw new Se("maxContentLength size of "+L+" exceeded",Se.ERR_BAD_RESPONSE,y,W);if(Q&&C!=="get"&&C!=="head"){const ae=await b(k);if(typeof ae=="number"&&isFinite(ae)&&(ee=ae,ae>H))throw U()}const ne=Q&&(ie.isReadableStream(k)||ie.isStream(k)),ce=(ae,de,be)=>Qw(ae,e1,we=>{if(Q&&we>H)throw Z=U();de&&de(we)},be);if(p&&C!=="get"&&C!=="head"&&(F||ne)){if(ee=ee??await w(O,k),ee!==0||ne){let ae=new s(S,{method:"POST",body:k,duplex:"half"}),de;if(ie.isFormData(k)&&(de=ae.headers.get("content-type"))&&O.setContentType(de),ae.body){const[be,we]=F&&Yw(ee,Ou(Kw(F)))||[];k=ce(ae.body,be,we)}}}else if(ne&&!d&&m&&C!=="get"&&C!=="head")k=ce(k);else if(ne&&d&&!p&&C!=="get"&&C!=="head")throw new Se("Stream request bodies are not supported by the current fetch implementation",Se.ERR_NOT_SUPPORT,y,W);ie.isString(j)||(j=j?"include":"omit");const fe=d&&"credentials"in s.prototype;if(ie.isFormData(k)){const ae=O.getContentType();ae&&/^multipart\/form-data/i.test(ae)&&!/boundary=/i.test(ae)&&O.delete("content-type")}O.set("User-Agent","axios/"+dy,!1);const ye=I==null?I:Object.assign(Object.create(null),I);ye&&(delete ye.body,delete ye.headers,delete ye.method,delete ye.signal,delete ye.duplex,delete ye.credentials);const ke=Object.assign(Object.create(null),ye,{signal:B,method:C.toUpperCase(),headers:xC(O.normalize()),body:k,duplex:"half",credentials:fe?j:void 0});d&&(ie.forEach(fO,(ae,de)=>{ke[de]===void 0&&(ke[de]=ae)}),ke.signal===void 0&&(ke.signal=null),ke.body===void 0&&(ke.body=null)),G===0&&(ke.redirect="manual",ye&&(ye.redirect="manual")),W=d&&new s(S,ke);let Ae=await(d?q(W,ye):q(S,ke));const Ie=Xt.from(Ae.headers);if(X){const ae=ie.toFiniteNumber(Ie.getContentLength());if(ae!=null&&ae>L)throw new Se("maxContentLength size of "+L+" exceeded",Se.ERR_BAD_RESPONSE,y,W)}const et=g&&(M==="stream"||M==="response");if(g&&Ae.body&&(_||X||et&&Y)){const ae={};["status","statusText","headers"].forEach(Pe=>{ae[Pe]=Ae[Pe]});const de=ie.toFiniteNumber(Ie.getContentLength()),[be,we]=_&&Yw(de,Ou(Kw(_),!0))||[];let he=0;const Fe=Pe=>{if(X&&(he=Pe,he>L))throw new Se("maxContentLength size of "+L+" exceeded",Se.ERR_BAD_RESPONSE,y,W);be&&be(Pe)};Ae=new l(Qw(Ae.body,e1,Fe,()=>{we&&we(),Y&&Y()}),ae)}M=M||"text";let He=await x[ie.findKey(x,M)||"text"](Ae,y);if(X&&!g&&!et){let ae;if(He!=null&&(typeof He.byteLength=="number"?ae=He.byteLength:typeof He.size=="number"?ae=He.size:typeof He=="string"&&(ae=typeof n=="function"?new n().encode(He).byteLength:He.length)),typeof ae=="number"&&ae>L)throw new Se("maxContentLength size of "+L+" exceeded",Se.ERR_BAD_RESPONSE,y,W)}return!et&&Y&&Y(),await new Promise((ae,de)=>{LC(ae,de,{data:He,headers:Xt.from(Ae.headers),status:Ae.status,statusText:Ae.statusText,config:y,request:W})})}catch(V){if(Y&&Y(),B&&B.aborted&&B.reason instanceof Se){const te=B.reason;throw te.config=y,W&&(te.request=W),V!==te&&Object.defineProperty(te,"cause",{__proto__:null,value:V,writable:!0,enumerable:!1,configurable:!0}),te}if(Z)throw W&&!Z.request&&(Z.request=W),Z;if(V instanceof Se)throw W&&!V.request&&(V.request=W),V;if(V&&V.name==="TypeError"&&/Load failed|fetch/i.test(V.message)){const te=new Se("Network Error",Se.ERR_NETWORK,y,W,V&&V.response);throw Object.defineProperty(te,"cause",{__proto__:null,value:V.cause||V,writable:!0,enumerable:!1,configurable:!0}),te}throw Se.from(V,V&&V.code,y,W,V&&V.response)}}},gO=new Map,IC=e=>{let t=e&&e.env||{};const{fetch:r,Request:n,Response:o}=t,s=[n,o,r];let l=s.length,c=l,d,h,m=gO;for(;c--;)d=s[c],h=m.get(d),h===void 0&&m.set(d,h=c?new Map:mO(t)),m=h;return h};IC();const fy={http:xB,xhr:eO,fetch:{get:IC}};ie.forEach(fy,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});const n1=e=>`- ${e}`,yO=e=>ie.isFunction(e)||e===null||e===!1;function bO(e,t){e=ie.isArray(e)?e:[e];const{length:r}=e;let n,o;const s={};for(let l=0;l<r;l++){n=e[l];let c;if(o=n,!yO(n)&&(o=fy[(c=String(n)).toLowerCase()],o===void 0))throw new Se(`Unknown adapter '${c}'`);if(o&&(ie.isFunction(o)||(o=o.get(t))))break;s[c||"#"+l]=o}if(!o){const l=Object.entries(s).map(([d,h])=>`adapter ${d} `+(h===!1?"is not supported by the environment":"is not available in the build"));let c=r?l.length>1?`since :
250`+l.map(n1).join(`
251`):" "+n1(l[0]):"as no adapter specified";throw new Se("There is no suitable adapter to dispatch the request "+c,Se.ERR_NOT_SUPPORT)}return o}const WC={getAdapter:bO,adapters:fy};function _h(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new _l(null,e)}function Dh(e){const t=ie.toSafeFlatObject(e);return _h(t),t.headers=Xt.from(ie.getSafeProp(t,"headers")),t.data=Th.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),WC.getAdapter(t.adapter||El.adapter,t)(t).then(function(o){_h(t),t.response=o;try{o.data=Th.call(t,t.transformResponse,o)}finally{delete t.response}return o.headers=Xt.from(o.headers),o},function(o){if(!OC(o)&&(_h(t),o&&o.response)){t.response=o.response;try{o.response.data=Th.call(t,t.transformResponse,o.response)}finally{delete t.response}o.response.headers=Xt.from(o.response.headers)}return Promise.reject(o)})}const rd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{rd[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const i1={};rd.transitional=function(t,r,n){function o(s,l){return"[Axios v"+dy+"] Transitional option '"+s+"'"+l+(n?". "+n:"")}return(s,l,c)=>{if(t===!1)throw new Se(o(l," has been removed"+(r?" in "+r:"")),Se.ERR_DEPRECATED);return r&&!i1[l]&&(i1[l]=!0,console.warn(o(l," has been deprecated since v"+r+" and will be removed in the near future"))),t?t(s,l,c):!0}};rd.spelling=function(t){return(r,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};function vO(e,t,r){if(typeof e!="object"||e===null)throw new Se("options must be an object",Se.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let o=n.length;for(;o-- >0;){const s=n[o],l=Object.prototype.hasOwnProperty.call(t,s)?t[s]:void 0;if(l){const c=e[s],d=c===void 0||l(c,s,e);if(d!==!0)throw new Se("option "+s+" must be "+d,Se.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new Se("Unknown option "+s,Se.ERR_BAD_OPTION)}}const pu={assertOptions:vO,validators:rd},Gt=pu.validators;let ko=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Gw,response:new Gw}}async request(t,r){try{return await this._request(t,r)}catch(n){if(n instanceof Error)try{let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const s=o.stack;let l="";if(typeof s=="string"){const c=s.indexOf(`
252`);l=c===-1?"":s.slice(c+1)}if(!n.stack)n.stack=l;else if(l){const c=l.indexOf(`
253`),d=c===-1?-1:l.indexOf(`
254`,c+1),h=d===-1?"":l.slice(d+1);String(n.stack).endsWith(h)||(n.stack+=`
255`+l)}}catch{}throw n}}_request(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=_o(this.defaults,r);const{transitional:n,paramsSerializer:o,headers:s}=r;n!==void 0&&pu.assertOptions(n,{silentJSONParsing:Gt.transitional(Gt.boolean),forcedJSONParsing:Gt.transitional(Gt.boolean),clarifyTimeoutError:Gt.transitional(Gt.boolean),legacyInterceptorReqResOrdering:Gt.transitional(Gt.boolean),advertiseZstdAcceptEncoding:Gt.transitional(Gt.boolean),validateStatusUndefinedResolves:Gt.transitional(Gt.boolean)}
vendor: 3,312 bytes, line 255
255,!1),o!=null&&(ie.isFunction(o)?r.paramsSerializer={serialize:o}:pu.assertOptions(o,{encode:Gt.function,serialize:Gt.function},!0)),r.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?r.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:r.allowAbsoluteUrls=!0),pu.assertOptions(r,{baseUrl:Gt.spelling("baseURL"),withXsrfToken:Gt.spelling("withXSRFToken")},!0),r.method=(ie.getSafeProp(r,"method")||ie.getSafeProp(this.defaults,"method")||"get").toLowerCase();let l=s&&ie.merge(s.common,s[r.method]);s&&ie.forEach(BC.concat("common"),x=>{delete s[x]}),r.headers=Xt.concat(l,s);const c=[];let d=!0;this.interceptors.request.forEach(function(b){if(typeof b.runWhen=="function"&&b.runWhen(r)===!1)return;d=d&&b.synchronous;const w=r.transitional||cy;w&&w.legacyInterceptorReqResOrdering?c.unshift(b.fulfilled,b.rejected):c.push(b.fulfilled,b.rejected)});const h=[];this.interceptors.response.forEach(function(b){h.push(b.fulfilled,b.rejected)});let m,f=0,p;if(!d){const x=[Dh.bind(this),void 0];for(x.unshift(...c),x.push(...h),p=x.length,m=Promise.resolve(r);f<p;)m=m.then(x[f++],x[f++]);return m}p=c.length;let g=r;for(;f<p;){const x=c[f++],b=c[f++];try{g=x?x(g):g}catch(w){if(!b){m=Promise.reject(w);break}try{const y=b.call(this,w);ie.isThenable(y)&&(m=Promise.resolve(y).then(()=>Dh.call(this,g)))}catch(y){m=Promise.reject(y)}break}}if(!m)try{m=Dh.call(this,g)}catch(x){m=Promise.reject(x)}for(f=0,p=h.length;f<p;)m=m.then(h[f++],h[f++]);return m}getUri(t){t=_o(this.defaults,t);const r=PC(t.baseURL,t.url,t.allowAbsoluteUrls,t);return EC(r,t.params,t.paramsSerializer)}};ie.forEach(["delete","get","head","options"],function(t){ko.prototype[t]=function(r,n){return this.request(_o(n||{},{method:t,url:r,data:n&&ie.hasOwnProp(n,"data")?n.data:void 0}))}});ie.forEach(["post","put","patch","query"],function(t){function r(n){return function(s,l,c){return this.request(_o(c||{},{method:t,headers:n?{"Content-Type":"multipart/form-data"}:{},url:s,data:l}))}}ko.prototype[t]=r(),t!=="query"&&(ko.prototype[t+"Form"]=r(!0))});let wO=class zC{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let r;this.promise=new Promise(function(s){r=s});const n=this;this.promise.then(o=>{if(!n._listeners)return;let s=n._listeners.length;for(;s-- >0;)n._listeners[s](o);n._listeners=null}),this.promise.then=o=>{let s;const l=new Promise(c=>{n.subscribe(c),s=c}).then(o);return l.cancel=function(){n.unsubscribe(s)},l},t(function(s,l,c){n.reason||(n.reason=new _l(s,l,c),r(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){const t=new AbortController,r=n=>{t.abort(n)};return this.subscribe(r),t.signal.unsubscribe=()=>this.unsubscribe(r),t.signal}static source(){let t;return{token:new zC(function(o){t=o}),cancel:t}}};function SO(e){return function(r){return e.apply(null,r)}}function kO(e){return ie.isObject(e)&&e.isAxiosError===!0}const mu={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,Parti
255alContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,ContentTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,UnprocessableContent:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerReturnsAnUnknownError:520,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(mu).forEach(([e,t])=>{mu[t]===void 0&&(mu[t]=e)});function HC(e){const t=new ko(e),r=fC(ko.prototype.request,t);return ie.extend(r,ko.prototype,t,{allOwnKeys:!0}),ie.extend(r,t,null,{allOwnKeys:!0}),r.create=function(o){return HC(_o(e,o))},r}const wt=HC(El);wt.Axios=ko;wt.CanceledError=_l;wt.CancelToken=wO;wt.isCancel=OC;wt.VERSION=dy;wt.toFormData=td;wt.AxiosError=Se;wt.Cancel=wt.CanceledError;wt.all=function(t){return Promise.all(t)};wt.spread=SO;wt.isAxiosError=kO;wt.mergeConfig=_o;wt.AxiosHeaders=Xt;wt.formToJSON=e=>NC(ie.isHTMLForm(e)?new FormData(e):e);wt.getAdapter=WC.getAdapter;wt.HttpStatusCode=mu;wt.default=wt;const{Axios:PH,AxiosError:jH,CanceledError:FH,isCancel:IH,CancelToken:WH,VERSION:zH,all:HH,Cancel:qH,isAxiosError:UH,spread:GH,toFormData:VH,AxiosHeaders:YH,HttpStatusCode:KH,formToJSON:XH,getAdapter:$H,mergeConfig:QH,create:ZH}=wt,qC=typeof window>"u",o1=!qC&&window.self!==window.top,xO=!qC&&typeof document>"u",UC=()=>Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),Ft=[];for(let e=0;e<256;++e)Ft.push((e+256).toString(16).slice(1));function CO(e,t=0){return(Ft[e[t+0]]+Ft[e[t+1]]+Ft[e[t+2]]+Ft[e[t+3]]+"-"+Ft[e[t+4]]+Ft[e[t+5]]+"-"+Ft[e[t+6]]+Ft[e[t+7]]+"-"+Ft[e[t+8]]+Ft[e[t+9]]+"-"+Ft[e[t+10]]+Ft[e[t+11]]+Ft[e[t+12]]+Ft[e[t+13]]+Ft[e[t+14]]+Ft[e[t+15]]).toLowerCase()}let Nh;const RO=new Uint8Array(16);function AO(){if(!Nh){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Nh=crypto.getRandomValues.bind(crypto)}return Nh(RO)}const TO=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),a1={randomUUID:TO};function EO(e,t,r){var o;e=e||{};const n=e.random??((o=e.rng)==null?void 0:o.call(e))??AO();if(n.length<16)throw new Error("Random bytes length must be >= 16");return n[6]=n[6]&15|64,n[8]=n[8]&63|128,CO(n)}function _O(e,t,r){return a1.randomUUID&&!e?a1.randomUUID():EO(e)}const Is=typeof window<"u"?window:{base44SharedInstances:{}};function DO(e,t){return Is.base44SharedInstances||(Is.base44SharedInstances={}),Is.base44SharedInstances[e]||(Is.base44SharedInstances[e]={instance:t()}),Is.base44SharedInstances[e].instance}const NO="__user_heartbeat_event__",BO="__initialization_event__",OO="__session_duration_event__",s1="analytics-enable",l1="base44_analytics_session_id",LO={enabled:!0,maxQueueSize:1e3,throttleTime:1e3,batchSize:30,heartBeatInterval:60*1e3},MO="analytics",$e=DO(MO,()=>({requestsQueue:[],isProcessing:!1,isHeartBeatProcessing:!1,wasInitializationTracked:!1,sessionContext:null,sessionStartTime:null,fallbackSessionId:null,config:{...LO,...qO()}})),PO=({axiosClient:e,serverUrl:t,appId:r,userAuthModule:n,enabled:o})=>{var s;const{maxQueueSize:l,throttleTime:c,batchSize:d}=$e.config;if(!o||!(!((s=$e.config)===null||s===void 0)&&s.enabled)||xO)return{track:()=>{},cleanup:()=>{}};let h;const m=`${t}/api/apps/${r}/analytics/track/batch`,f=async k=>{await e.request({method:"POST",url:`/apps/${r}/analytics/track/batch`,data:{events:k}})},p=k=>{try{const A=JSON.stringify({events:k}),N=new Blob([A],{type:"application/json"});return typeof navigator>"u"||A.length>6e4||!navigator.sendBeacon(m,N)}catch{return!1}},g=async(k,A={})=>
255{if(k.length===0)return;const N=await HO(n),D=k.map(zO(N));try{(!A.isBeacon||!p(D))&&await f(D)}catch{}},x=()=>{u1(g,{throttleTime:c,batchSize:d})},b=k=>{if($e.requestsQueue.length>=l)return;const A=WO();$e.requestsQueue.push({...k,...A}),x()},w=()=>{u1(g,{throttleTime:c,batchSize:d}),h=d1(b),FO()},y=()=>{c1(),h==null||h(),IO(b);const k=$e.requestsQueue.splice(0);g(k,{isBeacon:!0})},S=()=>{typeof window>"u"||(document.visibilityState==="hidden"?y():document.visibilityState==="visible"&&w())},C=()=>{c1(),h==null||h(),typeof window<"u"&&window.removeEventListener("visibilitychange",S)};return x(),h=d1(b),jO(b),typeof window<"u"&&window.addEventListener("visibilitychange",S),{track:b,cleanup:C}};function c1(){$e.isProcessing=!1}async function u1(e,t){if($e.isProcessing)return;$e.isProcessing=!0;const{throttleTime:r=1e3,batchSize:n=30}=t??{};for(;$e.isProcessing&&$e.requestsQueue.length>0;){const o=$e.requestsQueue.splice(0,n);o.length&&await e(o),await new Promise(s=>setTimeout(s,r))}$e.isProcessing=!1}function d1(e){var t;if(typeof window>"u"||$e.isHeartBeatProcessing||((t=$e.config.heartBeatInterval)!==null&&t!==void 0?t:0)<10)return()=>{};$e.isHeartBeatProcessing=!0;const r=setInterval(()=>{e({eventName:NO})},$e.config.heartBeatInterval);return()=>{clearInterval(r),$e.isHeartBeatProcessing=!1}}function jO(e){typeof window>"u"||$e.wasInitializationTracked||($e.wasInitializationTracked=!0,e({eventName:BO,properties:{referrer:document==null?void 0:document.referrer}}))}function FO(){typeof window>"u"||$e.sessionStartTime!==null||($e.sessionStartTime=new Date().toISOString())}function IO(e){if(typeof window>"u"||$e.sessionStartTime===null)return;const t=new Date().getTime()-new Date($e.sessionStartTime).getTime();$e.sessionStartTime=null,e({eventName:OO,properties:{sessionDuration:t}})}function WO(){var e,t;return{timestamp:new Date().toISOString(),pageUrl:typeof window<"u"&&(t=(e=window.location)===null||e===void 0?void 0:e.pathname)!==null&&t!==void 0?t:null}}function zO(e){return t=>({event_name:t.eventName,properties:t.properties,timestamp:t.timestamp,page_url:t.pageUrl,...e})}let Gs=null;function f1(){$e.sessionContext=null,Gs=null}async function HO(e){if(!$e.sessionContext){if(!e.hasToken())return{user_id:null,session_id:Lu()};if(!Gs){const n=Lu();Gs=e.me().then(o=>({user_id:o.id,session_id:n})).catch(()=>({user_id:null,session_id:n}))}const t=Gs,r=await t;return Gs===t&&($e.sessionContext=r),r}return $e.sessionContext}function qO(){if(typeof window>"u"||!window.location)return;const t=new URLSearchParams(window.location.search).get(s1);if(t==null||!t.length)return;const r=new URLSearchParams(window.location.search);r.delete(s1);const n=window.location.pathname+(r.toString()?"?"+r.toString():"");return window.history.replaceState({},"",n),{enabled:t==="true"}}function h1(){var e;return(e=$e.fallbackSessionId)!==null&&e!==void 0?e:$e.fallbackSessionId=UC()}function Lu(){if(typeof window>"u")return h1();try{const e=localStorage.getItem(l1);if(!e){const t=UC();return localStorage.setItem(l1,t),t}return e}catch{return h1()}}class UO extends Error{constructor(t,r,n,o,s){super(t),this.name="Base44Error",this.status=r,this.code=n,this.data=o,this.originalError=s}toJSON(){return{name:this.name,message:this.message,status:this.status,code:this.code,data:this.data}}}function ha({baseURL:e,headers:t={},token:r,interceptResponses:n=!0,onError:o}){const s=wt.create({baseURL:e,headers:{"Content-Type":"application/json",Accept:"application/json",...t}});return r&&(s.defaults.headers.common.Authorization=`Bearer ${r}`),s.interceptors.request.use(l=>{typeof window<"u"&&(window.location&&l.headers.set("X-Origin-URL",window.location.href),l.headers.get("Authorization")||l.headers.set("X-Base44-Anonymous-Id",Lu()));const c=_O();if(l.requestId=c,o1)try{window.parent.postMessage({type:"api-request-start",requestId:c,data:{url:e+l.url,method:l.method,body:l.data instanceof FormData?"[FormData object]":l.data}},"*")}catch{}return l}),n&&s.interceptors.response.use(l=>{var c;const d=(c=l.config)===null||c===void 0?void 0:c.requestId;try{o1&&d&&window.parent.postMessage({type:"api-request-end",requestId:d,data:{statusCode:l.status,response:l.data}},"*")}catch{}return l.data},l=>{var c,d,h,m,f,p,g,x,b,w,y,S,C,k,A;const N=((d=(c=l.response)===null||c===void 0?void 0:c.data)===null||d===void 0?void 0:d.message)||((m=(h=l.response)===null||h===void 0?void 0:h.data)===null||m===void 0?void 0:m.detail)||l.message,D=new UO(N,(f=l.response)===null||f===void 0?void 0:f.status,(S=(x=(g=(p=l.response)===null||p===void 0?void 0:p.data)===null||g===void 0?void 0:g.code)!==null&&x!==void 0?x:(y=(w=(b=l.response)===null||b===void 0?void 0:b.headers)===null||w===void 0?void 0:w.get)===null||y===void 0?void 0:y.call(w,"x-base44-connector-error"))!==null&&S!==void 0?S:(k=(C=l.response)===null||C===void 0?void 0:C.headers)===null||k===void 0?void 0:k["x-base44-connector-error"],(A=l.response)===null||A===void 0?void 0:A.data,l);return o==null||o(D),Promise.reject(D)}),s}function p1(e){const{axios:t,appId:r,getSocket:n}=e;return new Proxy({}
255,{get(o,s){if(!(typeof s!="string"||s==="then"||s.startsWith("_")))return VO(t,r,s,n)}})}function GO(e){var t;try{const r=JSON.parse(e);return{type:r.type,data:r.data,id:r.id||((t=r.data)===null||t===void 0?void 0:t.id),timestamp:r.timestamp||new Date().toISOString()}}catch(r){return console.warn("[Base44 SDK] Failed to parse realtime message:",r),null}}function VO(e,t,r,n){const o=`/apps/${t}/entities/${r}`;return{async list(s,l,c,d){const h={};return s&&(h.sort=s),l&&(h.limit=l),c&&(h.skip=c),d&&(h.fields=Array.isArray(d)?d.join(","):d),e.get(o,{params:h})},async filter(s,l,c,d,h){const m={q:JSON.stringify(s)};return l&&(m.sort=l),c&&(m.limit=c),d&&(m.skip=d),h&&(m.fields=Array.isArray(h)?h.join(","):h),e.get(o,{params:m})},async get(s){return e.get(`${o}/${s}`)},async create(s){return e.post(o,s)},async update(s,l){return e.put(`${o}/${s}`,l)},async delete(s){return e.delete(`${o}/${s}`)},async deleteMany(s){return e.delete(o,{data:s})},async bulkCreate(s){return e.post(`${o}/bulk`,s)},async updateMany(s,l){return e.patch(`${o}/update-many`,{query:s,data:l})},async bulkUpdate(s){return e.put(`${o}/bulk`,s)},async importEntities(s){const l=new FormData;return l.append("file",s,s.name),e.post(`${o}/import`,l,{headers:{"Content-Type":"multipart/form-data"}})},subscribe(s){const l=`entities:${t}:${r}`;return n().subscribeToRoom(l,{update_model:h=>{var m;const f=GO(h.data);if(f){f.type!=="delete"&&(!((m=f.data)===null||m===void 0)&&m._oversize)&&console.error(`[Base44 SDK] Realtime broadcast for ${r}#${f.id} was oversize and got slimmed for transport. Fields >10 KB are empty and the rest of the record may be a stub. Call \`entities.${r}.get("${f.id}")\` to fetch the full record.`);try{s(f)}catch(p){console.error("[Base44 SDK] Subscription callback error:",p)}}}})}}}function YO(e,t){return{async call(r,n,o){if(!(r!=null&&r.trim()))throw new Error("Integration slug is required and cannot be empty");if(!(n!=null&&n.trim()))throw new Error("Operation ID is required and cannot be empty");const{pathParams:s,queryParams:l,...c}=o??{},d={...c,...s&&{path_params:s},...l&&{query_params:l}};return await e.post(`/apps/${t}/integrations/custom/${r}/${n}`,d)}}}function m1(e,t){const r=YO(e,t);return new Proxy({},{get(n,o){if(!(typeof o!="string"||o==="then"||o.startsWith("_")))return o==="custom"?r:new Proxy({},{get(s,l){if(!(typeof l!="string"||l==="then"||l.startsWith("_")))return async c=>{if(typeof c=="string")throw new Error(`Integration ${l} must receive an object with named parameters, received: ${c}`);let d,h;return c instanceof FormData||c&&Object.values(c).some(m=>m instanceof File)?(d=new FormData,Object.keys(c).forEach(m=>{c[m]instanceof File?d.append(m,c[m],c[m].name):typeof c[m]=="object"&&c[m]!==null?d.append(m,JSON.stringify(c[m])):d.append(m,c[m])}),h="multipart/form-data"):(d=c,h="application/json"),o==="Core"?e.post(`/apps/${t}/integration-endpoints/Core/${l}`,d||c,{headers:{"Content-Type":h}}):e.post(`/apps/${t}/integration-endpoints/installable/${o}/integration-endpoints/${l}`,d||c,{headers:{"Content-Type":h}})}}})}})}function KO(){return typeof window>"u"?!1:window!==window.parent}function XO(e,t,r){const s=Math.round(window.screenX+(window.outerWidth-500)/2),l=Math.round(window.screenY+(window.outerHeight-600)/2),c=window.open(e,"base44_auth",`width=500,height=600,left=${s},top=${l},resizable=yes,scrollbars=yes`);if(!c)return;const d=()=>{window.removeEventListener("message",h),clearInterval(m),c.closed||c.close()},h=f=>{var p;if(f.origin!==r||f.source!==c||!(!((p=f.data)===null||p===void 0)&&p.access_token))return;d();const g=new URL(t),{access_token:x,is_new_user:b}=f.data;g.searchParams.set("access_token",x),b!=null&&g.searchParams.set("is_new_user",String(b)),window.location.href=g.toString()},m=setInterval(()=>{c.closed&&d()},500);window.addEventListener("message",h)}function $O(e,t,r,n){let o=null;const s=()=>{o=null};let l=!!n.token;return{hasToken(){return l},async me(){const c=o??e.get(`/apps/${r}/entities/User/me`).finally(()=>{o===c&&(o=null)});return o=c,c},async updateMe(c){return e.put(`/apps/${r}/entities/User/me`,c)},redirectToLogin(c){if(typeof window>"u")throw new Error("Login method can only be used in a browser environment");const d=c?new URL(c,window.location.origin).toString():window.location.href,h=`${n.appBaseUrl}/login?from_url=${encodeURIComponent(d)}`;window.location.href=h},loginWithProvider(c,d="/"){const h=new URL(d,window.location.origin).toString(),m=`app_id=${r}&from_url=${encodeURIComponent(h)}`;let f;c==="sso"?f=`/apps/${r}/auth/sso/login`:f=`/apps/auth${c==="google"?"":`/${c}`}/login`;const p=`${n.appBaseUrl}/api${f}?${m}`;if(KO()){const g=`${p}&popup_origin=${encodeURIComponent(window.location.origin)}`;return XO(g,h,window.location.origin)}window.location.href=p},logout(c){if(delete e.defaults.headers.common.Authorization,s(),f1(),l=!1,typeof window<"u"){if(window.localStorage)try{window.localStorage.removeItem("base44_access_token"),window.localStorage.removeItem("token")}catch(m){console.error("Failed to remove token from localStorage:",m)}const d=c||window.location.href,h=`${n.appBaseUrl}/api/apps/auth/logout?from_url=${encodeURIComponent(d)}`;window.location.href=h}},setToken(c,d=!0){if(c&&(s(),f1(),l=!0,e.defaults.headers.common.Authorization=`Bearer ${c}`,t.defaults.headers.common.Authorization=`Bearer ${c}`,d&&typeof window<"u"&&window.localStorage))try{window.localStorage.setItem("base44_access_token",c),window.localStorage.setItem("token",c)}catch(h){console.error("Failed to save token to localStorage:",h)}},async loginViaEmailPassword(c,d,h){var m;try{const f=await e.post(`/apps/${r}/auth/login`,{email:c,password:d,...h&&{turnstile_token:h}}),{access_token:p,user:g}=f;return p&&this.setToken(p),{access_token:p,user:g}}catch(f){throw((m=f.response)===null||m===void 0?void 0:m.status)===401&&await this.logout(),f}},async isAuthenticated(){try{return await this.me(),!0}catch{return!1}},inviteUser(c,d){return e.post(`/apps/${r}/users/invite-user`,{user_email:c,role:d})},register(c){return e.post(`/apps/${r}/auth/register`,c)},verifyOtp({email:c,otpCode:d}){return e.post(`/apps/${r}/auth/verify-otp`,{email:c,otp_code:d})},resendOtp(c){return e.post(`/apps/${r}/auth/resend-otp`,{email:c})},resetPasswordRequest(c){return e.post(`/apps/${r}/auth/reset-password-request`,{email:c})},resetPassword({resetToken:c,newPassword:d}){return e.post(`/apps/${r}/auth/reset-password`,{reset_token:c,new_password:d})},changePassword({userId:c,currentPassword:d,newPassword:h}){return e.post(`/apps/${r}/auth/change-password`,{user_id:c,current_password:d,new_password:h})}}}function QO(e,t){return{async getAccessToken(r){const n=`/apps/${t}/auth/sso/accesstoken/${r}`;return e.get(n)},async getIdToken(r){const n=`/apps/${t}/auth/sso/idtoken/${r}`;return e.get(n)}}}const ZO=new Set(["GET","POST","PUT","PATCH","DELETE","HEAD"]);function JO(e,t){return{async getAccessToken(r){if(!r||typeof r!="string")throw new Error("Integration type is required and must be a string");return(await e.get(`/apps/${t}/external-auth/tokens/${encodeURIComponent(r)}`)).access_token},async getConnection(r){var n;if(!r||typeof r!="string")throw new Error("Integration type is required and must be a string");const s=await e.get(`/apps/${t}/external-auth/tokens/${encodeURIComponent(r)}`);return{accessToken:s.access_token,connectionConfig:(n=s.connection_config)!==null&&n!==void 0?n:null}},async getWorkspaceConnection(r){var n;if(!r||typeof r!="string")throw new Error("Connector ID is required and must be a string");const s=await e.get(`/apps/${t}/external-auth/tokens/connectors/${encodeURIComponent(r)}`);return{accessToken:s.access_token,connectionConfig:(n=s.connection_config)!==null&&n!==void 0?n:null}},async getCurrentAppUserAccessToken(r){if(!r||typeof r!="string")throw new Error("Connector ID is required and must be a string");return(await e.get(`/apps/${t}/app-user-auth/connectors/${encodeURIComponent(r)}/token`)).access_token},async getCurrentAppUserConnection(r){var n;if(!r||typeof r!="string")throw new Error("Connector ID is required and must be a string");const s=await e.get(`/apps/${t}/app-user-auth/connectors/${encodeURIComponent(r)}/token`);return{accessToken:s.access_token,connectionConfig:(n=s.connection_config)!==null&&n!==void 0?n:null}},async callApi(r,n){return GC(r,"Integration type"),eL(e,`/apps/${t}/connectors/${encodeURIComponent(r)}/call`,n)}}}function GC(e,t){if(!e||typeof e!="string")throw new Error(`${t} is required and must be a string`)}async function eL(e,t,r){var n,o,s,l,c,d,h,m,f;if(!r||typeof r!="object")throw new Error("Request is required and must be an object");GC(r.path,"Request path");const p=(n=r.method)!==null&&n!==void 0?n:"GET";if(!ZO.has(p))throw new Error("Request method must be one of GET, POST, PUT, PATCH, DELETE, or HEAD");const x=await e.post(t,{method:p,...r.host==null?{}:{host:r.host},path:r.path,query:(o=r.query)!==null&&o!==void 0?o:{},headers:(s=r.headers)!==null&&s!==void 0?s:{},body:(l=r.body)!==null&&l!==void 0?l:null});return{success:x.success,phase:x.phase,status:(c=x.status_code)!==null&&c!==void 0?c:null,data:x.data,dataBase64:(d=x.data_base64)!==null&&d!==void 0?d:null,contentType:(h=x.content_type)!==null&&h!==void 0?h:null,headers:(m=x.headers)!==null&&m!==void 0?m:{},creditsCharged:(f=x.credits_charged)!==null&&f!==void 0?f:0}}function tL(e,t){return{async connectAppUser(r){if(!r||typeof r!="string")throw new Error("Connector ID is required and must be a string");return(await e.post(`/apps/${t}/app-user-auth/connectors/${encodeURIComponent(r)}/initiate`)).redirect_url},async disconnectAppUser(r){if(!r||typeof r!="string")throw new Error("Connector ID is required and must be a string");await e.delete(`/apps/${t}/app-user-auth/connectors/${encodeURIComponent(r)}`)}}}function Ci(e={}){const{storageKey:t="base44_access_token",paramName:r="access_token",saveToStorage:n=!0,removeFromUrl:o=!0}=e;let s=null;if(typeof window<"u"&&window.location)try{const l=new URLSearchParams(window.location.search);
255if(s=l.get(r),s){if(n&&rL(s,{storageKey:t}),o){l.delete(r);const c=`${window.location.pathname}${l.toString()?`?${l.toString()}`:""}${window.location.hash}`;window.history.replaceState({},document.title,c)}return s}}catch(l){console.error("Error retrieving token from URL:",l)}if(typeof window<"u"&&window.localStorage)try{return s=window.localStorage.getItem(t),s}catch(l){console.error("Error retrieving token from local storage:",l)}return null}function rL(e,t){const{storageKey:r="base44_access_token"}=t;if(typeof window>"u"||!window.localStorage||!e)return!1;try{return window.localStorage.setItem(r,e),window.localStorage.setItem("token",e),!0}catch(n){return console.error("Error saving token to local storage:",n),!1}}function nL({axios:e,serviceRoleAxios:t,appId:r,serverUrl:n,functionsVersion:o,platformHeaders:s}){const l=new Headers(s),c=d=>{const h=d.defaults.headers.common.Authorization;return typeof h=="string"&&h.startsWith("Bearer ")?h:null};return async function(h,m={}){iL(h);const{fetch:f=fetch,...p}=m,g=new Headers(m.headers),x=(b,w)=>{w&&!g.has(b)&&g.set(b,w)};return x("Authorization",c(e)),x("Base44-Service-Authorization",c(t)),x("Base44-App-Id",r),x("Base44-Api-Url",n),x("Base44-Functions-Version",o),x("Base44-State",l.get("Base44-State")),x("X-Data-Env",l.get("X-Data-Env")),f(h,{...p,headers:g})}}function iL(e){if(typeof e!="string"||e==="")throw new Error("fetchWithAuth() requires a path, such as '/api/orders'.");const t=e.replace(/[\t\n\r]/g,"").replace(/^[\x00-\x20]+/,"");if(!t.startsWith("/")||t.startsWith("//")||t.startsWith("/\\"))throw new Error(`fetchWithAuth() only sends requests to your app's own origin, so your app's credentials never reach a third party. "${e}" is not a path on it — pass a relative path such as '/api/orders'. Use base44.functions.fetch() to call a Base44 backend function, or plain fetch() for another origin.`)}function g1(e,t,r){const n=(s,l)=>s?`${String(s).replace(/\/$/,"")}${l}`:l,o=s=>{const l=new Headers;if(r!=null&&r.getAuthHeaders){const c=r.getAuthHeaders();Object.entries(c).forEach(([d,h])=>{h!=null&&l.set(d,String(h))})}return s&&new Headers(s).forEach((c,d)=>{l.set(d,c)}),l};return{async invoke(s,l){if(typeof l=="string")throw new Error(`Function ${s} must receive an object with named parameters, received: ${l}`);let c,d;return l instanceof FormData||l&&Object.values(l).some(h=>h instanceof File)?(c=new FormData,Object.keys(l).forEach(h=>{l[h]instanceof File?c.append(h,l[h],l[h].name):typeof l[h]=="object"&&l[h]!==null?c.append(h,JSON.stringify(l[h])):c.append(h,l[h])}),d="multipart/form-data"):(c=l,d="application/json"),e.post(`/apps/${t}/functions/${s}`,c||l,{headers:{"Content-Type":d}})},async fetch(s,l={}){const d=`/functions${s.startsWith("/")?s:`/${s}`}`,h=o(l.headers),m={...l,headers:h};return await fetch(n(r==null?void 0:r.baseURL,d),m)}}}function y1({axios:e,getSocket:t,appId:r,serverUrl:n,token:o}){const s=`/apps/${r}/agents`,l={},c=()=>e.get(`${s}/conversations`),d=b=>e.get(`${s}/conversations/${b}`);return{getConversations:c,getConversation:d,listConversations:b=>e.get(`${s}/conversations`,{params:b}),createConversation:b=>e.post(`${s}/conversations`,b),addMessage:async(b,w)=>e.post(`${s}/conversations/v2/${b.id}/messages`,w),subscribeToConversation:(b,w)=>{const y=`/agent-conversations/${b}`,S=t(),C=d(b).then(k=>(l[b]=k,k));return S.subscribeToRoom(y,{connect:()=>{},update_model:async({data:k})=>{const A=JSON.parse(k);if(A._message){await C;const N=A._message,D=l[b];if(D){const _=D.messages||[],F=_.findIndex(O=>O.id===N.id),M=F!==-1?_.map((O,j)=>j===F?N:O):[..._,N];l[b]={...D,messages:M},w==null||w(l[b])}}}})},getWhatsAppConnectURL:b=>{const w=`${n}/api/apps/${r}/agents/${encodeURIComponent(b)}/whatsapp`,y=o??Ci();return y?`${w}?token=${y}`:w},getTelegramConnectURL:b=>{const w=`${n}/api/apps/${r}/agents/${encodeURIComponent(b)}/telegram`,y=o??Ci();return y?`${w}?token=${y}`:w}}}function b1({serverUrl:e,token:t,appId:r}){return{connection:()=>{var o;return{baseURL:`${e}/api/apps/${r}/ai/openai/v1`,token:(o=t??Ci())!==null&&o!==void 0?o:""}}}}function v1(e,t){const r=`/app-logs/${t}`;return{async logUserInApp(n){await e.post(`${r}/log-user-in-app/${n}`)},async fetchLogs(n={}){return await e.get(r,{params:n})},async getStats(n={}){return await e.get(`${r}/stats`,{params:n})}}}function oL(e,t){return{async getPublicSettings(){return e.get(`/apps/public/prod/public-settings/by-id/${t}`)}}}function aL(e,t){return{async inviteUser(r,n){if(n!=="user"&&n!=="admin")throw new Error(`Invalid role: "${n}". Role must be either "user" or "admin".`);return await e.post(`/apps/${t}/runtime/users/invite-user`,{user_email:r,role:n})}}}const pn=Object.create(null);pn.open="0";pn.close="1";pn.ping="2";pn.pong="3";pn.message="4";pn.upgrade="5";pn.noop="6";
vendor: 28,268 bytes, line 255
255const gu=Object.create(null);Object.keys(pn).forEach(e=>{gu[pn[e]]=e});const cg={type:"error",data:"parser error"},VC=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",YC=typeof ArrayBuffer=="function",KC=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,hy=({type:e,data:t},r,n)=>VC&&t instanceof Blob?r?n(t):w1(t,n):YC&&(t instanceof ArrayBuffer||KC(t))?r?n(t):w1(new Blob([t]),n):n(pn[e]+(t||"")),w1=(e,t)=>{const r=new FileReader;return r.onload=function(){const n=r.result.split(",")[1];t("b"+(n||""))},r.readAsDataURL(e)};function S1(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let Bh;function sL(e,t){if(VC&&e.data instanceof Blob)return e.data.arrayBuffer().then(S1).then(t);if(YC&&(e.data instanceof ArrayBuffer||KC(e.data)))return t(S1(e.data));hy(e,!1,r=>{Bh||(Bh=new TextEncoder),t(Bh.encode(r))})}const k1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Vs=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e<k1.length;e++)Vs[k1.charCodeAt(e)]=e;const lL=e=>{let t=e.length*.75,r=e.length,n,o=0,s,l,c,d;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);const h=new ArrayBuffer(t),m=new Uint8Array(h);for(n=0;n<r;n+=4)s=Vs[e.charCodeAt(n)],l=Vs[e.charCodeAt(n+1)],c=Vs[e.charCodeAt(n+2)],d=Vs[e.charCodeAt(n+3)],m[o++]=s<<2|l>>4,m[o++]=(l&15)<<4|c>>2,m[o++]=(c&3)<<6|d&63;return h},cL=typeof ArrayBuffer=="function",py=(e,t)=>{if(typeof e!="string")return{type:"message",data:XC(e,t)};const r=e.charAt(0);return r==="b"?{type:"message",data:uL(e.substring(1),t)}:gu[r]?e.length>1?{type:gu[r],data:e.substring(1)}:{type:gu[r]}:cg},uL=(e,t)=>{if(cL){const r=lL(e);return XC(r,t)}else return{base64:!0,data:e}},XC=(e,t)=>{switch(t){case"blob":return e instanceof Blob?e:new Blob([e]);case"arraybuffer":default:return e instanceof ArrayBuffer?e:e.buffer}},$C="�",dL=(e,t)=>{const r=e.length,n=new Array(r);let o=0;e.forEach((s,l)=>{hy(s,!1,c=>{n[l]=c,++o===r&&t(n.join($C))})})},fL=(e,t)=>{const r=e.split($C),n=[];for(let o=0;o<r.length;o++){const s=py(r[o],t);if(n.push(s),s.type==="error")break}return n};function hL(){return new TransformStream({transform(e,t){sL(e,r=>{const n=r.length;let o;if(n<126)o=new Uint8Array(1),new DataView(o.buffer).setUint8(0,n);else if(n<65536){o=new Uint8Array(3);const s=new DataView(o.buffer);s.setUint8(0,126),s.setUint16(1,n)}else{o=new Uint8Array(9);const s=new DataView(o.buffer);s.setUint8(0,127),s.setBigUint64(1,BigInt(n))}e.data&&typeof e.data!="string"&&(o[0]|=128),t.enqueue(o),t.enqueue(r)})}})}let Oh;function Qc(e){return e.reduce((t,r)=>t+r.length,0)}function Zc(e,t){if(e[0].length===t)return e.shift();const r=new Uint8Array(t);let n=0;for(let o=0;o<t;o++)r[o]=e[0][n++],n===e[0].length&&(e.shift(),n=0);return e.length&&n<e[0].length&&(e[0]=e[0].slice(n)),r}function pL(e,t){Oh||(Oh=new TextDecoder);const r=[];let n=0,o=-1,s=!1;return new TransformStream({transform(l,c){for(r.push(l);;){if(n===0){if(Qc(r)<1)break;const d=Zc(r,1);s=(d[0]&128)===128,o=d[0]&127,o<126?n=3:o===126?n=1:n=2}else if(n===1){if(Qc(r)<2)break;const d=Zc(r,2);o=new DataView(d.buffer,d.byteOffset,d.length).getUint16(0),n=3}else if(n===2){if(Qc(r)<8)break;const d=Zc(r,8),h=new DataView(d.buffer,d.byteOffset,d.length),m=h.getUint32(0);if(m>Math.pow(2,21)-1){c.enqueue(cg);break}o=m*Math.pow(2,32)+h.getUint32(4),n=3}else{if(Qc(r)<o)break;const d=Zc(r,o);c.enqueue(py(s?d:Oh.decode(d),t)),n=0}if(o===0||o>e){c.enqueue(cg);break}}}})}const QC=4;function Ct(e){if(e)return mL(e)}function mL(e){for(var t in Ct.prototype)e[t]=Ct.prototype[t];return e}Ct.prototype.on=Ct.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this};Ct.prototype.once=function(e,t){function r(){this.off(e,r),t.apply(this,arguments)}return r.fn=t,this.on(e,r),this};Ct.prototype.off=Ct.prototype.removeListener=Ct.prototype.removeAllListeners=Ct.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var r=this._callbacks["$"+e];if(!r)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;for(var n,o=0;o<r.length;o++)if(n=r[o],n===t||n.fn===t){r.splice(o,1);break}return r.length===0&&delete this._callbacks["$"+e],this};Ct.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),r=this._callbacks["$"+e],n=1;n<arguments.length;n++)t[n-1]=arguments[n];if(r){r=r.slice(0);for(var n=0,o=r.length;n<o;++n)r[n].apply(this,t)}return this};Ct.prototype.emitReserved=Ct.prototype.emit;Ct.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]};Ct.prototype.hasListeners=function(e){return!!this.listeners(e).length};const nd=typeof Promise=="function"&&typeof Promise.resolve=="function"?t=>Promise.resolve().then(t):(t,r)=>r(t,0),Pr=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),gL="arraybuffer";function ZC(e,...t){return t.reduce((r,n)=>(e.hasOwnProperty(n)&&(r[n]=e[n]),r),{})}const yL=Pr.setTimeout,bL=Pr.clearTimeout;function id(e,t){t.useNativeTimers?(e.setTimeoutFn=yL.bind(Pr),e.clearTimeoutFn=bL.bind(Pr)):(e.setTimeoutFn=Pr.setTimeout.bind(Pr),e.clearTimeoutFn=Pr.clearTimeout.bind(Pr))}const vL=1.33;function wL(e){return typeof e=="string"?SL(e):Math.ceil((e.byteLength||e.size)*vL)}function SL(e){let t=0,r=0;for(let n=0,o=e.length;n<o;n++)t=e.charCodeAt(n),t<128?r+=1:t<2048?r+=2:t<55296||t>=57344?r+=3:(n++,r+=4);return r}function JC(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function kL(e){let t="";for(let r in e)e.hasOwnProperty(r)&&(t.length&&(t+="&"),t+=encodeURIComponent(r)+"="+encodeURIComponent(e[r]));return t}function xL(e){let t={},r=e.split("&");for(let n=0,o=r.length;n<o;n++){let s=r[n].split("=");t[decodeURIComponent(s[0])]=decodeURIComponent(s[1])}return t}class CL extends Error{constructor(t,r,n){super(t),this.description=r,this.context=n,this.type="TransportError"}}class my extends Ct{constructor(t){super(),this.writable=!1,id(this,t),this.opts=t,this.query=t.query,this.socket=t.socket,this.supportsBinary=!t.forceBase64}onError(t,r,n){return super.emitReserved("error",new CL(t,r,n)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(t){this.readyState==="open"&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){const r=py(t,this.socket.binaryType);this.onPacket(r)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}createUri(t,r={}){return t+"://"+this._hostname()+this._port()+this.opts.path+this._query(r)}_hostname(){const t=this.opts.hostname;return t.indexOf(":")===-1?t:"["+t+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(this.opts.port)!==443||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(t){const r=kL(t);return r.length?"?"+r:""}}class RL extends my{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(t){this.readyState="pausing";const r=()=>{this.readyState="paused",t()};if(this._polling||!this.writable){let n=0;this._polling&&(n++,this.once("pollComplete",function(){--n||r()})),this.writable||(n++,this.once("drain",function(){--n||r()}))}else r()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){const r=n=>{if(this.readyState==="opening"&&n.type==="open"&&this.onOpen(),n.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(n)};fL(t,this.socket.binaryType).forEach(r),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,dL(t,r=>{this.doWrite(r,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const t=this.opts.secure?"https":"http",r=this.query||{};return this.opts.timestampRequests!==!1&&(r[this.opts.timestampParam]=JC()),!this.supportsBinary&&!r.sid&&(r.b64=1),this.createUri(t,r)}}let eR=!1;try{eR=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const AL=eR;function TL(){}class EL extends RL{constructor(t){if(super(t),typeof location<"u"){const r=location.protocol==="https:";let n=location.port;n||(n=r?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||n!==t.port}}doWrite(t,r){const n=this.request({method:"POST",data:t});n.on("success",r),n.on("error",(o,s)=>{this.onError("xhr post error",o,s)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(r,n)=>{this.onError("xhr poll error",r,n)}),this.pollXhr=t}}class un extends Ct{constructor(t,r,n){super(),this.createRequest=t,id(this,n),this._opts=n,this._method=n.method||"GET",this._uri=r,this._data=n.data!==void 0?n.data:null,this._create()}_create(){var t;const r=ZC(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");r.xdomain=!!this._opts.xd;const n=this._xhr=this.createRequest(r);try{n.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){n.setDisableHeaderCheck&&n.setDisableHeaderCheck(!0);for(let o in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(o)&&n.setRequestHeader(o,this._opts.extraHeaders[o])}}catch{}if(this._method==="POST")try{n.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{n.setRequestHeader("Accept","*/*")}catch{}(t=this._opts.cookieJar)===null||t===void 0||t.addCookies(n),"withCredentials"in n&&(n.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(n.timeout=this._opts.requestTimeout),n.onreadystatechange=()=>{var o;n.readyState===3&&((o=this._opts.cookieJar)===null||o===void 0||o.parseCookies(n.getResponseHeader("set-cookie"))),n.readyState===4&&(n.status===200||n.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof n.status=="number"?n.status:0)},0))},n.send(this._data)}catch(o){this.setTimeoutFn(()=>{this._onError(o)},0);return}typeof document<"u"&&(this._index=un.requestsCount++,un.requests[this._index]=this)}_onError(t){this.emitReserved("error",t,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=TL,t)try{this._xhr.abort()}catch{}typeof document<"u"&&delete un.requests[this._index],this._xhr=null}}_onLoad(){const t=this._xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}un.requestsCount=0;un.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",x1);else if(typeof addEventListener=="function"){const e="onpagehide"in Pr?"pagehide":"unload";addEventListener(e,x1,!1)}}function x1(){for(let e in un.requests)un.requests.hasOwnProperty(e)&&un.requests[e].abort()}const _L=(function(){const e=tR({xdomain:!1});return e&&e.responseType!==null})();class DL extends EL{constructor(t){super(t);const r=t&&t.forceBase64;this.supportsBinary=_L&&!r}request(t={}){return Object.assign(t,{xd:this.xd},this.opts),new un(tR,this.uri(),t)}}function tR(e){const t=e.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||AL))return new XMLHttpRequest}catch{}if(!t)try{return new Pr[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const rR=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class NL extends my{get name(){return"websocket"}doOpen(){const t=this.uri(),r=this.opts.protocols,n=rR?{}:ZC(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(n.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,r,n)}catch(o){return this.emitReserved("error",o)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let r=0;r<t.length;r++){const n=t[r],o=r===t.length-1;hy(n,this.supportsBinary,s=>{try{this.doWrite(n,s)}catch{}o&&nd(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",r=this.query||{};return this.opts.timestampRequests&&(r[this.opts.timestampParam]=JC()),this.supportsBinary||(r.b64=1),this.createUri(t,r)}}const Lh=Pr.WebSocket||Pr.MozWebSocket;class BL extends NL{createSocket(t,r,n){return rR?new Lh(t,r,n):r?new Lh(t,r):new Lh(t)}doWrite(t,r){this.ws.send(r)}}class OL extends my{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this._transport.closed.then(()=>{this.onClose()}).catch(t=>{this.onError("webtransport error",t)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(t=>{const r=pL(Number.MAX_SAFE_INTEGER,this.socket.binaryType),n=t.readable.pipeThrough(r).getReader(),o=hL();o.readable.pipeTo(t.writable),this._writer=o.writable.getWriter();const s=()=>{n.read().then(({done:c,value:d})=>{c||(this.onPacket(d),s())}).catch(c=>{})};s();const l={type:"open"};this.query.sid&&(l.data=`{"sid":"${this.query.sid}"}`),this._writer.write(l).then(()=>this.onOpen())})})}write(t){this.writable=!1;for(let r=0;r<t.length;r++){const n=t[r],o=r===t.length-1;this._writer.write(n).then(()=>{o&&nd(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var t;(t=this._transport)===null||t===void 0||t.close()}}const LL={websocket:BL,webtransport:OL,polling:DL},ML=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,PL=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function ug(e){if(e.length>8e3)throw"URI too long";const t=e,r=e.indexOf("["),n=e.indexOf("]");r!=-1&&n!=-1&&(e=e.substring(0,r)+e.substring(r,n).replace(/:/g,";")+e.substring(n,e.length));let o=ML.exec(e||""),s={},l=14;for(;l--;)s[PL[l]]=o[l]||"";return r!=-1&&n!=-1&&(s.source=t,s.host=s.host.substring(1,s.host.length-1).replace(/;/g,":"),s.authority=s.authority.replace("[","").replace("]","").replace(/;/g,":"),s.ipv6uri=!0),s.pathNames=jL(s,s.path),s.queryKey=FL(s,s.query),s}function jL(e,t){const r=/\/{2,9}/g,n=t.replace(r,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&n.splice(0,1),t.slice(-1)=="/"&&n.splice(n.length-1,1),n}function FL(e,t){const r={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(n,o,s){o&&(r[o]=s)}),r}const dg=typeof addEventListener=="function"&&typeof removeEventListener=="function",yu=[];dg&&addEventListener("offline",()=>{yu.forEach(e=>e())},!1);class Ti extends Ct{constructor(t,r){if(super(),this.binaryType=gL,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,t&&typeof t=="object"&&(r=t,t=null),t){const n=ug(t);r.hostname=n.host,r.secure=n.protocol==="https"||n.protocol==="wss",r.port=n.port,n.query&&(r.query=n.query)}else r.host&&(r.hostname=ug(r.host).host);id(this,r),this.secure=r.secure!=null?r.secure:typeof location<"u"&&location.protocol==="https:",r.hostname&&!r.port&&(r.port=this.secure?"443":"80"),this.hostname=r.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=r.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},r.transports.forEach(n=>{const o=n.prototype.name;this.transports.push(o),this._transportsByName[o]=n}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},r),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=xL(this.opts.query)),dg&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},yu.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(t){const r=Object.assign({},this.opts.query);r.EIO=QC,r.transport=t,this.id&&(r.sid=this.id);const n=Object.assign({},this.opts,{query:r,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this._transportsByName[t](n)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const t=this.opts.rememberUpgrade&&Ti.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const r=this.createTransport(t);r.open(),this.setTransport(r)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",r=>this._onClose("transport close",r))}onOpen(){this.readyState="open",Ti.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const r=new Error("server error");r.code=t.data,this._onError(r);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data);break}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this._pingInterval=t.pingInterval,this._pingTimeout=t.pingTimeout,this._maxPayload=t.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const t=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+t,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},t),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this._getWritablePackets();this.transport.send(t),this._prevBufferLen=t.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let r=1;for(let n=0;n<this.writeBuffer.length;n++){const o=this.writeBuffer[n].data;if(o&&(r+=wL(o)),n>0&&r>this._maxPayload)return this.writeBuffer.slice(0,n);r+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const t=Date.now()>this._pingTimeoutTime;return t&&(this._pingTimeoutTime=0,nd(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),t}write(t,r,n){return this._sendPacket("message",t,r,n),this}send(t,r,n){return this._sendPacket("message",t,r,n),this}_sendPacket(t,r,n,o){if(typeof r=="function"&&(o=r,r=void 0),typeof n=="function"&&(o=n,n=null),this.readyState==="closing"||this.readyState==="closed")return;n=n||{},n.compress=n.compress!==!1;const s={type:t,data:r,options:n};this.emitReserved("packetCreate",s),this.writeBuffer.push(s),o&&this.once("flush",o),this.flush()}close(){const t=()=>{this._onClose("forced close"),this.transport.close()},r=()=>{this.off("upgrade",r),this.off("upgradeError",r),t()},n=()=>{this.once("upgrade",r),this.once("upgradeError",r)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?n():t()}):this.upgrading?n():t()),this}_onError(t){if(Ti.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",t),this._onClose("transport error",t)}_onClose(t,r){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),dg&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const n=yu.indexOf(this._offlineEventListener);n!==-1&&yu.splice(n,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,r),this.writeBuffer=[],this._prevBufferLen=0}}}Ti.protocol=QC;class IL extends Ti{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t<this._upgrades.length;t++)this._probe(this._upgrades[t])}_probe(t){let r=this.createTransport(t),n=!1;Ti.priorWebsocketSuccess=!1;const o=()=>{n||(r.send([{type:"ping",data:"probe"}]),r.once("packet",f=>{if(!n)if(f.type==="pong"&&f.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",r),!r)return;Ti.priorWebsocketSuccess=r.name==="websocket",this.transport.pause(()=>{n||this.readyState!=="closed"&&(m(),this.setTransport(r),r.send([{type:"upgrade"}]),this.emitReserved("upgrade",r),r=null,this.upgrading=!1,this.flush())})}else{const p=new Error("probe error");p.transport=r.name,this.emitReserved("upgradeError",p)}}))};function s(){n||(n=!0,m(),r.close(),r=null)}const l=f=>{const p=new Error("probe error: "+f);p.transport=r.name,s(),this.emitReserved("upgradeError",p)};function c(){l("transport closed")}function d(){l("socket closed")}function h(f){r&&f.name!==r.name&&s()}const m=()=>{r.removeListener("open",o),r.removeListener("error",l),r.removeListener("close",c),this.off("close",d),this.off("upgrading",h)};r.once("open",o),r.once("error",l),r.once("close",c),this.once("close",d),this.once("upgrading",h),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{n||r.open()},200):r.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){const r=[];for(let n=0;n<t.length;n++)~this.transports.indexOf(t[n])&&r.push(t[n]);return r}}let WL=class extends IL{constructor(t,r={}){const n=typeof t=="object"?t:r;(!n.transports||n.transports&&typeof n.transports[0]=="string")&&(n.transports=(n.transports||["polling","websocket","webtransport"]).map(o=>LL[o]).filter(o=>!!o)),super(t,n)}};function zL(e,t="",r){let n=e;r=r||typeof location<"u"&&location,e==null&&(e=r.protocol+"//"+r.host),typeof e=="string"&&(e.charAt(0)==="/"&&(e.charAt(1)==="/"?e=r.protocol+e:e=r.host+e),/^(https?|wss?):\/\//.test(e)||(typeof r<"u"?e=r.protocol+"//"+e:e="https://"+e),n=ug(e)),n.port||(/^(http|ws)$/.test(n.protocol)?n.port="80":/^(http|ws)s$/.test(n.protocol)&&(n.port="443")),n.path=n.path||"/";const s=n.host.indexOf(":")!==-1?"["+n.host+"]":n.host;return n.id=n.protocol+"://"+s+":"+n.port+t,n.href=n.protocol+"://"+s+(r&&r.port===n.port?"":":"+n.port),n}const HL=typeof ArrayBuffer=="function",qL=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,nR=Object.prototype.toString,UL=typeof Blob=="function"||typeof Blob<"u"&&nR.call(Blob)==="[object BlobConstructor]",GL=typeof File=="function"||typeof File<"u"&&nR.call(File)==="[object FileConstructor]";function gy(e){return HL&&(e instanceof ArrayBuffer||qL(e))||UL&&e instanceof Blob||GL&&e instanceof File}function bu(e,t){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let r=0,n=e.length;r<n;r++)if(bu(e[r]))return!0;return!1}if(gy(e))return!0;if(e.toJSON&&typeof e.toJSON=="function"&&arguments.length===1)return bu(e.toJSON(),!0);for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)&&bu(e[r]))return!0;return!1}function VL(e){const t=[],r=e.data,n=e;return n.data=fg(r,t),n.attachments=t.length,{packet:n,buffers:t}}function fg(e,t){if(!e)return e;if(gy(e)){const r={_placeholder:!0,num:t.length};return t.push(e),r}else if(Array.isArray(e)){const r=new Array(e.length);for(let n=0;n<e.length;n++)r[n]=fg(e[n],t);return r}else if(typeof e=="object"&&!(e instanceof Date)){const r={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=fg(e[n],t));return r}return e}function YL(e,t){return e.data=hg(e.data,t),delete e.attachments,e}function hg(e,t){if(!e)return e;if(e&&e._placeholder===!0){if(typeof e.num=="number"&&e.num>=0&&e.num<t.length)return t[e.num];throw new Error("illegal attachments")}else if(Array.isArray(e))for(let r=0;r<e.length;r++)e[r]=hg(e[r],t);else if(typeof e=="object")for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(e[r]=hg(e[r],t));return e}const KL=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];var Ve;(function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"})(Ve||(Ve={}));class XL{constructor(t){this.replacer=t}encode(t){return(t.type===Ve.EVENT||t.type===Ve.ACK)&&bu(t)?this.encodeAsBinary({type:t.type===Ve.EVENT?Ve.BINARY_EVENT:Ve.BINARY_ACK,nsp:t.nsp,data:t.data,id:t.id}):[this.encodeAsString(t)]}encodeAsString(t){let r=""+t.type;return(t.type===Ve.BINARY_EVENT||t.type===Ve.BINARY_ACK)&&(r+=t.attachments+"-"),t.nsp&&t.nsp!=="/"&&(r+=t.nsp+","),t.id!=null&&(r+=t.id),t.data!=null&&(r+=JSON.stringify(t.data,this.replacer)),r}encodeAsBinary(t){const r=VL(t),n=this.encodeAsString(r.packet),o=r.buffers;return o.unshift(n),o}}class yy extends Ct{constructor(t){super(),this.reviver=t}add(t){let r;if(typeof t=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");r=this.decodeString(t);const n=r.type===Ve.BINARY_EVENT;n||r.type===Ve.BINARY_ACK?(r.type=n?Ve.EVENT:Ve.ACK,this.reconstructor=new $L(r),r.attachments===0&&super.emitReserved("decoded",r)):super.emitReserved("decoded",r)}else if(gy(t)||t.base64)if(this.reconstructor)r=this.reconstructor.takeBinaryData(t),r&&(this.reconstructor=null,super.emitReserved("decoded",r));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+t)}decodeString(t){let r=0;const n={type:Number(t.charAt(0))};if(Ve[n.type]===void 0)throw new Error("unknown packet type "+n.type);if(n.type===Ve.BINARY_EVENT||n.type===Ve.BINARY_ACK){const s=r+1;for(;t.charAt(++r)!=="-"&&r!=t.length;);const l=t.substring(s,r);if(l!=Number(l)||t.charAt(r)!=="-")throw new Error("Illegal attachments");n.attachments=Number(l)}if(t.charAt(r+1)==="/"){const s=r+1;for(;++r&&!(t.charAt(r)===","||r===t.length););n.nsp=t.substring(s,r)}else n.nsp="/";const o=t.charAt(r+1);if(o!==""&&Number(o)==o){const s=r+1;for(;++r;){const l=t.charAt(r);if(l==null||Number(l)!=l){--r;break}if(r===t.length)break}n.id=Number(t.substring(s,r+1))}
vendor: 4,501 bytes, line 255
255if(t.charAt(++r)){const s=this.tryParse(t.substr(r));if(yy.isPayloadValid(n.type,s))n.data=s;else throw new Error("invalid payload")}return n}tryParse(t){try{return JSON.parse(t,this.reviver)}catch{return!1}}static isPayloadValid(t,r){switch(t){case Ve.CONNECT:return C1(r);case Ve.DISCONNECT:return r===void 0;case Ve.CONNECT_ERROR:return typeof r=="string"||C1(r);case Ve.EVENT:case Ve.BINARY_EVENT:return Array.isArray(r)&&(typeof r[0]=="number"||typeof r[0]=="string"&&KL.indexOf(r[0])===-1);case Ve.ACK:case Ve.BINARY_ACK:return Array.isArray(r)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class $L{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const r=YL(this.reconPack,this.buffers);return this.finishedReconstruction(),r}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}function C1(e){return Object.prototype.toString.call(e)==="[object Object]"}const QL=Object.freeze(Object.defineProperty({__proto__:null,Decoder:yy,Encoder:XL,get PacketType(){return Ve}},Symbol.toStringTag,{value:"Module"}));function $r(e,t,r){return e.on(t,r),function(){e.off(t,r)}}const ZL=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class iR extends Ct{constructor(t,r,n){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=r,n&&n.auth&&(this.auth=n.auth),this._opts=Object.assign({},n),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[$r(t,"open",this.onopen.bind(this)),$r(t,"packet",this.onpacket.bind(this)),$r(t,"error",this.onerror.bind(this)),$r(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...r){var n,o,s;if(ZL.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(r.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(r),this;const l={type:Ve.EVENT,data:r};if(l.options={},l.options.compress=this.flags.compress!==!1,typeof r[r.length-1]=="function"){const m=this.ids++,f=r.pop();this._registerAckCallback(m,f),l.id=m}const c=(o=(n=this.io.engine)===null||n===void 0?void 0:n.transport)===null||o===void 0?void 0:o.writable,d=this.connected&&!(!((s=this.io.engine)===null||s===void 0)&&s._hasPingExpired());return this.flags.volatile&&!c||(d?(this.notifyOutgoingListeners(l),this.packet(l)):this.sendBuffer.push(l)),this.flags={},this}_registerAckCallback(t,r){var n;const o=(n=this.flags.timeout)!==null&&n!==void 0?n:this._opts.ackTimeout;if(o===void 0){this.acks[t]=r;return}const s=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let c=0;c<this.sendBuffer.length;c++)this.sendBuffer[c].id===t&&this.sendBuffer.splice(c,1);r.call(this,new Error("operation has timed out"))},o),l=(...c)=>{this.io.clearTimeoutFn(s),r.apply(this,c)};l.withError=!0,this.acks[t]=l}emitWithAck(t,...r){return new Promise((n,o)=>{const s=(l,c)=>l?o(l):n(c);s.withError=!0,r.push(s),this.emit(t,...r)})}_addToQueue(t){let r;typeof t[t.length-1]=="function"&&(r=t.pop());const n={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((o,...s)=>(this._queue[0],o!==null?n.tryCount>this._opts.retries&&(this._queue.shift(),r&&r(o)):(this._queue.shift(),r&&r(null,...s)),n.pending=!1,this._drainQueue())),this._queue.push(n),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;const r=this._queue[0];r.pending&&!t||(r.pending=!0,r.tryCount++,this.flags=r.flags,this.emit.apply(this,r.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:Ve.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,r){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,r),this._clearAcks()}
vendor: 7,087 bytes, line 255
255_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(n=>String(n.id)===t)){const n=this.acks[t];delete this.acks[t],n.withError&&n.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case Ve.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case Ve.EVENT:case Ve.BINARY_EVENT:this.onevent(t);break;case Ve.ACK:case Ve.BINARY_ACK:this.onack(t);break;case Ve.DISCONNECT:this.ondisconnect();break;case Ve.CONNECT_ERROR:this.destroy();const n=new Error(t.data.message);n.data=t.data.data,this.emitReserved("connect_error",n);break}}onevent(t){const r=t.data||[];t.id!=null&&r.push(this.ack(t.id)),this.connected?this.emitEvent(r):this.receiveBuffer.push(Object.freeze(r))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const r=this._anyListeners.slice();for(const n of r)n.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const r=this;let n=!1;return function(...o){n||(n=!0,r.packet({type:Ve.ACK,id:t,data:o}))}}onack(t){const r=this.acks[t.id];typeof r=="function"&&(delete this.acks[t.id],r.withError&&t.data.unshift(null),r.apply(this,t.data))}onconnect(t,r){this.id=t,this.recovered=r&&this._pid===r,this._pid=r,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:Ve.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const r=this._anyListeners;for(let n=0;n<r.length;n++)if(t===r[n])return r.splice(n,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(t),this}prependAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(t),this}offAnyOutgoing(t){if(!this._anyOutgoingListeners)return this;if(t){const r=this._anyOutgoingListeners;for(let n=0;n<r.length;n++)if(t===r[n])return r.splice(n,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(t){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const r=this._anyOutgoingListeners.slice();for(const n of r)n.apply(this,t.data)}}}function Ga(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}Ga.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),r=Math.floor(t*this.jitter*e);e=(Math.floor(t*10)&1)==0?e-r:e+r}return Math.min(e,this.max)|0};Ga.prototype.reset=function(){this.attempts=0};Ga.prototype.setMin=function(e){this.ms=e};Ga.prototype.setMax=function(e){this.max=e};Ga.prototype.setJitter=function(e){this.jitter=e};class pg extends Ct{constructor(t,r){var n;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(r=t,t=void 0),r=r||{},r.path=r.path||"/socket.io",this.opts=r,id(this,r),this.reconnection(r.reconnection!==!1),this.reconnectionAttempts(r.reconnectionAttempts||1/0),this.reconnectionDelay(r.reconnectionDelay||1e3),this.reconnectionDelayMax(r.reconnectionDelayMax||5e3),this.randomizationFactor((n=r.randomizationFactor)!==null&&n!==void 0?n:.5),this.backoff=new Ga({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(r.timeout==null?2e4:r.timeout),this._readyState="closed",this.uri=t;const o=r.parser||QL;this.encoder=new o.Encoder,this.decoder=new o.Decoder,this._autoConnect=r.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var r;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(r=this.backoff)===null||r===void 0||r.setMin(t),this)}randomizationFactor(t){var r;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(r=this.backoff)===null||r===void 0||r.setJitter(t),this)}reconnectionDelayMax(t){var r;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(r=this.backoff)===null||r===void 0||r.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new WL(this.uri,this.opts);const r=this.engine,n=this;this._readyState="opening",this.skipReconnect=!1;const o=$r(r,"open",function(){n.onopen(),t&&t()}),s=c=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",c),t?t(c):this.maybeReconnectOnOpen()},l=$r(r,"error",s);if(this._timeout!==!1){const c=this._timeout,d=this.setTimeoutFn(()=>{o(),s(new Error("timeout")),r.close()},c);this.opts.autoUnref&&d.unref(),this.subs.push(()=>{this.clearTimeoutFn(d)})}return this.subs.push(o),this.subs.push(l),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push($r(t,"ping",this.onping.bind(this)),$r(t,"data",this.ondata.bind(this)),$r(t,"error",this.onerror.bind(this)),$r(t,"close",this.onclose.bind(this)),$r(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(r){this.onclose("parse error",r)}}ondecoded(t){nd(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,r){let n=this.nsps[t];return n?this._autoConnect&&!n.active&&n.connect():(n=new iR(this,t,r),this.nsps[t]=n),n}_destroy(t){const r=Object.keys(this.nsps);for(const n of r)if(this.nsps[n].active)return;this._close()}_packet(t){const r=this.encoder.encode(t);for(let n=0;n<r.length;n++)this.engine.write(r[n],t.options)}
255cleanup(){this.subs.forEach(t=>t()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,r){var n;this.cleanup(),(n=this.engine)===null||n===void 0||n.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,r),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const r=this.backoff.duration();this._reconnecting=!0;const n=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(o=>{o?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",o)):t.onreconnect()}))},r);this.opts.autoUnref&&n.unref(),this.subs.push(()=>{this.clearTimeoutFn(n)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const Ws={};function vu(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};const r=zL(e,t.path||"/socket.io"),n=r.source,o=r.id,s=r.path,l=Ws[o]&&s in Ws[o].nsps,c=t.forceNew||t["force new connection"]||t.multiplex===!1||l;let d;return c?d=new pg(n,t):(Ws[o]||(Ws[o]=new pg(n,t)),d=Ws[o]),r.query&&!t.query&&(t.query=r.queryKey),d.socket(r.path,t)}Object.assign(vu,{Manager:pg,Socket:iR,io:vu,connect:vu});const JL=250;function R1(e,t){var r;const n=(r=e.token)!==null&&r!==void 0?r:Ci(),o={app_id:e.appId,token:n};n||(o.anonymous_id=Lu());const s=vu(e.serverUrl,{path:e.mountPath,transports:e.transports,query:o});return s.on("connect",async()=>{var l;return console.log("connect",s.id),(l=t.connect)===null||l===void 0?void 0:l.call(t)}),s.on("update_model",async l=>{var c;return(c=t.update_model)===null||c===void 0?void 0:c.call(t,l)}),s.on("error",async l=>{var c;return(c=t.error)===null||c===void 0?void 0:c.call(t,l)}),s.on("connect_error",async l=>{var c;return console.error("connect_error",l),(c=t.error)===null||c===void 0?void 0:c.call(t,l)}),s}function e8({config:e}){let t={...e};const r={},n={},o={connect:async()=>{const y=[];Object.keys(r).forEach(S=>{const C=p(S);C.length!==0&&(h(S),C.forEach(({connect:k})=>{const A=async()=>k==null?void 0:k();y.push(A())}))}),await Promise.all(y)},update_model:async y=>{const C=p(y.room).map(k=>{var A;return(A=k.update_model)===null||A===void 0?void 0:A.call(k,y)});await Promise.all(C)},error:async y=>{console.error("error",y);const S=Object.values(r).flat().map(C=>{var k;return(k=C.error)===null||k===void 0?void 0:k.call(C,y)});await Promise.all(S)}};let s=R1(e,o);function l(){c()}function c(){x(),s&&s.disconnect()}function d(y){l(),t={...t,...y},s=R1(t,o)}function h(y){s.emit("join",y)}
255function m(y){s.emit("leave",y)}async function f(y,S){var C;const k=JSON.stringify(S);return(C=o.update_model)===null||C===void 0?void 0:C.call(o,{room:y,data:k})}function p(y){var S;return(S=r[y])!==null&&S!==void 0?S:[]}function g(y){const S=n[y];S&&(clearTimeout(S),delete n[y])}function x(){Object.keys(n).forEach(y=>{var S,C;clearTimeout(n[y]),delete n[y],((C=(S=r[y])===null||S===void 0?void 0:S.length)!==null&&C!==void 0?C:0)===0&&delete r[y]})}function b(y){g(y),n[y]=setTimeout(()=>{var S,C;delete n[y],!(((C=(S=r[y])===null||S===void 0?void 0:S.length)!==null&&C!==void 0?C:0)>0)&&(m(y),delete r[y])},JL)}return{socket:s,subscribeToRoom:(y,S)=>{r[y]?g(y):(h(y),r[y]=[]),r[y].push(S);let C=!1;return()=>{var k,A;C||(C=!0,r[y]=(A=(k=r[y])===null||k===void 0?void 0:k.filter(N=>N!==S))!==null&&A!==void 0?A:[],r[y].length===0&&b(y))}},updateConfig:d,updateModel:f,disconnect:c}}(!globalThis.EventTarget||!globalThis.Event)&&console.error(`
256  PartySocket requires a global 'EventTarget' class to be available!
257  You can polyfill this global by adding this to your code before any partysocket imports: 
258  
259  \`\`\`
260  import 'partysocket/event-target-polyfill';
261  \`\`\`
262  Please file an issue at https://github.com/partykit/partykit if you're still having trouble.
263`);var oR=class extends Event{constructor(t,r){super("error",r);nt(this,"message");nt(this,"error");this.message=t.message,this.error=t}},aR=class extends Event{constructor(t=1e3,r="",n){super("close",n);nt(this,"code");nt(this,"reason");nt(this,"wasClean",!0);this.code=t,this.reason=r}},Mh={Event,ErrorEvent:oR,CloseEvent:aR};function t8(e,t){if(!e)throw new Error(t)}function r8(e){return new e.constructor(e.type,e)}function n8(e){return"data"in e?new MessageEvent(e.type,e):"code"in e||"reason"in e?new aR(e.code||1999,e.reason||"unknown reason",e):"error"in e?new oR(e.error,e):new Event(e.type,e)}var px,i8=typeof process<"u"&&typeof((px=process.versions)==null?void 0:px.node)<"u"&&typeof document>"u",Jc=i8?n8:r8,to={maxReconnectionDelay:1e4,minReconnectionDelay:1e3+Math.random()*4e3,minUptime:5e3,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,maxEnqueuedMessages:1/0},A1=!1,o8=class oo extends EventTarget{constructor(r,n,o={}){super();nt(this,"_ws");nt(this,"_retryCount",-1);nt(this,"_uptimeTimeout");nt(this,"_connectTimeout");nt(this,"_shouldReconnect",!0);nt(this,"_connectLock",!1);nt(this,"_binaryType","blob");nt(this,"_closeCalled",!1);nt(this,"_messageQueue",[]);nt(this,"_url");nt(this,"_protocols");nt(this,"_options");nt(this,"onclose",null);nt(this,"onerror",null);nt(this,"onmessage",null);nt(this,"onopen",null);nt(this,"_handleOpen",r=>{this._debug("open event");const{minUptime:n=to.minUptime}=this._options;clearTimeout(this._connectTimeout),this._uptimeTimeout=setTimeout(()=>this._acceptOpen(),n),t8(this._ws,"WebSocket is not defined"),this._ws.binaryType=this._binaryType,this._messageQueue.forEach(o=>{var s;return(s=this._ws)==null?void 0:s.send(o)}),this._messageQueue=[],this.onopen&&this.onopen(r),this.dispatchEvent(Jc(r))});nt(this,"_handleMessage",r=>{this._debug("message event"),this.onmessage&&this.onmessage(r),this.dispatchEvent(Jc(r))});nt(this,"_handleError",r=>{this._debug("error event",r.message),this._disconnect(void 0,r.message==="TIMEOUT"?"timeout":void 0),this.onerror&&this.onerror(r),this._debug("exec error listeners"),this.dispatchEvent(Jc(r)),this._connect()});nt(this,"_handleClose",r=>{this._debug("close event"),this._clearTimeouts(),this._shouldReconnect&&this._connect(),this.onclose&&this.onclose(r),this.dispatchEvent(Jc(r))});this._url=r,this._protocols=n,this._options=o,this._options.startClosed&&(this._shouldReconnect=!1),this._connect()}static get CONNECTING(){return 0}static get OPEN(){return 1}static get CLOSING(){return 2}static get CLOSED(){return 3}get CONNECTING(){return oo.CONNECTING}get OPEN(){return oo.OPEN}get CLOSING(){return oo.CLOSING}get CLOSED(){return oo.CLOSED}get binaryType(){return this._ws?this._ws.binaryType:this._binaryType}set binaryType(r){this._binaryType=r,this._ws&&(this._ws.binaryType=r)}get retryCount(){return Math.max(this._retryCount,0)}get bufferedAmount(){return this._messageQueue.reduce((n,o)=>
263(typeof o=="string"?n+=o.length:o instanceof Blob?n+=o.size:n+=o.byteLength,n),0)+(this._ws?this._ws.bufferedAmount:0)}get extensions(){return this._ws?this._ws.extensions:""}get protocol(){return this._ws?this._ws.protocol:""}get readyState(){return this._ws?this._ws.readyState:this._options.startClosed?oo.CLOSED:oo.CONNECTING}get url(){return this._ws?this._ws.url:""}get shouldReconnect(){return this._shouldReconnect}close(r=1e3,n){if(this._closeCalled=!0,this._shouldReconnect=!1,this._clearTimeouts(),!this._ws){this._debug("close enqueued: no ws instance");return}if(this._ws.readyState===this.CLOSED){this._debug("close: already closed");return}this._ws.close(r,n)}reconnect(r,n){this._shouldReconnect=!0,this._closeCalled=!1,this._retryCount=-1,!this._ws||this._ws.readyState===this.CLOSED?this._connect():(this._disconnect(r,n),this._connect())}send(r){if(this._ws&&this._ws.readyState===this.OPEN)this._debug("send",r),this._ws.send(r);else{const{maxEnqueuedMessages:n=to.maxEnqueuedMessages}=this._options;this._messageQueue.length<n&&(this._debug("enqueue",r),this._messageQueue.push(r))}}_debug(...r){this._options.debug&&console.log.apply(console,["RWS>",...r])}_getNextDelay(){const{reconnectionDelayGrowFactor:r=to.reconnectionDelayGrowFactor,minReconnectionDelay:n=to.minReconnectionDelay,maxReconnectionDelay:o=to.maxReconnectionDelay}=this._options;let s=0;return this._retryCount>0&&(s=n*Math.pow(r,this._retryCount-1),s>o&&(s=o)),this._debug("next delay",s),s}_wait(){return new Promise(r=>{setTimeout(r,this._getNextDelay())})}_getNextProtocols(r){if(!r)return Promise.resolve(null);if(typeof r=="string"||Array.isArray(r))return Promise.resolve(r);if(typeof r=="function"){const n=r();if(!n)return Promise.resolve(null);if(typeof n=="string"||Array.isArray(n))return Promise.resolve(n);if(n.then)return n}throw Error("Invalid protocols")}_getNextUrl(r){if(typeof r=="string")return Promise.resolve(r);if(typeof r=="function"){const n=r();if(typeof n=="string")return Promise.resolve(n);if(n.then)return n}throw Error("Invalid URL")}_connect(){if(this._connectLock||!this._shouldReconnect)return;this._connectLock=!0;
263const{maxRetries:r=to.maxRetries,connectionTimeout:n=to.connectionTimeout}=this._options;if(this._retryCount>=r){this._debug("max retries reached",this._retryCount,">=",r);return}this._retryCount++,this._debug("connect",this._retryCount),this._removeListeners(),this._wait().then(()=>Promise.all([this._getNextUrl(this._url),this._getNextProtocols(this._protocols||null)])).then(([o,s])=>{if(this._closeCalled){this._connectLock=!1;return}!this._options.WebSocket&&typeof WebSocket>"u"&&!A1&&(console.error(`‼️ No WebSocket implementation available. You should define options.WebSocket. 
264
265For example, if you're using node.js, run \`npm install ws\`, and then in your code:
266
267import PartySocket from 'partysocket';
268import WS from 'ws';
269
270const partysocket = new PartySocket({
271  host: "127.0.0.1:1999",
272  room: "test-room",
273  WebSocket: WS
274});
275
276`),A1=!0);const l=this._options.WebSocket||WebSocket;this._debug("connect",{url:o,protocols:s}),this._ws=s?new l(o,s):new l(o),this._ws.binaryType=this._binaryType,this._connectLock=!1,this._addListeners(),this._connectTimeout=setTimeout(()=>this._handleTimeout(),n)}).catch(o=>{this._connectLock=!1,this._handleError(new Mh.ErrorEvent(Error(o.message),this))})}_handleTimeout(){this._debug("timeout event"),this._handleError(new Mh.ErrorEvent(Error("TIMEOUT"),this))}_disconnect(r=1e3,n){if(this._clearTimeouts(),!!this._ws){this._removeListeners();try{this._ws.close(r,n),this._handleClose(new Mh.CloseEvent(r,n,this))}catch{}}}_acceptOpen(){this._debug("accept open"),this._retryCount=0}_removeListeners(){this._ws&&(this._debug("removeListeners"),this._ws.removeEventListener("open",this._handleOpen),this._ws.removeEventListener("close",this._handleClose),this._ws.removeEventListener("message",this._handleMessage),this._ws.removeEventListener("error",this._handleError))}_addListeners(){this._ws&&(this._debug("addListeners"),this._ws.addEventListener("open",this._handleOpen),this._ws.addEventListener("close",this._handleClose),this._ws.addEventListener("message",this._handleMessage),this._ws.addEventListener("error",this._handleError))}_clearTimeouts(){clearTimeout(this._connectTimeout),clearTimeout(this._uptimeTimeout)}};/*!
277 * Reconnecting WebSocket
278 * by Pedro Ladaria <[email protected]>
279 * https://github.com/pladaria/reconnecting-websocket
280 * License MIT
281 */const a8=1e3,s8=3e3,l8=new Set([405,409,422,503]),c8=new Set([400,403,404]);function u8(e){const t=e&&typeof e=="object"?e.status:void 0;return typeof t=="number"?t:void 0}function d8(e){return e instanceof Error?e:new Error(String(e))}class f8{constructor(t,r,n,o,s){var l;this.onClose=s,this.listeners=new Set,this.heartbeat=null,this.closed=!1,this.id=(l=o==null?void 0:o.id)!==null&&l!==void 0?l:crypto.randomUUID();let c=n.transport==="proxy";const d=async()=>{var p;if(this.closed)throw new Error("Actor connection is closed");if(!c)try{const{websocket_url:g,token:x}=await n.mintConnectionToken(t,r,this.id),b=g.includes("?")?"&":"?";return`${g}${b}token=${encodeURIComponent(x)}`}catch(g){const x=u8(g);if(!(n.transport!=="direct"&&x!==void 0&&l8.has(x))){x!==void 0&&c8.has(x)&&this.close();try{(p=n.onMintError)===null||p===void 0||p.call(n,d8(g))}catch{}throw g}c=!0}return p8(n.host,t,r,this.id,n.appId,n.getAuthToken(),n.functionsVersion)},h=new o8(d);this.ws=h;let m=Date.now();const f=()=>{m=Date.now()};h.addEventListener("open",f),h.addEventListener("message",p=>{f();let g;try{g=JSON.parse(p.data)}catch{return}if((g&&typeof g=="object"?g.type:void 0)!=="__pong")for(const b of this.listeners)b(g)}),this.heartbeat=setInterval(()=>{if(Date.now()-m>s8){f(),h.readyState===h.OPEN&&h.reconnect();return}try{h.send(JSON.stringify({type:"__ping"}))}catch{}},a8)}subscribe(t){return this.listeners.add(t),{unsubscribe:()=>{this.listeners.delete(t)}}}send(t){this.closed||this.ws.send(JSON.stringify(t))}close(){this.closed||(this.closed=!0,this.heartbeat&&(clearInterval(this.heartbeat),this.heartbeat=null),this.listeners.clear(),this.ws.close(),this.onClose())}}function h8(e,t,r,n){let o=null;return{connect(s){if(o)return o;const l=new f8(e,t,r,s,()=>{n.delete(l),o===l&&(o=null)});return o=l,n.add(l),l}}}function p8(e,t,r,n,o,s,l){let c=e.replace(/^(http|https|ws|wss):\/\//,"");c.endsWith("/")&&(c=c.slice(0,-1));const d=c.startsWith("localhost:")||c.startsWith("127.0.0.1:")||c.startsWith("192.168.")||c.startsWith("10.")||c.startsWith("172.")&&c.split(".")[1]>="16"&&c.split(".")[1]<="31"||c.startsWith("[::ffff:7f00:1]:"),h=new URLSearchParams([["_pk",n],["app_id",o],["handler",t]]);return s&&h.append("token",s),l&&h.append("fv",l),`${d?"ws":"wss"}://${c}/parties/${t}/${r}?${h}`}function m8(e,t){return e&&!e.startsWith("/")?e:t??e}function g8(e){const t=new Set;return{module:new Proxy({},{get(n,o){if(!(typeof o!="string"||o==="then"))return s=>h8(o,s,e,t)}}),closeAll:()=>{for(const n of[...t])n.close()}}}function y8(e){var t,r,n,o;const{serverUrl:s="https://base44.app",appId:l,analytics:c,token:d,serviceToken:h,requiresAuth:m=!1,appBaseUrl:f,options:p,functionsVersion:g,headers:x}=e,b=typeof f=="string"?f:"",w={serverUrl:s,mountPath:"/ws-user-apps/socket.io/",transports:["websocket"],appId:l,token:d};let y=null;const S=()=>(y||(y=e8({config:w})),y),C={...x,"X-App-Id":String(l)},k=g?{...C,"Base44-Functions-Version":g}:C,A=ha({baseURL:`${s}/api`,headers:C,token:d,onError:p==null?void 0:p.onError}),N=ha({baseURL:`${s}/api`,headers:k,token:d,interceptResponses:!1,onError:p==null?void 0:p.onError}),D={...C,...d?{"on-behalf-of":`Bearer ${d}`}:{}},_=ha({baseURL:`${s}/api`,headers:D,token:h,onError:p==null?void 0:p.onError}),F=ha({baseURL:`${s}/api`,headers:k,token:h,interceptResponses:!1}),M=ha({baseURL:`${s}/api`,headers:C}),O=$O(A,N,l,{appBaseUrl:b,token:d});if(typeof window<"u"){const G=d||Ci();G&&O.setToken(G)}const j=g8({appId:l,host:m8(s,typeof window<"u"?(t=window.location)===null||t===void 0?void 0:t.origin:void 0),functionsVersion:g,getAuthToken:()=>d||Ci(),mintConnectionToken:async(G,X,Q)=>{const K=d||Ci();return await M.post(`/apps/${l}/actors/${encodeURIComponent(G)}/connection-token`,{room:X,connection_id:Q},{headers:{...K?{Authorization:`Bearer ${K}`}:{},...g?{"Base44-Functions-Version":g}:{}}})},transport:p==null?void 0:p.actorsTransport,onMintError:p==null?void 0:p.onError}),I={entities:p1({axios:A,appId:l,getSocket:S}),integrations:m1(A,l),connectors:tL(A,l),auth:O,functions:g1(N,l,{getAuthHeaders:()=>{const G={},X=d||Ci();return X&&(G.Authorization=`Bearer ${X}`),G},baseURL:(r=N.defaults)===null||r===void 0?void 0:r.baseURL}),agents:y1({axios:A,getSocket:S,appId:l,serverUrl:s,token:d}),aiGateway:b1({serverUrl:s,token:d,appId:l}),appLogs:v1(A,l),app:oL(A,l),users:aL(A,l),analytics:PO({axiosClient:A,serverUrl:s,appId:l,userAuthModule:O,enabled:(n=c==null?void 0:c.enabled)!==null&&n!==void 0?n:!0}),actors:j.module,cleanup:()=>{I.analytics.cleanup(),j.closeAll(),y&&y.disconnect()}},L={entities:p1({axios:_,appId:l,getSocket:S}),integrations:m1(_,l),sso:QO(_,l),connectors:JO(_,l),functions:g1(F,l,{getAuthHeaders:()=>{const G={};return h&&(G.Authorization=`Bearer ${h}`),G},baseURL:(o=F.defaults)===null||o===void 0?void 0:o.baseURL}
281),agents:y1({axios:_,getSocket:S,appId:l,serverUrl:s,token:d}),aiGateway:b1({serverUrl:s,token:h,appId:l}),appLogs:v1(_,l),cleanup:()=>{y&&y.disconnect()}};return m&&typeof window<"u"&&setTimeout(async()=>{try{await I.auth.isAuthenticated()||I.auth.redirectToLogin(window.location.href)}catch(G){console.error("Authentication check failed:",G),I.auth.redirectToLogin(window.location.href)}},0),{...I,fetchWithAuth:nL({axios:A,serviceRoleAxios:_,appId:String(l),serverUrl:s,functionsVersion:g,platformHeaders:x}),setToken(G){I.auth.setToken(G),y&&y.updateConfig({token:G}),w.token=G},getConfig(){return{serverUrl:s,appId:l,requiresAuth:m}},get asServiceRole(){if(!h)throw new Error("Service token is required to use asServiceRole. Please provide a serviceToken when creating the client.");return L}}}const sR=typeof window>"u",b8=sR?{localStorage:new Map}:window,tl=b8.localStorage,v8=e=>e.replace(/([A-Z])/g,"_$1").toLowerCase(),ca=(e,{defaultValue:t=void 0,removeFromUrl:r=!1}={})=>{if(sR)return t;const n=`base44_${v8(e)}`,o=new URLSearchParams(window.location.search),s=o.get(e);if(r){o.delete(e);const c=`${window.location.pathname}${o.toString()?`?${o.toString()}`:""}${window.location.hash}`;window.history.replaceState({},document.title,c)}if(s)return tl.setItem(n,s),s;if(t)return tl.setItem(n,t),t;const l=tl.getItem(n);return l||null},w8=()=>(ca("clear_access_token")==="true"&&(tl.removeItem("base44_access_token"),tl.removeItem("token")),{appId:ca("app_id",{defaultValue:"69b8468835807a9d901dbdae"}),token:ca("access_token",{removeFromUrl:!0}),fromUrl:ca("from_url",{defaultValue:window.location.href}),functionsVersion:ca("functions_version",{defaultValue:"prod"}),appBaseUrl:ca("app_base_url",{defaultValue:void 0})}),Ys={...w8()},{appId:S8,token:k8,functionsVersion:x8,appBaseUrl:C8}=Ys,ut=y8({appId:S8,token:k8,functionsVersion:x8,serverUrl:"",requiresAuth:!1,appBaseUrl:C8});function R8({}){var o;const t=Mo().pathname.substring(1),{data:r,isFetched:n}=za({queryKey:["user"],queryFn:async()=>{try{return{user:await ut.auth.me(),isAuthenticated:!0}}catch{return{user:null,isAuthenticated:!1}}}});return R.jsx("div",{className:"min-h-screen flex items-center justify-center p-6 bg-slate-50",children:R.jsx("div",{className:"max-w-md w-full",children:R.jsxs("div",{className:"text-center space-y-6",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx("h1",{className:"text-7xl font-light text-slate-300",children:"404"}),R.jsx("div",{className:"h-0.5 w-16 bg-slate-200 mx-auto"})]}),R.jsxs("div",{className:"space-y-3",children:[R.jsx("h2",{className:"text-2xl font-medium text-slate-800",children:"Page Not Found"}),R.jsxs("p",{className:"text-slate-600 leading-relaxed",children:["The page ",R.jsxs("span",{className:"font-medium text-slate-700",children:['"',t,'"']})," could not be found in this application."]})]}),n&&r.isAuthenticated&&((o=r.user)==null?void 0:o.role)==="admin"&&R.jsx("div",{className:"mt-8 p-4 bg-slate-100 rounded-lg border border-slate-200",children:R.jsxs("div",{className:"flex items-start space-x-3",children:[R.jsx("div",{className:"flex-shrink-0 w-5 h-5 rounded-full bg-orange-100 flex items-center justify-center mt-0.5",children:R.jsx("div",{className:"w-2 h-2 rounded-full bg-orange-400"})}),R.jsxs("div",{className:"text-left space-y-1",children:[R.jsx("p",{className:"text-sm font-medium text-slate-700",children:"Admin Note"}),R.jsx("p",{className:"text-sm text-slate-600 leading-relaxed",children:"This could mean that the AI hasn't implemented this page yet. Ask it to implement it in the chat."})]})]})}),R.jsx("div",{className:"pt-6",children:R.jsxs("button",{onClick:()=>window.location.href="/",className:"inline-flex items-center px-4 py-2 text-sm font-medium text-slate-700 bg-white border border-slate-200 rounded-lg hover:bg-slate-50 hover:border-slate-300 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-slate-500",children:[R.jsx("svg",{className:"w-4 h-4 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:R.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"})}),"Go Home"]})})]})})})}const lR=P.createContext(),A8=({children:e})=>{const[t,r]=P.useState(null),[n,o]=P.useState(!1),[s,l]=P.useState(!0),[c,d]=P.useState(!0),[h,m]=P.useState(null),[f,p]=P.useState(null);P.useEffect(()=>{g()},[]);const g=async()=>{var y,S;try{d(!0),m(null);const C=ha({baseURL:"/api/apps/public",headers:{"X-App-Id":Ys.appId},token:Ys.token,interceptResponses:!0});try{const k=await C.get(`/prod/public-settings/by-id/${Ys.appId}`);p(k),Ys.token?await x():(l(!1),o(!1)),d(!1)}catch(k){if(console.error("App state check failed:",k),k.status===403&&((S=(y=k.data)==null?void 0:y.extra_data)!=null&&S.reason)){const A=k.data.extra_data.reason;m(A==="auth_required"?{type:"auth_required",message:"Authentication required"}:A==="user_not_registered"?{type:"user_not_registered",message:"User not registered for this app"}:{type:A,message:k.message})}else m({type:"unknown",message:k.message||"Failed to load app"});d(!1),l(!1)}}catch(C){console.error("Unexpected error:",C),m({type:"unknown",message:C.message||"An unexpected error occurred"}),d(!1),l(!1)}},x=async()=>{try{l(!0);const y=await ut.auth.me();r(y),o(!0),l(!1)}catch(y){console.error("User auth check failed:",y),l(!1),o(!1),(y.status===401||y.status===403)&&m({type:"auth_required",message:"Authentication required"})}},b=(y=!0)=>{r(null),o(!1),y?ut.auth.logout(window.location.href):ut.auth.logout()},w=()=>{ut.auth.redirectToLogin(window.location.href)};return R.jsx(lR.Provider,{value:{user:t,isAuthenticated:n,isLoadingAuth:s,isLoadingPublicSettings:c,authError:h,appPublicSettings:f,logout:b,navigateToLogin:w,checkAppState:g},children:e})},T8=()=>{const e=P.useContext(lR);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e},E8=()=>R.jsx("div",{className:"flex flex-col items-center justify-center min-h-screen bg-gradient-to-b from-white to-slate-50",children:R.jsx("div",{className:"max-w-md w-full p-8 bg-white rounded-lg shadow-lg border border-slate-100",children:R.jsxs("div",{className:"text-center",children:[R.jsx("div",{className:"inline-flex items-center justify-center w-16 h-16 mb-6 rounded-full bg-orange-100",children:R.jsx("svg",{className:"w-8 h-8 text-orange-600",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:R.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}),R.jsx("h1",{className:"text-3xl font-bold text-slate-900 mb-4",children:"Access Restricted"}),R.jsx("p",{className:"text-slate-600 mb-8",children:"You are not registered to use this application. Please contact the app administrator to request access."}),R.jsxs("div",{className:"p-4 bg-slate-50 rounded-md text-sm text-slate-600",children:[R.jsx("p",{children:"If you believe this is an error, you can:"}),R.jsxs("ul",{className:"list-disc list-inside mt-2 space-y-1",children:[R.jsx("li",{children:"Verify you are logged in with the correct account"}),R.jsx("li",{children:"Contact the app administrator for access"}),R.jsx("li",{children:"Try logging out and back in again"})]})]})]})})});function Mi(e){P.useEffect(()=>{const{title:t,description:r,image:n,url:o,type:s="website"}=e;t&&(document.title=`${t} - Netcruzer`);const l=(d,h)=>{let m=document.querySelector(`meta[property="${d}"]`);m||(m=document.createElement("meta"),m.setAttribute("property",d),document.head.appendChild(m)),m.content=h},c=(d,h)=>{let m=document.querySelector(`meta[name="${d}"]`);m||(m=document.createElement("meta"),m.setAttribute("name",d),document.head.appendChild(m)),m.content=h};return t&&(l("og:title",t),c("twitter:title",t)),r&&(l("og:description",r),c("description",r),c("twitter:description",r)),n&&(l("og:image",n),c("twitter:image",n)),o?l("og:url",o):l("og:url",window.location.href),l("og:type",s),()=>{l("og:title","Netcruzer - RC Racing, Tech Reviews & Car Culture Content"),l("og:description","Canadian content creator bringing entertaining RC racing, tech reviews, and car culture. Subscribe now!"),l("og:image","https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/69b8468835807a9d901dbdae/8e6d71aeb_generated_22b77626.png")}},[e])}const mg="https://netcruzer.com",_8="https://media.base44.com/images/public/69b8468835807a9d901dbdae/5bb792258_generated_image.png",cR={"@type":"Organization",name:"Netcruzer",url:mg,logo:{"@type":"ImageObject",url:_8},sameAs:["https://www.youtube.com/@netcruzer","https://www.facebook.com/netcruzer01","https://www.instagram.com/netcruzer"]};function Pi(e){P.useEffect(()=>{if(!e)return;const t=document.createElement("script");return t.type="application/ld+json",t.setAttribute("data-page-ld","1"),t.textContent=JSON.stringify(e,null,2),document.head.appendChild(t),()=>t.remove()},[JSON.stringify(e)])}function ji({name:e,description:t,url:r,image:n}){return{"@context":"https://schema.org","@type":"WebPage",name:e,description:t,url:r,image:n,publisher:cR,inLanguage:"en"}}function D8(){return{"@context":"https://schema.org","@type":"WebSite",name:"Netcruzer",url:mg,description:"Canadian content creator covering RC Racing, Tech Reviews, and Car Culture.",publisher:cR,potentialAction:{"@type":"SearchAction",target:{"@type":"EntryPoint",urlTemplate:`${mg}/articles?q={search_term_string}`},"query-input":"required name=search_term_string"}}}function Po(e){return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.map((t,r)=>({"@type":"ListItem",position:r+1,name:t.name,item:t.url}))}}
vendor: 17,864 bytes, lines 281-289
281const by=P.createContext({});function vy(e){const t=P.useRef(null);return t.current===null&&(t.current=e()),t.current}const od=P.createContext(null),wy=P.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class N8 extends P.Component{getSnapshotBeforeUpdate(t){const r=this.props.childRef.current;if(r&&t.isPresent&&!this.props.isPresent){const n=this.props.sizeRef.current;n.height=r.offsetHeight||0,n.width=r.offsetWidth||0,n.top=r.offsetTop,n.left=r.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function B8({children:e,isPresent:t}){const r=P.useId(),n=P.useRef(null),o=P.useRef({width:0,height:0,top:0,left:0}),{nonce:s}=P.useContext(wy);return P.useInsertionEffect(()=>{const{width:l,height:c,top:d,left:h}=o.current;if(t||!n.current||!l||!c)return;n.current.dataset.motionPopId=r;const m=document.createElement("style");return s&&(m.nonce=s),document.head.appendChild(m),m.sheet&&m.sheet.insertRule(`
282          [data-motion-pop-id="${r}"] {
283            position: absolute !important;
284            width: ${l}px !important;
285            height: ${c}px !important;
286            top: ${d}px !important;
287            left: ${h}px !important;
288          }
289        `),()=>{document.head.removeChild(m)}},[t]),R.jsx(N8,{isPresent:t,childRef:n,sizeRef:o,children:P.cloneElement(e,{ref:n})})}const O8=({children:e,initial:t,isPresent:r,onExitComplete:n,custom:o,presenceAffectsLayout:s,mode:l})=>{const c=vy(L8),d=P.useId(),h=P.useCallback(f=>{c.set(f,!0);for(const p of c.values())if(!p)return;n&&n()},[c,n]),m=P.useMemo(()=>({id:d,initial:t,isPresent:r,custom:o,onExitComplete:h,register:f=>(c.set(f,!1),()=>c.delete(f))}),s?[Math.random(),h]:[r,h]);return P.useMemo(()=>{c.forEach((f,p)=>c.set(p,!1))},[r]),P.useEffect(()=>{!r&&!c.size&&n&&n()},[r]),l==="popLayout"&&(e=R.jsx(B8,{isPresent:r,children:e})),R.jsx(od.Provider,{value:m,children:e})};function L8(){return new Map}function uR(e=!0){const t=P.useContext(od);if(t===null)return[!0,null];const{isPresent:r,onExitComplete:n,register:o}=t,s=P.useId();P.useEffect(()=>{e&&o(s)},[e]);const l=P.useCallback(()=>e&&n&&n(s),[s,n,e]);return!r&&n?[!1,l]:[!0]}const eu=e=>e.key||"";function T1(e){const t=[];return P.Children.forEach(e,r=>{P.isValidElement(r)&&t.push(r)}),t}const Sy=typeof window<"u",dR=Sy?P.useLayoutEffect:P.useEffect,fR=({children:e,custom:t,initial:r=!0,onExitComplete:n,presenceAffectsLayout:o=!0,mode:s="sync",propagate:l=!1})=>{const[c,d]=uR(l),h=P.useMemo(()=>T1(e),[e]),m=l&&!c?[]:h.map(eu),f=P.useRef(!0),p=P.useRef(h),g=vy(()=>new Map),[x,b]=P.useState(h),[w,y]=P.useState(h);dR(()=>{f.current=!1,p.current=h;for(let k=0;k<w.length;k++){const A=eu(w[k]);m.includes(A)?g.delete(A):g.get(A)!==!0&&g.set(A,!1)}},[w,m.length,m.join("-")]);const S=[];if(h!==x){let k=[...h];for(let A=0;A<w.length;A++){const N=w[A],D=eu(N);m.includes(D)||(k.splice(A,0,N),S.push(N))}s==="wait"&&S.length&&(k=S),y(T1(k)),b(h);return}const{forceRender:C}=P.useContext(by);return R.jsx(R.Fragment,{children:w.map(k=>{const A=eu(k),N=l&&!c?!1:h===w||m.includes(A),D=()=>{if(g.has(A))g.set(A,!0);else return;let _=!0;g.forEach(F=>{F||(_=!1)}),_&&(C==null||C(),y(p.current),l&&(d==null||d()),n&&n())};return R.jsx(O8,{isPresent:N,initial:!f.current||r?void 0:!1,custom:N?void 0:t,presenceAffectsLayout:o,mode:s,onExitComplete:N?void 0:D,children:k},A)})})},wr=e=>e;let hR=wr;function ky(e){let t;return()=>(t===void 0&&(t=e()),t)}const Pa=(e,t,r)=>{const n=t-e;return n===0?1:(r-e)/n},Bn=e=>e*1e3,On=e=>e/1e3,M8={useManualTiming:!1};function P8(e){let t=new Set,r=new Set,n=!1,o=!1;const s=new WeakSet;let l={delta:0,timestamp:0,isProcessing:!1};function c(h){s.has(h)&&(d.schedule(h),e()),h(l)}const d={schedule:(h,m=!1,f=!1)=>{const g=f&&n?t:r;return m&&s.add(h),g.has(h)||g.add(h),h},cancel:h=>{r.delete(h),s.delete(h)},process:h=>{if(l=h,n){o=!0;return}n=!0,[t,r]=[r,t],t.forEach(c),t.clear(),n=!1,o&&(o=!1,d.process(h))}};return d}const tu=["read","resolveKeyframes","update","preRender","render","postRender"],j8=40;function pR(e,t){let r=!1,n=!0;const o={delta:0,timestamp:0,isProcessing:!1},s=()=>r=!0,l=tu.reduce((y,S)=>(y[S]=P8(s),y),{}),{read:c,resolveKeyframes:d,update:h,preRender:m,render:f,postRender:p}=l,g=()=>{const y=performance.now();r=!1,o.delta=n?1e3/60:Math.max(Math.min(y-o.timestamp,j8),1),o.timestamp=y,o.isProcessing=!0,c.process(o),d.process(o),h.process(o),m.process(o),f.process(o),p.process(o),o.isProcessing=!1,r&&t&&(n=!1,e(g))},x=()=>{r=!0,n=!0,o.isProcessing||e(g)};return{schedule:tu.reduce((y,S)=>{const C=l[S];return y[S]=(k,A=!1,N=!1)=>(r||x(),C.schedule(k,A,N)),y},{}),cancel:y=>{for(let S=0;S<tu.length;S++)l[tu[S]].cancel(y)},state:o,steps:l}}const{schedule:at,cancel:_i,state:It,steps:Ph}=pR(typeof requestAnimationFrame<"u"?requestAnimationFrame:wr,!0),mR=P.createContext({strict:!1}),E1={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},ja={};for(const e in E1)ja[e]={isEnabled:t=>E1[e].some(r=>!!t[r])};function F8(e){for(const t in e)ja[t]={...ja[t],...e[t]}}const I8=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function Mu(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||I8.has(e)}let gR=e=>!Mu(e);function W8(e){e&&(gR=t=>t.startsWith("on")?!Mu(t):e(t))}try{W8(require("@emotion/is-prop-valid").default)}catch{}function z8(e,t,r){const n={};for(const o in e)o==="values"&&typeof e.values=="object"||(gR(o)||r===!0&&Mu(o)||!t&&!Mu(o)||e.draggable&&o.startsWith("onDrag"))&&(n[o]=e[o]);return n}function H8(e){if(typeof Proxy>"u")return e;const t=new Map,r=(...n)=>e(...n);return new Proxy(r,{get:(n,o)=>o==="create"?e:(t.has(o)||t.set(o,e(o)),t.get(o))})}const ad=P.createContext({});function hl(e){return typeof e=="string"||Array.isArray(e)}function sd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const xy=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Cy=["initial",...xy];function ld(e){return sd(e.animate)||Cy.some(t=>hl(e[t]))}function yR(e){return!!(ld(e)||e.variants)}function q8(e,t){if(ld(e)){const{initial:r,animate:n}=e;return{initial:r===!1||hl(r)?r:void 0,animate:hl(n)?n:void 0}}return e.inherit!==!1?t:{}}function U8(e){const{initial:t,animate:r}=q8(e,P.useContext(ad));return P.useMemo(()=>({initial:t,animate:r}),[_1(t),_1(r)])}function _1(e){return Array.isArray(e)?e.join(" "):e}const G8=Symbol.for("motionComponentSymbol");function ga(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function V8(e,t,r){return P.useCallback(n=>{n&&e.onMount&&e.onMount(n),t&&(n?t.mount(n):t.unmount()),r&&(typeof r=="function"?r(n):ga(r)&&(r.current=n))},[t])}const Ry=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),Y8="framerAppearId",bR="data-"+Ry(Y8),{schedule:Ay}=pR(queueMicrotask,!1),vR=P.createContext({});function K8(e,t,r,n,o){var s,l;const{visualElement:c}=P.useContext(ad),d=P.useContext(mR),h=P.useContext(od),m=P.useContext(wy).reducedMotion,f=P.useRef(null);n=n||d.renderer,!f.current&&n&&(f.current=n(e,{visualState:t,parent:c,props:r,presenceContext:h,blockInitialAnimation:h?h.initial===!1:!1,reducedMotionConfig:m}));const p=f.current,g=P.useContext(vR);p&&!p.projection&&o&&(p.type==="html"||p.type==="svg")&&X8(f.current,r,o,g);const x=P.useRef(!1);P.useInsertionEffect(()=>{p&&x.current&&p.update(r,h)});const b=r[bR],w=P.useRef(!!b&&!(!((s=window.MotionHandoffIsComplete)===null||s===void 0)&&s.call(window,b))&&((l=window.MotionHasOptimisedAnimation)===null||l===void 0?void 0:l.call(window,b)));return dR(()=>{p&&(x.current=!0,window.MotionIsMounted=!0,p.updateFeatures(),Ay.render(p.render),w.current&&p.animationState&&p.animationState.animateChanges())}),P.useEffect(()=>{p&&(!w.current&&p.animationState&&p.animationState.animateChanges(),w.current&&(queueMicrotask(()=>{var y;(y=window.MotionHandoffMarkAsComplete)===null||y===void 0||y.call(window,b)}),w.current=!1))}),p}function X8(e,t,r,n){const{layoutId:o,layout:s,drag:l,dragConstraints:c,layoutScroll:d,layoutRoot:h}=t;e.projection=new r(e.latestValues,t["data-framer-portal-id"]?void 0:wR(e.parent)),e.projection.setOptions({layoutId:o,layout:s,alwaysMeasureLayout:!!l||c&&ga(c),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:n,layoutScroll:d,layoutRoot:h})}function wR(e){if(e)return e.options.allowProjection!==!1?e.projection:wR(e.parent)}function $8({preloadedFeatures:e,createVisualElement:t,useRender:r,useVisualState:n,Component:o}){var s,l;e&&F8(e);function c(h,m){let f;const p={...P.useContext(wy),...h,layoutId:Q8(h)},{isStatic:g}=p,x=U8(h),b=n(h,g);if(!g&&Sy){Z8();const w=J8(p);f=w.MeasureLayout,x.visualElement=K8(o,b,p,t,w.ProjectionNode)}return R.jsxs(ad.Provider,{value:x,children:[f&&x.visualElement?R.jsx(f,{visualElement:x.visualElement,...p}):null,r(o,h,V8(b,x.visualElement,m),b,g,x.visualElement)]})}c.displayName=`motion.${typeof o=="string"?o:`create(${(l=(s=o.displayName)!==null&&s!==void 0?s:o.name)!==null&&l!==void 0?l:""})`}`;const d=P.forwardRef(c);return d[G8]=o,d}function Q8({layoutId:e}){const t=P.useContext(by).id;return t&&e!==void 0?t+"-"+e:e}function Z8(e,t){P.useContext(mR).strict}function J8(e){const{drag:t,layout:r}=ja;if(!t&&!r)return{};const n={...t,...r};return{MeasureLayout:t!=null&&t.isEnabled(e)||r!=null&&r.isEnabled(e)?n.MeasureLayout:void 0,ProjectionNode:n.ProjectionNode}}const eM=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Ty(e){return typeof e!="string"||e.includes("-")?!1:!!(eM.indexOf(e)>-1||/[A-Z]/u.test(e))}function D1(e){const t=[{},{}];return e==null||e.values.forEach((r,n)=>{t[0][n]=r.get(),t[1][n]=r.getVelocity()}),t}function Ey(e,t,r,n){if(typeof t=="function"){const[o,s]=D1(n);t=t(r!==void 0?r:e.custom,o,s)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[o,s]=D1(n);t=t(r!==void 0?r:e.custom,o,s)}return t}const gg=e=>Array.isArray(e),tM=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),rM=e=>gg(e)?e[e.length-1]||0:e,Kt=e=>!!(e&&e.getVelocity);function wu(e){const t=Kt(e)?e.get():e;return tM(t)?t.toValue():t}function nM({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:r},n,o,s){const l={latestValues:iM(n,o,s,e),renderState:t()};return r&&(l.onMount=c=>r({props:n,current:c,...l}),l.onUpdate=c=>r(c)),l}const SR=e=>(t,r)=>{const n=P.useContext(ad),o=P.useContext(od),s=()=>nM(e,t,n,o);return r?s():vy(s)};function iM(e,t,r,n){const o={},s=n(e,{});for(const p in s)o[p]=wu(s[p]);let{initial:l,animate:c}=e;const d=ld(e),h=yR(e);t&&h&&!d&&e.inherit!==!1&&(l===void 0&&(l=t.initial),c===void 0&&(c=t.animate));let m=r?r.initial===!1:!1;m=m||l===!1;const f=m?c:l;if(f&&typeof f!="boolean"&&!sd(f)){const p=Array.isArray(f)?f:[f];for(let g=0;g<p.length;g++){const x=Ey(e,p[g]);if(x){const{transitionEnd:b,transition:w,...y}=x;for(const S in y){let C=y[S];if(Array.isArray(C)){const k=m?C.length-1:0;C=C[k]}C!==null&&(o[S]=C)}for(const S in b)o[S]=b[S]}}}return o}const Va=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],jo=new Set(Va),kR=e=>t=>typeof t=="string"&&t.startsWith(e),xR=kR("--"),oM=kR("var(--"),_y=e=>oM(e)?aM.test(e.split("/*")[0].trim()):!1,aM=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,CR=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Pn=(e,t,r)=>r>t?t:r<e?e:r,Ya={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},pl={...Ya,transform:e=>Pn(0,1,e)},ru={...Ya,default:1},Dl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),fi=Dl("deg"),dn=Dl("%"),Me=Dl("px"),sM=Dl("vh"),lM=Dl("vw"),N1={...dn,parse:e=>dn.parse(e)/100,transform:e=>dn.transform(e*100)},cM={borderWidth:Me,borderTopWidth:Me,borderRightWidth:Me,borderBottomWidth:Me,borderLeftWidth:Me,borderRadius:Me,radius:Me,borderTopLeftRadius:Me,borderTopRightRadius:Me,borderBottomRightRadius:Me,borderBottomLeftRadius:Me,width:Me,maxWidth:Me,height:Me,maxHeight:Me,top:Me,right:Me,bottom:Me,left:Me,padding:Me,paddingTop:Me,paddingRight:Me,paddingBottom:Me,paddingLeft:Me,margin:Me,marginTop:Me,marginRight:Me,marginBottom:Me,marginLeft:Me,backgroundPositionX:Me,backgroundPositionY:Me},uM={rotate:fi,rotateX:fi,rotateY:fi,rotateZ:fi,scale:ru,scaleX:ru,scaleY:ru,scaleZ:ru,skew:fi,skewX:fi,skewY:fi,distance:Me,translateX:Me,translateY:Me,translateZ:Me,x:Me,y:Me,z:Me,perspective:Me,transformPerspective:Me,opacity:pl,originX:N1,originY:N1,originZ:Me},B1={...Ya,transform:Math.round},Dy={...cM,...uM,zIndex:B1,size:Me,fillOpacity:pl,strokeOpacity:pl,numOctaves:B1},dM={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},fM=Va.length;function hM(e,t,r){let n="",o=!0;for(let s=0;s<fM;s++){const l=Va[s],c=e[l];if(c===void 0)continue;let d=!0;if(typeof c=="number"?d=c===(l.startsWith("scale")?1:0):d=parseFloat(c)===0,!d||r){const h=CR(c,Dy[l]);if(!d){o=!1;const m=dM[l]||l;n+=`${m}(${h}) `}r&&(t[l]=h)}}return n=n.trim(),r?n=r(t,o?"":n):o&&(n="none"),n}function Ny(e,t,r){const{style:n,vars:o,transformOrigin:s}=e;let l=!1,c=!1;for(const d in t){const h=t[d];if(jo.has(d)){l=!0;continue}else if(xR(d)){o[d]=h;continue}else{const m=CR(h,Dy[d]);d.startsWith("origin")?(c=!0,s[d]=m):n[d]=m}}if(t.transform||(l||r?n.transform=hM(t,e.transform,r):n.transform&&(n.transform="none")),c){const{originX:d="50%",originY:h="50%",originZ:m=0}=s;n.transformOrigin=`${d} ${h} ${m}`}}const pM={offset:"stroke-dashoffset",array:"stroke-dasharray"},mM={offset:"strokeDashoffset",array:"strokeDasharray"};function gM(e,t,r=1,n=0,o=!0){e.pathLength=1;const s=o?pM:mM;e[s.offset]=Me.transform(-n);const l=Me.transform(t),c=Me.transform(r);e[s.array]=`${l} ${c}`}function O1(e,t,r){return typeof e=="string"?e:Me.transform(t+r*e)}function yM(e,t,r){const n=O1(t,e.x,e.width),o=O1(r,e.y,e.height);return`${n} ${o}`}function By(e,{attrX:t,attrY:r,attrScale:n,originX:o,originY:s,pathLength:l,pathSpacing:c=1,pathOffset:d=0,...h},m,f){if(Ny(e,h,f),m){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:p,style:g,dimensions:x}=e;p.transform&&(x&&(g.transform=p.transform),delete p.transform),x&&(o!==void 0||s!==void 0||g.transform)&&(g.transformOrigin=yM(x,o!==void 0?o:.5,s!==void 0?s:.5)),t!==void 0&&(p.x=t),r!==void 0&&(p.y=r),n!==void 0&&(p.scale=n),l!==void 0&&gM(p,l,c,d,!1)}const Oy=()=>({style:{},transform:{},transformOrigin:{},vars:{}}),RR=()=>({...Oy(),attrs:{}}),Ly=e=>typeof e=="string"&&e.toLowerCase()==="svg";function AR(e,{style:t,vars:r},n,o){Object.assign(e.style,t,o&&o.getProjectionStyles(n));for(const s in r)e.style.setProperty(s,r[s])}const TR=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function ER(e,t,r,n){AR(e,t,void 0,n);for(const o in t.attrs)e.setAttribute(TR.has(o)?o:Ry(o),t.attrs[o])}const Pu={};function bM(e){Object.assign(Pu,e)}function _R(e,{layout:t,layoutId:r}){return jo.has(e)||e.startsWith("origin")||(t||r!==void 0)&&(!!Pu[e]||e==="opacity")}function My(e,t,r){var n;const{style:o}=e,s={};for(const l in o)(Kt(o[l])||t.style&&Kt(t.style[l])||_R(l,e)||((n=r==null?void 0:r.getValue(l))===null||n===void 0?void 0:n.liveStyle)!==void 0)&&(s[l]=o[l]);return s}function DR(e,t,r){const n=My(e,t,r);for(const o in e)if(Kt(e[o])||Kt(t[o])){const s=Va.indexOf(o)!==-1?"attr"+o.charAt(0).toUpperCase()+o.substring(1):o;n[s]=e[o]}return n}function vM(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const L1=["x","y","width","height","cx","cy","r"],wM={useVisualState:SR({scrapeMotionValuesFromProps:DR,createRenderState:RR,onUpdate:({props:e,prevProps:t,current:r,renderState:n,latestValues:o})=>{if(!r)return;let s=!!e.drag;if(!s){for(const c in o)if(jo.has(c)){s=!0;break}}if(!s)return;let l=!t;if(t)for(let c=0;c<L1.length;c++){const d=L1[c];e[d]!==t[d]&&(l=!0)}l&&at.read(()=>{vM(r,n),at.render(()=>{By(n,o,Ly(r.tagName),e.transformTemplate),ER(r,n)})})}})},SM={useVisualState:SR({scrapeMotionValuesFromProps:My,createRenderState:Oy})};function NR(e,t,r){for(const n in t)!Kt(t[n])&&!_R(n,r)&&(e[n]=t[n])}function kM({transformTemplate:e},t){return P.useMemo(()=>{const r=Oy();return Ny(r,t,e),Object.assign({},r.vars,r.style)},[t])}function xM(e,t){const r=e.style||{},n={};return NR(n,r,e),Object.assign(n,kM(e,t)),n}function CM(e,t){const r={},n=xM(e,t);return e.drag&&e.dragListener!==!1&&(r.draggable=!1,n.userSelect=n.WebkitUserSelect=n.WebkitTouchCallout="none",n.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}
289`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(r.tabIndex=0),r.style=n,r}function RM(e,t,r,n){const o=P.useMemo(()=>{const s=RR();return By(s,t,Ly(n),e.transformTemplate),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};NR(s,e.style,e),o.style={...s,...o.style}}return o}function AM(e=!1){return(r,n,o,{latestValues:s},l)=>{const d=(Ty(r)?RM:CM)(n,s,l,r),h=z8(n,typeof r=="string",e),m=r!==P.Fragment?{...h,...d,ref:o}:{},{children:f}=n,p=P.useMemo(()=>Kt(f)?f.get():f,[f]);return P.createElement(r,{...m,children:p})}}function TM(e,t){return function(n,{forwardMotionProps:o}={forwardMotionProps:!1}){const l={...Ty(n)?wM:SM,preloadedFeatures:e,useRender:AM(o),createVisualElement:t,Component:n};return $8(l)}}function BR(e,t){if(!Array.isArray(t))return!1;const r=t.length;if(r!==e.length)return!1;for(let n=0;n<r;n++)if(t[n]!==e[n])return!1;return!0}function cd(e,t,r){const n=e.getProps();return Ey(n,t,r!==void 0?r:n.custom,e)}const EM=ky(()=>window.ScrollTimeline!==void 0);class _M{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,r){for(let n=0;n<this.animations.length;n++)this.animations[n][t]=r}attachTimeline(t,r){const n=this.animations.map(o=>{if(EM()&&o.attachTimeline)return o.attachTimeline(t);if(typeof r=="function")return r(o)});return()=>{n.forEach((o,s)=>{o&&o(),this.animations[s].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let r=0;r<this.animations.length;r++)t=Math.max(t,this.animations[r].duration);return t}runAll(t){this.animations.forEach(r=>r[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class DM extends _M{then(t,r){return Promise.all(this.animations).then(t).catch(r)}}function Py(e,t){return e?e[t]||e.default||e:void 0}const yg=2e4;function OR(e){let t=0;const r=50;let n=e.next(t);for(;!n.done&&t<yg;)t+=r,n=e.next(t);return t>=yg?1/0:t}function jy(e){return typeof e=="function"}function M1(e,t){e.timeline=t,e.onfinish=null}const Fy=e=>Array.isArray(e)&&typeof e[0]=="number",NM={linearEasing:void 0};function BM(e,t){const r=ky(e);return()=>{var n;return(n=NM[t])!==null&&n!==void 0?n:r()}}const ju=BM(()=>{try{document.createElement("div").animate({opacity:0}
vendor: 11,720 bytes, line 289
289,{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),LR=(e,t,r=10)=>{let n="";const o=Math.max(Math.round(t/r),2);for(let s=0;s<o;s++)n+=e(Pa(0,o-1,s))+", ";return`linear(${n.substring(0,n.length-2)})`};function MR(e){return!!(typeof e=="function"&&ju()||!e||typeof e=="string"&&(e in bg||ju())||Fy(e)||Array.isArray(e)&&e.every(MR))}const Ks=([e,t,r,n])=>`cubic-bezier(${e}, ${t}, ${r}, ${n})`,bg={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Ks([0,.65,.55,1]),circOut:Ks([.55,0,1,.45]),backIn:Ks([.31,.01,.66,-.59]),backOut:Ks([.33,1.53,.69,.99])};function PR(e,t){if(e)return typeof e=="function"&&ju()?LR(e,t):Fy(e)?Ks(e):Array.isArray(e)?e.map(r=>PR(r,t)||bg.easeOut):bg[e]}const Vr={x:!1,y:!1};function jR(){return Vr.x||Vr.y}function OM(e,t,r){var n;if(e instanceof Element)return[e];if(typeof e=="string"){let o=document;const s=(n=void 0)!==null&&n!==void 0?n:o.querySelectorAll(e);return s?Array.from(s):[]}return Array.from(e)}function FR(e,t){const r=OM(e),n=new AbortController,o={passive:!0,...t,signal:n.signal};return[r,o,()=>n.abort()]}function P1(e){return t=>{t.pointerType==="touch"||jR()||e(t)}}function LM(e,t,r={}){const[n,o,s]=FR(e,r),l=P1(c=>{const{target:d}=c,h=t(c);if(typeof h!="function"||!d)return;const m=P1(f=>{h(f),d.removeEventListener("pointerleave",m)});d.addEventListener("pointerleave",m,o)});return n.forEach(c=>{c.addEventListener("pointerenter",l,o)}),s}const IR=(e,t)=>t?e===t?!0:IR(e,t.parentElement):!1,Iy=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,MM=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function PM(e){return MM.has(e.tagName)||e.tabIndex!==-1}const Xs=new WeakSet;function j1(e){return t=>{t.key==="Enter"&&e(t)}}function jh(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const jM=(e,t)=>{const r=e.currentTarget;if(!r)return;const n=j1(()=>{if(Xs.has(r))return;jh(r,"down");const o=j1(()=>{jh(r,"up")}),s=()=>jh(r,"cancel");r.addEventListener("keyup",o,t),r.addEventListener("blur",s,t)});r.addEventListener("keydown",n,t),r.addEventListener("blur",()=>r.removeEventListener("keydown",n),t)};function F1(e){return Iy(e)&&!jR()}function FM(e,t,r={}){const[n,o,s]=FR(e,r),l=c=>{const d=c.currentTarget;if(!F1(c)||Xs.has(d))return;Xs.add(d);const h=t(c),m=(g,x)=>{window.removeEventListener("pointerup",f),window.removeEventListener("pointercancel",p),!(!F1(g)||!Xs.has(d))&&(Xs.delete(d),typeof h=="function"&&h(g,{success:x}))},f=g=>{m(g,r.useGlobalTarget||IR(d,g.target))},p=g=>{m(g,!1)};window.addEventListener("pointerup",f,o),window.addEventListener("pointercancel",p,o)};return n.forEach(c=>{!PM(c)&&c.getAttribute("tabindex")===null&&(c.tabIndex=0),(r.useGlobalTarget?window:c).addEventListener("pointerdown",l,o),c.addEventListener("focus",h=>jM(h,o),o)}),s}function IM(e){return e==="x"||e==="y"?Vr[e]?null:(Vr[e]=!0,()=>{Vr[e]=!1}):Vr.x||Vr.y?null:(Vr.x=Vr.y=!0,()=>{Vr.x=Vr.y=!1})}const WR=new Set(["width","height","top","left","right","bottom",...Va]);let Su;function WM(){Su=void 0}const fn={now:()=>(Su===void 0&&fn.set(It.isProcessing||M8.useManualTiming?It.timestamp:performance.now()),Su),set:e=>{Su=e,queueMicrotask(WM)}};function Wy(e,t){e.indexOf(t)===-1&&e.push(t)}function zy(e,t){const r=e.indexOf(t);r>-1&&e.splice(r,1)}class Hy{constructor(){this.subscriptions=[]}add(t){return Wy(this.subscriptions,t),()=>zy(this.subscriptions,t)}notify(t,r,n){const o=this.subscriptions.length;if(o)if(o===1)this.subscriptions[0](t,r,n);else for(let s=0;s<o;s++){const l=this.subscriptions[s];l&&l(t,r,n)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}function zR(e,t){return t?e*(1e3/t):0}const I1=30,zM=e=>!isNaN(parseFloat(e));class HM{constructor(t,r={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(n,o=!0)=>{const s=fn.now();this.updatedAt!==s&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(n),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),o&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=r.owner}setCurrent(t){this.current=t,this.updatedAt=fn.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=zM(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,r){this.events[t]||(this.events[t]=new Hy);const n=this.events[t].add(r);return t==="change"?()=>{n(),at.read(()=>{this.events.change.getSize()||this.stop()})}:n}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,r){this.passiveEffect=t,this.stopPassiveEffect=r}set(t,r=!0){!r||!this.passiveEffect?this.updateAndNotify(t,r):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,r,n){this.set(r),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-n}jump(t,r=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,r&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=fn.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>I1)return 0;const r=Math.min(this.updatedAt-this.prevUpdatedAt,I1);return zR(parseFloat(this.current)-parseFloat(this.prevFrameValue),r)}start(t){return this.stop(),new Promise(r=>{this.hasAnimated=!0,this.animation=t(r),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function ml(e,t){return new HM(e,t)}function qM(e,t,r){e.hasValue(t)?e.getValue(t).set(r):e.addValue(t,ml(r))}function UM(e,t){const r=cd(e,t);let{transitionEnd:n={},transition:o={},...s}=r||{};s={...s,...n};for(const l in s){const c=rM(s[l]);qM(e,l,c)}}function GM(e){return!!(Kt(e)&&e.add)}function vg(e,t){const r=e.getValue("willChange");if(GM(r))return r.add(t)}function HR(e){return e.props[bR]}const qR=(e,t,r)=>(((1-3*r+3*t)*e+(3*r-6*t))*e+3*t)*e,VM=1e-7,YM=12;function KM(e,t,r,n,o){let s,l,c=0;do l=t+(r-t)/2,s=qR(l,n,o)-e,s>0?r=l:t=l;while(Math.abs(s)>VM&&++c<YM);return l}function Nl(e,t,r,n){if(e===t&&r===n)return wr;const o=s=>KM(s,0,1,e,r);return s=>s===0||s===1?s:qR(o(s),t,n)}const UR=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,GR=e=>t=>1-e(1-t),VR=Nl(.33,1.53,.69,.99),qy=GR(VR),YR=UR(qy),KR=e=>(e*=2)<1?.5*qy(e):.5*(2-Math.pow(2,-10*(e-1))),Uy=e=>1-Math.sin(Math.acos(e)),XR=GR(Uy),$R=UR(Uy),QR=e=>/^0[^.\s]+$/u.test(e);function XM(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||QR(e):!0}const rl=e=>Math.round(e*1e5)/1e5,Gy=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function $M(e){return e==null}const QM=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Vy=(e,t)=>r=>!!(typeof r=="string"&&QM.test(r)&&r.startsWith(e)||t&&!$M(r)&&Object.prototype.hasOwnProperty.call(r,t)),ZR=(e,t,r)=>n=>{if(typeof n!="string")return n;const[o,s,l,c]=n.match(Gy);return{[e]:parseFloat(o),[t]:parseFloat(s),[r]:parseFloat(l),alpha:c!==void 0?parseFloat(c):1}},ZM=e=>Pn(0,255,e),Fh={...Ya,transform:e=>Math.round(ZM(e))},uo={test:Vy("rgb","red"),parse:ZR("red","green","blue"),transform:({red:e,green:t,blue:r,alpha:n=1})=>"rgba("+Fh.transform(e)+", "+Fh.transform(t)+", "+Fh.transform(r)+", "+rl(pl.transform(n))+")"};function JM(e){let t="",r="",n="",o="";return e.length>5?(t=e.substring(1,3),r=e.substring(3,5),n=e.substring(5,7),o=e.substring(7,9)):(t=e.substring(1,2),r=e.substring(2,3),n=e.substring(3,4),o=e.substring(4,5),t+=t,r+=r,n+=n,o+=o),{red:parseInt(t,16),green:parseInt(r,16),blue:parseInt(n,16),alpha:o?parseInt(o,16)/255:1}}const wg={test:Vy("#"),parse:JM,transform:uo.transform},ya={test:Vy("hsl","hue"),parse:ZR("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:r,alpha:n=1})=>"hsla("+Math.round(e)+", "+dn.transform(rl(t))+", "+dn.transform(rl(r))+", "+rl(pl.transform(n))+")"},Yt={test:e=>uo.test(e)||wg.test(e)||ya.test(e),parse:e=>uo.test(e)?uo.parse(e):ya.test(e)?ya.parse(e):wg.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?uo.transform(e):ya.transform(e)},eP=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function tP(e){var t,r;return isNaN(e)&&typeof e=="string"&&(((t=e.match(Gy))===null||t===void 0?void 0:t.length)||0)+(((r=e.match(eP))===null||r===void 0?void 0:r.length)||0)>0}const JR="number",eA="color",rP="var",nP="var(",W1="${}",iP=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function gl(e){const t=e.toString(),r=[],n={color:[],number:[],var:[]},o=[];let s=0;const c=t.replace(iP,d=>(Yt.test(d)?(n.color.push(s),o.push(eA),r.push(Yt.parse(d))):d.startsWith(nP)?(n.var.push(s),o.push(rP),r.push(d)):(n.number.push(s),o.push(JR),r.push(parseFloat(d))),++s,W1)).split(W1);return{values:r,split:c,indexes:n,types:o}}function tA(e){return gl(e).values}function rA(e){const{split:t,types:r}=gl(e),n=t.length;return o=>{let s="";for(let l=0;l<n;l++)if(s+=t[l],o[l]!==void 0){const c=r[l];c===JR?s+=rl(o[l]):c===eA?s+=Yt.transform(o[l]):s+=o[l]}return s}}const oP=e=>typeof e=="number"?0:e;function aP(e){const t=tA(e);return rA(e)(t.map(oP))}const Di={test:tP,parse:tA,createTransformer:rA,getAnimatableNone:aP},sP=new Set(["brightness","contrast","saturate","opacity"]);function lP(e){const[t,r]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[n]=r.match(Gy)||[];if(!n)return e;const o=r.replace(n,"");let s=sP.has(t)?1:0;return n!==r&&(s*=100),t+"("+s+o+")"}const cP=/\b([a-z-]*)\(.*?\)/gu,Sg={...Di,getAnimatableNone:e=>{const t=e.match(cP);return t?t.map(lP).join(" "):e}},uP={...Dy,color:Yt,backgroundColor:Yt,outlineColor:Yt,fill:Yt,stroke:Yt,borderColor:Yt,borderTopColor:Yt,borderRightColor:Yt,borderBottomColor:Yt,borderLeftColor:Yt,filter:Sg,WebkitFilter:Sg},Yy=e=>uP[e];function nA(e,t){let r=Yy(e);return r!==Sg&&(r=Di),r.getAnimatableNone?r.getAnimatableNone(t):void 0}const dP=new Set(["auto","none","0"]);function fP(e,t,r){let n=0,o;for(;n<e.length&&!o;){const s=e[n];typeof s=="string"&&!dP.has(s)&&gl(s).values.length&&(o=e[n]),n++}if(o&&r)for(const s of t)e[s]=nA(r,o)}const z1=e=>e===Ya||e===Me,H1=(e,t)=>parseFloat(e.split(", ")[t]),q1=(e,t)=>(r,{transform:n})=>{if(n==="none"||!n)return 0;const o=n.match(/^matrix3d\((.+)\)$/u);if(o)return H1(o[1],t);{const s=n.match(/^matrix\((.+)\)$/u);return s?H1(s[1],e):0}},hP=new Set(["x","y","z"]),pP=Va.filter(e=>!hP.has(e));function mP(e){const t=[];return pP.forEach(r=>{const n=e.getValue(r);n!==void 0&&(t.push([r,n.get()]),n.set(r.startsWith("scale")?1:0))}),t}const Fa={width:({x:e},{paddingLeft:t="0",paddingRight:r="0"})=>e.max-e.min-parseFloat(t)-parseFloat(r),height:({y:e},{paddingTop:t="0",paddingBottom:r="0"})=>e.max-e.min-parseFloat(t)-parseFloat(r),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:q1(4,13),y:q1(5,14)};Fa.translateX=Fa.x;Fa.translateY=Fa.y;const xo=new Set;let kg=!1,xg=!1;
vendor: 15,412 bytes, line 289
289function iA(){if(xg){const e=Array.from(xo).filter(n=>n.needsMeasurement),t=new Set(e.map(n=>n.element)),r=new Map;t.forEach(n=>{const o=mP(n);o.length&&(r.set(n,o),n.render())}),e.forEach(n=>n.measureInitialState()),t.forEach(n=>{n.render();const o=r.get(n);o&&o.forEach(([s,l])=>{var c;(c=n.getValue(s))===null||c===void 0||c.set(l)})}),e.forEach(n=>n.measureEndState()),e.forEach(n=>{n.suspendedScrollY!==void 0&&window.scrollTo(0,n.suspendedScrollY)})}xg=!1,kg=!1,xo.forEach(e=>e.complete()),xo.clear()}function oA(){xo.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(xg=!0)})}function gP(){oA(),iA()}class Ky{constructor(t,r,n,o,s,l=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=r,this.name=n,this.motionValue=o,this.element=s,this.isAsync=l}scheduleResolve(){this.isScheduled=!0,this.isAsync?(xo.add(this),kg||(kg=!0,at.read(oA),at.resolveKeyframes(iA))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:r,element:n,motionValue:o}=this;for(let s=0;s<t.length;s++)if(t[s]===null)if(s===0){const l=o==null?void 0:o.get(),c=t[t.length-1];if(l!==void 0)t[0]=l;else if(n&&r){const d=n.readValue(r,c);d!=null&&(t[0]=d)}t[0]===void 0&&(t[0]=c),o&&l===void 0&&o.set(t[0])}else t[s]=t[s-1]}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(){this.isComplete=!0,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe),xo.delete(this)}cancel(){this.isComplete||(this.isScheduled=!1,xo.delete(this))}resume(){this.isComplete||this.scheduleResolve()}}const aA=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),yP=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function bP(e){const t=yP.exec(e);if(!t)return[,];const[,r,n,o]=t;return[`--${r??n}`,o]}function sA(e,t,r=1){const[n,o]=bP(e);if(!n)return;const s=window.getComputedStyle(t).getPropertyValue(n);if(s){const l=s.trim();return aA(l)?parseFloat(l):l}return _y(o)?sA(o,t,r+1):o}const lA=e=>t=>t.test(e),vP={test:e=>e==="auto",parse:e=>e},cA=[Ya,Me,dn,fi,lM,sM,vP],U1=e=>cA.find(lA(e));class uA extends Ky{constructor(t,r,n,o,s){super(t,r,n,o,s,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:r,name:n}=this;if(!r||!r.current)return;super.readKeyframes();for(let d=0;d<t.length;d++){let h=t[d];if(typeof h=="string"&&(h=h.trim(),_y(h))){const m=sA(h,r.current);m!==void 0&&(t[d]=m),d===t.length-1&&(this.finalKeyframe=h)}}if(this.resolveNoneKeyframes(),!WR.has(n)||t.length!==2)return;const[o,s]=t,l=U1(o),c=U1(s);if(l!==c)if(z1(l)&&z1(c))for(let d=0;d<t.length;d++){const h=t[d];typeof h=="string"&&(t[d]=parseFloat(h))}else this.needsMeasurement=!0}resolveNoneKeyframes(){const{unresolvedKeyframes:t,name:r}=this,n=[];for(let o=0;o<t.length;o++)XM(t[o])&&n.push(o);n.length&&fP(t,n,r)}measureInitialState(){const{element:t,unresolvedKeyframes:r,name:n}=this;if(!t||!t.current)return;n==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=Fa[n](t.measureViewportBox(),window.getComputedStyle(t.current)),r[0]=this.measuredOrigin;const o=r[r.length-1];o!==void 0&&t.getValue(n,o).jump(o,!1)}measureEndState(){var t;const{element:r,name:n,unresolvedKeyframes:o}=this;if(!r||!r.current)return;const s=r.getValue(n);s&&s.jump(this.measuredOrigin,!1);const l=o.length-1,c=o[l];o[l]=Fa[n](r.measureViewportBox(),window.getComputedStyle(r.current)),c!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=c),!((t=this.removedTransforms)===null||t===void 0)&&t.length&&this.removedTransforms.forEach(([d,h])=>{r.getValue(d).set(h)}),this.resolveNoneKeyframes()}}const G1=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(Di.test(e)||e==="0")&&!e.startsWith("url("));function wP(e){const t=e[0];if(e.length===1)return!0;for(let r=0;r<e.length;r++)if(e[r]!==t)return!0}function SP(e,t,r,n){const o=e[0];if(o===null)return!1;if(t==="display"||t==="visibility")return!0;const s=e[e.length-1],l=G1(o,t),c=G1(s,t);return!l||!c?!1:wP(e)||(r==="spring"||jy(r))&&n}const kP=e=>e!==null;function ud(e,{repeat:t,repeatType:r="loop"},n){const o=e.filter(kP),s=t&&r!=="loop"&&t%2===1?0:o.length-1;return!s||n===void 0?o[s]:n}const xP=40;class dA{constructor({autoplay:t=!0,delay:r=0,type:n="keyframes",repeat:o=0,repeatDelay:s=0,repeatType:l="loop",...c}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=fn.now(),this.options={autoplay:t,delay:r,type:n,repeat:o,repeatDelay:s,repeatType:l,...c},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>xP?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&gP(),this._resolved}onKeyframesResolved(t,r){this.resolvedAt=fn.now(),this.hasAttemptedResolve=!0;const{name:n,type:o,velocity:s,delay:l,onComplete:c,onUpdate:d,isGenerator:h}=this.options;if(!h&&!SP(t,n,o,s))if(l)this.options.duration=0;else{d&&d(ud(t,this.options,r)),c&&c(),this.resolveFinishedPromise();return}const m=this.initPlayback(t,r);m!==!1&&(this._resolved={keyframes:t,finalKeyframe:r,...m},this.onPostResolved())}onPostResolved(){}then(t,r){return this.currentFinishedPromise.then(t,r)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const dt=(e,t,r)=>e+(t-e)*r;function Ih(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*6*r:r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function CP({hue:e,saturation:t,lightness:r,alpha:n}){e/=360,t/=100,r/=100;let o=0,s=0,l=0;if(!t)o=s=l=r;else{const c=r<.5?r*(1+t):r+t-r*t,d=2*r-c;o=Ih(d,c,e+1/3),s=Ih(d,c,e),l=Ih(d,c,e-1/3)}return{red:Math.round(o*255),green:Math.round(s*255),blue:Math.round(l*255),alpha:n}}function Fu(e,t){return r=>r>0?t:e}const Wh=(e,t,r)=>{const n=e*e,o=r*(t*t-n)+n;return o<0?0:Math.sqrt(o)},RP=[wg,uo,ya],AP=e=>RP.find(t=>t.test(e));function V1(e){const t=AP(e);if(!t)return!1;let r=t.parse(e);return t===ya&&(r=CP(r)),r}const Y1=(e,t)=>{const r=V1(e),n=V1(t);if(!r||!n)return Fu(e,t);const o={...r};return s=>(o.red=Wh(r.red,n.red,s),o.green=Wh(r.green,n.green,s),o.blue=Wh(r.blue,n.blue,s),o.alpha=dt(r.alpha,n.alpha,s),uo.transform(o))},TP=(e,t)=>r=>t(e(r)),Bl=(...e)=>e.reduce(TP),Cg=new Set(["none","hidden"]);function EP(e,t){return Cg.has(e)?r=>r<=0?e:t:r=>r>=1?t:e}function _P(e,t){return r=>dt(e,t,r)}function Xy(e){return typeof e=="number"?_P:typeof e=="string"?_y(e)?Fu:Yt.test(e)?Y1:BP:Array.isArray(e)?fA:typeof e=="object"?Yt.test(e)?Y1:DP:Fu}function fA(e,t){const r=[...e],n=r.length,o=e.map((s,l)=>Xy(s)(s,t[l]));return s=>{for(let l=0;l<n;l++)r[l]=o[l](s);return r}}function DP(e,t){const r={...e,...t},n={};for(const o in r)e[o]!==void 0&&t[o]!==void 0&&(n[o]=Xy(e[o])(e[o],t[o]));return o=>{for(const s in n)r[s]=n[s](o);return r}}function NP(e,t){var r;const n=[],o={color:0,var:0,number:0};for(let s=0;s<t.values.length;s++){const l=t.types[s],c=e.indexes[l][o[l]],d=(r=e.values[c])!==null&&r!==void 0?r:0;n[s]=d,o[l]++}return n}const BP=(e,t)=>{const r=Di.createTransformer(t),n=gl(e),o=gl(t);return n.indexes.var.length===o.indexes.var.length&&n.indexes.color.length===o.indexes.color.length&&n.indexes.number.length>=o.indexes.number.length?Cg.has(e)&&!o.values.length||Cg.has(t)&&!n.values.length?EP(e,t):Bl(fA(NP(n,o),o.values),r):Fu(e,t)};function hA(e,t,r){return typeof e=="number"&&typeof t=="number"&&typeof r=="number"?dt(e,t,r):Xy(e)(e,t)}const OP=5;function pA(e,t,r){const n=Math.max(t-OP,0);return zR(r-e(n),t-n)}const mt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},zh=.001;function LP({duration:e=mt.duration,bounce:t=mt.bounce,velocity:r=mt.velocity,mass:n=mt.mass}){let o,s,l=1-t;l=Pn(mt.minDamping,mt.maxDamping,l),e=Pn(mt.minDuration,mt.maxDuration,On(e)),l<1?(o=h=>{const m=h*l,f=m*e,p=m-r,g=Rg(h,l),x=Math.exp(-f);return zh-p/g*x},s=h=>{const f=h*l*e,p=f*r+r,g=Math.pow(l,2)*Math.pow(h,2)*e,x=Math.exp(-f),b=Rg(Math.pow(h,2),l);return(-o(h)+zh>0?-1:1)*((p-g)*x)/b}):(o=h=>{const m=Math.exp(-h*e),f=(h-r)*e+1;return-zh+m*f},s=h=>{const m=Math.exp(-h*e),f=(r-h)*(e*e);return m*f});const c=5/e,d=PP(o,s,c);if(e=Bn(e),isNaN(d))return{stiffness:mt.stiffness,damping:mt.damping,duration:e};{const h=Math.pow(d,2)*n;return{stiffness:h,damping:l*2*Math.sqrt(n*h),duration:e}}}const MP=12;function PP(e,t,r){let n=r;for(let o=1;o<MP;o++)n=n-e(n)/t(n);return n}function Rg(e,t){return e*Math.sqrt(1-t*t)}const jP=["duration","bounce"],FP=["stiffness","damping","mass"];function K1(e,t){return t.some(r=>e[r]!==void 0)}function IP(e){let t={velocity:mt.velocity,stiffness:mt.stiffness,damping:mt.damping,mass:mt.mass,isResolvedFromDuration:!1,...e};if(!K1(e,FP)&&K1(e,jP))if(e.visualDuration){const r=e.visualDuration,n=2*Math.PI/(r*1.2),o=n*n,s=2*Pn(.05,1,1-(e.bounce||0))*Math.sqrt(o);t={...t,mass:mt.mass,stiffness:o,damping:s}}else{const r=LP(e);t={...t,...r,mass:mt.mass},t.isResolvedFromDuration=!0}return t}function mA(e=mt.visualDuration,t=mt.bounce){const r=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:n,restDelta:o}=r;const s=r.keyframes[0],l=r.keyframes[r.keyframes.length-1],c={done:!1,value:s},{stiffness:d,damping:h,mass:m,duration:f,velocity:p,isResolvedFromDuration:g}=IP({...r,velocity:-On(r.velocity||0)}),x=p||0,b=h/(2*Math.sqrt(d*m)),w=l-s,y=On(Math.sqrt(d/m)),S=Math.abs(w)<5;n||(n=S?mt.restSpeed.granular:mt.restSpeed.default),o||(o=S?mt.restDelta.granular:mt.restDelta.default);let C;if(b<1){const A=Rg(y,b);C=N=>{const D=Math.exp(-b*y*N);return l-D*((x+b*y*w)/A*Math.sin(A*N)+w*Math.cos(A*N))}}else if(b===1)C=A=>l-Math.exp(-y*A)*(w+(x+y*w)*A);else{const A=y*Math.sqrt(b*b-1);C=N=>{const D=Math.exp(-b*y*N),_=Math.min(A*N,300);return l-D*((x+b*y*w)*Math.sinh(_)+A*w*Math.cosh(_))/A}}const k={calculatedDuration:g&&f||null,next:A=>{const N=C(A);if(g)c.done=A>=f;else{let D=0;b<1&&(D=A===0?Bn(x):pA(C,A,N));const _=Math.abs(D)<=n,F=Math.abs(l-N)<=o;c.done=_&&F}return c.value=c.done?l:N,c},toString:()=>{const A=Math.min(OR(k),yg),N=LR(D=>k.next(A*D).value,A,30);return A+"ms "+N}};return k}function X1({keyframes:e,velocity:t=0,power:r=.8,timeConstant:n=325,bounceDamping:o=10,bounceStiffness:s=500,modifyTarget:l,min:c,max:d,restDelta:h=.5,restSpeed:m}){const f=e[0],p={done:!1,value:f},g=_=>c!==void 0&&_<c||d!==void 0&&_>d,x=_=>c===void 0?d:d===void 0||Math.abs(c-_)<Math.abs(d-_)?c:d;let b=r*t;const w=f+b,y=l===void 0?w:l(w);y!==w&&(b=y-f);const S=_=>-b*Math.exp(-_/n),C=_=>y+S(_),k=_=>{const F=S(_),M=C(_);p.done=Math.abs(F)<=h,p.value=p.done?y:M};let A,N;const D=_=>{g(p.value)&&(A=_,N=mA({keyframes:[p.value,x(p.value)],velocity:pA(C,_,p.value),damping:o,stiffness:s,restDelta:h,restSpeed:m}))};return D(0),{calculatedDuration:null,next:_=>{let F=!1;return!N&&A===void 0&&(F=!0,k(_),D(_)),A!==void 0&&_>=A?N.next(_-A):(!F&&k(_),p)}}}const WP=Nl(.42,0,1,1),zP=Nl(0,0,.58,1),gA=Nl(.42,0,.58,1),HP=e=>Array.isArray(e)&&typeof e[0]!="number",qP={linear:wr,easeIn:WP,easeInOut:gA,easeOut:zP,circIn:Uy,circInOut:$R,circOut:XR,backIn:qy,backInOut:YR,backOut:VR,anticipate:KR},$1=e=>{if(Fy(e)){hR(e.length===4);const[t,r,n,o]=e;return Nl(t,r,n,o)}else if(typeof e=="string")return qP[e];return e};function UP(e,t,r){const n=[],o=r||hA,s=e.length-1;for(let l=0;l<s;l++){let c=o(e[l],e[l+1]);if(t){const d=Array.isArray(t)?t[l]||wr:t;c=Bl(d,c)}n.push(c)}return n}function GP(e,t,{clamp:r=!0,ease:n,mixer:o}={}){const s=e.length;if(hR(s===t.length),s===1)return()=>t[0];if(s===2&&t[0]===t[1])return()=>t[1];const l=e[0]===e[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const c=UP(t,n,o),d=c.length,h=m=>{if(l&&m<e[0])return t[0];let f=0;if(d>1)for(;f<e.length-2&&!(m<e[f+1]);f++);const p=Pa(e[f],e[f+1],m);return c[f](p)};return r?m=>h(Pn(e[0],e[s-1],m)):h}function VP(e,t){const r=e[e.length-1];for(let n=1;n<=t;n++){const o=Pa(0,t,n);e.push(dt(r,1,o))}}function YP(e){const t=[0];return VP(t,e.length-1),t}function KP(e,t){return e.map(r=>r*t)}function XP(e,t){return e.map(()=>t||gA).splice(0,e.length-1)}function Iu({duration:e=300,keyframes:t,times:r,ease:n="easeInOut"}){const o=HP(n)?n.map($1):$1(n),s={done:!1,value:t[0]},l=KP(r&&r.length===t.length?r:YP(t),e),c=GP(l,t,{ease:Array.isArray(o)?o:XP(t,o)});return{calculatedDuration:e,next:d=>(s.value=c(d),s.done=d>=e,s)}}const $P=e=>{const t=({timestamp:r})=>e(r);return{start:()=>at.update(t,!0),stop:()=>_i(t),now:()=>It.isProcessing?It.timestamp:fn.now()}},QP={decay:X1,inertia:X1,tween:Iu,keyframes:Iu,spring:mA},ZP=e=>e/100;class $y extends dA{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:d}=this.options;d&&d()};const{name:r,motionValue:n,element:o,keyframes:s}=this.options,l=(o==null?void 0:o.KeyframeResolver)||Ky,c=(d,h)=>this.onKeyframesResolved(d,h);this.resolver=new l(s,c,r,n,o),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:r="keyframes",repeat:n=0,repeatDelay:o=0,repeatType:s,velocity:l=0}=this.options,c=jy(r)?r:QP[r]||Iu;let d,h;c!==Iu&&typeof t[0]!="number"&&(d=Bl(ZP,hA(t[0],t[1])),t=[0,100]);const m=c({...this.options,keyframes:t});s==="mirror"&&(h=c({...this.options,keyframes:[...t].reverse(),velocity:-l})),m.calculatedDuration===null&&(m.calculatedDuration=OR(m));const{calculatedDuration:f}=m,p=f+o,g=p*(n+1)-o;return{generator:m,mirroredGenerator:h,mapPercentToKeyframes:d,calculatedDuration:f,resolvedDuration:p,totalDuration:g}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,r=!1){const{resolved:n}=this;if(!n){const{keyframes:_}=this.options;return{done:!0,value:_[_.length-1]}}const{finalKeyframe:o,generator:s,mirroredGenerator:l,mapPercentToKeyframes:c,keyframes:d,calculatedDuration:h,totalDuration:m,resolvedDuration:f}=n;if(this.startTime===null)return s.next(0);const{delay:p,repeat:g,repeatType:x,repeatDelay:b,onUpdate:w}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-m/this.speed,this.startTime)),r?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const y=this.currentTime-p*(this.speed>=0?1:-1),S=this.speed>=0?y<0:y>m;this.currentTime=Math.max(y,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=m);let C=this.currentTime,k=s;if(g){const _=Math.min(this.currentTime,m)/f;let F=Math.floor(_),M=_%1;!M&&_>=1&&(M=1),M===1&&F--,F=Math.min(F,g+1),!!(F%2)&&(x==="reverse"?(M=1-M,b&&(M-=b/f)):x==="mirror"&&(k=l)),C=Pn(0,1,M)*f}const A=S?{done:!1,value:d[0]}:k.next(C);c&&(A.value=c(A.value));let{done:N}=A;!S&&h!==null&&(N=this.speed>=0?this.currentTime>=m:this.currentTime<=0);const D=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&N);return D&&o!==void 0&&(A.value=ud(d,this.options,o)),w&&w(A.value),D&&this.finish(),A}get duration(){const{resolved:t}=this;return t?On(t.calculatedDuration):0}
vendor: 54,407 bytes, line 289
289get time(){return On(this.currentTime)}set time(t){t=Bn(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const r=this.playbackSpeed!==t;this.playbackSpeed=t,r&&(this.time=On(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=$P,onPlay:r,startTime:n}=this.options;this.driver||(this.driver=t(s=>this.tick(s))),r&&r();const o=this.driver.now();this.holdTime!==null?this.startTime=o-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=o):this.startTime=n??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const JP=new Set(["opacity","clipPath","filter","transform"]);function ej(e,t,r,{delay:n=0,duration:o=300,repeat:s=0,repeatType:l="loop",ease:c="easeInOut",times:d}={}){const h={[t]:r};d&&(h.offset=d);const m=PR(c,o);return Array.isArray(m)&&(h.easing=m),e.animate(h,{delay:n,duration:o,easing:Array.isArray(m)?"linear":m,fill:"both",iterations:s+1,direction:l==="reverse"?"alternate":"normal"})}const tj=ky(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Wu=10,rj=2e4;function nj(e){return jy(e.type)||e.type==="spring"||!MR(e.ease)}function ij(e,t){const r=new $y({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let n={done:!1,value:e[0]};const o=[];let s=0;for(;!n.done&&s<rj;)n=r.sample(s),o.push(n.value),s+=Wu;return{times:void 0,keyframes:o,duration:s-Wu,ease:"linear"}}const yA={anticipate:KR,backInOut:YR,circInOut:$R};function oj(e){return e in yA}class Q1 extends dA{constructor(t){super(t);const{name:r,motionValue:n,element:o,keyframes:s}=this.options;this.resolver=new uA(s,(l,c)=>this.onKeyframesResolved(l,c),r,n,o),this.resolver.scheduleResolve()}initPlayback(t,r){let{duration:n=300,times:o,ease:s,type:l,motionValue:c,name:d,startTime:h}=this.options;if(!c.owner||!c.owner.current)return!1;if(typeof s=="string"&&ju()&&oj(s)&&(s=yA[s]),nj(this.options)){const{onComplete:f,onUpdate:p,motionValue:g,element:x,...b}=this.options,w=ij(t,b);t=w.keyframes,t.length===1&&(t[1]=t[0]),n=w.duration,o=w.times,s=w.ease,l="keyframes"}const m=ej(c.owner.current,d,t,{...this.options,duration:n,times:o,ease:s});return m.startTime=h??this.calcStartTime(),this.pendingTimeline?(M1(m,this.pendingTimeline),this.pendingTimeline=void 0):m.onfinish=()=>{const{onComplete:f}=this.options;c.set(ud(t,this.options,r)),f&&f(),this.cancel(),this.resolveFinishedPromise()},{animation:m,duration:n,times:o,type:l,ease:s,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:r}=t;return On(r)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:r}=t;return On(r.currentTime||0)}set time(t){const{resolved:r}=this;if(!r)return;const{animation:n}=r;n.currentTime=Bn(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:r}=t;return r.playbackRate}set speed(t){const{resolved:r}=this;if(!r)return;const{animation:n}=r;n.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:r}=t;return r.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:r}=t;return r.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:r}=this;if(!r)return wr;const{animation:n}=r;M1(n,t)}return wr}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:r}=t;r.playState==="finished"&&this.updateFinishedPromise(),r.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:r}=t;r.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:r,keyframes:n,duration:o,type:s,ease:l,times:c}=t;if(r.playState==="idle"||r.playState==="finished")return;if(this.time){const{motionValue:h,onUpdate:m,onComplete:f,element:p,...g}=this.options,x=new $y({...g,keyframes:n,duration:o,type:s,ease:l,times:c,isGenerator:!0}),b=Bn(this.time);h.setWithVelocity(x.sample(b-Wu).value,x.sample(b).value,Wu)}const{onStop:d}=this.options;d&&d(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:r,name:n,repeatDelay:o,repeatType:s,damping:l,type:c}=t;if(!r||!r.owner||!(r.owner.current instanceof HTMLElement))return!1;const{onUpdate:d,transformTemplate:h}=r.owner.getProps();return tj()&&n&&JP.has(n)&&!d&&!h&&!o&&s!=="mirror"&&l!==0&&c!=="inertia"}}const aj={type:"spring",stiffness:500,damping:25,restSpeed:10},sj=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),lj={type:"keyframes",duration:.8},cj={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},uj=(e,{keyframes:t})=>t.length>2?lj:jo.has(e)?e.startsWith("scale")?sj(t[1]):aj:cj;function dj({when:e,delay:t,delayChildren:r,staggerChildren:n,staggerDirection:o,repeat:s,repeatType:l,repeatDelay:c,from:d,elapsed:h,...m}){return!!Object.keys(m).length}const Qy=(e,t,r,n={},o,s)=>l=>{const c=Py(n,e)||{},d=c.delay||n.delay||0;let{elapsed:h=0}=n;h=h-Bn(d);let m={keyframes:Array.isArray(r)?r:[null,r],ease:"easeOut",velocity:t.getVelocity(),...c,delay:-h,onUpdate:p=>{t.set(p),c.onUpdate&&c.onUpdate(p)},onComplete:()=>{l(),c.onComplete&&c.onComplete()},name:e,motionValue:t,element:s?void 0:o};dj(c)||(m={...m,...uj(e,m)}),m.duration&&(m.duration=Bn(m.duration)),m.repeatDelay&&(m.repeatDelay=Bn(m.repeatDelay)),m.from!==void 0&&(m.keyframes[0]=m.from);let f=!1;if((m.type===!1||m.duration===0&&!m.repeatDelay)&&(m.duration=0,m.delay===0&&(f=!0)),f&&!s&&t.get()!==void 0){const p=ud(m.keyframes,c);if(p!==void 0)return at.update(()=>{m.onUpdate(p),m.onComplete()}),new DM([])}return!s&&Q1.supports(m)?new Q1(m):new $y(m)};function fj({protectedKeys:e,needsAnimating:t},r){const n=e.hasOwnProperty(r)&&t[r]!==!0;return t[r]=!1,n}function bA(e,t,{delay:r=0,transitionOverride:n,type:o}={}){var s;let{transition:l=e.getDefaultTransition(),transitionEnd:c,...d}=t;n&&(l=n);const h=[],m=o&&e.animationState&&e.animationState.getState()[o];for(const f in d){const p=e.getValue(f,(s=e.latestValues[f])!==null&&s!==void 0?s:null),g=d[f];if(g===void 0||m&&fj(m,f))continue;const x={delay:r,...Py(l||{},f)};let b=!1;if(window.MotionHandoffAnimation){const y=HR(e);if(y){const S=window.MotionHandoffAnimation(y,f,at);S!==null&&(x.startTime=S,b=!0)}}vg(e,f),p.start(Qy(f,p,g,e.shouldReduceMotion&&WR.has(f)?{type:!1}:x,e,b));const w=p.animation;w&&h.push(w)}return c&&Promise.all(h).then(()=>{at.update(()=>{c&&UM(e,c)})}),h}function Ag(e,t,r={}){var n;const o=cd(e,t,r.type==="exit"?(n=e.presenceContext)===null||n===void 0?void 0:n.custom:void 0);let{transition:s=e.getDefaultTransition()||{}}=o||{};r.transitionOverride&&(s=r.transitionOverride);const l=o?()=>Promise.all(bA(e,o,r)):()=>Promise.resolve(),c=e.variantChildren&&e.variantChildren.size?(h=0)=>{const{delayChildren:m=0,staggerChildren:f,staggerDirection:p}=s;return hj(e,t,m+h,f,p,r)}:()=>Promise.resolve(),{when:d}=s;if(d){const[h,m]=d==="beforeChildren"?[l,c]:[c,l];return h().then(()=>m())}else return Promise.all([l(),c(r.delay)])}function hj(e,t,r=0,n=0,o=1,s){const l=[],c=(e.variantChildren.size-1)*n,d=o===1?(h=0)=>h*n:(h=0)=>c-h*n;return Array.from(e.variantChildren).sort(pj).forEach((h,m)=>{h.notify("AnimationStart",t),l.push(Ag(h,t,{...s,delay:r+d(m)}).then(()=>h.notify("AnimationComplete",t)))}),Promise.all(l)}function pj(e,t){return e.sortNodePosition(t)}function mj(e,t,r={}){e.notify("AnimationStart",t);let n;if(Array.isArray(t)){const o=t.map(s=>Ag(e,s,r));n=Promise.all(o)}else if(typeof t=="string")n=Ag(e,t,r);else{const o=typeof t=="function"?cd(e,t,r.custom):t;n=Promise.all(bA(e,o,r))}return n.then(()=>{e.notify("AnimationComplete",t)})}const gj=Cy.length;function vA(e){if(!e)return;if(!e.isControllingVariants){const r=e.parent?vA(e.parent)||{}:{};return e.props.initial!==void 0&&(r.initial=e.props.initial),r}const t={};for(let r=0;r<gj;r++){const n=Cy[r],o=e.props[n];(hl(o)||o===!1)&&(t[n]=o)}return t}const yj=[...xy].reverse(),bj=xy.length;function vj(e){return t=>Promise.all(t.map(({animation:r,options:n})=>mj(e,r,n)))}function wj(e){let t=vj(e),r=Z1(),n=!0;const o=d=>(h,m)=>{var f;const p=cd(e,m,d==="exit"?(f=e.presenceContext)===null||f===void 0?void 0:f.custom:void 0);if(p){const{transition:g,transitionEnd:x,...b}=p;h={...h,...b,...x}}return h};function s(d){t=d(e)}function l(d){const{props:h}=e,m=vA(e.parent)||{},f=[],p=new Set;let g={},x=1/0;for(let w=0;w<bj;w++){const y=yj[w],S=r[y],C=h[y]!==void 0?h[y]:m[y],k=hl(C),A=y===d?S.isActive:null;A===!1&&(x=w);let N=C===m[y]&&C!==h[y]&&k;if(N&&n&&e.manuallyAnimateOnMount&&(N=!1),S.protectedKeys={...g},!S.isActive&&A===null||!C&&!S.prevProp||sd(C)||typeof C=="boolean")continue;const D=Sj(S.prevProp,C);let _=D||y===d&&S.isActive&&!N&&k||w>x&&k,F=!1;const M=Array.isArray(C)?C:[C];let O=M.reduce(o(y),{});A===!1&&(O={});const{prevResolvedValues:j={}}=S,I={...j,...O},L=X=>{_=!0,p.has(X)&&(F=!0,p.delete(X)),S.needsAnimating[X]=!0;const Q=e.getValue(X);Q&&(Q.liveStyle=!1)};for(const X in I){const Q=O[X],K=j[X];if(g.hasOwnProperty(X))continue;let q=!1;gg(Q)&&gg(K)?q=!BR(Q,K):q=Q!==K,q?Q!=null?L(X):p.add(X):Q!==void 0&&p.has(X)?L(X):S.protectedKeys[X]=!0}S.prevProp=C,S.prevResolvedValues=O,S.isActive&&(g={...g,...O}),n&&e.blockInitialAnimation&&(_=!1),_&&(!(N&&D)||F)&&f.push(...M.map(X=>({animation:X,options:{type:y}})))}if(p.size){const w={};p.forEach(y=>{const S=e.getBaseTarget(y),C=e.getValue(y);C&&(C.liveStyle=!0),w[y]=S??null}),f.push({animation:w})}let b=!!f.length;return n&&(h.initial===!1||h.initial===h.animate)&&!e.manuallyAnimateOnMount&&(b=!1),n=!1,b?t(f):Promise.resolve()}function c(d,h){var m;if(r[d].isActive===h)return Promise.resolve();(m=e.variantChildren)===null||m===void 0||m.forEach(p=>{var g;return(g=p.animationState)===null||g===void 0?void 0:g.setActive(d,h)}),r[d].isActive=h;const f=l(d);for(const p in r)r[p].protectedKeys={};return f}return{animateChanges:l,setActive:c,setAnimateFunction:s,getState:()=>r,reset:()=>{r=Z1(),n=!0}}}function Sj(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!BR(t,e):!1}function ro(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Z1(){return{animate:ro(!0),whileInView:ro(),whileHover:ro(),whileTap:ro(),whileDrag:ro(),whileFocus:ro(),exit:ro()}}class Fi{constructor(t){this.isMounted=!1,this.node=t}update(){}}class kj extends Fi{constructor(t){super(t),t.animationState||(t.animationState=wj(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();sd(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:r}=this.node.prevProps||{};t!==r&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let xj=0;class Cj extends Fi{constructor(){super(...arguments),this.id=xj++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:r}=this.node.presenceContext,{isPresent:n}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===n)return;const o=this.node.animationState.setActive("exit",!t);r&&!t&&o.then(()=>r(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const Rj={animation:{Feature:kj},exit:{Feature:Cj}};function yl(e,t,r,n={passive:!0}){return e.addEventListener(t,r,n),()=>e.removeEventListener(t,r)}function Ol(e){return{point:{x:e.pageX,y:e.pageY}}}const Aj=e=>t=>Iy(t)&&e(t,Ol(t));function nl(e,t,r,n){return yl(e,t,Aj(r),n)}const J1=(e,t)=>Math.abs(e-t);function Tj(e,t){const r=J1(e.x,t.x),n=J1(e.y,t.y);return Math.sqrt(r**2+n**2)}class wA{constructor(t,r,{transformPagePoint:n,contextWindow:o,dragSnapToOrigin:s=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const f=qh(this.lastMoveEventInfo,this.history),p=this.startEvent!==null,g=Tj(f.offset,{x:0,y:0})>=3;if(!p&&!g)return;const{point:x}=f,{timestamp:b}=It;this.history.push({...x,timestamp:b});const{onStart:w,onMove:y}=this.handlers;p||(w&&w(this.lastMoveEvent,f),this.startEvent=this.lastMoveEvent),y&&y(this.lastMoveEvent,f)},this.handlePointerMove=(f,p)=>{this.lastMoveEvent=f,this.lastMoveEventInfo=Hh(p,this.transformPagePoint),at.update(this.updatePoint,!0)},this.handlePointerUp=(f,p)=>{this.end();const{onEnd:g,onSessionEnd:x,resumeAnimation:b}=this.handlers;if(this.dragSnapToOrigin&&b&&b(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const w=qh(f.type==="pointercancel"?this.lastMoveEventInfo:Hh(p,this.transformPagePoint),this.history);this.startEvent&&g&&g(f,w),x&&x(f,w)},!Iy(t))return;this.dragSnapToOrigin=s,this.handlers=r,this.transformPagePoint=n,this.contextWindow=o||window;const l=Ol(t),c=Hh(l,this.transformPagePoint),{point:d}=c,{timestamp:h}=It;this.history=[{...d,timestamp:h}];const{onSessionStart:m}=r;m&&m(t,qh(c,this.history)),this.removeListeners=Bl(nl(this.contextWindow,"pointermove",this.handlePointerMove),nl(this.contextWindow,"pointerup",this.handlePointerUp),nl(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),_i(this.updatePoint)}}function Hh(e,t){return t?{point:t(e.point)}:e}function eS(e,t){return{x:e.x-t.x,y:e.y-t.y}}function qh({point:e},t){return{point:e,delta:eS(e,SA(t)),offset:eS(e,Ej(t)),velocity:_j(t,.1)}}function Ej(e){return e[0]}function SA(e){return e[e.length-1]}function _j(e,t){if(e.length<2)return{x:0,y:0};let r=e.length-1,n=null;const o=SA(e);for(;r>=0&&(n=e[r],!(o.timestamp-n.timestamp>Bn(t)));)r--;if(!n)return{x:0,y:0};const s=On(o.timestamp-n.timestamp);if(s===0)return{x:0,y:0};const l={x:(o.x-n.x)/s,y:(o.y-n.y)/s};return l.x===1/0&&(l.x=0),l.y===1/0&&(l.y=0),l}const kA=1e-4,Dj=1-kA,Nj=1+kA,xA=.01,Bj=0-xA,Oj=0+xA;function kr(e){return e.max-e.min}function Lj(e,t,r){return Math.abs(e-t)<=r}function tS(e,t,r,n=.5){e.origin=n,e.originPoint=dt(t.min,t.max,e.origin),e.scale=kr(r)/kr(t),e.translate=dt(r.min,r.max,e.origin)-e.originPoint,(e.scale>=Dj&&e.scale<=Nj||isNaN(e.scale))&&(e.scale=1),(e.translate>=Bj&&e.translate<=Oj||isNaN(e.translate))&&(e.translate=0)}function il(e,t,r,n){tS(e.x,t.x,r.x,n?n.originX:void 0),tS(e.y,t.y,r.y,n?n.originY:void 0)}function rS(e,t,r){e.min=r.min+t.min,e.max=e.min+kr(t)}function Mj(e,t,r){rS(e.x,t.x,r.x),rS(e.y,t.y,r.y)}function nS(e,t,r){e.min=t.min-r.min,e.max=e.min+kr(t)}function ol(e,t,r){nS(e.x,t.x,r.x),nS(e.y,t.y,r.y)}function Pj(e,{min:t,max:r},n){return t!==void 0&&e<t?e=n?dt(t,e,n.min):Math.max(e,t):r!==void 0&&e>r&&(e=n?dt(r,e,n.max):Math.min(e,r)),e}function iS(e,t,r){return{min:t!==void 0?e.min+t:void 0,max:r!==void 0?e.max+r-(e.max-e.min):void 0}}function jj(e,{top:t,left:r,bottom:n,right:o}){return{x:iS(e.x,r,o),y:iS(e.y,t,n)}}function oS(e,t){let r=t.min-e.min,n=t.max-e.max;return t.max-t.min<e.max-e.min&&([r,n]=[n,r]),{min:r,max:n}}function Fj(e,t){return{x:oS(e.x,t.x),y:oS(e.y,t.y)}}function Ij(e,t){let r=.5;const n=kr(e),o=kr(t);return o>n?r=Pa(t.min,t.max-n,e.min):n>o&&(r=Pa(e.min,e.max-o,t.min)),Pn(0,1,r)}function Wj(e,t){const r={};return t.min!==void 0&&(r.min=t.min-e.min),t.max!==void 0&&(r.max=t.max-e.min),r}const Tg=.35;function zj(e=Tg){return e===!1?e=0:e===!0&&(e=Tg),{x:aS(e,"left","right"),y:aS(e,"top","bottom")}}function aS(e,t,r){return{min:sS(e,t),max:sS(e,r)}}function sS(e,t){return typeof e=="number"?e:e[t]||0}const lS=()=>({translate:0,scale:1,origin:0,originPoint:0}),ba=()=>({x:lS(),y:lS()}),cS=()=>({min:0,max:0}),bt=()=>({x:cS(),y:cS()});function Br(e){return[e("x"),e("y")]}function CA({top:e,left:t,right:r,bottom:n}){return{x:{min:t,max:r},y:{min:e,max:n}}}function Hj({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function qj(e,t){if(!t)return e;const r=t({x:e.left,y:e.top}),n=t({x:e.right,y:e.bottom});return{top:r.y,left:r.x,bottom:n.y,right:n.x}}function Uh(e){return e===void 0||e===1}function Eg({scale:e,scaleX:t,scaleY:r}){return!Uh(e)||!Uh(t)||!Uh(r)}function ao(e){return Eg(e)||RA(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function RA(e){return uS(e.x)||uS(e.y)}function uS(e){return e&&e!=="0%"}function zu(e,t,r){const n=e-r,o=t*n;return r+o}function dS(e,t,r,n,o){return o!==void 0&&(e=zu(e,o,n)),zu(e,r,n)+t}function _g(e,t=0,r=1,n,o){e.min=dS(e.min,t,r,n,o),e.max=dS(e.max,t,r,n,o)}function AA(e,{x:t,y:r}){_g(e.x,t.translate,t.scale,t.originPoint),_g(e.y,r.translate,r.scale,r.originPoint)}const fS=.999999999999,hS=1.0000000000001;function Uj(e,t,r,n=!1){const o=r.length;if(!o)return;t.x=t.y=1;let s,l;for(let c=0;c<o;c++){s=r[c],l=s.projectionDelta;const{visualElement:d}=s.options;d&&d.props.style&&d.props.style.display==="contents"||(n&&s.options.layoutScroll&&s.scroll&&s!==s.root&&wa(e,{x:-s.scroll.offset.x,y:-s.scroll.offset.y}),l&&(t.x*=l.x.scale,t.y*=l.y.scale,AA(e,l)),n&&ao(s.latestValues)&&wa(e,s.latestValues))}t.x<hS&&t.x>fS&&(t.x=1),t.y<hS&&t.y>fS&&(t.y=1)}function va(e,t){e.min=e.min+t,e.max=e.max+t}function pS(e,t,r,n,o=.5){const s=dt(e.min,e.max,o);_g(e,t,r,s,n)}function wa(e,t){pS(e.x,t.x,t.scaleX,t.scale,t.originX),pS(e.y,t.y,t.scaleY,t.scale,t.originY)}function TA(e,t){return CA(qj(e.getBoundingClientRect(),t))}function Gj(e,t,r){const n=TA(e,r),{scroll:o}=t;return o&&(va(n.x,o.offset.x),va(n.y,o.offset.y)),n}const EA=({current:e})=>e?e.ownerDocument.defaultView:null,Vj=new WeakMap;class Yj{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=bt(),this.visualElement=t}start(t,{snapToCursor:r=!1}={}){const{presenceContext:n}=this.visualElement;if(n&&n.isPresent===!1)return;const o=m=>{const{dragSnapToOrigin:f}=this.getProps();f?this.pauseAnimation():this.stopAnimation(),r&&this.snapToCursor(Ol(m).point)},s=(m,f)=>{const{drag:p,dragPropagation:g,onDragStart:x}=this.getProps();if(p&&!g&&(this.openDragLock&&this.openDragLock(),this.openDragLock=IM(p),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Br(w=>{let y=this.getAxisMotionValue(w).get()||0;if(dn.test(y)){const{projection:S}=this.visualElement;if(S&&S.layout){const C=S.layout.layoutBox[w];C&&(y=kr(C)*(parseFloat(y)/100))}}this.originPoint[w]=y}),x&&at.postRender(()=>x(m,f)),vg(this.visualElement,"transform");const{animationState:b}=this.visualElement;b&&b.setActive("whileDrag",!0)},l=(m,f)=>{const{dragPropagation:p,dragDirectionLock:g,onDirectionLock:x,onDrag:b}=this.getProps();if(!p&&!this.openDragLock)return;const{offset:w}=f;if(g&&this.currentDirection===null){this.currentDirection=Kj(w),this.currentDirection!==null&&x&&x(this.currentDirection);return}this.updateAxis("x",f.point,w),this.updateAxis("y",f.point,w),this.visualElement.render(),b&&b(m,f)},c=(m,f)=>this.stop(m,f),d=()=>Br(m=>{var f;return this.getAnimationState(m)==="paused"&&((f=this.getAxisMotionValue(m).animation)===null||f===void 0?void 0:f.play())}),{dragSnapToOrigin:h}=this.getProps();this.panSession=new wA(t,{onSessionStart:o,onStart:s,onMove:l,onSessionEnd:c,resumeAnimation:d},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:h,contextWindow:EA(this.visualElement)})}stop(t,r){const n=this.isDragging;if(this.cancel(),!n)return;const{velocity:o}=r;this.startAnimation(o);const{onDragEnd:s}=this.getProps();s&&at.postRender(()=>s(t,r))}cancel(){this.isDragging=!1;const{projection:t,animationState:r}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:n}=this.getProps();!n&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),r&&r.setActive("whileDrag",!1)}updateAxis(t,r,n){const{drag:o}=this.getProps();if(!n||!nu(t,o,this.currentDirection))return;const s=this.getAxisMotionValue(t);let l=this.originPoint[t]+n[t];this.constraints&&this.constraints[t]&&(l=Pj(l,this.constraints[t],this.elastic[t])),s.set(l)}resolveConstraints(){var t;const{dragConstraints:r,dragElastic:n}=this.getProps(),o=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,s=this.constraints;r&&ga(r)?this.constraints||(this.constraints=this.resolveRefConstraints()):r&&o?this.constraints=jj(o.layoutBox,r):this.constraints=!1,this.elastic=zj(n),s!==this.constraints&&o&&this.constraints&&!this.hasMutatedConstraints&&Br(l=>{this.constraints!==!1&&this.getAxisMotionValue(l)&&(this.constraints[l]=Wj(o.layoutBox[l],this.constraints[l]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:r}=this.getProps();if(!t||!ga(t))return!1;const n=t.current,{projection:o}=this.visualElement;if(!o||!o.layout)return!1;const s=Gj(n,o.root,this.visualElement.getTransformPagePoint());let l=Fj(o.layout.layoutBox,s);if(r){const c=r(Hj(l));this.hasMutatedConstraints=!!c,c&&(l=CA(c))}return l}startAnimation(t){const{drag:r,dragMomentum:n,dragElastic:o,dragTransition:s,dragSnapToOrigin:l,onDragTransitionEnd:c}=this.getProps(),d=this.constraints||{},h=Br(m=>{if(!nu(m,r,this.currentDirection))return;let f=d&&d[m]||{};l&&(f={min:0,max:0});const p=o?200:1e6,g=o?40:1e7,x={type:"inertia",velocity:n?t[m]:0,bounceStiffness:p,bounceDamping:g,timeConstant:750,restDelta:1,restSpeed:10,...s,...f};return this.startAxisValueAnimation(m,x)});return Promise.all(h).then(c)}startAxisValueAnimation(t,r){const n=this.getAxisMotionValue(t);return vg(this.visualElement,t),n.start(Qy(t,n,0,r,this.visualElement,!1))}stopAnimation(){Br(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){Br(t=>{var r;return(r=this.getAxisMotionValue(t).animation)===null||r===void 0?void 0:r.pause()})}getAnimationState(t){var r;return(r=this.getAxisMotionValue(t).animation)===null||r===void 0?void 0:r.state}getAxisMotionValue(t){const r=`_drag${t.toUpperCase()}`,n=this.visualElement.getProps(),o=n[r];return o||this.visualElement.getValue(t,(n.initial?n.initial[t]:void 0)||0)}snapToCursor(t){Br(r=>{const{drag:n}=this.getProps();if(!nu(r,n,this.currentDirection))return;const{projection:o}=this.visualElement,s=this.getAxisMotionValue(r);if(o&&o.layout){const{min:l,max:c}=o.layout.layoutBox[r];s.set(t[r]-dt(l,c,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:r}=this.getProps(),{projection:n}=this.visualElement;if(!ga(r)||!n||!this.constraints)return;this.stopAnimation();const o={x:0,y:0};Br(l=>{const c=this.getAxisMotionValue(l);if(c&&this.constraints!==!1){const d=c.get();o[l]=Ij({min:d,max:d},this.constraints[l])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",n.root&&n.root.updateScroll(),n.updateLayout(),this.resolveConstraints(),Br(l=>{if(!nu(l,t,null))return;const c=this.getAxisMotionValue(l),{min:d,max:h}=this.constraints[l];c.set(dt(d,h,o[l]))})}addListeners(){if(!this.visualElement.current)return;Vj.set(this.visualElement,this);const t=this.visualElement.current,r=nl(t,"pointerdown",d=>{const{drag:h,dragListener:m=!0}=this.getProps();h&&m&&this.start(d)}),n=()=>{const{dragConstraints:d}=this.getProps();ga(d)&&d.current&&(this.constraints=this.resolveRefConstraints())},{projection:o}=this.visualElement,s=o.addEventListener("measure",n);o&&!o.layout&&(o.root&&o.root.updateScroll(),o.updateLayout()),at.read(n);const l=yl(window,"resize",()=>this.scalePositionWithinConstraints()),c=o.addEventListener("didUpdate",(({delta:d,hasLayoutChanged:h})=>{this.isDragging&&h&&(Br(m=>{const f=this.getAxisMotionValue(m);f&&(this.originPoint[m]+=d[m].translate,f.set(f.get()+d[m].translate))}),this.visualElement.render())}));return()=>{l(),r(),s(),c&&c()}}getProps(){const t=this.visualElement.getProps(),{drag:r=!1,dragDirectionLock:n=!1,dragPropagation:o=!1,dragConstraints:s=!1,dragElastic:l=Tg,dragMomentum:c=!0}=t;return{...t,drag:r,dragDirectionLock:n,dragPropagation:o,dragConstraints:s,dragElastic:l,dragMomentum:c}}}function nu(e,t,r){return(t===!0||t===e)&&(r===null||r===e)}function Kj(e,t=10){let r=null;return Math.abs(e.y)>t?r="y":Math.abs(e.x)>t&&(r="x"),r}class Xj extends Fi{constructor(t){super(t),this.removeGroupControls=wr,this.removeListeners=wr,this.controls=new Yj(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||wr}unmount(){this.removeGroupControls(),this.removeListeners()}}const mS=e=>(t,r)=>{e&&at.postRender(()=>e(t,r))};class $j extends Fi{constructor(){super(...arguments),this.removePointerDownListener=wr}onPointerDown(t){this.session=new wA(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:EA(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:r,onPan:n,onPanEnd:o}=this.node.getProps();return{onSessionStart:mS(t),onStart:mS(r),onMove:n,onEnd:(s,l)=>{delete this.session,o&&at.postRender(()=>o(s,l))}}}mount(){this.removePointerDownListener=nl(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const ku={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function gS(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const zs={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Me.test(e))e=parseFloat(e);else return e;const r=gS(e,t.target.x),n=gS(e,t.target.y);return`${r}% ${n}%`}},Qj={correct:(e,{treeScale:t,projectionDelta:r})=>{const n=e,o=Di.parse(e);if(o.length>5)return n;const s=Di.createTransformer(e),l=typeof o[0]!="number"?1:0,c=r.x.scale*t.x,d=r.y.scale*t.y;o[0+l]/=c,o[1+l]/=d;const h=dt(c,d,.5);return typeof o[2+l]=="number"&&(o[2+l]/=h),typeof o[3+l]=="number"&&(o[3+l]/=h),s(o)}};class Zj extends P.Component{componentDidMount(){const{visualElement:t,layoutGroup:r,switchLayoutGroup:n,layoutId:o}=this.props,{projection:s}=t;bM(Jj),s&&(r.group&&r.group.add(s),n&&n.register&&o&&n.register(s),s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),ku.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:r,visualElement:n,drag:o,isPresent:s}=this.props,l=n.projection;return l&&(l.isPresent=s,o||t.layoutDependency!==r||r===void 0?l.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?l.promote():l.relegate()||at.postRender(()=>{const c=l.getStack();(!c||!c.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),Ay.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:r,switchLayoutGroup:n}=this.props,{projection:o}=t;o&&(o.scheduleCheckAfterUnmount(),r&&r.group&&r.group.remove(o),n&&n.deregister&&n.deregister(o))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function _A(e){const[t,r]=uR(),n=P.useContext(by);return R.jsx(Zj,{...e,layoutGroup:n,switchLayoutGroup:P.useContext(vR),isPresent:t,safeToRemove:r})}const Jj={borderRadius:{...zs,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:zs,borderTopRightRadius:zs,borderBottomLeftRadius:zs,borderBottomRightRadius:zs,boxShadow:Qj};function eF(e,t,r){const n=Kt(e)?e:ml(e);return n.start(Qy("",n,t,r)),n.animation}function tF(e){return e instanceof SVGElement&&e.tagName!=="svg"}const rF=(e,t)=>e.depth-t.depth;class nF{constructor(){this.children=[],this.isDirty=!1}add(t){Wy(this.children,t),this.isDirty=!0}remove(t){zy(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(rF),this.isDirty=!1,this.children.forEach(t)}}function iF(e,t){const r=fn.now(),n=({timestamp:o})=>{const s=o-r;s>=t&&(_i(n),e(s-t))};return at.read(n,!0),()=>_i(n)}const DA=["TopLeft","TopRight","BottomLeft","BottomRight"],oF=DA.length,yS=e=>typeof e=="string"?parseFloat(e):e,bS=e=>typeof e=="number"||Me.test(e);function aF(e,t,r,n,o,s){o?(e.opacity=dt(0,r.opacity!==void 0?r.opacity:1,sF(n)),e.opacityExit=dt(t.opacity!==void 0?t.opacity:1,0,lF(n))):s&&(e.opacity=dt(t.opacity!==void 0?t.opacity:1,r.opacity!==void 0?r.opacity:1,n));for(let l=0;l<oF;l++){const c=`border${DA[l]}Radius`;let d=vS(t,c),h=vS(r,c);if(d===void 0&&h===void 0)continue;d||(d=0),h||(h=0),d===0||h===0||bS(d)===bS(h)?(e[c]=Math.max(dt(yS(d),yS(h),n),0),(dn.test(h)||dn.test(d))&&(e[c]+="%")):e[c]=h}(t.rotate||r.rotate)&&(e.rotate=dt(t.rotate||0,r.rotate||0,n))}function vS(e,t){return e[t]!==void 0?e[t]:e.borderRadius}const sF=NA(0,.5,XR),lF=NA(.5,.95,wr);function NA(e,t,r){return n=>n<e?0:n>t?1:r(Pa(e,t,n))}function wS(e,t){e.min=t.min,e.max=t.max}function Dr(e,t){wS(e.x,t.x),wS(e.y,t.y)}function SS(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function kS(e,t,r,n,o){return e-=t,e=zu(e,1/r,n),o!==void 0&&(e=zu(e,1/o,n)),e}function cF(e,t=0,r=1,n=.5,o,s=e,l=e){if(dn.test(t)&&(t=parseFloat(t),t=dt(l.min,l.max,t/100)-l.min),typeof t!="number")return;let c=dt(s.min,s.max,n);e===s&&(c-=t),e.min=kS(e.min,t,r,c,o),e.max=kS(e.max,t,r,c,o)}function xS(e,t,[r,n,o],s,l){cF(e,t[r],t[n],t[o],t.scale,s,l)}const uF=["x","scaleX","originX"],dF=["y","scaleY","originY"];function CS(e,t,r,n){xS(e.x,t,uF,r?r.x:void 0,n?n.x:void 0),xS(e.y,t,dF,r?r.y:void 0,n?n.y:void 0)}function RS(e){return e.translate===0&&e.scale===1}function BA(e){return RS(e.x)&&RS(e.y)}function AS(e,t){return e.min===t.min&&e.max===t.max}function fF(e,t){return AS(e.x,t.x)&&AS(e.y,t.y)}function TS(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function OA(e,t){return TS(e.x,t.x)&&TS(e.y,t.y)}function ES(e){return kr(e.x)/kr(e.y)}function _S(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class hF{constructor(){this.members=[]}add(t){Wy(this.members,t),t.scheduleRender()}remove(t){if(zy(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const r=this.members[this.members.length-1];r&&this.promote(r)}}relegate(t){const r=this.members.findIndex(o=>t===o);if(r===0)return!1;let n;for(let o=r;o>=0;o--){const s=this.members[o];if(s.isPresent!==!1){n=s;break}}return n?(this.promote(n),!0):!1}promote(t,r){const n=this.lead;if(t!==n&&(this.prevLead=n,this.lead=t,t.show(),n)){n.instance&&n.scheduleRender(),t.scheduleRender(),t.resumeFrom=n,r&&(t.resumeFrom.preserveOpacity=!0),n.snapshot&&(t.snapshot=n.snapshot,t.snapshot.latestValues=n.animationValues||n.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:o}=t.options;o===!1&&n.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:r,resumingFrom:n}=t;r.onExitComplete&&r.onExitComplete(),n&&n.options.onExitComplete&&n.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function pF(e,t,r){let n="";const o=e.x.translate/t.x,s=e.y.translate/t.y,l=(r==null?void 0:r.z)||0;if((o||s||l)&&(n=`translate3d(${o}px, ${s}px, ${l}px) `),(t.x!==1||t.y!==1)&&(n+=`scale(${1/t.x}, ${1/t.y}) `),r){const{transformPerspective:h,rotate:m,rotateX:f,rotateY:p,skewX:g,skewY:x}=r;h&&(n=`perspective(${h}px) ${n}`),m&&(n+=`rotate(${m}deg) `),f&&(n+=`rotateX(${f}deg) `),p&&(n+=`rotateY(${p}deg) `),g&&(n+=`skewX(${g}deg) `),x&&(n+=`skewY(${x}deg) `)}const c=e.x.scale*t.x,d=e.y.scale*t.y;return(c!==1||d!==1)&&(n+=`scale(${c}, ${d})`),n||"none"}const so={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},$s=typeof window<"u"&&window.MotionDebug!==void 0,Gh=["","X","Y","Z"],mF={visibility:"hidden"},DS=1e3;let gF=0;function Vh(e,t,r,n){const{latestValues:o}=t;o[e]&&(r[e]=o[e],t.setStaticValue(e,0),n&&(n[e]=0))}function LA(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const r=HR(t);if(window.MotionHasOptimisedAnimation(r,"transform")){const{layout:o,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(r,"transform",at,!(o||s))}const{parent:n}=e;n&&!n.hasCheckedOptimisedAppear&&LA(n)}function MA({attachResizeListener:e,defaultParent:t,measureScroll:r,checkIsScrollRoot:n,resetTransform:o}){return class{constructor(l={},c=t==null?void 0:t()){this.id=gF++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,$s&&(so.totalNodes=so.resolvedTargetDeltas=so.recalculatedProjection=0),this.nodes.forEach(vF),this.nodes.forEach(CF),this.nodes.forEach(RF),this.nodes.forEach(wF),$s&&window.MotionDebug.record(so)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=l,this.root=c?c.root||c:this,this.path=c?[...c.path,c]:[],this.parent=c,this.depth=c?c.depth+1:0;for(let d=0;d<this.path.length;d++)this.path[d].shouldResetTransform=!0;this.root===this&&(this.nodes=new nF)}addEventListener(l,c){return this.eventHandlers.has(l)||this.eventHandlers.set(l,new Hy),this.eventHandlers.get(l).add(c)}notifyListeners(l,...c){const d=this.eventHandlers.get(l);d&&d.notify(...c)}hasListeners(l){return this.eventHandlers.has(l)}mount(l,c=this.root.hasTreeAnimated){if(this.instance)return;this.isSVG=tF(l),this.instance=l;const{layoutId:d,layout:h,visualElement:m}=this.options;if(m&&!m.current&&m.mount(l),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),c&&(h||d)&&(this.isLayoutDirty=!0),e){let f;const p=()=>this.root.updateBlockedByResize=!1;e(l,()=>{this.root.updateBlockedByResize=!0,f&&f(),f=iF(p,250),ku.hasAnimatedSinceResize&&(ku.hasAnimatedSinceResize=!1,this.nodes.forEach(BS))})}d&&this.root.registerSharedNode(d,this),this.options.animate!==!1&&m&&(d||h)&&this.addEventListener("didUpdate",({delta:f,hasLayoutChanged:p,hasRelativeTargetChanged:g,layout:x})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const b=this.options.transition||m.getDefaultTransition()||DF,{onLayoutAnimationStart:w,onLayoutAnimationComplete:y}=m.getProps(),S=!this.targetLayout||!OA(this.targetLayout,x)||g,C=!p&&g;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||C||p&&(S||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(f,C);const k={...Py(b,"layout"),onPlay:w,onComplete:y};(m.shouldReduceMotion||this.options.layoutRoot)&&(k.delay=0,k.type=!1),this.startAnimation(k)}else p||BS(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=x})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const l=this.getStack();l&&l.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,_i(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(AF),this.animationId++)}getTransformTemplate(){const{visualElement:l}=this.options;return l&&l.getProps().transformTemplate}willUpdate(l=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&LA(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let m=0;m<this.path.length;m++){const f=this.path[m];f.shouldResetTransform=!0,f.updateScroll("snapshot"),f.options.layoutRoot&&f.willUpdate(!1)}const{layoutId:c,layout:d}=this.options;if(c===void 0&&!d)return;const h=this.getTransformTemplate();this.prevTransformTemplateValue=h?h(this.latestValues,""):void 0,this.updateSnapshot(),l&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(NS);return}this.isUpdating||this.nodes.forEach(kF),this.isUpdating=!1,this.nodes.forEach(xF),this.nodes.forEach(yF),this.nodes.forEach(bF),this.clearAllSnapshots();const c=fn.now();It.delta=Pn(0,1e3/60,c-It.timestamp),It.timestamp=c,It.isProcessing=!0,Ph.update.process(It),Ph.preRender.process(It),Ph.render.process(It),It.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,Ay.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(SF),this.sharedNodes.forEach(TF)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,at.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){at.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let d=0;d<this.path.length;d++)this.path[d].updateScroll();const l=this.layout;this.layout=this.measure(!1),this.layoutCorrected=bt(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:c}=this.options;c&&c.notify("LayoutMeasure",this.layout.layoutBox,l?l.layoutBox:void 0)}updateScroll(l="measure"){let c=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===l&&(c=!1),c){const d=n(this.instance);this.scroll={animationId:this.root.animationId,phase:l,isRoot:d,offset:r(this.instance),wasRoot:this.scroll?this.scroll.isRoot:d}}}resetTransform(){if(!o)return;const l=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,c=this.projectionDelta&&!BA(this.projectionDelta),d=this.getTransformTemplate(),h=d?d(this.latestValues,""):void 0,m=h!==this.prevTransformTemplateValue;l&&(c||ao(this.latestValues)||m)&&(o(this.instance,h),this.shouldResetTransform=!1,this.scheduleRender())}measure(l=!0){const c=this.measurePageBox();let d=this.removeElementScroll(c);return l&&(d=this.removeTransform(d)),NF(d),{animationId:this.root.animationId,measuredBox:c,layoutBox:d,latestValues:{},source:this.id}}measurePageBox(){var l;const{visualElement:c}=this.options;if(!c)return bt();const d=c.measureViewportBox();if(!(((l=this.scroll)===null||l===void 0?void 0:l.wasRoot)||this.path.some(BF))){const{scroll:m}=this.root;m&&(va(d.x,m.offset.x),va(d.y,m.offset.y))}return d}removeElementScroll(l){var c;const d=bt();if(Dr(d,l),!((c=this.scroll)===null||c===void 0)&&c.wasRoot)return d;for(let h=0;h<this.path.length;h++){const m=this.path[h],{scroll:f,options:p}=m;m!==this.root&&f&&p.layoutScroll&&(f.wasRoot&&Dr(d,l),va(d.x,f.offset.x),va(d.y,f.offset.y))}return d}applyTransform(l,c=!1){const d=bt();Dr(d,l);for(let h=0;h<this.path.length;h++){const m=this.path[h];!c&&m.options.layoutScroll&&m.scroll&&m!==m.root&&wa(d,{x:-m.scroll.offset.x,y:-m.scroll.offset.y}),ao(m.latestValues)&&wa(d,m.latestValues)}return ao(this.latestValues)&&wa(d,this.latestValues),d}removeTransform(l){const c=bt();Dr(c,l);for(let d=0;d<this.path.length;d++){const h=this.path[d];if(!h.instance||!ao(h.latestValues))continue;Eg(h.latestValues)&&h.updateSnapshot();const m=bt(),f=h.measurePageBox();Dr(m,f),CS(c,h.latestValues,h.snapshot?h.snapshot.layoutBox:void 0,m)}return ao(this.latestValues)&&CS(c,this.latestValues),c}setTargetDelta(l){this.targetDelta=l,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(l){this.options={...this.options,...l,crossfade:l.crossfade!==void 0?l.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==It.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(l=!1){var c;const d=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=d.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=d.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=d.isSharedProjectionDirty);const h=!!this.resumingFrom||this!==d;if(!(l||h&&this.isSharedProjectionDirty||this.isProjectionDirty||!((c=this.parent)===null||c===void 0)&&c.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:f,layoutId:p}=this.options;if(!(!this.layout||!(f||p))){if(this.resolvedRelativeTargetAt=It.timestamp,!this.targetDelta&&!this.relativeTarget){const g=this.getClosestProjectingParent();g&&g.layout&&this.animationProgress!==1?(this.relativeParent=g,this.forceRelativeParentToResolveTarget(),this.relativeTarget=bt(),this.relativeTargetOrigin=bt(),ol(this.relativeTargetOrigin,this.layout.layoutBox,g.layout.layoutBox),Dr(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(!(!this.relativeTarget&&!this.targetDelta)){if(this.target||(this.target=bt(),this.targetWithTransforms=bt()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),Mj(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):Dr(this.target,this.layout.layoutBox),AA(this.target,this.targetDelta)):Dr(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget){this.attemptToResolveRelativeTarget=!1;const g=this.getClosestProjectingParent();g&&!!g.resumingFrom==!!this.resumingFrom&&!g.options.layoutScroll&&g.target&&this.animationProgress!==1?(this.relativeParent=g,this.forceRelativeParentToResolveTarget(),this.relativeTarget=bt(),this.relativeTargetOrigin=bt(),ol(this.relativeTargetOrigin,this.target,g.target),Dr(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}$s&&so.resolvedTargetDeltas++}}}getClosestProjectingParent(){if(!(!this.parent||Eg(this.parent.latestValues)||RA(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}calcProjection(){var l;const c=this.getLead(),d=!!this.resumingFrom||this!==c;let h=!0;if((this.isProjectionDirty||!((l=this.parent)===null||l===void 0)&&l.isProjectionDirty)&&(h=!1),d&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(h=!1),this.resolvedRelativeTargetAt===It.timestamp&&(h=!1),h)return;const{layout:m,layoutId:f}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(m||f))return;Dr(this.layoutCorrected,this.layout.layoutBox);const p=this.treeScale.x,g=this.treeScale.y;Uj(this.layoutCorrected,this.treeScale,this.path,d),c.layout&&!c.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(c.target=c.layout.layoutBox,c.targetWithTransforms=bt());const{target:x}=c;if(!x){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(SS(this.prevProjectionDelta.x,this.projectionDelta.x),SS(this.prevProjectionDelta.y,this.projectionDelta.y)),il(this.projectionDelta,this.layoutCorrected,x,this.latestValues),(this.treeScale.x!==p||this.treeScale.y!==g||!_S(this.projectionDelta.x,this.prevProjectionDelta.x)||!_S(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",x)),$s&&so.recalculatedProjection++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(l=!0){var c;if((c=this.options.visualElement)===null||c===void 0||c.scheduleRender(),l){const d=this.getStack();d&&d.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=ba(),this.projectionDelta=ba(),this.projectionDeltaWithTransform=ba()}setAnimationOrigin(l,c=!1){const d=this.snapshot,h=d?d.latestValues:{},m={...this.latestValues},f=ba();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!c;const p=bt(),g=d?d.source:void 0,x=this.layout?this.layout.source:void 0,b=g!==x,w=this.getStack(),y=!w||w.members.length<=1,S=!!(b&&!y&&this.options.crossfade===!0&&!this.path.some(_F));this.animationProgress=0;let C;this.mixTargetDelta=k=>{const A=k/1e3;OS(f.x,l.x,A),OS(f.y,l.y,A),this.setTargetDelta(f),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(ol(p,this.layout.layoutBox,this.relativeParent.layout.layoutBox),EF(this.relativeTarget,this.relativeTargetOrigin,p,A),C&&fF(this.relativeTarget,C)&&(this.isProjectionDirty=!1),C||(C=bt()),Dr(C,this.relativeTarget)),b&&(this.animationValues=m,aF(m,h,this.latestValues,A,S,y)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=A},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(l){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(_i(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=at.update(()=>{ku.hasAnimatedSinceResize=!0,this.currentAnimation=eF(0,DS,{...l,onUpdate:c=>{this.mixTargetDelta(c),l.onUpdate&&l.onUpdate(c)},onComplete:()=>{l.onComplete&&l.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const l=this.getStack();l&&l.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(DS),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const l=this.getLead();let{targetWithTransforms:c,target:d,layout:h,latestValues:m}=l;if(!(!c||!d||!h)){if(this!==l&&this.layout&&h&&PA(this.options.animationType,this.layout.layoutBox,h.layoutBox)){d=this.target||bt();const f=kr(this.layout.layoutBox.x);d.x.min=l.target.x.min,d.x.max=d.x.min+f;const p=kr(this.layout.layoutBox.y);d.y.min=l.target.y.min,d.y.max=d.y.min+p}Dr(c,d),wa(c,m),il(this.projectionDeltaWithTransform,this.layoutCorrected,c,m)}}registerSharedNode(l,c){this.sharedNodes.has(l)||this.sharedNodes.set(l,new hF),this.sharedNodes.get(l).add(c);const h=c.options.initialPromotionConfig;c.promote({transition:h?h.transition:void 0,preserveFollowOpacity:h&&h.shouldPreserveFollowOpacity?h.shouldPreserveFollowOpacity(c):void 0})}isLead(){const l=this.getStack();return l?l.lead===this:!0}getLead(){var l;const{layoutId:c}=this.options;return c?((l=this.getStack())===null||l===void 0?void 0:l.lead)||this:this}getPrevLead(){var l;const{layoutId:c}=this.options;return c?(l=this.getStack())===null||l===void 0?void 0:l.prevLead:void 0}getStack(){const{layoutId:l}=this.options;if(l)return this.root.sharedNodes.get(l)}promote({needsReset:l,transition:c,preserveFollowOpacity:d}={}){const h=this.getStack();h&&h.promote(this,d),l&&(this.projectionDelta=void 0,this.needsReset=!0),c&&this.setOptions({transition:c})}relegate(){const l=this.getStack();return l?l.relegate(this):!1}resetSkewAndRotation(){const{visualElement:l}=this.options;if(!l)return;let c=!1;const{latestValues:d}=l;if((d.z||d.rotate||d.rotateX||d.rotateY||d.rotateZ||d.skewX||d.skewY)&&(c=!0),!c)return;const h={};d.z&&Vh("z",l,h,this.animationValues);for(let m=0;m<Gh.length;m++)Vh(`rotate${Gh[m]}`,l,h,this.animationValues),Vh(`skew${Gh[m]}`,l,h,this.animationValues);l.render();for(const m in h)l.setStaticValue(m,h[m]),this.animationValues&&(this.animationValues[m]=h[m]);l.scheduleRender()}getProjectionStyles(l){var c,d;if(!this.instance||this.isSVG)return;if(!this.isVisible)return mF;const h={visibility:""},m=this.getTransformTemplate();if(this.needsReset)return this.needsReset=!1,h.opacity="",h.pointerEvents=wu(l==null?void 0:l.pointerEvents)||"",h.transform=m?m(this.latestValues,""):"none",h;const f=this.getLead();if(!this.projectionDelta||!this.layout||!f.target){const b={};return this.options.layoutId&&(b.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,b.pointerEvents=wu(l==null?void 0:l.pointerEvents)||""),this.hasProjected&&!ao(this.latestValues)&&(b.transform=m?m({},""):"none",this.hasProjected=!1),b}const p=f.animationValues||f.latestValues;this.applyTransformsToTarget(),h.transform=pF(this.projectionDeltaWithTransform,this.treeScale,p),m&&(h.transform=m(p,h.transform));const{x:g,y:x}=this.projectionDelta;h.transformOrigin=`${g.origin*100}% ${x.origin*100}% 0`,f.animationValues?h.opacity=f===this?(d=(c=p.opacity)!==null&&c!==void 0?c:this.latestValues.opacity)!==null&&d!==void 0?d:1:this.preserveOpacity?this.latestValues.opacity:p.opacityExit:h.opacity=f===this?p.opacity!==void 0?p.opacity:"":p.opacityExit!==void 0?p.opacityExit:0;for(const b in Pu){if(p[b]===void 0)continue;const{correct:w,applyTo:y}=Pu[b],S=h.transform==="none"?p[b]:w(p[b],f);if(y){const C=y.length;for(let k=0;k<C;k++)h[y[k]]=S}else h[b]=S}return this.options.layoutId&&(h.pointerEvents=f===this?wu(l==null?void 0:l.pointerEvents)||"":"none"),h}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(l=>{var c;return(c=l.currentAnimation)===null||c===void 0?void 0:c.stop()}),this.root.nodes.forEach(NS),this.root.sharedNodes.clear()}}}function yF(e){e.updateLayout()}function bF(e){var t;const r=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&r&&e.hasListeners("didUpdate")){const{layoutBox:n,measuredBox:o}=e.layout,{animationType:s}=e.options,l=r.source!==e.layout.source;s==="size"?Br(f=>{const p=l?r.measuredBox[f]:r.layoutBox[f],g=kr(p);p.min=n[f].min,p.max=p.min+g}):PA(s,r.layoutBox,n)&&Br(f=>{const p=l?r.measuredBox[f]:r.layoutBox[f],g=kr(n[f]);p.max=p.min+g,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[f].max=e.relativeTarget[f].min+g)});const c=ba();il(c,n,r.layoutBox);const d=ba();l?il(d,e.applyTransform(o,!0),r.measuredBox):il(d,n,r.layoutBox);const h=!BA(c);let m=!1;if(!e.resumeFrom){const f=e.getClosestProjectingParent();if(f&&!f.resumeFrom){const{snapshot:p,layout:g}=f;if(p&&g){const x=bt();ol(x,r.layoutBox,p.layoutBox);const b=bt();ol(b,n,g.layoutBox),OA(x,b)||(m=!0),f.options.layoutRoot&&(e.relativeTarget=b,e.relativeTargetOrigin=x,e.relativeParent=f)}}}e.notifyListeners("didUpdate",{layout:n,snapshot:r,delta:d,layoutDelta:c,hasLayoutChanged:h,hasRelativeTargetChanged:m})}else if(e.isLead()){const{onExitComplete:n}=e.options;n&&n()}e.options.transition=void 0}function vF(e){$s&&so.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function wF(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function SF(e){e.clearSnapshot()}function NS(e){e.clearMeasurements()}function kF(e){e.isLayoutDirty=!1}function xF(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function BS(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function CF(e){e.resolveTargetDelta()}function RF(e){e.calcProjection()}
vendor: 6,595 bytes, line 289
289function AF(e){e.resetSkewAndRotation()}function TF(e){e.removeLeadSnapshot()}function OS(e,t,r){e.translate=dt(t.translate,0,r),e.scale=dt(t.scale,1,r),e.origin=t.origin,e.originPoint=t.originPoint}function LS(e,t,r,n){e.min=dt(t.min,r.min,n),e.max=dt(t.max,r.max,n)}function EF(e,t,r,n){LS(e.x,t.x,r.x,n),LS(e.y,t.y,r.y,n)}function _F(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const DF={duration:.45,ease:[.4,0,.1,1]},MS=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),PS=MS("applewebkit/")&&!MS("chrome/")?Math.round:wr;function jS(e){e.min=PS(e.min),e.max=PS(e.max)}function NF(e){jS(e.x),jS(e.y)}function PA(e,t,r){return e==="position"||e==="preserve-aspect"&&!Lj(ES(t),ES(r),.2)}function BF(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const OF=MA({attachResizeListener:(e,t)=>yl(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Yh={current:void 0},jA=MA({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Yh.current){const e=new OF({});e.mount(window),e.setOptions({layoutScroll:!0}),Yh.current=e}return Yh.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),LF={pan:{Feature:$j},drag:{Feature:Xj,ProjectionNode:jA,MeasureLayout:_A}};function FS(e,t,r){const{props:n}=e;e.animationState&&n.whileHover&&e.animationState.setActive("whileHover",r==="Start");const o="onHover"+r,s=n[o];s&&at.postRender(()=>s(t,Ol(t)))}class MF extends Fi{mount(){const{current:t}=this.node;t&&(this.unmount=LM(t,r=>(FS(this.node,r,"Start"),n=>FS(this.node,n,"End"))))}unmount(){}}class PF extends Fi{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Bl(yl(this.node.current,"focus",()=>this.onFocus()),yl(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function IS(e,t,r){const{props:n}=e;e.animationState&&n.whileTap&&e.animationState.setActive("whileTap",r==="Start");const o="onTap"+(r==="End"?"":r),s=n[o];s&&at.postRender(()=>s(t,Ol(t)))}class jF extends Fi{mount(){const{current:t}=this.node;t&&(this.unmount=FM(t,r=>(IS(this.node,r,"Start"),(n,{success:o})=>IS(this.node,n,o?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Dg=new WeakMap,Kh=new WeakMap,FF=e=>{const t=Dg.get(e.target);t&&t(e)},IF=e=>{e.forEach(FF)};function WF({root:e,...t}){const r=e||document;Kh.has(r)||Kh.set(r,{});const n=Kh.get(r),o=JSON.stringify(t);return n[o]||(n[o]=new IntersectionObserver(IF,{root:e,...t})),n[o]}function zF(e,t,r){const n=WF(t);return Dg.set(e,r),n.observe(e),()=>{Dg.delete(e),n.unobserve(e)}}const HF={some:0,all:1};class qF extends Fi{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:r,margin:n,amount:o="some",once:s}=t,l={root:r?r.current:void 0,rootMargin:n,threshold:typeof o=="number"?o:HF[o]},c=d=>{const{isIntersecting:h}=d;if(this.isInView===h||(this.isInView=h,s&&!h&&this.hasEnteredView))return;h&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",h);const{onViewportEnter:m,onViewportLeave:f}=this.node.getProps(),p=h?m:f;p&&p(d)};return zF(this.node.current,l,c)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:r}=this.node;["amount","margin","root"].some(UF(t,r))&&this.startObserver()}unmount(){}}function UF({viewport:e={}},{viewport:t={}}={}){return r=>e[r]!==t[r]}const GF={inView:{Feature:qF},tap:{Feature:jF},focus:{Feature:PF},hover:{Feature:MF}},VF={layout:{ProjectionNode:jA,MeasureLayout:_A}},Ng={current:null},FA={current:!1};function YF(){if(FA.current=!0,!!Sy)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Ng.current=e.matches;e.addListener(t),t()}else Ng.current=!1}const KF=[...cA,Yt,Di],XF=e=>KF.find(lA(e)),WS=new WeakMap;function $F(e,t,r){for(const n in t){const o=t[n],s=r[n];if(Kt(o))e.addValue(n,o);else if(Kt(s))e.addValue(n,ml(o,{owner:e}));else if(s!==o)if(e.hasValue(n)){const l=e.getValue(n);l.liveStyle===!0?l.jump(o):l.hasAnimated||l.set(o)}else{const l=e.getStaticValue(n);e.addValue(n,ml(l!==void 0?l:o,{owner:e}))}}for(const n in r)t[n]===void 0&&e.removeValue(n);return t}const zS=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class QF{scrapeMotionValuesFromProps(t,r,n){return{}}constructor({parent:t,props:r,presenceContext:n,reducedMotionConfig:o,blockInitialAnimation:s,visualState:l},c={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Ky,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const g=fn.now();this.renderScheduledAt<g&&(this.renderScheduledAt=g,at.render(this.render,!1,!0))};const{latestValues:d,renderState:h,onUpdate:m}=l;this.onUpdate=m,this.latestValues=d,this.baseTarget={...d},this.initialValues=r.initial?{...d}:{},this.renderState=h,this.parent=t,this.props=r,this.presenceContext=n,this.depth=t?t.depth+1:0,this.reducedMotionConfig=o,this.options=c,this.blockInitialAnimation=!!s,this.isControllingVariants=ld(r),this.isVariantNode=yR(r),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:f,...p}=this.scrapeMotionValuesFromProps(r,{},this);for(const g in p){const x=p[g];d[g]!==void 0&&Kt(x)&&x.set(d[g],!1)}}mount(t){this.current=t,WS.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEac
vendor: 5,235 bytes, line 289
289h((r,n)=>this.bindToMotionValue(n,r)),FA.current||YF(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Ng.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){WS.delete(this.current),this.projection&&this.projection.unmount(),_i(this.notifyUpdate),_i(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const r=this.features[t];r&&(r.unmount(),r.isMounted=!1)}this.current=null}bindToMotionValue(t,r){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const n=jo.has(t),o=r.on("change",c=>{this.latestValues[t]=c,this.props.onUpdate&&at.preRender(this.notifyUpdate),n&&this.projection&&(this.projection.isTransformDirty=!0)}),s=r.on("renderRequest",this.scheduleRender);let l;window.MotionCheckAppearSync&&(l=window.MotionCheckAppearSync(this,t,r)),this.valueSubscriptions.set(t,()=>{o(),s(),l&&l(),r.owner&&r.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in ja){const r=ja[t];if(!r)continue;const{isEnabled:n,Feature:o}=r;if(!this.features[t]&&o&&n(this.props)&&(this.features[t]=new o(this)),this.features[t]){const s=this.features[t];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):bt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,r){this.latestValues[t]=r}update(t,r){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=r;for(let n=0;n<zS.length;n++){const o=zS[n];this.propEventSubscriptions[o]&&(this.propEventSubscriptions[o](),delete this.propEventSubscriptions[o]);const s="on"+o,l=t[s];l&&(this.propEventSubscriptions[o]=this.on(o,l))}this.prevMotionValues=$F(this,this.scrapeMotionValuesFromProps(t,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue(),this.onUpdate&&this.onUpdate(this)}getProps(){return this.props}getVariant(t){return this.props.variants?this.props.variants[t]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(t){const r=this.getClosestVariantNode();if(r)return r.variantChildren&&r.variantChildren.add(t),()=>r.variantChildren.delete(t)}addValue(t,r){const n=this.values.get(t);r!==n&&(n&&this.removeValue(t),this.bindToMotionValue(t,r),this.values.set(t,r),this.latestValues[t]=r.get())}removeValue(t){this.values.delete(t);const r=this.valueSubscriptions.get(t);r&&(r(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,r){if(this.props.values&&this.props.values[t])return this.props.values[t];let n=this.values.get(t);return n===void 0&&r!==void 0&&(n=ml(r===null?void 0:r,{owner:this}),this.addValue(t,n)),n}readValue(t,r){var n;let o=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(n=this.getBaseTargetFromProps(this.props,t))!==null&&n!==void 0?n:this.readValueFromInstance(this.current,t,this.options);return o!=null&&(typeof o=="string"&&(aA(o)||QR(o))?o=parseFloat(o):!XF(o)&&Di.test(r)&&(o=nA(t,r)),this.setBaseTarget(t,Kt(o)?o.get():o)),Kt(o)?o.get():o}setBaseTarget(t,r){this.baseTarget[t]=r}getBaseTarget(t){var r;const{initial:n}=this.props;let o;if(typeof n=="string"||typeof n=="object"){const l=Ey(this.props,n,(r=this.presenceContext)===null||r===void 0?void 0:r.custom);l&&(o=l[t])}if(n&&o!==void 0)return o;const s=this.getBaseTargetFromProps(this.props,t);return s!==void 0&&!Kt(s)?s:this.initialValues[t]!==void 0&&o===void 0?void 0:this.baseTarget[t]}on(t,r){return this.events[t]||(this.events[t]=new Hy),this.events[t].add(r)}notify(t,...r){this.events[t]&&this.events[t].notify(...r)}}class IA extends QF{constructor(){super(...arguments),this.KeyframeResolver=uA}sortInstanceNodePosition(t,r){return t.compareDocumentPosition(r)&2?1:-1}getBaseTargetFromProps(t,r){return t.style?t.style[r]:void 0}removeValueFromRenderState(t,{vars:r,style:n}){delete r[t],delete n[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Kt(t)&&(this.childSubscription=t.on("change",r=>{this.current&&(this.current.textContent=`${r}`)}))}}function ZF(e){return window.getComputedStyle(e)}class JF extends IA{constructor(){super(...arguments),this.type="html",this.renderInstance=AR}readValueFromInstance(t,r){if(jo.has(r)){const n=Yy(r);return n&&n.default||0}else{const n=ZF(t),o=(xR(r)?n.getPropertyValue(r):n[r])||0;
289return typeof o=="string"?o.trim():o}}measureInstanceViewportBox(t,{transformPagePoint:r}){return TA(t,r)}build(t,r,n){Ny(t,r,n.transformTemplate)}scrapeMotionValuesFromProps(t,r,n){return My(t,r,n)}}class e7 extends IA{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=bt}getBaseTargetFromProps(t,r){return t[r]}readValueFromInstance(t,r){if(jo.has(r)){const n=Yy(r);return n&&n.default||0}return r=TR.has(r)?r:Ry(r),t.getAttribute(r)}scrapeMotionValuesFromProps(t,r,n){return DR(t,r,n)}build(t,r,n){By(t,r,this.isSVGTag,n.transformTemplate)}renderInstance(t,r,n,o){ER(t,r,n,o)}mount(t){this.isSVGTag=Ly(t.tagName),super.mount(t)}}const t7=(e,t)=>Ty(e)?new e7(t):new JF(t,{allowProjection:e!==P.Fragment}),r7=TM({...Rj,...GF,...LF,...VF},t7),Mt=H8(r7);function In(){const[e,t]=P.useState(!1),[r,n]=P.useState(!1),[o,s]=P.useState(null),l=oy(),c=Mo();P.useEffect(()=>{var p;const f=(p=c.state)==null?void 0:p.scrollTo;if(f&&(c.pathname==="/"||c.pathname==="/Landing")){const g=setTimeout(()=>{const x=document.getElementById(f);x&&x.scrollIntoView({behavior:"smooth"})},100);return()=>clearTimeout(g)}},[c.state,c.pathname]);const d=c.pathname==="/"||c.pathname==="/Landing",h=(f,p,g=!1)=>{const x=p.replace("#","");if(n(!1),!d)f.preventDefault(),l("/Landing",{state:{scrollTo:x}});else if(!g){f.preventDefault();const b=document.getElementById(x);b&&b.scrollIntoView({behavior:"smooth"})}};P.useEffect(()=>{const f=()=>t(window.scrollY>40);return window.addEventListener("scroll",f),()=>window.removeEventListener("scroll",f)},[]);const m=[{label:"RC",href:"#rc",isAnchor:!0},{label:"Tech",href:"#tech",isAnchor:!0},{label:"Cars",href:"#cars",isAnchor:!0},{label:"Gear",href:"#gear",isAnchor:!0},{label:"Articles",href:"/articles",isRoute:!0,badge:"NEW"},{label:"Compare",href:"/rc-compare",isRoute:!0,badge:"BETA"},{label:"Connect",href:"/connect",isRoute:!0},{label:"About",href:"/about",isRoute:!0}];return R.jsxs("nav",{className:`fixed top-0 left-0 right-0 z-50 transition-all duration-500 ${e?"bg-gray-950/95 backdrop-blur-xl border-b border-red-500/10 shadow-lg shadow-red-500/5":"bg-transparent"}`,children:[R.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:R.jsxs("div",{className:"relative flex items-center justify-between h-16 sm:h-20",children:[R.jsx(So,{to:"/",className:"flex items-center gap-2 group",children:R.jsx("img",{src:"https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/69b8468835807a9d901dbdae/bdf14f062_logo_high_resolution.png",alt:"Netcruzer",className:"w-10 h-10 sm:w-14 sm:h-14 group-hover:scale-110 transition-transform object-contain",style:{filter:"invert(1)"}})}),R.jsx("div",{className:"hidden md:flex items-center gap-8 absolute left-1/2 -translate-x-1/2",children:m.map(f=>R.jsxs("div",{onMouseEnter:()=>s(f.label),onMouseLeave:()=>s(null),className:"relative group",children:[f.isRoute?R.jsx(So,{to:f.href,className:"text-gray-400 hover:text-red-500 text-sm font-medium tracking-wide uppercase transition-colors",children:f.label}):R.jsx("a",{href:f.href,onClick:p=>{f.isAnchor&&h(p,f.href)},className:"text-gray-400 hover:text-red-500 text-sm font-medium tracking-wide uppercase transition-colors",children:f.label}),f.badge&&R.jsx("span",{className:"absolute -top-5 left-1/2 -translate-x-1/2 px-2 py-0.5 bg-amber-500/20 border border-amber-500/30 text-amber-400 text-[10px] font-semibold uppercase tracking-wider rounded-full whitespace-nowrap",children:f.badge})]},f.label))}),R.jsxs("div",{className:"hidden md:flex items-center gap-4",children:[R.jsx("a",{href:"https://www.youtube.com/@netcruzer",target:"_blank",rel:"noopener noreferrer",className:"text-gray-500 hover:text-red-500 transition-colors",children:R.jsx(Co,{className:"w-5 h-5"})}),R.jsx("a",{href:"https://www.facebook.com/netcruzer01",target:"_blank",rel:"noopener noreferrer",className:"text-gray-500 hover:text-blue-500 transition-colors",children:R.jsx(al,{className:"w-5 h-5"})}),R.jsx("a",{href:"https://www.instagram.com/netcruzer",target:"_blank",rel:"noopener noreferrer",className:"text-gray-500 hover:text-pink-500 transition-colors",children:R.jsx(sl,{className:"w-5 h-5"})}),R.jsx("a",{href:"https://www.youtube.com/@netcruzer?sub_confirmation=1",target:"_blank",rel:"noopener noreferrer",className:"ml-2 px-5 py-2 bg-gradient-to-r from-red-500 to-red-700 text-white text-sm font-semibold rounded-full hover:shadow-lg hover:shadow-red-500/25 transition-all hover:scale-105",children:"Subscribe"})]}),R.jsx("button",{onClick:()=>n(!r),className:"md:hidden text-white p-2",children:r?R.jsx(xx,{className:"w-6 h-6"}):R.jsx(f5,{className:"w-6 h-6"})})]})}),R.jsx(fR,{children:r&&R.jsx(Mt.div,{initial:{opacity:0,height:0}
289,animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"md:hidden bg-gray-950/98 backdrop-blur-xl border-t border-red-500/10",children:R.jsxs("div",{className:"px-6 py-6 space-y-4",children:[m.map(f=>f.isRoute?R.jsxs("div",{className:"flex items-center gap-2",children:[R.jsx(So,{to:f.href,className:"text-gray-300 hover:text-red-500 text-lg font-medium",onClick:()=>n(!1),children:f.label}),f.badge&&R.jsx("span",{className:"px-2 py-0.5 bg-amber-500/20 border border-amber-500/30 text-amber-400 text-[10px] font-semibold uppercase tracking-wider rounded-full",children:f.badge})]},f.label):R.jsxs("div",{className:"flex items-center gap-2",children:[R.jsx("a",{href:f.href,className:"text-gray-300 hover:text-red-500 text-lg font-medium",onClick:p=>{f.isAnchor?h(p,f.href,!0):n(!1)},children:f.label}),f.badge&&R.jsx("span",{className:"px-2 py-0.5 bg-amber-500/20 border border-amber-500/30 text-amber-400 text-[10px] font-semibold uppercase tracking-wider rounded-full",children:f.badge})]},f.label)),R.jsxs("div",{className:"flex gap-4 pt-4 border-t border-gray-800",children:[R.jsx("a",{href:"https://www.youtube.com/@netcruzer",target:"_blank",rel:"noopener noreferrer",className:"text-gray-400 hover:text-red-500",children:R.jsx(Co,{className:"w-5 h-5"})}),R.jsx("a",{href:"https://www.facebook.com/netcruzer01",target:"_blank",rel:"noopener noreferrer",className:"text-gray-400 hover:text-blue-500",children:R.jsx(al,{className:"w-5 h-5"})}),R.jsx("a",{href:"https://www.instagram.com/netcruzer",target:"_blank",rel:"noopener noreferrer",className:"text-gray-400 hover:text-pink-500",children:R.jsx(sl,{className:"w-5 h-5"})})]}),R.jsx("a",{href:"https://www.youtube.com/@netcruzer?sub_confirmation=1",target:"_blank",rel:"noopener noreferrer",className:"block text-center px-5 py-3 bg-gradient-to-r from-red-500 to-red-700 text-white font-semibold rounded-full",children:"Subscribe on YouTube"})]})})})]})}function n7({heroImage:e}){const[t,r]=P.useState(null);P.useEffect(()=>{ut.functions.invoke("youtubeStats").then(l=>{l.data&&!l.data.error&&r(l.data)}).catch(()=>{})},[]);const n=(t==null?void 0:t.subscribers)??"39.8K",o=(t==null?void 0:t.videos)??"1.4K+",s=(t==null?void 0:t.views)??"2.7M";return R.jsxs("section",{id:"hero",className:"relative min-h-screen flex items-center justify-center overflow-hidden",children:[R.jsxs("div",{className:"absolute inset-0 bg-gray-950",children:[R.jsx("img",{src:e,alt:"Netcruzer RC cars and technology",className:"w-full h-full object-contain object-center"}),R.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-gray-950/60 via-gray-950/30 to-gray-950"}),R.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-gray-950/40 via-transparent to-gray-950/40"})]}),R.jsx("div",{className:"absolute top-1/4 left-1/4 w-96 h-96 bg-red-500/10 rounded-full blur-3xl animate-pulse"}),R.jsx("div",{className:"absolute bottom-1/4 right-1/4 w-96 h-96 bg-red-700/10 rounded-full blur-3xl animate-pulse",style:{animationDelay:"1s"}}),R.jsxs("div",{className:"relative z-10 max-w-5xl mx-auto px-4 sm:px-6 text-center",children:[R.jsx(Mt.div,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},children:R.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-1.5 bg-red-500/10 border border-red-500/20 rounded-full text-red-500 text-xs sm:text-sm font-medium tracking-wide mb-8 max-w-[90vw] flex-wrap justify-center",children:[R.jsx("span",{className:"w-2 h-2 bg-red-500 rounded-full animate-pulse flex-shrink-0"}),R.jsxs("span",{className:"text-center",children:[n," Subscribers · ",o,"+ Videos"]})]})}),R.jsx(Mt.h1,{initial:{opacity:0,y:40},animate:{opacity:1,y:0},transition:{duration:.8,delay:.15},className:"text-5xl sm:text-7xl lg:text-8xl font-black text-white leading-[0.9] tracking-tighter mb-6 break-words",children:"NETCRUZER"}),R.jsxs(Mt.p,{initial:{opacity:0,y:40},animate:{opacity:1,y:0},transition:{duration:.8,delay:.3},className:"text-lg sm:text-xl text-gray-400 max-w-2xl mx-auto mb-10 leading-relaxed",children:["The Hub for all things Netcruzer. Informative and entertaining",R.jsx("br",{}),R.jsx("span",{className:"text-white font-semibold",children:"RC Racing"}),","," ",R.jsx("span",{className:"text-white font-semibold",children:"Tech Reviews"}),", and"," ",R.jsx("span",{className:"text-white font-semibold",children:"Car Culture"}),"."]}),R.jsxs(Mt.div,{initial:{opacity:0,y:40}
289,animate:{opacity:1,y:0},transition:{duration:.8,delay:.45},className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[R.jsxs("a",{href:"https://www.youtube.com/@netcruzer",target:"_blank",rel:"noopener noreferrer",className:"group flex items-center gap-3 px-8 py-4 bg-gradient-to-r from-red-500 to-red-700 text-white font-bold rounded-full hover:shadow-2xl hover:shadow-red-500/30 transition-all hover:scale-105",children:[R.jsx(Co,{className:"w-5 h-5"}),"Watch on YouTube"]}),R.jsxs("a",{href:"#gear",className:"flex items-center gap-3 px-8 py-4 bg-white/5 border border-white/10 text-white font-semibold rounded-full hover:bg-white/10 transition-all backdrop-blur-sm",children:[R.jsx(p5,{className:"w-5 h-5 text-red-500"}),"Shop Recommended Gear"]})]}),R.jsx(Mt.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:1,delay:.8},className:"mt-16 sm:mt-20 grid grid-cols-3 gap-6 max-w-lg mx-auto",children:[{value:n,label:"Subscribers"},{value:o,label:"Videos"},{value:s,label:"Total Views"}].map(l=>R.jsxs("div",{className:"text-center",children:[R.jsx("div",{className:"text-2xl sm:text-3xl font-black text-white",children:l.value}),R.jsx("div",{className:"text-xs sm:text-sm text-gray-500 mt-1",children:l.label})]},l.label))})]}),R.jsx("a",{href:"#rc",className:"absolute bottom-8 left-1/2 -translate-x-1/2 text-gray-500 animate-bounce",children:R.jsx(Zu,{className:"w-6 h-6"})})]})}function i7(){const[e,t]=P.useState(0),[r,n]=P.useState("All"),{data:o=[],isLoading:s}=za({queryKey:["featured-articles"],queryFn:()=>ut.entities.Article.filter({published:!0},"-created_date",100)}),l=r==="All"?o.slice(0,10):o.filter(f=>(f.categories||[f.category]).includes(r)).slice(0,10);P.useEffect(()=>{t(0)},[r]),P.useEffect(()=>{if(l.length===0){t(0);return}const f=setInterval(()=>{t(p=>(p+1)%l.length)},6e3);return()=>clearInterval(f)},[l.length]);const c=f=>{t(f)},d=()=>{t(f=>(f-1+l.length)%l.length)},h=()=>{t(f=>(f+1)%l.length)};if(s)return R.jsx("section",{className:"py-20 sm:py-32 flex justify-center",children:R.jsx("div",{className:"w-8 h-8 border-4 border-red-500 border-t-transparent rounded-full animate-spin"})});if(l.length===0)return R.jsx("section",{className:"py-20 sm:py-32 relative overflow-hidden",children:R.jsxs("div",{className:"relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[R.jsxs(Mt.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-12",children:[R.jsx("span",{className:"inline-block px-3 py-1 bg-red-500/10 border border-red-500/20 text-red-500 text-xs font-semibold uppercase tracking-widest rounded-full mb-4",children:"Featured Articles"}),R.jsxs("h2",{className:"text-3xl sm:text-5xl font-black text-white tracking-tight",children:["Netcruzer"," ",R.jsx("span",{className:"text-transparent bg-clip-text bg-gradient-to-r from-red-500 to-red-700",children:"Curated"})]})]}),R.jsx("div",{className:"flex justify-center gap-3 mb-12",children:["All","RC","Tech","Cars"].map(f=>R.jsx("button",{onClick:()=>n(f),className:`px-6 py-2 rounded-full font-semibold text-sm transition-all ${r===f?"bg-gradient-to-r from-red-500 to-red-700 text-white shadow-lg shadow-red-500/30":"bg-white/5 text-gray-400 hover:bg-white/10 hover:text-white border border-white/10"}`,children:f},f))}),R.jsx("div",{className:"text-center text-gray-400",children:R.jsx("p",{children:"No articles in this category yet."})})]})});const m=l[e];return m?R.jsxs("section",{id:"featured-articles",className:"py-20 sm:py-32 relative overflow-hidden",children:[R.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-transparent via-red-500/[0.03] to-transparent"}),R.jsxs("div",{className:"relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[R.jsxs(Mt.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-12",children:[R.jsx("span",{className:"inline-block px-3 py-1 bg-red-500/10 border border-red-500/20 text-red-500 text-xs font-semibold uppercase tracking-widest rounded-full mb-4",children:"Featured Articles"}),R.jsxs("h2",{className:"text-3xl sm:text-5xl font-black text-white tracking-tight",children:["Netcruzer"," ",R.jsx("span",{className:"text-transparent bg-clip-text bg-gradient-to-r from-red-500 to-red-700",children:"Curated"})]})]}),R.jsx("div",{className:"flex justify-center gap-3 mb-12",children:["All","RC","Tech","Cars"].map(f=>R.jsx("button",{onClick:()=>n(f),className:`px-6 py-2 rounded-full font-semibold text-sm transition-all ${r===f?"bg-gradient-to-r from-red-500 to-red-700 text-white shadow-lg shadow-red-500/30":"bg-white/5 text-gray-400 hover:bg-white/10 hover:text-white border border-white/10"}`,children:f},f))}),R.jsxs("div",{className:"relative",children:[R.jsx(fR,{mode:"wait",children:R.jsx(Mt.div,{initial:{opacity:0,x:100}
289,animate:{opacity:1,x:0},exit:{opacity:0,x:-100},transition:{duration:.5},className:"relative rounded-3xl overflow-hidden bg-white/5 border border-white/10 backdrop-blur-sm",children:R.jsxs("div",{className:"grid lg:grid-cols-2 gap-0",children:[R.jsxs("div",{className:"relative h-80 lg:h-[500px] overflow-hidden",children:[m.image_url?R.jsx("img",{src:m.image_url,alt:m.title,className:"w-full h-full object-cover"}):R.jsx("div",{className:"w-full h-full bg-gradient-to-br from-red-500/20 to-red-700/20 flex items-center justify-center",children:R.jsx("span",{className:"text-6xl font-black text-white/10",children:"N"})}),R.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-gray-950/80 via-gray-950/20 to-transparent lg:bg-gradient-to-r lg:from-transparent lg:to-gray-950/80"})]}),R.jsxs("div",{className:"p-8 sm:p-12 flex flex-col justify-center",children:[R.jsxs("div",{className:"flex items-center gap-2 mb-4 flex-wrap",children:[(m.categories||[m.category]).filter(Boolean).map((f,p)=>R.jsx("span",{className:"px-3 py-1 bg-red-500/20 text-red-400 text-xs font-semibold uppercase tracking-wider rounded-full border border-red-500/30",children:f},p)),R.jsx("span",{className:"text-gray-500 text-sm",children:new Date(m.created_date).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})})]}),R.jsx("h3",{className:"text-2xl sm:text-4xl font-black text-white mb-4 leading-tight break-words",children:m.title}),R.jsx("p",{className:"text-gray-400 text-lg mb-6 line-clamp-3",children:m.meta_description}),R.jsxs(So,{to:`/article/${m.slug}`,onClick:()=>{window.gtag&&window.gtag("event","article_view",{article_title:m.title,article_slug:m.slug,article_category:(m.categories||[m.category]).join(",")})},className:"inline-flex items-center gap-2 px-8 py-4 bg-gradient-to-r from-red-500 to-red-700 text-white font-bold rounded-full hover:shadow-2xl hover:shadow-red-500/30 transition-all hover:scale-105 w-fit",children:["Read Now",R.jsx(vx,{className:"w-5 h-5"})]})]})]})},e)}),R.jsx("button",{onClick:d,className:"absolute left-2 sm:left-4 top-1/2 -translate-y-1/2 w-8 h-8 sm:w-12 sm:h-12 rounded-full bg-white/10 hover:bg-white/20 backdrop-blur-sm border border-white/20 flex items-center justify-center text-white transition-all hover:scale-110 z-10",children:R.jsx(GD,{className:"w-4 h-4 sm:w-6 sm:h-6"})}),R.jsx("button",{onClick:h,className:"absolute right-2 sm:right-4 top-1/2 -translate-y-1/2 w-8 h-8 sm:w-12 sm:h-12 rounded-full bg-white/10 hover:bg-white/20 backdrop-blur-sm border border-white/20 flex items-center justify-center text-white transition-all hover:scale-110 z-10",children:R.jsx(YD,{className:"w-4 h-4 sm:w-6 sm:h-6"})}),R.jsx("div",{className:"flex justify-center gap-2 mt-6",children:l.map((f,p)=>R.jsx("button",{onClick:()=>c(p),className:`h-2 rounded-full transition-all ${p===e?"w-8 bg-red-500":"w-2 bg-white/30 hover:bg-white/50"}`},p))})]})]})]}):null}function o7({staticVideos:e,channelHandle:t}){const[r,n]=P.useState("static"),[o,s]=P.useState([]),[l,c]=P.useState([]),[d,h]=P.useState(!1),[m,f]=P.useState(!1),p=async(y,S=null)=>{var N;const C=y==="recent"?s:c,k=y==="recent"?h:f;if(!((y==="recent"?o:l).length>0)){k(!0);try{const D=await ut.functions.invoke("youtubeVideos",{channelHandle:t,type:y,filterString:S});(N=D.data)!=null&&N.videos&&C(D.data.videos)}catch{}finally{k(!1)}}},g=y=>{n(y),window.gtag&&window.gtag("event","video_tab_click",{channel_handle:t,tab_type:y}),y==="recent"&&p("recent"),y==="popular"&&p("popular")},x=[{id:"static",label:"Featured"},{id:"recent",label:"Recent"},{id:"popular",label:"Popular"}],b=r==="recent"?o:r==="popular"?l:e,w=r==="recent"&&d||r==="popular"&&m;return R.jsxs("div",{children:[R.jsx("div",{className:"flex gap-2 mb-4 overflow-x-auto",children:x.map(y=>R.jsx("button",{onClick:()=>g(y.id),className:`px-3 sm:px-4 py-1.5 rounded-full text-xs font-semibold transition-all whitespace-nowrap flex-shrink-0 ${r===y.id?"bg-red-600 text-white":"bg-white/5 text-gray-400 hover:bg-white/10 hover:text-white border border-white/10"}`,children:y.label},y.id))}),R.jsx("div",{className:"space-y-3 min-h-[160px]",children:w?R.jsx("div",{className:"flex items-center justify-center h-32",children:R.jsx(ma,{className:"w-6 h-6 animate-spin text-red-500"})}):b.length===0?R.jsx("div",{className:"flex items-center justify-center h-32 text-gray-500 text-sm",children:"No videos found"}):b.map((y,S)=>R.jsxs("a",{href:y.url,target:"_blank",rel:"noopener noreferrer",onClick:()=>{window.gtag&&window.gtag("event","video_engagement",{channel_handle:t,video_type:r,video_title:y.title,engagement_type:"click"})},className:"group flex items-center gap-2 sm:gap-4 p-2 sm:p-3 rounded-lg sm:rounded-xl bg-white/[0.03] border border-white/[0.06] hover:bg-white/[0.06] hover:border-red-500/20 transition-all min-w-0",children:[R.jsx("img",{src:y.thumb,alt:y.title,className:"w-16 h-10 sm:w-20 sm:h-12 md:w-24 md:h-14 object-cover rounded flex-shrink-0"}),R.jsxs("div",{className:"min-w-0 flex-1",children:[R.jsx("p",{className:"text-white text-xs sm:text-sm font-medium line-clamp-2 group-hover:text-red-500 transition-colors",children:y.title}),R.jsx("p",{className:"text-gray-500 text-[10px] sm:text-xs mt-0.5 truncate",children:y.views})]}),R.jsx(Yg,{className:"w-3 h-3 sm:w-4 sm:h-4 text-gray-600 group-hover:text-red-500 flex-shrink-0 transition-colors"})]},S))})]})}
289function Sa({id:e,badge:t,title:r,description:n,image:o,videos:s,reversed:l,channelHandle:c}){return P.useEffect(()=>{const d=document.getElementById(e);if(!d)return;const h=new IntersectionObserver(m=>{m.forEach(f=>{f.isIntersecting&&window.gtag&&window.gtag("event","content_category_engage",{category:t,section_id:e,engagement_metric:"view"})})},{threshold:.5});return h.observe(d),()=>h.disconnect()},[e,t]),R.jsx("section",{id:e,className:"py-16 sm:py-32",children:R.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:R.jsxs("div",{className:"grid lg:grid-cols-2 gap-10 lg:gap-20 items-center",children:[R.jsxs(Mt.div,{initial:{opacity:0,x:l?40:-40},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.7},className:l?"lg:order-2":"",children:[R.jsx("span",{className:"inline-block px-3 py-1 bg-red-500/10 border border-red-500/20 text-red-500 text-xs font-semibold uppercase tracking-widest rounded-full mb-4",children:t}),R.jsx("h2",{className:"text-3xl sm:text-5xl font-black text-white tracking-tight mb-5 leading-tight",children:r}),R.jsx("p",{className:"text-gray-400 text-base sm:text-lg leading-relaxed mb-7",children:n}),R.jsx(o7,{staticVideos:s,channelHandle:c})]}),R.jsx(Mt.div,{initial:{opacity:0,x:l?-40:40},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.7,delay:.2},className:`hidden lg:block ${l?"lg:order-1":""}`,children:R.jsxs("div",{className:"relative group",children:[R.jsx("div",{className:"absolute -inset-4 bg-gradient-to-r from-red-500/20 to-red-700/20 rounded-2xl blur-2xl opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),R.jsx("img",{src:o,alt:typeof r=="string"?r:"Content",className:"relative w-full rounded-2xl shadow-2xl shadow-black/50"})]})})]})})})}const a7=[{category:"RC Cars & Parts",items:[{name:"Tekno RC 4WD Kits & Parts",desc:"Competition-grade RC buggy kits",link:"https://alnk.to/biwbgGz",store:"AMain Hobbies"},{name:"Tekno RC on Amazon",desc:"4WD racing kits with fast shipping",link:"https://amzn.to/4byajEt",store:"Amazon"},{name:"Team Associated 2WD Kits",desc:"Top-quality 2WD race cars",link:"https://alnk.to/4qOD0Tb",store:"AMain Hobbies"},{name:"RC Parts & Accessories",desc:"Everything you need for RC",link:"https://alnk.to/deAw3Bf",store:"AMain Hobbies"},{name:"RC Parts and Tools",desc:"Affordable RC parts and tools",link:"https://s.click.aliexpress.com/e/_c3ORMzGR",store:"AliExpress"},{name:"Used and New RC Cars and Parts",desc:"Find great deals on RC gear",link:"https://ebay.us/O6qRjC",store:"eBay"}]},{category:"Batteries & Chargers",items:[{name:"Gens Ace Batteries",desc:"High-performance LiPo batteries",link:"https://genstattu.ositracker.com/328754/13968",store:"Gens Ace"},{name:"Gens Ace on AMain",desc:"Batteries & chargers for RC",link:"https://alnk.to/flzBPmP",store:"AMain Hobbies"},{name:"Gens Ace on Amazon",desc:"Quick delivery batteries",link:"https://amzn.to/3SEvrAh",store:"Amazon"}]},{category:"NETCRUZER CURATED STOREFRONTS",items:[{name:"Netcruzer Shop USA",desc:"All recommended items curated by Netcruzer",link:"https://www.amazon.com/shop/netcruzer",store:"Amazon USA"},{name:"Netcruzer Shop Canada",desc:"Canadian picks and recommendations",link:"https://www.amazon.ca/shop/netcruzer",store:"Amazon Canada"}]}];function WA(){return R.jsxs("section",{id:"gear",className:"py-20 sm:py-32 relative",children:[R.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-transparent via-red-500/[0.02] to-transparent"}),R.jsxs("div",{className:"relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[R.jsxs(Mt.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-16",children:[R.jsx("span",{className:"inline-block px-3 py-1 bg-red-500/10 border border-red-500/20 text-red-500 text-xs font-semibold uppercase tracking-widest rounded-full mb-4",children:"Recommended"}),R.jsxs("h2",{className:"text-3xl sm:text-5xl font-black text-white tracking-tight mb-4",children:["Gear That"," ",R.jsx("span",{className:"text-transparent bg-clip-text bg-gradient-to-r from-red-500 to-red-700",children:"Performs"})]}),R.jsx("p",{className:"text-gray-400 text-lg max-w-2xl mx-auto mb-2",children:"The exact gear Netcruzer uses and recommends. Tried, tested, and race-proven."}),R.jsx("p",{className:"text-gray-500 text-sm max-w-2xl mx-auto",children:"Affiliate links supp
289ort Netcruzer content creation at no extra cost to you."})]}),R.jsx("div",{className:"space-y-12",children:a7.map((e,t)=>R.jsxs(Mt.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},children:[R.jsxs("h3",{className:"text-sm font-semibold uppercase tracking-widest text-gray-500 mb-4 flex items-center gap-2",children:[R.jsx(x5,{className:"w-4 h-4 text-red-500"}),e.category]}),R.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:e.items.map((r,n)=>R.jsxs("a",{href:r.link,target:"_blank",rel:"noopener noreferrer",onClick:()=>{window.gtag&&window.gtag("event","affiliate_link_click",{affiliate_store:r.store,product_name:r.name,product_category:e.category})},className:"group relative p-5 rounded-2xl bg-white/[0.03] border border-white/[0.06] hover:bg-white/[0.06] hover:border-red-500/30 transition-all duration-300 hover:shadow-lg hover:shadow-red-500/5",children:[R.jsxs("div",{className:"flex items-start justify-between mb-3",children:[R.jsx("div",{className:"px-2 py-0.5 bg-red-500/10 text-red-500 text-[10px] font-semibold uppercase tracking-wider rounded",children:r.store}),R.jsx(Yg,{className:"w-4 h-4 text-gray-600 group-hover:text-red-500 transition-colors"})]}),R.jsx("h4",{className:"text-white font-semibold text-sm mb-1 group-hover:text-red-500 transition-colors",children:r.name}),R.jsx("p",{className:"text-gray-500 text-xs leading-relaxed",children:r.desc}),R.jsxs("div",{className:"mt-4 flex items-center gap-1.5 text-red-500 text-xs font-medium opacity-0 group-hover:opacity-100 transition-opacity",children:[R.jsx(wx,{className:"w-3.5 h-3.5"}),"Shop Now"]})]},n))})]},t))})]})]})}const s7=e=>[{name:"Facebook",handle:"Netcruzer01",desc:"Follow for updates and community posts",url:"https://www.facebook.com/netcruzer01",icon:al,color:"from-blue-600 to-blue-700",hoverShadow:"hover:shadow-blue-500/20",subs:"11K+ Followers"},{name:"Facebook",handle:"@Netcruzer",desc:"Race Reports and Personal Posts",url:"https://www.facebook.com/Netcruzer",icon:al,color:"from-blue-700 to-blue-800",hoverShadow:"hover:shadow-blue-600/20",subs:"Personal Page"},{name:"Instagram",handle:"@Netcruzer",desc:"Behind the scenes and race day photos",url:"https://www.instagram.com/netcruzer",icon:sl,color:"from-pink-500 to-purple-600",hoverShadow:"hover:shadow-pink-500/20",subs:"10K+ Followers"},{name:"Instagram CARS",handle:"@netcruzercars",desc:"Car mods, car shows, and automotive photos and reels",url:"https://www.instagram.com/netcruzercars",icon:sl,color:"from-pink-600 to-purple-700",hoverShadow:"hover:shadow-pink-600/20",subs:"Full Scale Photos"},{name:"YouTube",handle:"Netcruzer RC TECH CARS",desc:"Subscribe for RC, Tech & Car content",url:"https://www.youtube.com/@netcruzer?sub_confirmation=1",icon:Co,color:"from-red-600 to-red-700",hoverShadow:"hover:shadow-red-500/20",subs:`${e} Subscribers`},{name:"YouTube CARS",handle:"@netcruzercars",desc:"Full scale car reviews, mods, DIY, and car culture",url:"https://www.youtube.com/@netcruzercars?sub_confirmation=1",icon:Co,color:"from-red-700 to-red-800",hoverShadow:"hover:shadow-red-600/20",subs:"Full Scale Channel"}];function l7(){const[e,t]=P.useState("39.8K+");return P.useEffect(()=>{ut.functions.invoke("youtubeStats").then(r=>{var n;(n=r.data)!=null&&n.subscribers&&t(r.data.subscribers)}).catch(()=>{})},[]),R.jsxs("section",{className:"py-20 sm:py-32 relative",children:[R.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-transparent via-red-600/[0.03] to-transparent"}),R.jsxs("div",{className:"relative max-w-5xl mx-auto px-4 sm:px-6 lg:px-8",children:[R.jsxs(Mt.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-14",children:[R.jsxs("h2",{className:"text-3xl sm:text-5xl font-black text-white tracking-tight mb-4",children:["Stay"," ",R.jsx("span",{className:"text-transparent bg-clip-text bg-gradient-to-r from-red-500 to-red-700",children:"Connected"})]}),R.jsx("p",{className:"text-gray-400 text-lg mb-8",children:"Follow Netcruzer on all platforms for the latest content"})]}),R.jsx("div",{className:"grid grid-cols-2 gap-4 sm:gap-6",children:s7(e).map((r,n)=>{const o=r.icon;return R.jsxs(Mt.a,{href:r.url,target:"_blank",rel:"noopener noreferrer",initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.1},className:`group relative p-4 sm:p-6 rounded-2xl bg-white/[0.03] border border-white/[0.06] hover:bg-white/[0.06] transition-all duration-300 hover:shadow-xl ${r.hoverShadow} text-center`,children:[R.jsx("div",{className:`inline-flex p-3 rounded-xl bg-gradient-to-br ${r.color} mb-4 group-hover:scale-110 transition-transform`,children:R.jsx(o,{className:"w-6 h-6 text-white"})}),R.jsx("h3",{className:"text-white font-bold text-lg mb-1",children:r.name}),R.jsx("p",{className:"text-gray-500 text-sm mb-1",children:r.handle}),R.jsx("p",{className:"text-red-500/60 text-xs font-medium mb-3",children:r.subs}),R.jsx("p",{className:"text-gray-500 text-xs",children:r.desc})]},n)})})]})]})}function Wn(){return R.jsx("footer",{className:"border-t border-white/[0.06] bg-gray-950",children:R.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[R.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-6",children:[R.jsxs("div",{className:"flex items-center gap-2",children:[R.jsx("div",{className:"w-8 h-8 rounded-lg bg-gradient-to-br from-red-500 to-red-700 flex items-center justify-center font-black text-white text-sm",children:"N"}),R.jsx("span",{className:"text-white font-bold text-lg",children:"Netcruzer"})]}),R.jsxs("div",{className:"flex flex-col items-center gap-3 w-full sm:w-auto",children:[R.jsxs("div",{className:"flex flex-wrap justify-center items-center gap-4 text-xs",children:[R.jsx("span",{className:"font-semibold text-gray-400 uppercase tracking-wider text-[10px]",children:"Subscribe to Netcruzer"}),R.jsx("a",{href:"https://www.youtube.com/@netcruzer?sub_confirmation=1",target:"_blank",rel:"noopener noreferrer",className:"px-4 py-1.5 bg-gradient-to-r from-red-500 to-red-700 text-white text-xs font-semibold rounded-full hover:shadow-lg hover:shadow-red-500/25 transition-all hover:scale-105",children:"Main Channel"}),R.jsx("a",{href:"https://www.youtube.com/@netcruzercars?sub_confirmation=1",target:"_blank",rel:"noopener noreferrer",className:"px-4 py-1.5 bg-gradient-to-r from-red-500 to-red-700 text-white text-xs font-semibold rounded-full hover:shadow-lg hover:shadow-red-500/25 transition-all hover:scale-105",children:"CARS Channel"})]}),R.jsxs("div",{className:"flex flex-wrap justify-center gap-2 text-xs text-gray-600 px-4",children:[R.jsx("span",{className:"font-semibold text-gray-500 uppercase tracking-wider text-[10px]",children:"My Racing Sponsors"}),R.jsx("span",{children:"·"}),R.jsx("a",{href:"https://www.teknorc.com/",target:"_blank",rel:"noopener noreferrer",onClick:()=>{window.gtag&&window.gtag("event","affiliate_link_click",{affiliate_store:"Tekno RC",product_category:"RC Racing Sponsor",source:"footer"})},className:"hover:text-red-500 transition-colors",children:"Tekno RC"}),R.jsx("span",{children:"·"}),R.jsx("a",{href:"https://www.genstattu.com/",target:"_blank",rel:"noopener noreferrer",onClick:()=>{window.gtag&&window.gtag("event","affiliate_link_click",{affiliate_store:"Gens Ace",product_category:"Batteries & Chargers",source:"footer"})},className:"hover:text-red-500 transition-colors",children:"Gens Ace"}),R.jsx("span",{children:"·"}),R.jsx("a",{href:"https://www.hobbyhideaway.ca/products",target:"_blank",rel:"noopener noreferrer",onClick:()=>{window.gtag&&window.gtag("event","affiliate_link_click",{affiliate_store:"Hobby Hideaway",product_category:"RC Parts & Accessories",source:"footer"})},className:"hover:text-red-500 transition-colors",children:"Hobby Hideaway"}),R.jsx("span",{children:"·"}),R.jsx("a",{href:"https://400rcraceway.ca/",target:"_blank",rel:"noopener noreferrer",onClick:()=>{window.gtag&&window.gtag("event","affiliate_link_click",{affiliate_store:"400 RC Compound",product_category:"RC Racing Venue",source:"footer"})},className:"hover:text-red-500 transition-colors",children:"400 RC Compound"})]})]}),R.jsxs("div",{className:"flex items-center gap-4",children:[R.jsx("a",{href:"https://www.youtube.com/@netcruzer",target:"_blank",rel:"noopener noreferrer",className:"text-gray-600 hover:text-red-500 transition-colors",children:R.jsx(Co,{className:"w-5 h-5"})}),R.jsx("a",{href:"https://www.facebook.com/netcruzer01",target:"_blank",rel:"noopener noreferrer",className:"text-gray-600 hover:text-blue-500 transition-colors",children:R.jsx(al,{className:"w-5 h-5"})}),R.jsx("a",{href:"https://www.instagram.com/netcruzer",target:"_blank",rel:"noopener noreferrer",className:"text-gray-600 hover:text-pink-500 transition-colors",children:R.jsx(sl,{className:"w-5 h-5"})})]})]}),R.jsxs("div",{className:"mt-8 pt-8 border-t border-white/[0.04] text-center",children:[R.jsxs("div",{className:"flex justify-center gap-6 mb-4 text-xs text-gray-600",children:[R.jsx("a",{href:"/about",className:"hover:text-red-500 transition-colors",children:"About"}),R.jsx("a",{href:"/rc-compare",className:"hover:text-red-500 transition-colors",children:"RC Compare"}),R.jsx("a",{href:"/articles",className:"hover:text-red-500 transition-colors",children:"Articles"})]}),R.jsxs("p",{className:"text-gray-600 text-xs",children:["© ",new Date().getFullYear()," Netcruzer.com, owned by John Kennedy. All rights reserved."]}),R.jsx("p",{className:"text-gray-700 text-[10px] mt-2",children:"Some links are affiliate links. Purchases help supp
289ort the channel at no extra cost to you."})]})]})})}const HS="https://media.base44.com/images/public/69b8468835807a9d901dbdae/b6927e6a4_generated_image.png",c7="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/69b8468835807a9d901dbdae/8331805c7_generated_57388f52.png",u7="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/69b8468835807a9d901dbdae/334ceb96a_generated_3bb6dae0.png",d7="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/69b8468835807a9d901dbdae/2a6674f80_generated_3199cde2.png",f7=[{title:"XOTIK model XC324 Unboxing and Test Runs",views:"1.4K views · 6 days ago",url:"https://www.youtube.com/watch?v=m4WuFNWJYLc",thumb:"https://i.ytimg.com/vi/m4WuFNWJYLc/hqdefault.jpg"},{title:"Repairing the Mugen MTC2R and Getting Back Up to Speed",views:"473 views · 2 weeks ago",url:"https://www.youtube.com/watch?v=jwnuDWN20Q4",thumb:"https://i.ytimg.com/vi/jwnuDWN20Q4/hqdefault.jpg"},{title:"Nobody Could Catch Me Today - Exotek F1 Ultra R5",views:"730 views · 2 weeks ago",url:"https://www.youtube.com/watch?v=hOD5fqY2rIE",thumb:"https://i.ytimg.com/vi/hOD5fqY2rIE/hqdefault.jpg"}],h7=[{title:"Unlock VW and AUDI features - OBDeleven Pro Review",views:"2.7M views",url:"https://www.youtube.com/watch?v=uA8y5Yiy7wc",thumb:"https://i.ytimg.com/vi/uA8y5Yiy7wc/hqdefault.jpg"},{title:"Best Settings for GoPro Hero 7 Black",views:"546K views",url:"https://www.youtube.com/watch?v=mc1K1JBFYgc",thumb:"https://i.ytimg.com/vi/mc1K1JBFYgc/hqdefault.jpg"},{title:"Pairing Apple Watch with a New iPhone",views:"631K views",url:"https://www.youtube.com/watch?v=I46ct38GiPw",thumb:"https://i.ytimg.com/vi/I46ct38GiPw/hqdefault.jpg"}],p7=[{title:"My First MK7.5 Golf R Mods using OBDeleven Apps",views:"812K views",url:"https://www.youtube.com/watch?v=mei86v2HEAk",thumb:"https://i.ytimg.com/vi/mei86v2HEAk/hqdefault.jpg"},{title:"Dad tells Teen to Steal my RC Car - Security Camera",views:"1.2M views",url:"https://www.youtube.com/watch?v=JeTN4QS_4A0",thumb:"https://i.ytimg.com/vi/JeTN4QS_4A0/hqdefault.jpg"},{title:"Air Cooled VW Vanagon Engine Rebuild Options",views:"13K views",url:"https://www.youtube.com/watch?v=wJR1Nm2G75s",thumb:"https://i.ytimg.com/vi/wJR1Nm2G75s/hqdefault.jpg"}],m7="https://www.youtube.com/@netcruzercars";function qS(){return Pi([D8(),ji({name:"Netcruzer — RC Racing, Tech Reviews & Car Culture",description:"Canadian content creator bringing entertaining RC racing, tech reviews, and car culture. Tekno RC, GoPro setups, OBDeleven mods, and more.",url:"https://netcruzer.com",image:HS}),{"@context":"https://schema.org","@type":"Person",name:"John Kennedy",alternateName:"Netcruzer",url:"https://netcruzer.com",description:"Canadian content creator focused on RC racing, tech reviews, and car culture.",sameAs:["https://www.youtube.com/@netcruzer","https://www.youtube.com/@netcruzercars","https://www.facebook.com/netcruzer01","https://www.instagram.com/netcruzer"]}]),Mi({title:"RC Racing, Tech Reviews & Car Culture",description:"Canadian content creator bringing entertaining RC racing, tech reviews, and car culture. Tekno RC, GoPro setups, OBDeleven mods, and more.",image:"https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/69b8468835807a9d901dbdae/8e6d71aeb_generated_22b77626.png"}),P.useEffect(()=>{window.gtag&&window.gtag("event","page_view",{page_path:"/Landing"});const e=["rc","tech","cars","gear","stay-connected"],t=new IntersectionObserver(r=>{r.forEach(n=>{n.isIntersecting&&window.gtag&&window.gtag("event","section_view",{section_id:n.target.id})})},{threshold:.3});return e.forEach(r=>{const n=document.getElementById(r);n&&t.observe(n)}),()=>t.disconnect()},[]),R.jsxs("div",{className:"bg-gray-950 min-h-screen text-white",children:[R.jsx(In,{}),R.jsx(n7,{heroImage:HS}),R.jsx(i7,{}),R.jsx(Sa,{id:"rc",badge:"RC Racing",channelHandle:"netcruzer",title:R.jsxs(R.Fragment,{children:["Race Day.",R.jsx("br",{}),"Every Day."]}),description:"From Traxxas bashers to Tekno competition buggies, Tamiya Mini 4WD builds to Exotek F1 cars — watch thrilling races, expert builds, and honest reviews from the track.",image:c7,videos:f7}
vendor: 20,900 bytes, line 289
289),R.jsx(Sa,{id:"tech",badge:"Tech Reviews",channelHandle:"netcruzer",title:R.jsxs(R.Fragment,{children:["Honest Tech.",R.jsx("br",{}),"Real Results."]}),description:"In-depth reviews and tutorials on cameras, smartwatches, OBD2 scanners, laptops, and more. No fluff — just practical, hands-on content that helps you make smarter buying decisions.",image:u7,videos:h7,reversed:!0}),R.jsx(Sa,{id:"cars",badge:"Car Culture",channelHandle:"netcruzercars",title:R.jsxs(R.Fragment,{children:["Full Scale.",R.jsx("br",{}),"Full Throttle."]}),description:R.jsxs(R.Fragment,{children:["VW Golf R mods, GTI builds, Vanagon Westfalia adventures, car shows, and automotive culture. Whether it's OBDeleven coding or a weekend cruise, Netcruzer CARS has you covered."," ",R.jsx("a",{href:m7,target:"_blank",rel:"noopener noreferrer",className:"text-red-500 hover:text-red-400 font-semibold underline",children:"Watch Netcruzer CARS channel →"})]}),image:d7,videos:p7}),R.jsx(WA,{}),R.jsx("div",{id:"stay-connected",children:R.jsx(l7,{})}),R.jsx(Wn,{})]})}function US(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Ll(...e){return t=>{let r=!1;const n=e.map(o=>{const s=US(o,t);return!r&&typeof s=="function"&&(r=!0),s});if(r)return()=>{for(let o=0;o<n.length;o++){const s=n[o];typeof s=="function"?s():US(e[o],null)}}}}function Wt(...e){return P.useCallback(Ll(...e),e)}var g7=Symbol.for("react.lazy"),Hu=Ug[" use ".trim().toString()];function y7(e){return typeof e=="object"&&e!==null&&"then"in e}function zA(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===g7&&"_payload"in e&&y7(e._payload)}function b7(e){const t=w7(e),r=P.forwardRef((n,o)=>{let{children:s,...l}=n;zA(s)&&typeof Hu=="function"&&(s=Hu(s._payload));const c=P.Children.toArray(s),d=c.find(k7);if(d){const h=d.props.children,m=c.map(f=>f===d?P.Children.count(h)>1?P.Children.only(null):P.isValidElement(h)?h.props.children:null:f);return R.jsx(t,{...l,ref:o,children:P.isValidElement(h)?P.cloneElement(h,void 0,m):null})}return R.jsx(t,{...l,ref:o,children:s})});return r.displayName=`${e}.Slot`,r}var v7=b7("Slot");function w7(e){const t=P.forwardRef((r,n)=>{let{children:o,...s}=r;if(zA(o)&&typeof Hu=="function"&&(o=Hu(o._payload)),P.isValidElement(o)){const l=C7(o),c=x7(s,o.props);return o.type!==P.Fragment&&(c.ref=n?Ll(n,l):l),P.cloneElement(o,c)}return P.Children.count(o)>1?P.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var S7=Symbol("radix.slottable");function k7(e){return P.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===S7}function x7(e,t){const r={...t};for(const n in t){const o=e[n],s=t[n];/^on[A-Z]/.test(n)?o&&s?r[n]=(...c)=>{const d=s(...c);return o(...c),d}:o&&(r[n]=o):n==="style"?r[n]={...o,...s}:n==="className"&&(r[n]=[o,s].filter(Boolean).join(" "))}return{...e,...r}}function C7(e){var n,o;let t=(n=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:n.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}const R7=Vg("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),br=P.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},s)=>{const l=n?v7:"button";return R.jsx(l,{className:ft(R7({variant:t,size:r,className:e})),ref:s,...o})});br.displayName="Button";const pa=P.forwardRef(({className:e,type:t,...r},n)=>R.jsx("input",{type:t,className:ft("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...r}));pa.displayName="Input";const HA=P.forwardRef(({className:e,...t},r)=>R.jsx("textarea",{className:ft("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r,...t}));HA.displayName="Textarea";function GS(e,[t,r]){return Math.min(r,Math.max(t,e))}function xt(e,t,{checkForDefaultPrevented:r=!0}={}){return function(o){if(e==null||e(o),r===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function Zy(e,t=[]){let r=[];function n(s,l){const c=P.createContext(l),d=r.length;r=[...r,l];const h=f=>{var y;const{scope:p,children:g,...x}=f,b=((y=p==null?void 0:p[e])==null?void 0:y[d])||c,w=P.useMemo(()=>x,Object.values(x));return R.jsx(b.Provider,{value:w,children:g})};h.displayName=s+"Provider";function m(f,p){var b;const g=((b=p==null?void 0:p[e])==null?void 0:b[d])||c,x=P.useContext(g);if(x)return x;if(l!==void 0)return l;throw new Error(`\`${f}\` must be used within \`${s}\``)}return[h,m]}const o=()=>{const s=r.map(l=>P.createContext(l));return function(c){const d=(c==null?void 0:c[e])||s;return P.useMemo(()=>({[`__scope${e}`]:{...c,[e]:d}}),[c,d])}};return o.scopeName=e,[n,A7(o,...t)]}function A7(...e){const t=e[0];if(e.length===1)return t;const r=()=>{const n=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(s){const l=n.reduce((c,{useScope:d,scopeName:h})=>{const f=d(s)[`__scope${h}`];return{...c,...f}},{});return P.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return r.scopeName=t.scopeName,r}function VS(e){const t=T7(e),r=P.forwardRef((n,o)=>{const{children:s,...l}=n,c=P.Children.toArray(s),d=c.find(_7);if(d){const h=d.props.children,m=c.map(f=>f===d?P.Children.count(h)>1?P.Children.only(null):P.isValidElement(h)?h.props.children:null:f);return R.jsx(t,{...l,ref:o,children:P.isValidElement(h)?P.cloneElement(h,void 0,m):null})}return R.jsx(t,{...l,ref:o,children:s})});return r.displayName=`${e}.Slot`,r}function T7(e){const t=P.forwardRef((r,n)=>{const{children:o,...s}=r;if(P.isValidElement(o)){const l=N7(o),c=D7(s,o.props);return o.type!==P.Fragment&&(c.ref=n?Ll(n,l):l),P.cloneElement(o,c)}return P.Children.count(o)>1?P.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var E7=Symbol("radix.slottable");function _7(e){return P.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===E7}function D7(e,t){const r={...t};for(const n in t){const o=e[n],s=t[n];/^on[A-Z]/.test(n)?o&&s?r[n]=(...c)=>{const d=s(...c);return o(...c),d}:o&&(r[n]=o):n==="style"?r[n]={...o,...s}:n==="className"&&(r[n]=[o,s].filter(Boolean).join(" "))}return{...e,...r}}function N7(e){var n,o;let t=(n=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:n.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}function B7(e){const t=e+"CollectionProvider",[r,n]=Zy(t),[o,s]=r(t,{collectionRef:{current:null},itemMap:new Map}),l=b=>{const{scope:w,children:y}=b,S=dr.useRef(null),C=dr.useRef(new Map).current;return R.jsx(o,{scope:w,itemMap:C,collectionRef:S,children:y})};l.displayName=t;const c=e+"CollectionSlot",d=VS(c),h=dr.forwardRef((b,w)=>{const{scope:y,children:S}=b,C=s(c,y),k=Wt(w,C.collectionRef);return R.jsx(d,{ref:k,children:S})});h.displayName=c;const m=e+"CollectionItemSlot",f="data-radix-collection-item",p=VS(m),g=dr.forwardRef((b,w)=>{const{scope:y,children:S,...C}=b,k=dr.useRef(null),A=Wt(w,k),N=s(m,y);return dr.useEffect(()=>(N.itemMap.set(k,{ref:k,...C}),()=>void N.itemMap.delete(k))),R.jsx(p,{[f]:"",ref:A,children:S})});g.displayName=m;function x(b){const w=s(e+"CollectionConsumer",b);return dr.useCallback(()=>{const S=w.collectionRef.current;if(!S)return[];const C=Array.from(S.querySelectorAll(`[${f}]`));return Array.from(w.itemMap.values()).sort((N,D)=>C.indexOf(N.ref.current)-C.indexOf(D.ref.current))},[w.collectionRef,w.itemMap])}return[{Provider:l,Slot:h,ItemSlot:g},x,n]}function O7(e){const t=L7(e),r=P.forwardRef((n,o)=>{const{children:s,...l}=n,c=P.Children.toArray(s),d=c.find(P7);if(d){const h=d.props.children,m=c.map(f=>f===d?P.Children.count(h)>1?P.Children.only(null):P.isValidElement(h)?h.props.children:null:f);return R.jsx(t,{...l,ref:o,children:P.isValidElement(h)?P.cloneElement(h,void 0,m):null})}return R.jsx(t,{...l,ref:o,children:s})});return r.displayName=`${e}.Slot`,r}function L7(e){const t=P.forwardRef((r,n)=>{const{children:o,...s}=r;if(P.isValidElement(o)){const l=F7(o),c=j7(s,o.props);return o.type!==P.Fragment&&(c.ref=n?Ll(n,l):l),P.cloneElement(o,c)}return P.Children.count(o)>1?P.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var M7=Symbol("radix.slottable");function P7(e){return P.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===M7}function j7(e,t){const r={...t};for(const n in t){const o=e[n],s=t[n];/^on[A-Z]/.test(n)?o&&s?r[n]=(...c)=>{const d=s(...c);return o(...c),d}:o&&(r[n]=o):n==="style"?r[n]={...o,...s}:n==="className"&&(r[n]=[o,s].filter(Boolean).join(" "))}return{...e,...r}}function F7(e){var n,o;let t=(n=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:n.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var I7=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],St=I7.reduce((e,t)=>{const r=O7(`Primitive.${t}`),n=P.forwardRef((o,s)=>{const{asChild:l,...c}=o,d=l?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),R.jsx(d,{...c,ref:s})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function W7(e,t){e&&Cl.flushSync(()=>e.dispatchEvent(t))}function Do(e){const t=P.useRef(e);return P.useEffect(()=>{t.current=e}),P.useMemo(()=>(...r)=>{var n;return(n=t.current)==null?void 0:n.call(t,...r)},[])}function z7(e,t=globalThis==null?void 0:globalThis.document){const r=Do(e);P.useEffect(()=>{const n=o=>{o.key==="Escape"&&r(o)};return t.addEventListener("keydown",n,{capture:!0}),()=>t.removeEventListener("keydown",n,{capture:!0})},[r,t])}var H7="DismissableLayer",Bg="dismissableLayer.update",q7="dismissableLayer.pointerDownOutside",U7="dismissableLayer.focusOutside",YS,qA=P.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),UA=P.forwardRef((e,t)=>{const{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:o,onFocusOutside:s,onInteractOutside:l,onDismiss:c,...d}=e,h=P.useContext(qA),[m,f]=P.useState(null),p=(m==null?void 0:m.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,g]=P.useState({}),x=Wt(t,D=>f(D)),b=Array.from(h.layers),[w]=[...h.layersWithOutsidePointerEventsDisabled].slice(-1),y=b.indexOf(w),S=m?b.indexOf(m):-1,C=h.layersWithOutsidePointerEventsDisabled.size>0,k=S>=y,A=Y7(D=>{const _=D.target,F=[...h.branches].some(M=>M.contains(_));!k||F||(o==null||o(D),l==null||l(D),D.defaultPrevented||c==null||c())},p),N=K7(D=>{const _=D.target;[...h.branches].some(M=>M.contains(_))||(s==null||s(D),l==null||l(D),D.defaultPrevented||c==null||c())},p);return z7(D=>{S===h.layers.size-1&&(n==null||n(D),!D.defaultPrevented&&c&&(D.preventDefault(),c()))},p),P.useEffect(()=>{if(m)return r&&(h.layersWithOutsidePointerEventsDisabled.size===0&&(YS=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),h.layersWithOutsidePointerEventsDisabled.add(m)),h.layers.add(m),KS(),()=>{r&&h.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=YS)}},[m,p,r,h]),P.useEffect(()=>()=>{m&&(h.layers.delete(m),h.layersWithOutsidePointerEventsDisabled.delete(m),KS())},[m,h]),P.useEffect(()=>{const D=()=>g({});return document.addEventListener(Bg,D),()=>document.removeEventListener(Bg,D)},[]),R.jsx(St.div,{...d,ref:x,style:{pointerEvents:C?k?"auto":"none":void 0,...e.style},onFocusCapture:xt(e.onFocusCapture,N.onFocusCapture),onBlurCapture:xt(e.onBlurCapture,N.onBlurCapture),onPointerDownCapture:xt(e.onPointerDownCapture,A.onPointerDownCapture)})});UA.displayName=H7;var G7="DismissableLayerBranch",V7=P.forwardRef((e,t)=>{const r=P.useContext(qA),n=P.useRef(null),o=Wt(t,n);return P.useEffect(()=>{const s=n.current;if(s)return r.branches.add(s),()=>{r.branches.delete(s)}},[r.branches]),R.jsx(St.div,{...e,ref:o})});V7.displayName=G7;function Y7(e,t=globalThis==null?void 0:globalThis.document){const r=Do(e),n=P.useRef(!1),o=P.useRef(()=>{});return P.useEffect(()=>{const s=c=>{if(c.target&&!n.current){let d=function(){GA(q7,r,h,{discrete:!0})};const h={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=d,t.addEventListener("click",o.current,{once:!0})):d()}else t.removeEventListener("click",o.current);n.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",s),t.removeEventListener("click",o.current)}},[t,r]),{onPointerDownCapture:()=>n.current=!0}}function K7(e,t=globalThis==null?void 0:globalThis.document){const r=Do(e),n=P.useRef(!1);return P.useEffect(()=>{const o=s=>{s.target&&!n.current&&GA(U7,r,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}function KS(){const e=new CustomEvent(Bg);document.dispatchEvent(e)}function GA(e,t,r,{discrete:n}){const o=r.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&o.addEventListener(e,t,{once:!0}),n?W7(o,s):o.dispatchEvent(s)}var Xh=0;function X7(){P.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??XS()),document.body.insertAdjacentElement("beforeend",e[1]??XS()),Xh++,()=>{Xh===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),Xh--}},[])}function XS(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var $h="focusScope.autoFocusOnMount",Qh="focusScope.autoFocusOnUnmount",$S={bubbles:!1,cancelable:!0},$7="FocusScope",VA=P.forwardRef((e,t)=>{const{loop:r=!1,trapped:n=!1,onMountAutoFocus:o,onUnmountAutoFocus:s,...l}=e,[c,d]=P.useState(null),h=Do(o),m=Do(s),f=P.useRef(null),p=Wt(t,b=>d(b)),g=P.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;P.useEffect(()=>{if(n){let b=function(C){if(g.paused||!c)return;const k=C.target;c.contains(k)?f.current=k:hi(f.current,{select:!0})},w=function(C){if(g.paused||!c)return;const k=C.relatedTarget;k!==null&&(c.contains(k)||hi(f.current,{select:!0}))},y=function(C){if(document.activeElement===document.body)for(const A of C)A.removedNodes.length>0&&hi(c)};document.addEventListener("focusin",b),document.addEventListener("focusout",w);const S=new MutationObserver(y);return c&&S.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",b),document.removeEventListener("focusout",w),S.disconnect()}}},[n,c,g.paused]),P.useEffect(()=>{if(c){ZS.add(g);const b=document.activeElement;if(!c.contains(b)){const y=new CustomEvent($h,$S);c.addEventListener($h,h),c.dispatchEvent(y),y.defaultPrevented||(Q7(r6(YA(c)),{select:!0}),document.activeElement===b&&hi(c))}return()=>{c.removeEventListener($h,h),setTimeout(()=>{const y=new CustomEvent(Qh,$S);c.addEventListener(Qh,m),c.dispatchEvent(y),y.defaultPrevented||hi(b??document.body,{select:!0}),c.removeEventListener(Qh,m),ZS.remove(g)},0)}}},[c,h,m,g]);const x=P.useCallback(b=>{if(!r&&!n||g.paused)return;const w=b.key==="Tab"&&!b.altKey&&!b.ctrlKey&&!b.metaKey,y=document.activeElement;if(w&&y){const S=b.currentTarget,[C,k]=Z7(S);C&&k?!b.shiftKey&&y===k?(b.preventDefault(),r&&hi(C,{select:!0})):b.shiftKey&&y===C&&(b.preventDefault(),r&&hi(k,{select:!0})):y===S&&b.preventDefault()}},[r,n,g.paused]);return R.jsx(St.div,{tabIndex:-1,...l,ref:p,onKeyDown:x})});VA.displayName=$7;function Q7(e,{select:t=!1}={}){const r=document.activeElement;for(const n of e)if(hi(n,{select:t}),document.activeElement!==r)return}function Z7(e){const t=YA(e),r=QS(t,e),n=QS(t.reverse(),e);return[r,n]}function YA(e){const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const o=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||o?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function QS(e,t){for(const r of e)if(!J7(r,{upTo:t}))return r}function J7(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function e6(e){return e instanceof HTMLInputElement&&"select"in e}function hi(e,{select:t=!1}={}){if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&e6(e)&&t&&e.select()}}var ZS=t6();function t6(){let e=[];return{add(t){const r=e[0];t!==r&&(r==null||r.pause()),e=JS(e,t),e.unshift(t)},remove(t){var r;e=JS(e,t),(r=e[0])==null||r.resume()}}}function JS(e,t){const r=[...e],n=r.indexOf(t);return n!==-1&&r.splice(n,1),r}function r6(e){return e.filter(t=>t.tagName!=="A")}var xr=globalThis!=null&&globalThis.document?P.useLayoutEffect:()=>{},n6=Ug[" useId ".trim().toString()]||(()=>{}),i6=0;function KA(e){const[t,r]=P.useState(n6());return xr(()=>{r(n=>n??String(i6++))},[e]),t?`radix-${t}`:""}const o6=["top","right","bottom","left"],Ni=Math.min,vr=Math.max,qu=Math.round,iu=Math.floor,hn=e=>({x:e,y:e}),a6={left:"right",right:"left",bottom:"top",top:"bottom"},s6={start:"end",end:"start"};function Og(e,t,r){return vr(e,Ni(t,r))}function jn(e,t){return typeof e=="function"?e(t):e}function Fn(e){return e.split("-")[0]}function Ka(e){return e.split("-")[1]}function Jy(e){return e==="x"?"y":"x"}function eb(e){return e==="y"?"height":"width"}const l6=new Set(["top","bottom"]);function cn(e){return l6.has(Fn(e))?"y":"x"}function tb(e){return Jy(cn(e))}function c6(e,t,r){r===void 0&&(r=!1);const n=Ka(e),o=tb(e),s=eb(o);let l=o==="x"?n===(r?"end":"start")?"right":"left":n==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(l=Uu(l)),[l,Uu(l)]}function u6(e){const t=Uu(e);return[Lg(e),t,Lg(t)]}function Lg(e){return e.replace(/start|end/g,t=>s6[t])}const ek=["left","right"],tk=["right","left"],d6=["top","bottom"],f6=["bottom","top"];function h6(e,t,r){switch(e){case"top":case"bottom":return r?t?tk:ek:t?ek:tk;case"left":case"right":return t?d6:f6;default:return[]}}function p6(e,t,r,n){const o=Ka(e);let s=h6(Fn(e),r==="start",n);return o&&(s=s.map(l=>l+"-"+o),t&&(s=s.concat(s.map(Lg)))),s}function Uu(e){return e.replace(/left|right|bottom|top/g,t=>a6[t])}function m6(e){return{top:0,right:0,bottom:0,left:0,...e}}function XA(e){return typeof e!="number"?m6(e):{top:e,right:e,bottom:e,left:e}}function Gu(e){const{x:t,y:r,width:n,height:o}=e;return{width:n,height:o,top:r,left:t,right:t+n,bottom:r+o,x:t,y:r}}function rk(e,t,r){let{reference:n,floating:o}=e;const s=cn(t),l=tb(t),c=eb(l),d=Fn(t),h=s==="y",m=n.x+n.width/2-o.width/2,f=n.y+n.height/2-o.height/2,p=n[c]/2-o[c]/2;let g;switch(d){case"top":g={x:m,y:n.y-o.height};break;case"bottom":g={x:m,y:n.y+n.height};break;case"right":g={x:n.x+n.width,y:f};break;case"left":g={x:n.x-o.width,y:f};break;default:g={x:n.x,y:n.y}}switch(Ka(t)){case"start":g[l]-=p*(r&&h?-1:1);break;case"end":g[l]+=p*(r&&h?-1:1);break}return g}async function g6(e,t){var r;t===void 0&&(t={});const{x:n,y:o,platform:s,rects:l,elements:c,strategy:d}=e,{boundary:h="clippingAncestors",rootBoundary:m="viewport",elementContext:f="floating",altBoundary:p=!1,padding:g=0}=jn(t,e),x=XA(g),w=c[p?f==="floating"?"reference":"floating":f],y=Gu(await s.getClippingRect
vendor: 4,493 bytes, line 289
289({element:(r=await(s.isElement==null?void 0:s.isElement(w)))==null||r?w:w.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(c.floating)),boundary:h,rootBoundary:m,strategy:d})),S=f==="floating"?{x:n,y:o,width:l.floating.width,height:l.floating.height}:l.reference,C=await(s.getOffsetParent==null?void 0:s.getOffsetParent(c.floating)),k=await(s.isElement==null?void 0:s.isElement(C))?await(s.getScale==null?void 0:s.getScale(C))||{x:1,y:1}:{x:1,y:1},A=Gu(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:S,offsetParent:C,strategy:d}):S);return{top:(y.top-A.top+x.top)/k.y,bottom:(A.bottom-y.bottom+x.bottom)/k.y,left:(y.left-A.left+x.left)/k.x,right:(A.right-y.right+x.right)/k.x}}const y6=async(e,t,r)=>{const{placement:n="bottom",strategy:o="absolute",middleware:s=[],platform:l}=r,c=s.filter(Boolean),d=await(l.isRTL==null?void 0:l.isRTL(t));let h=await l.getElementRects({reference:e,floating:t,strategy:o}),{x:m,y:f}=rk(h,n,d),p=n,g={},x=0;for(let w=0;w<c.length;w++){var b;const{name:y,fn:S}=c[w],{x:C,y:k,data:A,reset:N}=await S({x:m,y:f,initialPlacement:n,placement:p,strategy:o,middlewareData:g,rects:h,platform:{...l,detectOverflow:(b=l.detectOverflow)!=null?b:g6},elements:{reference:e,floating:t}});m=C??m,f=k??f,g={...g,[y]:{...g[y],...A}},N&&x<=50&&(x++,typeof N=="object"&&(N.placement&&(p=N.placement),N.rects&&(h=N.rects===!0?await l.getElementRects({reference:e,floating:t,strategy:o}):N.rects),{x:m,y:f}=rk(h,p,d)),w=-1)}return{x:m,y:f,placement:p,strategy:o,middlewareData:g}},b6=e=>({name:"arrow",options:e,async fn(t){const{x:r,y:n,placement:o,rects:s,platform:l,elements:c,middlewareData:d}=t,{element:h,padding:m=0}=jn(e,t)||{};if(h==null)return{};const f=XA(m),p={x:r,y:n},g=tb(o),x=eb(g),b=await l.getDimensions(h),w=g==="y",y=w?"top":"left",S=w?"bottom":"right",C=w?"clientHeight":"clientWidth",k=s.reference[x]+s.reference[g]-p[g]-s.floating[x],A=p[g]-s.reference[g],N=await(l.getOffsetParent==null?void 0:l.getOffsetParent(h));let D=N?N[C]:0;(!D||!await(l.isElement==null?void 0:l.isElement(N)))&&(D=c.floating[C]||s.floating[x]);const _=k/2-A/2,F=D/2-b[x]/2-1,M=Ni(f[y],F),O=Ni(f[S],F),j=M,I=D-b[x]-O,L=D/2-b[x]/2+_,H=Og(j,L,I),G=!d.arrow&&Ka(o)!=null&&L!==H&&s.reference[x]/2-(L<j?M:O)-b[x]/2<0,X=G?L<j?L-j:L-I:0;return{[g]:p[g]+X,data:{[g]:H,centerOffset:L-H-X,...G&&{alignmentOffset:X}},reset:G}}}),v6=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var r,n;const{placement:o,middlewareData:s,rects:l,initialPlacement:c,platform:d,elements:h}=t,{mainAxis:m=!0,crossAxis:f=!0,fallbackPlacements:p,fallbackStrategy:g="bestFit",fallbackAxisSideDirection:x="none",flipAlignment:b=!0,...w}=jn(e,t);if((r=s.arrow)!=null&&r.alignmentOffset)return{};const y=Fn(o),S=cn(c),C=Fn(c)===c,k=await(d.isRTL==null?void 0:d.isRTL(h.floating)),A=p||(C||!b?[Uu(c)]:u6(c)),N=x!=="none";!p&&N&&A.push(...p6(c,b,x,k));const D=[c,...A],_=await d.detectOverflow(t,w),F=[];let M=((n=s.flip)==null?void 0:n.overflows)||[];if(m&&F.push(_[y]),f){const L=c6(o,l,k);F.push(_[L[0]],_[L[1]])}if(M=[...M,{placement:o,overflows:F}],!F.every(L=>L<=0)){var O,j;const L=(((O=s.flip)==null?void 0:O.index)||0)+1,H=D[L];if(H&&(!(f==="alignment"?S!==cn(H):!1)||M.every(Q=>cn(Q.placement)===S?Q.overflows[0]>0:!0)))return{data:{index:L,overflows:M},reset:{placement:H}};let G=(j=M.filter(X=>X.overflows[0]<=0).sort((X,Q)=>X.overflows[1]-Q.overflows[1])[0])==null?void 0:j.placement;if(!G)switch(g){case"bestFit":{var I;const X=(I=M.filter(Q=>{if(N){const K=cn(Q.placement);return K===S||K==="y"}return!0}).map(Q=>[Q.placement,Q.overflows.filter(K=>K>0).reduce((K,q)=>K+q,0)]).sort((Q,K)=>Q[1]-K[1])[0])==null?void 0:I[0];X&&(G=X);break}case"initialPlacement":G=c;break}if(o!==G)return{reset:{placement:G}}}return{}}}};function nk(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function ik(e){return o6.some(t=>e[t]>=0)}const w6=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:r,platform:n}=t,{strategy:o="referenceHidden",...s}=jn(e,t);switch(o){case"referenceHidden":{const l=await n.detectOverflow(t,{...s,elementContext:"reference"}),c=nk(l,r.reference);return{data:{referenceHiddenOffsets:c,referenceHidden:ik(c)}}}case"escaped":{const l=await n.detectOverflow(t,{...s,altBoundary:!0}),c=nk(l,r.floating);return{data:{escapedOffsets:c,escaped:ik(c)}}}default:return{}}}}}
vendor: 1,223 bytes, line 289
289,$A=new Set(["left","top"]);async function S6(e,t){const{placement:r,platform:n,elements:o}=e,s=await(n.isRTL==null?void 0:n.isRTL(o.floating)),l=Fn(r),c=Ka(r),d=cn(r)==="y",h=$A.has(l)?-1:1,m=s&&d?-1:1,f=jn(t,e);let{mainAxis:p,crossAxis:g,alignmentAxis:x}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return c&&typeof x=="number"&&(g=c==="end"?x*-1:x),d?{x:g*m,y:p*h}:{x:p*h,y:g*m}}const k6=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var r,n;const{x:o,y:s,placement:l,middlewareData:c}=t,d=await S6(t,e);return l===((r=c.offset)==null?void 0:r.placement)&&(n=c.arrow)!=null&&n.alignmentOffset?{}:{x:o+d.x,y:s+d.y,data:{...d,placement:l}}}}},x6=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:r,y:n,placement:o,platform:s}=t,{mainAxis:l=!0,crossAxis:c=!1,limiter:d={fn:y=>{let{x:S,y:C}=y;return{x:S,y:C}}},...h}=jn(e,t),m={x:r,y:n},f=await s.detectOverflow(t,h),p=cn(Fn(o)),g=Jy(p);let x=m[g],b=m[p];if(l){const y=g==="y"?"top":"left",S=g==="y"?"bottom":"right",C=x+f[y],k=x-f[S];x=Og(C,x,k)}if(c){const y=p==="y"?"top":"left",S=p==="y"?"bottom":"right",C=b+f[
vendor: 4,148 bytes, line 289
289y],k=b-f[S];b=Og(C,b,k)}const w=d.fn({...t,[g]:x,[p]:b});return{...w,data:{x:w.x-r,y:w.y-n,enabled:{[g]:l,[p]:c}}}}}},C6=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:r,y:n,placement:o,rects:s,middlewareData:l}=t,{offset:c=0,mainAxis:d=!0,crossAxis:h=!0}=jn(e,t),m={x:r,y:n},f=cn(o),p=Jy(f);let g=m[p],x=m[f];const b=jn(c,t),w=typeof b=="number"?{mainAxis:b,crossAxis:0}:{mainAxis:0,crossAxis:0,...b};if(d){const C=p==="y"?"height":"width",k=s.reference[p]-s.floating[C]+w.mainAxis,A=s.reference[p]+s.reference[C]-w.mainAxis;g<k?g=k:g>A&&(g=A)}if(h){var y,S;const C=p==="y"?"width":"height",k=$A.has(Fn(o)),A=s.reference[f]-s.floating[C]+(k&&((y=l.offset)==null?void 0:y[f])||0)+(k?0:w.crossAxis),N=s.reference[f]+s.reference[C]+(k?0:((S=l.offset)==null?void 0:S[f])||0)-(k?w.crossAxis:0);x<A?x=A:x>N&&(x=N)}return{[p]:g,[f]:x}}}},R6=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var r,n;const{placement:o,rects:s,platform:l,elements:c}=t,{apply:d=()=>{},...h}=jn(e,t),m=await l.detectOverflow(t,h),f=Fn(o),p=Ka(o),g=cn(o)==="y",{width:x,height:b}=s.floating;let w,y;f==="top"||f==="bottom"?(w=f,y=p===(await(l.isRTL==null?void 0:l.isRTL(c.floating))?"start":"end")?"left":"right"):(y=f,w=p==="end"?"top":"bottom");const S=b-m.top-m.bottom,C=x-m.left-m.right,k=Ni(b-m[w],S),A=Ni(x-m[y],C),N=!t.middlewareData.shift;let D=k,_=A;if((r=t.middlewareData.shift)!=null&&r.enabled.x&&(_=C),(n=t.middlewareData.shift)!=null&&n.enabled.y&&(D=S),N&&!p){const M=vr(m.left,0),O=vr(m.right,0),j=vr(m.top,0),I=vr(m.bottom,0);g?_=x-2*(M!==0||O!==0?M+O:vr(m.left,m.right)):D=b-2*(j!==0||I!==0?j+I:vr(m.top,m.bottom))}await d({...t,availableWidth:_,availableHeight:D});const F=await l.getDimensions(c.floating);return x!==F.width||b!==F.height?{reset:{rects:!0}}:{}}}};function dd(){return typeof window<"u"}function Xa(e){return QA(e)?(e.nodeName||"").toLowerCase():"#document"}function Sr(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function gn(e){var t;return(t=(QA(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function QA(e){return dd()?e instanceof Node||e instanceof Sr(e).Node:!1}function Qr(e){return dd()?e instanceof Element||e instanceof Sr(e).Element:!1}function mn(e){return dd()?e instanceof HTMLElement||e instanceof Sr(e).HTMLElement:!1}function ok(e){return!dd()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Sr(e).ShadowRoot}const A6=new Set(["inline","contents"]);function Ml(e){const{overflow:t,overflowX:r,overflowY:n,display:o}=Zr(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&!A6.has(o)}const T6=new Set(["table","td","th"]);function E6(e){return T6.has(Xa(e))}const _6=[":popover-open",":modal"];function fd(e){return _6.some(t=>{try{return e.matches(t)}catch{return!1}})}const D6=["transform","translate","scale","rotate","perspective"],N6=["transform","translate","scale","rotate","perspective","filter"],B6=["paint","layout","strict","content"];function rb(e){const t=nb(),r=Qr(e)?Zr(e):e;return D6.some(n=>r[n]?r[n]!=="none":!1)||(r.containerType?r.containerType!=="normal":!1)||!t&&(r.backdropFilter?r.backdropFilter!=="none":!1)||!t&&(r.filter?r.filter!=="none":!1)||N6.some(n=>(r.willChange||"").includes(n))||B6.some(n=>(r.contain||"").includes(n))}function O6(e){let t=Bi(e);for(;mn(t)&&!Ia(t);){if(rb(t))return t;if(fd(t))return null;t=Bi(t)}return null}function nb(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const L6=new Set(["html","body","#document"]);function Ia(e){return L6.has(Xa(e))}function Zr(e){return Sr(e).getComputedStyle(e)}function hd(e){return Qr(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Bi(e){if(Xa(e)==="html")return e;const t=e.assignedSlot||e.parentNode||ok(e)&&e.host||gn(e);return ok(t)?t.host:t}function ZA(e){const t=Bi(e);return Ia(t)?e.ownerDocument?e.ownerDocument.body:e.body:mn(t)&&Ml(t)?t:ZA(t)}function bl(e,t,r){var n;t===void 0&&(t=[]),r===void 0&&(r=!0);const o=ZA(e),s=o===((n=e.ownerDocument)==null?void 0:n.body),l=Sr(o);if(s){const c=Mg(l);
vendor: 14,045 bytes, line 289
289return t.concat(l,l.visualViewport||[],Ml(o)?o:[],c&&r?bl(c):[])}return t.concat(o,bl(o,[],r))}function Mg(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function JA(e){const t=Zr(e);let r=parseFloat(t.width)||0,n=parseFloat(t.height)||0;const o=mn(e),s=o?e.offsetWidth:r,l=o?e.offsetHeight:n,c=qu(r)!==s||qu(n)!==l;return c&&(r=s,n=l),{width:r,height:n,$:c}}function ib(e){return Qr(e)?e:e.contextElement}function ka(e){const t=ib(e);if(!mn(t))return hn(1);const r=t.getBoundingClientRect(),{width:n,height:o,$:s}=JA(t);let l=(s?qu(r.width):r.width)/n,c=(s?qu(r.height):r.height)/o;return(!l||!Number.isFinite(l))&&(l=1),(!c||!Number.isFinite(c))&&(c=1),{x:l,y:c}}const M6=hn(0);function eT(e){const t=Sr(e);return!nb()||!t.visualViewport?M6:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function P6(e,t,r){return t===void 0&&(t=!1),!r||t&&r!==Sr(e)?!1:t}function No(e,t,r,n){t===void 0&&(t=!1),r===void 0&&(r=!1);const o=e.getBoundingClientRect(),s=ib(e);let l=hn(1);t&&(n?Qr(n)&&(l=ka(n)):l=ka(e));const c=P6(s,r,n)?eT(s):hn(0);let d=(o.left+c.x)/l.x,h=(o.top+c.y)/l.y,m=o.width/l.x,f=o.height/l.y;if(s){const p=Sr(s),g=n&&Qr(n)?Sr(n):n;let x=p,b=Mg(x);for(;b&&n&&g!==x;){const w=ka(b),y=b.getBoundingClientRect(),S=Zr(b),C=y.left+(b.clientLeft+parseFloat(S.paddingLeft))*w.x,k=y.top+(b.clientTop+parseFloat(S.paddingTop))*w.y;d*=w.x,h*=w.y,m*=w.x,f*=w.y,d+=C,h+=k,x=Sr(b),b=Mg(x)}}return Gu({width:m,height:f,x:d,y:h})}function pd(e,t){const r=hd(e).scrollLeft;return t?t.left+r:No(gn(e)).left+r}function tT(e,t){const r=e.getBoundingClientRect(),n=r.left+t.scrollLeft-pd(e,r),o=r.top+t.scrollTop;return{x:n,y:o}}function j6(e){let{elements:t,rect:r,offsetParent:n,strategy:o}=e;const s=o==="fixed",l=gn(n),c=t?fd(t.floating):!1;if(n===l||c&&s)return r;let d={scrollLeft:0,scrollTop:0},h=hn(1);const m=hn(0),f=mn(n);if((f||!f&&!s)&&((Xa(n)!=="body"||Ml(l))&&(d=hd(n)),mn(n))){const g=No(n);h=ka(n),m.x=g.x+n.clientLeft,m.y=g.y+n.clientTop}const p=l&&!f&&!s?tT(l,d):hn(0);return{width:r.width*h.x,height:r.height*h.y,x:r.x*h.x-d.scrollLeft*h.x+m.x+p.x,y:r.y*h.y-d.scrollTop*h.y+m.y+p.y}}function F6(e){return Array.from(e.getClientRects())}function I6(e){const t=gn(e),r=hd(e),n=e.ownerDocument.body,o=vr(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),s=vr(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight);let l=-r.scrollLeft+pd(e);const c=-r.scrollTop;return Zr(n).direction==="rtl"&&(l+=vr(t.clientWidth,n.clientWidth)-o),{width:o,height:s,x:l,y:c}}const ak=25;function W6(e,t){const r=Sr(e),n=gn(e),o=r.visualViewport;let s=n.clientWidth,l=n.clientHeight,c=0,d=0;if(o){s=o.width,l=o.height;const m=nb();(!m||m&&t==="fixed")&&(c=o.offsetLeft,d=o.offsetTop)}const h=pd(n);if(h<=0){const m=n.ownerDocument,f=m.body,p=getComputedStyle(f),g=m.compatMode==="CSS1Compat"&&parseFloat(p.marginLeft)+parseFloat(p.marginRight)||0,x=Math.abs(n.clientWidth-f.clientWidth-g);x<=ak&&(s-=x)}else h<=ak&&(s+=h);return{width:s,height:l,x:c,y:d}}const z6=new Set(["absolute","fixed"]);function H6(e,t){const r=No(e,!0,t==="fixed"),n=r.top+e.clientTop,o=r.left+e.clientLeft,s=mn(e)?ka(e):hn(1),l=e.clientWidth*s.x,c=e.clientHeight*s.y,d=o*s.x,h=n*s.y;return{width:l,height:c,x:d,y:h}}function sk(e,t,r){let n;if(t==="viewport")n=W6(e,r);else if(t==="document")n=I6(gn(e));else if(Qr(t))n=H6(t,r);else{const o=eT(e);n={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return Gu(n)}function rT(e,t){const r=Bi(e);return r===t||!Qr(r)||Ia(r)?!1:Zr(r).position==="fixed"||rT(r,t)}function q6(e,t){const r=t.get(e);if(r)return r;let n=bl(e,[],!1).filter(c=>Qr(c)&&Xa(c)!=="body"),o=null;const s=Zr(e).position==="fixed";let l=s?Bi(e):e;for(;Qr(l)&&!Ia(l);){const c=Zr(l),d=rb(l);!d&&c.position==="fixed"&&(o=null),(s?!d&&!o:!d&&c.position==="static"&&!!o&&z6.has(o.position)||Ml(l)&&!d&&rT(e,l))?n=n.filter(m=>m!==l):o=c,l=Bi(l)}return t.set(e,n),n}function U6(e){let{element:t,boundary:r,rootBoundary:n,strategy:o}=e;const l=[...r==="clippingAncestors"?fd(t)?[]:q6(t,this._c):[].concat(r),n],c=l[0],d=l.reduce((h,m)=>{const f=sk(t,m,o);return h.top=vr(f.top,h.top),h.right=Ni(f.right,h.right),h.bottom=Ni(f.bottom,h.bottom),h.left=vr(f.left,h.left),h},sk(t,c,o));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}}function G6(e){const{width:t,height:r}=JA(e);return{width:t,height:r}}function V6(e,t,r){const n=mn(t),o=gn(t),s=r==="fixed",l=No(e,!0,s,t);let c={scrollLeft:0,scrollTop:0};const d=hn(0);function h(){d.x=pd(o)}if(n||!n&&!s)if((Xa(t)!=="body"||Ml(o))&&(c=hd(t)),n){const g=No(t,!0,s,t);d.x=g.x+t.clientLeft,d.y=g.y+t.clientTop}else o&&h();s&&!n&&o&&h();const m=o&&!n&&!s?tT(o,c):hn(0),f=l.left+c.scrollLeft-d.x-m.x,p=l.top+c.scrollTop-d.y-m.y;return{x:f,y:p,width:l.width,height:l.height}}function Zh(e){return Zr(e).position==="static"}function lk(e,t){if(!mn(e)||Zr(e).position==="fixed")return null;if(t)return t(e);let r=e.offsetParent;return gn(e)===r&&(r=r.ownerDocument.body),r}function nT(e,t){const r=Sr(e);if(fd(e))return r;if(!mn(e)){let o=Bi(e);for(;o&&!Ia(o);){if(Qr(o)&&!Zh(o))return o;o=Bi(o)}return r}let n=lk(e,t);for(;n&&E6(n)&&Zh(n);)n=lk(n,t);return n&&Ia(n)&&Zh(n)&&!rb(n)?r:n||O6(e)||r}const Y6=async function(e){const t=this.getOffsetParent||nT,r=this.getDimensions,n=await r(e.floating);return{reference:V6(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}};function K6(e){return Zr(e).direction==="rtl"}const X6={convertOffsetParentRelativeRectToViewportRelativeRect:j6,getDocumentElement:gn,getClippingRect:U6,getOffsetParent:nT,getElementRects:Y6,getClientRects:F6,getDimensions:G6,getScale:ka,isElement:Qr,isRTL:K6};function iT(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function $6(e,t){let r=null,n;const o=gn(e);function s(){var c;clearTimeout(n),(c=r)==null||c.disconnect(),r=null}function l(c,d){c===void 0&&(c=!1),d===void 0&&(d=1),s();const h=e.getBoundingClientRect(),{left:m,top:f,width:p,height:g}=h;if(c||t(),!p||!g)return;const x=iu(f),b=iu(o.clientWidth-(m+p)),w=iu(o.clientHeight-(f+g)),y=iu(m),C={rootMargin:-x+"px "+-b+"px "+-w+"px "+-y+"px",threshold:vr(0,Ni(1,d))||1};let k=!0;function A(N){const D=N[0].intersectionRatio;if(D!==d){if(!k)return l();D?l(!1,D):n=setTimeout(()=>{l(!1,1e-7)},1e3)}D===1&&!iT(h,e.getBoundingClientRect())&&l(),k=!1}try{r=new IntersectionObserver(A,{...C,root:o.ownerDocument})}catch{r=new IntersectionObserver(A,C)}r.observe(e)}return l(!0),s}function Q6(e,t,r,n){n===void 0&&(n={});const{ancestorScroll:o=!0,ancestorResize:s=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:d=!1}=n,h=ib(e),m=o||s?[...h?bl(h):[],...bl(t)]:[];m.forEach(y=>{o&&y.addEventListener("scroll",r,{passive:!0}),s&&y.addEventListener("resize",r)});const f=h&&c?$6(h,r):null;let p=-1,g=null;l&&(g=new ResizeObserver(y=>{let[S]=y;S&&S.target===h&&g&&(g.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var C;(C=g)==null||C.observe(t)})),r()}),h&&!d&&g.observe(h),g.observe(t));let x,b=d?No(e):null;d&&w();function w(){const y=No(e);b&&!iT(b,y)&&r(),b=y,x=requestAnimationFrame(w)}return r(),()=>{var y;m.forEach(S=>{o&&S.removeEventListener("scroll",r),s&&S.removeEventListener("resize",r)}),f==null||f(),(y=g)==null||y.disconnect(),g=null,d&&cancelAnimationFrame(x)}}const Z6=k6,J6=x6,eI=v6,tI=R6,rI=w6,ck=b6,nI=C6,iI=(e,t,r)=>{const n=new Map,o={platform:X6,...r},s={...o.platform,_c:n};return y6(e,t,{...o,platform:s})};var oI=typeof document<"u",aI=function(){},xu=oI?P.useLayoutEffect:aI;function Vu(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let r,n,o;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(r=e.length,r!==t.length)return!1;for(n=r;n--!==0;)if(!Vu(e[n],t[n]))return!1;return!0}if(o=Object.keys(e),r=o.length,r!==Object.keys(t).length)return!1;for(n=r;n--!==0;)if(!{}.hasOwnProperty.call(t,o[n]))return!1;for(n=r;n--!==0;){const s=o[n];if(!(s==="_owner"&&e.$$typeof)&&!Vu(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function oT(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function uk(e,t){const r=oT(e);return Math.round(t*r)/r}function Jh(e){const t=P.useRef(e);return xu(()=>{t.current=e}),t}function sI(e){e===void 0&&(e={});const{placement:t="bottom",strategy:r="absolute",middleware:n=[],platform:o,elements:{reference:s,floating:l}={},transform:c=!0,whileElementsMounted:d,open:h}=e,[m,f]=P.useState({x:0,y:0,strategy:r,placement:t,middlewareData:{},isPositioned:!1}),[p,g]=P.useState(n);Vu(p,n)||g(n);const[x,b]=P.useState(null),[w,y]=P.useState(null),S=P.useCallback(Q=>{Q!==N.current&&(N.current=Q,b(Q))},[]),C=P.useCallback(Q=>{Q!==D.current&&(D.current=Q,y(Q))},[]),k=s||x,A=l||w,N=P.useRef(null),D=P.useRef(null),_=P.useRef(m),F=d!=null,M=Jh(d),O=Jh(o),j=Jh(h),I=P.useCallback(()=>{if(!N.current||!D.current)return;const Q={placement:t,strategy:r,middleware:p};O.current&&(Q.platform=O.current),iI(N.current,D.current,Q).then(K=>{const q={...K,isPositioned:j.current!==!1};L.current&&!Vu(_.current,q)&&(_.current=q,Cl.flushSync(()=>{f(q)}))})},[p,t,r,O,j]);xu(()=>{h===!1&&_.current.isPositioned&&(_.current.isPositioned=!1,f(Q=>({...Q,isPositioned:!1})))},[h]);const L=P.useRef(!1);xu(()=>(L.current=!0,()=>{L.current=!1}),[]),xu(()=>{if(k&&(N.current=k),A&&(D.current=A),k&&A){if(M.current)return M.current(k,A,I);I()}},[k,A,I,M,F]);const H=P.useMemo(()=>({reference:N,floating:D,setReference:S,setFloating:C}),[S,C]),G=P.useMemo(()=>({reference:k,floating:A}),[k,A]),X=P.useMemo(()=>{const Q={position:r,left:0,top:0};if(!G.floating)return Q;const K=uk(G.floating,m.x),q=uk(G.floating,m.y);return c?{...Q,transform:"translate("+K+"px, "+q+"px)",...oT(G.floating)>=1.5&&{willChange:"transform"}}:{position:r,left:K,top:q}},[r,c,G.floating,m.x,m.y]);return P.useMemo(()=>({...m,update:I,refs:H,elements:G,floatingStyles:X}),[m,I,H,G,X])}const lI=e=>{function t(r){return{}.hasOwnProperty.call(r,"current")}return{name:"arrow",options:e,fn(r){const{element:n,padding:o}=typeof e=="function"?e(r):e;return n&&t(n)?n.current!=null?ck({element:n.current,padding:o}).fn(r):{}:n?ck({element:n,padding:o}).fn(r):{}}}},cI=(e,t)=>({...Z6(e),options:[e,t]}),uI=(e,t)=>({...J6(e),options:[e,t]}),dI=(e,t)=>({...nI(e),options:[e,t]}),fI=(e,t)=>({...eI(e),options:[e,t]}),hI=(e,t)=>({...tI(e),options:[e,t]}),pI=(e,t)=>({...rI(e),options:[e,t]}),mI=(e,t)=>({...lI(e),options:[e,t]});var gI="Arrow",aT=P.forwardRef((e,t)=>{const{children:r,width:n=10,height:o=5,...s}=e;return R.jsx(St.svg,{...s,ref:t,width:n,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?r:R.jsx("polygon",{points:"0,0 30,0 15,10"})})});aT.displayName=gI;var yI=aT;function bI(e){const[t,r]=P.useState(void 0);return xr(()=>{if(e){r({width:e.offsetWidth,height:e.offsetHeight});const n=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const s=o[0];let l,c;if("borderBoxSize"in s){const d=s.borderBoxSize,h=Array.isArray(d)?d[0]:d;l=h.inlineSize,c=h.blockSize}else l=e.offsetWidth,c=e.offsetHeight;r({width:l,height:c})});return n.observe(e,{box:"border-box"}),()=>n.unobserve(e)}else r(void 0)},[e]),t}var sT="Popper",[lT,cT]=Zy(sT),[tq,uT]=lT(sT),dT="PopperAnchor",fT=P.forwardRef((e,t)=>{const{__scopePopper:r,virtualRef:n,...o}=e,s=uT(dT,r),l=P.useRef(null),c=Wt(t,l),d=P.useRef(null);return P.useEffect(()=>{const h=d.current;d.current=(n==null?void 0:n.current)||l.current,h!==d.current&&s.onAnchorChange(d.current)}),n?null:R.jsx(St.div,{...o,ref:c})});fT.displayName=dT;var ob="PopperContent",[vI,wI]=lT(ob),hT=P.forwardRef((e,t)=>{var V,te,ne,ce,fe,ye;const{__scopePopper:r,side:n="bottom",sideOffset:o=0,align:s="center",alignOffset:l=0,arrowPadding:c=0,avoidCollisions:d=!0,collisionBoundary:h=[],collisionPadding:m=0,sticky:f="partial",hideWhenDetached:p=!1,updatePositionStrategy:g="optimized",onPlaced:x,...b}=e,w=uT(ob,r),[y,S]=P.useState(null),C=Wt(t,ke=>S(ke)),[k,A]=P.useState(null),N=bI(k),D=(N==null?void 0:N.width)??0,_=(N==null?void 0:N.height)??0,F=n+(s!=="center"?"-"+s:""),M=typeof m=="number"?m:{top:0,right:0,bottom:0,left:0,...m},O=Array.isArray(h)?h:[h],j=O.length>0,I={padding:M,boundary:O.filter(kI),altBoundary:j},{refs:L,floatingStyles:H,placement:G,isPositioned:X,middlewareData:Q}=sI({strategy:"fixed",placement:F,whileElementsMounted:(...ke)=>Q6(...ke,{animationFrame:g==="always"}),elements:{reference:w.anchor},middleware:[cI({mainAxis:o+_,alignmentAxis:l}),d&&uI({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?dI():void 0,...I}),d&&fI({...I}),hI({...I,apply:({elements:ke,rects:Ae,availableWidth:Ie,availableHeight:et})=>{const{width:He,height:ae}=Ae.reference,de=ke.floating.style;de.setProperty("--radix-popper-available-width",`${Ie}px`),de.setProperty("--radix-popper-available-height",`${et}px`),de.setProperty("--radix-popper-anchor-width",`${He}px`),de.setProperty("--radix-popper-anchor-height",`${ae}px`)}}),k&&mI({element:k,padding:c}),xI({arrowWidth:D,arrowHeight:_}),p&&pI({strategy:"referenceHidden",...I})]}),[K,q]=gT(G),B=Do(x);xr(()=>{X&&(B==null||B())},[X,B]);const W=(V=Q.arrow)==null?void 0:V.x,Y=(te=Q.arrow)==null?void 0:te.y,ee=((ne=Q.arrow)==null?void 0:ne.centerOffset)!==0,[Z,U]=P.useState();return xr(()=>{y&&U(window.getComputedStyle(y).zIndex)},[y]),R.jsx("div",{ref:L.setFloating,"data-radix-popper-content-wrapper":"",style:{...H,transform:X?H.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Z,"--radix-popper-transform-origin":[(ce=Q.transformOrigin)==null?void 0:ce.x,(fe=Q.transformOrigin)==null?void 0:fe.y].join(" "),...((ye=Q.hide)==null?void 0:ye.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:R.jsx(vI,{scope:r,placedSide:K,onArrowChange:A,arrowX:W,arrowY:Y,shouldHideArrow:ee,children:R.jsx(St.div,{"data-side":K,"data-align":q,...b,ref:C,style:{...b.style,animation:X?void 0:"none"}})})})});hT.displayName=ob;var pT="PopperArrow",SI={top:"bottom",right:"left",bottom:"top",left:"r
289ight"},mT=P.forwardRef(function(t,r){const{__scopePopper:n,...o}=t,s=wI(pT,n),l=SI[s.placedSide];return R.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:R.jsx(yI,{...o,ref:r,style:{...o.style,display:"block"}})})});mT.displayName=pT;function kI(e){return e!==null}var xI=e=>({name:"transformOrigin",options:e,fn(t){var w,y,S;const{placement:r,rects:n,middlewareData:o}=t,l=((w=o.arrow)==null?void 0:w.centerOffset)!==0,c=l?0:e.arrowWidth,d=l?0:e.arrowHeight,[h,m]=gT(r),f={start:"0%",center:"50%",end:"100%"}[m],p=(((y=o.arrow)==null?void 0:y.x)??0)+c/2,g=(((S=o.arrow)==null?void 0:S.y)??0)+d/2;let x="",b="";return h==="bottom"?(x=l?f:`${p}px`,b=`${-d}px`):h==="top"?(x=l?f:`${p}px`,b=`${n.floating.height+d}px`):h==="right"?(x=`${-d}px`,b=l?f:`${g}px`):h==="left"&&(x=`${n.floating.width+d}px`,b=l?f:`${g}px`),{data:{x,y:b}}}});function gT(e){const[t,r="center"]=e.split("-");return[t,r]}var CI=fT,RI=hT,AI=mT,TI="Portal",yT=P.forwardRef((e,t)=>{var c;const{container:r,...n}=e,[o,s]=P.useState(!1);xr(()=>s(!0),[]);const l=r||o&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return l?c3.createPortal(R.jsx(St.div,{...n,ref:t}),l):null});yT.displayName=TI;function EI(e){const t=_I(e),r=P.forwardRef((n,o)=>{const{children:s,...l}=n,c=P.Children.toArray(s),d=c.find(NI);if(d){const h=d.props.children,m=c.map(f=>f===d?P.Children.count(h)>1?P.Children.only(null):P.isValidElement(h)?h.props.children:null:f);return R.jsx(t,{...l,ref:o,children:P.isValidElement(h)?P.cloneElement(h,void 0,m):null})}return R.jsx(t,{...l,ref:o,children:s})});return r.displayName=`${e}.Slot`,r}function _I(e){const t=P.forwardRef((r,n)=>{const{children:o,...s}=r;if(P.isValidElement(o)){const l=OI(o),c=BI(s,o.props);return o.type!==P.Fragment&&(c.ref=n?Ll(n,l):l),P.cloneElement(o,c)}return P.Children.count(o)>1?P.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var DI=Symbol("radix.slottable");function NI(e){return P.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===DI}function BI(e,t){const r={...t};for(const n in t){const o=e[n],s=t[n];/^on[A-Z]/.test(n)?o&&s?r[n]=(...c)=>{const d=s(...c);return o(...c),d}:o&&(r[n]=o):n==="style"?r[n]={...o,...s}:n==="className"&&(r[n]=[o,s].filter(Boolean).join(" "))}return{...e,...r}}function OI(e){var n,o;let t=(n=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:n.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}function LI(e){const t=P.useRef({value:e,previous:e});return P.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var bT=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),MI="VisuallyHidden",PI=P.forwardRef((e,t)=>R.jsx(St.span,{...e,ref:t,style:{...bT,...e.style}}));PI.displayName=MI;var jI=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},ua=new WeakMap,ou=new WeakMap,au={},ep=0,vT=function(e){return e&&(e.host||vT(e.parentNode))},FI=function(e,t){return t.map(function(r){if(e.contains(r))return r;var n=vT(r);return n&&e.contains(n)?n:(console.error("aria-hidden",r,"in not contained inside",e,". Doing nothing"),null)}).filter(function(r){return!!r})},II=function(e,t,r,n){var o=FI(t,Array.isArray(e)?e:[e]);au[r]||(au[r]=new WeakMap);var s=au[r],l=[],c=new Set,d=new Set(o),h=function(f){!f||c.has(f)||(c.add(f),h(f.parentNode))};o.forEach(h);var m=function(f){!f||d.has(f)||Array.prototype.forEach.call(f.children,function(p){if(c.has(p))m(p);else try{var g=p.getAttribute(n),x=g!==null&&g!=="false",b=(ua.get(p)||0)+1,w=(s.get(p)||0)+1;ua.set(p,b),s.set(p,w),l.push(p),b===1&&x&&ou.set(p,!0),w===1&&p.setAttribute(r,"true"),x||p.setAttribute(n,"true")}catch(y){console.error("aria-hidden: cannot operate on ",p,y)}})};return m(t),c.clear(),ep++,function(){l.forEach(function(f){var p=ua.get(f)-1,g=s.get(f)-1;ua.set(f,p),s.set(f,g),p||(ou.has(f)||f.removeAttribute(n),ou.delete(f)),g||f.removeAttribute(r)}),ep--,ep||(ua=new WeakMap,ua=new WeakMap,ou=new WeakMap,au={})}},WI=function(e,t,r){r===void 0&&(r="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),o=jI(e);return o?(n.push.apply(n,Array.from(o.querySelectorAll("[aria-live], script"))),II(n,o,r,"aria-hidden")):function(){return null}},ln=function(){return ln=Object.assign||function(t){for(var r,n=1,o=arguments.length;n<o;n++){r=arguments[n];
vendor: 5,485 bytes, lines 289-304
289for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])}return t},ln.apply(this,arguments)};function wT(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}function zI(e,t,r){if(r||arguments.length===2)for(var n=0,o=t.length,s;n<o;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return e.concat(s||Array.prototype.slice.call(t))}var Cu="right-scroll-bar-position",Ru="width-before-scroll-bar",HI="with-scroll-bars-hidden",qI="--removed-body-scroll-bar-size";function tp(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function UI(e,t){var r=P.useState(function(){return{value:e,callback:t,facade:{get current(){return r.value},set current(n){var o=r.value;o!==n&&(r.value=n,r.callback(n,o))}}}})[0];return r.callback=t,r.facade}var GI=typeof window<"u"?P.useLayoutEffect:P.useEffect,dk=new WeakMap;function VI(e,t){var r=UI(null,function(n){return e.forEach(function(o){return tp(o,n)})});return GI(function(){var n=dk.get(r);if(n){var o=new Set(n),s=new Set(e),l=r.current;o.forEach(function(c){s.has(c)||tp(c,null)}),s.forEach(function(c){o.has(c)||tp(c,l)})}dk.set(r,e)},[e]),r}function YI(e){return e}function KI(e,t){t===void 0&&(t=YI);var r=[],n=!1,o={read:function(){if(n)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:e},useMedium:function(s){var l=t(s,n);return r.push(l),function(){r=r.filter(function(c){return c!==l})}},assignSyncMedium:function(s){for(n=!0;r.length;){var l=r;r=[],l.forEach(s)}r={push:function(c){return s(c)},filter:function(){return r}}},assignMedium:function(s){n=!0;var l=[];if(r.length){var c=r;r=[],c.forEach(s),l=r}var d=function(){var m=l;l=[],m.forEach(s)},h=function(){return Promise.resolve().then(d)};h(),r={push:function(m){l.push(m),h()},filter:function(m){return l=l.filter(m),r}}}};return o}function XI(e){e===void 0&&(e={});var t=KI(null);return t.options=ln({async:!0,ssr:!1},e),t}var ST=function(e){var t=e.sideCar,r=wT(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var n=t.read();if(!n)throw new Error("Sidecar medium not found");return P.createElement(n,ln({},r))};ST.isSideCarExport=!0;function $I(e,t){return e.useMedium(t),ST}var kT=XI(),rp=function(){},md=P.forwardRef(function(e,t){var r=P.useRef(null),n=P.useState({onScrollCapture:rp,onWheelCapture:rp,onTouchMoveCapture:rp}),o=n[0],s=n[1],l=e.forwardProps,c=e.children,d=e.className,h=e.removeScrollBar,m=e.enabled,f=e.shards,p=e.sideCar,g=e.noRelative,x=e.noIsolation,b=e.inert,w=e.allowPinchZoom,y=e.as,S=y===void 0?"div":y,C=e.gapMode,k=wT(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),A=p,N=VI([r,t]),D=ln(ln({},k),o);return P.createElement(P.Fragment,null,m&&P.createElement(A,{sideCar:kT,removeScrollBar:h,shards:f,noRelative:g,noIsolation:x,inert:b,setCallbacks:s,allowPinchZoom:!!w,lockRef:r,gapMode:C}),l?P.cloneElement(P.Children.only(c),ln(ln({},D),{ref:N})):P.createElement(S,ln({},D,{className:d,ref:N}),c))});md.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};md.classNames={fullWidth:Ru,zeroRight:Cu};var QI=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function ZI(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=QI();return t&&e.setAttribute("nonce",t),e}function JI(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function e9(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var t9=function(){var e=0,t=null;return{add:function(r){e==0&&(t=ZI())&&(JI(t,r),e9(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},r9=function(){var e=t9();return function(t,r){P.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}},xT=function(){var e=r9(),t=function(r){var n=r.styles,o=r.dynamic;return e(n,o),null};return t},n9={left:0,top:0,right:0,gap:0},np=function(e){return parseInt(e||"",10)||0},i9=function(e){var t=window.getComputedStyle(document.body),r=t[e==="padding"?"paddingLeft":"marginLeft"],n=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[np(r),np(n),np(o)]},o9=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return n9;var t=i9(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},a9=xT(),xa="data-scroll-locked",s9=function(e,t,r,n){var o=e.left,s=e.top,l=e.right,c=e.gap;return r===void 0&&(r="margin"),`
290  .`.concat(HI,` {
291   overflow: hidden `).concat(n,`;
292   padding-right: `).concat(c,"px ").concat(n,`;
293  }
294  body[`).concat(xa,`] {
295    overflow: hidden `).concat(n,`;
296    overscroll-behavior: contain;
297    `).concat([t&&"position: relative ".concat(n,";"),r==="margin"&&`
298    padding-left: `.concat(o,`px;
299    padding-top: `).concat(s,`px;
300    padding-right: `).concat(l,`px;
301    margin-left:0;
302    margin-top:0;
303    margin-right: `).concat(c,"px ").concat(n,`;
304    `),r==="padding"&&"padding-right: ".concat(c,"px ").concat(n,";
304")].filter(Boolean).join(""),`
305  }
306  
307  .`).concat(Cu,` {
308    right: `).concat(c,"px ").concat(n,`;
309  }
310  
311  .`).concat(Ru,` {
312    margin-right: `).concat(c,"px ").concat(n,`;
313  }
314  
315  .`).concat(Cu," .").concat(Cu,` {
316    right: 0 `).concat(n,`;
317  }
318  
319  .`).concat(Ru," .").concat(Ru,` {
320    margin-right: 0 `).concat(n,`;
321  }
322  
323  body[`).concat(xa,`] {
324    `).concat(qI,": ").concat(c,`px;
325  }
326`)},fk=function(){var e=parseInt(document.body.getAttribute(xa)||"0",10);return isFinite(e)?e:0},l9=function(){P.useEffect(function(){return document.body.setAttribute(xa,(fk()+1).toString()),function(){var e=fk()-1;e<=0?document.body.removeAttribute(xa):document.body.setAttribute(xa,e.toString())}},[])},c9=function(e){var t=e.noRelative,r=e.noImportant,n=e.gapMode,o=n===void 0?"margin":n;l9();var s=P.useMemo(function(){return o9(o)},[o]);return P.createElement(a9,{styles:s9(s,!t,o,r?"":"!important")})},Pg=!1;if(typeof window<"u")try{var su=Object.defineProperty({},"passive",{get:function(){return Pg=!0,!0}});window.addEventListener("test",su,su),window.removeEventListener("test",su,su)}catch{Pg=!1}var da=Pg?{passive:!1}:!1,u9=function(e){return e.tagName==="TEXTAREA"},CT=function(e,t){if(!(e instanceof Element))return!1;var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!u9(e)&&r[t]==="visible")},d9=function(e){return CT(e,"overflowY")},f9=function(e){return CT(e,"overflowX")},hk=function(e,t){var r=t.ownerDocument,n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var o=RT(e,n);if(o){var s=AT(e,n),l=s[1],c=s[2];if(l>c)return!0}n=n.parentNode}while(n&&n!==r.body);return!1},h9=function(e){var t=e.scrollTop,r=e.scrollHeight,n=e.clientHeight;return[t,r,n]},p9=function(e){var t=e.scrollLeft,r=e.scrollWidth,n=e.clientWidth;return[t,r,n]},RT=function(e,t){return e==="v"?d9(t):f9(t)},AT=function(e,t){return e==="v"?h9(t):p9(t)},m9=function(e,t){return e==="h"&&t==="rtl"?-1:1},g9=function(e,t,r,n,o){var s=m9(e,window.getComputedStyle(t).direction),l=s*n,c=r.target,d=t.contains(c),h=!1,m=l>0,f=0,p=0;do{if(!c)break;var g=AT(e,c),x=g[0],b=g[1],w=g[2],y=b-w-s*x;(x||y)&&RT(e,c)&&(f+=y,p+=x);var S=c.parentNode;c=S&&S.nodeType===Node.DOCUMENT_FRAGMENT_NODE?S.host:S}while(!d&&c!==document.body||d&&(t.contains(c)||t===c));return(m&&Math.abs(f)<1||!m&&Math.abs(p)<1)&&(h=!0),h},lu=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},pk=function(e){return[e.deltaX,e.deltaY]},mk=function(e){return e&&"current"in e?e.current:e},y9=function(e,t){return e[0]===t[0]&&e[1]===t[1]},b9=function(e){return`
327  .block-interactivity-`.concat(e,` {pointer-events: none;}
328  .allow-interactivity-`).concat(e,` {pointer-events: all;}
329`)},v9=0,fa=[];function w9(e){var t=P.useRef([]),r=P.useRef([0,0]),n=P.useRef(),o=P.useState(v9++)[0],s=P.useState(xT)[0],l=P.useRef(e);P.useEffect(function(){l.current=e},[e]),P.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var b=zI([e.lockRef.current],(e.shards||[]).map(mk),!0).filter(Boolean);return b.forEach(function(w){return w.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),b.forEach(function(w){return w.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var c=P.useCallback(function(b,w){if("touches"in b&&b.touches.length===2||b.type==="wheel"&&b.ctrlKey)return!l.current.allowPinchZoom;var y=lu(b),S=r.current,C="deltaX"in b?b.deltaX:S[0]-y[0],k="deltaY"in b?b.deltaY:S[1]-y[1],A,N=b.target,D=Math.abs(C)>Math.abs(k)?"h":"v";if("touches"in b&&D==="h"&&N.type==="range")return!1;var _=window.getSelection(),F=_&&_.anchorNode,M=F?F===N||F.contains(N):!1;if(M)return!1;var O=hk(D,N);if(!O)return!0;if(O?A=D:(A=D==="v"?"h":"v",O=hk(D,N)),!O)return!1;if(!n.current&&"changedTouches"in b&&(C||k)&&(n.current=A),!A)return!0;var j=n.current||A;return g9(j,w,b,j==="h"?C:k)},[]),d=P.useCallback(function(b){var w=b;if(!(!fa.length||fa[fa.length-1]!==s)){var y="deltaY"in w?pk(w):lu(w),S=t.current.filter(function(A){return A.name===w.t
vendor: 4,136 bytes, line 329
329ype&&(A.target===w.target||w.target===A.shadowParent)&&y9(A.delta,y)})[0];if(S&&S.should){w.cancelable&&w.preventDefault();return}if(!S){var C=(l.current.shards||[]).map(mk).filter(Boolean).filter(function(A){return A.contains(w.target)}),k=C.length>0?c(w,C[0]):!l.current.noIsolation;k&&w.cancelable&&w.preventDefault()}}},[]),h=P.useCallback(function(b,w,y,S){var C={name:b,delta:w,target:y,should:S,shadowParent:S9(y)};t.current.push(C),setTimeout(function(){t.current=t.current.filter(function(k){return k!==C})},1)},[]),m=P.useCallback(function(b){r.current=lu(b),n.current=void 0},[]),f=P.useCallback(function(b){h(b.type,pk(b),b.target,c(b,e.lockRef.current))},[]),p=P.useCallback(function(b){h(b.type,lu(b),b.target,c(b,e.lockRef.current))},[]);P.useEffect(function(){return fa.push(s),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener("wheel",d,da),document.addEventListener("touchmove",d,da),document.addEventListener("touchstart",m,da),function(){fa=fa.filter(function(b){return b!==s}),document.removeEventListener("wheel",d,da),document.removeEventListener("touchmove",d,da),document.removeEventListener("touchstart",m,da)}},[]);var g=e.removeScrollBar,x=e.inert;return P.createElement(P.Fragment,null,x?P.createElement(s,{styles:b9(o)}):null,g?P.createElement(c9,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function S9(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const k9=$I(kT,w9);var TT=P.forwardRef(function(e,t){return P.createElement(md,ln({},e,{ref:t,sideCar:k9}))});TT.classNames=md.classNames;var x9=[" ","Enter","ArrowUp","ArrowDown"],C9=[" ","Enter"],gd="Select",[ab,yd,R9]=B7(gd),[$a]=Zy(gd,[R9,cT]),sb=cT(),[rq,Ii]=$a(gd),[nq,A9]=$a(gd),ET="SelectTrigger",_T=P.forwardRef((e,t)=>{const{__scopeSelect:r,disabled:n=!1,...o}=e,s=sb(r),l=Ii(ET,r),c=l.disabled||n,d=Wt(t,l.onTriggerChange),h=yd(r),m=P.useRef("touch"),[f,p,g]=QT(b=>{const w=h().filter(C=>!C.disabled),y=w.find(C=>C.value===l.value),S=ZT(w,b,y);S!==void 0&&l.onValueChange(S.value)}),x=b=>{c||(l.onOpenChange(!0),g()),b&&(l.triggerPointerDownPosRef.current={x:Math.round(b.pageX),y:Math.round(b.pageY)})};return R.jsx(CI,{asChild:!0,...s,children:R.jsx(St.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":$T(l.value)?"":void 0,...o,ref:d,onClick:xt(o.onClick,b=>{b.currentTarget.focus(),m.current!=="mouse"&&x(b)}),onPointerDown:xt(o.onPointerDown,b=>{m.current=b.pointerType;const w=b.target;w.hasPointerCapture(b.pointerId)&&w.releasePointerCapture(b.pointerId),b.button===0&&b.ctrlKey===!1&&b.pointerType==="mouse"&&(x(b),b.preventDefault())}),onKeyDown:xt(o.onKeyDown,b=>{const w=f.current!=="";!(b.ctrlKey||b.altKey||b.metaKey)&&b.key.length===1&&p(b.key),!(w&&b.key===" ")&&x9.includes(b.key)&&(x(),b.preventDefault())})})})});_T.displayName=ET;var DT="SelectValue",T9=P.forwardRef((e,t)=>{const{__scopeSelect:r,className:n,style:o,children:s,placeholder:l="",...c}=e,d=Ii(DT,r),{onValueNodeHasChildrenChange:h}=d,m=s!==void 0,f=Wt(t,d.onValueNodeChange);return xr(()=>{h(m)},[h,m]),R.jsx(St.span,{...c,ref:f,style:{pointerEvents:"none"},children:$T(d.value)?R.jsx(R.Fragment,{children:l}):s})});T9.displayName=DT;var E9="SelectIcon",NT=P.forwardRef((e,t)=>{const{__scopeSelect:r,children:n,...o}=e;return R.jsx(St.span,{"aria-hidden":!0,...o,ref:t,children:n||"▼"})});NT.displayName=E9;var _9="SelectPortal",BT=e=>R.jsx(yT,{asChild:!0,...e});BT.displayName=_9;var Bo="SelectContent",OT=P.forwardRef((e,t)=>{const r=Ii(Bo,e.__scopeSelect),[n,o]=P.useState();if(xr(()=>{o(new DocumentFragment)},[]),!r.open){const s=n;return s?Cl.createPortal(R.jsx(LT,{scope:e.__scopeSelect,children:R.jsx(ab.Slot,{scope:e.__scopeSelect,children:R.jsx("div",{children:e.children})})}),s):null}return R.jsx(MT,{...e,ref:t})});OT.displayName=Bo;var Yr=10,[LT,Wi]=$a(Bo),D9="SelectContentImpl",N9=EI("SelectContent.RemoveScroll"),MT=P.forwardRef((e,t)=>
vendor: 15,750 bytes, line 329
329{const{__scopeSelect:r,position:n="item-aligned",onCloseAutoFocus:o,onEscapeKeyDown:s,onPointerDownOutside:l,side:c,sideOffset:d,align:h,alignOffset:m,arrowPadding:f,collisionBoundary:p,collisionPadding:g,sticky:x,hideWhenDetached:b,avoidCollisions:w,...y}=e,S=Ii(Bo,r),[C,k]=P.useState(null),[A,N]=P.useState(null),D=Wt(t,V=>k(V)),[_,F]=P.useState(null),[M,O]=P.useState(null),j=yd(r),[I,L]=P.useState(!1),H=P.useRef(!1);P.useEffect(()=>{if(C)return WI(C)},[C]),X7();const G=P.useCallback(V=>{const[te,...ne]=j().map(ye=>ye.ref.current),[ce]=ne.slice(-1),fe=document.activeElement;for(const ye of V)if(ye===fe||(ye==null||ye.scrollIntoView({block:"nearest"}),ye===te&&A&&(A.scrollTop=0),ye===ce&&A&&(A.scrollTop=A.scrollHeight),ye==null||ye.focus(),document.activeElement!==fe))return},[j,A]),X=P.useCallback(()=>G([_,C]),[G,_,C]);P.useEffect(()=>{I&&X()},[I,X]);const{onOpenChange:Q,triggerPointerDownPosRef:K}=S;P.useEffect(()=>{if(C){let V={x:0,y:0};const te=ce=>{var fe,ye;V={x:Math.abs(Math.round(ce.pageX)-(((fe=K.current)==null?void 0:fe.x)??0)),y:Math.abs(Math.round(ce.pageY)-(((ye=K.current)==null?void 0:ye.y)??0))}},ne=ce=>{V.x<=10&&V.y<=10?ce.preventDefault():C.contains(ce.target)||Q(!1),document.removeEventListener("pointermove",te),K.current=null};return K.current!==null&&(document.addEventListener("pointermove",te),document.addEventListener("pointerup",ne,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",te),document.removeEventListener("pointerup",ne,{capture:!0})}}},[C,Q,K]),P.useEffect(()=>{const V=()=>Q(!1);return window.addEventListener("blur",V),window.addEventListener("resize",V),()=>{window.removeEventListener("blur",V),window.removeEventListener("resize",V)}},[Q]);const[q,B]=QT(V=>{const te=j().filter(fe=>!fe.disabled),ne=te.find(fe=>fe.ref.current===document.activeElement),ce=ZT(te,V,ne);ce&&setTimeout(()=>ce.ref.current.focus())}),W=P.useCallback((V,te,ne)=>{const ce=!H.current&&!ne;(S.value!==void 0&&S.value===te||ce)&&(F(V),ce&&(H.current=!0))},[S.value]),Y=P.useCallback(()=>C==null?void 0:C.focus(),[C]),ee=P.useCallback((V,te,ne)=>{const ce=!H.current&&!ne;(S.value!==void 0&&S.value===te||ce)&&O(V)},[S.value]),Z=n==="popper"?jg:PT,U=Z===jg?{side:c,sideOffset:d,align:h,alignOffset:m,arrowPadding:f,collisionBoundary:p,collisionPadding:g,sticky:x,hideWhenDetached:b,avoidCollisions:w}:{};return R.jsx(LT,{scope:r,content:C,viewport:A,onViewportChange:N,itemRefCallback:W,selectedItem:_,onItemLeave:Y,itemTextRefCallback:ee,focusSelectedItem:X,selectedItemText:M,position:n,isPositioned:I,searchRef:q,children:R.jsx(TT,{as:N9,allowPinchZoom:!0,children:R.jsx(VA,{asChild:!0,trapped:S.open,onMountAutoFocus:V=>{V.preventDefault()},onUnmountAutoFocus:xt(o,V=>{var te;(te=S.trigger)==null||te.focus({preventScroll:!0}),V.preventDefault()}),children:R.jsx(UA,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:V=>V.preventDefault(),onDismiss:()=>S.onOpenChange(!1),children:R.jsx(Z,{role:"listbox",id:S.contentId,"data-state":S.open?"open":"closed",dir:S.dir,onContextMenu:V=>V.preventDefault(),...y,...U,onPlaced:()=>L(!0),ref:D,style:{display:"flex",flexDirection:"column",outline:"none",...y.style},onKeyDown:xt(y.onKeyDown,V=>{const te=V.ctrlKey||V.altKey||V.metaKey;if(V.key==="Tab"&&V.preventDefault(),!te&&V.key.length===1&&B(V.key),["ArrowUp","ArrowDown","Home","End"].includes(V.key)){let ce=j().filter(fe=>!fe.disabled).map(fe=>fe.ref.current);if(["ArrowUp","End"].includes(V.key)&&(ce=ce.slice().reverse()),["ArrowUp","ArrowDown"].includes(V.key)){const fe=V.target,ye=ce.indexOf(fe);ce=ce.slice(ye+1)}setTimeout(()=>G(ce)),V.preventDefault()}})})})})})})});MT.displayName=D9;var B9="SelectItemAlignedPosition",PT=P.forwardRef((e,t)=>{const{__scopeSelect:r,onPlaced:n,...o}=e,s=Ii(Bo,r),l=Wi(Bo,r),[c,d]=P.useState(null),[h,m]=P.useState(null),f=Wt(t,D=>m(D)),p=yd(r),g=P.useRef(!1),x=P.useRef(!0),{viewport:b,selectedItem:w,selectedItemText:y,focusSelectedItem:S}=l,C=P.useCallback(()=>{if(s.trigger&&s.valueNode&&c&&h&&b&&w&&y){const D=s.trigger.getBoundingClientRect(),_=h.getBoundingClientRect(),F=s.valueNode.getBoundingClientRect(),M=y.getBoundingClientRect();if(s.dir!=="rtl"){const fe=M.left-_.left,ye=F.left-fe,ke=D.left-ye,Ae=D.width+ke,Ie=Math.max(Ae,_.width),et=window.innerWidth-Yr,He=GS(ye,[Yr,Math.max(Yr,et-Ie)]);c.style.minWidth=Ae+"px",c.style.left=He+"px"}else{const fe=_.right-M.right,ye=window.innerWidth-F.right-fe,ke=window.innerWidth-D.right-ye,Ae=D.width+ke,Ie=Math.max(Ae,_.width),et=window.innerWidth-Yr,He=GS(ye,[Yr,Math.max(Yr,et-Ie)]);c.style.minWidth=Ae+"px",c.style.right=He+"px"}const O=p(),j=window.innerHeight-Yr*2,I=b.scrollHeight,L=window.getComputedStyle(h),H=parseInt(L.borderTopWidth,10),G=parseInt(L.paddingTop,10),X=parseInt(L.borderBottomWidth,10),Q=parseInt(L.paddingBottom,10),K=H+G+I+Q+X,q=Math.min(w.offsetHeight*5,K),B=window.getComputedStyle(b),W=parseInt(B.paddingTop,10),Y=parseInt(B.paddingBottom,10),ee=D.top+D.height/2-Yr,Z=j-ee,U=w.offsetHeight/2,V=w.offsetTop+U,te=H+G+V,ne=K-te;if(te<=ee){const fe=O.length>0&&w===O[O.length-1].ref.current;c.style.bottom="0px";const ye=h.clientHeight-b.offsetTop-b.offsetHeight,ke=Math.max(Z,U+(fe?Y:0)+ye+X),Ae=te+ke;c.style.height=Ae+"px"}else{const fe=O.length>0&&w===O[0].ref.current;c.style.top="0px";const ke=Math.max(ee,H+b.offsetTop+(fe?W:0)+U)+ne;c.style.height=ke+"px",b.scrollTop=te-ee+b.offsetTop}c.style.margin=`${Yr}px 0`,c.style.minHeight=q+"px",c.style.maxHeight=j+"px",n==null||n(),requestAnimationFrame(()=>g.current=!0)}},[p,s.trigger,s.valueNode,c,h,b,w,y,s.dir,n]);xr(()=>C(),[C]);const[k,A]=P.useState();xr(()=>{h&&A(window.getComputedStyle(h).zIndex)},[h]);const N=P.useCallback(D=>{D&&x.current===!0&&(C(),S==null||S(),x.current=!1)},[C,S]);return R.jsx(L9,{scope:r,contentWrapper:c,shouldExpandOnScrollRef:g,onScrollButtonChange:N,children:R.jsx("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:k},children:R.jsx(St.div,{...o,ref:f,style:{boxSizing:"border-box",maxHeight:"100%",...o.style}})})})});PT.displayName=B9;var O9="SelectPopperPosition",jg=P.forwardRef((e,t)=>{const{__scopeSelect:r,align:n="start",collisionPadding:o=Yr,...s}=e,l=sb(r);return R.jsx(RI,{...l,...s,ref:t,align:n,collisionPadding:o,style:{boxSizing:"border-box",...s.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});jg.displayName=O9;var[L9,lb]=$a(Bo,{}),Fg="SelectViewport",jT=P.forwardRef((e,t)=>{const{__scopeSelect:r,nonce:n,...o}=e,s=Wi(Fg,r),l=lb(Fg,r),c=Wt(t,s.onViewportChange),d=P.useRef(0);return R.jsxs(R.Fragment,{children:[R.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:n}),R.jsx(ab.Slot,{scope:r,children:R.jsx(St.div,{"data-radix-select-viewport":"",role:"presentation",...o,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...o.style},onScroll:xt(o.onScroll,h=>{const m=h.currentTarget,{contentWrapper:f,shouldExpandOnScrollRef:p}=l;if(p!=null&&p.current&&f){const g=Math.abs(d.current-m.scrollTop);if(g>0){const x=window.innerHeight-Yr*2,b=parseFloat(f.style.minHeight),w=parseFloat(f.style.height),y=Math.max(b,w);if(y<x){const S=y+g,C=Math.min(x,S),k=S-C;f.style.height=C+"px",f.style.bottom==="0px"&&(m.scrollTop=k>0?k:0,f.style.justifyContent="flex-end")}}}d.current=m.scrollTop})})})]})});jT.displayName=Fg;var FT="SelectGroup",[M9,P9]=$a(FT),j9=P.forwardRef((e,t)=>{const{__scopeSelect:r,...n}=e,o=KA();return R.jsx(M9,{scope:r,id:o,children:R.jsx(St.div,{role:"group","aria-labelledby":o,...n,ref:t})})});j9.displayName=FT;var IT="SelectLabel",WT=P.forwardRef((e,t)=>{const{__scopeSelect:r,...n}=e,o=P9(IT,r);return R.jsx(St.div,{id:o.id,...n,ref:t})});WT.displayName=IT;var Yu="SelectItem",[F9,zT]=$a(Yu),HT=P.forwardRef((e,t)=>{const{__scopeSelect:r,value:n,disabled:o=!1,textValue:s,...l}=e,c=Ii(Yu,r),d=Wi(Yu,r),h=c.value===n,[m,f]=P.useState(s??""),[p,g]=P.useState(!1),x=Wt(t,S=>{var C;return(C=d.itemRefCallback)==null?void 0:C.call(d,S,n,o)}),b=KA(),w=P.useRef("touch"),y=()=>{o||(c.onValueChange(n),c.onOpenChange(!1))};if(n==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return R.jsx(F9,{scope:r,value:n,disabled:o,textId:b,isSelected:h,onItemTextChange:P.useCallback(S=>{f(C=>C||((S==null?void 0:S.textContent)??"").trim())},[]),children:R.jsx(ab.ItemSlot,{scope:r,value:n,disabled:o,textValue:m,children:R.jsx(St.div,{role:"option","aria-labelledby":b,"data-highlighted":p?"":void 0,"aria-selected":h&&p,"data-state":h?"checked":"unchecked","aria-disabled":o||void 0,"data-disabled":o?"":void 0,tabIndex:o?void 0:-1,...l,ref:x,onFocus:xt(l.onFocus,()=>g(!0)),onBlur:xt(l.onBlur,()=>g(!1)),onClick:xt(l.onClick,()=>{w.current!=="mouse"&&y()}),onPointerUp:xt(l.onPointerUp,()=>{w.current==="mouse"&&y()}),onPointerDown:xt(l.onPointerDown,S=>{w.current=S.pointerType}),onPointerMove:xt(l.onPointerMove,S=>{var C;w.current=S.pointerType,o?(C=d.onItemLeave)==null||C.call(d):w.current==="mouse"&&S.currentTarget.focus({preventScroll:!0})}),onPointerLeave:xt(l.onPointerLeave,S=>{var C;S.currentTarget===document.activeElement&&((C=d.onItemLeave)==null||C.call(d))}),onKeyDown:xt(l.onKeyDown,S=>{var k;((k=d.searchRef)==null?void 0:k.current)!==""&&S.key===" "||(C9.includes(S.key)&&y(),S.key===" "&&S.preventDefault())})})})})});HT.displayName=Yu;var Qs="SelectItemText",qT=P.forwardRef((e,t)=>{const{__scopeSelect:r,className:n,style:o,...s}=e,l=Ii(Qs,r),c=Wi(Qs,r),d=zT(Qs,r),h=A9(Qs,r),[m,f]=P.useState(null),p=Wt(t,y=>f(y),d.onItemTextChange,y=>{var S;return(S=c.itemTextRefCallback)==null?void 0:S.call(c,y,d.value,d.disabled)}),g=m==null?void 0:m.textContent,x=P.useMemo(()=>R.jsx("option",{value:d.value,disabled:d.disabled,children:g},d.value),[d.disabled,d.value,g]),{onNativeOptionAdd:b,onNativeOptionRemove:w}=h;return xr(()=>(b(x),()=>w(x)),[b,w,x]),R.jsxs(R.Fragment,{children:[R.jsx(St.span,{id:d.textId,...s,ref:p}),d.isSelected&&l.valueNode&&!l.valueNodeHasChildren?Cl.createPortal(s.children,l.valueNode):null]})});qT.displayName=Qs;var UT="SelectItemIndicator",GT=P.forwardRef((e,t)=>{const{__scopeSelect:r,...n}=e;return zT(UT,r).isSelected?R.jsx(St.span,{"aria-hidden":!0,...n,ref:t}):null});GT.displayName=UT;var Ig="SelectScrollUpButton",VT=P.forwardRef((e,t)=>{const r=Wi(Ig,e.__scopeSelect),n=lb(Ig,e.__scopeSelect),[o,s]=P.useState(!1),l=Wt(t,n.onScrollButtonChange);return xr(()=>{if(r.viewport&&r.isPositioned){let c=function(){const h=d.scrollTop>0;s(h)};const d=r.viewport;return c(),d.addEventListener("scroll",c),()=>d.removeEventListener("scroll",c)}},[r.viewport,r.isPositioned]),o?R.jsx(KT,{...e,ref:l,onAutoScroll:()=>{const{viewport:c,selectedItem:d}=r;c&&d&&(c.scrollTop=c.scrollTop-d.offsetHeight)}}):null});VT.displayName=Ig;var Wg="SelectScrollDownButton",YT=P.forwardRef((e,t)=>{const r=Wi(Wg,e.__scopeSelect),n=lb(Wg,e.__scopeSelect),[o,s]=P.useState(!1),l=Wt(t,n.onScrollButtonChange);return xr(()=>{if(r.viewport&&r.isPositioned){let c=function(){const h=d.scrollHeight-d.clientHeight,m=Math.ceil(d.scrollTop)<h;s(m)};const d=r.viewport;return c(),d.addEventListener("scroll",c),()=>d.removeEventListener("scroll",c)}},[r.viewport,r.isPositioned]),o?R.jsx(KT,{...e,ref:l,onAutoScroll:()=>{const{viewport:c,selectedItem:d}=r;c&&d&&(c.scrollTop=c.scrollTop+d.offsetHeight)}}):null});YT.displayName=Wg;var KT=P.forwardRef((e,t)=>{const{__scopeSelect:r,onAutoScroll:n,...o}=e,s=Wi("SelectScrollButton",r),l=P.useRef(null),c=yd(r),d=P.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return P.useEffect(()=>()=>d(),[d]),xr(()=>{var m;const h=c().find(f=>f.ref.current===document.activeElement);(m=h==null?void 0:h.ref.current)==null||m.scrollIntoView({block:"nearest"})},[c]),R.jsx(St.div,{"aria-hidden":!0,...o,ref:t,style:{flexShrink:0,...o.style},onPointerDown:xt(o.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(n,50))}),onPointerMove:xt(o.onPointerMove,()=>{var h;(h=s.onItemLeave)==null||h.call(s),l.current===null&&(l.current=window.setInterval(n,50))}),onPointerLeave:xt(o.onPointerLeave,()=>{d()})})}),I9="SelectSeparator",XT=P.forwardRef((e,t)=>{const{__scopeSelect:r,...n}=e;return R.jsx(St.div,{"aria-hidden":!0,...n,ref:t})});XT.displayName=I9;var zg="SelectArrow",W9=P.forwardRef((e,t)=>{const{__scopeSelect:r,...n}=e,o=sb(r),s=Ii(zg,r),l=Wi(zg,r);return s.open&&l.position==="popper"?R.jsx(AI,{...o,...n,ref:t}):null});W9.displayName=zg;var z9="SelectBubbleInput",H9=P.forwardRef(({__scopeSelect:e,value:t,...r},n)=>{const o=P.useRef(null),s=Wt(n,o),l=LI(t);return P.useEffect(()=>{const c=o.current;if(!c)return;const d=window.HTMLSelectElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const f=new Event("change",{bubbles:!0});m.call(c,t),c.dispatchEvent(f)}},[l,t]),R.jsx(St.select,{...r,style:{...bT,...r.style},ref:s,defaultValue:t})});H9.displayName=z9;function $T(e){return e===""||e===void 0}function QT(e){const t=Do(e),r=P.useRef(""),n=P.useRef(0),o=P.useCallback(l=>{const c=r.current+l;t(c),(function d(h){r.current=h,window.clearTimeout(n.current),h!==""&&(n.current=window.setTimeout(()=>d(""),1e3))})(c)},[t]),s=P.useCallback(()=>{r.current="",window.clearTimeout(n.current)},[]);return P.useEffect(()=>()=>window.clearTimeout(n.current),[]),[r,o,s]}function ZT(e,t,r){const o=t.length>1&&Array.from(t).every(h=>h===t[0])?t[0]:t,s=r?e.indexOf(r):-1;let l=q9(e,Math.max(s,0));o.length===1&&(l=l.filter(h=>h!==r));const d=l.find(h=>h.textValue.toLowerCase().startsWith(o.toLowerCase()));return d!==r?d:void 0}function q9(e,t){return e.map((r,n)=>e[(t+n)%e.length])}var JT=_T,U9=NT,G9=BT,eE=OT,V9=jT,tE=WT,rE=HT,Y9=qT,K9=GT,nE=VT,iE=YT,oE=XT;const X9=P.forwardRef(({className:e,children:t,...r},n)=>R.jsxs(JT,{ref:n,className:ft("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...r,children:[t,R.jsx(U9,{asChild:!0,children:R.jsx(Zu,{className:"h-4 w-4 opacity-50"})})]}));X9.displayName=JT.displayName;const aE=P.forwardRef(({className:e,...t},r)=>R.jsx(nE,{ref:r,className:ft("flex cursor-default items-center justify-center py-1",e),...t,children:R.jsx(XD,{className:"h-4 w-4"})}));aE.displayName=nE.displayName;const sE=P.forwardRef(({className:e,...t},r)=>R.jsx(iE,{ref:r,className:ft("flex cursor-default items-center justify-center py-1",e),...t,children:R.jsx(Zu,{className:"h-4 w-4"})}));sE.displayName=iE.displayName;const $9=P.forwardRef(({className:e,children:t,position:r="popper",...n},o)=>R.jsx(G9,{children:R.jsxs(eE,{ref:o,className:ft("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:sli
329de-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:r,...n,children:[R.jsx(aE,{}),R.jsx(V9,{className:ft("p-1",r==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),R.jsx(sE,{})]})}));$9.displayName=eE.displayName;const Q9=P.forwardRef(({className:e,...t},r)=>R.jsx(tE,{ref:r,className:ft("px-2 py-1.5 text-sm font-semibold",e),...t}));Q9.displayName=tE.displayName;const Z9=P.forwardRef(({className:e,children:t,...r},n)=>R.jsxs(rE,{ref:n,className:ft("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...r,children:[R.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:R.jsx(K9,{children:R.jsx(HD,{
vendor: 5,083 bytes, line 329
329className:"h-4 w-4"})})}),R.jsx(Y9,{children:t})]}));Z9.displayName=rE.displayName;const J9=P.forwardRef(({className:e,...t},r)=>R.jsx(oE,{ref:r,className:ft("-mx-1 my-1 h-px bg-muted",e),...t}));J9.displayName=oE.displayName;const Ku=P.forwardRef(({className:e,...t},r)=>R.jsx("div",{ref:r,className:ft("rounded-xl border bg-card text-card-foreground shadow",e),...t}));Ku.displayName="Card";const lE=P.forwardRef(({className:e,...t},r)=>R.jsx("div",{ref:r,className:ft("flex flex-col space-y-1.5 p-6",e),...t}));lE.displayName="CardHeader";const cE=P.forwardRef(({className:e,...t},r)=>R.jsx("div",{ref:r,className:ft("font-semibold leading-none tracking-tight",e),...t}));cE.displayName="CardTitle";const eW=P.forwardRef(({className:e,...t},r)=>R.jsx("div",{ref:r,className:ft("text-sm text-muted-foreground",e),...t}));eW.displayName="CardDescription";const Xu=P.forwardRef(({className:e,...t},r)=>R.jsx("div",{ref:r,className:ft("p-6 pt-0",e),...t}));Xu.displayName="CardContent";const tW=P.forwardRef(({className:e,...t},r)=>R.jsx("div",{ref:r,className:ft("flex items-center p-6 pt-0",e),...t}));tW.displayName="CardFooter";const rW=Vg("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Ln({className:e,variant:t,...r}){return R.jsx("div",{className:ft(rW({variant:t}),e),...r})}function nW(e){if(typeof document>"u")return;let t=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",t.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}Array(12).fill(0);let Hg=1;class iW{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{const r=this.subscribers.indexOf(t);this.subscribers.splice(r,1)}),this.publish=t=>{this.subscribers.forEach(r=>r(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var r;const{message:n,...o}=t,s=typeof(t==null?void 0:t.id)=="number"||((r=t.id)==null?void 0:r.length)>0?t.id:Hg++,l=this.toasts.find(d=>d.id===s),c=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(s)&&this.dismissedToasts.delete(s),l?this.toasts=this.toasts.map(d=>d.id===s?(this.publish({...d,...t,id:s,title:n}),{...d,...t,id:s,dismissible:c,title:n}):d):this.addToast({title:n,...o,dismissible:c,id:s}),s},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(r=>r({id:t,dismiss:!0})))):this.toasts.forEach(r=>{this.subscribers.forEach(n=>n({id:r.id,dismiss:!0}))}),t),this.message=(t,r)=>this.create({...r,message:t}),this.error=(t,r)=>this.create({...r,message:t,type:"error"}),this.success=(t,r)=>this.create({...r,type:"success",message:t}),this.info=(t,r)=>this.create({...r,type:"info",message:t}),this.warning=(t,r)=>this.create({...r,type:"warning",message:t}),this.loading=(t,r)=>this.create({...r,type:"loading",message:t}),this.promise=(t,r)=>{if(!r)return;let n;r.loading!==void 0&&(n=this.create({...r,promise:t,type:"loading",message:r.loading,description:typeof r.description!="function"?r.description:void 0}));const o=Promise.resolve(t instanceof Function?t():t);let s=n!==void 0,l;const c=o.then(async h=>{if(l=["resolve",h],dr.isValidElement(h))s=!1,this.create({id:n,type:"default",message:h});else if(aW(h)&&!h.ok){s=!1;const f=typeof r.error=="function"?await r.error(`HTTP error! status: ${h.status}`):r.error,p=typeof r.description=="function"?await r.description(`HTTP error! status: ${h.status}`):r.description,x=typeof f=="object"&&!dr.isValidElement(f)?f:{message:f};this.create({id:n,type:"error",description:p,...x})}else if(h instanceof Error){s=!1;const f=typeof r.error=="function"?await r.error(h):r.error,p=typeof r.description=="function"?await r.description(h):r.description,x=typeof f=="object"&&!dr.isValidElement(f)?f:{message:f};this.create({id:n,type:"error",description:p,...x})}else if(r.success!==void 0){s=!1;const f=typeof r.success=="function"?await r.success(h):r.success,p=typeof r.description=="function"?await r.description(h):r.description,x=typeof f=="object"&&!dr.isValidElement(f)?f:{message:f};this.create({id:n,type:"success",description:p,...x})}}).catch(async h=>{if(l=["reject",h],r.error!==void 0){s=!1;const m=typeof r.error=="function"?await r.error(h):r.error,f=typeof r.description=="function"?await r.description(h):r.description,g=typeof m=="object"&&!dr.isValidElement(m)?m:{message:m};this.create({id:n,type:"error",description:f,...g})}}).finally(()=>{s&&(this.dismiss(n),n=void 0),r.finally==null||r.finally.call(r)}),d=()=>new Promise((h,m)=>c.then(()=>l[0]==="reject"?m(l[1]):h(l[1])).catch(m));
vendor: 804 bytes, line 329
329return typeof n!="string"&&typeof n!="number"?{unwrap:d}:Object.assign(n,{unwrap:d})},this.custom=(t,r)=>{const n=(r==null?void 0:r.id)||Hg++;return this.create({jsx:t(n),id:n,...r}),n},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const Or=new iW,oW=(e,t)=>{const r=(t==null?void 0:t.id)||Hg++;return Or.addToast({title:e,...t,id:r}),r},aW=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",sW=oW,lW=()=>Or.toasts,cW=()=>Or.getActiveToasts(),vt=Object.assign(sW,{success:Or.success,info:Or.info,warning:Or.warning,error:Or.error,custom:Or.custom,message:Or.message,promise:Or.promise,dismiss:Or.dismiss,loading:Or.loading},{getHistory:lW,getToasts:cW});nW
vendor: 14,864 bytes, line 329
329("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");
vendor: 8,098 bytes, line 329
329var ip,gk;function uW(){if(gk)return ip;gk=1;function e(){this.__data__=[],this.size=0}return ip=e,ip}var op,yk;function uE(){if(yk)return op;yk=1;function e(t,r){return t===r||t!==t&&r!==r}return op=e,op}var ap,bk;function bd(){if(bk)return ap;bk=1;var e=uE();function t(r,n){for(var o=r.length;o--;)if(e(r[o][0],n))return o;return-1}return ap=t,ap}var sp,vk;function dW(){if(vk)return sp;vk=1;var e=bd(),t=Array.prototype,r=t.splice;function n(o){var s=this.__data__,l=e(s,o);if(l<0)return!1;var c=s.length-1;return l==c?s.pop():r.call(s,l,1),--this.size,!0}return sp=n,sp}var lp,wk;function fW(){if(wk)return lp;wk=1;var e=bd();function t(r){var n=this.__data__,o=e(n,r);return o<0?void 0:n[o][1]}return lp=t,lp}var cp,Sk;function hW(){if(Sk)return cp;Sk=1;var e=bd();function t(r){return e(this.__data__,r)>-1}return cp=t,cp}var up,kk;function pW(){if(kk)return up;kk=1;var e=bd();function t(r,n){var o=this.__data__,s=e(o,r);return s<0?(++this.size,o.push([r,n])):o[s][1]=n,this}return up=t,up}var dp,xk;function vd(){if(xk)return dp;xk=1;var e=uW(),t=dW(),r=fW(),n=hW(),o=pW();function s(l){var c=-1,d=l==null?0:l.length;for(this.clear();++c<d;){var h=l[c];this.set(h[0],h[1])}}return s.prototype.clear=e,s.prototype.delete=t,s.prototype.get=r,s.prototype.has=n,s.prototype.set=o,dp=s,dp}var fp,Ck;function mW(){if(Ck)return fp;Ck=1;var e=vd();function t(){this.__data__=new e,this.size=0}return fp=t,fp}var hp,Rk;function gW(){if(Rk)return hp;Rk=1;function e(t){var r=this.__data__,n=r.delete(t);return this.size=r.size,n}return hp=e,hp}var pp,Ak;function yW(){if(Ak)return pp;Ak=1;function e(t){return this.__data__.get(t)}return pp=e,pp}var mp,Tk;function bW(){if(Tk)return mp;Tk=1;function e(t){return this.__data__.has(t)}return mp=e,mp}var gp,Ek;function dE(){if(Ek)return gp;Ek=1;var e=typeof Gc=="object"&&Gc&&Gc.Object===Object&&Gc;return gp=e,gp}var yp,_k;function zn(){if(_k)return yp;_k=1;var e=dE(),t=typeof self=="object"&&self&&self.Object===Object&&self,r=e||t||Function("return this")();return yp=r,yp}var bp,Dk;function cb(){if(Dk)return bp;Dk=1;var e=zn(),t=e.Symbol;return bp=t,bp}var vp,Nk;function vW(){if(Nk)return vp;Nk=1;var e=cb(),t=Object.prototype,r=t.hasOwnProperty,n=t.toString,o=e?e.toStringTag:void 0;function s(l){var c=r.call(l,o),d=l[o];try{l[o]=void 0;var h=!0}catch{}var m=n.call(l);return h&&(c?l[o]=d:delete l[o]),m}return vp=s,vp}var wp,Bk;function wW(){if(Bk)return wp;Bk=1;var e=Object.prototype,t=e.toString;function r(n){return t.call(n)}return wp=r,wp}var Sp,Ok;function wd(){if(Ok)return Sp;Ok=1;var e=cb(),t=vW(),r=wW(),n="[object Null]",o="[object Undefined]",s=e?e.toStringTag:void 0;function l(c){return c==null?c===void 0?o:n:s&&s in Object(c)?t(c):r(c)}return Sp=l,Sp}var kp,Lk;function fE(){if(Lk)return kp;Lk=1;function e(t){var r=typeof t;return t!=null&&(r=="object"||r=="function")}return kp=e,kp}var xp,Mk;function hE(){if(Mk)return xp;Mk=1;var e=wd(),t=fE(),r="[object AsyncFunction]",n="[object Function]",o="[object GeneratorFunction]",s="[object Proxy]";function l(c){if(!t(c))return!1;var d=e(c);return d==n||d==o||d==r||d==s}return xp=l,xp}var Cp,Pk;function SW(){if(Pk)return Cp;Pk=1;var e=zn(),t=e["__core-js_shared__"];return Cp=t,Cp}var Rp,jk;function kW(){if(jk)return Rp;jk=1;var e=SW(),t=(function(){var n=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""})();function r(n){return!!t&&t in n}return Rp=r,Rp}var Ap,Fk;function pE(){if(Fk)return Ap;Fk=1;var e=Function.prototype,t=e.toString;function r(n){if(n!=null){try{return t.call(n)}catch{}try{return n+""}catch{}}return""}return Ap=r,Ap}var Tp,Ik;function xW(){if(Ik)return Tp;Ik=1;var e=hE(),t=kW(),r=fE(),n=pE(),o=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,d=l.toString,h=c.hasOwnProperty,m=RegExp("^"+d.call(h).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function f(p){if(!r(p)||t(p))return!1;var g=e(p)?m:s;return g.test(n(p))}return Tp=f,Tp}var Ep,Wk;function CW(){if(Wk)return Ep;Wk=1;function e(t,r){return t==null?void 0:t[r]}return Ep=e,Ep}var _p,zk;function Qa(){if(zk)return _p;zk=1;var e=xW(),t=CW();function r(n,o){var s=t(n,o);return e(s)?s:void 0}return _p=r,_p}var Dp,Hk;function ub(){if(Hk)return Dp;Hk=1;var e=Qa(),t=zn(),r=e(t,"Map");return Dp=r,Dp}var Np,qk;function Sd(){if(qk)return Np;qk=1;var e=Qa(),t=e(Object,"create");return Np=t,Np}var Bp,Uk;function RW(){if(Uk)return Bp;Uk=1;var e=Sd();function t(){this.__data__=e?e(null):{},this.size=0}return Bp=t,Bp}var Op,Gk;function AW(){if(Gk)return Op;Gk=1;function e(t){var r=this.has(t)&&delete this.__data__[t];return this.size-=r?1:0,r}return Op=e,Op}var Lp,Vk;function TW(){if(Vk)return Lp;Vk=1;var e=Sd(),t="__lodash_hash_undefined__",r=Object.prototype,n=r.hasOwnProperty;function o(s){var l=this.__data__;if(e){var c=l[s];return c===t?void 0:c}return n.call(l,s)?l[s]:void 0}return Lp=o,Lp}var Mp,Yk;function EW(){if(Yk)return Mp;Yk=1;var e=Sd(),t=Object.prototype,r=t.hasOwnProperty;function n(o){var s=this.__data__;return e?s[o]!==void 0:r.call(s,o)}return Mp=n,Mp}var Pp,Kk;function _W(){if(Kk)return Pp;Kk=1;var e=Sd(),t="__lodash_hash_undefined__";function r(n,o){var s=this.__data__;return this.size+=this.has(n)?0:1,s[n]=e&&o===void 0?t:o,this}return Pp=r,Pp}var jp,Xk;function DW(){if(Xk)return jp;Xk=1;var e=RW(),t=AW(),r=TW(),n=EW(),o=_W();function s(l){var c=-1,d=l==null?0:l.length;for(this.clear();++c<d;){var h=l[c];this.set(h[0],h[1])}}return s.prototype.clear=e,s.prototype.delete=t,s.prototype.get=r,s.prototype.has=n,s.prototype.set=o,jp=s,jp}var Fp,$k;function NW(){if($k)return Fp;$k=1;var e=DW(),t=vd(),r=ub();function n(){this.size=0,this.__data__={hash:new e,map:new(r||t),string:new e}}return Fp=n,Fp}var Ip,Qk;function BW(){if(Qk)return Ip;Qk=1;function e(t){var r=typeof t;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?t!=="__proto__":t===null}return Ip=e,Ip}var Wp,Zk;function kd(){if(Zk)return Wp;Zk=1;var e=BW();function t(r,n){var o=r.__data__;return e(n)?o[typeof n=="string"?"string":"hash"]:o.map}return Wp=t,Wp}var zp,Jk;function OW(){if(Jk)return zp;Jk=1;var e=kd();function t(r){var n=e(this,r).delete(r);return this.size-=n?1:0,n}return zp=t,zp}var Hp,e2;function LW(){if(e2)return Hp;e2=1;var e=kd();function t(r){return e(this,r).get(r)}return Hp=t,Hp}var qp,t2;function MW(){if(t2)return qp;t2=1;var e=kd();function t(r){return e(this,r).has(r)}return qp=t,qp}var Up,r2;function PW(){if(r2)return Up;r2=1;var e=kd();function t(r,n){var o=e(this,r),s=o.size;return o.set(r,n),this.size+=o.size==s?0:1,this}return Up=t,Up}var Gp,n2;function mE(){if(n2)return Gp;n2=1;var e=NW(),t=OW(),r=LW(),n=MW(),o=PW();function s(l){var c=-1,d=l==null?0:l.length;for(this.clear();++c<d;){var h=l[c];this.set(h[0],h[1])}}return s.prototype.clear=e,s.prototype.delete=t,s.prototype.get=r,s.prototype.has=n,s.prototype.set=o,Gp=s,Gp}var Vp,i2;function jW(){if(i2)return Vp;i2=1;var e=vd(),t=ub(),r=mE(),n=200;function o(s,l){var c=this.__data__;if(c instanceof e){var d=c.__data__;if(!t||d.length<n-1)return d.push([s,l]),this.size=++c.size,this;c=this.__data__=new r(d)}return c.set(s,l),this.size=c.size,this}return Vp=o,Vp}var Yp,o2;function FW(){if(o2)return Yp;o2=1;var e=vd(),t=mW(),r=gW(),n=yW(),o=bW(),s=jW();function l(c){var d=this.__data__=new e(c);this.size=d.size}return l.prototype.clear=t,l.prototype.delete=r,l.prototype.get=n,l.prototype.has=o,l.prototype.set=s,Yp=l,Yp}var Kp,a2;function IW(){if(a2)return Kp;a2=1;var e="__lodash_hash_undefined__";function t(r){return this.__data__.set(r,e),this}return Kp=t,Kp}var Xp,s2;function WW(){if(s2)return Xp;s2=1;function e(t){return this.__data__.has(t)}return Xp=e,Xp}var $p,l2;function zW(){if(l2)return $p;l2=1;var e=mE(),t=IW(),r=WW();function n(o){var s=-1,l=o==null?0:o.length;for(this.__data__=new e;++s<l;)this.add(o[s])}return n.prototype.add=n.prototype.push=t,n.prototype.has=r,$p=n,$p}var Qp,c2;function HW(){if(c2)return Qp;c2=1;function e(t,r){for(var n=-1,o=t==null?0:t.length;++n<o;)if(r(t[n],n,t))return!0;return!1}return Qp=e,Qp}var Zp,u2;
vendor: 4,508 bytes, line 329
329function qW(){if(u2)return Zp;u2=1;function e(t,r){return t.has(r)}return Zp=e,Zp}var Jp,d2;function gE(){if(d2)return Jp;d2=1;var e=zW(),t=HW(),r=qW(),n=1,o=2;function s(l,c,d,h,m,f){var p=d&n,g=l.length,x=c.length;if(g!=x&&!(p&&x>g))return!1;var b=f.get(l),w=f.get(c);if(b&&w)return b==c&&w==l;var y=-1,S=!0,C=d&o?new e:void 0;for(f.set(l,c),f.set(c,l);++y<g;){var k=l[y],A=c[y];if(h)var N=p?h(A,k,y,c,l,f):h(k,A,y,l,c,f);if(N!==void 0){if(N)continue;S=!1;break}if(C){if(!t(c,function(D,_){if(!r(C,_)&&(k===D||m(k,D,d,h,f)))return C.push(_)})){S=!1;break}}else if(!(k===A||m(k,A,d,h,f))){S=!1;break}}return f.delete(l),f.delete(c),S}return Jp=s,Jp}var em,f2;function UW(){if(f2)return em;f2=1;var e=zn(),t=e.Uint8Array;return em=t,em}var tm,h2;function GW(){if(h2)return tm;h2=1;function e(t){var r=-1,n=Array(t.size);return t.forEach(function(o,s){n[++r]=[s,o]}),n}return tm=e,tm}var rm,p2;function VW(){if(p2)return rm;p2=1;function e(t){var r=-1,n=Array(t.size);return t.forEach(function(o){n[++r]=o}),n}return rm=e,rm}var nm,m2;function YW(){if(m2)return nm;m2=1;var e=cb(),t=UW(),r=uE(),n=gE(),o=GW(),s=VW(),l=1,c=2,d="[object Boolean]",h="[object Date]",m="[object Error]",f="[object Map]",p="[object Number]",g="[object RegExp]",x="[object Set]",b="[object String]",w="[object Symbol]",y="[object ArrayBuffer]",S="[object DataView]",C=e?e.prototype:void 0,k=C?C.valueOf:void 0;function A(N,D,_,F,M,O,j){switch(_){case S:if(N.byteLength!=D.byteLength||N.byteOffset!=D.byteOffset)return!1;N=N.buffer,D=D.buffer;case y:return!(N.byteLength!=D.byteLength||!O(new t(N),new t(D)));case d:case h:case p:return r(+N,+D);case m:return N.name==D.name&&N.message==D.message;case g:case b:return N==D+"";case f:var I=o;case x:var L=F&l;if(I||(I=s),N.size!=D.size&&!L)return!1;var H=j.get(N);if(H)return H==D;F|=c,j.set(N,D);var G=n(I(N),I(D),F,M,O,j);return j.delete(N),G;case w:if(k)return k.call(N)==k.call(D)}return!1}return nm=A,nm}var im,g2;function KW(){if(g2)return im;g2=1;function e(t,r){for(var n=-1,o=r.length,s=t.length;++n<o;)t[s+n]=r[n];return t}return im=e,im}var om,y2;function db(){if(y2)return om;y2=1;var e=Array.isArray;return om=e,om}var am,b2;function XW(){if(b2)return am;b2=1;var e=KW(),t=db();function r(n,o,s){var l=o(n);return t(n)?l:e(l,s(n))}return am=r,am}var sm,v2;function $W(){if(v2)return sm;v2=1;function e(t,r){for(var n=-1,o=t==null?0:t.length,s=0,l=[];++n<o;){var c=t[n];r(c,n,t)&&(l[s++]=c)}return l}return sm=e,sm}var lm,w2;function QW(){if(w2)return lm;w2=1;function e(){return[]}return lm=e,lm}var cm,S2;function ZW(){if(S2)return cm;S2=1;var e=$W(),t=QW(),r=Object.prototype,n=r.propertyIsEnumerable,o=Object.getOwnPropertySymbols,s=o?function(l){return l==null?[]:(l=Object(l),e(o(l),function(c){return n.call(l,c)}))}:t;return cm=s,cm}var um,k2;function JW(){if(k2)return um;k2=1;function e(t,r){for(var n=-1,o=Array(t);++n<t;)o[n]=r(n);return o}return um=e,um}var dm,x2;function xd(){if(x2)return dm;x2=1;function e(t){return t!=null&&typeof t=="object"}return dm=e,dm}var fm,C2;function ez(){if(C2)return fm;C2=1;var e=wd(),t=xd(),r="[object Arguments]";function n(o){return t(o)&&e(o)==r}return fm=n,fm}var hm,R2;function tz(){if(R2)return hm;R2=1;var e=ez(),t=xd(),r=Object.prototype,n=r.hasOwnProperty,o=r.propertyIsEnumerable,s=e((function(){return arguments})())?e:function(l){return t(l)&&n.call(l,"callee")&&!o.call(l,"callee")};return hm=s,hm}var Zs={exports:{}},pm,A2;function rz(){if(A2)return pm;A2=1;function e(){return!1}return pm=e,pm}Zs.exports;var T2;function yE(){return T2||(T2=1,(function(e,t){var r=zn(),n=rz(),o=t&&!t.nodeType&&t,s=o&&!0&&e&&!e.nodeType&&e,l=s&&s.exports===o,c=l?r.Buffer:void 0,d=c?c.isBuffer:void 0,h=d||n;e.exports=h})(Zs,Zs.exports)),Zs.exports}var mm,E2;function nz(){if(E2)return mm;E2=1;var e=9007199254740991,t=/^(?:0|[1-9]\d*)$/;function r(n,o){var s=typeof n;return o=o??e,!!o&&(s=="number"||s!="symbol"&&t.test(n))&&n>-1&&n%1==0&&n<o}return mm=r,mm}var gm,_2;function bE(){if(_2)return gm;_2=1;var e=9007199254740991;function t(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return gm=t,gm}var ym,D2;function iz(){if(D2)return ym;D2=1;var e=wd(),t=bE(),r=xd(),n="[object Arguments]",o="[object Array]",s="[object Boolean]",l="[object Date]",c="[object Error]",d="[object Function]",h="[object Map]",m="[object Number]",f="[object Object]",p="[object RegExp]",g="[object Set]",x="[object String]",b="[object WeakMap]",w="[object ArrayBuffer]",y="[object DataView]",S="[object Float32Array]",C="[object Float64Array
329]",k="[object Int8Array]",A="[object Int16Array]",N="[object Int32Array]",D="[object Uint8Array]",_="[object Uint8ClampedArray]",F="[object Uint16Array]",M="[object Uint32Array]",O={};O[S]=O[C]=O[k]=O[A]=O[N]=O[D]=O[_]=O[F]=O[M]=!0,O[n]=O[o]=O[w]=O[s]=O[y]=O[l]=O[c]=O[d]=O[h]=O[m]=O[f]=O[p]=O[g]=O[x]=O[b]=!1;function j(I){return r(I)&&t(I.length)&&!!O[e(I)]}return ym=j,ym}var bm,N2;function oz(){if(N2)return bm;N2=1;function e(t){return function(r){return t(r)}}return bm=e,bm}var Js={exports:{}};Js.exports;var B2;function az(){return B2||(B2=1,(function(e,t){var r=dE(),n=t&&!t.nodeType&&t,o=n&&!0&&e&&!e.nodeType&&e,s=o&&o.exports===n,l=s&&r.process,c=(function(){try{var d=o&&o.require&&o.require("util").types;return d||l&&l.binding&&l.binding("util")}catch{}})();e.exports=c})(Js,Js.exports)),Js.exports}var vm,O2;function vE(){if(O2)return vm;O2=1;var e=iz(),t=oz(),r=az(),n=r&&r.isTypedArray,o=n?t(n):e;return vm=o,vm}var wm,L2;function sz(){if(L2)return wm;L2=1;var e=JW(),t=tz(),r=db(),n=yE(),o=nz(),s=vE(),l=Object.prototype,c=l.hasOwnProperty;function d(h,m){var f=r(h),p=!f&&t(h),g=!f&&!p&&n(h),x=!f&&!p&&!g&&s(h),b=f||p||g||x,w=b?e(h.length,String):[],y=w.length;for(var S in h)(m||c.call(h,S))&&!(b&&(S=="length"||g&&(S=="offset"||S=="parent")||x&&(S=="buffer"||S=="byteLength"||S=="byteOffset")||o(S,y)))&&w.push(S);return w}return wm=d,wm}var Sm,M2;function lz(){if(M2)return Sm;M2=1;var e=Object.prototype;function t(r){var n=r&&r.constructor,o=typeof n=="function"&&n.prototype||e;return r===o}return Sm=t,Sm}var km,P2;function cz(){if(P2)return km;P2=1;function e(t,r){return function(n){return t(r(n))}}return km=e,km}var xm,j2;function uz(){if(j2)return xm;j2=1;var e=cz(),t=e(Object.keys,Object);return xm=t,xm}var Cm,F2;function dz(){if(F2)return Cm;F2=1;var e=lz(),t=uz(),r=Object.prototype,n=r.hasOwnProperty;function o(s){if(!e(s))return t(s);var l=[];for(var c in Object(s))n.call(s,c)&&c!="constructor"&&l.push(c);return l}return Cm=o,Cm}var Rm,I2;function fz(){if(I2)return Rm;I2=1;var e=hE(),t=bE();function r(n){return n!=null&&t(n.length)&&!e(n)}return Rm=r,Rm}var Am,W2;function hz(){if(W2)return Am;W2=1;var e=sz(),t=dz(),r=fz();function n(o){return r(o)?e(o):t(o)}return Am=n,Am}var Tm,z2;function pz(){if(z2)return Tm;z2=1;var e=XW(),t=ZW(),r=hz();function n(o){return e(o,r,t)}return Tm=n,Tm}var Em,H2;function mz(){if(H2)return Em;H2=1;var e=pz(),t=1,r=Object.prototype,n=r.hasOwnProperty;function o(s,l,c,d,h,m){var f=c&t,p=e(s),g=p.length,x=e(l),b=x.length;if(g!=b&&!f)return!1;for(var w=g;w--;){var y=p[w];if(!(f?y in l:n.call(l,y)))return!1}var S=m.get(s),C=m.get(l);if(S&&C)return S==l&&C==s;var k=!0;m.set(s,l),m.set(l,s);for(var A=f;++w<g;){y=p[w];var N=s[y],D=l[y];if(d)var _=f?d(D,N,y,l,s,m):d(N,D,y,s,l,m);if(!(_===void 0?N===D||h(N,D,c,d,m):_)){k=!1;break}A||(A=y=="constructor")}if(k&&!A){var F=s.constructor,M=l.constructor;F!=M&&"constructor"in s&&"constructor"in l&&!(typeof F=="function"&&F instanceof F&&typeof M=="function"&&M instanceof M)&&(k=!1)}return m.delete(s),m.delete(l),k}return Em=o,Em}var _m,q2;function gz(){if(q2)return _m;q2=1;var e=Qa(),t=zn(),r=e(t,"DataView");return _m=r,_m}var Dm,U2;function yz(){if(U2)return Dm;U2=1;var e=Qa(),t=zn(),r=e(t,"Promise");return Dm=r,Dm}var Nm,G2;function bz(){if(G2)return Nm;G2=1;var e=Qa(),t=zn(),r=e(t,"Set");return Nm=r,Nm}var Bm,V2;function vz(){if(V2)return Bm;V2=1;var e=Qa(),t=zn(),r=e(t,"WeakMap");return Bm=r,Bm}var Om,Y2;function wz(){if(Y2)return Om;Y2=1;var e=gz(),t=ub(),r=yz(),n=bz(),o=vz(),s=wd(),l=pE(),c="[object Map]",d="[object Object]",h="[object Promise]",m="[object Set]",f="[object WeakMap]",p="[object DataView]",g=l(e),x=l(t),b=l(r),w=l(n),y=l(o),S=s;
vendor: 100,184 bytes, lines 329-359
329return(e&&S(new e(new ArrayBuffer(1)))!=p||t&&S(new t)!=c||r&&S(r.resolve())!=h||n&&S(new n)!=m||o&&S(new o)!=f)&&(S=function(C){var k=s(C),A=k==d?C.constructor:void 0,N=A?l(A):"";if(N)switch(N){case g:return p;case x:return c;case b:return h;case w:return m;case y:return f}return k}),Om=S,Om}var Lm,K2;function Sz(){if(K2)return Lm;K2=1;var e=FW(),t=gE(),r=YW(),n=mz(),o=wz(),s=db(),l=yE(),c=vE(),d=1,h="[object Arguments]",m="[object Array]",f="[object Object]",p=Object.prototype,g=p.hasOwnProperty;function x(b,w,y,S,C,k){var A=s(b),N=s(w),D=A?m:o(b),_=N?m:o(w);D=D==h?f:D,_=_==h?f:_;var F=D==f,M=_==f,O=D==_;if(O&&l(b)){if(!l(w))return!1;A=!0,F=!1}if(O&&!F)return k||(k=new e),A||c(b)?t(b,w,y,S,C,k):r(b,w,D,y,S,C,k);if(!(y&d)){var j=F&&g.call(b,"__wrapped__"),I=M&&g.call(w,"__wrapped__");if(j||I){var L=j?b.value():b,H=I?w.value():w;return k||(k=new e),C(L,H,y,S,k)}}return O?(k||(k=new e),n(b,w,y,S,C,k)):!1}return Lm=x,Lm}var Mm,X2;function kz(){if(X2)return Mm;X2=1;var e=Sz(),t=xd();function r(n,o,s,l,c){return n===o?!0:n==null||o==null||!t(n)&&!t(o)?n!==n&&o!==o:e(n,o,s,l,r,c)}return Mm=r,Mm}var Pm,$2;function xz(){if($2)return Pm;$2=1;var e=kz();function t(r,n){return e(r,n)}return Pm=t,Pm}var Au={exports:{}};/*!
330 * Quill Editor v1.3.7
331 * https://quilljs.com/
332 * Copyright (c) 2014, Jason Chen
333 * Copyright (c) 2013, salesforce.com
334 */var Cz=Au.exports,Q2;function Rz(){return Q2||(Q2=1,(function(e,t){(function(n,o){e.exports=o()})(typeof self<"u"?self:Cz,function(){return(function(r){var n={};function o(s){if(n[s])return n[s].exports;var l=n[s]={i:s,l:!1,exports:{}};return r[s].call(l.exports,l,l.exports,o),l.l=!0,l.exports}return o.m=r,o.c=n,o.d=function(s,l,c){o.o(s,l)||Object.defineProperty(s,l,{configurable:!1,enumerable:!0,get:c})},o.n=function(s){var l=s&&s.__esModule?function(){return s.default}:function(){return s};return o.d(l,"a",l),l},o.o=function(s,l){return Object.prototype.hasOwnProperty.call(s,l)},o.p="",o(o.s=109)})([(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=o(17),l=o(18),c=o(19),d=o(45),h=o(46),m=o(47),f=o(48),p=o(49),g=o(12),x=o(32),b=o(33),w=o(31),y=o(1),S={Scope:y.Scope,create:y.create,find:y.find,query:y.query,register:y.register,Container:s.default,Format:l.default,Leaf:c.default,Embed:f.default,Scroll:d.default,Block:m.default,Inline:h.default,Text:p.default,Attributor:{Attribute:g.default,Class:x.default,Style:b.default,Store:w.default}};n.default=S}),(function(r,n,o){var s=this&&this.__extends||(function(){var w=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,S){y.__proto__=S}||function(y,S){for(var C in S)S.hasOwnProperty(C)&&(y[C]=S[C])};return function(y,S){w(y,S);function C(){this.constructor=y}y.prototype=S===null?Object.create(S):(C.prototype=S.prototype,new C)}})();Object.defineProperty(n,"__esModule",{value:!0});var l=(function(w){s(y,w);function y(S){var C=this;return S="[Parchment] "+S,C=w.call(this,S)||this,C.message=S,C.name=C.constructor.name,C}return y})(Error);n.ParchmentError=l;var c={},d={},h={},m={};n.DATA_KEY="__blot";var f;(function(w){w[w.TYPE=3]="TYPE",w[w.LEVEL=12]="LEVEL",w[w.ATTRIBUTE=13]="ATTRIBUTE",w[w.BLOT=14]="BLOT",w[w.INLINE=7]="INLINE",w[w.BLOCK=11]="BLOCK",w[w.BLOCK_BLOT=10]="BLOCK_BLOT",w[w.INLINE_BLOT=6]="INLINE_BLOT",w[w.BLOCK_ATTRIBUTE=9]="BLOCK_ATTRIBUTE",w[w.INLINE_ATTRIBUTE=5]="INLINE_ATTRIBUTE",w[w.ANY=15]="ANY"})(f=n.Scope||(n.Scope={}));function p(w,y){var S=x(w);if(S==null)throw new l("Unable to create "+w+" blot");var C=S,k=w instanceof Node||w.nodeType===Node.TEXT_NODE?w:C.create(y);return new C(k,y)}n.create=p;function g(w,y){return y===void 0&&(y=!1),w==null?null:w[n.DATA_KEY]!=null?w[n.DATA_KEY].blot:y?g(w.parentNode,y):null}n.find=g;function x(w,y){y===void 0&&(y=f.ANY);var S;if(typeof w=="string")S=m[w]||c[w];else if(w instanceof Text||w.nodeType===Node.TEXT_NODE)S=m.text;else if(typeof w=="number")w&f.LEVEL&f.BLOCK?S=m.block:w&f.LEVEL&f.INLINE&&(S=m.inline);else if(w instanceof HTMLElement){var C=(w.getAttribute("class")||"").split(/\s+/);for(var k in C)if(S=d[C[k]],S)break;S=S||h[w.tagName]}return S==null?null:y&f.LEVEL&S.scope&&y&f.TYPE&S.scope?S:null}n.query=x;function b(){for(var w=[],y=0;y<arguments.length;y++)w[y]=arguments[y];if(w.length>1)return w.map(function(k){return b(k)});var S=w[0];if(typeof S.blotName!="string"&&typeof S.attrName!="string")throw new l("Invalid definition");if(S.blotName==="abstract")throw new l("Cannot register abstract class");if(m[S.blotName||S.attrName]=S,typeof S.keyName=="string")c[S.keyName]=S;else if(S.className!=null&&(d[S.className]=S),S.tagName!=null){Array.isArray(S.tagName)?S.tagName=S.tagName.map(function(k){return k.toUpperCase()}):S.tagName=S.tagName.toUpperCase();var C=Array.isArray(S.tagName)?S.tagName:[S.tagName];C.forEach(function(k){(h[k]==null||S.className==null)&&(h[k]=S)})}return S}n.register=b}),(function(r,n,o){var s=o(51),l=o(11),c=o(3),d=o(20),h="\0",m=function(f){Array.isArray(f)?this.ops=f:f!=null&&Array.isArray(f.ops)?this.ops=f.ops:this.ops=[]};m.prototype.insert=function(f,p){var g={};return f.length===0?this:(g.insert=f,p!=null&&typeof p=="object"&&Object.keys(p).length>0&&(g.attributes=p),this.push(g))},m.prototype.delete=function(f){return f<=0?this:this.push({delete:f})},m.prototype.retain=function(f,p){if(f<=0)return this;var g={retain:f};return p!=null&&typeof p=="object"&&Object.keys(p).length>0&&(g.attributes=p),this.push(g)},m.prototype.push=function(f){var p=this.ops.length,g=this.ops[p-1];if(f=c(!0,{},f),typeof g=="object"){if(typeof f.delete=="number"&&typeof g.delete=="number")return this.ops[p-1]={delete:g.delete+f.delete},this;if(typeof g.delete=="number"&&f.insert!=null&&(p-=1,g=this.ops[p-1],typeof g!="object"))return this.ops.unshift(f),this;if(l(f.attributes,g.attributes)){if(typeof f.insert=="string"&&typeof g.insert=="string")return this.ops[p-1]={insert:g.insert+f.insert},typeof f.attributes=="object"&&(this.ops[p-1].attributes=f.attributes),this;if(typeof f.retain=="number"&&typeof g.retain=="number")return this.ops[p-1]={retain:g.retain+f.retain},typeof f.attributes=="object"&&(this.ops[p-1].attributes=f.attributes),this}}return p===this.ops.length?this.ops.push(f):this.ops.splice(p,0,f),this},m.prototype.chop=function(){var f=this.ops[this.ops.length-1];return f&&f.retain&&!f.attributes&&this.ops.pop(),this},m.prototype.filter=function(f){return this.ops.filter(f)},m.prototype.forEach=function(f){this.ops.forEach(f)},m.prototype.map=function(f){return this.ops.map(f)},m.prototype.partition=function(f){var p=[],g=[];return this.forEach(function(x){var b=f(x)?p:g;b.push(x)}),[p,g]},m.prototype.reduce=function(f,p){return this.ops.reduce(f,p)},m.prototype.changeLength=function(){return this.reduce(function(f,p){return p.insert?f+d.length(p):p.delete?f-p.delete:f},0)},m.prototype.length=function(){return this.reduce(function(f,p){return f+d.length(p)},0)},m.prototype.slice=function(f,p){f=f||0,typeof p!="number"&&(p=1/0);for(var g=[],x=d.iterator(this.ops),b=0;b<p&&x.hasNext();){var w;b<f?w=x.next(f-b):(w=x.next(p-b),g.push(w)),b+=d.length(w)}return new m(g)},m.prototype.compose=function(f){var p=d.iterator(this.ops),g=d.iterator(f.ops),x=[],b=g.peek();if(b!=null&&typeof b.retain=="number"&&b.attributes==null){for(var w=b.retain;p.peekType()==="insert"&&p.peekLength()<=w;)w-=p.peekLength(),x.push(p.next());b.retain-w>0&&g.next(b.retain-w)}for(var y=new m(x);p.hasNext()||g.hasNext();)if(g.peekType()==="insert")y.push(g.next());else if(p.peekType()==="delete")y.push(p.next());else{var S=Math.min(p.peekLength(),g.peekLength()),C=p.next(S),k=g.next(S);if(typeof k.retain=="number"){var A={};typeof C.retain=="number"?A.retain=S:A.insert=C.insert;var N=d.attributes.compose(C.attributes,k.attributes,typeof C.retain=="number");if(N&&(A.attributes=N),y.push(A),!g.hasNext()&&l(y.ops[y.ops.length-1],A)){var D=new m(p.rest());return y.concat(D).chop()}}else typeof k.delete=="number"&&typeof C.retain=="number"&&y.push(k)}return y.chop()},m.prototype.concat=function(f){var p=new m(this.ops.slice());return f.ops.length>0&&(p.push(f.ops[0]),p.ops=p.ops.concat(f.ops.slice(1))),p},m.prototype.diff=function(f,p){if(this.ops===f.ops)return new m;var g=[this,f].map(function(S){return S.map(function(C){if(C.insert!=null)return typeof C.insert=="string"?C.insert:h;var k=S===f?"on":"with";throw new Error("diff() called "+k+" non-document")}).join("")}),x=new m,b=s(g[0],g[1],p),w=d.iterator(this.ops),y=d.iterator(f.ops);return b.forEach(function(S){for(var C=S[1].length;C>0;){var k=0;switch(S[0]){case s.INSERT:k=Math.min(y.peekLength(),C),x.push(y.next(k));break;case s.DELETE:k=Math.min(C,w.peekLength()),w.next(k),x.delete(k);break;case s.EQUAL:k=Math.min(w.peekLength(),y.peekLength(),C);var A=w.next(k),N=y.next(k);l(A.insert,N.insert)?x.retain(k,d.attributes.diff(A.attributes,N.attributes)):x.push(N).delete(k);break}C-=k}}),x.chop()},m.prototype.eachLine=function(f,p){p=p||`
335`;for(var g=d.iterator(this.ops),x=new m,b=0;g.hasNext();){if(g.peekType()!=="insert")return;var w=g.peek(),y=d.length(w)-g.peekLength(),S=typeof w.insert=="string"?w.insert.indexOf(p,y)-y:-1;if(S<0)x.push(g.next());else if(S>0)x.push(g.next(S));else{if(f(x,g.next(1).attributes||{},b)===!1)return;b+=1,x=new m}}x.length()>0&&f(x,{},b)},m.prototype.transform=function(f,p){if(p=!!p,typeof f=="number")return this.transformPosition(f,p);for(var g=d.iterator(this.ops),x=d.iterator(f.ops),b=new m;g.hasNext()||x.hasNext();)if(g.peekType()==="insert"&&(p||x.peekType()!=="insert"))b.retain(d.length(g.next()));else if(x.peekType()==="insert")b.push(x.next());else{var w=Math.min(g.peekLength(),x.peekLength()),y=g.next(w),S=x.next(w);if(y.delete)continue;S.delete?b.push(S):b.retain(w,d.attributes.transform(y.attributes,S.attributes,p))}return b.chop()},m.prototype.transformPosition=function(f,p){p=!!p;for(var g=d.iterator(this.ops),x=0;g.hasNext()&&x<=f;){var b=g.peekLength(),w=g.peekType();if(g.next(),w==="delete"){f-=Math.min(b,f-x);continue}else w==="insert"&&(x<f||!p)&&(f+=b);x+=b}return f},r.exports=m}),(function(r,n){var o=Object.prototype.hasOwnProperty,s=Object.prototype.toString,l=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d=function(g){return typeof Array.isArray=="function"?Array.isArray(g):s.call(g)==="[object Array]"},h=function(g){if(!g||s.call(g)!=="[object Object]")return!1;var x=o.call(g,"constructor"),b=g.constructor&&g.constructor.prototype&&o.call(g.constructor.prototype,"isPrototypeOf");if(g.constructor&&!x&&!b)return!1;var w;for(w in g);return typeof w>"u"||o.call(g,w)},m=function(g,x){l&&x.name==="__proto__"?l(g,x.name,{enumerable:!0,configurable:!0,value:x.newValue,writable:!0}):g[x.name]=x.newValue},f=function(g,x){if(x==="__proto__")if(o.call(g,x)){if(c)return c(g,x).value}else return;return g[x]};r.exports=function p(){var g,x,b,w,y,S,C=arguments[0],k=1,A=arguments.length,N=!1;for(typeof C=="boolean"&&(N=C,C=arguments[1]||{},k=2),(C==null||typeof C!="object"&&typeof C!="function")&&(C={});k<A;++k)if(g=arguments[k],g!=null)for(x in g)b=f(C,x),w=f(g,x),C!==w&&(N&&w&&(h(w)||(y=d(w)))?(y?(y=!1,S=b&&d(b)?b:[]):S=b&&h(b)?b:{},m(C,{name:x,newValue:p(N,S,w)})):typeof w<"u"&&m(C,{name:x,newValue:w}));return C}}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.BlockEmbed=n.bubbleFormats=void 0;var s=(function(){function O(j,I){for(var L=0;L<I.length;L++){var H=I[L];H.enumerable=H.enumerable||!1,H.configurable=!0,"value"in H&&(H.writable=!0),Object.defineProperty(j,H.key,H)}}return function(j,I,L){return I&&O(j.prototype,I),L&&O(j,L),j}})(),l=function O(j,I,L){j===null&&(j=Function.prototype);var H=Object.getOwnPropertyDescriptor(j,I);if(H===void 0){var G=Object.getPrototypeOf(j);return G===null?void 0:O(G,I,L)}else{if("value"in H)return H.value;var X=H.get;return X===void 0?void 0:X.call(L)}},c=o(3),d=C(c),h=o(2),m=C(h),f=o(0),p=C(f),g=o(16),x=C(g),b=o(6),w=C(b),y=o(7),S=C(y);function C(O){return O&&O.__esModule?O:{default:O}}function k(O,j){if(!(O instanceof j))throw new TypeError("Cannot call a class as a function")}function A(O,j){if(!O)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j&&(typeof j=="object"||typeof j=="function")?j:O}function N(O,j){if(typeof j!="function"&&j!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof j);O.prototype=Object.create(j&&j.prototype,{constructor:{value:O,enumerable:!1,writable:!0,configurable:!0}}),j&&(Object.setPrototypeOf?Object.setPrototypeOf(O,j):O.__proto__=j)}var D=1,_=(function(O){N(j,O);function j(){return k(this,j),A(this,(j.__proto__||Object.getPrototypeOf(j)).apply(this,arguments))}return s(j,[{key:"attach",value:function(){l(j.prototype.__proto__||Object.getPrototypeOf(j.prototype),"attach",this).call(this),this.attributes=new p.default.Attributor.Store(this.domNode)}},{key:"delta",value:function(){return new m.default().insert(this.value(),(0,d.default)(this.formats(),this.attributes.values()))}},{key:"format",value:function(L,H){var G=p.default.query(L,p.default.Scope.BLOCK_ATTRIBUTE);G!=null&&this.attributes.attribute(G,H)}},{key:"formatAt",value:function(L,H,G,X){this.format(G,X)}},{key:"insertAt",value:function(L,H,G){if(typeof H=="string"&&H.endsWith(`
336`)){var X=p.default.create(F.blotName);this.parent.insertBefore(X,L===0?this:this.next),X.insertAt(0,H.slice(0,-1))}else l(j.prototype.__proto__||Object.getPrototypeOf(j.prototype),"insertAt",this).call(this,L,H,G)}}]),j})(p.default.Embed);_.scope=p.default.Scope.BLOCK_BLOT;var F=(function(O){N(j,O);function j(I){k(this,j);var L=A(this,(j.__proto__||Object.getPrototypeOf(j)).call(this,I));return L.cache={},L}return s(j,[{key:"delta",value:function(){return this.cache.delta==null&&(this.cache.delta=this.descendants(p.default.Leaf).reduce(function(L,H){return H.length()===0?L:L.insert(H.value(),M(H))},new m.default).insert(`
337`,M(this))),this.cache.delta}},{key:"deleteAt",value:function(L,H){l(j.prototype.__proto__||Object.getPrototypeOf(j.prototype),"deleteAt",this).call(this,L,H),this.cache={}}},{key:"formatAt",value:function(L,H,G,X){H<=0||(p.default.query(G,p.default.Scope.BLOCK)?L+H===this.length()&&this.format(G,X):l(j.prototype.__proto__||Object.getPrototypeOf(j.prototype),"formatAt",this).call(this,L,Math.min(H,this.length()-L-1),G,X),this.cache={})}},{key:"insertAt",value:function(L,H,G){if(G!=null)return l(j.prototype.__proto__||Object.getPrototypeOf(j.prototype),"insertAt",this).call(this,L,H,G);if(H.length!==0){var X=H.split(`
338`),Q=X.shift();Q.length>0&&(L<this.length()-1||this.children.tail==null?l(j.prototype.__proto__||Object.getPrototypeOf(j.prototype),"insertAt",this).call(this,Math.min(L,this.length()-1),Q):this.children.tail.insertAt(this.children.tail.length(),Q),this.cache={});var K=this;X.reduce(function(q,B){return K=K.split(q,!0),K.insertAt(0,B),B.length},L+Q.length)}}},{key:"insertBefore",value:function(L,H){var G=this.children.head;l(j.prototype.__proto__||Object.getPrototypeOf(j.prototype),"insertBefore",this).call(this,L,H),G instanceof x.default&&G.remove(),this.cache={}}},{key:"length",value:function(){return this.cache.length==null&&(this.cache.length=l(j.prototype.__proto__||Object.getPrototypeOf(j.prototype),"length",this).call(this)+D),this.cache.length}},{key:"moveChildren",value:function(L,H){l(j.prototype.__proto__||Object.getPrototypeOf(j.prototype),"moveChildren",this).call(this,L,H),this.cache={}}},{key:"optimize",value:function(L){l(j.prototype.__proto__||Object.getPrototypeOf(j.prototype),"optimize",this).call(this,L),this.cache={}}},{key:"path",value:function(L){return l(j.prototype.__proto__||Object.getPrototypeOf(j.prototype),"path",this).call(this,L,!0)}},{key:"removeChild",value:function(L){l(j.prototype.__proto__||Object.getPrototypeOf(j.prototype),"removeChild",this).call(this,L),this.cache={}}},{key:"split",value:function(L){var H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(H&&(L===0||L>=this.length()-D)){var G=this.clone();return L===0?(this.parent.insertBefore(G,this),this):(this.parent.insertBefore(G,this.next),G)}else{var X=l(j.prototype.__proto__||Object.getPrototypeOf(j.prototype),"split",this).call(this,L,H);return this.cache={},X}}}]),j})(p.default.Block);F.blotName="block",F.tagName="P",F.defaultChild="break",F.allowedChildren=[w.default,p.default.Embed,S.default];function M(O){var j=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return O==null||(typeof O.formats=="function"&&(j=(0,d.default)(j,O.formats())),O.parent==null||O.parent.blotName=="scroll"||O.parent.statics.scope!==O.statics.scope)?j:M(O.parent,j)}n.bubbleFormats=M,n.BlockEmbed=_,n.default=F}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.overload=n.expandConfig=void 0;var s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(K){return typeof K}:function(K){return K&&typeof Symbol=="function"&&K.constructor===Symbol&&K!==Symbol.prototype?"symbol":typeof K},l=(function(){function K(q,B){var W=[],Y=!0,ee=!1,Z=void 0;try{for(var U=q[Symbol.iterator](),V;!(Y=(V=U.next()).done)&&(W.push(V.value),!(B&&W.length===B));Y=!0);}catch(te){ee=!0,Z=te}finally{try{!Y&&U.return&&U.return()}finally{if(ee)throw Z}}return W}return function(q,B){if(Array.isArray(q))return q;if(Symbol.iterator in Object(q))return K(q,B);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),c=(function(){function K(q,B){for(var W=0;W<B.length;W++){var Y=B[W];Y.enumerable=Y.enumerable||!1,Y.configurable=!0,"value"in Y&&(Y.writable=!0),Object.defineProperty(q,Y.key,Y)}}return function(q,B,W){return B&&K(q.prototype,B),W&&K(q,W),q}})();o(50);var d=o(2),h=M(d),m=o(14),f=M(m),p=o(8),g=M(p),x=o(9),b=M(x),w=o(0),y=M(w),S=o(15),C=M(S),k=o(3),A=M(k),N=o(10),D=M(N),_=o(34),F=M(_);function M(K){return K&&K.__esModule?K:{default:K}}function O(K,q,B){return q in K?Object.defineProperty(K,q,{value:B,enumerable:!0,configurable:!0,writable:!0}):K[q]=B,K}function j(K,q){if(!(K instanceof q))throw new TypeError("Cannot call a class as a function")}var I=(0,D.default)("quill"),L=(function(){c(K,null,[{key:"debug",value:function(B){B===!0&&(B="log"),D.default.level(B)}},{key:"find",value:function(B){return B.__quill||y.default.find(B)}},{key:"import",value:function(B){return this.imports[B]==null&&I.error("Cannot import "+B+". Are you sure it was registered?"),this.imports[B]}},{key:"register",value:function(B,W){var Y=this,ee=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(typeof B!="string"){var Z=B.attrName||B.blotName;typeof Z=="string"?this.register("formats/"+Z,B,W):Object.keys(B).forEach(function(U){Y.register(U,B[U],W)})}else this.imports[B]!=null&&!ee&&I.warn("Overwriting "+B+" with",W),this.imports[B]=W,(B.startsWith("blots/")||B.startsWith("formats/"))&&W.blotName!=="abstract"?y.default.register(W):B.startsWith("modules")&&typeof W.register=="function"&&W.register()}}]);function K(q){var B=this,W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(j(this,K),this.options=H(q,W),this.container=this.options.container,this.container==null)return I.error("Invalid Quill container",q);this.options.debug&&K.debug(this.options.debug);var Y=this.container.innerHTML.trim();this.container.classList.add("ql-container"),this.container.innerHTML="",this.container.__quill=this,this.root=this.addContainer("ql-editor"),this.root.classList.add("ql-blank"),this.root.setAttribute("data-gramm",!1),this.scrollingContainer=this.options.scrollingContainer||this.root,this.emitter=new g.default,this.scroll=y.default.create(this.root,{emitter:this.emitter,whitelist:this.options.formats}),this.editor=new f.default(this.scroll),this.selection=new C.default(this.scroll,this.emitter),this.theme=new this.options.theme(this,this.options),this.keyboard=this.theme.addModule("keyboard"),this.clipboard=this.theme.addModule("clipboard"),this.history=this.theme.addModule("history"),this.theme.init(),this.emitter.on(g.default.events.EDITOR_CHANGE,function(Z){Z===g.default.events.TEXT_CHANGE&&B.root.classList.toggle("ql-blank",B.editor.isBlank())}),this.emitter.on(g.default.events.SCROLL_UPDATE,function(Z,U){var V=B.selection.lastRange,te=V&&V.length===0?V.index:void 0;G.call(B,function(){return B.editor.update(null,U,te)},Z)});var ee=this.clipboard.convert(`<div class='ql-editor' style="white-space: normal;">`+Y+"<p><br></p></div>");this.setContents(ee),this.history.clear(),this.options.placeholder&&this.root.setAttribute("data-placeholder",this.options.placeholder),this.options.readOnly&&this.disable()}return c(K,[{key:"addContainer",value:function(B){var W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(typeof B=="string"){var Y=B;B=document.createElement("div"),B.classList.add(Y)}return this.container.insertBefore(B,W),B}},{key:"blur",value:function(){this.selection.setRange(null)}},{key:"deleteText",value:function(B,W,Y){var ee=this,Z=X(B,W,Y),U=l(Z,4);return B=U[0],W=U[1],Y=U[3],G.call(this,function(){return ee.editor.deleteText(B,W)},Y,B,-1*W)}},{key:"disable",value:function(){this.enable(!1)}},{key:"enable",value:function(){var B=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.scroll.enable(B),this.container.classList.toggle("ql-disabled",!B)}},{key:"focus",value:function(){var B=this.scrollingContainer.scrollTop;this.selection.focus(),this.scrollingContainer.scrollTop=B,this.scrollIntoView()}},{key:"format",value:function(B,W){var Y=this,ee=arguments.length>2&&arguments[2]!==void 0?arguments[2]:g.default.sources.API;return G.call(this,function(){var Z=Y.getSelection(!0),U=new h.default;if(Z==null)return U;if(y.default.query(B,y.default.Scope.BLOCK))U=Y.editor.formatLine(Z.index,Z.length,O({},B,W));else{if(Z.length===0)return Y.selection.format(B,W),U;U=Y.editor.formatText(Z.index,Z.length,O({},B,W))}return Y.setSelection(Z,g.default.sources.SILENT),U},ee)}},{key:"formatLine",value:function(B,W,Y,ee,Z){var U=this,V=void 0,te=X(B,W,Y,ee,Z),ne=l(te,4);return B=ne[0],W=ne[1],V=ne[2],Z=ne[3],G.call(this,function(){return U.editor.formatLine(B,W,V)},Z,B,0)}},{key:"formatText",value:function(B,W,Y,ee,Z){var U=this,V=void 0,te=X(B,W,Y,ee,Z),ne=l(te,4);return B=ne[0],W=ne[1],V=ne[2],Z=ne[3],G.call(this,function(){return U.editor.formatText(B,W,V)},Z,B,0)}},{key:"getBounds",value:function(B){var W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,Y=void 0;typeof B=="number"?Y=this.selection.getBounds(B,W):Y=this.selection.getBounds(B.index,B.length);var ee=this.container.getBoundingClientRect();return{bottom:Y.bottom-ee.top,height:Y.height,left:Y.left-ee.left,right:Y.right-ee.left,top:Y.top-ee.top,width:Y.width}}},{key:"getContents",value:function(){var B=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.getLength()-B,Y=X(B,W),ee=l(Y,2);return B=ee[0],W=ee[1],this.editor.getContents(B,W)}},{key:"getFormat",value:function(){var B=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.getSelection(!0),W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return typeof B=="number"?this.editor.getFormat(B,W):this.editor.getFormat(B.index,B.length)}},{key:"getIndex",value:function(B){return B.offset(this.scroll)}},{key:"getLength",value:function(){return this.scroll.length()}},{key:"getLeaf",value:function(B){return this.scroll.leaf(B)}},{key:"getLine",value:function(B){return this.scroll.line(B)}},{key:"getLines",value:function(){var B=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Number.MAX_VALUE;return typeof B!="number"?this.scroll.lines(B.index,B.length):this.scroll.lines(B,W)}},{key:"getModule",value:function(B){return this.theme.modules[B]}},{key:"getSelection",value:function(){var B=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;return B&&this.focus(),this.update(),this.selection.getRange()[0]}},{key:"getText",value:function(){var B=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.getLength()-B,Y=X(B,W),ee=l(Y,2);return B=ee[0],W=ee[1],this.editor.getText(B,W)}},{key:"hasFocus",value:function(){return this.selection.hasFocus()}},{key:"insertEmbed",value:function(B,W,Y){var ee=this,Z=arguments.length>3&&arguments[3]!==void 0?arguments[3]:K.sources.API;return G.call(this,function(){return ee.editor.insertEmbed(B,W,Y)},Z,B)}},{key:"insertText",value:function(B,W,Y,ee,Z){var U=this,V=void 0,te=X(B,0,Y,ee,Z),ne=l(te,4);return B=ne[0],V=ne[2],Z=ne[3],G.call(this,function(){return U.editor.insertText(B,W,V)},Z,B,W.length)}},{key:"isEnabled",value:function(){return!this.container.classList.contains("ql-disabled")}},{key:"off",value:function(){return this.emitter.off.apply(this.emitter,arguments)}},{key:"on",value:function(){return this.emitter.on.apply(this.emitter,arguments)}},{key:"once",value:function(){return this.emitter.once.apply(this.emitter,arguments)}},{key:"pasteHTML",value:function(B,W,Y){this.clipboard.dangerouslyPasteHTML(B,W,Y)}},{key:"removeFormat",value:function(B,W,Y){var ee=this,Z=X(B,W,Y),U=l(Z,4);return B=U[0],W=U[1],Y=U[3],G.call(this,function(){return ee.editor.removeFormat(B,W)},Y,B)}},{key:"scrollIntoView",value:function(){this.selection.scrollIntoView(this.scrollingContainer)}},{key:"setContents",value:function(B){var W=this,Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:g.default.sources.API;return G.call(this,function(){B=new h.default(B);var ee=W.getLength(),Z=W.editor.deleteText(0,ee),U=W.editor.applyDelta(B),V=U.ops[U.ops.length-1];V!=null&&typeof V.insert=="string"&&V.insert[V.insert.length-1]===`
339`&&(W.editor.deleteText(W.getLength()-1,1),U.delete(1));var te=Z.compose(U);return te},Y)}},{key:"setSelection",value:function(B,W,Y){if(B==null)this.selection.setRange(null,W||K.sources.API);else{var ee=X(B,W,Y),Z=l(ee,4);B=Z[0],W=Z[1],Y=Z[3],this.selection.setRange(new S.Range(B,W),Y),Y!==g.default.sources.SILENT&&this.selection.scrollIntoView(this.scrollingContainer)}}},{key:"setText",value:function(B){var W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:g.default.sources.API,Y=new h.default().insert(B);return this.setContents(Y,W)}},{key:"update",value:function(){var B=arguments.length>0&&arguments[0]!==void 0?arguments[0]:g.default.sources.USER,W=this.scroll.update(B);return this.selection.update(B),W}},{key:"updateContents",value:function(B){var W=this,Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:g.default.sources.API;return G.call(this,function(){return B=new h.default(B),W.editor.applyDelta(B,Y)},Y,!0)}}]),K})();L.DEFAULTS={bounds:null,formats:null,modules:{},placeholder:"",readOnly:!1,scrollingContainer:null,strict:!0,theme:"default"},L.events=g.default.events,L.sources=g.default.sources,L.version="1.3.7",L.imports={delta:h.default,parchment:y.default,"core/module":b.default,"core/theme":F.default};function H(K,q){if(q=(0,A.default)(!0,{container:K,modules:{clipboard:!0,keyboard:!0,history:!0}},q),!q.theme||q.theme===L.DEFAULTS.theme)q.theme=F.default;else if(q.theme=L.import("themes/"+q.theme),q.theme==null)throw new Error("Invalid theme "+q.theme+". Did you register it?");var B=(0,A.default)(!0,{},q.theme.DEFAULTS);[B,q].forEach(function(ee){ee.modules=ee.modules||{},Object.keys(ee.modules).forEach(function(Z){ee.modules[Z]===!0&&(ee.modules[Z]={})})});var W=Object.keys(B.modules).concat(Object.keys(q.modules)),Y=W.reduce(function(ee,Z){var U=L.import("modules/"+Z);return U==null?I.error("Cannot load "+Z+" module. Are you sure you registered it?"):ee[Z]=U.DEFAULTS||{},ee},{});return q.modules!=null&&q.modules.toolbar&&q.modules.toolbar.constructor!==Object&&(q.modules.toolbar={container:q.modules.toolbar}),q=(0,A.default)(!0,{},L.DEFAULTS,{modules:Y},B,q),["bounds","container","scrollingContainer"].forEach(function(ee){typeof q[ee]=="string"&&(q[ee]=document.querySelector(q[ee]))}),q.modules=Object.keys(q.modules).reduce(function(ee,Z){return q.modules[Z]&&(ee[Z]=q.modules[Z]),ee},{}),q}function G(K,q,B,W){if(this.options.strict&&!this.isEnabled()&&q===g.default.sources.USER)return new h.default;var Y=B==null?null:this.getSelection(),ee=this.editor.delta,Z=K();if(Y!=null&&(B===!0&&(B=Y.index),W==null?Y=Q(Y,Z,q):W!==0&&(Y=Q(Y,B,W,q)),this.setSelection(Y,g.default.sources.SILENT)),Z.length()>0){var U,V=[g.default.events.TEXT_CHANGE,Z,ee,q];if((U=this.emitter).emit.apply(U,[g.default.events.EDITOR_CHANGE].concat(V)),q!==g.default.sources.SILENT){var te;(te=this.emitter).emit.apply(te,V)}}return Z}function X(K,q,B,W,Y){var ee={};return typeof K.index=="number"&&typeof K.length=="number"?typeof q!="number"?(Y=W,W=B,B=q,q=K.length,K=K.index):(q=K.length,K=K.index):typeof q!="number"&&(Y=W,W=B,B=q,q=0),(typeof B>"u"?"undefined":s(B))==="object"?(ee=B,Y=W):typeof B=="string"&&(W!=null?ee[B]=W:Y=B),Y=Y||g.default.sources.API,[K,q,ee,Y]}function Q(K,q,B,W){if(K==null)return null;var Y=void 0,ee=void 0;if(q instanceof h.default){var Z=[K.index,K.index+K.length].map(function(ne){return q.transformPosition(ne,W!==g.default.sources.USER)}),U=l(Z,2);Y=U[0],ee=U[1]}else{var V=[K.index,K.index+K.length].map(function(ne){return ne<q||ne===q&&W===g.default.sources.USER?ne:B>=0?ne+B:Math.max(q,ne+B)}),te=l(V,2);Y=te[0],ee=te[1]}return new S.Range(Y,ee-Y)}n.expandConfig=H,n.overload=X,n.default=L}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function w(y,S){for(var C=0;C<S.length;C++){var k=S[C];k.enumerable=k.enumerable||!1,k.configurable=!0,"value"in k&&(k.writable=!0),Object.defineProperty(y,k.key,k)}}return function(y,S,C){return S&&w(y.prototype,S),C&&w(y,C),y}})(),l=function w(y,S,C){y===null&&(y=Function.prototype);var k=Object.getOwnPropertyDescriptor(y,S);if(k===void 0){var A=Object.getPrototypeOf(y);return A===null?void 0:w(A,S,C)}else{if("value"in k)return k.value;var N=k.get;return N===void 0?void 0:N.call(C)}},c=o(7),d=f(c),h=o(0),m=f(h);function f(w){return w&&w.__esModule?w:{default:w}}function p(w,y){if(!(w instanceof y))throw new TypeError("Cannot call a class as a function")}function g(w,y){if(!w)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return y&&(typeof y=="object"||typeof y=="function")?y:w}function x(w,y){if(typeof y!="function"&&y!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof y);w.prototype=Object.create(y&&y.prototype,{constructor:{value:w,enumerable:!1,writable:!0,configurable:!0}}),y&&(Object.setPrototypeOf?Object.setPrototypeOf(w,y):w.__proto__=y)}var b=(function(w){x(y,w);function y(){return p(this,y),g(this,(y.__proto__||Object.getPrototypeOf(y)).apply(this,arguments))}return s(y,[{key:"formatAt",value:function(C,k,A,N){if(y.compare(this.statics.blotName,A)<0&&m.default.query(A,m.default.Scope.BLOT)){var D=this.isolate(C,k);N&&D.wrap(A,N)}else l(y.prototype.__proto__||Object.getPrototypeOf(y.prototype),"formatAt",this).call(this,C,k,A,N)}},{key:"optimize",value:function(C){if(l(y.prototype.__proto__||Object.getPrototypeOf(y.prototype),"optimize",this).call(this,C),this.parent instanceof y&&y.compare(this.statics.blotName,this.parent.statics.blotName)>0){var k=this.parent.isolate(this.offset(),this.length());this.moveChildren(k),k.wrap(this)}}}],[{key:"compare",value:function(C,k){var A=y.order.indexOf(C),N=y.order.indexOf(k);return A>=0||N>=0?A-N:C===k?0:C<k?-1:1}}]),y})(m.default.Inline);b.allowedChildren=[b,m.default.Embed,d.default],b.order=["cursor","inline","underline","strike","italic","bold","script","link","code"],n.default=b}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=o(0),l=c(s);function c(p){return p&&p.__esModule?p:{default:p}}function d(p,g){if(!(p instanceof g))throw new TypeError("Cannot call a class as a function")}function h(p,g){if(!p)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return g&&(typeof g=="object"||typeof g=="function")?g:p}function m(p,g){if(typeof g!="function"&&g!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof g);p.prototype=Object.create(g&&g.prototype,{constructor:{value:p,enumerable:!1,writable:!0,configurable:!0}}),g&&(Object.setPrototypeOf?Object.setPrototypeOf(p,g):p.__proto__=g)}var f=(function(p){m(g,p);function g(){return d(this,g),h(this,(g.__proto__||Object.getPrototypeOf(g)).apply(this,arguments))}return g})(l.default.Text);n.default=f}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function S(C,k){for(var A=0;A<k.length;A++){var N=k[A];N.enumerable=N.enumerable||!1,N.configurable=!0,"value"in N&&(N.writable=!0),Object.defineProperty(C,N.key,N)}}return function(C,k,A){return k&&S(C.prototype,k),A&&S(C,A),C}})(),l=function S(C,k,A){C===null&&(C=Function.prototype);var N=Object.getOwnPropertyDescriptor(C,k);if(N===void 0){var D=Object.getPrototypeOf(C);return D===null?void 0:S(D,k,A)}else{if("value"in N)return N.value;var _=N.get;return _===void 0?void 0:_.call(A)}},c=o(54),d=f(c),h=o(10),m=f(h);function f(S){return S&&S.__esModule?S:{default:S}}function p(S,C){if(!(S instanceof C))throw new TypeError("Cannot call a class as a function")}function g(S,C){if(!S)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return C&&(typeof C=="object"||typeof C=="function")?C:S}function x(S,C){if(typeof C!="function"&&C!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof C);S.prototype=Object.create(C&&C.prototype,{constructor:{value:S,enumerable:!1,writable:!0,configurable:!0}}),C&&(Object.setPrototypeOf?Object.setPrototypeOf(S,C):S.__proto__=C)}var b=(0,m.default)("quill:events"),w=["selectionchange","mousedown","mouseup","click"];w.forEach(function(S){document.addEventListener(S,function(){for(var C=arguments.length,k=Array(C),A=0;A<C;A++)k[A]=arguments[A];[].slice.call(document.querySelectorAll(".ql-container")).forEach(function(N){if(N.__quill&&N.__quill.emitter){var D;(D=N.__quill.emitter).handleDOM.apply(D,k)}})})});var y=(function(S){x(C,S);function C(){p(this,C);var k=g(this,(C.__proto__||Object.getPrototypeOf(C)).call(this));return k.listeners={},k.on("error",b.error),k}return s(C,[{key:"emit",value:function(){b.log.apply(b,arguments),l(C.prototype.__proto__||Object.getPrototypeOf(C.prototype),"emit",this).apply(this,arguments)}},{key:"handleDOM",value:function(A){for(var N=arguments.length,D=Array(N>1?N-1:0),_=1;_<N;_++)D[_-1]=arguments[_];(this.listeners[A.type]||[]).forEach(function(F){var M=F.node,O=F.handler;(A.target===M||M.contains(A.target))&&O.apply(void 0,[A].concat(D))})}},{key:"listenDOM",value:function(A,N,D){this.listeners[A]||(this.listeners[A]=[]),this.listeners[A].push({node:N,handler:D})}}]),C})(d.default);y.events={EDITOR_CHANGE:"editor-change",SCROLL_BEFORE_UPDATE:"scroll-before-update",SCROLL_OPTIMIZE:"scroll-optimize",SCROLL_UPDATE:"scroll-update",SELECTION_CHANGE:"selection-change",TEXT_CHANGE:"text-change"},y.sources={API:"api",SILENT:"silent",USER:"user"},n.default=y}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});function s(c,d){if(!(c instanceof d))throw new TypeError("Cannot call a class as a function")}var l=function c(d){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};s(this,c),this.quill=d,this.options=h};l.DEFAULTS={},n.default=l}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=["error","warn","log","info"],l="warn";function c(h){if(s.indexOf(h)<=s.indexOf(l)){for(var m,f=arguments.length,p=Array(f>1?f-1:0),g=1;g<f;g++)p[g-1]=arguments[g];(m=console)[h].apply(m,p)}}function d(h){return s.reduce(function(m,f){return m[f]=c.bind(console,f,h),m},{})}c.level=d.level=function(h){l=h},n.default=d}),(function(r,n,o){var s=Array.prototype.slice,l=o(52),c=o(53),d=r.exports=function(p,g,x){return x||(x={}),p===g?!0:p instanceof Date&&g instanceof Date?p.getTime()===g.getTime():!p||!g||typeof p!="object"&&typeof g!="object"?x.strict?p===g:p==g:f(p,g,x)};function h(p){return p==null}function m(p){return!(!p||typeof p!="object"||typeof p.length!="number"||typeof p.copy!="function"||typeof p.slice!="function"||p.length>0&&typeof p[0]!="number")}function f(p,g,x){var b,w;if(h(p)||h(g)||p.prototype!==g.prototype)return!1;if(c(p))return c(g)?(p=s.call(p),g=s.call(g),d(p,g,x)):!1;if(m(p)){if(!m(g)||p.length!==g.length)return!1;for(b=0;b<p.length;b++)if(p[b]!==g[b])return!1;return!0}try{var y=l(p),S=l(g)}catch{return!1}if(y.length!=S.length)return!1;for(y.sort(),S.sort(),b=y.length-1;b>=0;b--)if(y[b]!=S[b])return!1;for(b=y.length-1;b>=0;b--)if(w=y[b],!d(p[w],g[w],x))return!1;return typeof p==typeof g}}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=o(1),l=(function(){function c(d,h,m){m===void 0&&(m={}),this.attrName=d,this.keyName=h;var f=s.Scope.TYPE&s.Scope.ATTRIBUTE;m.scope!=null?this.scope=m.scope&s.Scope.LEVEL|f:this.scope=s.Scope.ATTRIBUTE,m.whitelist!=null&&(this.whitelist=m.whitelist)}return c.keys=function(d){return[].map.call(d.attributes,function(h){return h.name})},c.prototype.add=function(d,h){return this.canAdd(d,h)?(d.setAttribute(this.keyName,h),!0):!1},c.prototype.canAdd=function(d,h){var m=s.query(d,s.Scope.BLOT&(this.scope|s.Scope.TYPE));return m==null?!1:this.whitelist==null?!0:typeof h=="string"?this.whitelist.indexOf(h.replace(/["']/g,""))>-1:this.whitelist.indexOf(h)>-1},c.prototype.remove=function(d){d.removeAttribute(this.keyName)},c.prototype.value=function(d){var h=d.getAttribute(this.keyName);return this.canAdd(d,h)&&h?h:""},c})();n.default=l}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.Code=void 0;var s=(function(){function _(F,M){var O=[],j=!0,I=!1,L=void 0;try{for(var H=F[Symbol.iterator](),G;!(j=(G=H.next()).done)&&(O.push(G.value),!(M&&O.length===M));j=!0);}catch(X){I=!0,L=X}finally{try{!j&&H.return&&H.return()}finally{if(I)throw L}}return O}return function(F,M){if(Array.isArray(F))return F;if(Symbol.iterator in Object(F))return _(F,M);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),l=(function(){function _(F,M){for(var O=0;O<M.length;O++){var j=M[O];j.enumerable=j.enumerable||!1,j.configurable=!0,"value"in j&&(j.writable=!0),Object.defineProperty(F,j.key,j)}}return function(F,M,O){return M&&_(F.prototype,M),O&&_(F,O),F}})(),c=function _(F,M,O){F===null&&(F=Function.prototype);var j=Object.getOwnPropertyDescriptor(F,M);if(j===void 0){var I=Object.getPrototypeOf(F);return I===null?void 0:_(I,M,O)}else{if("value"in j)return j.value;var L=j.get;return L===void 0?void 0:L.call(O)}},d=o(2),h=S(d),m=o(0),f=S(m),p=o(4),g=S(p),x=o(6),b=S(x),w=o(7),y=S(w);function S(_){return _&&_.__esModule?_:{default:_}}function C(_,F){if(!(_ instanceof F))throw new TypeError("Cannot call a class as a function")}function k(_,F){if(!_)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return F&&(typeof F=="object"||typeof F=="function")?F:_}function A(_,F){if(typeof F!="function"&&F!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof F);_.prototype=Object.create(F&&F.prototype,{constructor:{value:_,enumerable:!1,writable:!0,configurable:!0}}),F&&(Object.setPrototypeOf?Object.setPrototypeOf(_,F):_.__proto__=F)}var N=(function(_){A(F,_);function F(){return C(this,F),k(this,(F.__proto__||Object.getPrototypeOf(F)).apply(this,arguments))}return F})(b.default);N.blotName="code",N.tagName="CODE";var D=(function(_){A(F,_);function F(){return C(this,F),k(this,(F.__proto__||Object.getPrototypeOf(F)).apply(this,arguments))}return l(F,[{key:"delta",value:function(){var O=this,j=this.domNode.textContent;return j.endsWith(`
340`)&&(j=j.slice(0,-1)),j.split(`
341`).reduce(function(I,L){return I.insert(L).insert(`
342`,O.formats())},new h.default)}},{key:"format",value:function(O,j){if(!(O===this.statics.blotName&&j)){var I=this.descendant(y.default,this.length()-1),L=s(I,1),H=L[0];H!=null&&H.deleteAt(H.length()-1,1),c(F.prototype.__proto__||Object.getPrototypeOf(F.prototype),"format",this).call(this,O,j)}}},{key:"formatAt",value:function(O,j,I,L){if(j!==0&&!(f.default.query(I,f.default.Scope.BLOCK)==null||I===this.statics.blotName&&L===this.statics.formats(this.domNode))){var H=this.newlineIndex(O);if(!(H<0||H>=O+j)){var G=this.newlineIndex(O,!0)+1,X=H-G+1,Q=this.isolate(G,X),K=Q.next;Q.format(I,L),K instanceof F&&K.formatAt(0,O-G+j-X,I,L)}}}},{key:"insertAt",value:function(O,j,I){if(I==null){var L=this.descendant(y.default,O),H=s(L,2),G=H[0],X=H[1];G.insertAt(X,j)}}},{key:"length",value:function(){var O=this.domNode.textContent.length;return this.domNode.textContent.endsWith(`
343`)?O:O+1}},{key:"newlineIndex",value:function(O){var j=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(j)return this.domNode.textContent.slice(0,O).lastIndexOf(`
344`);var I=this.domNode.textContent.slice(O).indexOf(`
345`);return I>-1?O+I:-1}},{key:"optimize",value:function(O){this.domNode.textContent.endsWith(`
346`)||this.appendChild(f.default.create("text",`
347`)),c(F.prototype.__proto__||Object.getPrototypeOf(F.prototype),"optimize",this).call(this,O);var j=this.next;j!=null&&j.prev===this&&j.statics.blotName===this.statics.blotName&&this.statics.formats(this.domNode)===j.statics.formats(j.domNode)&&(j.optimize(O),j.moveChildren(this),j.remove())}},{key:"replace",value:function(O){c(F.prototype.__proto__||Object.getPrototypeOf(F.prototype),"replace",this).call(this,O),[].slice.call(this.domNode.querySelectorAll("*")).forEach(function(j){var I=f.default.find(j);I==null?j.parentNode.removeChild(j):I instanceof f.default.Embed?I.remove():I.unwrap()})}}],[{key:"create",value:function(O){var j=c(F.__proto__||Object.getPrototypeOf(F),"create",this).call(this,O);return j.setAttribute("spellcheck",!1),j}},{key:"formats",value:function(){return!0}}]),F})(g.default);D.blotName="code-block",D.tagName="PRE",D.TAB="  ",n.Code=N,n.default=D}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(K){return typeof K}:function(K){return K&&typeof Symbol=="function"&&K.constructor===Symbol&&K!==Symbol.prototype?"symbol":typeof K},l=(function(){function K(q,B){var W=[],Y=!0,ee=!1,Z=void 0;try{for(var U=q[Symbol.iterator](),V;!(Y=(V=U.next()).done)&&(W.push(V.value),!(B&&W.length===B));Y=!0);}catch(te){ee=!0,Z=te}finally{try{!Y&&U.return&&U.return()}finally{if(ee)throw Z}}return W}return function(q,B){if(Array.isArray(q))return q;if(Symbol.iterator in Object(q))return K(q,B);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),c=(function(){function K(q,B){for(var W=0;W<B.length;W++){var Y=B[W];Y.enumerable=Y.enumerable||!1,Y.configurable=!0,"value"in Y&&(Y.writable=!0),Object.defineProperty(q,Y.key,Y)}}return function(q,B,W){return B&&K(q.prototype,B),W&&K(q,W),q}})(),d=o(2),h=j(d),m=o(20),f=j(m),p=o(0),g=j(p),x=o(13),b=j(x),w=o(24),y=j(w),S=o(4),C=j(S),k=o(16),A=j(k),N=o(21),D=j(N),_=o(11),F=j(_),M=o(3),O=j(M);function j(K){return K&&K.__esModule?K:{default:K}}function I(K,q,B){return q in K?Object.defineProperty(K,q,{value:B,enumerable:!0,configurable:!0,writable:!0}):K[q]=B,K}function L(K,q){if(!(K instanceof q))throw new TypeError("Cannot call a class as a function")}var H=/^[ -~]*$/,G=(function(){function K(q){L(this,K),this.scroll=q,this.delta=this.getDelta()}return c(K,[{key:"applyDelta",value:function(B){var W=this,Y=!1;this.scroll.update();var ee=this.scroll.length();return this.scroll.batchStart(),B=Q(B),B.reduce(function(Z,U){var V=U.retain||U.delete||U.insert.length||1,te=U.attributes||{};if(U.insert!=null){if(typeof U.insert=="string"){var ne=U.insert;ne.endsWith(`
348`)&&Y&&(Y=!1,ne=ne.slice(0,-1)),Z>=ee&&!ne.endsWith(`
349`)&&(Y=!0),W.scroll.insertAt(Z,ne);var ce=W.scroll.line(Z),fe=l(ce,2),ye=fe[0],ke=fe[1],Ae=(0,O.default)({},(0,S.bubbleFormats)(ye));if(ye instanceof C.default){var Ie=ye.descendant(g.default.Leaf,ke),et=l(Ie,1),He=et[0];Ae=(0,O.default)(Ae,(0,S.bubbleFormats)(He))}te=f.default.attributes.diff(Ae,te)||{}}else if(s(U.insert)==="object"){var ae=Object.keys(U.insert)[0];if(ae==null)return Z;W.scroll.insertAt(Z,ae,U.insert[ae])}ee+=V}return Object.keys(te).forEach(function(de){W.scroll.formatAt(Z,V,de,te[de])}),Z+V},0),B.reduce(function(Z,U){return typeof U.delete=="number"?(W.scroll.deleteAt(Z,U.delete),Z):Z+(U.retain||U.insert.length||1)},0),this.scroll.batchEnd(),this.update(B)}},{key:"deleteText",value:function(B,W){return this.scroll.deleteAt(B,W),this.update(new h.default().retain(B).delete(W))}},{key:"formatLine",value:function(B,W){var Y=this,ee=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.scroll.update(),Object.keys(ee).forEach(function(Z){if(!(Y.scroll.whitelist!=null&&!Y.scroll.whitelist[Z])){var U=Y.scroll.lines(B,Math.max(W,1)),V=W;U.forEach(function(te){var ne=te.length();if(!(te instanceof b.default))te.format(Z,ee[Z]);else{var ce=B-te.offset(Y.scroll),fe=te.newlineIndex(ce+V)-ce+1;te.formatAt(ce,fe,Z,ee[Z])}V-=ne})}}),this.scroll.optimize(),this.update(new h.default().retain(B).retain(W,(0,D.default)(ee)))}},{key:"formatText",value:function(B,W){var Y=this,ee=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return Object.keys(ee).forEach(function(Z){Y.scroll.formatAt(B,W,Z,ee[Z])}),this.update(new h.default().retain(B).retain(W,(0,D.default)(ee)))}},{key:"getContents",value:function(B,W){return this.delta.slice(B,B+W)}},{key:"getDelta",value:function(){return this.scroll.lines().reduce(function(B,W){return B.concat(W.delta())},new h.default)}},{key:"getFormat",value:function(B){var W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,Y=[],ee=[];W===0?this.scroll.path(B).forEach(function(U){var V=l(U,1),te=V[0];te instanceof C.default?Y.push(te):te instanceof g.default.Leaf&&ee.push(te)}):(Y=this.scroll.lines(B,W),ee=this.scroll.descendants(g.default.Leaf,B,W));var Z=[Y,ee].map(function(U){if(U.length===0)return{};for(var V=(0,S.bubbleFormats)(U.shift());Object.keys(V).length>0;){var te=U.shift();if(te==null)return V;V=X((0,S.bubbleFormats)(te),V)}return V});return O.default.apply(O.default,Z)}},{key:"getText",value:function(B,W){return this.getContents(B,W).filter(function(Y){return typeof Y.insert=="string"}).map(function(Y){return Y.insert}).join("")}},{key:"insertEmbed",value:function(B,W,Y){return this.scroll.insertAt(B,W,Y),this.update(new h.default().retain(B).insert(I({},W,Y)))}},{key:"insertText",value:function(B,W){var Y=this,ee=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return W=W.replace(/\r\n/g,`
350`).replace(/\r/g,`
351`),this.scroll.insertAt(B,W),Object.keys(ee).forEach(function(Z){Y.scroll.formatAt(B,W.length,Z,ee[Z])}),this.update(new h.default().retain(B).insert(W,(0,D.default)(ee)))}},{key:"isBlank",value:function(){if(this.scroll.children.length==0)return!0;if(this.scroll.children.length>1)return!1;var B=this.scroll.children.head;return B.statics.blotName!==C.default.blotName||B.children.length>1?!1:B.children.head instanceof A.default}},{key:"removeFormat",value:function(B,W){var Y=this.getText(B,W),ee=this.scroll.line(B+W),Z=l(ee,2),U=Z[0],V=Z[1],te=0,ne=new h.default;U!=null&&(U instanceof b.default?te=U.newlineIndex(V)-V+1:te=U.length()-V,ne=U.delta().slice(V,V+te-1).insert(`
352`));var ce=this.getContents(B,W+te),fe=ce.diff(new h.default().insert(Y).concat(ne)),ye=new h.default().retain(B).concat(fe);return this.applyDelta(ye)}},{key:"update",value:function(B){var W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],Y=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0,ee=this.delta;if(W.length===1&&W[0].type==="characterData"&&W[0].target.data.match(H)&&g.default.find(W[0].target)){var Z=g.default.find(W[0].target),U=(0,S.bubbleFormats)(Z),V=Z.offset(this.scroll),te=W[0].oldValue.replace(y.default.CONTENTS,""),ne=new h.default().insert(te),ce=new h.default().insert(Z.value()),fe=new h.default().retain(V).concat(ne.diff(ce,Y));B=fe.reduce(function(ye,ke){return ke.insert?ye.insert(ke.insert,U):ye.push(ke)},new h.default),this.delta=ee.compose(B)}else this.delta=this.getDelta(),(!B||!(0,F.default)(ee.compose(B),this.delta))&&(B=ee.diff(this.delta,Y));return B}}]),K})();function X(K,q){return Object.keys(q).reduce(function(B,W){return K[W]==null||(q[W]===K[W]?B[W]=q[W]:Array.isArray(q[W])?q[W].indexOf(K[W])<0&&(B[W]=q[W].concat([K[W]])):B[W]=[q[W],K[W]]),B},{})}function Q(K){return K.reduce(function(q,B){if(B.insert===1){var W=(0,D.default)(B.attributes);return delete W.image,q.insert({image:B.attributes.image},W)}if(B.attributes!=null&&(B.attributes.list===!0||B.attributes.bullet===!0)&&(B=(0,D.default)(B),B.attributes.list?B.attributes.list="ordered":(B.attributes.list="bullet",delete B.attributes.bullet)),typeof B.insert=="string"){var Y=B.insert.replace(/\r\n/g,`
353`).replace(/\r/g,`
354`);return q.insert(Y,B.attributes)}return q.push(B)},new h.default)}n.default=G}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.Range=void 0;var s=(function(){function _(F,M){var O=[],j=!0,I=!1,L=void 0;try{for(var H=F[Symbol.iterator](),G;!(j=(G=H.next()).done)&&(O.push(G.value),!(M&&O.length===M));j=!0);}catch(X){I=!0,L=X}finally{try{!j&&H.return&&H.return()}finally{if(I)throw L}}return O}return function(F,M){if(Array.isArray(F))return F;if(Symbol.iterator in Object(F))return _(F,M);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),l=(function(){function _(F,M){for(var O=0;O<M.length;O++){var j=M[O];j.enumerable=j.enumerable||!1,j.configurable=!0,"value"in j&&(j.writable=!0),Object.defineProperty(F,j.key,j)}}return function(F,M,O){return M&&_(F.prototype,M),O&&_(F,O),F}})(),c=o(0),d=y(c),h=o(21),m=y(h),f=o(11),p=y(f),g=o(8),x=y(g),b=o(10),w=y(b);function y(_){return _&&_.__esModule?_:{default:_}}function S(_){if(Array.isArray(_)){for(var F=0,M=Array(_.length);F<_.length;F++)M[F]=_[F];return M}else return Array.from(_)}function C(_,F){if(!(_ instanceof F))throw new TypeError("Cannot call a class as a function")}var k=(0,w.default)("quill:selection"),A=function _(F){var M=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;C(this,_),this.index=F,this.length=M},N=(function(){function _(F,M){var O=this;C(this,_),this.emitter=M,this.scroll=F,this.composing=!1,this.mouseDown=!1,this.root=this.scroll.domNode,this.cursor=d.default.create("cursor",this),this.lastRange=this.savedRange=new A(0,0),this.handleComposition(),this.handleDragging(),this.emitter.listenDOM("selectionchange",document,function(){O.mouseDown||setTimeout(O.update.bind(O,x.default.sources.USER),1)}),this.emitter.on(x.default.events.EDITOR_CHANGE,function(j,I){j===x.default.events.TEXT_CHANGE&&I.length()>0&&O.update(x.default.sources.SILENT)}),this.emitter.on(x.default.events.SCROLL_BEFORE_UPDATE,function(){if(O.hasFocus()){var j=O.getNativeRange();j!=null&&j.start.node!==O.cursor.textNode&&O.emitter.once(x.default.events.SCROLL_UPDATE,function(){try{O.setNativeRange(j.start.node,j.start.offset,j.end.node,j.end.offset)}catch{}})}}),this.emitter.on(x.default.events.SCROLL_OPTIMIZE,function(j,I){if(I.range){var L=I.range,H=L.startNode,G=L.startOffset,X=L.endNode,Q=L.endOffset;O.setNativeRange(H,G,X,Q)}}),this.update(x.default.sources.SILENT)}return l(_,[{key:"handleComposition",value:function(){var M=this;this.root.addEventListener("compositionstart",function(){M.composing=!0}),this.root.addEventListener("compositionend",function(){if(M.composing=!1,M.cursor.parent){var O=M.cursor.restore();if(!O)return;setTimeout(function(){M.setNativeRange(O.startNode,O.startOffset,O.endNode,O.endOffset)},1)}})}},{key:"handleDragging",value:function(){var M=this;this.emitter.listenDOM("mousedown",document.body,function(){M.mouseDown=!0}),this.emitter.listenDOM("mouseup",document.body,function(){M.mouseDown=!1,M.update(x.default.sources.USER)})}},{key:"focus",value:function(){this.hasFocus()||(this.root.focus(),this.setRange(this.savedRange))}},{key:"format",value:function(M,O){if(!(this.scroll.whitelist!=null&&!this.scroll.whitelist[M])){this.scroll.update();var j=this.getNativeRange();if(!(j==null||!j.native.collapsed||d.default.query(M,d.default.Scope.BLOCK))){if(j.start.node!==this.cursor.textNode){var I=d.default.find(j.start.node,!1);if(I==null)return;if(I instanceof d.default.Leaf){var L=I.split(j.start.offset);I.parent.insertBefore(this.cursor,L)}else I.insertBefore(this.cursor,j.start.node);this.cursor.attach()}this.cursor.format(M,O),this.scroll.optimize(),this.setNativeRange(this.cursor.textNode,this.cursor.textNode.data.length),this.update()}}}},{key:"getBounds",value:function(M){var O=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,j=this.scroll.length();M=Math.min(M,j-1),O=Math.min(M+O,j-1)-M;var I=void 0,L=this.scroll.leaf(M),H=s(L,2),G=H[0],X=H[1];if(G==null)return null;var Q=G.position(X,!0),K=s(Q,2);I=K[0],X=K[1];var q=document.createRange();if(O>0){q.setStart(I,X);var B=this.scroll.leaf(M+O),W=s(B,2);if(G=W[0],X=W[1],G==null)return null;var Y=G.position(X,!0),ee=s(Y,2);return I=ee[0],X=ee[1],q.setEnd(I,X),q.getBoundingClientRect()}else{var Z="left",U=void 0;return I instanceof Text?(X<I.data.length?(q.setStart(I,X),q.setEnd(I,X+1)):(q.setStart(I,X-1),q.setEnd(I,X),Z="right"),U=q.getBoundingClientRect()):(U=G.domNode.getBoundingClientRect(),X>0&&(Z="right")),{bottom:U.top+U.height,height:U.height,left:U[Z],right:U[Z],top:U.top,width:0}}}},{key:"getNativeRange",value:function(){var M=document.getSelection();if(M==null||M.rangeCount<=0)return null;var O=M.getRangeAt(0);if(O==null)return null;var j=this.normalizeNative(O);return k.info("getNativeRange",j),j}},{key:"getRange",value:function(){var M=this.getNativeRange();if(M==null)return[null,null];var O=this.normalizedToRange(M);return[O,M]}},{key:"hasFocus",value:function(){return document.activeElement===this.root}},{key:"normalizedToRange",value:function(M){var O=this,j=[[M.start.node,M.start.offset]];M.native.collapsed||j.push([M.end.node,M.end.offset]);var I=j.map(function(G){var X=s(G,2),Q=X[0],K=X[1],q=d.default.find(Q,!0),B=q.offset(O.scroll);return K===0?B:q instanceof d.default.Container?B+q.length():B+q.index(Q,K)}),L=Math.min(Math.max.apply(Math,S(I)),this.scroll.length()-1),H=Math.min.apply(Math,[L].concat(S(I)));return new A(H,L-H)}},{key:"normalizeNative",value:function(M){if(!D(this.root,M.startContainer)||!M.collapsed&&!D(this.root,M.endContainer))return null;var O={start:{node:M.startContainer,offset:M.startOffset},end:{node:M.endContainer,offset:M.endOffset},native:M};return[O.start,O.end].forEach(function(j){for(var I=j.node,L=j.offset;!(I instanceof Text)&&I.childNodes.length>0;)if(I.childNodes.length>L)I=I.childNodes[L],L=0;else if(I.childNodes.length===L)I=I.lastChild,L=I instanceof Text?I.data.length:I.childNodes.length+1;else break;j.node=I,j.offset=L}),O}},{key:"rangeToNative",value:function(M){var O=this,j=M.collapsed?[M.index]:[M.index,M.index+M.length],I=[],L=this.scroll.length();return j.forEach(function(H,G){H=Math.min(L-1,H);var X=void 0,Q=O.scroll.leaf(H),K=s(Q,2),q=K[0],B=K[1],W=q.position(B,G!==0),Y=s(W,2);X=Y[0],B=Y[1],I.push(X,B)}),I.length<2&&(I=I.concat(I)),I}},{key:"scrollIntoView",value:function(M){var O=this.lastRange;if(O!=null){var j=this.getBounds(O.index,O.length);if(j!=null){var I=this.scroll.length()-1,L=this.scroll.line(Math.min(O.index,I)),H=s(L,1),G=H[0],X=G;if(O.length>0){var Q=this.scroll.line(Math.min(O.index+O.length,I)),K=s(Q,1);X=K[0]}if(!(G==null||X==null)){var q=M.getBoundingClientRect();j.top<q.top?M.scrollTop-=q.top-j.top:j.bottom>q.bottom&&(M.scrollTop+=j.bottom-q.bottom)}}}}},{key:"setNativeRange",value:function(M,O){var j=arguments.length>2&&arguments[2]!==void 0?arguments[2]:M,I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:O,L=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;if(k.info("setNativeRange",M,O,j,I),!(M!=null&&(this.root.parentNode==null||M.parentNode==null||j.parentNode==null))){var H=document.getSelection();if(H!=null)if(M!=null){this.hasFocus()||this.root.focus();var G=(this.getNativeRange()||{}).native;if(G==null||L||M!==G.startContainer||O!==G.startOffset||j!==G.endContainer||I!==G.endOffset){M.tagName=="BR"&&(O=[].indexOf.call(M.parentNode.childNodes,M),M=M.parentNode),j.tagName=="BR"&&(I=[].indexOf.call(j.parentNode.childNodes,j),j=j.parentNode);var X=document.createRange();X.setStart(M,O),X.setEnd(j,I),H.removeAllRanges(),H.addRange(X)}}else H.removeAllRanges(),this.root.blur(),document.body.focus()}}},{key:"setRange",value:function(M){var O=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,j=arguments.length>2&&arguments[2]!==void 0?arguments[2]:x.default.sources.API;if(typeof O=="string"&&(j=O,O=!1),k.info("setRange",M),M!=null){var I=this.rangeToNative(M);this.setNativeRange.apply(this,S(I).concat([O]))}else this.setNativeRange(null);this.update(j)}},{key:"update",value:function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x.default.sources.USER,O=this.lastRange,j=this.getRange(),I=s(j,2),L=I[0],H=I[1];if(this.lastRange=L,this.lastRange!=null&&(this.savedRange=this.lastRange),!(0,p.default)(O,this.lastRange)){var G;!this.composing&&H!=null&&H.native.collapsed&&H.start.node!==this.cursor.textNode&&this.cursor.restore();var X=[x.default.events.SELECTION_CHANGE,(0,m.default)(this.lastRange),(0,m.default)(O),M];if((G=this.emitter).emit.apply(G,[x.default.events.EDITOR_CHANGE].concat(X)),M!==x.default.sources.SILENT){var Q;(Q=this.emitter).emit.apply(Q,X)}}}}]),_})();function D(_,F){try{F.parentNode}catch{return!1}return F instanceof Text&&(F=F.parentNode),_.contains(F)}n.Range=A,n.default=N}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function x(b,w){for(var y=0;y<w.length;y++){var S=w[y];S.enumerable=S.enumerable||!1,S.configurable=!0,"value"in S&&(S.writable=!0),Object.defineProperty(b,S.key,S)}}return function(b,w,y){return w&&x(b.prototype,w),y&&x(b,y),b}})(),l=function x(b,w,y){b===null&&(b=Function.prototype);var S=Object.getOwnPropertyDescriptor(b,w);if(S===void 0){var C=Object.getPrototypeOf(b);return C===null?void 0:x(C,w,y)}else{if("value"in S)return S.value;var k=S.get;return k===void 0?void 0:k.call(y)}},c=o(0),d=h(c);function h(x){return x&&x.__esModule?x:{default:x}}function m(x,b){if(!(x instanceof b))throw new TypeError("Cannot call a class as a function")}function f(x,b){if(!x)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return b&&(typeof b=="object"||typeof b=="function")?b:x}function p(x,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof b);x.prototype=Object.create(b&&b.prototype,{constructor:{value:x,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(x,b):x.__proto__=b)}var g=(function(x){p(b,x);function b(){return m(this,b),f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}return s(b,[{key:"insertInto",value:function(y,S){y.children.length===0?l(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"insertInto",this).call(this,y,S):this.remove()}},{key:"length",value:function(){return 0}},{key:"value",value:function(){return""}}],[{key:"value",value:function(){}}]),b})(d.default.Embed);g.blotName="break",g.tagName="BR",n.default=g}),(function(r,n,o){var s=this&&this.__extends||(function(){var f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(p,g){p.__proto__=g}||function(p,g){for(var x in g)g.hasOwnProperty(x)&&(p[x]=g[x])};return function(p,g){f(p,g);function x(){this.constructor=p}p.prototype=g===null?Object.create(g):(x.prototype=g.prototype,new x)}})();Object.defineProperty(n,"__esModule",{value:!0});var l=o(44),c=o(30),d=o(1),h=(function(f){s(p,f);function p(g){var x=f.call(this,g)||this;return x.build(),x}return p.prototype.appendChild=function(g){this.insertBefore(g)},p.prototype.attach=function(){f.prototype.attach.call(this),this.children.forEach(function(g){g.attach()})},p.prototype.build=function(){var g=this;this.children=new l.default,[].slice.call(this.domNode.childNodes).reverse().forEach(function(x){try{var b=m(x);g.insertBefore(b,g.children.head||void 0)}catch(w){if(w instanceof d.ParchmentError)return;throw w}})},p.prototype.deleteAt=function(g,x){if(g===0&&x===this.length())return this.remove();this.children.forEachAt(g,x,function(b,w,y){b.deleteAt(w,y)})},p.prototype.descendant=function(g,x){var b=this.children.find(x),w=b[0],y=b[1];return g.blotName==null&&g(w)||g.blotName!=null&&w instanceof g?[w,y]:w instanceof p?w.descendant(g,y):[null,-1]},p.prototype.descendants=function(g,x,b){x===void 0&&(x=0),b===void 0&&(b=Number.MAX_VALUE);var w=[],y=b;return this.children.forEachAt(x,b,function(S,C,k){(g.blotName==null&&g(S)||g.blotName!=null&&S instanceof g)&&w.push(S),S instanceof p&&(w=w.concat(S.descendants(g,C,y))),y-=k}),w},p.prototype.detach=function(){this.children.forEach(function(g){g.detach()}),f.prototype.detach.call(this)},p.prototype.formatAt=function(g,x,b,w){this.children.forEachAt(g,x,function(y,S,C){y.formatAt(S,C,b,w)})},p.prototype.insertAt=function(g,x,b){var w=this.children.find(g),y=w[0],S=w[1];if(y)y.insertAt(S,x,b);else{var C=b==null?d.create("text",x):d.create(x,b);this.appendChild(C)}},p.prototype.insertBefore=function(g,x){if(this.statics.allowedChildren!=null&&!this.statics.allowedChildren.some(function(b){return g instanceof b}))throw new d.ParchmentError("Cannot insert "+g.statics.blotName+" into "+this.statics.blotName);g.insertInto(this,x)},p.prototype.length=function(){return this.children.reduce(function(g,x){return g+x.length()},0)},p.prototype.moveChildren=function(g,x){this.children.forEach(function(b){g.insertBefore(b,x)})},p.prototype.optimize=function(g){if(f.prototype.optimize.call(this,g),this.children.length===0)if(this.statics.defaultChild!=null){var x=d.create(this.statics.defaultChild);this.appendChild(x),x.optimize(g)}else this.remove()},p.prototype.path=function(g,x){x===void 0&&(x=!1);var b=this.children.find(g,x),w=b[0],y=b[1],S=[[this,g]];return w instanceof p?S.concat(w.path(y,x)):(w!=null&&S.push([w,y]),S)},p.prototype.removeChild=function(g){this.children.remove(g)},p.prototype.replace=function(g){g instanceof p&&g.moveChildren(this),f.prototype.replace.call(this,g)},p.prototype.split=function(g,x){if(x===void 0&&(x=!1),!x){if(g===0)return this;if(g===this.length())return this.next}var b=this.clone();return this.parent.insertBefore(b,this.next),this.children.forEachAt(g,this.length(),function(w,y,S){w=w.split(y,x),b.appendChild(w)}),b},p.prototype.unwrap=function(){this.moveChildren(this.parent,this.next),this.remove()},p.prototype.update=function(g,x){var b=this,w=[],y=[];g.forEach(function(S){S.target===b.domNode&&S.type==="childList"&&(w.push.apply(w,S.addedNodes),y.push.apply(y,S.removedNodes))}),y.forEach(function(S){if(!(S.parentNode!=null&&S.tagName!=="IFRAME"&&document.body.compareDocumentPosition(S)&Node.DOCUMENT_POSITION_CONTAINED_BY)){var C=d.find(S);C!=null&&(C.domNode.parentNode==null||C.domNode.parentNode===b.domNode)&&C.detach()}}),w.filter(function(S){return S.parentNode==b.domNode}).sort(function(S,C){return S===C?0:S.compareDocumentPosition(C)&Node.DOCUMENT_POSITION_FOLLOWING?1:-1}).forEach(function(S){var C=null;S.nextSibling!=null&&(C=d.find(S.nextSibling));var k=m(S);(k.next!=C||k.next==null)&&(k.parent!=null&&k.parent.removeChild(b),b.insertBefore(k,C||void 0))})},p})(c.default);function m(f){var p=d.find(f);if(p==null)try{p=d.create(f)}catch{p=d.create(d.Scope.INLINE),[].slice.call(f.childNodes).forEach(function(x){p.domNode.appendChild(x)}),f.parentNode&&f.parentNode.replaceChild(p.domNode,f),p.attach()}return p}n.default=h}),(function(r,n,o){var s=this&&this.__extends||(function(){var f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(p,g){p.__proto__=g}||function(p,g){for(var x in g)g.hasOwnProperty(x)&&(p[x]=g[x])};return function(p,g){f(p,g);function x(){this.constructor=p}p.prototype=g===null?Object.create(g):(x.prototype=g.prototype,new x)}})();Object.defineProperty(n,"__esModule",{value:!0});var l=o(12),c=o(31),d=o(17),h=o(1),m=(function(f){s(p,f);function p(g){var x=f.call(this,g)||this;return x.attributes=new c.default(x.domNode),x}return p.formats=function(g){if(typeof this.tagName=="string")return!0;if(Array.isArray(this.tagName))return g.tagName.toLowerCase()},p.prototype.format=function(g,x){var b=h.query(g);b instanceof l.default?this.attributes.attribute(b,x):x&&b!=null&&(g!==this.statics.blotName||this.formats()[g]!==x)&&this.replaceWith(g,x)},p.prototype.formats=function(){var g=this.attributes.values(),x=this.statics.formats(this.domNode);return x!=null&&(g[this.statics.blotName]=x),g},p.prototype.replaceWith=function(g,x){var b=f.prototype.replaceWith.call(this,g,x);return this.attributes.copy(b),b},p.prototype.update=function(g,x){var b=this;f.prototype.update.call(this,g,x),g.some(function(w){return w.target===b.domNode&&w.type==="attributes"})&&this.attributes.build()},p.prototype.wrap=function(g,x){var b=f.prototype.wrap.call(this,g,x);return b instanceof p&&b.statics.scope===this.statics.scope&&this.attributes.move(b),b},p})(d.default);n.default=m}),(function(r,n,o){var s=this&&this.__extends||(function(){var h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,f){m.__proto__=f}||function(m,f){for(var p in f)f.hasOwnProperty(p)&&(m[p]=f[p])};return function(m,f){h(m,f);function p(){this.constructor=m}m.prototype=f===null?Object.create(f):(p.prototype=f.prototype,new p)}})();Object.defineProperty(n,"__esModule",{value:!0});var l=o(30),c=o(1),d=(function(h){s(m,h);function m(){return h!==null&&h.apply(this,arguments)||this}return m.value=function(f){return!0},m.prototype.index=function(f,p){return this.domNode===f||this.domNode.compareDocumentPosition(f)&Node.DOCUMENT_POSITION_CONTAINED_BY?Math.min(p,1):-1},m.prototype.position=function(f,p){var g=[].indexOf.call(this.parent.domNode.childNodes,this.domNode);return f>0&&(g+=1),[this.parent.domNode,g]},m.prototype.value=function(){var f;return f={},f[this.statics.blotName]=this.statics.value(this.domNode)||!0,f},m.scope=c.Scope.INLINE_BLOT,m})(l.default);n.default=d}),(function(r,n,o){var s=o(11),l=o(3),c={attributes:{compose:function(h,m,f){typeof h!="object"&&(h={}),typeof m!="object"&&(m={});var p=l(!0,{},m);f||(p=Object.keys(p).reduce(function(x,b){return p[b]!=null&&(x[b]=p[b]),x},{}));for(var g in h)h[g]!==void 0&&m[g]===void 0&&(p[g]=h[g]);return Object.keys(p).length>0?p:void 0},diff:function(h,m){typeof h!="object"&&(h={}),typeof m!="object"&&(m={});var f=Object.keys(h).concat(Object.keys(m)).reduce(function(p,g){return s(h[g],m[g])||(p[g]=m[g]===void 0?null:m[g]),p},{});return Object.keys(f).length>0?f:void 0},transform:function(h,m,f){if(typeof h!="object")return m;if(typeof m=="object"){if(!f)return m;var p=Object.keys(m).reduce(function(g,x){return h[x]===void 0&&(g[x]=m[x]),g},{});return Object.keys(p).length>0?p:void 0}}},iterator:function(h){return new d(h)},length:function(h){return typeof h.delete=="number"?h.delete:typeof h.retain=="number"?h.retain:typeof h.insert=="string"?h.insert.length:1}};function d(h){this.ops=h,this.index=0,this.offset=0}d.prototype.hasNext=function(){return this.peekLength()<1/0},d.prototype.next=function(h){h||(h=1/0);var m=this.ops[this.index];if(m){var f=this.offset,p=c.length(m);if(h>=p-f?(h=p-f,this.index+=1,this.offset=0):this.offset+=h,typeof m.delete=="number")return{delete:h};var g={};return m.attributes&&(g.attributes=m.attributes),typeof m.retain=="number"?g.retain=h:typeof m.insert=="string"?g.insert=m.insert.substr(f,h):g.insert=m.insert,g}else return{retain:1/0}},d.prototype.peek=function(){return this.ops[this.index]},d.prototype.peekLength=function(){return this.ops[this.index]?c.length(this.ops[this.index])-this.offset:1/0},d.prototype.peekType=function(){return this.ops[this.index]?typeof this.ops[this.index].delete=="number"?"delete":typeof this.ops[this.index].retain=="number"?"retain":"insert":"retain"},d.prototype.rest=function(){if(this.hasNext()){if(this.offset===0)return this.ops.slice(this.index);var h=this.offset,m=this.index,f=this.next(),p=this.ops.slice(this.index);return this.offset=h,this.index=m,[f].concat(p)}else return[]},r.exports=c}),(function(r,n){var o=(function(){function s(b,w){return w!=null&&b instanceof w}var l;try{l=Map}catch{l=function(){}}var c;try{c=Set}catch{c=function(){}}var d;try{d=Promise}catch{d=function(){}}function h(b,w,y,S,C){typeof w=="object"&&(y=w.depth,S=w.prototype,C=w.includeNonEnumerable,w=w.circular);var k=[],A=[],N=typeof Buffer<"u";typeof w>"u"&&(w=!0),typeof y>"u"&&(y=1/0);function D(_,F){if(_===null)return null;if(F===0)return _;var M,O;if(typeof _!="object")return _;if(s(_,l))M=new l;else if(s(_,c))M=new c;else if(s(_,d))M=new d(function(q,B){_.then(function(W){q(D(W,F-1))},function(W){B(D(W,F-1))})});else if(h.__isArray(_))M=[];else if(h.__isRegExp(_))M=new RegExp(_.source,x(_)),_.lastIndex&&(M.lastIndex=_.lastIndex);else if(h.__isDate(_))M=new Date(_.getTime());else{if(N&&Buffer.isBuffer(_))return Buffer.allocUnsafe?M=Buffer.allocUnsafe(_.length):M=new Buffer(_.length),_.copy(M),M;s(_,Error)?M=Object.create(_):typeof S>"u"?(O=Object.getPrototypeOf(_),M=Object.create(O)):(M=Object.create(S),O=S)}if(w){var j=k.indexOf(_);if(j!=-1)return A[j];k.push(_),A.push(M)}s(_,l)&&_.forEach(function(q,B){var W=D(B,F-1),Y=D(q,F-1);M.set(W,Y)}),s(_,c)&&_.forEach(function(q){var B=D(q,F-1);M.add(B)});for(var I in _){var L;O&&(L=Object.getOwnPropertyDescriptor(O,I)),!(L&&L.set==null)&&(M[I]=D(_[I],F-1))}if(Object.getOwnPropertySymbols)for(var H=Object.getOwnPropertySymbols(_),I=0;I<H.length;I++){var G=H[I],X=Object.getOwnPropertyDescriptor(_,G);X&&!X.enumerable&&!C||(M[G]=D(_[G],F-1),X.enumerable||Object.defineProperty(M,G,{enumerable:!1}))}if(C)for(var Q=Object.getOwnPropertyNames(_),I=0;I<Q.length;I++){var K=Q[I],X=Object.getOwnPropertyDescriptor(_,K);X&&X.enumerable||(M[K]=D(_[K],F-1),Object.defineProperty(M,K,{enumerable:!1}))}return M}return D(b,y)}h.clonePrototype=function(w){if(w===null)return null;var y=function(){};return y.prototype=w,new y};function m(b){return Object.prototype.toString.call(b)}h.__objToStr=m;function f(b){return typeof b=="object"&&m(b)==="[object Date]"}h.__isDate=f;function p(b){return typeof b=="object"&&m(b)==="[object Array]"}h.__isArray=p;function g(b){return typeof b=="object"&&m(b)==="[object RegExp]"}h.__isRegExp=g;function x(b){var w="";return b.global&&(w+="g"),b.ignoreCase&&(w+="i"),b.multiline&&(w+="m"),w}return h.__getRegExpFlags=x,h})();typeof r=="object"&&r.exports&&(r.exports=o)}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function M(O,j){var I=[],L=!0,H=!1,G=void 0;try{for(var X=O[Symbol.iterator](),Q;!(L=(Q=X.next()).done)&&(I.push(Q.value),!(j&&I.length===j));L=!0);}catch(K){H=!0,G=K}finally{try{!L&&X.return&&X.return()}finally{if(H)throw G}}return I}return function(O,j){if(Array.isArray(O))return O;if(Symbol.iterator in Object(O))return M(O,j);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),l=(function(){function M(O,j){for(var I=0;I<j.length;I++){var L=j[I];L.enumerable=L.enumerable||!1,L.configurable=!0,"value"in L&&(L.writable=!0),Object.defineProperty(O,L.key,L)}}return function(O,j,I){return j&&M(O.prototype,j),I&&M(O,I),O}})(),c=function M(O,j,I){O===null&&(O=Function.prototype);var L=Object.getOwnPropertyDescriptor(O,j);if(L===void 0){var H=Object.getPrototypeOf(O);return H===null?void 0:M(H,j,I)}else{if("value"in L)return L.value;var G=L.get;return G===void 0?void 0:G.call(I)}},d=o(0),h=k(d),m=o(8),f=k(m),p=o(4),g=k(p),x=o(16),b=k(x),w=o(13),y=k(w),S=o(25),C=k(S);function k(M){return M&&M.__esModule?M:{default:M}}function A(M,O){if(!(M instanceof O))throw new TypeError("Cannot call a class as a function")}function N(M,O){if(!M)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return O&&(typeof O=="object"||typeof O=="function")?O:M}function D(M,O){if(typeof O!="function"&&O!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof O);M.prototype=Object.create(O&&O.prototype,{constructor:{value:M,enumerable:!1,writable:!0,configurable:!0}}),O&&(Object.setPrototypeOf?Object.setPrototypeOf(M,O):M.__proto__=O)}function _(M){return M instanceof g.default||M instanceof p.BlockEmbed}var F=(function(M){D(O,M);function O(j,I){A(this,O);var L=N(this,(O.__proto__||Object.getPrototypeOf(O)).call(this,j));return L.emitter=I.emitter,Array.isArray(I.whitelist)&&(L.whitelist=I.whitelist.reduce(function(H,G){return H[G]=!0,H},{})),L.domNode.addEventListener("DOMNodeInserted",function(){}),L.optimize(),L.enable(),L}return l(O,[{key:"batchStart",value:function(){this.batch=!0}},{key:"batchEnd",value:function(){this.batch=!1,this.optimize()}},{key:"deleteAt",value:function(I,L){var H=this.line(I),G=s(H,2),X=G[0],Q=G[1],K=this.line(I+L),q=s(K,1),B=q[0];if(c(O.prototype.__proto__||Object.getPrototypeOf(O.prototype),"deleteAt",this).call(this,I,L),B!=null&&X!==B&&Q>0){if(X instanceof p.BlockEmbed||B instanceof p.BlockEmbed){this.optimize();return}if(X instanceof y.default){var W=X.newlineIndex(X.length(),!0);if(W>-1&&(X=X.split(W+1),X===B)){this.optimize();return}}else if(B instanceof y.default){var Y=B.newlineIndex(0);Y>-1&&B.split(Y+1)}var ee=B.children.head instanceof b.default?null:B.children.head;X.moveChildren(B,ee),X.remove()}this.optimize()}},{key:"enable",value:function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.domNode.setAttribute("contenteditable",I)}},{key:"formatAt",value:function(I,L,H,G){this.whitelist!=null&&!this.whitelist[H]||(c(O.prototype.__proto__||Object.getPrototypeOf(O.prototype),"formatAt",this).call(this,I,L,H,G),this.optimize())}},{key:"insertAt",value:function(I,L,H){if(!(H!=null&&this.whitelist!=null&&!this.whitelist[L])){if(I>=this.length())if(H==null||h.default.query(L,h.default.Scope.BLOCK)==null){var G=h.default.create(this.statics.defaultChild);this.appendChild(G),H==null&&L.endsWith(`
355`)&&(L=L.slice(0,-1)),G.insertAt(0,L,H)}else{var X=h.default.create(L,H);this.appendChild(X)}else c(O.prototype.__proto__||Object.getPrototypeOf(O.prototype),"insertAt",this).call(this,I,L,H);this.optimize()}}},{key:"insertBefore",value:function(I,L){if(I.statics.scope===h.default.Scope.INLINE_BLOT){var H=h.default.create(this.statics.defaultChild);H.appendChild(I),I=H}c(O.prototype.__proto__||Object.getPrototypeOf(O.prototype),"insertBefore",this).call(this,I,L)}},{key:"leaf",value:function(I){return this.path(I).pop()||[null,-1]}},{key:"line",value:function(I){return I===this.length()?this.line(I-1):this.descendant(_,I)}},{key:"lines",value:function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Number.MAX_VALUE,H=function G(X,Q,K){var q=[],B=K;return X.children.forEachAt(Q,K,function(W,Y,ee){_(W)?q.push(W):W instanceof h.default.Container&&(q=q.concat(G(W,Y,B))),B-=ee}),q};return H(this,I,L)}},{key:"optimize",value:function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.batch!==!0&&(c(O.prototype.__proto__||Object.getPrototypeOf(O.prototype),"optimize",this).call(this,I,L),I.length>0&&this.emitter.emit(f.default.events.SCROLL_OPTIMIZE,I,L))}},{key:"path",value:function(I){return c(O.prototype.__proto__||Object.getPrototypeOf(O.prototype),"path",this).call(this,I).slice(1)}},{key:"update",value:function(I){if(this.batch!==!0){var L=f.default.sources.USER;typeof I=="string"&&(L=I),Array.isArray(I)||(I=this.observer.takeRecords()),I.length>0&&this.emitter.emit(f.default.events.SCROLL_BEFORE_UPDATE,L,I),c(O.prototype.__proto__||Object.getPrototypeOf(O.prototype),"update",this).call(this,I.concat([])),I.length>0&&this.emitter.emit(f.default.events.SCROLL_UPDATE,L,I)}}}]),O})(h.default.Scroll);F.blotName="scroll",F.className="ql-editor",F.tagName="DIV",F.defaultChild="block",F.allowedChildren=[g.default,p.BlockEmbed,C.default],n.default=F}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.SHORTKEY=n.default=void 0;var s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(U){return typeof U}:function(U){return U&&typeof Symbol=="function"&&U.constructor===Symbol&&U!==Symbol.prototype?"symbol":typeof U},l=(function(){function U(V,te){var ne=[],ce=!0,fe=!1,ye=void 0;try{for(var ke=V[Symbol.iterator](),Ae;!(ce=(Ae=ke.next()).done)&&(ne.push(Ae.value),!(te&&ne.length===te));ce=!0);}catch(Ie){fe=!0,ye=Ie}finally{try{!ce&&ke.return&&ke.return()}finally{if(fe)throw ye}}return ne}return function(V,te){if(Array.isArray(V))return V;if(Symbol.iterator in Object(V))return U(V,te);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),c=(function(){function U(V,te){for(var ne=0;ne<te.length;ne++){var ce=te[ne];ce.enumerable=ce.enumerable||!1,ce.configurable=!0,"value"in ce&&(ce.writable=!0),Object.defineProperty(V,ce.key,ce)}}return function(V,te,ne){return te&&U(V.prototype,te),ne&&U(V,ne),V}})(),d=o(21),h=M(d),m=o(11),f=M(m),p=o(3),g=M(p),x=o(2),b=M(x),w=o(20),y=M(w),S=o(0),C=M(S),k=o(5),A=M(k),N=o(10),D=M(N),_=o(9),F=M(_);function M(U){return U&&U.__esModule?U:{default:U}}function O(U,V,te){return V in U?Object.defineProperty(U,V,{value:te,enumerable:!0,configurable:!0,writable:!0}):U[V]=te,U}function j(U,V){if(!(U instanceof V))throw new TypeError("Cannot call a class as a function")}function I(U,V){if(!U)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return V&&(typeof V=="object"||typeof V=="function")?V:U}function L(U,V){if(typeof V!="function"&&V!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof V);U.prototype=Object.create(V&&V.prototype,{constructor:{value:U,enumerable:!1,writable:!0,configurable:!0}}),V&&(Object.setPrototypeOf?Object.setPrototypeOf(U,V):U.__proto__=V)}var H=(0,D.default)("quill:keyboard"),G=/Mac/i.test(navigator.platform)?"metaKey":"ctrlKey",X=(function(U){L(V,U),c(V,null,[{key:"match",value:function(ne,ce){return ce=Z(ce),["altKey","ctrlKey","metaKey","shiftKey"].some(function(fe){return!!ce[fe]!==ne[fe]&&ce[fe]!==null})?!1:ce.key===(ne.which||ne.keyCode)}}]);function V(te,ne){j(this,V);var ce=I(this,(V.__proto__||Object.getPrototypeOf(V)).call(this,te,ne));return ce.bindings={},Object.keys(ce.options.bindings).forEach(function(fe){fe==="list autofill"&&te.scroll.whitelist!=null&&!te.scroll.whitelist.list||ce.options.bindings[fe]&&ce.addBinding(ce.options.bindings[fe])}),ce.addBinding({key:V.keys.ENTER,shiftKey:null},W),ce.addBinding({key:V.keys.ENTER,metaKey:null,ctrlKey:null,altKey:null},function(){}),/Firefox/i.test(navigator.userAgent)?(ce.addBinding({key:V.keys.BACKSPACE},{collapsed:!0},K),ce.addBinding({key:V.keys.DELETE},{collapsed:!0},q)):(ce.addBinding({key:V.keys.BACKSPACE},{collapsed:!0,prefix:/^.?$/},K),ce.addBinding({key:V.keys.DELETE},{collapsed:!0,suffix:/^.?$/},q)),ce.addBinding({key:V.keys.BACKSPACE},{collapsed:!1},B),ce.addBinding({key:V.keys.DELETE},{collapsed:!1},B),ce.addBinding({key:V.keys.BACKSPACE,altKey:null,ctrlKey:null,metaKey:null,shiftKey:null},{collapsed:!0,offset:0},K),ce.listen(),ce}return c(V,[{key:"addBinding",value:function(ne){var ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},fe=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},ye=Z(ne);if(ye==null||ye.key==null)return H.warn("Attempted to add invalid keyboard binding",ye);typeof ce=="function"&&(ce={handler:ce}),typeof fe=="function"&&(fe={handler:fe}),ye=(0,g.default)(ye,ce,fe),this.bindings[ye.key]=this.bindings[ye.key]||[],this.bindings[ye.key].push(ye)}},{key:"listen",value:function(){var ne=this;this.quill.root.addEventListener("keydown",function(ce){if(!ce.defaultPrevented){var fe=ce.which||ce.keyCode,ye=(ne.bindings[fe]||[]).filter(function(tt){return V.match(ce,tt)});if(ye.length!==0){var ke=ne.quill.getSelection();if(!(ke==null||!ne.quill.hasFocus())){var Ae=ne.quill.getLine(ke.index),Ie=l(Ae,2),et=Ie[0],He=Ie[1],ae=ne.quill.getLeaf(ke.index),de=l(ae,2),be=de[0],we=de[1],he=ke.length===0?[be,we]:ne.quill.getLeaf(ke.index+ke.length),Fe=l(he,2),Pe=Fe[0],We=Fe[1],$t=be instanceof C.default.Text?be.value().slice(0,we):"",hr=Pe instanceof C.default.Text?Pe.value().slice(We):"",Je={collapsed:ke.length===0,empty:ke.length===0&&et.length()<=1,format:ne.quill.getFormat(ke),offset:He,prefix:$t,suffix:hr},Pl=ye.some(function(tt){if(tt.collapsed!=null&&tt.collapsed!==Je.collapsed||tt.empty!=null&&tt.empty!==Je.empty||tt.offset!=null&&tt.offset!==Je.offset)return!1;if(Array.isArray(tt.format)){if(tt.format.every(function(tr){return Je.format[tr]==null}))return!1}else if(s(tt.format)==="object"&&!Object.keys(tt.format).every(function(tr){return tt.format[tr]===!0?Je.format[tr]!=null:tt.format[tr]===!1?Je.format[tr]==null:(0,f.default)(tt.format[tr],Je.format[tr])}))return!1;return tt.prefix!=null&&!tt.prefix.test(Je.prefix)||tt.suffix!=null&&!tt.suffix.test(Je.suffix)?!1:tt.handler.call(ne,ke,Je)!==!0});Pl&&ce.preventDefault()}}}})}}]),V})(F.default);X.keys={BACKSPACE:8,TAB:9,ENTER:13,ESCAPE:27,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46},X.DEFAULTS={bindings:{bold:ee("bold"),italic:ee("italic"),underline:ee("underline"),indent:{key:X.keys.TAB,format:["blockquote","indent","list"],handler:function(V,te){if(te.collapsed&&te.offset!==0)return!0;this.quill.format("indent","+1",A.default.sources.USER)}},outdent:{key:X.keys.TAB,shiftKey:!0,format:["blockquote","indent","list"],handler:function(V,te){if(te.collapsed&&te.offset!==0)return!0;this.quill.format("indent","-1",A.default.sources.USER)}},"outdent backspace":{key:X.keys.BACKSPACE,collapsed:!0,shiftKey:null,metaKey:null,ctrlKey:null,altKey:null,format:["indent","list"],offset:0,handler:function(V,te){te.format.indent!=null?this.quill.format("indent","-1",A.default.sources.USER):te.format.list!=null&&this.quill.format("list",!1,A.default.sources.USER)}},"indent code-block":Y(!0),"outdent code-block":Y(!1),"remove tab":{key:X.keys.TAB,shiftKey:!0,collapsed:!0,prefix:/\t$/,handler:function(V){this.quill.deleteText(V.index-1,1,A.default.sources.USER)}},tab:{key:X.keys.TAB,handler:function(V){this.quill.history.cutoff();var te=new b.default().retain(V.index).delete(V.length).insert("	");this.quill.updateContents(te,A.default.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(V.index+1,A.default.sources.SILENT)}},"list empty enter":{key:X.keys.ENTER,collapsed:!0,format:["list"],empty:!0,handler:function(V,te){this.quill.format("list",!1,A.default.sources.USER),te.format.indent&&this.quill.format("indent",!1,A.default.sources.USER)}},"checklist enter":{key:X.keys.ENTER,collapsed:!0,format:{list:"checked"},handler:function(V){var te=this.quill.getLine(V.index),ne=l(te,2),ce=ne[0],fe=ne[1],ye=(0,g.default)({},ce.formats(),{list:"checked"}),ke=new b.default().retain(V.index).insert(`
356`,ye).retain(ce.length()-fe-1).retain(1,{list:"unchecked"});this.quill.updateContents(ke,A.default.sources.USER),this.quill.setSelection(V.index+1,A.default.sources.SILENT),this.quill.scrollIntoView()}},"header enter":{key:X.keys.ENTER,collapsed:!0,format:["header"],suffix:/^$/,handler:function(V,te){var ne=this.quill.getLine(V.index),ce=l(ne,2),fe=ce[0],ye=ce[1],ke=new b.default().retain(V.index).insert(`
357`,te.format).retain(fe.length()-ye-1).retain(1,{header:null});this.quill.updateContents(ke,A.default.sources.USER),this.quill.setSelection(V.index+1,A.default.sources.SILENT),this.quill.scrollIntoView()}},"list autofill":{key:" ",collapsed:!0,format:{list:!1},prefix:/^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/,handler:function(V,te){var ne=te.prefix.length,ce=this.quill.getLine(V.index),fe=l(ce,2),ye=fe[0],ke=fe[1];if(ke>ne)return!0;var Ae=void 0;switch(te.prefix.trim()){case"[]":case"[ ]":Ae="unchecked";break;case"[x]":Ae="checked";break;case"-":case"*":Ae="bullet";break;default:Ae="ordered"}this.quill.insertText(V.index," ",A.default.sources.USER),this.quill.history.cutoff();var Ie=new b.default().retain(V.index-ke).delete(ne+1).retain(ye.length()-2-ke).retain(1,{list:Ae});this.quill.updateContents(Ie,A.default.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(V.index-ne,A.default.sources.SILENT)}},"code exit":{key:X.keys.ENTER,collapsed:!0,format:["code-block"],prefix:/\n\n$/,suffix:/^\s+$/,handler:function(V){var te=this.quill.getLine(V.index),ne=l(te,2),ce=ne[0],fe=ne[1],ye=new b.default().retain(V.index+ce.length()-fe-2).retain(1,{"code-block":null}).delete(1);this.quill.updateContents(ye,A.default.sources.USER)}},"embed left":Q(X.keys.LEFT,!1),"embed left shift":Q(X.keys.LEFT,!0),"embed right":Q(X.keys.RIGHT,!1),"embed right shift":Q(X.keys.RIGHT,!0)}};function Q(U,V){var te,ne=U===X.keys.LEFT?"prefix":"suffix";return te={key:U,shiftKey:V,altKey:null},O(te,ne,/^$/),O(te,"handler",function(fe){var ye=fe.index;U===X.keys.RIGHT&&(ye+=fe.length+1);var ke=this.quill.getLeaf(ye),Ae=l(ke,1),Ie=Ae[0];return Ie instanceof C.default.Embed?(U===X.keys.LEFT?V?this.quill.setSelection(fe.index-1,fe.length+1,A.default.sources.USER):this.quill.setSelection(fe.index-1,A.default.sources.USER):V?this.quill.setSelection(fe.index,fe.length+1,A.default.sources.USER):this.quill.setSelection(fe.index+fe.length+1,A.default.sources.USER),!1):!0}),te}function K(U,V){if(!(U.index===0||this.quill.getLength()<=1)){var te=this.quill.getLine(U.index),ne=l(te,1),ce=ne[0],fe={};if(V.offset===0){var ye=this.quill.getLine(U.index-1),ke=l(ye,1),Ae=ke[0];if(Ae!=null&&Ae.length()>1){var Ie=ce.formats(),et=this.quill.getFormat(U.index-1,1);fe=y.default.attributes.diff(Ie,et)||{}}}var He=/[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(V.prefix)?2:1;this.quill.deleteText(U.index-He,He,A.default.sources.USER),Object.keys(fe).length>0&&this.quill.formatLine(U.index-He,He,fe,A.default.sources.USER),this.quill.focus()}}function q(U,V){var te=/^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(V.suffix)?2:1;if(!(U.index>=this.quill.getLength()-te)){var ne={},ce=0,fe=this.quill.getLine(U.index),ye=l(fe,1),ke=ye[0];if(V.offset>=ke.length()-1){var Ae=this.quill.getLine(U.index+1),Ie=l(Ae,1),et=Ie[0];if(et){var He=ke.formats(),ae=this.quill.getFormat(U.index,1);ne=y.default.attributes.diff(He,ae)||{},ce=et.length()}}this.quill.deleteText(U.index,te,A.default.sources.USER),Object.keys(ne).length>0&&this.quill.formatLine(U.index+ce-1,te,ne,A.default.sources.USER)}}function B(U){var V=this.quill.getLines(U),te={};if(V.length>1){var ne=V[0].formats(),ce=V[V.length-1].formats();te=y.default.attributes.diff(ce,ne)||{}}this.quill.deleteText(U,A.default.sources.USER),Object.keys(te).length>0&&this.quill.formatLine(U.index,1,te,A.default.sources.USER),this.quill.setSelection(U.index,A.default.sources.SILENT),this.quill.focus()}function W(U,V){var te=this;U.length>0&&this.quill.scroll.deleteAt(U.index,U.length);var ne=Object.keys(V.format).reduce(function(ce,fe){return C.default.query(fe,C.default.Scope.BLOCK)&&!Array.isArray(V.format[fe])&&(ce[fe]=V.format[fe]),ce},{});this.quill.insertText(U.index,`
358`,ne,A.default.sources.USER),this.quill.setSelection(U.index+1,A.default.sources.SILENT),this.quill.focus(),Object.keys(V.format).forEach(function(ce){ne[ce]==null&&(Array.isArray(V.format[ce])||ce!=="link"&&te.quill.format(ce,V.format[ce],A.default.sources.USER))})}function Y(U){return{key:X.keys.TAB,shiftKey:!U,format:{"code-block":!0},handler:function(te){var ne=C.default.query("code-block"),ce=te.index,fe=te.length,ye=this.quill.scroll.descendant(ne,ce),ke=l(ye,2),Ae=ke[0],Ie=ke[1];if(Ae!=null){var et=this.quill.getIndex(Ae),He=Ae.newlineIndex(Ie,!0)+1,ae=Ae.newlineIndex(et+Ie+fe),de=Ae.domNode.textContent.slice(He,ae).split(`
359`);Ie=0,de.forEach(function(be,we){U?(Ae.insertAt(He+Ie,ne.TAB),Ie+=ne.TAB.length,we===0?ce+=ne.TAB.length:fe+=ne.TAB.length):be.startsWith(ne.TAB)&&(Ae.deleteAt(He+Ie,ne.TAB.length),Ie-=ne.TAB.length,we===0?ce-=ne.TAB.length:fe-=ne.TAB.length),Ie+=be.length+1}),this.quill.update(A.default.sources.USER),this.quill.setSelection(ce,fe,A.default.sources.SILENT)}}}}function ee(U){return{key:U[0].toUpperCase(),shortKey:!0,handler:function(te,ne){this.quill.format(U,!ne.format[U],A.default.sources.USER)}}}function Z(U){if(typeof U=="string"||typeof U=="number")return Z({key:U});if((typeof U>"u"?"undefined":s(U))==="object"&&(U=(0,h.default)(U,!1)),typeof U.key=="string")if(X.keys[U.key.toUpperCase()]!=null)U.key=X.keys[U.key.toUpperCase()];else if(U.key.length===1)U.key=U.key.toUpperCase().charCodeAt(0);else return null;return U.shortKey&&(U[G]=U.shortKey,delete U.shortKey),U}n.default=X,n.SHORTKEY=G}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function y(S,C){var k=[],A=!0,N=!1,D=void 0;try{for(var _=S[Symbol.iterator](),F;!(A=(F=_.next()).done)&&(k.push(F.value),!(C&&k.length===C));A=!0);}catch(M){N=!0,D=M}finally{try{!A&&_.return&&_.return()}finally{if(N)throw D}}return k}return function(S,C){if(Array.isArray(S))return S;if(Symbol.iterator in Object(S))return y(S,C);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),l=function y(S,C,k){S===null&&(S=Function.prototype);var A=Object.getOwnPropertyDescriptor(S,C);if(A===void 0){var N=Object.getPrototypeOf(S);return N===null?void 0:y(N,C,k)}else{if("value"in A)return A.value;var D=A.get;return D===void 0?void 0:D.call(k)}},c=(function(){function y(S,C){for(var k=0;k<C.length;k++){var A=C[k];A.enumerable=A.enumerable||!1,A.configurable=!0,"value"in A&&(A.writable=!0),Object.defineProperty(S,A.key,A)}}return function(S,C,k){return C&&y(S.prototype,C),k&&y(S,k),S}})(),d=o(0),h=p(d),m=o(7),f=p(m);function p(y){return y&&y.__esModule?y:{default:y}}function g(y,S){if(!(y instanceof S))throw new TypeError("Cannot call a class as a function")}function x(y,S){if(!y)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return S&&(typeof S=="object"||typeof S=="function")?S:y}function b(y,S){if(typeof S!="function"&&S!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof S);y.prototype=Object.create(S&&S.prototype,{constructor:{value:y,enumerable:!1,writable:!0,configurable:!0}}),S&&(Object.setPrototypeOf?Object.setPrototypeOf(y,S):y.__proto__=S)}var w=(function(y){b(S,y),c(S,null,[{key:"value",value:function(){}}]);function S(C,k){g(this,S);var A=x(this,(S.__proto__||Object.getPrototypeOf(S)).call(this,C));return A.selection=k,A.textNode=document.createTextNode(S.CONTENTS),A.domNode.appendChild(A.textNode),A._length=0,A}return c(S,[{key:"detach",value:function(){this.parent!=null&&this.parent.removeChild(this)}},{key:"format",value:function(k,A){if(this._length!==0)return l(S.prototype.__proto__||Object.getPrototypeOf(S.prototype),"format",this).call(this,k,A);for(var N=this,D=0;N!=null&&N.statics.scope!==h.default.Scope.BLOCK_BLOT;)D+=N.offset(N.parent),N=N.parent;N!=null&&(this._length=S.CONTENTS.length,N.optimize(),N.formatAt(D,S.CONTENTS.length,k,A),this._length=0)}},{key:"index",value:function(k,A){return k===this.textNode?0:l(S.prototype.__proto__||Object.getPrototypeOf(S.prototype),"index",this).call(this,k,A)}},{key:"length",value:function(){return this._length}},{key:"position",value:function(){return[this.textNode,this.textNode.data.length]}},{key:"remove",value:function(){l(S.prototype.__proto__||Object.getPrototypeOf(S.prototype),"remove",this).call(this),this.parent=null}},{key:"restore",value:function(){if(!(this.selection.composing||this.parent==null)){var k=this.textNode,A=this.selection.getNativeRange(),N=void 0,D=void 0,_=void 0;if(A!=null&&A.start.node===k&&A.end.node===k){var F=[k,A.start.offset,A.end.offset];N=F[0],D=F[1],_=F[2]}for(;this.domNode.lastChild!=null&&this.domNode.lastChild!==this.textNode;)this.domNode.parentNode.insertBefore(this.domNode.lastChild,this.domNode);if(this.textNode.data!==S.CONTENTS){var M=this.textNode.data.split(S.CONTENTS).join("");this.next instanceof f.default?(N=this.next.domNode,this.next.insertAt(0,M),this.textNode.data=S.CONTENTS):(this.textNode.data=M,this.parent.insertBefore(h.default.create(this.textNode),this),this.textNode=document.createTextNode(S.CONTENTS),this.domNode.appendChild(this.textNode))}if(this.remove(),D!=null){var O=[D,_].map(function(I){return Math.max(0,Math.min(N.data.length,I-1))}),j=s(O,2);return D=j[0],_=j[1],{startNode:N,startOffset:D,endNode:N,endOffset:_}}}}},{key:"update",value:function(k,A){var N=this;if(k.some(function(_){return _.type==="characterData"&&_.target===N.textNode})){var D=this.restore();D&&(A.range=D)}}},{key:"value",value:function(){return""}}]),S})(h.default.Embed);w.blotName="cursor",w.className="ql-cursor",w.tagName="span",w.CONTENTS="\uFEFF",n.default=w}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=o(0),l=h(s),c=o(4),d=h(c);function h(x){return x&&x.__esModule?x:{default:x}}function m(x,b){if(!(x instanceof b))throw new TypeError("Cannot call a class as a function")}function f(x,b){if(!x)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return b&&(typeof b=="object"||typeof b=="function")?b:x}function p(x,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof b);x.prototype=Object.create(b&&b.prototype,{constructor:{value:x,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(x,b):x.__proto__=b)}var g=(function(x){p(b,x);function b(){return m(this,b),f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}return b})(l.default.Container);g.allowedChildren=[d.default,c.BlockEmbed,g],n.default=g}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.ColorStyle=n.ColorClass=n.ColorAttributor=void 0;var s=(function(){function w(y,S){for(var C=0;C<S.length;C++){var k=S[C];k.enumerable=k.enumerable||!1,k.configurable=!0,"value"in k&&(k.writable=!0),Object.defineProperty(y,k.key,k)}}return function(y,S,C){return S&&w(y.prototype,S),C&&w(y,C),y}})(),l=function w(y,S,C){y===null&&(y=Function.prototype);var k=Object.getOwnPropertyDescriptor(y,S);if(k===void 0){var A=Object.getPrototypeOf(y);return A===null?void 0:w(A,S,C)}else{if("value"in k)return k.value;var N=k.get;return N===void 0?void 0:N.call(C)}},c=o(0),d=h(c);function h(w){return w&&w.__esModule?w:{default:w}}function m(w,y){if(!(w instanceof y))throw new TypeError("Cannot call a class as a function")}function f(w,y){if(!w)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return y&&(typeof y=="object"||typeof y=="function")?y:w}function p(w,y){if(typeof y!="function"&&y!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof y);w.prototype=Object.create(y&&y.prototype,{constructor:{value:w,enumerable:!1,writable:!0,configurable:!0}}),y&&(Object.setPrototypeOf?Object.setPrototypeOf(w,y):w.__proto__=y)}var g=(function(w){p(y,w);function y(){return m(this,y),f(this,(y.__proto__||Object.getPrototypeOf(y)).apply(this,arguments))}return s(y,[{key:"value",value:function(C){var k=l(y.prototype.__proto__||Object.getPrototypeOf(y.prototype),"value",this).call(this,C);return k.startsWith("rgb(")?(k=k.replace(/^[^\d]+/,"").replace(/[^\d]+$/,""),"#"+k.split(",").map(function(A){return("00"+parseInt(A).toString(16)).slice(-2)}).join("")):k}}]),y})(d.default.Attributor.Style),x=new d.default.Attributor.Class("color","ql-color",{scope:d.default.Scope.INLINE}),b=new g("color","color",{scope:d.default.Scope.INLINE});n.ColorAttributor=g,n.ColorClass=x,n.ColorStyle=b}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.sanitize=n.default=void 0;var s=(function(){function b(w,y){for(var S=0;S<y.length;S++){var C=y[S];C.enumerable=C.enumerable||!1,C.configurable=!0,"value"in C&&(C.writable=!0),Object.defineProperty(w,C.key,C)}}return function(w,y,S){return y&&b(w.prototype,y),S&&b(w,S),w}})(),l=function b(w,y,S){w===null&&(w=Function.prototype);var C=Object.getOwnPropertyDescriptor(w,y);if(C===void 0){var k=Object.getPrototypeOf(w);return k===null?void 0:b(k,y,S)}else{if("value"in C)return C.value;var A=C.get;return A===void 0?void 0:A.call(S)}},c=o(6),d=h(c);function h(b){return b&&b.__esModule?b:{default:b}}function m(b,w){if(!(b instanceof w))throw new TypeError("Cannot call a class as a function")}function f(b,w){if(!b)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return w&&(typeof w=="object"||typeof w=="function")?w:b}function p(b,w){if(typeof w!="function"&&w!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof w);b.prototype=Object.create(w&&w.prototype,{constructor:{value:b,enumerable:!1,writable:!0,configurable:!0}}),w&&(Object.setPrototypeOf?Object.setPrototypeOf(b,w):b.__proto__=w)}var g=(function(b){p(w,b);function w(){return m(this,w),f(this,(w.__proto__||Object.getPrototypeOf(w)).apply(this,arguments))}return s(w,[{key:"format",value:function(S,C){if(S!==this.statics.blotName||!C)return l(w.prototype.__proto__||Object.getPrototypeOf(w.prototype),"format",this).call(this,S,C);C=this.constructor.sanitize(C),this.domNode.setAttribute("href",C)}}],[{key:"create",value:function(S){var C=l(w.__proto__||Object.getPrototypeOf(w),"create",this).call(this,S);return S=this.sanitize(S),C.setAttribute("href",S),C.setAttribute("rel","noopener noreferrer"),C.setAttribute("target","_blank"),C}},{key:"formats",value:function(S){return S.getAttribute("href")}},{key:"sanitize",value:function(S){return x(S,this.PROTOCOL_WHITELIST)?S:this.SANITIZED_URL}}]),w})(d.default);g.blotName="link",g.tagName="A",g.SANITIZED_URL="about:blank",g.PROTOCOL_WHITELIST=["http","https","mailto","tel"];function x(b,w){var y=document.createElement("a");y.href=b;var S=y.href.slice(0,y.href.indexOf(":"));return w.indexOf(S)>-1}n.default=g,n.sanitize=x}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(w){return typeof w}:function(w){return w&&typeof Symbol=="function"&&w.constructor===Symbol&&w!==Symbol.prototype?"symbol":typeof w},l=(function(){function w(y,S){for(var C=0;C<S.length;C++){var k=S[C];k.enumerable=k.enumerable||!1,k.configurable=!0,"value"in k&&(k.writable=!0),Object.defineProperty(y,k.key,k)}}return function(y,S,C){return S&&w(y.prototype,S),C&&w(y,C),y}})(),c=o(23),d=f(c),h=o(107),m=f(h);function f(w){return w&&w.__esModule?w:{default:w}}function p(w,y){if(!(w instanceof y))throw new TypeError("Cannot call a class as a function")}var g=0;function x(w,y){w.setAttribute(y,w.getAttribute(y)!=="true")}var b=(function(){function w(y){var S=this;p(this,w),this.select=y,this.container=document.createElement("span"),this.buildPicker(),this.select.style.display="none",this.select.parentNode.insertBefore(this.container,this.select),this.label.addEventListener("mousedown",function(){S.togglePicker()}),this.label.addEventListener("keydown",function(C){switch(C.keyCode){case d.default.keys.ENTER:S.togglePicker();break;case d.default.keys.ESCAPE:S.escape(),C.preventDefault();break}}),this.select.addEventListener("change",this.update.bind(this))}return l(w,[{key:"togglePicker",value:function(){this.container.classList.toggle("ql-expanded"),x(this.label,"aria-expanded"),x(this.options,"aria-hidden")}},{key:"buildItem",value:function(S){var C=this,k=document.createElement("span");return k.tabIndex="0",k.setAttribute("role","button"),k.classList.add("ql-picker-item"),S.hasAttribute("value")&&k.setAttribute("data-value",S.getAttribute("value")),S.textContent&&k.setAttribute("data-label",S.textContent),k.addEventListener("click",function(){C.selectItem(k,!0)}),k.addEventListener("keydown",function(A){switch(A.keyCode){case d.default.keys.ENTER:C.selectItem(k,!0),A.preventDefault();break;case d.default.keys.ESCAPE:C.escape(),A.preventDefault();break}}),k}},{key:"buildLabel",value:function(){var S=document.createElement("span");return S.classList.add("ql-picker-label"),S.innerHTML=m.default,S.tabIndex="0",S.setAttribute("role","button"),S.setAttribute("aria-expanded","fal
359se"),this.container.appendChild(S),S}},{key:"buildOptions",value:function(){var S=this,C=document.createElement("span");C.classList.add("ql-picker-options"),C.setAttribute("aria-hidden","true"),C.tabIndex="-1",C.id="ql-picker-options-"+g,g+=1,this.label.setAttribute("aria-controls",C.id),this.options=C,[].slice.call(this.select.options).forEach(function(k){var A=S.buildItem(k);C.appendChild(A),k.selected===!0&&S.selectItem(A)}),this.container.appendChild(C)}},{key:"buildPicker",value:function(){var S=this;[].slice.call(this.select.attributes).forEach(function(C){S.container.setAttribute(C.name,C.value)}),this.container.classList.add("ql-picker"),this.label=this.buildLabel(),this.buildOptions()}},{key:"escape",value:function(){var S=this;this.close(),setTimeout(function(){return S.label.focus()},1)}},{key:"close",value:function(){this.container.classList.remove("ql-expanded"),this.label.setAttribute("aria-expanded","false"),this.options.setAttribute("aria-hidden","true")}},{key:"selectItem",value:function(S){var C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,k=this.container.querySelector(".ql-selected");if(S!==k&&(k!=null&&k.classList.remove("ql-selected"),S!=null&&(S.classList.add("ql-selected"),this.select.selectedIndex=[].indexOf.call(S.parentNode.children,S),S.hasAttribute("data-value")?this.label.setAttribute("data-value",S.getAttribute("data-value")):this.label.removeAttribute("data-value"),S.hasAttribute("data-label")?this.label.setAttribute("data-label",S.getAttribute("data-label")):this.label.removeAttribute("data-label"),C))){if(typeof Event=="function")this.select.dispatchEvent(new Event("change"));else if((typeof Event>"u"?"undefined":s(Event))==="object"){var A=document.createEvent("Event");A.initEvent("change",!0,!0),this.select.dispatchEvent(A)}this.close()}}},{key:"update",value:function(){var S=void 0;if(this.select.selectedIndex>-1){var C=this.container.querySelector(".ql-picker-options").children[this.select.selectedIndex];S=this.select.options[this.select.selectedIndex],this.selectItem(C)}else this.selectItem(null);var k=S!=null&&S!==this.select.querySelector("option[selected]");this.label.classList.toggle("ql-active",k)}}]),w})();n.default=b}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=o(0),l=H(s),c=o(5),d=H(c),h=o(4),m=H(h),f=o(16),p=H(f),g=o(25),x=H(g),b=o(24),w=H(b),y=o(35),S=H(y),C=o(6),k=H(C),A=o(22),N=H(A),D=o(7),_=H(D),F=o(55),M=H(F),O=o(42),j=H(O),I=o(23),L=H(I);function H(G){return G&&G.__esModule?G:{default:G}}d.default.register({"blots/block":m.default,"blots/block/embed":h.BlockEmbed,"blots/break":p.default,"blots/container":x.default,"blots/cursor":w.default,"blots/embed":S.default,"blots/inline":k.default,"blots/scroll":N.default,"blots/text":_.default,"modules/clipboard":M.default,"modules/history":j.default,"modules/keyboard":L.default}),l.default.register(m.default,p.default,w.default,k.default,N.default,_.default),n.default=d.default}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=o(1),l=(function(){function c(d){this.domNode=d,this.domNode[s.DATA_KEY]={blot:this}}return Object.defineProperty(c.prototype,"statics",{get:function(){return this.constructor},enumerable:!0,configurable:!0}),c.create=function(d){if(this.tagName==null)throw new s.ParchmentError("Blot definition missing tagName");var h;return Array.isArray(this.tagName)?(typeof d=="string"&&(d=d.toUpperCase(),parseInt(d).toString()===d&&(d=parseInt(d))),typeof d=="number"?h=document.createElement(this.tagName[d-1]):this.tagName.indexOf(d)>-1?h=document.createElement(d):h=document.createElement(this.tagName[0])):h=document.createElement(this.tagName),this.className&&h.classList.add(this.className),h},c.prototype.attach=function(){this.parent!=null&&(this.scroll=this.parent.scroll)},c.prototype.clone=function(){var d=this.domNode.cloneNode(!1);return s.create(d)},c.prototype.detach=function(){this.parent!=null&&this.parent.removeChild(this),delete this.domNode[s.DATA_KEY]},c.prototype.deleteAt=function(d,h){var m=this.isolate(d,h);m.remove()},c.prototype.formatAt=function(d,h,m,f){var p=this.isolate(d,h);if(s.query(m,s.Scope.BLOT)!=null&&f)p.wrap(m,f);else if(s.query(m,s.Scope.ATTRIBUTE)!=null){var g=s.create(this.statics.scope);p.wrap(g),g.format(m,f)}},c.prototype.insertAt=function(d,h,m){var f=m==null?s.create("text",h):s.create(h,m),p=this.split(d);this.parent.insertBefore(f,p)},c.prototype.insertInto=function(d,h){h===void 0&&(h=null),this.parent!=null&&this.parent.children.remove(this);var m=null;
vendor: 94,908 bytes, lines 359-369
359d.children.insertBefore(this,h),h!=null&&(m=h.domNode),(this.domNode.parentNode!=d.domNode||this.domNode.nextSibling!=m)&&d.domNode.insertBefore(this.domNode,m),this.parent=d,this.attach()},c.prototype.isolate=function(d,h){var m=this.split(d);return m.split(h),m},c.prototype.length=function(){return 1},c.prototype.offset=function(d){return d===void 0&&(d=this.parent),this.parent==null||this==d?0:this.parent.children.offset(this)+this.parent.offset(d)},c.prototype.optimize=function(d){this.domNode[s.DATA_KEY]!=null&&delete this.domNode[s.DATA_KEY].mutations},c.prototype.remove=function(){this.domNode.parentNode!=null&&this.domNode.parentNode.removeChild(this.domNode),this.detach()},c.prototype.replace=function(d){d.parent!=null&&(d.parent.insertBefore(this,d.next),d.remove())},c.prototype.replaceWith=function(d,h){var m=typeof d=="string"?s.create(d,h):d;return m.replace(this),m},c.prototype.split=function(d,h){return d===0?this:this.next},c.prototype.update=function(d,h){},c.prototype.wrap=function(d,h){var m=typeof d=="string"?s.create(d,h):d;return this.parent!=null&&this.parent.insertBefore(m,this.next),m.appendChild(this),m},c.blotName="abstract",c})();n.default=l}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=o(12),l=o(32),c=o(33),d=o(1),h=(function(){function m(f){this.attributes={},this.domNode=f,this.build()}return m.prototype.attribute=function(f,p){p?f.add(this.domNode,p)&&(f.value(this.domNode)!=null?this.attributes[f.attrName]=f:delete this.attributes[f.attrName]):(f.remove(this.domNode),delete this.attributes[f.attrName])},m.prototype.build=function(){var f=this;this.attributes={};var p=s.default.keys(this.domNode),g=l.default.keys(this.domNode),x=c.default.keys(this.domNode);p.concat(g).concat(x).forEach(function(b){var w=d.query(b,d.Scope.ATTRIBUTE);w instanceof s.default&&(f.attributes[w.attrName]=w)})},m.prototype.copy=function(f){var p=this;Object.keys(this.attributes).forEach(function(g){var x=p.attributes[g].value(p.domNode);f.format(g,x)})},m.prototype.move=function(f){var p=this;this.copy(f),Object.keys(this.attributes).forEach(function(g){p.attributes[g].remove(p.domNode)}),this.attributes={}},m.prototype.values=function(){var f=this;return Object.keys(this.attributes).reduce(function(p,g){return p[g]=f.attributes[g].value(f.domNode),p},{})},m})();n.default=h}),(function(r,n,o){var s=this&&this.__extends||(function(){var h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,f){m.__proto__=f}||function(m,f){for(var p in f)f.hasOwnProperty(p)&&(m[p]=f[p])};return function(m,f){h(m,f);function p(){this.constructor=m}m.prototype=f===null?Object.create(f):(p.prototype=f.prototype,new p)}})();Object.defineProperty(n,"__esModule",{value:!0});var l=o(12);function c(h,m){var f=h.getAttribute("class")||"";return f.split(/\s+/).filter(function(p){return p.indexOf(m+"-")===0})}var d=(function(h){s(m,h);function m(){return h!==null&&h.apply(this,arguments)||this}return m.keys=function(f){return(f.getAttribute("class")||"").split(/\s+/).map(function(p){return p.split("-").slice(0,-1).join("-")})},m.prototype.add=function(f,p){return this.canAdd(f,p)?(this.remove(f),f.classList.add(this.keyName+"-"+p),!0):!1},m.prototype.remove=function(f){var p=c(f,this.keyName);p.forEach(function(g){f.classList.remove(g)}),f.classList.length===0&&f.removeAttribute("class")},m.prototype.value=function(f){var p=c(f,this.keyName)[0]||"",g=p.slice(this.keyName.length+1);return this.canAdd(f,g)?g:""},m})(l.default);n.default=d}),(function(r,n,o){var s=this&&this.__extends||(function(){var h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,f){m.__proto__=f}||function(m,f){for(var p in f)f.hasOwnProperty(p)&&(m[p]=f[p])};return function(m,f){h(m,f);function p(){this.constructor=m}m.prototype=f===null?Object.create(f):(p.prototype=f.prototype,new p)}})();Object.defineProperty(n,"__esModule",{value:!0});var l=o(12);function c(h){var m=h.split("-"),f=m.slice(1).map(function(p){return p[0].toUpperCase()+p.slice(1)}).join("");return m[0]+f}var d=(function(h){s(m,h);function m(){return h!==null&&h.apply(this,arguments)||this}return m.keys=function(f){return(f.getAttribute("style")||"").split(";").map(function(p){var g=p.split(":");return g[0].trim()})},m.prototype.add=function(f,p){return this.canAdd(f,p)?(f.style[c(this.keyName)]=p,!0):!1},m.prototype.remove=function(f){f.style[c(this.keyName)]="",f.getAttribute("style")||f.removeAttribute("style")},m.prototype.value=function(f){var p=f.style[c(this.keyName)];return this.canAdd(f,p)?p:""},m})(l.default);n.default=d}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function d(h,m){for(var f=0;f<m.length;f++){var p=m[f];p.enumerable=p.enumerable||!1,p.configurable=!0,"value"in p&&(p.writable=!0),Object.defineProperty(h,p.key,p)}}return function(h,m,f){return m&&d(h.prototype,m),f&&d(h,f),h}})();function l(d,h){if(!(d instanceof h))throw new TypeError("Cannot call a class as a function")}var c=(function(){function d(h,m){l(this,d),this.quill=h,this.options=m,this.modules={}}return s(d,[{key:"init",value:function(){var m=this;Object.keys(this.options.modules).forEach(function(f){m.modules[f]==null&&m.addModule(f)})}},{key:"addModule",value:function(m){var f=this.quill.constructor.import("modules/"+m);return this.modules[m]=new f(this.quill,this.options.modules[m]||{}),this.modules[m]}}]),d})();c.DEFAULTS={modules:{}},c.themes={default:c},n.default=c}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function y(S,C){for(var k=0;k<C.length;k++){var A=C[k];A.enumerable=A.enumerable||!1,A.configurable=!0,"value"in A&&(A.writable=!0),Object.defineProperty(S,A.key,A)}}return function(S,C,k){return C&&y(S.prototype,C),k&&y(S,k),S}})(),l=function y(S,C,k){S===null&&(S=Function.prototype);var A=Object.getOwnPropertyDescriptor(S,C);if(A===void 0){var N=Object.getPrototypeOf(S);return N===null?void 0:y(N,C,k)}else{if("value"in A)return A.value;var D=A.get;return D===void 0?void 0:D.call(k)}},c=o(0),d=f(c),h=o(7),m=f(h);function f(y){return y&&y.__esModule?y:{default:y}}function p(y,S){if(!(y instanceof S))throw new TypeError("Cannot call a class as a function")}function g(y,S){if(!y)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return S&&(typeof S=="object"||typeof S=="function")?S:y}function x(y,S){if(typeof S!="function"&&S!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof S);y.prototype=Object.create(S&&S.prototype,{constructor:{value:y,enumerable:!1,writable:!0,configurable:!0}}),S&&(Object.setPrototypeOf?Object.setPrototypeOf(y,S):y.__proto__=S)}var b="\uFEFF",w=(function(y){x(S,y);function S(C){p(this,S);var k=g(this,(S.__proto__||Object.getPrototypeOf(S)).call(this,C));return k.contentNode=document.createElement("span"),k.contentNode.setAttribute("contenteditable",!1),[].slice.call(k.domNode.childNodes).forEach(function(A){k.contentNode.appendChild(A)}),k.leftGuard=document.createTextNode(b),k.rightGuard=document.createTextNode(b),k.domNode.appendChild(k.leftGuard),k.domNode.appendChild(k.contentNode),k.domNode.appendChild(k.rightGuard),k}return s(S,[{key:"index",value:function(k,A){return k===this.leftGuard?0:k===this.rightGuard?1:l(S.prototype.__proto__||Object.getPrototypeOf(S.prototype),"index",this).call(this,k,A)}},{key:"restore",value:function(k){var A=void 0,N=void 0,D=k.data.split(b).join("");if(k===this.leftGuard)if(this.prev instanceof m.default){var _=this.prev.length();this.prev.insertAt(_,D),A={startNode:this.prev.domNode,startOffset:_+D.length}}else N=document.createTextNode(D),this.parent.insertBefore(d.default.create(N),this),A={startNode:N,startOffset:D.length};else k===this.rightGuard&&(this.next instanceof m.default?(this.next.insertAt(0,D),A={startNode:this.next.domNode,startOffset:D.length}):(N=document.createTextNode(D),this.parent.insertBefore(d.default.create(N),this.next),A={startNode:N,startOffset:D.length}));return k.data=b,A}},{key:"update",value:function(k,A){var N=this;k.forEach(function(D){if(D.type==="characterData"&&(D.target===N.leftGuard||D.target===N.rightGuard)){var _=N.restore(D.target);_&&(A.range=_)}})}}]),S})(d.default.Embed);n.default=w}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.AlignStyle=n.AlignClass=n.AlignAttribute=void 0;var s=o(0),l=c(s);function c(p){return p&&p.__esModule?p:{default:p}}var d={scope:l.default.Scope.BLOCK,whitelist:["right","center","justify"]},h=new l.default.Attributor.Attribute("align","align",d),m=new l.default.Attributor.Class("align","ql-align",d),f=new l.default.Attributor.Style("align","text-align",d);n.AlignAttribute=h,n.AlignClass=m,n.AlignStyle=f}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.BackgroundStyle=n.BackgroundClass=void 0;var s=o(0),l=d(s),c=o(26);function d(f){return f&&f.__esModule?f:{default:f}}var h=new l.default.Attributor.Class("background","ql-bg",{scope:l.default.Scope.INLINE}),m=new c.ColorAttributor("background","background-color",{scope:l.default.Scope.INLINE});n.BackgroundClass=h,n.BackgroundStyle=m}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.DirectionStyle=n.DirectionClass=n.DirectionAttribute=void 0;var s=o(0),l=c(s);function c(p){return p&&p.__esModule?p:{default:p}}var d={scope:l.default.Scope.BLOCK,whitelist:["rtl"]},h=new l.default.Attributor.Attribute("direction","dir",d),m=new l.default.Attributor.Class("direction","ql-direction",d),f=new l.default.Attributor.Style("direction","direction",d);n.DirectionAttribute=h,n.DirectionClass=m,n.DirectionStyle=f}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.FontClass=n.FontStyle=void 0;var s=(function(){function y(S,C){for(var k=0;k<C.length;k++){var A=C[k];A.enumerable=A.enumerable||!1,A.configurable=!0,"value"in A&&(A.writable=!0),Object.defineProperty(S,A.key,A)}}return function(S,C,k){return C&&y(S.prototype,C),k&&y(S,k),S}})(),l=function y(S,C,k){S===null&&(S=Function.prototype);var A=Object.getOwnPropertyDescriptor(S,C);if(A===void 0){var N=Object.getPrototypeOf(S);return N===null?void 0:y(N,C,k)}else{if("value"in A)return A.value;var D=A.get;return D===void 0?void 0:D.call(k)}},c=o(0),d=h(c);function h(y){return y&&y.__esModule?y:{default:y}}function m(y,S){if(!(y instanceof S))throw new TypeError("Cannot call a class as a function")}function f(y,S){if(!y)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return S&&(typeof S=="object"||typeof S=="function")?S:y}function p(y,S){if(typeof S!="function"&&S!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof S);y.prototype=Object.create(S&&S.prototype,{constructor:{value:y,enumerable:!1,writable:!0,configurable:!0}}),S&&(Object.setPrototypeOf?Object.setPrototypeOf(y,S):y.__proto__=S)}var g={scope:d.default.Scope.INLINE,whitelist:["serif","monospace"]},x=new d.default.Attributor.Class("font","ql-font",g),b=(function(y){p(S,y);function S(){return m(this,S),f(this,(S.__proto__||Object.getPrototypeOf(S)).apply(this,arguments))}return s(S,[{key:"value",value:function(k){return l(S.prototype.__proto__||Object.getPrototypeOf(S.prototype),"value",this).call(this,k).replace(/["']/g,"")}}]),S})(d.default.Attributor.Style),w=new b("font","font-family",g);n.FontStyle=w,n.FontClass=x}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.SizeStyle=n.SizeClass=void 0;var s=o(0),l=c(s);function c(m){return m&&m.__esModule?m:{default:m}}var d=new l.default.Attributor.Class("size","ql-size",{scope:l.default.Scope.INLINE,whitelist:["small","large","huge"]}),h=new l.default.Attributor.Style("size","font-size",{scope:l.default.Scope.INLINE,whitelist:["10px","18px","32px"]});n.SizeClass=d,n.SizeStyle=h}),(function(r,n,o){r.exports={align:{"":o(76),center:o(77),right:o(78),justify:o(79)},background:o(80),blockquote:o(81),bold:o(82),clean:o(83),code:o(58),"code-block":o(58),color:o(84),direction:{"":o(85),rtl:o(86)},float:{center:o(87),full:o(88),left:o(89),right:o(90)},formula:o(91),header:{1:o(92),2:o(93)},italic:o(94),image:o(95),indent:{"+1":o(96),"-1":o(97)},link:o(98),list:{ordered:o(99),bullet:o(100),check:o(101)},script:{sub:o(102),super:o(103)},strike:o(104),underline:o(105),video:o(106)}}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.getLastChangeIndex=n.default=void 0;var s=(function(){function C(k,A){for(var N=0;N<A.length;N++){var D=A[N];D.enumerable=D.enumerable||!1,D.configurable=!0,"value"in D&&(D.writable=!0),Object.defineProperty(k,D.key,D)}}return function(k,A,N){return A&&C(k.prototype,A),N&&C(k,N),k}})(),l=o(0),c=p(l),d=o(5),h=p(d),m=o(9),f=p(m);function p(C){return C&&C.__esModule?C:{default:C}}function g(C,k){if(!(C instanceof k))throw new TypeError("Cannot call a class as a function")}function x(C,k){if(!C)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return k&&(typeof k=="object"||typeof k=="function")?k:C}function b(C,k){if(typeof k!="function"&&k!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof k);C.prototype=Object.create(k&&k.prototype,{constructor:{value:C,enumerable:!1,writable:!0,configurable:!0}}),k&&(Object.setPrototypeOf?Object.setPrototypeOf(C,k):C.__proto__=k)}var w=(function(C){b(k,C);function k(A,N){g(this,k);var D=x(this,(k.__proto__||Object.getPrototypeOf(k)).call(this,A,N));return D.lastRecorded=0,D.ignoreChange=!1,D.clear(),D.quill.on(h.default.events.EDITOR_CHANGE,function(_,F,M,O){_!==h.default.events.TEXT_CHANGE||D.ignoreChange||(!D.options.userOnly||O===h.default.sources.USER?D.record(F,M):D.transform(F))}),D.quill.keyboard.addBinding({key:"Z",shortKey:!0},D.undo.bind(D)),D.quill.keyboard.addBinding({key:"Z",shortKey:!0,shiftKey:!0},D.redo.bind(D)),/Win/i.test(navigator.platform)&&D.quill.keyboard.addBinding({key:"Y",shortKey:!0},D.redo.bind(D)),D}return s(k,[{key:"change",value:function(N,D){if(this.stack[N].length!==0){var _=this.stack[N].pop();this.stack[D].push(_),this.lastRecorded=0,this.ignoreChange=!0,this.quill.updateContents(_[N],h.default.sources.USER),this.ignoreChange=!1;var F=S(_[N]);this.quill.setSelection(F)}}},{key:"clear",value:function(){this.stack={undo:[],redo:[]}}},{key:"cutoff",value:function(){this.lastRecorded=0}},{key:"record",value:function(N,D){if(N.ops.length!==0){this.stack.redo=[];var _=this.quill.getContents().diff(D),F=Date.now();if(this.lastRecorded+this.options.delay>F&&this.stack.undo.length>0){var M=this.stack.undo.pop();_=_.compose(M.undo),N=M.redo.compose(N)}else this.lastRecorded=F;this.stack.undo.push({redo:N,undo:_}),this.stack.undo.length>this.options.maxStack&&this.stack.undo.shift()}}},{key:"redo",value:function(){this.change("redo","undo")}},{key:"transform",value:function(N){this.stack.undo.forEach(function(D){D.undo=N.transform(D.undo,!0),D.redo=N.transform(D.redo,!0)}),this.stack.redo.forEach(function(D){D.undo=N.transform(D.undo,!0),D.redo=N.transform(D.redo,!0)})}},{key:"undo",value:function(){this.change("undo","redo")}}]),k})(f.default);w.DEFAULTS={delay:1e3,maxStack:100,userOnly:!1};function y(C){var k=C.ops[C.ops.length-1];return k==null?!1:k.insert!=null?typeof k.insert=="string"&&k.insert.endsWith(`
360`):k.attributes!=null?Object.keys(k.attributes).some(function(A){return c.default.query(A,c.default.Scope.BLOCK)!=null}):!1}function S(C){var k=C.reduce(function(N,D){return N+=D.delete||0,N},0),A=C.length()-k;return y(C)&&(A-=1),A}n.default=w,n.getLastChangeIndex=S}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.BaseTooltip=void 0;var s=(function(){function W(Y,ee){for(var Z=0;Z<ee.length;Z++){var U=ee[Z];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(Y,U.key,U)}}return function(Y,ee,Z){return ee&&W(Y.prototype,ee),Z&&W(Y,Z),Y}})(),l=function W(Y,ee,Z){Y===null&&(Y=Function.prototype);var U=Object.getOwnPropertyDescriptor(Y,ee);if(U===void 0){var V=Object.getPrototypeOf(Y);return V===null?void 0:W(V,ee,Z)}else{if("value"in U)return U.value;var te=U.get;return te===void 0?void 0:te.call(Z)}},c=o(3),d=F(c),h=o(2),m=F(h),f=o(8),p=F(f),g=o(23),x=F(g),b=o(34),w=F(b),y=o(59),S=F(y),C=o(60),k=F(C),A=o(28),N=F(A),D=o(61),_=F(D);function F(W){return W&&W.__esModule?W:{default:W}}function M(W,Y){if(!(W instanceof Y))throw new TypeError("Cannot call a class as a function")}function O(W,Y){if(!W)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Y&&(typeof Y=="object"||typeof Y=="function")?Y:W}function j(W,Y){if(typeof Y!="function"&&Y!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof Y);W.prototype=Object.create(Y&&Y.prototype,{constructor:{value:W,enumerable:!1,writable:!0,configurable:!0}}),Y&&(Object.setPrototypeOf?Object.setPrototypeOf(W,Y):W.__proto__=Y)}var I=[!1,"center","right","justify"],L=["#000000","#e60000","#ff9900","#ffff00","#008a00","#0066cc","#9933ff","#ffffff","#facccc","#ffebcc","#ffffcc","#cce8cc","#cce0f5","#ebd6ff","#bbbbbb","#f06666","#ffc266","#ffff66","#66b966","#66a3e0","#c285ff","#888888","#a10000","#b26b00","#b2b200","#006100","#0047b2","#6b24b2","#444444","#5c0000","#663d00","#666600","#003700","#002966","#3d1466"],H=[!1,"serif","monospace"],G=["1","2","3",!1],X=["small",!1,"large","huge"],Q=(function(W){j(Y,W);function Y(ee,Z){M(this,Y);var U=O(this,(Y.__proto__||Object.getPrototypeOf(Y)).call(this,ee,Z)),V=function te(ne){if(!document.body.contains(ee.root))return document.body.removeEventListener("click",te);U.tooltip!=null&&!U.tooltip.root.contains(ne.target)&&document.activeElement!==U.tooltip.textbox&&!U.quill.hasFocus()&&U.tooltip.hide(),U.pickers!=null&&U.pickers.forEach(function(ce){ce.container.contains(ne.target)||ce.close()})};return ee.emitter.listenDOM("click",document.body,V),U}return s(Y,[{key:"addModule",value:function(Z){var U=l(Y.prototype.__proto__||Object.getPrototypeOf(Y.prototype),"addModule",this).call(this,Z);return Z==="toolbar"&&this.extendToolbar(U),U}},{key:"buildButtons",value:function(Z,U){Z.forEach(function(V){var te=V.getAttribute("class")||"";te.split(/\s+/).forEach(function(ne){if(ne.startsWith("ql-")&&(ne=ne.slice(3),U[ne]!=null))if(ne==="direction")V.innerHTML=U[ne][""]+U[ne].rtl;else if(typeof U[ne]=="string")V.innerHTML=U[ne];else{var ce=V.value||"";ce!=null&&U[ne][ce]&&(V.innerHTML=U[ne][ce])}})})}},{key:"buildPickers",value:function(Z,U){var V=this;this.pickers=Z.map(function(ne){if(ne.classList.contains("ql-align"))return ne.querySelector("option")==null&&B(ne,I),new k.default(ne,U.align);if(ne.classList.contains("ql-background")||ne.classList.contains("ql-color")){var ce=ne.classList.contains("ql-background")?"background":"color";return ne.querySelector("option")==null&&B(ne,L,ce==="background"?"#ffffff":"#000000"),new S.default(ne,U[ce])}else return ne.querySelector("option")==null&&(ne.classList.contains("ql-font")?B(ne,H):ne.classList.contains("ql-header")?B(ne,G):ne.classList.contains("ql-size")&&B(ne,X)),new N.default(ne)});var te=function(){V.pickers.forEach(function(ce){ce.update()})};this.quill.on(p.default.events.EDITOR_CHANGE,te)}}]),Y})(w.default);Q.DEFAULTS=(0,d.default)(!0,{},w.default.DEFAULTS,{modules:{toolbar:{handlers:{formula:function(){this.quill.theme.tooltip.edit("formula")},image:function(){var Y=this,ee=this.container.querySelector("input.ql-image[type=file]");ee==null&&(ee=document.createElement("input"),ee.setAttribute("type","file"),ee.setAttribute("accept","image/png, image/gif, image/jpeg, image/bmp, image/x-icon"),ee.classList.add("ql-image"),ee.addEventListener("change",function(){if(ee.files!=null&&ee.files[0]!=null){var Z=new FileReader;Z.onload=function(U){var V=Y.quill.getSelection(!0);Y.quill.updateContents(new m.default().retain(V.index).delete(V.length).insert({image:U.target.result}),p.default.sources.USER),Y.quill.setSelection(V.index+1,p.default.sources.SILENT),ee.value=""},Z.readAsDataURL(ee.files[0])}}),this.container.appendChild(ee)),ee.click()},video:function(){this.quill.theme.tooltip.edit("video")}}}}});var K=(function(W){j(Y,W);function Y(ee,Z){M(this,Y);var U=O(this,(Y.__proto__||Object.getPrototypeOf(Y)).call(this,ee,Z));return U.textbox=U.root.querySelector('input[type="text"]'),U.listen(),U}return s(Y,[{key:"listen",value:function(){var Z=this;this.textbox.addEventListener("keydown",function(U){x.default.match(U,"enter")?(Z.save(),U.preventDefault()):x.default.match(U,"escape")&&(Z.cancel(),U.preventDefault())})}},{key:"cancel",value:function(){this.hide()}},{key:"edit",value:function(){var Z=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"link",U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;this.root.classList.remove("ql-hidden"),this.root.classList.add("ql-editing"),U!=null?this.textbox.value=U:Z!==this.root.getAttribute("data-mode")&&(this.textbox.value=""),this.position(this.quill.getBounds(this.quill.selection.savedRange)),this.textbox.select(),this.textbox.setAttribute("placeholder",this.textbox.getAttribute("data-"+Z)||""),this.root.setAttribute("data-mode",Z)}},{key:"restoreFocus",value:function(){var Z=this.quill.scrollingContainer.scrollTop;this.quill.focus(),this.quill.scrollingContainer.scrollTop=Z}},{key:"save",value:function(){var Z=this.textbox.value;switch(this.root.getAttribute("data-mode")){case"link":{var U=this.quill.root.scrollTop;this.linkRange?(this.quill.formatText(this.linkRange,"link",Z,p.default.sources.USER),delete this.linkRange):(this.restoreFocus(),this.quill.format("link",Z,p.default.sources.USER)),this.quill.root.scrollTop=U;break}case"video":Z=q(Z);case"formula":{if(!Z)break;var V=this.quill.getSelection(!0);if(V!=null){var te=V.index+V.length;this.quill.insertEmbed(te,this.root.getAttribute("data-mode"),Z,p.default.sources.USER),this.root.getAttribute("data-mode")==="formula"&&this.quill.insertText(te+1," ",p.default.sources.USER),this.quill.setSelection(te+2,p.default.sources.USER)}break}}this.textbox.value="",this.hide()}}]),Y})(_.default);function q(W){var Y=W.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtube\.com\/watch.*v=([a-zA-Z0-9_-]+)/)||W.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtu\.be\/([a-zA-Z0-9_-]+)/);return Y?(Y[1]||"https")+"://www.youtube.com/embed/"+Y[2]+"?showinfo=0":(Y=W.match(/^(?:(https?):\/\/)?(?:www\.)?vimeo\.com\/(\d+)/))?(Y[1]||"https")+"://player.vimeo.com/video/"+Y[2]+"/":W}function B(W,Y){var ee=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;Y.forEach(function(Z){var U=document.createElement("option");Z===ee?U.setAttribute("selected","selected"):U.setAttribute("value",Z),W.appendChild(U)})}n.BaseTooltip=K,n.default=Q}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function l(){this.head=this.tail=null,this.length=0}return l.prototype.append=function(){for(var c=[],d=0;d<arguments.length;d++)c[d]=arguments[d];this.insertBefore(c[0],null),c.length>1&&this.append.apply(this,c.slice(1))},l.prototype.contains=function(c){for(var d,h=this.iterator();d=h();)if(d===c)return!0;return!1},l.prototype.insertBefore=function(c,d){c&&(c.next=d,d!=null?(c.prev=d.prev,d.prev!=null&&(d.prev.next=c),d.prev=c,d===this.head&&(this.head=c)):this.tail!=null?(this.tail.next=c,c.prev=this.tail,this.tail=c):(c.prev=null,this.head=this.tail=c),this.length+=1)},l.prototype.offset=function(c){for(var d=0,h=this.head;h!=null;){if(h===c)return d;d+=h.length(),h=h.next}return-1},l.prototype.remove=function(c){this.contains(c)&&(c.prev!=null&&(c.prev.next=c.next),c.next!=null&&(c.next.prev=c.prev),c===this.head&&(this.head=c.next),c===this.tail&&(this.tail=c.prev),this.length-=1)},l.prototype.iterator=function(c){return c===void 0&&(c=this.head),function(){var d=c;return c!=null&&(c=c.next),d}},l.prototype.find=function(c,d){d===void 0&&(d=!1);for(var h,m=this.iterator();h=m();){var f=h.length();if(c<f||d&&c===f&&(h.next==null||h.next.length()!==0))return[h,c];c-=f}return[null,0]},l.prototype.forEach=function(c){for(var d,h=this.iterator();d=h();)c(d)},l.prototype.forEachAt=function(c,d,h){if(!(d<=0))for(var m=this.find(c),f=m[0],p=m[1],g,x=c-p,b=this.iterator(f);(g=b())&&x<c+d;){var w=g.length();c>x?h(g,c-x,Math.min(d,x+w-c)):h(g,0,Math.min(w,c+d-x)),x+=w}},l.prototype.map=function(c){return this.reduce(function(d,h){return d.push(c(h)),d},[])},l.prototype.reduce=function(c,d){for(var h,m=this.iterator();h=m();)d=c(d,h);return d},l})();n.default=s}),(function(r,n,o){var s=this&&this.__extends||(function(){var f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(p,g){p.__proto__=g}||function(p,g){for(var x in g)g.hasOwnProperty(x)&&(p[x]=g[x])};return function(p,g){f(p,g);function x(){this.constructor=p}p.prototype=g===null?Object.create(g):(x.prototype=g.prototype,new x)}})();Object.defineProperty(n,"__esModule",{value:!0});var l=o(17),c=o(1),d={attributes:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0},h=100,m=(function(f){s(p,f);function p(g){var x=f.call(this,g)||this;return x.scroll=x,x.observer=new MutationObserver(function(b){x.update(b)}),x.observer.observe(x.domNode,d),x.attach(),x}return p.prototype.detach=function(){f.prototype.detach.call(this),this.observer.disconnect()},p.prototype.deleteAt=function(g,x){this.update(),g===0&&x===this.length()?this.children.forEach(function(b){b.remove()}):f.prototype.deleteAt.call(this,g,x)},p.prototype.formatAt=function(g,x,b,w){this.update(),f.prototype.formatAt.call(this,g,x,b,w)},p.prototype.insertAt=function(g,x,b){this.update(),f.prototype.insertAt.call(this,g,x,b)},p.prototype.optimize=function(g,x){var b=this;g===void 0&&(g=[]),x===void 0&&(x={}),f.prototype.optimize.call(this,x);for(var w=[].slice.call(this.observer.takeRecords());w.length>0;)g.push(w.pop());for(var y=function(A,N){N===void 0&&(N=!0),!(A==null||A===b)&&A.domNode.parentNode!=null&&(A.domNode[c.DATA_KEY].mutations==null&&(A.domNode[c.DATA_KEY].mutations=[]),N&&y(A.parent))},S=function(A){A.domNode[c.DATA_KEY]==null||A.domNode[c.DATA_KEY].mutations==null||(A instanceof l.default&&A.children.forEach(S),A.optimize(x))},C=g,k=0;C.length>0;k+=1){if(k>=h)throw new Error("[Parchment] Maximum optimize iterations reached");for(C.forEach(function(A){var N=c.find(A.target,!0);N!=null&&(N.domNode===A.target&&(A.type==="childList"?(y(c.find(A.previousSibling,!1)),[].forEach.call(A.addedNodes,function(D){var _=c.find(D,!1);y(_,!1),_ instanceof l.default&&_.children.forEach(function(F){y(F,!1)})})):A.type==="attributes"&&y(N.prev)),y(N))}),this.children.forEach(S),C=[].slice.call(this.observer.takeRecords()),w=C.slice();w.length>0;)g.push(w.pop())}},p.prototype.update=function(g,x){var b=this;x===void 0&&(x={}),g=g||this.observer.takeRecords(),g.map(function(w){var y=c.find(w.target,!0);return y==null?null:y.domNode[c.DATA_KEY].mutations==null?(y.domNode[c.DATA_KEY].mutations=[w],y):(y.domNode[c.DATA_KEY].mutations.push(w),null)}).forEach(function(w){w==null||w===b||w.domNode[c.DATA_KEY]==null||w.update(w.domNode[c.DATA_KEY].mutations||[],x)}),this.domNode[c.DATA_KEY].mutations!=null&&f.prototype.update.call(this,this.domNode[c.DATA_KEY].mutations,x),this.optimize(g,x)},p.blotName="scroll",p.defaultChild="block",p.scope=c.Scope.BLOCK_BLOT,p.tagName="DIV",p})(l.default);n.default=m}),(function(r,n,o){var s=this&&this.__extends||(function(){var m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,p){f.__proto__=p}||function(f,p){for(var g in p)p.hasOwnProperty(g)&&(f[g]=p[g])};return function(f,p){m(f,p);function g(){this.constructor=f}f.prototype=p===null?Object.create(p):(g.prototype=p.prototype,new g)}})();Object.defineProperty(n,"__esModule",{value:!0});var l=o(18),c=o(1);function d(m,f){if(Object.keys(m).length!==Object.keys(f).length)return!1;for(var p in m)if(m[p]!==f[p])return!1;return!0}var h=(function(m){s(f,m);function f(){return m!==null&&m.apply(this,arguments)||this}return f.formats=function(p){if(p.tagName!==f.tagName)return m.formats.call(this,p)},f.prototype.format=function(p,g){var x=this;p===this.statics.blotName&&!g?(this.children.forEach(function(b){b instanceof l.default||(b=b.wrap(f.blotName,!0)),x.attributes.copy(b)}),this.unwrap()):m.prototype.format.call(this,p,g)},f.prototype.formatAt=function(p,g,x,b){if(this.formats()[x]!=null||c.query(x,c.Scope.ATTRIBUTE)){var w=this.isolate(p,g);w.format(x,b)}else m.prototype.formatAt.call(this,p,g,x,b)},f.prototype.optimize=function(p){m.prototype.optimize.call(this,p);var g=this.formats();if(Object.keys(g).length===0)return this.unwrap();var x=this.next;x instanceof f&&x.prev===this&&d(g,x.formats())&&(x.moveChildren(this),x.remove())},f.blotName="inline",f.scope=c.Scope.INLINE_BLOT,f.tagName="SPAN",f})(l.default);n.default=h}),(function(r,n,o){var s=this&&this.__extends||(function(){var h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,f){m.__proto__=f}||function(m,f){for(var p in f)f.hasOwnProperty(p)&&(m[p]=f[p])};return function(m,f){h(m,f);function p(){this.constructor=m}m.prototype=f===null?Object.create(f):(p.prototype=f.prototype,new p)}})();Object.defineProperty(n,"__esModule",{value:!0});var l=o(18),c=o(1),d=(function(h){s(m,h);function m(){return h!==null&&h.apply(this,arguments)||this}return m.formats=function(f){var p=c.query(m.blotName).tagName;if(f.tagName!==p)return h.formats.call(this,f)},m.prototype.format=function(f,p){c.query(f,c.Scope.BLOCK)!=null&&(f===this.statics.blotName&&!p?this.replaceWith(m.blotName):h.prototype.format.call(this,f,p))},m.prototype.formatAt=function(f,p,g,x){c.query(g,c.Scope.BLOCK)!=null?this.format(g,x):h.prototype.formatAt.call(this,f,p,g,x)},m.prototype.insertAt=function(f,p,g){if(g==null||c.query(p,c.Scope.INLINE)!=null)h.prototype.insertAt.call(this,f,p,g);else{var x=this.split(f),b=c.create(p,g);x.parent.insertBefore(b,x)}},m.prototype.update=function(f,p){navigator.userAgent.match(/Trident/)?this.build():h.prototype.update.call(this,f,p)},m.blotName="block",m.scope=c.Scope.BLOCK_BLOT,m.tagName="P",m})(l.default);n.default=d}),(function(r,n,o){var s=this&&this.__extends||(function(){var d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,m){h.__proto__=m}||function(h,m){for(var f in m)m.hasOwnProperty(f)&&(h[f]=m[f])};return function(h,m){d(h,m);function f(){this.constructor=h}h.prototype=m===null?Object.create(m):(f.prototype=m.prototype,new f)}})();Object.defineProperty(n,"__esModule",{value:!0});var l=o(19),c=(function(d){s(h,d);function h(){return d!==null&&d.apply(this,arguments)||this}return h.formats=function(m){},h.prototype.format=function(m,f){d.prototype.formatAt.call(this,0,this.length(),m,f)},h.prototype.formatAt=function(m,f,p,g){m===0&&f===this.length()?this.format(p,g):d.prototype.formatAt.call(this,m,f,p,g)},h.prototype.formats=function(){return this.statics.formats(this.domNode)},h})(l.default);n.default=c}),(function(r,n,o){var s=this&&this.__extends||(function(){var h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,f){m.__proto__=f}||function(m,f){for(var p in f)f.hasOwnProperty(p)&&(m[p]=f[p])};return function(m,f){h(m,f);function p(){this.constructor=m}m.prototype=f===null?Object.create(f):(p.prototype=f.prototype,new p)}})();Object.defineProperty(n,"__esModule",{value:!0});var l=o(19),c=o(1),d=(function(h){s(m,h);function m(f){var p=h.call(this,f)||this;return p.text=p.statics.value(p.domNode),p}return m.create=function(f){return document.createTextNode(f)},m.value=function(f){var p=f.data;return p.normalize&&(p=p.normalize()),p},m.prototype.deleteAt=function(f,p){this.domNode.data=this.text=this.text.slice(0,f)+this.text.slice(f+p)},m.prototype.index=function(f,p){return this.domNode===f?p:-1},m.prototype.insertAt=function(f,p,g){g==null?(this.text=this.text.slice(0,f)+p+this.text.slice(f),this.domNode.data=this.text):h.prototype.insertAt.call(this,f,p,g)},m.prototype.length=function(){return this.text.length},m.prototype.optimize=function(f){h.prototype.optimize.call(this,f),this.text=this.statics.value(this.domNode),this.text.length===0?this.remove():this.next instanceof m&&this.next.prev===this&&(this.insertAt(this.length(),this.next.value()),this.next.remove())},m.prototype.position=function(f,p){return[this.domNode,f]},m.prototype.split=function(f,p){if(p===void 0&&(p=!1),!p){if(f===0)return this;if(f===this.length())return this.next}var g=c.create(this.domNode.splitText(f));return this.parent.insertBefore(g,this.next),this.text=this.statics.value(this.domNode),g},m.prototype.update=function(f,p){var g=this;f.some(function(x){return x.type==="characterData"&&x.target===g.domNode})&&(this.text=this.statics.value(this.domNode))},m.prototype.value=function(){return this.text},m.blotName="text",m.scope=c.Scope.INLINE_BLOT,m})(l.default);n.default=d}),(function(r,n,o){var s=document.createElement("div");if(s.classList.toggle("test-class",!1),s.classList.contains("test-class")){var l=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(c,d){return arguments.length>1&&!this.contains(c)==!d?d:l.call(this,c)}}String.prototype.startsWith||(String.prototype.startsWith=function(c,d){return d=d||0,this.substr(d,c.length)===c}),String.prototype.endsWith||(String.prototype.endsWith=function(c,d){var h=this.toString();(typeof d!="number"||!isFinite(d)||Math.floor(d)!==d||d>h.length)&&(d=h.length),d-=c.length;var m=h.indexOf(c,d);return m!==-1&&m===d}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(d){if(this===null)throw new TypeError("Array.prototype.find called on null or undefined");if(typeof d!="function")throw new TypeError("predicate must be a function");for(var h=Object(this),m=h.length>>>0,f=arguments[1],p,g=0;g<m;g++)if(p=h[g],d.call(f,p,g,h))return p}}),document.addEventListener("DOMContentLoaded",function(){document.execCommand("enableObjectResizing",!1,!1),document.execCommand("autoUrlDetect",!1,!1)})}),(function(r,n){var o=-1,s=1,l=0;function c(k,A,N){if(k==A)return k?[[l,k]]:[];(N<0||k.length<N)&&(N=null);var D=f(k,A),_=k.substring(0,D);k=k.substring(D),A=A.substring(D),D=p(k,A);var F=k.substring(k.length-D);k=k.substring(0,k.length-D),A=A.substring(0,A.length-D);var M=d(k,A);return _&&M.unshift([l,_]),F&&M.push([l,F]),x(M),N!=null&&(M=y(M,N)),M=S(M),M}function d(k,A){var N;if(!k)return[[s,A]];if(!A)return[[o,k]];var D=k.length>A.length?k:A,_=k.length>A.length?A:k,F=D.indexOf(_);if(F!=-1)return N=[[s,D.substring(0,F)],[l,_],[s,D.substring(F+_.length)]],k.length>A.length&&(N[0][0]=N[2][0]=o),N;if(_.length==1)return[[o,k],[s,A]];var M=g(k,A);if(M){var O=M[0],j=M[1],I=M[2],L=M[3],H=M[4],G=c(O,I),X=c(j,L);return G.concat([[l,H]],X)}return h(k,A)}function h(k,A){for(var N=k.length,D=A.length,_=Math.ceil((N+D)/2),F=_,M=2*_,O=new Array(M),j=new Array(M),I=0;I<M;I++)O[I]=-1,j[I]=-1;O[F+1]=0,j[F+1]=0;for(var L=N-D,H=L%2!=0,G=0,X=0,Q=0,K=0,q=0;q<_;q++){for(var B=-q+G;B<=q-X;B+=2){var W=F+B,Y;B==-q||B!=q&&O[W-1]<O[W+1]?Y=O[W+1]:Y=O[W-1]+1;for(var ee=Y-B;Y<N&&ee<D&&k.charAt(Y)==A.charAt(ee);)Y++,ee++;if(O[W]=Y,Y>N)X+=2;else if(ee>D)G+=2;else if(H){var Z=F+L-B;if(Z>=0&&Z<M&&j[Z]!=-1){var U=N-j[Z];if(Y>=U)return m(k,A,Y,ee)}}}for(var V=-q+Q;V<=q-K;V+=2){var Z=F+V,U;V==-q||V!=q&&j[Z-1]<j[Z+1]?U=j[Z+1]:U=j[Z-1]+1;for(var te=U-V;U<N&&te<D&&k.charAt(N-U-1)==A.charAt(D-te-1);)U++,te++;if(j[Z]=U,U>N)K+=2;else if(te>D)Q+=2;else if(!H){var W=F+L-V;if(W>=0&&W<M&&O[W]!=-1){var Y=O[W],ee=F+Y-W;if(U=N-U,Y>=U)return m(k,A,Y,ee)}}}}return[[o,k],[s,A]]}function m(k,A,N,D){var _=k.substring(0,N),F=A.substring(0,D),M=k.substring(N),O=A.substring(D),j=c(_,F),I=c(M,O);return j.concat(I)}function f(k,A){if(!k||!A||k.charAt(0)!=A.charAt(0))return 0;for(var N=0,D=Math.min(k.length,A.length),_=D,F=0;N<_;)k.substring(F,_)==A.substring(F,_)?(N=_,F=N):D=_,_=Math.floor((D-N)/2+N);return _}function p(k,A){if(!k||!A||k.charAt(k.length-1)!=A.charAt(A.length-1))return 0;for(var N=0,D=Math.min(k.length,A.length),_=D,F=0;N<_;)k.substring(k.length-_,k.length-F)==A.substring(A.length-_,A.length-F)?(N=_,F=N):D=_,_=Math.floor((D-N)/2+N);return _}function g(k,A){var N=k.length>A.length?k:A,D=k.length>A.length?A:k;if(N.length<4||D.length*2<N.length)return null;function _(X,Q,K){for(var q=X.substring(K,K+Math.floor(X.length/4)),B=-1,W="",Y,ee,Z,U;(B=Q.indexOf(q,B+1))!=-1;){var V=f(X.substring(K),Q.substring(B)),te=p(X.substring(0,K),Q.substring(0,B));W.length<te+V&&(W=Q.substring(B-te,B)+Q.substring(B,B+V),Y=X.substring(0,K-te),ee=X.substring(K+V),Z=Q.substring(0,B-te),U=Q.substring(B+V))}return W.length*2>=X.length?[Y,ee,Z,U,W]:null}var F=_(N,D,Math.ceil(N.length/4)),M=_(N,D,Math.ceil(N.length/2)),O;if(!F&&!M)return null;M?F?O=F[4].length>M[4].length?F:M:O=M:O=F;var j,I,L,H;k.length>A.length?(j=O[0],I=O[1],L=O[2],H=O[3]):(L=O[0],H=O[1],j=O[2],I=O[3]);var G=O[4];return[j,I,L,H,G]}function x(k){k.push([l,""]);for(var A=0,N=0,D=0,_="",F="",M;A<k.length;)switch(k[A][0]){case s:D++,F+=k[A][1],A++;break;case o:N++,_+=k[A][1],A++;break;case l:N+D>1?(N!==0&&D!==0&&(M=f(F,_),M!==0&&(A-N-D>0&&k[A-N-D-1][0]==l?k[A-N-D-1][1]+=F.substring(0,M):(k.splice(0,0,[l,F.substring(0,M)]),A++),F=F.substring(M),_=_.substring(M)),M=p(F,_),M!==0&&(k[A][1]=F.substring(F.length-M)+k[A][1],F=F.substring(0,F.length-M),_=_.substring(0,_.length-M))),N===0?k.splice(A-D,N+D,[s,F]):D===0?k.splice(A-N,N+D,[o,_]):k.splice(A-N-D,N+D,[o,_],[s,F]),A=A-N-D+(N?1:0)+(D?1:0)+1):A!==0&&k[A-1][0]==l?(k[A-1][1]+=k[A][1],k.splice(A,1)):A++,D=0,N=0,_="",F="";break}k[k.length-1][1]===""&&k.pop();var O=!1;for(A=1;A<k.length-1;)k[A-1][0]==l&&k[A+1][0]==l&&(k[A][1].substring(k[A][1].length-k[A-1][1].length)==k[A-1][1]?(k[A][1]=k[A-1][1]+k[A][1].substring(0,k[A][1].length-k[A-1][1].length),k[A+1][1]=k[A-1][1]+k[A+1][1],k.splice(A-1,1),O=!0):k[A][1].substring(0,k[A+1][1].length)==k[A+1][1]&&(k[A-1][1]+=k[A+1][1],k[A][1]=k[A][1].substring(k[A+1][1].length)+k[A+1][1],k.splice(A+1,1),O=!0)),A++;O&&x(k)}var b=c;b.INSERT=s,b.DELETE=o,b.EQUAL=l,r.exports=b;function w(k,A){if(A===0)return[l,k];for(var N=0,D=0;D<k.length;D++){var _=k[D];if(_[0]===o||_[0]===l){var F=N+_[1].length;if(A===F)return[D+1,k];if(A<F){k=k.slice();var M=A-N,O=[_[0],_[1].slice(0,M)],j=[_[0],_[1].slice(M)];return k.splice(D,1,O,j),[D+1,k]}else N=F}}throw new Error("cursor_pos is out of bounds!")}function y(k,A){var N=w(k,A),D=N[1],_=N[0],F=D[_],M=D[_+1];if(F==null)return k;if(F[0]!==l)return k;if(M!=null&&F[1]+M[1]===M[1]+F[1])return D.splice(_,2,M,F),C(D,_,2);if(M!=null&&M[1].indexOf(F[1])===0){D.splice(_,2,[M[0],F[1]],[0,F[1]]);var O=M[1].slice(F[1].length);return O.length>0&&D.splice(_+2,0,[M[0],O]),C(D,_,3)}else return k}function S(k){for(var A=!1,N=function(M){return M.charCodeAt(0)>=56320&&M.charCodeAt(0)<=57343},D=function(M){return M.charCodeAt(M.length-1)>=55296&&M.charCodeAt(M.length-1)<=56319},_=2;_<k.length;_+=1)k[_-2][0]===l&&D(k[_-2][1])&&k[_-1][0]===o&&N(k[_-1][1])&&k[_][0]===s&&N(k[_][1])&&(A=!0,k[_-1][1]=k[_-2][1].slice(-1)+k[_-1][1],k[_][1]=k[_-2][1].slice(-1)+k[_][1],k[_-2][1]=k[_-2][1].slice(0,-1));if(!A)return k;for(var F=[],_=0;_<k.length;_+=1)k[_][1].length>0&&F.push(k[_]);return F}function C(k,A,N){for(var D=A+N-1;D>=0&&D>=A-1;D--)if(D+1<k.length){var _=k[D],F=k[D+1];_[0]===F[1]&&k.splice(D,2,[_[0],_[1]+F[1]])}return k}}),(function(r,n){n=r.exports=typeof Object.keys=="function"?Object.keys:o,n.shim=o;function o(s){var l=[];for(var c in s)l.push(c);return l}}),(function(r,n){var o=(function(){return Object.prototype.toString.call(arguments)})()=="[object Arguments]";n=r.exports=o?s:l,n.supported=s;function s(c){return Object.prototype.toString.call(c)=="[object Arguments]"}n.unsupported=l;function l(c){return c&&typeof c=="object"&&typeof c.length=="number"&&Object.prototype.hasOwnProperty.call(c,"callee")&&!Object.prototype.propertyIsEnumerable.call(c,"callee")||!1}}),(function(r,n){var o=Object.prototype.hasOwnProperty,s="~";function l(){}Object.create&&(l.prototype=Object.create(null),new l().__proto__||(s=!1));function c(h,m,f){this.fn=h,this.context=m,this.once=f||!1}function d(){this._events=new l,this._eventsCount=0}d.prototype.eventNames=function(){var m=[],f,p;if(this._eventsCount===0)return m;for(p in f=this._events)o.call(f,p)&&m.push(s?p.slice(1):p);return Object.getOwnPropertySymbols?m.concat(Object.getOwnPropertySymbols(f)):m},d.prototype.listeners=function(m,f){var p=s?s+m:m,g=this._events[p];if(f)return!!g;if(!g)return[];if(g.fn)return[g.fn];for(var x=0,b=g.length,w=new Array(b);x<b;x++)w[x]=g[x].fn;return w},d.prototype.emit=function(m,f,p,g,x,b){var w=s?s+m:m;if(!this._events[w])return!1;var y=this._events[w],S=arguments.length,C,k;if(y.fn){switch(y.once&&this.removeListener(m,y.fn,void 0,!0),S){case 1:return y.fn.call(y.context),!0;case 2:return y.fn.call(y.context,f),!0;case 3:return y.fn.call(y.context,f,p),!0;case 4:return y.fn.call(y.context,f,p,g),!0;case 5:return y.fn.call(y.context,f,p,g,x),!0;case 6:return y.fn.call(y.context,f,p,g,x,b),!0}for(k=1,C=new Array(S-1);k<S;k++)C[k-1]=arguments[k];y.fn.apply(y.context,C)}else{var A=y.length,N;for(k=0;k<A;k++)switch(y[k].once&&this.removeListener(m,y[k].fn,void 0,!0),S){case 1:y[k].fn.call(y[k].context);break;case 2:y[k].fn.call(y[k].context,f);break;case 3:y[k].fn.call(y[k].context,f,p);break;case 4:y[k].fn.call(y[k].context,f,p,g);break;default:if(!C)for(N=1,C=new Array(S-1);N<S;N++)C[N-1]=arguments[N];y[k].fn.apply(y[k].context,C)}}return!0},d.prototype.on=function(m,f,p){var g=new c(f,p||this),x=s?s+m:m;return this._events[x]?this._events[x].fn?this._events[x]=[this._events[x],g]:this._events[x].push(g):(this._events[x]=g,this._eventsCount++),this},d.prototype.once=function(m,f,p){var g=new c(f,p||this,!0),x=s?s+m:m;return this._events[x]?this._events[x].fn?this._events[x]=[this._events[x],g]:this._events[x].push(g):(this._events[x]=g,this._eventsCount++),this},d.prototype.removeListener=function(m,f,p,g){var x=s?s+m:m;if(!this._events[x])return this;if(!f)return--this._eventsCount===0?this._events=new l:delete this._events[x],this;var b=this._events[x];if(b.fn)b.fn===f&&(!g||b.once)&&(!p||b.context===p)&&(--this._eventsCount===0?this._events=new l:delete this._events[x]);else{for(var w=0,y=[],S=b.length;w<S;w++)(b[w].fn!==f||g&&!b[w].once||p&&b[w].context!==p)&&y.push(b[w]);y.length?this._events[x]=y.length===1?y[0]:y:--this._eventsCount===0?this._events=new l:delete this._events[x]}return this},d.prototype.removeAllListeners=function(m){var f;return m?(f=s?s+m:m,this._events[f]&&(--this._eventsCount===0?this._events=new l:delete this._events[f])):(this._events=new l,this._eventsCount=0),this},d.prototype.off=d.prototype.removeListener,d.prototype.addListener=d.prototype.on,d.prototype.setMaxListeners=function(){return this},d.prefixed=s,d.EventEmitter=d,typeof r<"u"&&(r.exports=d)}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.matchText=n.matchSpacing=n.matchNewline=n.matchBlot=n.matchAttributor=n.default=void 0;var s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ae){return typeof ae}:function(ae){return ae&&typeof Symbol=="function"&&ae.constructor===Symbol&&ae!==Symbol.prototype?"symbol":typeof ae},l=(function(){function ae(de,be){var we=[],he=!0,Fe=!1,Pe=void 0;try{for(var We=de[Symbol.iterator](),$t;!(he=($t=We.next()).done)&&(we.push($t.value),!(be&&we.length===be));he=!0);}catch(hr){Fe=!0,Pe=hr}finally{try{!he&&We.return&&We.return()}finally{if(Fe)throw Pe}}return we}return function(de,be){if(Array.isArray(de))return de;if(Symbol.iterator in Object(de))return ae(de,be);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),c=(function(){function ae(de,be){for(var we=0;we<be.length;we++){var he=be[we];he.enumerable=he.enumerable||!1,he.configurable=!0,"value"in he&&(he.writable=!0),Object.defineProperty(de,he.key,he)}}return function(de,be,we){return be&&ae(de.prototype,be),we&&ae(de,we),de}})(),d=o(3),h=j(d),m=o(2),f=j(m),p=o(0),g=j(p),x=o(5),b=j(x),w=o(10),y=j(w),S=o(9),C=j(S),k=o(36),A=o(37),N=o(13),D=j(N),_=o(26),F=o(38),M=o(39),O=o(40);function j(ae){return ae&&ae.__esModule?ae:{default:ae}}function I(ae,de,be){return de in ae?Object.defineProperty(ae,de,{value:be,enumerable:!0,configurable:!0,writable:!0}):ae[de]=be,ae}function L(ae,de){if(!(ae instanceof de))throw new TypeError("Cannot call a class as a function")}function H(ae,de){if(!ae)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return de&&(typeof de=="object"||typeof de=="function")?de:ae}function G(ae,de){if(typeof de!="function"&&de!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof de);ae.prototype=Object.create(de&&de.prototype,{constructor:{value:ae,enumerable:!1,writable:!0,configurable:!0}}),de&&(Object.setPrototypeOf?Object.setPrototypeOf(ae,de):ae.__proto__=de)}var X=(0,y.default)("quill:clipboard"),Q="__ql-matcher",K=[[Node.TEXT_NODE,He],[Node.TEXT_NODE,Ae],["br",fe],[Node.ELEMENT_NODE,Ae],[Node.ELEMENT_NODE,ce],[Node.ELEMENT_NODE,Ie],[Node.ELEMENT_NODE,ne],[Node.ELEMENT_NODE,et],["li",ke],["b",te.bind(te,"bold")],["i",te.bind(te,"italic")],["style",ye]],q=[k.AlignAttribute,F.DirectionAttribute].reduce(function(ae,de){return ae[de.keyName]=de,ae},{}),B=[k.AlignStyle,A.BackgroundStyle,_.ColorStyle,F.DirectionStyle,M.FontStyle,O.SizeStyle].reduce(function(ae,de){return ae[de.keyName]=de,ae},{}),W=(function(ae){G(de,ae);function de(be,we){L(this,de);var he=H(this,(de.__proto__||Object.getPrototypeOf(de)).call(this,be,we));return he.quill.root.addEventListener("paste",he.onPaste.bind(he)),he.container=he.quill.addContainer("ql-clipboard"),he.container.setAttribute("contenteditable",!0),he.container.setAttribute("tabindex",-1),he.matchers=[],K.concat(he.options.matchers).forEach(function(Fe){var Pe=l(Fe,2),We=Pe[0],$t=Pe[1];!we.matchVisual&&$t===Ie||he.addMatcher(We,$t)}),he}return c(de,[{key:"addMatcher",value:function(we,he){this.matchers.push([we,he])}},{key:"convert",value:function(we){if(typeof we=="string")return this.container.innerHTML=we.replace(/\>\r?\n +\</g,"><"),this.convert();var he=this.quill.getFormat(this.quill.selection.savedRange.index);if(he[D.default.blotName]){var Fe=this.container.innerText;return this.container.innerHTML="",new f.default().insert(Fe,I({},D.default.blotName,he[D.default.blotName]))}var Pe=this.prepareMatching(),We=l(Pe,2),$t=We[0],hr=We[1],Je=V(this.container,$t,hr);return Z(Je,`
361`)&&Je.ops[Je.ops.length-1].attributes==null&&(Je=Je.compose(new f.default().retain(Je.length()-1).delete(1))),X.log("convert",this.container.innerHTML,Je),this.container.innerHTML="",Je}},{key:"dangerouslyPasteHTML",value:function(we,he){var Fe=arguments.length>2&&arguments[2]!==void 0?arguments[2]:b.default.sources.API;if(typeof we=="string")this.quill.setContents(this.convert(we),he),this.quill.setSelection(0,b.default.sources.SILENT);else{var Pe=this.convert(he);this.quill.updateContents(new f.default().retain(we).concat(Pe),Fe),this.quill.setSelection(we+Pe.length(),b.default.sources.SILENT)}}},{key:"onPaste",value:function(we){var he=this;if(!(we.defaultPrevented||!this.quill.isEnabled())){var Fe=this.quill.getSelection(),Pe=new f.default().retain(Fe.index),We=this.quill.scrollingContainer.scrollTop;this.container.focus(),this.quill.selection.update(b.default.sources.SILENT),setTimeout(function(){Pe=Pe.concat(he.convert()).delete(Fe.length),he.quill.updateContents(Pe,b.default.sources.USER),he.quill.setSelection(Pe.length()-Fe.length,b.default.sources.SILENT),he.quill.scrollingContainer.scrollTop=We,he.quill.focus()},1)}}},{key:"prepareMatching",value:function(){var we=this,he=[],Fe=[];return this.matchers.forEach(function(Pe){var We=l(Pe,2),$t=We[0],hr=We[1];switch($t){case Node.TEXT_NODE:Fe.push(hr);break;case Node.ELEMENT_NODE:he.push(hr);break;default:[].forEach.call(we.container.querySelectorAll($t),function(Je){Je[Q]=Je[Q]||[],Je[Q].push(hr)});break}}),[he,Fe]}}]),de})(C.default);W.DEFAULTS={matchers:[],matchVisual:!0};function Y(ae,de,be){return(typeof de>"u"?"undefined":s(de))==="object"?Object.keys(de).reduce(function(we,he){return Y(we,he,de[he])},ae):ae.reduce(function(we,he){return he.attributes&&he.attributes[de]?we.push(he):we.insert(he.insert,(0,h.default)({},I({},de,be),he.attributes))},new f.default)}function ee(ae){if(ae.nodeType!==Node.ELEMENT_NODE)return{};var de="__ql-computed-style";return ae[de]||(ae[de]=window.getComputedStyle(ae))}function Z(ae,de){for(var be="",we=ae.ops.length-1;we>=0&&be.length<de.length;--we){var he=ae.ops[we];if(typeof he.insert!="string")break;be=he.insert+be}return be.slice(-1*de.length)===de}function U(ae){if(ae.childNodes.length===0)return!1;var de=ee(ae);return["block","list-item"].indexOf(de.display)>-1}function V(ae,de,be){return ae.nodeType===ae.TEXT_NODE?be.reduce(function(we,he){return he(ae,we)},new f.default):ae.nodeType===ae.ELEMENT_NODE?[].reduce.call(ae.childNodes||[],function(we,he){var Fe=V(he,de,be);return he.nodeType===ae.ELEMENT_NODE&&(Fe=de.reduce(function(Pe,We){return We(he,Pe)},Fe),Fe=(he[Q]||[]).reduce(function(Pe,We){return We(he,Pe)},Fe)),we.concat(Fe)},new f.default):new f.default}function te(ae,de,be){return Y(be,ae,!0)}function ne(ae,de){var be=g.default.Attributor.Attribute.keys(ae),we=g.default.Attributor.Class.keys(ae),he=g.default.Attributor.Style.keys(ae),Fe={};return be.concat(we).concat(he).forEach(function(Pe){var We=g.default.query(Pe,g.default.Scope.ATTRIBUTE);We!=null&&(Fe[We.attrName]=We.value(ae),Fe[We.attrName])||(We=q[Pe],We!=null&&(We.attrName===Pe||We.keyName===Pe)&&(Fe[We.attrName]=We.value(ae)||void 0),We=B[Pe],We!=null&&(We.attrName===Pe||We.keyName===Pe)&&(We=B[Pe],Fe[We.attrName]=We.value(ae)||void 0))}),Object.keys(Fe).length>0&&(de=Y(de,Fe)),de}function ce(ae,de){var be=g.default.query(ae);if(be==null)return de;if(be.prototype instanceof g.default.Embed){var we={},he=be.value(ae);he!=null&&(we[be.blotName]=he,de=new f.default().insert(we,be.formats(ae)))}else typeof be.formats=="function"&&(de=Y(de,be.blotName,be.formats(ae)));return de}function fe(ae,de){return Z(de,`
362`)||de.insert(`
363`),de}function ye(){return new f.default}function ke(ae,de){var be=g.default.query(ae);if(be==null||be.blotName!=="list-item"||!Z(de,`
364`))return de;for(var we=-1,he=ae.parentNode;!he.classList.contains("ql-clipboard");)(g.default.query(he)||{}).blotName==="list"&&(we+=1),he=he.parentNode;return we<=0?de:de.compose(new f.default().retain(de.length()-1).retain(1,{indent:we}))}function Ae(ae,de){return Z(de,`
365`)||(U(ae)||de.length()>0&&ae.nextSibling&&U(ae.nextSibling))&&de.insert(`
366`),de}function Ie(ae,de){if(U(ae)&&ae.nextElementSibling!=null&&!Z(de,`
367
368`)){var be=ae.offsetHeight+parseFloat(ee(ae).marginTop)+parseFloat(ee(ae).marginBottom);ae.nextElementSibling.offsetTop>ae.offsetTop+be*1.5&&de.insert(`
369`)}return de}function et(ae,de){var be={},we=ae.style||{};return we.fontStyle&&ee(ae).fontStyle==="italic"&&(be.italic=!0),we.fontWeight&&(ee(ae).fontWeight.startsWith("bold")||parseInt(ee(ae).fontWeight)>=700)&&(be.bold=!0),Object.keys(be).length>0&&(de=Y(de,be)),parseFloat(we.textIndent||0)>0&&(de=new f.default().insert("	").concat(de)),de}function He(ae,de){var be=ae.data;if(ae.parentNode.tagName==="O:P")return de.insert(be.trim());if(be.trim().length===0&&ae.parentNode.classList.contains("ql-clipboard"))return de;if(!ee(ae.parentNode).whiteSpace.startsWith("pre")){var we=function(Fe,Pe){return Pe=Pe.replace(/[^\u00a0]/g,""),Pe.length<1&&Fe?" ":Pe};be=be.replace(/\r\n/g," ").replace(/\n/g," "),be=be.replace(/\s\s+/g,we.bind(we,!0)),(ae.previousSibling==null&&U(ae.parentNode)||ae.previousSibling!=null&&U(ae.previousSibling))&&(be=be.replace(/^\s+/,we.bind(we,!1))),(ae.nextSibling==null&&U(ae.parentNode)||ae.nextSibling!=null&&U(ae.nextSibling))&&(be=be.replace(/\s+$/,we.bind(we,!1)))}return de.insert(be)}n.default=W,n.matchAttributor=ne,n.matchBlot=ce,n.matchNewline=Ae,n.matchSpacing=Ie,n.matchText=He}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function x(b,w){for(var y=0;y<w.length;y++){var S=w[y];S.enumerable=S.enumerable||!1,S.configurable=!0,"value"in S&&(S.writable=!0),Object.defineProperty(b,S.key,S)}}return function(b,w,y){return w&&x(b.prototype,w),y&&x(b,y),b}})(),l=function x(b,w,y){b===null&&(b=Function.prototype);var S=Object.getOwnPropertyDescriptor(b,w);if(S===void 0){var C=Object.getPrototypeOf(b);return C===null?void 0:x(C,w,y)}else{if("value"in S)return S.value;var k=S.get;return k===void 0?void 0:k.call(y)}},c=o(6),d=h(c);function h(x){return x&&x.__esModule?x:{default:x}}function m(x,b){if(!(x instanceof b))throw new TypeError("Cannot call a class as a function")}function f(x,b){if(!x)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return b&&(typeof b=="object"||typeof b=="function")?b:x}function p(x,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof b);x.prototype=Object.create(b&&b.prototype,{constructor:{value:x,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(x,b):x.__proto__=b)}var g=(function(x){p(b,x);function b(){return m(this,b),f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}return s(b,[{key:"optimize",value:function(y){l(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"optimize",this).call(this,y),this.domNode.tagName!==this.statics.tagName[0]&&this.replaceWith(this.statics.blotName)}}],[{key:"create",value:function(){return l(b.__proto__||Object.getPrototypeOf(b),"create",this).call(this)}},{key:"formats",value:function(){return!0}}]),b})(d.default);g.blotName="bold",g.tagName=["STRONG","B"],n.default=g}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.addControls=n.default=void 0;var s=(function(){function O(j,I){var L=[],H=!0,G=!1,X=void 0;try{for(var Q=j[Symbol.iterator](),K;!(H=(K=Q.next()).done)&&(L.push(K.value),!(I&&L.length===I));H=!0);}catch(q){G=!0,X=q}finally{try{!H&&Q.return&&Q.return()}finally{if(G)throw X}}return L}return function(j,I){if(Array.isArray(j))return j;if(Symbol.iterator in Object(j))return O(j,I);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),l=(function(){function O(j,I){for(var L=0;L<I.length;L++){var H=I[L];H.enumerable=H.enumerable||!1,H.configurable=!0,"value"in H&&(H.writable=!0),Object.defineProperty(j,H.key,H)}}return function(j,I,L){return I&&O(j.prototype,I),L&&O(j,L),j}})(),c=o(2),d=y(c),h=o(0),m=y(h),f=o(5),p=y(f),g=o(10),x=y(g),b=o(9),w=y(b);function y(O){return O&&O.__esModule?O:{default:O}}function S(O,j,I){return j in O?Object.defineProperty(O,j,{value:I,enumerable:!0,configurable:!0,writable:!0}):O[j]=I,O}function C(O,j){if(!(O instanceof j))throw new TypeError("Cannot call a class as a function")}function k(O,j){if(!O)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j&&(typeof j=="object"||typeof j=="function")?j:O}function A(O,j){if(typeof j!="function"&&j!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof j);O.prototype=Object.create(j&&j.prototype,{constructor:{value:O,enumerable:!1,writable:!0,configurable:!0}}),j&&(Object.setPrototypeOf?Object.setPrototypeOf(O,j):O.__proto__=j)}var N=(0,x.default)("quill:toolbar"),D=(function(O){A(j,O);function j(I,L){C(this,j);var H=k(this,(j.__proto__||Object.getPrototypeOf(j)).call(this,I,L));if(Array.isArray(H.options.container)){var G=document.createElement("div");F(G,H.options.container),I.container.parentNode.insertBefore(G,I.container),H.container=G}else typeof H.options.container=="string"?H.container=document.querySelector(H.options.container):H.container=H.options.container;if(!(H.container instanceof HTMLElement)){var X;return X=N.error("Container required for toolbar",H.options),k(H,X)}return H.container.classList.add("ql-toolbar"),H.controls=[],H.handlers={},Object.keys(H.options.handlers).forEach(function(Q){H.addHandler(Q,H.options.handlers[Q])}),[].forEach.call(H.container.querySelectorAll("button, select"),function(Q){H.attach(Q)}),H.quill.on(p.default.events.EDITOR_CHANGE,function(Q,K){Q===p.default.events.SELECTION_CHANGE&&H.update(K)}),H.quill.on(p.default.events.SCROLL_OPTIMIZE,function(){var Q=H.quill.selection.getRange(),K=s(Q,1),q=K[0];H.update(q)}),H}return l(j,[{key:"addHandler",value:function(L,H){this.handlers[L]=H}},{key:"attach",value:function(L){var H=this,G=[].find.call(L.classList,function(Q){return Q.indexOf("ql-")===0});if(G){if(G=G.slice(3),L.tagName==="BUTTON"&&L.setAttribute("type","button"),this.handlers[G]==null){if(this.quill.scroll.whitelist!=null&&this.quill.scroll.whitelist[G]==null){N.warn("ignoring attaching to disabled format",G,L);return}if(m.default.query(G)==null){N.warn("ignoring attaching to nonexistent format",G,L);return}}var X=L.tagName==="SELECT"?"change":"click";L.addEventListener(X,function(Q){var K=void 0;if(L.tagName==="SELECT"){if(L.selectedIndex<0)return;var q=L.options[L.selectedIndex];q.hasAttribute("selected")?K=!1:K=q.value||!1}else L.classList.contains("ql-active")?K=!1:K=L.value||!L.hasAttribute("value"),Q.preventDefault();H.quill.focus();var B=H.quill.selection.getRange(),W=s(B,1),Y=W[0];if(H.handlers[G]!=null)H.handlers[G].call(H,K);else if(m.default.query(G).prototype instanceof m.default.Embed){if(K=prompt("Enter "+G),!K)return;H.quill.updateContents(new d.default().retain(Y.index).delete(Y.length).insert(S({},G,K)),p.default.sources.USER)}else H.quill.format(G,K,p.default.sources.USER);H.update(Y)}),this.controls.push([G,L])}}},{key:"update",value:function(L){var H=L==null?{}:this.quill.getFormat(L);this.controls.forEach(function(G){var X=s(G,2),Q=X[0],K=X[1];if(K.tagName==="SELECT"){var q=void 0;if(L==null)q=null;else if(H[Q]==null)q=K.querySelector("option[selected]");else if(!Array.isArray(H[Q])){var B=H[Q];typeof B=="string"&&(B=B.replace(/\"/g,'\\"')),q=K.querySelector('option[value="'+B+'"]')}q==null?(K.value="",K.selectedIndex=-1):q.selected=!0}else if(L==null)K.classList.remove("ql-active");else if(K.hasAttribute("value")){var W=H[Q]===K.getAttribute("value")||H[Q]!=null&&H[Q].toString()===K.getAttribute("value")||H[Q]==null&&!K.getAttribute("value");K.classList.toggle("ql-active",W)}else K.classList.toggle("ql-active",H[Q]!=null)})}}]),j})(w.default);D.DEFAULTS={};function _(O,j,I){var L=document.createElement("button");L.setAttribute("type","button"),L.classList.add("ql-"+j),I!=null&&(L.value=I),O.appendChild(L)}function F(O,j){Array.isArray(j[0])||(j=[j]),j.forEach(function(I){var L=document.createElement("span");L.classList.add("ql-formats"),I.forEach(function(H){if(typeof H=="string")_(L,H);else{var G=Object.keys(H)[0],X=H[G];Array.isArray(X)?M(L,G,X):_(L,G,X)}}),O.appendChild(L)})}function M(O,j,I){var L=document.createElement("select");L.classList.add("ql-"+j),I.forEach(function(H){var G=document.createElement("option");H!==!1?G.setAttribute("value",H):G.setAttribute("selected","selected"),L.appendChild(G)}),O.appendChild(L)}D.DEFAULTS={container:null,handlers:{clean:function(){var j=this,I=this.quill.getSelection();if(I!=null)if(I.length==0){var L=this.quill.getFormat();Object.keys(L).forEach(function(H){m.default.query(H,m.default.Scope.INLINE)!=null&&j.quill.format(H,!1)})}else this.quill.removeFormat(I,p.default.sources.USER)},direction:function(j){var I=this.quill.getFormat().align;j==="rtl"&&I==null?this.quill.format("align","right",p.default.sources.USER):!j&&I==="right"&&this.quill.format("align",!1,p.default.sources.USER),this.quill.format("direction",j,p.default.sources.USER)},indent:function(j){var I=this.quill.getSelection(),L=this.quill.getFormat(I),H=parseInt(L.indent||0);if(j==="+1"||j==="-1"){var G=j==="+1"?1:-1;L.direction==="rtl"&&(G*=-1),this.quill.format("indent",H+G,p.default.sources.USER)}},link:function(j){j===!0&&(j=prompt("Enter link URL:")),this.quill.format("link",j,p.default.sources.USER)},list:function(j){var I=this.quill.getSelection(),L=this.quill.getFormat(I);j==="check"?L.list==="checked"||L.list==="unchecked"?this.quill.format("list",!1,p.default.sources.USER):this.quill.format("list","unchecked",p.default.sources.USER):this.quill.format("list",j,p.default.sources.USER)}}},n.default=D,n.addControls=F}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <polyline class="ql-even ql-stroke" points="5 7 3 9 5 11"></polyline> <polyline class="ql-even ql-stroke" points="13 7 15 9 13 11"></polyline> <line class=ql-stroke x1=10 x2=8 y1=5 y2=13></line> </svg>'}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function x(b,w){for(var y=0;y<w.length;y++){var S=w[y];S.enumerable=S.enumerable||!1,S.configurable=!0,"value"in S&&(S.writable=!0),Object.defineProperty(b,S.key,S)}}return function(b,w,y){return w&&x(b.prototype,w),y&&x(b,y),b}})(),l=function x(b,w,y){b===null&&(b=Function.prototype);var S=Object.getOwnPropertyDescriptor(b,w);if(S===void 0){var C=Object.getPrototypeOf(b);return C===null?void 0:x(C,w,y)}else{if("value"in S)return S.value;var k=S.get;return k===void 0?void 0:k.call(y)}},c=o(28),d=h(c);function h(x){return x&&x.__esModule?x:{default:x}}function m(x,b){if(!(x instanceof b))throw new TypeError("Cannot call a class as a function")}function f(x,b){if(!x)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return b&&(typeof b=="object"||typeof b=="function")?b:x}function p(x,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof b);x.prototype=Object.create(b&&b.prototype,{constructor:{value:x,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(x,b):x.__proto__=b)}var g=(function(x){p(b,x);function b(w,y){m(this,b);var S=f(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,w));return S.label.innerHTML=y,S.container.classList.add("ql-color-picker"),[].slice.call(S.container.querySelectorAll(".ql-picker-item"),0,7).forEach(function(C){C.classList.add("ql-primary")}),S}return s(b,[{key:"buildItem",value:function(y){var S=l(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"buildItem",this).call(this,y);return S.style.backgroundColor=y.getAttribute("value")||"",S}},{key:"selectItem",value:function(y,S){l(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"selectItem",this).call(this,y,S);var C=this.label.querySelector(".ql-color-label"),k=y&&y.getAttribute("data-value")||"";C&&(C.tagName==="line"?C.style.stroke=k:C.style.fill=k)}}]),b})(d.default);n.default=g}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function x(b,w){for(var y=0;y<w.length;y++){var S=w[y];S.enumerable=S.enumerable||!1,S.configurable=!0,"value"in S&&(S.writable=!0),Object.defineProperty(b,S.key,S)}}return function(b,w,y){return w&&x(b.prototype,w),y&&x(b,y),b}})(),l=function x(b,w,y){b===null&&(b=Function.prototype);var S=Object.getOwnPropertyDescriptor(b,w);if(S===void 0){var C=Object.getPrototypeOf(b);return C===null?void 0:x(C,w,y)}else{if("value"in S)return S.value;var k=S.get;return k===void 0?void 0:k.call(y)}},c=o(28),d=h(c);function h(x){return x&&x.__esModule?x:{default:x}}function m(x,b){if(!(x instanceof b))throw new TypeError("Cannot call a class as a function")}function f(x,b){if(!x)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return b&&(typeof b=="object"||typeof b=="function")?b:x}function p(x,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof b);x.prototype=Object.create(b&&b.prototype,{constructor:{value:x,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(x,b):x.__proto__=b)}var g=(function(x){p(b,x);function b(w,y){m(this,b);var S=f(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,w));return S.container.classList.add("ql-icon-picker"),[].forEach.call(S.container.querySelectorAll(".ql-picker-item"),function(C){C.innerHTML=y[C.getAttribute("data-value")||""]}),S.defaultItem=S.container.querySelector(".ql-selected"),S.selectItem(S.defaultItem),S}return s(b,[{key:"selectItem",value:function(y,S){l(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"selectItem",this).call(this,y,S),y=y||this.defaultItem,this.label.innerHTML=y.innerHTML}}]),b})(d.default);n.default=g}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function d(h,m){for(var f=0;f<m.length;f++){var p=m[f];p.enumerable=p.enumerable||!1,p.configurable=!0,"value"in p&&(p.writable=!0),Object.defineProperty(h,p.key,p)}}return function(h,m,f){return m&&d(h.prototype,m),f&&d(h,f),h}})();function l(d,h){if(!(d instanceof h))throw new TypeError("Cannot call a class as a function")}var c=(function(){function d(h,m){var f=this;l(this,d),this.quill=h,this.boundsContainer=m||document.body,this.root=h.addContainer("ql-tooltip"),this.root.innerHTML=this.constructor.TEMPLATE,this.quill.root===this.quill.scrollingContainer&&this.quill.root.addEventListener("scroll",function(){f.root.style.marginTop=-1*f.quill.root.scrollTop+"px"}),this.hide()}return s(d,[{key:"hide",value:function(){this.root.classList.add("ql-hidden")}},{key:"position",value:function(m){var f=m.left+m.width/2-this.root.offsetWidth/2,p=m.bottom+this.quill.root.scrollTop;this.root.style.left=f+"px",this.root.style.top=p+"px",this.root.classList.remove("ql-flip");var g=this.boundsContainer.getBoundingClientRect(),x=this.root.getBoundingClientRect(),b=0;if(x.right>g.right&&(b=g.right-x.right,this.root.style.left=f+b+"px"),x.left<g.left&&(b=g.left-x.left,this.root.style.left=f+b+"px"),x.bottom>g.bottom){var w=x.bottom-x.top,y=m.bottom-m.top+w;this.root.style.top=p-y+"px",this.root.classList.add("ql-flip")}return b}},{key:"show",value:function(){this.root.classList.remove("ql-editing"),this.root.classList.remove("ql-hidden")}}]),d})();n.default=c}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function M(O,j){var I=[],L=!0,H=!1,G=void 0;try{for(var X=O[Symbol.iterator](),Q;!(L=(Q=X.next()).done)&&(I.push(Q.value),!(j&&I.length===j));L=!0);}catch(K){H=!0,G=K}finally{try{!L&&X.return&&X.return()}finally{if(H)throw G}}return I}return function(O,j){if(Array.isArray(O))return O;if(Symbol.iterator in Object(O))return M(O,j);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),l=function M(O,j,I){O===null&&(O=Function.prototype);var L=Object.getOwnPropertyDescriptor(O,j);if(L===void 0){var H=Object.getPrototypeOf(O);return H===null?void 0:M(H,j,I)}else{if("value"in L)return L.value;var G=L.get;return G===void 0?void 0:G.call(I)}},c=(function(){function M(O,j){for(var I=0;I<j.length;I++){var L=j[I];L.enumerable=L.enumerable||!1,L.configurable=!0,"value"in L&&(L.writable=!0),Object.defineProperty(O,L.key,L)}}return function(O,j,I){return j&&M(O.prototype,j),I&&M(O,I),O}})(),d=o(3),h=C(d),m=o(8),f=C(m),p=o(43),g=C(p),x=o(27),b=C(x),w=o(15),y=o(41),S=C(y);function C(M){return M&&M.__esModule?M:{default:M}}function k(M,O){if(!(M instanceof O))throw new TypeError("Cannot call a class as a function")}function A(M,O){if(!M)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return O&&(typeof O=="object"||typeof O=="function")?O:M}function N(M,O){if(typeof O!="function"&&O!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof O);M.prototype=Object.create(O&&O.prototype,{constructor:{value:M,enumerable:!1,writable:!0,configurable:!0}}),O&&(Object.setPrototypeOf?Object.setPrototypeOf(M,O):M.__proto__=O)}var D=[[{header:["1","2","3",!1]}],["bold","italic","underline","link"],[{list:"ordered"},{list:"bullet"}],["clean"]],_=(function(M){N(O,M);function O(j,I){k(this,O),I.modules.toolbar!=null&&I.modules.toolbar.container==null&&(I.modules.toolbar.container=D);var L=A(this,(O.__proto__||Object.getPrototypeOf(O)).call(this,j,I));return L.quill.container.classList.add("ql-snow"),L}return c(O,[{key:"extendToolbar",value:function(I){I.container.classList.add("ql-snow"),this.buildButtons([].slice.call(I.container.querySelectorAll("button")),S.default),this.buildPickers([].slice.call(I.container.querySelectorAll("select")),S.default),this.tooltip=new F(this.quill,this.options.bounds),I.container.querySelector(".ql-link")&&this.quill.keyboard.addBinding({key:"K",shortKey:!0},function(L,H){I.handlers.link.call(I,!H.format.link)})}}]),O})(g.default);_.DEFAULTS=(0,h.default)(!0,{},g.default.DEFAULTS,{modules:{toolbar:{handlers:{link:function(O){if(O){var j=this.quill.getSelection();if(j==null||j.length==0)return;var I=this.quill.getText(j);/^\S+@\S+\.\S+$/.test(I)&&I.indexOf("mailto:")!==0&&(I="mailto:"+I);var L=this.quill.theme.tooltip;L.edit("link",I)}else this.quill.format("link",!1)}}}}});var F=(function(M){N(O,M);function O(j,I){k(this,O);var L=A(this,(O.__proto__||Object.getPrototypeOf(O)).call(this,j,I));return L.preview=L.root.querySelector("a.ql-preview"),L}return c(O,[{key:"listen",value:function(){var I=this;l(O.prototype.__proto__||Object.getPrototypeOf(O.prototype),"listen",this).call(this),this.root.querySelector("a.ql-action").addEventListener("click",function(L){I.root.classList.contains("ql-editing")?I.save():I.edit("link",I.preview.textContent),L.preventDefault()}),this.root.querySelector("a.ql-remove").addEventListener("click",function(L){if(I.linkRange!=null){var H=I.linkRange;I.restoreFocus(),I.quill.formatText(H,"link",!1,f.default.sources.USER),delete I.linkRange}L.preventDefault(),I.hide()}),this.quill.on(f.default.events.SELECTION_CHANGE,function(L,H,G){if(L!=null){if(L.length===0&&G===f.default.sources.USER){var X=I.quill.scroll.descendant(b.default,L.index),Q=s(X,2),K=Q[0],q=Q[1];if(K!=null){I.linkRange=new w.Range(L.index-q,K.length());var B=b.default.formats(K.domNode);I.preview.textContent=B,I.preview.setAttribute("href",B),I.show(),I.position(I.quill.getBounds(I.linkRange));return}}else delete I.linkRange;I.hide()}})}},{key:"show",value:function(){l(O.prototype.__proto__||Object.getPrototypeOf(O.prototype),"show",this).call(this),this.root.removeAttribute("data-mode")}}]),O})(p.BaseTooltip);F.TEMPLATE=['<a class="ql-preview" rel="noopener noreferrer" target="_blank" href="about:blank"></a>','<input type="text" data-formula="e=mc^2" data-link="https://quilljs.com" data-video="Embed URL">','<a class="ql-action"></a>','<a class="ql-remove"></a>'].join(""),n.default=_}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=o(29),l=he(s),c=o(36),d=o(38),h=o(64),m=o(65),f=he(m),p=o(66),g=he(p),x=o(67),b=he(x),w=o(37),y=o(26),S=o(39),C=o(40),k=o(56),A=he(k),N=o(68),D=he(N),_=o(27),F=he(_),M=o(69),O=he(M),j=o(70),I=he(j),L=o(71),H=he(L),G=o(72),X=he(G),Q=o(73),K=he(Q),q=o(13),B=he(q),W=o(74),Y=he(W),ee=o(75),Z=he(ee),U=o(57),V=he(U),te=o(41),ne=he(te),ce=o(28),fe=he(ce),ye=o(59),ke=he(ye),Ae=o(60),Ie=he(Ae),et=o(61),He=he(et),ae=o(108),de=he(ae),be=o(62),we=he(be);function he(Fe){return Fe&&Fe.__esModule?Fe:{default:Fe}}l.default.register({"attributors/attribute/direction":d.DirectionAttribute,"attributors/class/align":c.AlignClass,"attributors/class/background":w.BackgroundClass,"attributors/class/color":y.ColorClass,"attributors/class/direction":d.DirectionClass,"attributors/class/font":S.FontClass,"attributors/class/size":C.SizeClass,"attributors/style/align":c.AlignStyle,"attributors/style/background":w.BackgroundStyle,"attributors/style/color":y.ColorStyle,"attributors/style/direction":d.DirectionStyle,"attributors/style/font":S.FontStyle,"attributors/style/size":C.SizeStyle},!0),l.default.register({"formats/align":c.AlignClass,"formats/direction":d.DirectionClass,"formats/indent":h.IndentClass,"formats/background":w.BackgroundStyle,"formats/color":y.ColorStyle,"formats/font":S.FontClass,"formats/size":C.SizeClass,"formats/blockquote":f.default,"formats/code-block":B.default,"formats/header":g.default,"formats/list":b.default,"formats/bold":A.default,"formats/code":q.Code,"formats/italic":D.default,"formats/link":F.default,"formats/script":O.default,"formats/strike":I.default,"formats/underline":H.default,"formats/image":X.default,"formats/video":K.default,"formats/list/item":x.ListItem,"modules/formula":Y.default,"modules/syntax":Z.default,"modules/toolbar":V.default,"themes/bubble":de.default,"themes/snow":we.default,"ui/icons":ne.default,"ui/picker":fe.default,"ui/icon-picker":Ie.default,"ui/color-picker":ke.default,"ui/tooltip":He.default},!0),n.default=l.default}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.IndentClass=void 0;var s=(function(){function b(w,y){for(var S=0;S<y.length;S++){var C=y[S];C.enumerable=C.enumerable||!1,C.configurable=!0,"value"in C&&(C.writable=!0),Object.defineProperty(w,C.key,C)}}return function(w,y,S){return y&&b(w.prototype,y),S&&b(w,S),w}})(),l=function b(w,y,S){w===null&&(w=Function.prototype);var C=Object.getOwnPropertyDescriptor(w,y);if(C===void 0){var k=Object.getPrototypeOf(w);return k===null?void 0:b(k,y,S)}else{if("value"in C)return C.value;var A=C.get;return A===void 0?void 0:A.call(S)}},c=o(0),d=h(c);function h(b){return b&&b.__esModule?b:{default:b}}function m(b,w){if(!(b instanceof w))throw new TypeError("Cannot call a class as a function")}function f(b,w){if(!b)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return w&&(typeof w=="object"||typeof w=="function")?w:b}function p(b,w){if(typeof w!="function"&&w!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof w);b.prototype=Object.create(w&&w.prototype,{constructor:{value:b,enumerable:!1,writable:!0,configurable:!0}}),w&&(Object.setPrototypeOf?Object.setPrototypeOf(b,w):b.__proto__=w)}var g=(function(b){p(w,b);function w(){return m(this,w),f(this,(w.__proto__||Object.getPrototypeOf(w)).apply(this,arguments))}return s(w,[{key:"add",value:function(S,C){if(C==="+1"||C==="-1"){var k=this.value(S)||0;C=C==="+1"?k+1:k-1}return C===0?(this.remove(S),!0):l(w.prototype.__proto__||Object.getPrototypeOf(w.prototype),"add",this).call(this,S,C)}},{key:"canAdd",value:function(S,C){return l(w.prototype.__proto__||Object.getPrototypeOf(w.prototype),"canAdd",this).call(this,S,C)||l(w.prototype.__proto__||Object.getPrototypeOf(w.prototype),"canAdd",this).call(this,S,parseInt(C))}},{key:"value",value:function(S){return parseInt(l(w.prototype.__proto__||Object.getPrototypeOf(w.prototype),"value",this).call(this,S))||void 0}}]),w})(d.default.Attributor.Class),x=new g("indent","ql-indent",{scope:d.default.Scope.BLOCK,whitelist:[1,2,3,4,5,6,7,8]});n.IndentClass=x}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=o(4),l=c(s);function c(p){return p&&p.__esModule?p:{default:p}}function d(p,g){if(!(p instanceof g))throw new TypeError("Cannot call a class as a function")}function h(p,g){if(!p)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return g&&(typeof g=="object"||typeof g=="function")?g:p}function m(p,g){if(typeof g!="function"&&g!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof g);p.prototype=Object.create(g&&g.prototype,{constructor:{value:p,enumerable:!1,writable:!0,configurable:!0}}),g&&(Object.setPrototypeOf?Object.setPrototypeOf(p,g):p.__proto__=g)}var f=(function(p){m(g,p);function g(){return d(this,g),h(this,(g.__proto__||Object.getPrototypeOf(g)).apply(this,arguments))}return g})(l.default);f.blotName="blockquote",f.tagName="blockquote",n.default=f}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function g(x,b){for(var w=0;w<b.length;w++){var y=b[w];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(x,y.key,y)}}return function(x,b,w){return b&&g(x.prototype,b),w&&g(x,w),x}})(),l=o(4),c=d(l);function d(g){return g&&g.__esModule?g:{default:g}}function h(g,x){if(!(g instanceof x))throw new TypeError("Cannot call a class as a function")}function m(g,x){if(!g)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return x&&(typeof x=="object"||typeof x=="function")?x:g}function f(g,x){if(typeof x!="function"&&x!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof x);g.prototype=Object.create(x&&x.prototype,{constructor:{value:g,enumerable:!1,writable:!0,configurable:!0}}),x&&(Object.setPrototypeOf?Object.setPrototypeOf(g,x):g.__proto__=x)}var p=(function(g){f(x,g);function x(){return h(this,x),m(this,(x.__proto__||Object.getPrototypeOf(x)).apply(this,arguments))}return s(x,null,[{key:"formats",value:function(w){return this.tagName.indexOf(w.tagName)+1}}]),x})(c.default);p.blotName="header",p.tagName=["H1","H2","H3","H4","H5","H6"],n.default=p}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.ListItem=void 0;var s=(function(){function k(A,N){for(var D=0;D<N.length;D++){var _=N[D];_.enumerable=_.enumerable||!1,_.configurable=!0,"value"in _&&(_.writable=!0),Object.defineProperty(A,_.key,_)}}return function(A,N,D){return N&&k(A.prototype,N),D&&k(A,D),A}})(),l=function k(A,N,D){A===null&&(A=Function.prototype);var _=Object.getOwnPropertyDescriptor(A,N);if(_===void 0){var F=Object.getPrototypeOf(A);return F===null?void 0:k(F,N,D)}else{if("value"in _)return _.value;var M=_.get;return M===void 0?void 0:M.call(D)}},c=o(0),d=g(c),h=o(4),m=g(h),f=o(25),p=g(f);function g(k){return k&&k.__esModule?k:{default:k}}function x(k,A,N){return A in k?Object.defineProperty(k,A,{value:N,enumerable:!0,configurable:!0,writable:!0}):k[A]=N,k}function b(k,A){if(!(k instanceof A))throw new TypeError("Cannot call a class as a function")}function w(k,A){if(!k)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return A&&(typeof A=="object"||typeof A=="function")?A:k}function y(k,A){if(typeof A!="function"&&A!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof A);k.prototype=Object.create(A&&A.prototype,{constructor:{value:k,enumerable:!1,writable:!0,configurable:!0}}),A&&(Object.setPrototypeOf?Object.setPrototypeOf(k,A):k.__proto__=A)}var S=(function(k){y(A,k);function A(){return b(this,A),w(this,(A.__proto__||Object.getPrototypeOf(A)).apply(this,arguments))}return s(A,[{key:"format",value:function(D,_){D===C.blotName&&!_?this.replaceWith(d.default.create(this.statics.scope)):l(A.prototype.__proto__||Object.getPrototypeOf(A.prototype),"format",this).call(this,D,_)}},{key:"remove",value:function(){this.prev==null&&this.next==null?this.parent.remove():l(A.prototype.__proto__||Object.getPrototypeOf(A.prototype),"remove",this).call(this)}},{key:"replaceWith",value:function(D,_){return this.parent.isolate(this.offset(this.parent),this.length()),D===this.parent.statics.blotName?(this.parent.replaceWith(D,_),this):(this.parent.unwrap(),l(A.prototype.__proto__||Object.getPrototypeOf(A.prototype),"replaceWith",this).call(this,D,_))}}],[{key:"formats",value:function(D){return D.tagName===this.tagName?void 0:l(A.__proto__||Object.getPrototypeOf(A),"formats",this).call(this,D)}}]),A})(m.default);S.blotName="list-item",S.tagName="LI";var C=(function(k){y(A,k),s(A,null,[{key:"create",value:function(D){var _=D==="ordered"?"OL":"UL",F=l(A.__proto__||Object.getPrototypeOf(A),"create",this).call(this,_);return(D==="checked"||D==="unchecked")&&F.setAttribute("data-checked",D==="checked"),F}},{key:"formats",value:function(D){if(D.tagName==="OL")return"ordered";if(D.tagName==="UL")return D.hasAttribute("data-checked")?D.getAttribute("data-checked")==="true"?"checked":"unchecked":"bullet"}}]);function A(N){b(this,A);var D=w(this,(A.__proto__||Object.getPrototypeOf(A)).call(this,N)),_=function(M){if(M.target.parentNode===N){var O=D.statics.formats(N),j=d.default.find(M.target);O==="checked"?j.format("list","unchecked"):O==="unchecked"&&j.format("list","checked")}};return N.addEventListener("touchstart",_),N.addEventListener("mousedown",_),D}return s(A,[{key:"format",value:function(D,_){this.children.length>0&&this.children.tail.format(D,_)}},{key:"formats",value:function(){return x({},this.statics.blotName,this.statics.formats(this.domNode))}},{key:"insertBefore",value:function(D,_){if(D instanceof S)l(A.prototype.__proto__||Object.getPrototypeOf(A.prototype),"insertBefore",this).call(this,D,_);else{var F=_==null?this.length():_.offset(this),M=this.split(F);M.parent.insertBefore(D,M)}}},{key:"optimize",value:function(D){l(A.prototype.__proto__||Object.getPrototypeOf(A.prototype),"optimize",this).call(this,D);var _=this.next;_!=null&&_.prev===this&&_.statics.blotName===this.statics.blotName&&_.domNode.tagName===this.domNode.tagName&&_.domNode.getAttribute("data-checked")===this.domNode.getAttribute("data-checked")&&(_.moveChildren(this),_.remove())}},{key:"replace",value:function(D){if(D.statics.blotName!==this.statics.blotName){var _=d.default.create(this.statics.defaultChild);D.moveChildren(_),this.appendChild(_)}l(A.prototype.__proto__||Object.getPrototypeOf(A.prototype),"replace",this).call(this,D)}}]),A})(p.default);C.blotName="list",C.scope=d.default.Scope.BLOCK_BLOT,C.tagName=["OL","UL"],C.defaultChild="list-item",C.allowedChildren=[S],n.ListItem=S,n.default=C}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=o(56),l=c(s);function c(p){return p&&p.__esModule?p:{default:p}}function d(p,g){if(!(p instanceof g))throw new TypeError("Cannot call a class as a function")}function h(p,g){if(!p)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return g&&(typeof g=="object"||typeof g=="function")?g:p}function m(p,g){if(typeof g!="function"&&g!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof g);p.prototype=Object.create(g&&g.prototype,{constructor:{value:p,enumerable:!1,writable:!0,configurable:!0}}),g&&(Object.setPrototypeOf?Object.setPrototypeOf(p,g):p.__proto__=g)}var f=(function(p){m(g,p);function g(){return d(this,g),h(this,(g.__proto__||Object.getPrototypeOf(g)).apply(this,arguments))}return g})(l.default);f.blotName="italic",f.tagName=["EM","I"],n.default=f}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function x(b,w){for(var y=0;y<w.length;y++){var S=w[y];S.enumerable=S.enumerable||!1,S.configurable=!0,"value"in S&&(S.writable=!0),Object.defineProperty(b,S.key,S)}}return function(b,w,y){return w&&x(b.prototype,w),y&&x(b,y),b}})(),l=function x(b,w,y){b===null&&(b=Function.prototype);var S=Object.getOwnPropertyDescriptor(b,w);if(S===void 0){var C=Object.getPrototypeOf(b);return C===null?void 0:x(C,w,y)}else{if("value"in S)return S.value;var k=S.get;return k===void 0?void 0:k.call(y)}},c=o(6),d=h(c);function h(x){return x&&x.__esModule?x:{default:x}}function m(x,b){if(!(x instanceof b))throw new TypeError("Cannot call a class as a function")}function f(x,b){if(!x)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return b&&(typeof b=="object"||typeof b=="function")?b:x}function p(x,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof b);x.prototype=Object.create(b&&b.prototype,{constructor:{value:x,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(x,b):x.__proto__=b)}var g=(function(x){p(b,x);function b(){return m(this,b),f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}return s(b,null,[{key:"create",value:function(y){return y==="super"?document.createElement("sup"):y==="sub"?document.createElement("sub"):l(b.__proto__||Object.getPrototypeOf(b),"create",this).call(this,y)}},{key:"formats",value:function(y){if(y.tagName==="SUB")return"sub";if(y.tagName==="SUP")return"super"}}]),b})(d.default);g.blotName="script",g.tagName=["SUB","SUP"],n.default=g}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=o(6),l=c(s);function c(p){return p&&p.__esModule?p:{default:p}}function d(p,g){if(!(p instanceof g))throw new TypeError("Cannot call a class as a function")}function h(p,g){if(!p)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return g&&(typeof g=="object"||typeof g=="function")?g:p}function m(p,g){if(typeof g!="function"&&g!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof g);p.prototype=Object.create(g&&g.prototype,{constructor:{value:p,enumerable:!1,writable:!0,configurable:!0}}),g&&(Object.setPrototypeOf?Object.setPrototypeOf(p,g):p.__proto__=g)}var f=(function(p){m(g,p);function g(){return d(this,g),h(this,(g.__proto__||Object.getPrototypeOf(g)).apply(this,arguments))}return g})(l.default);f.blotName="strike",f.tagName="S",n.default=f}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=o(6),l=c(s);function c(p){return p&&p.__esModule?p:{default:p}}function d(p,g){if(!(p instanceof g))throw new TypeError("Cannot call a class as a function")}function h(p,g){if(!p)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return g&&(typeof g=="object"||typeof g=="function")?g:p}function m(p,g){if(typeof g!="function"&&g!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof g);p.prototype=Object.create(g&&g.prototype,{constructor:{value:p,enumerable:!1,writable:!0,configurable:!0}}),g&&(Object.setPrototypeOf?Object.setPrototypeOf(p,g):p.__proto__=g)}var f=(function(p){m(g,p);function g(){return d(this,g),h(this,(g.__proto__||Object.getPrototypeOf(g)).apply(this,arguments))}return g})(l.default);f.blotName="underline",f.tagName="U",n.default=f}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function w(y,S){for(var C=0;C<S.length;C++){var k=S[C];k.enumerable=k.enumerable||!1,k.configurable=!0,"value"in k&&(k.writable=!0),Object.defineProperty(y,k.key,k)}}return function(y,S,C){return S&&w(y.prototype,S),C&&w(y,C),y}})(),l=function w(y,S,C){y===null&&(y=Function.prototype);var k=Object.getOwnPropertyDescriptor(y,S);if(k===void 0){var A=Object.getPrototypeOf(y);return A===null?void 0:w(A,S,C)}else{if("value"in k)return k.value;var N=k.get;return N===void 0?void 0:N.call(C)}},c=o(0),d=m(c),h=o(27);function m(w){return w&&w.__esModule?w:{default:w}}function f(w,y){if(!(w instanceof y))throw new TypeError("Cannot call a class as a function")}function p(w,y){if(!w)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return y&&(typeof y=="object"||typeof y=="function")?y:w}function g(w,y){if(typeof y!="function"&&y!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof y);w.prototype=Object.create(y&&y.prototype,{constructor:{value:w,enumerable:!1,writable:!0,configurable:!0}}),y&&(Object.setPrototypeOf?Object.setPrototypeOf(w,y):w.__proto__=y)}var x=["alt","height","width"],b=(function(w){g(y,w);function y(){return f(this,y),p(this,(y.__proto__||Object.getPrototypeOf(y)).apply(this,arguments))}return s(y,[{key:"format",value:function(C,k){x.indexOf(C)>-1?k?this.domNode.setAttribute(C,k):this.domNode.removeAttribute(C):l(y.prototype.__proto__||Object.getPrototypeOf(y.prototype),"format",this).call(this,C,k)}}],[{key:"create",value:function(C){var k=l(y.__proto__||Object.getPrototypeOf(y),"create",this).call(this,C);return typeof C=="string"&&k.setAttribute("src",this.sanitize(C)),k}},{key:"formats",value:function(C){return x.reduce(function(k,A){return C.hasAttribute(A)&&(k[A]=C.getAttribute(A)),k},{})}},{key:"match",value:function(C){return/\.(jpe?g|gif|png)$/.test(C)||/^data:image\/.+;base64/.test(C)}},{key:"sanitize",value:function(C){return(0,h.sanitize)(C,["http","https","data"])?C:"//:0"}},{key:"value",value:function(C){return C.getAttribute("src")}}]),y})(d.default.Embed);b.blotName="image",b.tagName="IMG",n.default=b}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0});var s=(function(){function w(y,S){for(var C=0;C<S.length;C++){var k=S[C];k.enumerable=k.enumerable||!1,k.configurable=!0,"value"in k&&(k.writable=!0),Object.defineProperty(y,k.key,k)}}return function(y,S,C){return S&&w(y.prototype,S),C&&w(y,C),y}})(),l=function w(y,S,C){y===null&&(y=Function.prototype);var k=Object.getOwnPropertyDescriptor(y,S);if(k===void 0){var A=Object.getPrototypeOf(y);return A===null?void 0:w(A,S,C)}else{if("value"in k)return k.value;var N=k.get;return N===void 0?void 0:N.call(C)}},c=o(4),d=o(27),h=m(d);function m(w){return w&&w.__esModule?w:{default:w}}function f(w,y){if(!(w instanceof y))throw new TypeError("Cannot call a class as a function")}function p(w,y){if(!w)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return y&&(typeof y=="object"||typeof y=="function")?y:w}function g(w,y){if(typeof y!="function"&&y!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof y);w.prototype=Object.create(y&&y.prototype,{constructor:{value:w,enumerable:!1,writable:!0,configurable:!0}}),y&&(Object.setPrototypeOf?Object.setPrototypeOf(w,y):w.__proto__=y)}var x=["height","width"],b=(function(w){g(y,w);function y(){return f(this,y),p(this,(y.__proto__||Object.getPrototypeOf(y)).apply(this,arguments))}return s(y,[{key:"format",value:function(C,k){x.indexOf(C)>-1?k?this.domNode.setAttribute(C,k):this.domNode.removeAttribute(C):l(y.prototype.__proto__||Object.getPrototypeOf(y.prototype),"format",this).call(this,C,k)}}],[{key:"create",value:function(C){var k=l(y.__proto__||Object.getPrototypeOf(y),"create",this).call(this,C);return k.setAttribute("frameborder","0"),k.setAttribute("allowfullscreen",!0),k.setAttribute("src",this.sanitize(C)),k}},{key:"formats",value:function(C){return x.reduce(function(k,A){return C.hasAttribute(A)&&(k[A]=C.getAttribute(A)),k},{})}},{key:"sanitize",value:function(C){return h.default.sanitize(C)}},{key:"value",value:function(C){return C.getAttribute("src")}}]),y})(c.BlockEmbed);b.blotName="video",b.className="ql-video",b.tagName="IFRAME",n.default=b}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.FormulaBlot=void 0;var s=(function(){function C(k,A){for(var N=0;N<A.length;N++){var D=A[N];D.enumerable=D.enumerable||!1,D.configurable=!0,"value"in D&&(D.writable=!0),Object.defineProperty(k,D.key,D)}}return function(k,A,N){return A&&C(k.prototype,A),N&&C(k,N),k}})(),l=function C(k,A,N){k===null&&(k=Function.prototype);var D=Object.getOwnPropertyDescriptor(k,A);if(D===void 0){var _=Object.getPrototypeOf(k);return _===null?void 0:C(_,A,N)}else{if("value"in D)return D.value;var F=D.get;return F===void 0?void 0:F.call(N)}},c=o(35),d=g(c),h=o(5),m=g(h),f=o(9),p=g(f);function g(C){return C&&C.__esModule?C:{default:C}}function x(C,k){if(!(C instanceof k))throw new TypeError("Cannot call a class as a function")}function b(C,k){if(!C)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return k&&(typeof k=="object"||typeof k=="function")?k:C}function w(C,k){if(typeof k!="function"&&k!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof k);C.prototype=Object.create(k&&k.prototype,{constructor:{value:C,enumerable:!1,writable:!0,configurable:!0}}),k&&(Object.setPrototypeOf?Object.setPrototypeOf(C,k):C.__proto__=k)}var y=(function(C){w(k,C);function k(){return x(this,k),b(this,(k.__proto__||Object.getPrototypeOf(k)).apply(this,arguments))}return s(k,null,[{key:"create",value:function(N){var D=l(k.__proto__||Object.getPrototypeOf(k),"create",this).call(this,N);return typeof N=="string"&&(window.katex.render(N,D,{throwOnError:!1,errorColor:"#f00"}),D.setAttribute("data-value",N)),D}},{key:"value",value:function(N){return N.getAttribute("data-value")}}]),k})(d.default);y.blotName="formula",y.className="ql-formula",y.tagName="SPAN";var S=(function(C){w(k,C),s(k,null,[{key:"register",value:function(){m.default.register(y,!0)}}]);function k(){x(this,k);var A=b(this,(k.__proto__||Object.getPrototypeOf(k)).call(this));if(window.katex==null)throw new Error("Formula module requires KaTeX.");return A}return k})(p.default);n.FormulaBlot=y,n.default=S}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.CodeToken=n.CodeBlock=void 0;var s=(function(){function N(D,_){for(var F=0;F<_.length;F++){var M=_[F];M.enumerable=M.enumerable||!1,M.configurable=!0,"value"in M&&(M.writable=!0),Object.defineProperty(D,M.key,M)}}return function(D,_,F){return _&&N(D.prototype,_),F&&N(D,F),D}})(),l=function N(D,_,F){D===null&&(D=Function.prototype);var M=Object.getOwnPropertyDescriptor(D,_);if(M===void 0){var O=Object.getPrototypeOf(D);return O===null?void 0:N(O,_,F)}else{if("value"in M)return M.value;var j=M.get;return j===void 0?void 0:j.call(F)}},c=o(0),d=b(c),h=o(5),m=b(h),f=o(9),p=b(f),g=o(13),x=b(g);function b(N){return N&&N.__esModule?N:{default:N}}function w(N,D){if(!(N instanceof D))throw new TypeError("Cannot call a class as a function")}function y(N,D){if(!N)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return D&&(typeof D=="object"||typeof D=="function")?D:N}function S(N,D){if(typeof D!="function"&&D!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof D);N.prototype=Object.create(D&&D.prototype,{constructor:{value:N,enumerable:!1,writable:!0,configurable:!0}}),D&&(Object.setPrototypeOf?Object.setPrototypeOf(N,D):N.__proto__=D)}var C=(function(N){S(D,N);function D(){return w(this,D),y(this,(D.__proto__||Object.getPrototypeOf(D)).apply(this,arguments))}return s(D,[{key:"replaceWith",value:function(F){this.domNode.textContent=this.domNode.textContent,this.attach(),l(D.prototype.__proto__||Object.getPrototypeOf(D.prototype),"replaceWith",this).call(this,F)}},{key:"highlight",value:function(F){var M=this.domNode.textContent;this.cachedText!==M&&((M.trim().length>0||this.cachedText==null)&&(this.domNode.innerHTML=F(M),this.domNode.normalize(),this.attach()),this.cachedText=M)}}]),D})(x.default);C.className="ql-syntax";var k=new d.default.Attributor.Class("token","hljs",{scope:d.default.Scope.INLINE}),A=(function(N){S(D,N),s(D,null,[{key:"register",value:function(){m.default.register(k,!0),m.default.register(C,!0)}}]);function D(_,F){w(this,D);var M=y(this,(D.__proto__||Object.getPrototypeOf(D)).call(this,_,F));if(typeof M.options.highlight!="function")throw new Error("Syntax module requires highlight.js. Please include the library on the page before Quill.");var O=null;return M.quill.on(m.default.events.SCROLL_OPTIMIZE,function(){clearTimeout(O),O=setTimeout(function(){M.highlight(),O=null},M.options.interval)}),M.highlight(),M}return s(D,[{key:"highlight",value:function(){var F=this;if(!this.quill.selection.composing){this.quill.update(m.default.sources.USER);var M=this.quill.getSelection();
369this.quill.scroll.descendants(C).forEach(function(O){O.highlight(F.options.highlight)}),this.quill.update(m.default.sources.SILENT),M!=null&&this.quill.setSelection(M,m.default.sources.SILENT)}}}]),D})(p.default);A.DEFAULTS={highlight:(function(){return window.hljs==null?null:function(N){var D=window.hljs.highlightAuto(N);return D.value}})(),interval:1e3},n.CodeBlock=C,n.CodeToken=k,n.default=A}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=3 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=13 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=9 y1=4 y2=4></line> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=14 x2=4 y1=14 y2=14></line> <line class=ql-stroke x1=12 x2=6 y1=4 y2=4></line> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=5 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=9 y1=4 y2=4></line> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=3 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=3 y1=4 y2=4></line> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <g class="ql-fill ql-color-label"> <polygon points="6 6.868 6 6 5 6 5 7 5.942 7 6 6.868"></polygon> <rect height=1 width=1 x=4 y=4></rect> <polygon points="6.817 5 6 5 6 6 6.38 6 6.817 5"></polygon> <rect height=1 width=1 x=2 y=6></rect> <rect height=1 width=1 x=3 y=5></rect> <rect height=1 width=1 x=4 y=7></rect> <polygon points="4 11.439 4 11 3 11 3 12 3.755 12 4 11.439"></polygon> <rect height=1 width=1 x=2 y=12></rect> <rect height=1 width=1 x=2 y=9></rect> <rect height=1 width=1 x=2 y=15></rect> <polygon points="4.63 10 4 10 4 11 4.192 11 4.63 10"></polygon> <rect height=1 width=1 x=3 y=8></rect> <path d=M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z></path> <path d=M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z></path> <path d=M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z></path> <rect height=1 width=1 x=12 y=2></rect> <rect height=1 width=1 x=11 y=3></rect> <path d=M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z></path> <rect height=1 width=1 x=2 y=3></rect> <rect height=1 width=1 x=6 y=2></rect> <rect height=1 width=1 x=3 y=2></rect> <rect height=1 width=1 x=5 y=3></rect> <rect height=1 width=1 x=9 y=2></rect> <rect height=1 width=1 x=15 y=14></rect> <polygon points="13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174"></polygon> <rect height=1 width=1 x=13 y=7></rect> <rect height=1 width=1 x=15 y=5></rect> <rect height=1 width=1 x=14 y=6></rect> <rect height=1 width=1 x=15 y=8></rect> <rect height=1 width=1 x=14 y=9></rect> <path d=M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z></path> <rect height=1 width=1 x=14 y=3></rect> <polygon points="12 6.868 12 6 11.62 6 12 6.868"></polygon> <rect height=1 width=1 x=15 y=2></rect> <rect height=1 width=1 x=12 y=5></rect> <rect height=1 width=1 x=13 y=4></rect> <polygon points="12.933 9 13 9 13 8 12.495 8 12.933 9"></polygon> <rect height=1 width=1 x=9 y=14></rect> <rect height=1 width=1 x=8 y=15></rect> <path d=M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z></path> <rect height=1 width=1 x=5 y=15></rect> <path d=M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z></path> <rect height=1 width=1 x=11 y=15></rect> <path d=M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z></path> <rect height=1 width=1 x=14 y=15></rect> <rect height=1 width=1 x=15 y=11></rect> </g> <polyline class=ql-stroke points="5.5 13 9 5 12.5 13"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=11 y2=11></line> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <rect class="ql-fill ql-stroke" height=3 width=3 x=4 y=5></rect> <rect class="ql-fill ql-stroke" height=3 width=3 x=11 y=5></rect> <path class="ql-even ql-fill ql-stroke" d=M7,8c0,4.031-3,5-3,5></path> <path class="ql-even ql-fill ql-stroke" d=M14,8c0,4.031-3,5-3,5></path> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <path class=ql-stroke d=M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z></path> <path class=ql-stroke d=M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z></path> </svg>'}),(function(r,n){r.exports='<svg class="" viewbox="0 0 18 18"> <line class=ql-stroke x1=5 x2=13 y1=3 y2=3></line> <line class=ql-stroke x1=6 x2=9.35 y1=12 y2=3></line> <line class=ql-stroke x1=11 x2=15 y1=11 y2=15></line>
369 <line class=ql-stroke x1=15 x2=11 y1=11 y2=15></line> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=7 x=2 y=14></rect> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <line class="ql-color-label ql-stroke ql-transparent" x1=3 x2=15 y1=15 y2=15></line> <polyline class=ql-stroke points="5.5 11 9 3 12.5 11"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=9 y2=9></line> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <polygon class="ql-stroke ql-fill" points="3 11 5 9 3 7 3 11"></polygon> <line class="ql-stroke ql-fill" x1=15 x2=11 y1=4 y2=4></line> <path class=ql-fill d=M11,3a3,3,0,0,0,0,6h1V3H11Z></path> <rect class=ql-fill height=11 width=1 x=11 y=4></rect> <rect class=ql-fill height=11 width=1 x=13 y=4></rect> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <polygon class="ql-stroke ql-fill" points="15 12 13 10 15 8 15 12"></polygon> <line class="ql-stroke ql-fill" x1=9 x2=5 y1=4 y2=4></line> <path class=ql-fill d=M5,3A3,3,0,0,0,5,9H6V3H5Z></path> <rect class=ql-fill height=11 width=1 x=5 y=4></rect> <rect class=ql-fill height=11 width=1 x=7 y=4></rect> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <path class=ql-fill d=M14,16H4a1,1,0,0,1,0-2H14A1,1,0,0,1,14,16Z /> <path class=ql-fill d=M14,4H4A1,1,0,0,1,4,2H14A1,1,0,0,1,14,4Z /> <rect class=ql-fill x=3 y=6 width=12 height=6 rx=1 ry=1 /> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <path class=ql-fill d=M13,16H5a1,1,0,0,1,0-2h8A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H5A1,1,0,0,1,5,2h8A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=2 y=6 width=14 height=6 rx=1 ry=1 /> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <path class=ql-fill d=M15,8H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,8Z /> <path class=ql-fill d=M15,12H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,12Z /> <path class=ql-fill d=M15,16H5a1,1,0,0,1,0-2H15A1,1,0,0,1,15,16Z /> <path class=ql-fill d=M15,4H5A1,1,0,0,1,5,2H15A1,1,0,0,1,15,4Z /> <rect class=ql-fill x=2 y=6 width=8 height=6 rx=1 ry=1 /> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <path class=ql-fill d=M5,8H3A1,1,0,0,1,3,6H5A1,1,0,0,1,5,8Z /> <path class=ql-fill d=M5,12H3a1,1,0,0,1,0-2H5A1,1,0,0,1,5,12Z /> <path class=ql-fill d=M13,16H3a1,1,0,0,1,0-2H13A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H3A1,1,0,0,1,3,2H13A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=8 y=6 width=8 height=6 rx=1 ry=1 transform="translate(24 18) rotate(-180)"/> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <path class=ql-fill d=M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z></path> <rect class=ql-fill height=1.6 rx=0.8 ry=0.8 width=5 x=5.15 y=6.2></rect> <path class=ql-fill d=M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z></path> </svg>'}),(function(r,n){r.exports='<svg viewBox="0 0 18 18"> <path class=ql-fill d=M10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Zm6.06787,9.209H14.98975V7.59863a.54085.54085,0,0,0-.605-.60547h-.62744a1.01119,1.01119,0,0,0-.748.29688L11.645,8.56641a.5435.5435,0,0,0-.022.8584l.28613.30762a.53861.53861,0,0,0,.84717.0332l.09912-.08789a1.2137,1.2137,0,0,0,.2417-.35254h.02246s-.01123.30859-.01123.60547V13.209H12.041a.54085.54085,0,0,0-.605.60547v.43945a.54085.54085,0,0,0,.605.60547h4.02686a.54085.54085,0,0,0,.605-.60547v-.43945A.54085.54085,0,0,0,16.06787,13.209Z /> </svg>'}),(function(r,n){r.exports='<svg viewBox="0 0 18 18"> <path class=ql-fill d=M16.73975,13.81445v.43945a.54085.54085,0,0,1-.605.60547H11.855a.58392.58392,0,0,1-.64893-.60547V14.0127c0-2.90527,3.39941-3.42187,3.39941-4.55469a.77675.77675,0,0,0-.84717-.78125,1.17684,1.17684,0,0,0-.83594.38477c-.2749.26367-.561.374-.85791.13184l-.4292-.34082c-.30811-.24219-.38525-.51758-.1543-.81445a2.97155,2.97155,0,0,1,2.45361-1.17676,2.45393,2.45393,0,0,1,2.68408,2.40918c0,2.45312-3.1792,2.92676-3.27832,3.93848h2.79443A.54085.54085,0,0,1,16.73975,13.81445ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z /> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=7 x2=13 y1=4 y2=4></line> <line class=ql-stroke x1=5 x2=11 y1=14 y2=14></line> <line class=ql-stroke x1=8 x2=10 y1=14 y2=4></line> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <rect class=ql-stroke height=10 width=12 x=3 y=4></rect> <circle class=ql-fill cx=6 cy=7 r=1></circle> <polyline class="ql-even ql-fill" points="5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12"></polyline> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class="ql-fill ql-stroke" points="3 7 3 11 5 9 3 7"></polyline> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points="5 7 5 11 3 9 5 7"></polyline> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=7 x2=11 y1=7 y2=11></line> <path class="ql-even ql-stroke" d=M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z></path> <path class="ql-even ql-stroke" d=M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z></path> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=7 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=7 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=7 x2=15 y1=14 y2=14></line> <line class="ql-stroke ql-thin" x1=2.5 x2=4.5 y1=5.5 y2=5.5></line> <path class=ql-fill d=M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z></path> <path class="ql-stroke ql-thin" d=M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156></path> <path class="ql-stroke ql-thin" d=M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109></path> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=6 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=6 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=6 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=3 y1=4 y2=4></line> <line class=ql-stroke x1=3 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=3 y1=14 y2=14></line> </svg>'}),(function(r,n){r.exports='<svg class="" viewbox="0 0 18 18"> <line class=ql-stroke x1=9 x2=15 y1=4 y2=4></line> <polyline class=ql-stroke points="3 4 4 5 6 3"></polyline> <line class=ql-stroke x1=9 x2=15 y1=14 y2=14></line> <polyline class=ql-stroke points="3 14 4 15 6 13"></polyline> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points="3 9 4 10 6 8"></polyline> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <path class=ql-fill d=M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z /> <path class=ql-fill d=M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z /> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <path class=ql-fill d=M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z /> <path class=ql-fill d=M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z /> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <line class="ql-stroke ql-thin" x1=15.5 x2=2.5 y1=8.5 y2=9.5></line> <path class=ql-fill d=M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z></path> <path class=ql-fill d=M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z></path> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <path class=ql-stroke d=M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3></path> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=12 x=3 y=15></rect> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <rect class=ql-stroke height=12 width=12 x=3 y=3></rect> <rect class=ql-fill height=12 width=1 x=5 y=3></rect> <rect class=ql-fill height=12 width=1 x=12 y=3></rect> <rect class=ql-fill height=2 width=8 x=5 y=8></rect> <rect class=ql-fill height=1 width=3 x=3 y=5></rect> <rect class=ql-fill height=1 width=3 x=3 y=7></rect> <rect class=ql-fill height=1 width=3 x=3 y=10></rect> <rect class=ql-fill height=1 width=3 x=3 y=12></rect> <rect class=ql-fill height=1 width=3 x=12 y=5></rect> <rect class=ql-fill height=1 width=3 x=12 y=7></rect> <rect class=ql-fill height=1 width=3 x=12 y=10></rect> <rect class=ql-fill height=1 width=3 x=12 y=12></rect> </svg>'}),(function(r,n){r.exports='<svg viewbox="0 0 18 18"> <polygon class=ql-stroke points="7 11 9 13 11 11 7 11"></polygon> <polygon class=ql-stroke points="7 7 9 5 11 7 7 7"></polygon> </svg>'}),(function(r,n,o){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.BubbleTooltip=void 0;var s=function D(_,F,M){_===null&&(_=Function.prototype);var O=Object.getOwnPropertyDescriptor(_,F);if(O===void 0){var j=Object.getPrototypeOf(_);return j===null?void 0:D(j,F,M)}else{if("value"in O)return O.value;var I=O.get;return I===void 0?void 0:I.call(M)}},l=(function(){function D(_,F){for(var M=0;M<F.length;M++){var O=F[M];O.enumerable=O.enumerable||!1,O.configurable=!0,"value"in O&&(O.writable=!0),Object.defineProperty(_,O.key,O)}}return function(_,F,M){return F&&D(_.prototype,F),M&&D(_,M),_}})(),c=o(3),d=w(c),h=o(8),m=w(h),f=o(43),p=w(f),g=o(15),x=o(41),b=w(x);function w(D){return D&&D.__esModule?D:{default:D}}function y(D,_){if(!(D instanceof _))throw new TypeError("Cannot call a class as a function")}function S(D,_){if(!D)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return _&&(typeof _=="object"||typeof _=="function")?_:D}function C(D,_){if(typeof _!="function"&&_!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof _);D.prototype=Object.create(_&&_.prototype,{constructor:{value:D,enumerable:!1,writable:!0,configurable:!0}}),_&&(Object.setPrototypeOf?Object.setPrototypeOf(D,_):D.__proto__=_)}var k=[["bold","italic","link"],[{header:1},{header:2},"blockquote"]],A=(function(D){C(_,D);function _(F,M){y(this,_),M.modules.toolbar!=null&&M.modules.toolbar.container==null&&(M.modules.toolbar.container=k);var O=S(this,(_.__proto__||Object.getPrototypeOf(_)).call(this,F,M));return O.quill.container.classList.add("ql-bubble"),O}return l(_,[{key:"extendToolbar",value:function(M){this.tooltip=new N(this.quill,this.options.bounds),this.tooltip.root.appendChild(M.container),this.buildButtons([].slice.call(M.container.querySelectorAll("button")),b.default),this.buildPickers([].slice.call(M.container.querySelectorAll("select")),b.default)}}]),_})(p.default);A.DEFAULTS=(0,d.default)(!0,{},p.default.DEFAULTS,{modules:{toolbar:{handlers:{link:function(_){_?this.quill.theme.tooltip.edit():this.quill.format("link",!1)}}}}});var N=(function(D){C(_,D);function _(F,M){y(this,_);var O=S(this,(_.__proto__||Object.getPrototypeOf(_)).call(this,F,M));return O.quill.on(m.default.events.EDITOR_CHANGE,function(j,I,L,H){if(j===m.default.events.SELECTION_CHANGE)if(I!=null&&I.length>0&&H===m.default.sources.USER){O.show(),O.root.style.left="0px",O.root.style.width="",O.root.style.width=O.root.offsetWidth+"px";var G=O.quill.getLines(I.index,I.length);if(G.length===1)O.position(O.quill.getBounds(I));else{var X=G[G.length-1],Q=O.quill.getIndex(X),K=Math.min(X.length()-1,I.index+I.length-Q),q=O.quill.getBounds(new g.Range(Q,K));O.position(q)}}else document.activeElement!==O.textbox&&O.quill.hasFocus()&&O.hide()}),O}return l(_,[{key:"listen",value:function(){var M=this;s(_.prototype.__proto__||Object.getPrototypeOf(_.prototype),"listen",this).call(this),this.root.querySelector(".ql-close").addEventListener("click",function(){M.root.classList.remove("ql-editing")}),this.quill.on(m.default.events.SCROLL_OPTIMIZE,function(){setTimeout(function(){if(!M.root.classList.contains("ql-hidden")){var O=M.quill.getSelection();O!=null&&M.position(M.quill.getBounds(O))}}
vendor: 8,181 bytes, line 369
369,1)})}},{key:"cancel",value:function(){this.show()}},{key:"position",value:function(M){var O=s(_.prototype.__proto__||Object.getPrototypeOf(_.prototype),"position",this).call(this,M),j=this.root.querySelector(".ql-tooltip-arrow");if(j.style.marginLeft="",O===0)return O;j.style.marginLeft=-1*O-j.offsetWidth/2+"px"}}]),_})(f.BaseTooltip);N.TEMPLATE=['<span class="ql-tooltip-arrow"></span>','<div class="ql-tooltip-editor">','<input type="text" data-formula="e=mc^2" data-link="https://quilljs.com" data-video="Embed URL">','<a class="ql-close"></a>',"</div>"].join(""),n.BubbleTooltip=N,n.default=A}),(function(r,n,o){r.exports=o(63)})]).default})})(Au)),Au.exports}var Gr,Z2;function Az(){if(Z2)return Gr;Z2=1;var e=Gr&&Gr.__extends||(function(){var m=function(f,p){return m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(g,x){g.__proto__=x}||function(g,x){for(var b in x)x.hasOwnProperty(b)&&(g[b]=x[b])},m(f,p)};return function(f,p){m(f,p);function g(){this.constructor=f}f.prototype=p===null?Object.create(p):(g.prototype=p.prototype,new g)}})(),t=Gr&&Gr.__assign||function(){return t=Object.assign||function(m){for(var f,p=1,g=arguments.length;p<g;p++){f=arguments[p];for(var x in f)Object.prototype.hasOwnProperty.call(f,x)&&(m[x]=f[x])}return m},t.apply(this,arguments)},r=Gr&&Gr.__spreadArrays||function(){for(var m=0,f=0,p=arguments.length;f<p;f++)m+=arguments[f].length;for(var g=Array(m),x=0,f=0;f<p;f++)for(var b=arguments[f],w=0,y=b.length;w<y;w++,x++)g[x]=b[w];return g},n=Gr&&Gr.__importDefault||function(m){return m&&m.__esModule?m:{default:m}},o=n(Qu()),s=n(Gg()),l=n(xz()),c=n(Rz()),d=(function(m){e(f,m);function f(p){var g=m.call(this,p)||this;g.dirtyProps=["modules","formats","bounds","theme","children"],g.cleanProps=["id","className","style","placeholder","tabIndex","onChange","onChangeSelection","onFocus","onBlur","onKeyPress","onKeyDown","onKeyUp"],g.state={generation:0},g.selection=null,g.onEditorChange=function(b,w,y,S){var C,k,A,N;b==="text-change"?(k=(C=g).onEditorChangeText)===null||k===void 0||k.call(C,g.editor.root.innerHTML,w,S,g.unprivilegedEditor):b==="selection-change"&&((N=(A=g).onEditorChangeSelection)===null||N===void 0||N.call(A,w,S,g.unprivilegedEditor))};var x=g.isControlled()?p.value:p.defaultValue;return g.value=x??"",g}return f.prototype.validateProps=function(p){var g;if(o.default.Children.count(p.children)>1)throw new Error("The Quill editing area can only be composed of a single React element.");if(o.default.Children.count(p.children)){var x=o.default.Children.only(p.children);if(((g=x)===null||g===void 0?void 0:g.type)==="textarea")throw new Error("Quill does not support editing on a <textarea>. Use a <div> instead.")}if(this.lastDeltaChangeSet&&p.value===this.lastDeltaChangeSet)throw new Error("You are passing the `delta` object from the `onChange` event back as `value`. You most probably want `editor.getContents()` instead. See: https://github.com/zenoamaro/react-quill#using-deltas")},f.prototype.shouldComponentUpdate=function(p,g){var x=this,b;if(this.validateProps(p),!this.editor||this.state.generation!==g.generation)return!0;if("value"in p){var w=this.getEditorContents(),y=(b=p.value,b??"");this.isEqualValue(y,w)||this.setEditorContents(this.editor,y)}return p.readOnly!==this.props.readOnly&&this.setEditorReadOnly(this.editor,p.readOnly),r(this.cleanProps,this.dirtyProps).some(function(S){return!l.default(p[S],x.props[S])})},f.prototype.shouldComponentRegenerate=function(p){var g=this;return this.dirtyProps.some(function(x){return!l.default(p[x],g.props[x])})},f.prototype.componentDidMount=function(){this.instantiateEditor(),this.setEditorContents(this.editor,this.getEditorContents())},f.prototype.componentWillUnmount=function(){this.destroyEditor()},f.prototype.componentDidUpdate=function(p,g){var x=this;if(this.editor&&this.shouldComponentRegenerate(p)){var b=this.editor.getContents(),w=this.editor.getSelection();this.regenerationSnapshot={delta:b,selection:w},this.setState({generation:this.state.generation+1}),this.destroyEditor()}if(this.state.generation!==g.generation){var y=this.regenerationSnapshot,b=y.delta,S=y.selection;delete this.regenerationSnapshot,this.instantiateEditor();var C=this.editor;C.setContents(b),h(function(){return x.setEditorSelection(C,S)})}},f.prototype.instantiateEditor=function(){this.editor?this.hookEditor(this.editor):this.editor=this.createEditor(this.getEditingArea(),this.getEditorConfig())},f.prototype.destroyEditor=function(){this.editor&&this.unhookEditor(this.editor)},f.prototype.isControlled=function(){return"value"in this.props},f.prototype.getEditorConfig=function(){return{bounds:this.props.bounds,formats:this.props.formats,modules:this.props.modules,placeholder:this.props.placeholder,readOnly:this.props.readOnly,scrollingContainer:this.props.scrollingContainer,tabIndex:this.props.tabIndex,theme:this.props.theme}},f.prototype.getEditor=function(){if(!this.editor)throw new Error("Accessing non-instantiated editor");return this.editor},f.prototype.createEditor=function(p,g){var x=new c.default(p,g);return g.tabIndex!=null&&this.setEditorTabIndex(x,g.tabIndex),this.hookEditor(x),x},f.prototype.hookEditor=function(p){this.unprivilegedEditor=this.makeUnprivilegedEditor(p),p.on("editor-change",this.onEditorChange)},f.prototype.unhookEditor=function(p){p.off("editor-change",this.onEditorChange)},f.prototype.getEditorContents=function(){return this.value},f.prototype.getEditorSelection=function(){return this.selection},f.prototype.isDelta=function(p){return p&&p.ops},f.prototype.isEqualValue=function(p,g){return this.isDelta(p)&&this.isDelta(g)?l.default(p.ops,g.ops):l.default(p,g)},f.prototype.setEditorContents=function(p,g){var x=this;this.value=g;var b=this.getEditorSelection();typeof g=="string"?p.setContents(p.clipboard.convert(g)):p.setContents(g),h(function(){return x.setEditorSelection(p,b)})},f.prototype.setEditorSelection=function(p,g){if(this.selection=g,g){var x=p.getLength();g.index=Math.max(0,Math.min(g.index,x-1)),g.length=Math.max(0,Math.min(g.length,x-1-g.index)),p.setSelection(g)}},f.prototype.setEditorTabIndex=function(p,g){var x,b;!((b=(x=p)===null||x===void 0?void 0:x.scroll)===null||b===void 0)&&b.domNode&&(p.scroll.domNode.tabIndex=g)},f.prototype.setEditorReadOnly=function(p,g){g?p.disable():p.enable()},f.prototype.makeUnprivilegedEditor=function(p){var g=p;return{getHTML:function(){return g.root.innerHTML},getLength:g.getLength.bind(g),getText:g.getText.bind(g),getContents:g.getContents.bind(g),getSelection:g.getSelection.bind(g),getBounds:g.getBounds.bind(g)}},f.prototype.getEditingArea=function(){if(!this.editingArea)throw new Error("Instantiating on missing editing area");var p=s.default.findDOMNode(this.editingArea);if(!p)throw new Error("Cannot find element for editing area");if(p.nodeType===3)throw new Error("Editing area cannot be a text node");return p},f.prototype.renderEditingArea=function(){var p=this,g=this.props,x=g.children,b=g.preserveWhitespace,w=this.state.generation,y={key:w,ref:function(S){p.editingArea=S}};return o.default.Children.count(x)?o.default.cloneElement(o.default.Children.only(x),y):b?o.default.createElement("pre",t({},y)):o.default.createElement("div",t({},y))},f.prototype.render=function(){var p;return o.default.createElement("div",{id:this.props.id,style:this.props.style,key:this.state.generation,className:"quill "+(p=this.props.className,p??""),onKeyPress:this.props.onKeyPress,onKeyDown:this.props.onKeyDown,onKeyUp:this.props.onKeyUp},this.renderEditingArea())},f.prototype.onEditorChangeText=function(p,g,x,b){var w,y;if(this.editor){var S=this.isDelta(this.value)?b.getContents():b.getHTML();S!==this.getEditorContents()&&(this.lastDeltaChangeSet=g,this.value=S,(y=(w=this.props).onChange)===null||y===void 0||y.call(w,p,g,x,b))}},f.prototype.onEditorChangeSelection=function(p,g,x){var b,w,y,S,C,k;if(this.editor){var A=this.getEditorSelection(),N=!A&&p,D=A&&!p;l.default(p,A)||(this.selection=p,(w=(b=this.props).onChangeSelection)===null||w===void 0||w.call(b,p,g,x),N?(S=(y=this.props).onFocus)===null||S===void 0||S.call(y,p,g,x):D&&((k=(C=this.props).onBlur)===null||k===void 0||k.call(C,A,g,x)))}}
369,f.prototype.focus=function(){this.editor&&this.editor.focus()},f.prototype.blur=function(){this.editor&&(this.selection=null,this.editor.blur())},f.displayName="React Quill",f.Quill=c.default,f.defaultProps={theme:"snow",modules:{},readOnly:!1},f})(o.default.Component);function h(m){Promise.resolve().then(m)}return Gr=d,Gr}var Tz=Az();const Ez=$u(Tz);function wE(e){if(!e)return"";let t=e.replace(/<iframe\b[^>]*>[\s\S]*?<\/iframe>/gi,r=>/src=["'][^"']*(?:youtube(?:-nocookie)?\.com\/embed\/|youtu\.be\/)/i.test(r)?"":r);return t=t.replace(/<(p|div|figure|span)\b[^>]*>(?:\s|<br\s*\/?>|&nbsp;)*<\/\1>/gi,""),t}function _z({article:e,onClose:t}){var n;if(!e)return null;const r=(e.categories||[e.category]).filter(Boolean);return R.jsxs("div",{className:"fixed inset-0 z-[60] bg-gray-950 overflow-y-auto",children:[R.jsxs("div",{className:"sticky top-0 z-10 flex items-center justify-between px-4 sm:px-6 py-3 bg-gray-950/95 backdrop-blur-xl border-b border-white/10",children:[R.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 text-red-500 hover:text-red-400 text-sm font-medium",children:[R.jsx(bx,{className:"w-4 h-4"})," Close preview"]}),e.published?R.jsx("span",{className:"inline-flex items-center gap-2 px-3 py-1 bg-green-500/10 border border-green-500/30 rounded-full text-green-400 text-xs font-semibold",children:"Published"}):R.jsxs("span",{className:"inline-flex items-center gap-2 px-3 py-1 bg-amber-500/10 border border-amber-500/30 rounded-full text-amber-400 text-xs font-semibold",children:[R.jsx(t5,{className:"w-3.5 h-3.5"})," Draft preview — not published"]})]}),R.jsxs("article",{className:"max-w-4xl mx-auto px-4 sm:px-6 py-12",children:[R.jsxs("header",{className:"mb-8",children:[R.jsxs("div",{className:"flex items-center gap-3 mb-4 flex-wrap",children:[R.jsx(Ln,{className:"bg-red-500/20 text-red-400 border-red-500/30",children:"Netcruzer Curated"}),r.map((o,s)=>R.jsx(Ln,{className:"bg-gray-800 text-gray-200 border-gray-700",children:o},s))]}),R.jsx("h1",{className:"text-4xl sm:text-5xl font-black mb-4 leading-tight",children:e.title}),R.jsx("p",{className:"text-xl text-gray-400 mb-6",children:e.meta_description}),R.jsxs("div",{className:"flex flex-wrap gap-4 text-sm text-gray-500",children:[R.jsxs("div",{className:"flex items-center gap-2",children:[R.jsx(zm,{className:"w-4 h-4"}),new Date(e.updated_date||e.created_date).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})]}),R.jsxs("div",{className:"flex items-center gap-2",children:[R.jsx(kx,{className:"w-4 h-4"}),"John Kennedy / Netcruzer"]})]}),((n=e.seo_keywords)==null?void 0:n.length)>0&&R.jsxs("div",{className:"flex items-center gap-2 mt-4 flex-wrap",children:[R.jsx(Sx,{className:"w-4 h-4 text-gray-500"}),e.seo_keywords.map((o,s)=>R.jsx(Ln,{variant:"secondary",className:"text-xs",children:o},s))]})]}),e.image_url&&R.jsx("div",{className:"mb-8 rounded-2xl overflow-hidden",children:R.jsx("img",{src:e.image_url,alt:e.title,className:"w-full h-auto"})}),e.video_id&&R.jsx("div",{className:"mb-8 rounded-2xl overflow-hidden bg-black aspect-video",children:R.jsx("iframe",{width:"100%",height:"100%",src:`https://www.youtube.com/embed/${e.video_id}`,title:e.title,referrerPolicy:"strict-origin-when-cross-origin",frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,className:"w-full h-full"})}),R.jsx("div",{className:"article-content-prose",dangerouslySetInnerHTML:{__html:wE(e.content)}}),R.jsxs("div",{className:"mt-12 p-6 bg-white/5 border border-white/10 rounded-xl text-sm text-gray-500",children:[R.jsx("p",{className:"font-semibold text-gray-400 mb-2",children:"Affiliate Disclosure"}),R.jsx("p",{children:"Affiliate links in this article support Netcruzer content creation at no extra cost to you. Thank y
369ou for your support!"})]})]})]})}const Dz={toolbar:[[{header:[1,2,3,!1]}],["bold","italic","underline","strike"],[{list:"ordered"},{list:"bullet"}],["link","image"],["clean"]]};function Nz(){const[e,t]=P.useState(null),[r,n]=P.useState(!1),[o,s]=P.useState(!1),[l,c]=P.useState(!1),[d,h]=P.useState(null),m=ty();P.useEffect(()=>{ut.auth.me().then(w=>{if(!w){ut.auth.redirectToLogin(window.location.pathname);return}c(w.role==="admin"),s(!0)}).catch(()=>{ut.auth.redirectToLogin(window.location.pathname)})},[]);const{data:f=[],isLoading:p}=za({queryKey:["articles"],queryFn:()=>ut.entities.Article.list("-updated_date",200)}),g=kh({mutationFn:async w=>{try{const y=await ut.entities.Article.create(w);return console.log("[AdminArticles] create result:",y),y}catch(y){throw console.error("[AdminArticles] create error:",y),y}},onSuccess:w=>{console.log("[AdminArticles] create onSuccess:",w),m.invalidateQueries({queryKey:["articles"]}),n(!1),t(null),vt.success("Article created successfully")},onError:w=>{console.error("[AdminArticles] create onError:",w),vt.error(`Failed to create article: ${(w==null?void 0:w.message)||"Unknown error"}`)}}),x=kh({mutationFn:async({id:w,data:y})=>{try{const S=await ut.entities.Article.update(w,y);return console.log("[AdminArticles] update result:",S),S}catch(S){throw console.error("[AdminArticles] update error:",S),S}},onSuccess:w=>{console.log("[AdminArticles] update onSuccess:",w),m.invalidateQueries({queryKey:["articles"]}),n(!1),t(null),vt.success("Article updated successfully")},onError:w=>{console.error("[AdminArticles] update onError:",w),vt.error(`Failed to save article: ${(w==null?void 0:w.message)||"Unknown error"}`)}}),b=kh({mutationFn:async w=>{try{const y=await ut.entities.Article.delete(w);return console.log("[AdminArticles] delete result:",y),y}catch(y){throw console.error("[AdminArticles] delete error:",y),y}},onSuccess:()=>{m.invalidateQueries({queryKey:["articles"]}),vt.success("Article deleted")},onError:w=>{console.error("[AdminArticles] delete onError:",w),vt.error(`Failed to delete article: ${(w==null?void 0:w.message)||"Unknown error"}`)}});return o?l?R.jsxs("div",{className:"min-h-screen bg-gray-950 text-white p-6",children:[R.jsxs("div",{className:"max-w-7xl mx-auto",children:[R.jsxs("div",{className:"flex items-center justify-between mb-8",children:[R.jsx("h1",{className:"text-3xl font-black",children:"Article Management"}),R.jsxs(br,{onClick:()=>{t(null),n(!0)},className:"bg-red-600 hover:bg-red-700",children:[R.jsx(g5,{className:"w-4 h-4 mr-2"}),"New Article"]})]}),r?R.jsx(Bz,{article:e,onSave:w=>{e?x.mutate({id:e.id,data:w}):g.mutate(w)},onCancel:()=>{n(!1),t(null)},isLoading:g.isPending||x.isPending}):R.jsx("div",{className:"space-y-4",children:p?R.jsx("div",{className:"flex justify-center py-12",children:R.jsx(ma,{className:"w-8 h-8 animate-spin text-red-500"})}):f.length===0?R.jsx(Ku,{className:"bg-white/5 border-white/10",children:R.jsx(Xu,{className:"py-12 text-center text-gray-400",children:"No articles yet. Create your first article!"})}):f.map(w=>R.jsx(Ku,{className:"bg-white/5 border-white/10 hover:bg-white/10 transition-colors",children:R.jsx(Xu,{className:"p-6",children:R.jsxs("div",{className:"flex items-start justify-between gap-4",children:[R.jsxs("div",{className:"flex-1",children:[R.jsxs("div",{className:"flex items-start gap-3 mb-2",children:[R.jsx("h3",{className:"text-xl font-bold flex-1 text-white",children:w.title}),R.jsxs("div",{className:"flex gap-2 flex-wrap",children:[R.jsx(Ln,{variant:w.published?"default":"secondary",children:w.published?"Published":"Draft"}),(w.categories||[w.category]).filter(Boolean).map((y,S)=>R.jsx(Ln,{className:"bg-red-500/20 text-red-400",children:y},S))]})]}),R.jsx("p",{className:"text-gray-400 text-sm mb-2",children:w.meta_description}),R.jsxs("p",{className:"text-xs text-gray-600",children:["Slug: /",w.slug]})]}),R.jsxs("div",{className:"flex gap-2",children:[R.jsx(br,{size:"sm",variant:"outline",onClick:()=>h(w),children:R.jsx(n5,{className:"w-4 h-4"})}),R.jsx(br,{size:"sm",variant:"outline",onClick:()=>{t(w),n(!0)},children:R.jsx(S5,{className:"w-4 h-4"})}),R.jsx(br,{size:"sm",variant:"destructive",onClick:()=>{confirm("Delete this article?")&&b.mutate(w.id)},children:R.jsx(A5,{className:"w-4 h-4"})})]})]})})},w.id))})]}),R.jsx(_z,{article:d,onClose:()=>h(null)})]}):R.jsxs("div",{className:"min-h-screen bg-gray-950 text-white flex flex-col items-center justify-center gap-4",children:[R.jsx("div",{className:"text-6xl",children:"🔒"}),R.jsx("h1",{className:"text-3xl font-black",children:"Access Denied"}),R.jsx("p",{className:"text-gray-400",children:"You don't have permission to access this page."}),R.jsx("a",{href:"/",className:"px-6 py-3 bg-red-600 hover:bg-red-700 rounded-full font-semibold transition-colors",children:"Go Home"})]}):R.jsx("div",{className:"min-h-screen bg-gray-950 flex items-center justify-center",children:R.jsx("div",{className:"w-8 h-8 border-4 border-red-500 border-t-transparent roun
369ded-full animate-spin"})})}function Bz({article:e,onSave:t,onCancel:r,isLoading:n}){const o=L=>{var H;return((H=L==null?void 0:L.categories)==null?void 0:H.length)>0?L.categories:L!=null&&L.category?[L.category]:["RC"]},[s,l]=P.useState({title:(e==null?void 0:e.title)||"",slug:(e==null?void 0:e.slug)||"",categories:o(e),content:(e==null?void 0:e.content)||"",seo_keywords:(e==null?void 0:e.seo_keywords)||[],meta_description:(e==null?void 0:e.meta_description)||"",image_url:(e==null?void 0:e.image_url)||"",video_id:(e==null?void 0:e.video_id)||"",published:(e==null?void 0:e.published)||!1}),[c,d]=P.useState(""),[h,m]=P.useState([]),[f,p]=P.useState(!1),[g,x]=P.useState(""),[b,w]=P.useState(!1),[y,S]=P.useState(!1),[C,k]=P.useState(""),[A,N]=P.useState(!1),D=L=>L.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),_=()=>{const L=c.trim();L&&(l(H=>({...H,seo_keywords:H.seo_keywords.includes(L)?H.seo_keywords:[...H.seo_keywords,L]})),d(""))},F=async()=>{if(!g.trim()||!s.content){vt.error("Enter a rewrite prompt and have content to rewrite");return}w(!0);try{const L=await ut.integrations.Core.InvokeLLM({prompt:`You are an expert editor. Here is article content in HTML:
370
371${s.content}
372
373User request: ${g}
374
375Rewrite the content to fulfill this request. Maintain the HTML structure and formatting. Return only the rewritten HTML, nothing else.`});l(H=>({...H,content:L})),x(""),vt.success("Content rewritten!")}catch{vt.error("Failed to rewrite content")}finally{w(!1)}},M=async()=>{var L;if(!s.title||!s.content){vt.error("Need title and content to generate metadata");return}p(!0);try{const H=await ut.integrations.Core.InvokeLLM({prompt:`Based on this article title and content, generate SEO metadata:
376
377    Title: ${s.title}
378    Content: ${s.content.substring(0,2e3)}...
379
380    Generate:
381    - meta_description: Compelling summary (150-160 chars)
382    - seo_keywords: Array of exactly 5-10 relevant, distinct keywords
383
384    Return JSON with these fields.`,response_json_schema:{type:"object",properties:{meta_description:{type:"string"},seo_keywords:{type:"array",items:{type:"string"}}},required:["meta_description","seo_keywords"]}});let G=s.image_url;if(!G)if(s.video_id)G=`https://i.ytimg.com/vi/${s.video_id}/maxresdefault.jpg`;else{const X=await ut.integrations.Core.GenerateImage({prompt:`Create a modern, sleek featured image for a Netcruzer article titled "${s.title}". Style: Bold, tech-forward, automotive/RC racing aesthetic with red and black color scheme. Professional YouTube thumbnail quality. ${s.categories.join(", ")} theme.`});if(G=(X==null?void 0:X.url)||((L=X==null?void 0:X.data)==null?void 0:L.url),!G){console.error("Failed to extract image URL from GenerateImage response:",X),vt.error("Failed to generate image URL");return}if(!G.startsWith("http")){console.error("Image URL is not absolute:",G),vt.error("Generated image URL is invalid");return}}l(X=>({...X,meta_description:H.meta_description,seo_keywords:H.seo_keywords||[],image_url:G})),vt.success("Metadata and image generated!")}catch{vt.error("Failed to generate metadata")}finally{p(!1)}},O=async()=>{const L=prompt("Enter YouTube Video ID (e.g., dQw4w9WgXcQ):");if(!L)return;const H=prompt("Paste your video transcript:");if(H){S(!0);try{const G=await ut.integrations.Core.InvokeLLM({prompt:`You are a technical content writer for Netcruzer, a YouTube channel focused on RC Racing, Tech Reviews, and Car Culture.
385
386Generate an SEO-optimized article based on this video transcript:
387
388${H}
389
390IMPORTANT REQUIREMENTS:
391- Include a reference to the source video early in the article (mention "as seen in the video" or "watch the full video")
392- Generate EXACTLY 5-10 distinct, relevant SEO keywords
393- Create a compelling meta description between 150-160 characters
394- Make the title catchy and SEO-friendly (50-60 characters)
395
396Return a JSON object with:
397- title: Catchy, SEO-friendly title (50-60 chars). Example: "Best RC Buggy Upgrades for 2026"
398- meta_description: Compelling summary (150-160 chars). Example: "Discover the top RC buggy upgrades that will transform your racing performance. Expert tips from Netcruzer's latest build guide."
399- seo_keywords: Array of exactly 5-10 relevant keywords. Example: ["rc buggy upgrades", "tekno rc", "racing tips", "rc suspension", "hobby grade rc"]
400- content: Full article in HTML format with proper headings, paragraphs, and structure. Start with a brief intro that references the video. Make it engaging and informative. Include placeholders like [AFFILIATE LINK: product name] where relevant products are mentioned.
401
402Focus on providing value, using keywords naturally, and maintaining Netcruzer's authentic voice.`,response_json_schema:{type:"object",properties:{title:{type:"string"},meta_description:{type:"string"},seo_keywords:{type:"array",items:{type:"string"}},content:{type:"string"}},required:["title","meta_description","seo_keywords","content"]}}
402),X=Array.isArray(G.seo_keywords)?G.seo_keywords.filter(Boolean):[];l(Q=>{var K;return{...Q,title:G.title,slug:D(G.title),meta_description:((K=G.meta_description)==null?void 0:K.trim())||G.title,seo_keywords:X.length?X:["netcruzer"],content:G.content,video_id:L,image_url:`https://i.ytimg.com/vi/${L}/maxresdefault.jpg`}}),vt.success("Draft generated with video reference!")}catch{vt.error("Failed to generate draft")}finally{S(!1)}}},j=()=>{var G,X,Q,K,q,B;const L=[];return(G=s.title)!=null&&G.trim()||L.push("Title is required"),(X=s.slug)!=null&&X.trim()||L.push("Slug is required"),((Q=s.content)==null?void 0:Q.replace(/<[^>]*>/g,"").trim())||L.push("Content is required"),(K=s.meta_description)!=null&&K.trim()||L.push("Meta description is required"),(q=s.image_url)!=null&&q.trim()||L.push("Image URL is required"),(B=s.seo_keywords)!=null&&B.length||L.push("At least one SEO keyword is required"),L},I=L=>{var G,X,Q,K,q;if(L.preventDefault(),!((G=s.title)!=null&&G.trim())||!((X=s.slug)!=null&&X.trim())){m([(Q=s.title)!=null&&Q.trim()?null:"Title is required",(K=s.slug)!=null&&K.trim()?null:"Slug is required"].filter(Boolean)),vt.error("Title and slug are required to save");return}if(!((q=s.categories)!=null&&q.length)){m(["At least one category is required"]),vt.error("Please select at least one category");return}if(s.published){const B=j();if(B.length>0){m(B),vt.error("Please fix validation errors before publishing");return}}m([]);const H={title:s.title.trim(),slug:s.slug.trim(),categories:s.categories,content:s.content||"",seo_keywords:s.seo_keywords||[],meta_description:s.meta_description||"",image_url:s.image_url||"",video_id:s.video_id||"",published:s.published};t(H)};return R.jsxs(Ku,{className:"bg-white/5 border-white/10",children:[R.jsx(lE,{children:R.jsx(cE,{className:"text-white",children:e?"Edit Article":"Create New Article"})}),R.jsx(Xu,{children:R.jsxs("form",{onSubmit:I,className:"space-y-6",children:[R.jsxs("div",{className:"flex gap-4",children:[R.jsx(br,{type:"button",onClick:O,disabled:y,className:"bg-gradient-to-r from-red-500 to-red-700",children:y?R.jsxs(R.Fragment,{children:[R.jsx(ma,{className:"w-4 h-4 mr-2 animate-spin"}),"Generating..."]}):"Generate Draft from Transcript"}),e&&R.jsx(br,{type:"button",onClick:M,disabled:f,variant:"outline",className:"border-red-500/30 text-red-400 hover:bg-red-500/10",children:f?R.jsxs(R.Fragment,{children:[R.jsx(ma,{className:"w-4 h-4 mr-2 animate-spin"}),"Generating..."]}):"Generate Missing Metadata"})]}),R.jsxs("div",{className:"grid gap-4",children:[R.jsxs("div",{children:[R.jsx("label",{className:"block text-sm font-medium mb-2 text-gray-300",children:"Title"}),R.jsx(pa,{value:s.title,onChange:L=>{const H=L.target.value;l(G=>({...G,title:H,slug:e?G.slug:D(H)}))},placeholder:"Article title",className:"bg-white/10 border-white/20 text-white placeholder:text-gray-500",required:!0})]}),R.jsxs("div",{children:[R.jsx("label",{className:"block text-sm font-medium mb-2 text-gray-300",children:"Slug"}),R.jsx(pa,{value:s.slug,onChange:L=>l({...s,slug:L.target.value}),placeholder:"url-friendly-slug",className:"bg-white/10 border-white/20 text-white placeholder:text-gray-500",required:!0})]}),R.jsxs("div",{children:[R.jsx("label",{className:"block text-sm font-medium mb-2 text-gray-300",children:"Categories (select all that apply)"}),R.jsx("div",{className:"space-y-2",children:["RC","Tech","Cars"].map(L=>R.jsxs("label",{className:"flex items-center gap-3 p-3 rounded-lg bg-white/5 border border-white/10 hover:bg-white/10 cursor-pointer",children:[R.jsx("input",{type:"checkbox",checked:s.categories.includes(L),onChange:H=>{H.target.checked?l({...s,categories:[...s.categories,L]}):l({...s,categories:s.categories.filter(G=>G!==L)})},className:"w-4 h-4"}),R.jsx("span",{className:"text-white text-sm font-medium",children:L==="RC"?"RC Racing":L==="Tech"?"Tech Reviews":"Car Culture"})]},L))})]}),R.jsxs("div",{children:[R.jsx("label",{className:"block text-sm font-medium mb-2 text-gray-300",children:"Meta Description"}),R.jsx(HA,{value:s.meta_description,onChange:L=>l({...s,meta_description:L.target.value}),placeholder:"SEO description (150-160 characters)",className:"bg-white/10 border-white/20 text-white placeholder:text-gray-500",rows:2})]}),R.jsxs("div",{children:[R.jsx("label",{className:"block text-sm font-medium mb-2 text-gray-300",children:"SEO Keywords"}),R.jsxs("div",{className:"flex gap-2 mb-2",children:[R.jsx(pa,{value:c,onChange:L=>d(L.target.value),onKeyDown:L=>{L.key==="Enter"&&(L.preventDefault(),_())},onBlur:_,placeholder:"Type keyword and press Enter (or click Add)",className:"bg-white/10 border-white/20 text-white placeholder:text-gray-500"}),R.jsx(br,{type:"button",size:"sm",variant:"outline",onClick:_,children:"Add"})]}),R.jsx("div",{className:"flex flex-wrap gap-2",children:s.seo_keywords.map((L,H)=>R.jsxs(Ln,{variant:"secondary",className:"cursor-pointer",onClick:()=>{l({...s,seo_keywords:s.seo_keywords.filter((G,X)=>X!==H)})},children:[L," ×"]},H))})]}),R.jsxs("div",{children:[R.jsx("label",{className:"block text-sm font-medium mb-2 text-gray-300",children:"Image URL"}),R.jsx(pa,{value:s.image_url,onChange:L=>l({...s,image_url:L.target.value}),placeholder:"https://...",className:"bg-white/10 border-white/20 text-white placeholder:text-gray-500"})]}),R.jsxs("div",{children:[R.jsx("label",{className:"block text-sm font-medium mb-2 text-gray-300",children:"YouTube Video ID"}),R.jsx(pa,{value:s.video_id,onChange:L=>{const H=L.target.value.trim();l({...s,video_id:H}),H&&!s.image_url&&l(G=>({...G,video_id:H,image_url:`https://i.ytimg.com/vi/${H}/maxresdefault.jpg`}))},placeholder:"dQw4w9WgXcQ",className:"bg-white/10 border-white/20 text-white placeholder:text-gray-500"}),R.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Thumbnail will be auto-populated if image URL is empty"})]}),R.jsxs("div",{children:[R.jsx("label",{className:"block text-sm font-medium mb-2 text-gray-300",children:"Content"}),R.jsxs("div",{className:"mb-3 border border-white/10 rounded-lg overflow-hidden",children:[R.jsxs("button",{type:"button",onClick:()=>N(!A),className:"w-full flex items-center justify-between px-4 py-2.5 bg-white/5 hover:bg-white/10 transition-colors text-sm font-medium text-gray-300",children:[R.jsx("span",{children:"📋 Paste HTML Source"}),R.jsx("span",{className:"text-gray-500 text-xs",children:A?"▲ collapse":"▼ expand"})]}),A&&R.jsxs("div",{className:"p-3 bg-black/20 space-y-2",children:[R.jsx("p",{className:"text-xs text-gray-500",children:'Paste raw HTML from the article generator. Click "Load into Editor" to replace the current content.'}),R.jsx("textarea",{value:C,onChange:L=>k(L.target.value),placeholder:"Paste your HTML article content here...",rows:8,className:"w-full px-3 py-2 bg-white/10 border border-white/20 text-white placeholder:text-gray-500 rounded text-xs font-mono resize-y"}),R.jsxs("div",{className:"flex gap-2",children:[R.jsx(br,{type:"button",size:"sm",className:"bg-green-600 hover:bg-green-700",onClick:()=>
402{if(!C.trim()){vt.error("Paste some HTML first");return}l(L=>({...L,content:C.trim()})),k(""),N(!1),vt.success("HTML loaded into editor")},children:"Load into Editor"}),R.jsx(br,{type:"button",size:"sm",variant:"outline",onClick:()=>{k(""),N(!1)},children:"Cancel"})]})]})]}),R.jsx("div",{className:"space-y-3 mb-3",children:R.jsxs("div",{className:"flex gap-2",children:[R.jsx("input",{type:"text",placeholder:"e.g., Make this more engaging, Simplify the language, Add more details...",value:g,onChange:L=>x(L.target.value),onKeyDown:L=>{L.key==="Enter"&&F()},className:"flex-1 px-3 py-2 bg-white/10 border border-white/20 text-white placeholder:text-gray-500 rounded text-sm"}),R.jsx(br,{type:"button",onClick:F,disabled:!s.content||b,size:"sm",className:"bg-blue-600 hover:bg-blue-700",children:b?R.jsxs(R.Fragment,{children:[R.jsx(ma,{className:"w-3 h-3 mr-1 animate-spin"}),"Rewriting..."]}):"AI Rewrite"})]})}),R.jsx("div",{className:"bg-white rounded-lg",children:R.jsx(Ez,{theme:"snow",value:s.content,onChange:L=>l({...s,content:L}),modules:Dz,className:"h-96 pb-12"})})]}),h.length>0&&R.jsxs("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-4",children:[R.jsx("h4",{className:"text-red-400 font-semibold text-sm mb-2",children:"Cannot Publish - Missing Required Fields:"}),R.jsx("ul",{className:"text-red-400 text-sm space-y-1",children:h.map((L,H)=>R.jsxs("li",{children:["• ",L]},H))})]}),R.jsxs("div",{className:"flex items-center gap-2 mt-16",children:[R.jsx("input",{type:"checkbox",id:"published",checked:s.published,onChange:L=>l({...s,published:L.target.checked}),className:"w-4 h-4"}),R.jsx("label",{htmlFor:"published",className:"text-sm font-medium text-gray-300",children:"Publish article"})]})]}),R.jsxs("div",{className:"flex gap-3 justify-end pt-4 border-t border-white/10",children:[R.jsx(br,{type:"button",variant:"outline",onClick:r,children:"Cancel"}),R.jsx(br,{type:"submit",disabled:n,className:"bg-red-600 hover:bg-red-700",children:n?R.jsxs(R.Fragment,{children:[R.jsx(ma,{className:"w-4 h-4 mr-2 animate-spin"}),"Saving..."]}):"Save Article"})]})]})})]})}const Tu="https://netcruzer.com",fb="https://media.base44.com/images/public/69b8468835807a9d901dbdae/5bb792258_generated_image.png",Oz="https://media.base44.com/images/public/69b8468835807a9d901dbdae/5bb792258_generated_image.png";function Lz(e){return(e||"").replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim()}function hb(e){if(e.meta_description)return e.meta_description;const t=Lz(e.content);return t.length>155?t.slice(0,152)+"...":t}function Nr(e,t,r){let n=document.querySelector(`[${e}="${t}"]`);n||(n=document.createElement("meta"),n.setAttribute(e,t),document.head.appendChild(n)),n.setAttribute("content",r)}function Mz(e,t){let r=document.querySelector(`link[rel="${e}"]`);r||(r=document.createElement("link"),r.setAttribute("rel",e),document.head.appendChild(r)),r.setAttribute("href",t)}function Pz(e){var l;document.querySelectorAll("script[data-netcruzer-article-ld]").forEach(c=>c.remove());const t=`${Tu}/article/${e.slug}`,r=hb(e),n=e.image_url||fb,o={"@context":"https://schema.org","@type":"Article",headline:e.title,description:r,url:t,image:{"@type":"ImageObject",url:n},datePublished:e.created_date||new Date().toISOString(),dateModified:e.updated_date||e.created_date||new Date().toISOString(),author:{"@type":"Person",name:"John Kennedy",url:Tu},publisher:{"@type":"Organization",name:"Netcruzer",url:Tu,logo:{"@type":"ImageObject",url:Oz}},mainEntityOfPage:{"@type":"WebPage","@id":t},...(l=e.seo_keywords)!=null&&l.length?{keywords:e.seo_keywords.join(", ")}:{}},s=document.createElement("script");s.type="application/ld+json",s.setAttribute("data-netcruzer-article-ld","1"),s.textContent=JSON.stringify(o,null,2),document.head.appendChild(s)}function jz(e){var s;const t=`${Tu}/article/${e.slug}`,r=`${e.title} | Netcruzer`,n=hb(e),o=e.image_url||fb;document.title=r,Nr("name","description",n),(s=e.seo_keywords)!=null&&s.length&&Nr("name","keywords",e.seo_keywords.join(", ")),Mz("canonical",t),Nr("property","og:type","article"),Nr("property","og:title",r),Nr("property","og:description",n),Nr("property","og:image",o),Nr("property","og:url",t),Nr("property","twitter:card","summary_large_image"),Nr("property","twitter:title",r),Nr("property","twitter:description",n),Nr("property","twitter:image",o),Nr("property","twitter:url",t),Pz(e)}function Fz(){var o;const{slug:e}=W3(),{data:t=[],isLoading:r}=za({queryKey:["article",e],queryFn:()=>ut.entities.Article.filter({slug:e,published:!0}),staleTime:0}),n=t[0];return P.useEffect(()=>(n&&jz(n),()=>{document.querySelectorAll("script[data-netcruzer-article-ld]").forEach(s=>s.remove())}),[n]),Mi({title:(n==null?void 0:n.title)||"Article",description:n?hb(n):"Read more on Netcruzer",image:(n==null?void 0:n.image_url)||fb}),r?R.jsx("div",{className:"min-h-screen bg-gray-950 flex items-center justify-center",children:R.jsx("div",{className:"w-8 h-8 border-4 border-red-500 border-t-transparent roun
402ded-full animate-spin"})}):n?R.jsxs("div",{className:"bg-gray-950 min-h-screen text-white",children:[R.jsx(In,{}),R.jsxs("article",{className:"max-w-4xl mx-auto px-4 sm:px-6 py-20",children:[R.jsxs(So,{to:"/articles",className:"inline-flex items-center gap-2 text-red-500 hover:text-red-400 mb-8",children:[R.jsx(bx,{className:"w-4 h-4"}),"Back to Articles"]}),R.jsxs("header",{className:"mb-8",children:[R.jsxs("div",{className:"flex items-center gap-3 mb-4 flex-wrap",children:[R.jsx(Ln,{className:"bg-red-500/20 text-red-400 border-red-500/30",children:"Netcruzer Curated"}),(n.categories||[n.category]).filter(Boolean).map((s,l)=>R.jsx(Ln,{className:"bg-gray-800 text-gray-200 border-gray-700",children:s},l))]}),R.jsx("h1",{className:"text-4xl sm:text-5xl font-black mb-4 leading-tight",children:n.title}),R.jsx("p",{className:"text-xl text-gray-400 mb-6",children:n.meta_description}),R.jsxs("div",{className:"flex flex-wrap gap-4 text-sm text-gray-500",children:[R.jsxs("div",{className:"flex items-center gap-2",children:[R.jsx(zm,{className:"w-4 h-4"}),"Published ",new Date(n.updated_date||n.created_date).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})]}),n.updated_date&&n.created_date&&new Date(n.updated_date)-new Date(n.created_date)>36e5&&R.jsxs("div",{className:"flex items-center gap-2",children:[R.jsx(zm,{className:"w-4 h-4"}),"Updated ",new Date(n.updated_date).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})]}),R.jsxs("div",{className:"flex items-center gap-2",children:[R.jsx(kx,{className:"w-4 h-4"}),"John Kennedy / Netcruzer"]})]}),((o=n.seo_keywords)==null?void 0:o.length)>0&&R.jsxs("div",{className:"flex items-center gap-2 mt-4 flex-wrap",children:[R.jsx(Sx,{className:"w-4 h-4 text-gray-500"}),n.seo_keywords.map((s,l)=>R.jsx(Ln,{variant:"secondary",className:"text-xs",children:s},l))]})]}),n.image_url&&R.jsx("div",{className:"mb-8 rounded-2xl overflow-hidden",children:R.jsx("img",{src:n.image_url,alt:n.title,className:"w-full h-auto"})}),n.video_id&&R.jsx("div",{className:"mb-8 rounded-2xl overflow-hidden bg-black aspect-video",children:R.jsx("iframe",{width:"100%",height:"100%",src:`https://www.youtube.com/embed/${n.video_id}`,title:n.title,referrerPolicy:"strict-origin-when-cross-origin",frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,className:"w-full h-full"})}),R.jsx("div",{className:"article-content-prose",dangerouslySetInnerHTML:{__html:wE(n.content)}}),R.jsxs("div",{className:"mt-12 p-6 bg-white/5 border border-white/10 rounded-xl text-sm text-gray-500",children:[R.jsx("p",{className:"font-semibold text-gray-400 mb-2",children:"Affiliate Disclosure"}),R.jsx("p",{children:"Affiliate links in this article support Netcruzer content creation at no extra cost to you. Thank y
402ou for your support!"})]})]}),R.jsx(Wn,{})]}):R.jsxs("div",{className:"min-h-screen bg-gray-950 text-white flex flex-col items-center justify-center",children:[R.jsx("h1",{className:"text-4xl font-black mb-4",children:"Article Not Found"}),R.jsx(So,{to:"/",className:"text-red-500 hover:text-red-400",children:"← Back to Home"})]})}const Hs=[{id:"1/8-ebuggy",label:"1/8 Electric Buggy",description:"Competition-grade 1:8 scale 4WD electric buggies"},{id:"1/8-etruggy",label:"1/8 Electric Truggy",description:"Competition-grade 1:8 scale 4WD electric truggies"},{id:"1/10-2wd",label:"1/10 2WD Electric Buggy",description:"Competition-grade 1:10 scale 2WD electric buggies"},{id:"1/10-4wd",label:"1/10 4WD Electric Buggy",description:"Competition-grade 1:10 scale 4WD electric buggies"},{id:"1/10-4wd-t",label:"1/10 4WD Electric Truggy",description:"Competition-grade 1:10 scale 4WD electric truggies"}],Iz=["Scale","Drive","Surface","Wheelbase","Length","Width","Weight (kit, no electronics)","Weight (track-ready, no electronics)","Chassis Material","Chassis Layout","Shock Type","Shock Material","Stock Shock Length (F/R)","Stock Spring Rate (front)","Stock Spring Rate (rear)","Shock Tower (front)","Shock Tower (rear)","Front Diff","Center Diff","Rear Diff","Suspension Type","Front Hub Design","Rear Hub Design","Rear Arm Design","Chassis Braces","Anti-Roll Bar (front)","Anti-Roll Bar (rear)","Motor Mount","Gear Module","Spur Gear","Battery","Ball Bearings","Body Included","ROAR Approved"],Wz=[{id:"tekno-et48-22",category:"1/8-etruggy",brand:"Tekno RC",model:"ET48 2.2",year:2024,type:"1/8 Electric Truggy",revisionGroup:"Tekno ET48 2.x Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Ftekno-rc-et48-2.2-1-8-electric-4wd-offroad-competition-truggy-kit-tkr9605%2Fp1591280",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"~375–385 mm — same adjustable range as ET48 2.0",Length:"Not published — approximately 595mm based on ET48 platform",Width:"~416–420 mm (optional hubs required for max width)","Chassis Material":"4mm 7075 hard-anodized aluminum — same base as ET48 2.0; revised to accept 4S shorty packs and new rear pivot braces","Chassis Layout":"Mid-motor flat — near-complete parts compatibility with EB48 2.2 buggy","Shock Type":"Emulsion/bladder 16mm — lightened 7075 CNC machined shock towers (upgraded from ET48 2.0)","Shock Material":"Aluminum; lightened 7075 CNC shock towers","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"Oil-filled gear diff (bevel ring/pinion, 2.2 spec) — default: Not published","Center Diff":"Oil-filled gear diff (2.2 spec) — default: Not published","Rear Diff":"Oil-filled gear diff (2.2 spec) — default: Not published","Suspension Type":"Independent double wishbone — revised front/rear A-arms; -2mm front/rear bulkheads; inner hinge pin sleeves revised","Front Hub Design":"Revised -2mm LRC spindles and spindle carriers; new reduced Ackermann spindle plates; updated front geometry vs ET48 2.0","Rear Hub Design":"Revised -2mm LRC/HRC rear hubs; 140mm rear universal driveshafts (new for 2.2)","Rear Arm Design":"Revised front/rear composite A-arms (2.2 spec)","Chassis Braces":"Revised shock standoffs; revised hinge pin braces","Anti-Roll Bar (front)":"Adjustable sway bar deadband bushings included","Anti-Roll Bar (rear)":"Adjustable sway bar deadband bushings included","Shock Tower (front)":"Lightened 7075 CNC machined aluminum — upgraded from ET48 2.0","Shock Tower (rear)":"Lightened 7075 CNC machined aluminum — upgraded from ET48 2.0","Motor Mount":"Mid-motor side-mount","Gear Module":"MOD1","Spur Gear":"MOD1 — 2.2 spec",Battery:"2x 2S standard or shorty LiPo (4S config) — revised chassis supports 4S shorty","Ball Bearings":"Full bearing","Body Included":"Yes — Tekno ET48 2.2 truggy body (cab-forward design)","ROAR Approved":"Yes"},notes:'ET48 2.2 (TKR9605) — released November 2024. Per teknorc.com: "over three years in development; fourth-generation update; near-complete compatibility with EB48 2.2 and NB48 2.2." Key upgrades vs ET48 2.0: lightened 7075 CNC shock towers, new 140mm rear universal driveshafts, precision molded shock pistons/guides, reduced Ackermann spindle plates, adjustable sway bar deadband bushings, -2mm bulkheads, -2mm LRC/HRC rear hubs, -2mm LRC spindles, revised inner hinge pin sleeves, revised A-arms, revised chassis for 4S shorty support. Box setup completely revised.',changes:["Lightened 7075 CNC machined shock towers (front and rear)","New 140mm rear universal driveshafts","New precision molded shock pistons and guides — improved shock smoothness","New reduced Ackermann spindle plates","New adjustable sway bar deadband bushings","Revised -2mm front/rear bulkheads","Revised -2mm LRC/HRC rear hubs","Revised -2mm LRC spindles","Revised inner hinge pin sleeves","Revised front/rear A-arms","Revised chassis supports 4S shorty battery packs","Revised shock standoffs and hinge pin braces","Box setup completely revised for current tracks"]},{id:"tekno-et48-20",category:"1/8-etruggy",brand:"Tekno RC",model:"ET48 2.0",year:2021,type:"1/8 Electric Truggy",revisionGroup:"Tekno ET48 2.x Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Tekno+ET48+2.0+truggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"375–385 mm (adjustable)",Length:"~595 mm",Width:"~416–420 mm","Chassis Material":"4mm 7075 hard-anodized aluminum — independent servo/ESC mount with decoupled radio box/battery mounts; verified from circusrc.com and teknorc.com","Chassis Layout":"Mid-motor flat — shares major parts and design elements with EB48 2.0 buggy","Shock Type":"16mm bore fluid-filled emulsion/bladder — CNC 7075 shock towers; CNC Delrin pistons and guides","Shock Material":"Aluminum","Stock Shock Length (F/R)":"~115.5mm front / ~125mm rear (same as EB48 2.0)","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"Oil-filled gear diff (bevel ring/pinion) — quick-access; default: Not published","Center Diff":"Oil-filled gear diff (increased volume vs ET48.3) — quick-access; default: Not published","Rear Diff":"Oil-filled gear diff — quick-access; default: Not published","Suspension Type":"Independent double wishbone — built-in caster suspension arms (EB48 2.0 concept); rear hub/arm insert system with adjustable roll center and toe","Front Hub Design":"CNC 7075 caster blocks; C-hub spindle carriers; industry-first suspension arms with built-in caster for longer arm length and ideal front geometry","Rear Hub Design":"Adjustable axle height (roll center) via rear hub inserts; active rear toe system","Rear Arm Design":"Composite arms — industry-first built-in caster; longer arm length vs ET48.3","Chassis Braces":"CNC 7075 pivot blocks; decoupled radio box and battery mounts for independent flex","Anti-Roll Bar (front)":"Available as option — standard sway bar mounts included","Anti-Roll Bar (rear)":"Available as option","Shock Tower (front)":"CNC 7075 aluminum — standard ET48 2.0","Shock Tower (rear)":"CNC 7075 aluminum — standard ET48 2.0","Motor Mount":"CNC 7075 aluminum side-mount","Gear Module":"MOD1","Spur Gear":"MOD1",Battery:"2x 2S or 1x 4S LiPo — 50x148mm battery tray","Ball Bearings":"Full bearing","Body Included":"Yes — industry-first exposed front shock tower body design; lighter than conventional truggy bodies; greater downforce; more truck-like appearance","ROAR Approved":"Yes"},notes:"ET48 2.0 (TKR9600) — released April 2021. All features from circusrc.com and teknorc.com. Ground-up redesign incorporating EB48 2.0 platform innovations: 4mm 7075 chassis, CNC 7075 shock towers/pivot blocks/motor mount/caster blocks, built-in caster suspension arms, adjustable roll center/toe via inserts, active rear toe, 3 quick-access diffs. Industry-first exposed front shock tower body design — lighter, more downforce. Replaced the ET48.3 which ran from 2015.",changes:["Complete ground-up redesign from ET48.3 — incorporates EB48 2.0 platform innovations","Industry-first suspension arms with built-in caster (longer arm, ideal geometry)","New rear hub/arm insert system — adjustable roll center (axle height) and active rear toe","3 quick-access, increased-volume differentials","CNC 7075 shock towers, pivot blocks, motor mount, and caster blocks","Independent servo/ESC mount with decoupled radio box and battery mounts","Industry-first exposed front shock tower truggy body — lighter, more downforce"]}
402,{id:"tekno-et48-3",category:"1/8-etruggy",brand:"Tekno RC",model:"ET48.3",year:2015,type:"1/8 Electric Truggy",revisionGroup:"Tekno ET48 1.x Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Tekno+ET48.3+truggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"375–385 mm — verified from amainhobbies.com TKR5602 listing",Length:"595 mm — verified from amainhobbies.com TKR5602 listing",Width:"416–420 mm (*optional hubs required for max width) — verified from amainhobbies.com","Weight (kit, no electronics)":"~4,000 g (9.0 lb) — verified from amainhobbies.com","Chassis Material":"Aluminum — 1st-gen ET48 platform","Chassis Layout":"Mid-motor flat — 1st-gen layout","Shock Type":"16mm aluminum shocks — clamping spring perches; updated shock boots","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"Oil-filled gear diff — 9/40T ratio;
402 split center diff mount (TKR5260/5263)","Center Diff":"Oil-filled gear diff — 44T; split center diff mount for easier maintenance","Rear Diff":"Oil-filled gear diff — 9/40T ratio","Suspension Type":"Independent double wishbone — V2 hinge pin braces with front arm sweep, kick-up, rear anti-squat, and rear toe all adjustable","Front Hub Design":"Updated trailing steering spindles (TKR5193) and spindle carriers (TKR5194) — improved high speed bump handling and steering response; larger front spindle bearings","Rear Hub Design":"Updated rear hubs (TKR5199) — compatible with CV axles or universal driveshafts","Rear Arm Design":"Composite — straight camber link rod ends for improved corner consistency","Chassis Braces":"V2 hinge pin braces and inserts; low profile wing mount (TKR5181); revised front bumper for increased ground clearance","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum (1st-gen design)","Shock Tower (rear)":"Aluminum (1st-gen design)","Motor Mount":"Side-mount","Gear Module":"MOD1","Spur Gear":"MOD1 — battery tray 50x148mm (2x2S or 1x4S config)",Battery:"2x 2S or 1x 4S LiPo — 50x148mm tray","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"ET48.3 (TKR5602) — all specs verified from amainhobbies.com. Third iteration of original ET48 platform (introduced 2013). Key .3 updates: updated trailing front spindles/carriers for improved bump handling, V2 hinge pin braces with wider adjustability, updated rear hubs compatible with universals, low profile wing mount, split center diff mount, clamping spring perches. Diff ratio: F/R 9/40T, Center 44T. Replaced by the fully redesigned ET48 2.0 in 2021.",changes:["Updated trailing front steering spindles (TKR5193) and carriers (TKR5194) — improved high-speed bump handling and steering predictability","Larger front spindle bearings for improved durability","Updated V2 hinge pin braces (TKR5161-5165) — adjustable front arm sweep, kick-up, rear anti-squat, and toe","Updated rear hubs (TKR5199) — compatible with CV axles or upcoming universals","Low profile wing mount (TKR5181) — lowers CG","Split center differential mount (TK
402R5260/5263) — easier maintenance","Clamping spring perches (TKR6140) and updated shock boots (TKR6144/6145)","Straight camber link rod ends (TKR5187) — improved corner consistency","Revised front bumper (TKR5166) — increased front ground clearance"]}],zz=[{id:"tlr-8ight-t-e-3.0",category:"1/8-etruggy",brand:"Team Losi Racing",model:"8IGHT-T E 3.0 Kit",year:2015,type:"1/8 Electric Truggy",revisionGroup:"Team Losi Racing 8IGHT-T Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=TLR+8IGHT-T+E+3.0+truggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"379–383 mm (14.93–15.09 in) — verified from amainhobbies.com TLR04006",Length:"476 mm (18.75 in) — verified from amainhobbies.com",Width:"416 mm (16.38 in) — verified from amainhobbies.com",Height:"186 mm (7.30 in) — verified from amainhobbies.com","Chassis Material":"4mm billet 7075-T6 aluminum — revised layout milled and balanced for brushless power","Chassis Layout":"Mid-motor flat — engineered specifically for electric power vs nitro 8IGHT-T 3.0","Shock Type":"16mm bore, oil-filled with bladder — long-bore aluminum shocks with tapered springs","Shock Material":"Aluminum with CNC-machined pistons","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Tapered springs optimized for electric power (specifications not published)","Stock Spring Rate (rear)":"Tapered springs optimized for electric power (specifications not published)","Front Diff":"Sealed gear differential — optimized for brushless torque","Center Diff":"Sealed gear differential — optimized for brushless torque","Rear Diff":"Sealed gear differential — optimized for brushless torque","Suspension Type":"Independent double wishbone — suspension components updated for electric power","Front Hub Design":"Aluminum lower arm holders; pivot ball design based on 8IGHT-T 3.0","Rear Hub Design":"Adjustable rear roll center via adjustable bushings; aluminum rear bearing inserts","Rear Arm Design":"Lightweight outdrives included; adjustable hinge pin braces for tuning","Chassis Braces":"Composite braces with multiple ESC and battery mounting locations","Anti-Roll Bar (front)":"Not included in kit — available as TLR option","Anti-Roll Bar (rear)":"Not included in kit — available as TLR option","Shock Tower (front)":"4mm 7075-T6 aluminum — hard anodized CNC-machined","Shock Tower (rear)":"4mm 7075-T6 aluminum — hard anodized CNC-machined","Motor Mount":"Mid-motor — revised for brushless motor positioning","Gear Module":"1.0 Module — verified from amainhobbies.com","Spur Gear":"Heat-treated steel",Battery:"690 size motor required / 4S 14.8V 5000mAh LiPo minimum (not included)","Ball Bearings":"Full precision ball bearings included","Body Included":"Yes — heavy-duty Lexan electric version body, unpainted with extended rear stabilization fin","Tires Included":'No — 5.5" (140mm) truggy tires required (not included)',"ROAR Approved":"Yes"},notes:"TLR 8IGHT-T E 3.0 (TLR04006) — released September 2015. First-generation electric variant engineered from ground up for brushless power, not simply converted from the nitro 8IGHT-T 3.0. All specs verified from amainhobbies.com product page and manual. Widened chassis with balanced geometry, 16mm large-bore oil-filled shocks with tapered springs, revised suspension geometry, multiple ESC/battery mounting locations for weight distribution tuning. Includes lightweight outdrives and adjustable hinge pin braces. Aluminum servo saver and rear bearing inserts standard. Unpainted Lexan body with extended rear fin.",changes:["Widened chassis vs nitro 8IGHT-T 3.0 — milled and balanced for brushless power","Large-bore 16mm oil-filled shocks with tapered springs (vs standard 12mm)","Suspension geometry and spring rates updated for electric power characteristics","Multiple ESC and battery mounting locations for balance tuning","Lightweight outdrives and adjustable hinge pin braces included","Aluminum servo saver top and aluminum rear bearing inserts standard","Extended rear stabilization fin on Lexan body"]},{id:"tlr-8ight-xte",category:"1/8-etruggy",brand:"Team Losi Racing",model:"8IGHT-XTE Race Kit",year:2021,type:"1/8 Electric Truggy",revisionGroup:null,price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-losi-racing-1-8-8ightxt-xte-1-8-nitro-electric-4wd-offroad-truggy-kit-tlr04009%2Fp1251741",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"376 mm (14.8 in) — verified from Losi 8IGHT-XTE RTR listing (LOS04020); same wheelbase as kit version",Length:"540 mm (21.26 in) — verified from Losi 8IGHT-XTE RTR listing",Width:"423 mm (16.65 in) — verified from Losi 8IGHT-XTE RTR listing","Chassis Material":"3mm aluminum — wider 3mm chassis vs previous 8IGHT-XT; verified from tlracing.com","Chassis Layout":"Mid-motor flat — RWB/FWB adjustable weight bias; both nitro and electric parts included in single kit","Shock Type":"Big bore machined aluminum — long stroke for truggy suspension travel","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"Oil-filled gear diff (bevel ring/pinion) — default: Not published","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: Not published","Rear Diff":"Oil-filled gear diff (bevel ring/pinion) — default: Not published","Suspension Type":"Front: new pivot ball front suspension geometry / Rear: dual wishbone — Flex Tune suspension arms","Front Hub Design":"New pivot ball front suspension for improved steering balance and predictable handling; larger pinion bearing","Rear Hub Design":"Improved suspension geometry rear; Flex Tune composite arms","Rear Arm Design":"Flex Tune suspension arms — adjustable stiffness composite design","Chassis Braces":"Wide 3mm chassis; large footprint engine/motor mount","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Machined aluminum","Shock Tower (rear)":"Machined aluminum","Motor Mount":"Large footprint motor mount — dual-purpose for nitro engine or electric motor","Final Drive Ratio":"16.6:1 — verified from hobbyzone.com TLR04009 listing","Front Track":"402 mm (15.8 in) — verified from hobbyzone.com","Gear Module":"MOD1","Spur Gear":"MOD1",Battery:"4S LiPo (electric config) — saddle pack or shorty options","Ball Bearings":"Full bearing","Body Included":"Yes — cab-forward style truggy body","ROAR Approved":"Yes"},notes:"TLR 8IGHT-XT/XTE (TLR04009) — released 2021. Single kit builds as either nitro (XT) or electric (XTE) — first TLR kit to include parts for both power sources. Specs verified from tlracing.com and hobbyzone.com. Key features: new pivot ball front suspension geometry, Flex Tune suspension arms, wider 3mm chassis, cab-forward body, large footprint motor/engine mount. Wheelbase 376mm, length 540mm, width 423mm verified from LOS04
402020 RTR (same chassis). Final drive ratio 16.6:1, front track 402mm from hobbyzone listing.",changes:["New pivot ball front suspension geometry — improved steering balance and predictable handling","Flex Tune suspension arms — adjustable stiffness","Wider 3mm chassis (vs previous 8IGHT-XT)","Larger pinion bearing for drivetrain durability","Cab-forward style body","Large footprint engine/motor mount for dual nitro/electric use","First TLR kit to include both nitro and electric parts in one box"]}],Hz=[{id:"associated-rc8t4e",category:"1/8-etruggy",brand:"Team Associated",model:"RC8T4e Team Kit",year:2022,type:"1/8 Electric Truggy",revisionGroup:"Team Associated RC8T4 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-associated-rc8t4e-team-competition-1-8-4wd-offroad-electric-truggy-kit-asc80952%2Fp1622381",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"Adjustable via arm mount inserts",Length:"560 mm (22.05 in) — verified from associatedelectrics.com RC8T4e specs page and amainhobbies.com",Width:"Varies (truggy-width rear arms)",Weight:"Varies (electronics/battery depen
402dent)","Chassis Material":"RC8T4e specific 7075 hard-anodized aluminum — dual saddle battery layout; centrally-mounted center diff","Chassis Layout":"Mid-motor flat; 2x2S saddle pack or 1x4S battery configurations (RWB/FWB selectable via motor position)","Shock Type":"16mm aluminum big bore — truggy-specific long-stroke shock setup","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"Oil-filled gear diff — RC8T4e front gearbox with 3.5° inclined pinion gear angle (reduces vibration); larger bearing sizes vs RC8T3.2e","Center Diff":"Oil-filled gear diff — centrally-mounted; inline with center dogbones","Rear Diff":"Oil-filled gear diff — RC8T4e rear gearbox; larger bearing sizes vs RC8T3.2e","Suspension Type":"Independent double wishbone — truggy suspension arms front and rear; adjustable arm mount inserts","Front Hub Design":"8° inclined KPI steering blocks (shared with RC8B4e buggy); revised front upper camber link for easier adjustment","Rear Hub Design":"Truggy-specific rear hub carriers; wide rear stance; 7075 blue aluminum suspension mounts key into chassis","Rear Arm Design":"Truggy composite arms — wider track than buggy version; flex/stiffness tuning via inserts","Chassis Braces":"RC8T4e-specific chassis with saddle battery layout; RC8B4e carbon fiber front top plate reused","Anti-Roll Bar (front)":"Included — front anti-roll bar standard (per RC8T4 announcement photos; same as RC8B4e)","Anti-Roll Bar (rear)":"Included — rear anti-roll bar standard","Shock Tower (front)":"Aluminum — RC8T4e specific","Shock Tower (rear)":"Aluminum — RC8T4e specific","Motor Mount":"Two-piece clamping; RWB/FWB adjustable (motor position shifts for weight bias)","Gear Module":"MOD1","Spur Gear":"46T — same as RC8B4e buggy (ASC81389)",Battery:"1x 4S shorty OR 2x 2S shorty (saddle pack)","Ball Bearings":"Full sealed bearings — larger bearing sizes in gearboxes vs RC8T3.2e","Body Included":"Yes — RC8T4e truggy body","ROAR Approved":"Yes"},notes:"RC8T4e Team Kit (ASC80952) — also available as w/Gearbox Upgrade (#80952). All specs from associatedelectrics.com specs page (length 560mm confirmed) and press release PDF. Shares RC8B4e buggy gearboxes — front gearbox has 3.5° inclined pinion angle to reduce driveshaft phasing. Key RC8T4e changes vs RC8T3.2e: revised gearboxes specific to front and rear with larger bearing sizes, centrally-mounted center diff, new saddle battery chassis, RWB/FWB weight bias selection, revised front upper camber link, 7075 blue aluminum suspension mounts.",changes:["New RC8T4e-specific gearboxes front and rear — 3.5° inclined front pinion; larger bearing sizes","Centrally-mounted center diff with inline center dogbones for better balance","New saddle battery chassis layout (1x4S or 2x2S shorty)","RWB/FWB adjustable weight bias via motor position change","Revised front upper camber link for easier adjustment and maintenance","7075 blue aluminum suspension mounts key into chassis"]},{id:"associated-rc8t31e",category:"1/8-etruggy",brand:"Team Associated",model:"RC8T3.1e Team Kit",year:2018,type:"1/8 Electric Truggy",revisionGroup:"Team Associated RC8T3 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Associated+RC8T3.1e+team+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"376.5 mm (14.82 in) — verified from associatedelectrics.com RC8T3.1e specs page",Length:"560 mm (22.05 in) — verified from associatedelectrics.com RC8T3.1e specs page",Width:"Varies",Weight:"Varies","Chassis Material":"Hard-anodized 7075 aluminum — keyed lower suspension plates; same platform as RC8T3e with T3.1 geometry updates","Chassis Layout":"Mid-motor flat — two-piece sliding motor mount; same chassis layout as RC8T3e","Shock Type":"16mm Big Bore 6061 aluminum — bleeder-style caps; 20mm I.D. shock springs for optimal spring rates — verified from rcdriver.com T3.1e announcement","Shock Material":"6061 aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"Oil-filled gear diff — V3 differentials with increased fluid capacity; straight-cut bevel gears","Center Diff":"Oil-filled gear diff — V3; straight-cut bevel gears for improved acceleration and run time","Rear Diff":"Oil-filled gear diff — V3 differentials; easily accessible front and rear diffs","Suspension Type":"Independent double wishbone — all suspension arm pivots revised for more ground clearance; CVA driveshafts for improved traction and chassis support","Front Hub Design":"+2mm steering block arms included for smooth and precise steering feel; suspension arms updated to race spec vs T3e","Rear Hub Design":"Truggy-specific rear hubs; keyed lower suspension plates","Rear Arm Design":"Updated race-spec truggy suspension arms — all pivots revised for more ground clearance and improved durability","Chassis Braces":"Enclosed receiver box; composite braces","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum — T3.1e spec","Shock Tower (rear)":"Aluminum — T3.1e spec","Motor Mount":"Two-piece sliding motor mount for easy gear mesh adjustment and motor removal","Internal Gear Ratio":"4.6:1","Gear Module":"MOD1","Spur Gear":"Straight-cut bevel gears; MOD1",Battery:"4S LiPo","Ball Bearings":"Full Factory Team rubber-sealed ball bearings","Body Included":"Yes — Pro-Line Predator body included","ROAR Approved":"Yes"},notes:"RC8T3.1e (#80938) — announced February 2018, released 2018. All specs from associatedelectrics.com specs page (560mm length, 376.5mm wheelbase) and rcdriver.com announcement. Key upgrades vs RC8T3e: new V3 diffs with increased fluid capacity for more consistent feel lap after lap, CVA driveshafts (vs universals on T3e), all suspension arm pivots revised for more ground clearance and durability, improved servo saver assembly, +2mm steering block arms, 16mm Big Bore 6061 aluminum shocks with 20mm ID springs. High parts compatibility with RC8B3.1, RC8B3.1e, and RC8T3.1 for multi-class racers. Replaced by RC8T3.2e in 2021.",changes:["New V3 differentials — increased fluid capacity for more consistent feel lap after lap","CVA driveshafts replace universals — improved traction and chassis support","Updated race-spec suspension arms","All suspension arm pivots revised — more ground clearance for improved jumping/landing and durability","16mm Big Bore 6061 aluminum shock bodies with bleeder-style caps and 20mm I.D. springs","+2mm steering block arms included for smooth and precise steering","Improved servo saver assembly"]},{id:"associated-rc8t3e",category:"1/8-etruggy",brand:"Team Associated",model:"RC8T3e Team Kit",year:2016,type:"1/8 Electric Truggy",revisionGroup:"Team Associated RC8T3 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Associated+RC8T3e+team+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"376.5–381.5 mm — verified from associatedelectrics.com RC8T3e press release",Length:"560 mm (22.05 in) — verified from associatedelectrics.com RC8T3e press release and amainhobbies.com",Width:"Varies",Weight:"Varies","Chassis Material":"Hard-anodized 7075-T6 aluminum — unique proprietary chassis designed for brushless power with optimum weight distribution; 90%+ parts compatibility with RC8T3 nitro truggy","Chassis Layout":"Mid-motor flat — two-piece sliding motor mount for easy gear mesh adjustment and motor removal","Shock Type":"16mm Big Bore hard-anodized 7075-T6 aluminum — TiN coated 3.5mm shafts; larger diameter precision springs; optimized bladders for volume compensation — verified from associatedelectrics.com press release","Shock Material":"7075-T6 aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"Oil-filled gear diff — V2 diffs for longer life and improved performance; gearbox with 4.6:1 internal ratio; fast-access differentials","Center Diff":"Oil-filled gear diff — V2; fast-access center diff","Rear Diff":"Oil-filled gear diff — V2; gearbox with 4.6:1 internal ratio; fast-access differentials","Suspension Type":"Independent double wishbone — pillow ball front uprights for maximum adjustability and durability; lower hinge pin inserts for roll center adjustment; six universal drive shafts","Front Hub Design":"Pillow ball front uprights — increased adjustability and improved durability vs standard pivot ball design; finely tuned shock mounting and upper arm positions","Rear Hub Design":"Truggy-specific rear hub geometry; lightweight one-piece wing mounts with height and forward position adjustment","Rear Arm Design":"Truggy composite arms — refined suspension geometry; lightweight ring gears and optimized bearing sizing reduce drivetrain rotational mass","Chassis Braces":"Pro-Line RC8T3e clear body and Team Associated molded wing included; composite braces","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"7075-T6 aluminum — finely tuned shock mounting positions","Shock Tower (rear)":"7075-T6 aluminum — finely tuned shock mounting positions","Motor Mount":"Two-piece sliding motor mount for easy gear mesh adjustment and motor removal","Internal Gear Ratio":"4.6:1","Gear Module":"MOD1","Spur Gear":"Lightweight ring gears — optimized precision ball bearing sizing for reduced rotational mass",Battery:"4S LiPo","Ball Bearings":"Full rubber-sealed ball bearings — optimized precision bearing sizing","Body Included":"Yes — Pro-Line RC8T3e clear body and Team Associated molded wing","ROAR Approved":"Yes"},notes:"RC8T3e (#80918) — released April 2016. All specs from associatedelectrics.com press release and amainhobbies.com listing (560mm length, 376.5–381.5mm wheelbase). First dedicated Team Associated 1/8 electric truggy built on the RC8T3 nitro platform with 90%+ parts compatibility. Key features: proprietary 7075-T6 chassis, V2 diffs, pillow ball front uprights (first in the T3e line), 16mm Big Bore 7075 shocks with TiN 3.5mm shafts, six universal driveshafts, 4.6:1 internal gear ratio. Perfect complement to the RC8B3e for multi-class racers. Replaced by RC8T3.1e in 2018.",changes:[]},{id:"associated-rc8t32e",category:"1/8-etruggy",brand:"Team Associated",model:"RC8T3.2e Team Kit",year:2021,type:"1/8 Electric Truggy",revisionGroup:"Team Associated RC8T3 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Associated+RC8T3.2e+team+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"376.5 mm (14.82 in) — verified from associatedelectrics.com RC8T3.2e specs page",Length:"560 mm (22.05 in) — verified from associatedelectrics.com RC8T3.2e specs page and amainhobbies.com",Width:"Varies — wider rear stance than RC8B3.2e buggy","Chassis Material":"3mm 7075-T6 hard-anodized aluminum","Chassis Layout":"Mid-motor flat — forward or rear battery position options","Shock Type":"Big bore aluminum — long stroke truggy-spec; dual-mode caps (emulsion or bladder)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"Oil-filled gear diff (44T ring/13T pinion) — default: 5,
402000cSt","Center Diff":"Oil-filled gear diff (bevel) — default: 5,000cSt","Rear Diff":"Oil-filled gear diff (44T ring/13T pinion) — default: 5,000cSt","Suspension Type":"Independent double wishbone — RC8T3.2e truggy geometry; two wing height options on rear shock tower","Front Hub Design":"Pivot ball front — 17° stock caster; RC8T3.2e-specific knuckle geometry","Rear Hub Design":"Wider truggy rear stance — aluminum rear hub carriers; graphite composite plates","Rear Arm Design":"RC8T3.2e truggy arms — longer and wider than buggy version","Chassis Braces":"Composite braces; traditional nose cone / mid-height wing / tall-height wing gearbox noses included","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum — two wing height options","Shock Tower (rear)":"Aluminum — two wing height options","Motor Mount":"Side-mount adjustable","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo — standard or shorty; forward or rear battery position","Ball Bearings":"Full sealed bearings","Body Included":"Yes — RC8T3.2e truggy body","ROAR Approved":"Yes"},notes:'RC8T3.2e — 2021. Per Team Associated Facebook: "two wing height options on rear shock tower; includes three different style gearbox noses (traditional nose cone, mid-height wing, and tall-height wing)." Shares RC8B3.2e buggy platform with truggy-specific arms, hubs, and wider stance. Replaced by RC8T4e in 2022.',changes:["Two wing height options on rear shock tower","Three gearbox nose options included (traditional / mid-height / tall-height wing)","Wider rear arm geometry vs RC8T3.1e","Updated suspension geometry from RC8T3.1e"]}],qz=[{id:"mugen-mbx8tr-eco",category:"1/8-etruggy",brand:"Mugen Seiki",model:"MBX8TR ECO",year:2023,type:"1/8 Electric Truggy",revisionGroup:"Mugen Seiki MBX8TR Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fmugen-seiki-mbx8tr-eco-1-8-offroad-competition-electric-truggy-kit-muge2030%2Fp1481103",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"Not published",Length:"Not published",Width:"Not published","Battery Size Limit":"Width max 47.5mm / Length max 140mm / Height max 47.5mm — verified from mugenseiki.com MBX8TR ECO spec page","Chassis Material":"New shape and designed chassis — updated vs MBX7TR ECO; two-piece battery tray accepts 4S short (380mm strap) or 4S standard (455mm strap)","Chassis Layout":"Mid-motor flat — Mugen competition truggy platform; dual saddle or single battery configurations","Shock Type":"16mm hard-anodized threaded aluminum — emulsion shock caps included; verified from mugenseiki.com","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Front: L75 / Rear: L86 — verified from mugenseiki.com MBX8TR ECO spec page","Stock Spring Rate (front)":"φ1.5mm L75/7.5T — verified from mugenseiki.com MBX8TR ECO spec page","Stock Spring Rate (rear)":"φ1.6mm L86/9T — updated vs MBX7TR ECO; verified from mugenseiki.com","Front Diff":"HTD (High Traction Differential) oil-filled gear diff — 10T bevel / 46T conical gears; default: 10,000cSt — verified from mugenseiki.com","Center Diff":"HTD oil-filled gear diff — default: 10,000cSt — verified from mugenseiki.com","Rear Diff":"HTD oil-filled gear diff — default: 7,000cSt — verified from mugenseiki.com","Suspension Type":"Front: new pivot inserts / Rear: dual wishbone — new C and D mounts with square pills for toe-in, anti-squat, and geometry tuning; impact resistant arms","Front Hub Design":"New front shock tower and upper arm mount with new pivot inserts for increased tuneability; updated geometry vs MBX7TR ECO","Rear Hub Design":"New rear uprights with CFRP plates for adju
402stable rear roll center; new C and D suspension mounts","Rear Arm Design":"Impact-resistant composite front and rear truggy arms; stiffer LW arms available as option","Chassis Braces":"Updated center diff cover with lightening holes","Anti-Roll Bar (front)":"Included — φ2.4mm front ARB — verified from mugenseiki.com MBX8TR ECO spec page","Anti-Roll Bar (rear)":"Included — φ2.7mm rear ARB — verified from mugenseiki.com MBX8TR ECO spec page","Shock Tower (front)":"Aluminum — new front shock tower with updated pivot inserts","Shock Tower (rear)":"Aluminum","Motor Mount":"Mid-motor side-mount","Gear Module":"MOD1","Spur Gear":"46T molded spur gear — included in kit; HTD system with 10T bevel gears and 46T conical gears",Battery:"4S LiPo — short (380mm) or standard (455mm) packs; two-piece tray; max 47.5mm W x 140mm L x 47.5mm H","Ball Bearings":"Full bearings","Body Included":"Yes — new Flash Point body (lower CG, improved steering, improved jumping); lightweight high downforce wing; revised rear wing mount","ROAR Approved":"Yes"},notes:"MBX8TR ECO (MUGE2030) — released 2023. All key specs from mugenseiki.com MBX8TR ECO spec page. HTD (High Traction Differential) provides increased acceleration, longer runtime, consistent handling. Stock diff fluids: F/C 10,000cSt, R 7,000cSt. ARBs included: φ2.4mm front, φ2.7mm rear. New C/D mounts with square pills for geometry tuning. New Flash Point body. Shock pistons: φ1.3mm 6-hole front and rear. Stiffer LW arms and universal driveshafts available as options.",changes:["New C and D suspension mounts with square pills for toe-in, anti-squat, and geometry tuning","New front shock tower and upper arm mount with pivot inserts","New rear uprights with CFRP plates for adju
402stable rear roll center","HTD (High Traction Differentials) — increased acceleration and consistency vs MBX7TR ECO","New updated sun gears for improved internal mesh and diff action","New Flash Point body — lower CG, improved steering, better jumping and landing","New lightweight high-downforce wing; revised rear wing mount","Updated rear shock springs (φ1.6mm/L86/9T)","Updated chassis design and shape — new two-piece battery tray for 4S short or standard","Emulsion shock caps included","Updated sway bar collars to reduce movement","Aluminum wing buttons; lightened center diff cover"]},{id:"mugen-mbx7tr-eco",category:"1/8-etruggy",brand:"Mugen Seiki",model:"MBX7TR ECO",year:2015,type:"1/8 Electric Truggy",revisionGroup:"Mugen Seiki MBX7TR Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Mugen+MBX7TR+ECO+truggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"Not published",Length:"Not published",Width:"Not published","Chassis Material":"3mm A7075 hard anodized aluminum — increased side bends vs MBX7TR nitro for increased strength and precise feel on all surfaces; verified from mugenseiki.com and amainhobbies.com","Chassis Layout":"Mid-motor flat — single 4S battery layout; narrow wheel hub (11.5)","Shock Type":"16mm hard-anodized threaded aluminum — 3.5mm shock shafts with slim rubber boots; updated shock springs (1.4mm)","Shock Material":"Aluminum — 5mm A7075 front shock tower; 4mm A7075 rear shock tower","Stock Shock Length (F/R)":"Front: L70 / Rear: L85 — verified from mugenseiki.com spec page","Stock Spring Rate (front)":"φ1.4mm L70/6.75T — verified from mugenseiki.com spec page","Stock Spring Rate (rear)":"φ1.4mm L85/7.75T — verified from mugenseiki.com spec page","Front Diff":"Oil-filled gear diff — default: 10,000cSt front — verified from mugenseiki.com","Center Diff":"Oil-filled gear diff — default: 15,000cSt center — verified from mugenseiki.com","Rear Diff":"Oil-filled gear diff — default: 7,000cSt rear — verified from mugenseiki.com","Suspension Type":"Independent double wishbone — E2129 front uprights with trailing axle position; revised lower front suspension arm (E2125-B); 5mm A7075 aluminum lower suspension mounts for optimized geometry","Front Hub Design":"E2129 front uprights (trailing axle position improves steering); Ackermann plate from MBX7R buggy included; improved servo saver spring (E2316)","Rear Hub Design":"Standard MBX7TR rear hub geometry — narrow wheel hub (11.5)","Rear Arm Design":"Truggy composite arms; E2125-B revised lower front suspension arm","Chassis Braces":"Composite; 5mm A7075 aluminum lower suspension mounts","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"5mm A7075 aluminum — verified from mugenseiki.com","Shock Tower (rear)":"4mm A7075 aluminum — verified from mugenseiki.com","Motor Mount":"Mid-motor side-mount","Gear Module":"MOD1","Spur Gear":"46T lightweight spur gear; straight cut conical and ring differential gears",Battery:"4S 14.8V LiPo (5000mAh recommended) — single battery layout","Ball Bearings":"Full bearings","Body Included":"Yes — cab forward truggy body","ROAR Approved":"Yes"},notes:"MBX7TR ECO (MUGE2020) — released December 2015 (added to AMain December 9, 2015). All specs from mugenseiki.com spec page and amainhobbies.com. First dedicated Mugen electric truggy kit. Key improvements vs MBX7TR nitro: new 3mm A7075 chassis with increased side bends, E2129 front uprights (trailing axle for improved steering), Ackermann plate from MBX7R buggy, updated universal driveshafts (front and rear), improved servo saver spring, 1.4mm shock springs. Shock oil: F 650wt / C 650wt / R 650wt. Replaced by MBX8TR ECO in 2023.",changes:["New 3mm A7075 chassis with increased side bends vs MBX7TR nitro","E2129 front uprights with trailing axle position for improved steering","Ackermann plate from MBX7
402R buggy included for additional adjustability","Updated universal driveshafts front and rear for smoother feel on bumps","New 1.4mm shock springs — reduce chassis roll, increase traction, improve jumping","Updated 16mm front and rear shocks for high grip conditions","Improved servo saver spring (E2316)","E2125-B revised lower front suspension arm","5mm A7075 aluminum lower suspension mounts","Lightweight 46T spur gear; straight cut conical and ring gears"]}],Uz=[{id:"hb-e819t-evo3",category:"1/8-etruggy",brand:"HB Racing",model:"E819T Evo3",year:2021,type:"1/8 Electric Truggy",revisionGroup:"HB E8T Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fhb-racing-e819t-evo3-1-8-4wd-offroad-electric-truggy-kit-hbs204576%2Fp1279731",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"Not published",Length:"Not published",Width:"Not published","Chassis Material":"Lightweight aluminum chassis — verified from amainhobbies.com and liverc.com; aluminum center chassis brace","Chassis Layout":"Mid-motor flat — low CG fully adjustable battery mounting system; accepts 4S, 2x2S, and 2x2S shorty packs","Shock Type":"Long stroke big bore threaded coilover — hard anodized aluminum front and rear shock towers; verified from amainhobbies.com","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"Oil-filled gear diff (43/10T front — per amainhobbies.com E819T Evo3 listing)","Center Diff":"Oil-filled gear diff","Rear Diff":"Oil-filled gear diff (43/10T rear — per amainhobbies.com E819T Evo3 listing)","Suspension Type":"Independent double wishbone — redesigned suspension geometry; E819-style drivetrain front and rear; truggy suspension arms","Front Hub Design":"Aluminum front hubs; 12.5° caster blocks — verified from amainhobbies.com; lightweight aluminum front axles","Rear Hub Design":"Aluminum rear hubs; graphite rear hub carrier plates — cross-compatible with E8 World Spec buggy","Rear Arm Design":"Truggy suspension arms; optional carbon fiber inserts for stiffness tuning (not included)","Chassis Braces":"Aluminum center chassis brace; heavy-duty chassis rods; threaded outer hinge pins","Anti-Roll Bar (front)":"Included — D819-style sway bars with 1-piece links — verified from amainhobbies.com E819T Evo3 listing","Anti-Roll Bar (rear)":"Included — D819-style sway bars with 1-piece links","Shock Tower (front)":"Hard anodized aluminum — verified from amainhobbies.com and liverc.com","Shock Tower (rear)":"Hard anodized aluminum","Motor Mount":"Dual clamp aluminum motor mount","Gear Module":"MOD1","Spur Gear":"Heavy-duty spur gear — MOD1",Battery:"4S LiPo or 2x2S or 2x2S shorty — low CG fully adjustable mounting system","Ball Bearings":"Full bearings — lightweight diff outdrives and center inputs; lightweight front axles","Body Included":"No — body NOT included; racers choose own body shell and paint scheme","ROAR Approved":"Yes"},notes:"HB Racing E819T Evo3 (HBS204576) — released 2021. All specs verified from amainhobbies.com product listing and liverc.com announcement. Combines E817T truggy platform with E819 (buggy) style drivetrain, front/rear suspension arm mounts, and sway bars. Key features: hard anodized aluminum shock towers (front/rear), aluminum front/rear hubs, D819-style sway bars with 1-piece links, 43/10T diffs, dual clamp aluminum motor mount, graphite steering arms, screw-type color-coded shock pins. Body NOT included (unique in this class — racers choose own shell). Optional CF inserts for arm stiffness tuning. No body shell = slightly lighter starting weight.",changes:["New E819 (buggy) style drivetrain replacing E817T drivetrain","New E819-style front and rear suspension arm mounts","New D819-style sway bars with 1-piece links (front and rear)","New hard anodized aluminum front and rear shock towers (vs previous)","New redesigned suspension geometry","New truggy suspension arms; optional CF inserts","New aluminum front and rear hubs","New dual clamp aluminum motor mount","New screw-type shock pins (standard and reverse thread, color-coded)","No body shell included — racers choose own"]}],Gz=[{id:"xray-xt8e-24",category:"1/8-etruggy",brand:"XRAY",model:"XT8E '24",year:2024,type:"1/8 Electric Truggy",revisionGroup:"XRAY XT8E Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY
402+XT8E+2024+truggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"380–388 mm — same as XT8E.2/'22; verified from teamxray.com XT8E'24 manual",Length:"580 mm — same as XT8E.2; verified from teamxray.com",Width:"399 mm — verified from teamxray.com XT8E'24","Chassis Material":"3mm Swiss 7075 T6 aluminum — redesigned chassis for new semi-split bulkheads; strategically milled","Chassis Layout":"Mid-motor — dual layout: rear motor/single brick battery OR front motor/saddle pack batteries; redesigned chassis for semi-split bulkhead mounting","Shock Type":"Big bore aluminum — reinforced M3/M4 steel shock screws; improved lower shock ball joint fitment","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"Oil-filled gear diff — new semi-split front bulkhead; diff height adjustable via eccentric bushings; removable in 4 screws without disassembling suspension","Center Diff":"Oil-filled gear diff — improved central drivetrain angle and height adjustment","Rear Diff":"Oil-filled gear diff — new semi-split rear bulkhead; diff height adjustable via eccentric bushings; removable in 4 screws without disassembling suspension","Suspension Type":"Independent double wishbone — I.S.S. (Integrated Suspension Settings) via eccentric bushing set; front/rear lower suspension holders with new mounting positions","Front Hub Design":"New lower front bumper matches new semi-split bulkhead; redesigned front aluminum shock tower matches semi-split bulkhead; new lower suspension holders","Rear Hub Design":"Reinforced V2 rear bulkheads with Labyrinth Dust Covers; new lower rear suspension holders; redesigned wing holder for semi-split rear bulkhead","Rear Arm Design":"Composite truggy arms — both truck and bruggy body mounts included","Chassis Braces":"Wickerbill rear wing with pre-marked airflow holes for easy downforce reduction; reinforced V2 bulkheads","Anti-Roll Bar (front)":"2.6mm front anti-roll bar — carried over from XT8E.2 platform","Anti-Roll Bar (rear)":"Rear anti-roll bar — available as option (included positions on chassis)","Shock Tower (front)":"Aluminum — redesigned to match new semi-split front bulkhead; new shock screw spec (M3/M4 steel)","Shock Tower (rear)":"Aluminum — redesigned to match new semi-split rear bulkhead","Motor Mount":"Dual layout: rear motor (single side battery) or front motor (saddle pack)","Gear Module":"MOD1","Spur Gear":"MOD1 — 50T center diff gear",Battery:"4S — single brick (rear motor config) or saddle pack short/standard (front motor config)","Ball Bearings":"Full bearings","Body Included":"No — mounts for both truck and bruggy style bodies included","ROAR Approved":"Yes"},notes:"XT8E '24 (XRA350302) — released 2023/2024. All features from teamxray.com XT8E'24 product page. Major update: all-new semi-split front and rear bulkheads allow diff service by removing only 4 screws without disassembling the suspension. Reinforced V2 bulkheads feature Labyrinth Dust Covers. New eccentric bushing diff height adjustment. New central drivetrain angle and height adjustment. Redesigned shock towers, lower suspension holders, wing holder, and front bumper to match new semi-split bulkheads. Wickerbill rear wing. Mounts for both truck and bruggy bodies included. Part number 350302.",changes:["All-new semi-split front and rear bulkheads — diff removal in 4 screws without suspension disassembly","Reinforced V2 bulkheads with Labyrinth Dust Covers for improved debris protection","New front and rear diff height adjustment via eccentric bushings","Improved central drivetrain angle and height adjustment — reduced CV joint wear","Redesigned chassis for semi-split bulkhead mounting","Redesigned front and rear aluminum shock towers matching new bulkheads","Reinforced M3/M4 steel shock screws for increased reliability","Front and rear lower suspension holders with new mounting positions","Redesigned wing holder fits new semi-split rear bulkhead","Wickerbill rear wing — pre-marked airflow holes for easy downforce adjustment","New lower front bumper reduces weight and matches new bulkhead","Improved lower shock absorber ball joints for more secure spring retainer","Mounts for both truck and bruggy style bodies included"]},{id:"xray-xt8e-22",category:"1/8-etruggy",brand:"XRAY",model:"XT8E '22",year:2021,type:"1/8 Electric Truggy",revisionGroup:"XRAY XT8E Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY
402+XT8E+2022+truggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"380–388 mm — verified from AMain XRA350301 listing (same as XT8E.2)",Length:"580 mm",Width:"399 mm — verified from AMain listing","Chassis Material":"3mm Swiss 7075 T6 aluminum — wider rear section vs XT8E.2 for increased stability and balance; weight mounting provisions; chassis locked servo saver posts","Chassis Layout":"Mid-motor — all-new dual E layout: (1) rear motor/single brick battery on left; (2) front motor/saddle pack batteries in rear. Two graphite servo holders included (one per layout)","Shock Type":"Big bore aluminum — new shorter front shock absorbers matched to new lower front shock tower (8mm lower than XT8E.2)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Front: shorter than XT8E.2 (matched to new lower tower); rear: same geometry","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"Oil-filled gear diff — 50T center diff gear","Center Diff":"Oil-filled gear diff — 50T center diff spur","Rear Diff":"Oil-filled gear diff — standard XT8 gear diff system","Suspension Type":"Independent double wishbone — I.S.S. (Integrated Suspension Settings) via eccentric bushing set; fully adjustable caster, camber, toe, anti-dive, anti-squat, ride height, droop, track-width, Ackermann, wheelbase","Front Hub Design":"New front shock tower 8mm lower for improved corner speed and stability; stiffer front and rear suspension arms minimize flex at high temperatures","Rear Hub Design":"Standard XT8 rear uprights; anti-roll bars standard","Rear Arm Design":"Redesigned front and rear suspension arms — stronger, reinforced design for high temperature stiffness vs XT8E.2","Chassis Braces":"New graphite optional brace for additional rear chassis flex tuning; composite front brace; dual rear composite braces with graphite chassis extension","Anti-Roll Bar (front)":"Included — 2.6mm front ARB (from XT8E.2)","Anti-Roll Bar (rear)":"Rear ARB available as option","Shock Tower (front)":"Aluminum — new lower geometry, 8mm lower than XT8E.2 for improved corner speed; matched to shorter front shocks","Shock Tower (rear)":"Aluminum — standard XT8E rear","Motor Mount":"Dual layout: rear motor (brick/single battery on left) or front motor (saddle pack in rear); two graphite servo holders included","Gear Module":"MOD1","Spur Gear":"MOD1 — 50T center diff gear",Battery:"4S — single brick/2x2S (rear motor config) or saddle pack short/standard (front motor config); 2-piece saddle holder lowers CG; harder material brick holder reduces flex","Ball Bearings":"Full bearings","Body Included":"No — body purchased separately","ROAR Approved":"Yes"},notes:"XT8E '22 (XRA350301) — released mid-2021 (added to AMain June 15, 2021). All features from teamxray.com XT8E'22 product page and AMain listing. Major redesign of the E concept: dual motor/battery layout system (rear motor + brick OR front motor + saddle pack). New wider rear chassis section. New lower front shock tower (-8mm vs XT8E.2) with matching shorter shocks. Stronger reinforced arms. New conical servo saver spring. 2-piece saddle pack battery holder for better CG. I.S.S. eccentric bushing suspension adjustment. Optional graphite rear flex brace. Ty Tessmann platform.",changes:["All-new dual E layout concept — rear motor/brick OR front motor/saddle pack, both included","New wider rear chassis section for increased high-speed stability","New lower front shock tower (-8mm vs XT8E.2) for improved corner speed","New shorter front shock absorbers matched to lower tower","Stronger, reinforced front and rear suspension arms (improved high-temp rigidity)","New stronger and longer conical servo saver spring with improved adjustment range","New servo saver with chassis-locked posts prevent rotation","New servo saver top deck with clearance to prevent binding","Two graphite servo holders included (one for each layout)","2-piece saddle pack battery holder for improved balance and lower CG","Harder material brick battery holder for reduced flex","Compact electronics mount for saddle pack configuration","Chassis weight mounting positions for balance adjustment"]},{id:"xray-xt8e-2",category:"1/8-etruggy",brand:"XRAY",model:"XT8E.2",year:2019,type:"1/8 Electric Truggy",revisionGroup:"XRAY XT8E Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY
402+XT8E+2019+electric+truggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"380–388 mm — verified from amainhobbies.com XRA350203E listing",Length:"580 mm — verified from amainhobbies.com XRA350203E listing",Width:"399 mm — verified from amainhobbies.com XRA350203E listing","Chassis Material":"3mm Swiss 7075 T6 aluminum — longer design with weight moved forward vs previous XT8; side guards with larger bottom radius for stability and longitudinal flex","Chassis Layout":"Mid-motor — standard electric truggy layout; single battery position on left side with ESC; motor and servo on opposite side","Shock Type":"Big bore aluminum — longer, larger-volume shocks with increased down travel; updated shock bodies, shafts, springs, and pistons","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Longer than XT8E'18 — per teamxray.com XT8E.2 announcement (longer shocks for increased down travel)","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"Oil-filled gear diff — improved internal diff gears with re-profiled teeth; stronger 2.5mm diff pins; longer cross diff pins; lightweight machined diff outdrives","Center Diff":"Oil-filled gear diff — 50T center diff gear for improved acceleration; graphite center diff mounting plate redesigned for 50T spur","Rear Diff":"Oil-filled gear diff — same improved diff internals as front; large volume for reduced heat on long runs","Suspension Type":"Independent double wishbone — all-new front suspension geometry; new C-hubs and steering blocks; I.S.S. eccentric bushing system; composite front upper top deck for flex and steering","Front Hub Design":"All-new C-hubs and steering blocks (new for XT8E.2 vs XT8E'18 conversion); zero king pin steering blocks with exchangeable steering plates for Ackermann adjustment; 40% lighter rear wing mount for lower CG","Rear Hub Design":"All-new rear uprights with 8x16x5mm outer ball-bearings for increased reliability; rear shock tower redesigned for new wing mount and gearbox brace","Rear Arm Design":"Front and rear lower suspension arms — reinforced design for resilience in jumps and crashes; rear lower outer pivot pins with self-locking nuts","Chassis Braces":"Composite front chassis brace for front flex; dual rear composite braces with graphite chassis extension; improved suspension holders; +5mm offset wheel axles","Anti-Roll Bar (front)":"Included — 2.6mm front ARB for improved corner speed (per liverc.com XT8E.2 announcement)","Anti-Roll Bar (rear)":"Rear ARB available as option","Shock Tower (front)":"Aluminum — standard XT8E.2 front tower geometry","Shock Tower (rear)":"Aluminum — rear shock tower redesigned for new wing mount and gearbox brace; 40% lighter wing mount","Motor Mount":"Standard rear/side electric motor mount; redesigned front and rear CVD driveshafts; redesigned universal driveshafts","Gear Module":"MOD1","Spur Gear":"MOD1 — 50T center diff gear",Battery:"4S LiPo — standard brick layout on left side (single battery)","Ball Bearings":"Full bearings; flat-spotted wheel hex hub connecting pins for increased reliability; steel eccentric bushings and ball mounts","Body Included":"No — body purchased separately","ROAR Approved":"Yes"},notes:"XRAY XT8E.2 (XRA350203E) — first standalone full XT8E electric truggy kit. Announced July 2019 at ROAR 1/8 Electric Nationals (per liverc.com). All features from amainhobbies.com and teamxray.com XT8E.2 page. Key changes vs XT8E'18 conversion: all-new front suspension C-hubs and steering blocks, zero KP steering blocks with Ackermann plates, all-new CVD and universal driveshafts, 50T center diff, redesigned rear tower for new wing mount, 40% lighter wing mount, longer larger-volume shocks, reinforced lower arms with self-locking rear pivot nuts, +5mm offset axles, graphite center diff mount. The prior XT8E'18 was a conversion set for the XT8 nitro — XT8E.2 is the first purpose-built standalone kit.",changes:["First purpose-built standalone XT8E kit (XT8E'18 was a conversion set)","All-new front suspension geometry — new C-hubs and steering blocks","All-new zero king pin steering blocks with exchangeable Ackermann plates","All-new front and rear 
402CVD drive shafts","All-new rear universal drive shafts","All-new chassis — fully compatible between XT8 and XT8E platforms","All-new rear shock tower for new wing mount and gearbox brace","40% lighter wing mount for lower CG; new wing mount locations","All-new rear uprights with 8x16x5mm outer ball-bearings","50T center diff gear for improved acceleration","Graphite center diff mounting plate for 50T spur","Improved diff internals — re-profiled gear teeth, stronger 2.5mm pins, lightweight outdrives","Longer, larger-volume shocks with increased down travel","2.6mm front ARB included for improved corner speed","+5mm offset wheel axles; flat-spotted hex hub pins","All-new softer ribbed shock membranes"]}],Vz=[{id:"kyosho-mp10te",category:"1/8-etruggy",brand:"Kyosho",model:"Inferno MP10Te",year:2022,type:"1/8 Electric Truggy",revisionGroup:null,price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fkyosho-inferno-mp10te-1-8-competition-electric-offroad-truggy-kit-kyo34115%2Fp1431872",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"384–389 mm — verified from amainhobbies.com KYO34115 listing",Length:"563 mm — verified from amainhobbies.com KYO34115 listing",Width:"414 mm — verified from amainhobbies.com KYO34115 listing","Front Track":"353 mm (approx) — verified from the-border.com KYO34115B listing","Rear Track":"353 mm (approx) — verified from the-border.com KYO34115B listing",Weight:"~4,200 g (approx) — verified from the-border.com KYO34115B listing","Gear Ratio":"14.12:1 — verified from amainhobbies.com KYO34115 listing","Chassis Material":"Hard anodized duralumin (copper-aluminum alloy) — new MP10Te-specific main chassis designed for optimal flexibility and strength for truck racing; short battery left-right split mount system (from MP10e buggy)","Chassis Layout":"Mid-motor shaft driven 4WD — combines MP10e electric buggy drivetrain with MP10T nitro truggy suspension; left-right split battery mounting supports RWB/FWB bias via short battery position shift","Shock Type":"Big bore aluminum oil shocks — M-size shocks; universal center shaft standard (from MP10e); aluminum rear suspension shaft collar minimizes rear arm vibration","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published — default diff oils: F 10,000cSt / C 10,000cSt / R 5,000cSt (per AMain KYO34115 review comments)","Stock Spring Rate (rear)":"Not published","Front Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 10,000cSt; compatible with MP10 series option parts","Center Diff":"Oil-filled gear diff — universal center shaft standard for improved drive efficiency and easy maintenance; default: 10,000cSt","Rear Diff":"Oil-filled gear diff — default: 5,000cSt; compatible with MP10 series option parts","Suspension Type":"Independent double wishbone — MP10T truggy suspension geometry; resin bush replacement for easy geometry adjustment; suspension geometry compatible with MP10 series option parts","Front Hub Design":"MP10T truggy front hubs; newly developed truck body with superior aerodynamics","Rear Hub Design":"MP10T-based rear suspension with aluminum collar standard — minimizes vibration; adjustable geometry via resin bush replacement","Rear Arm Design":"MP10T truggy suspension arms","Chassis Braces":"MP10Te-specific bracing","Anti-Roll Bar (front)":"Not included — available as option (ISW203 option motor spacer also available for larger motors)","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum — MP10Te spec","Shock Tower (rear)":"Aluminum — MP10Te spec","Motor Mount":"Shaft driven — motor length max 70mm; pinion included for KV1900-2100 class brushless motor; hook-and-loop battery strap for easy install; compatible with different thickness batteries","Gear Module":"MOD1","Spur Gear":"46T (Kyosho spec) — comes with MOD1 pinion gear",Battery:"2x 7.4V 2S LiPo (standard or short) — left-right split mounting; compatible with different thicknesses; FWB/RWB bias via battery position","Ball Bearings":"Full bearings","Body Included":"Yes — newly developed aerodynamic MP10Te truck body","ROAR Approved":"Yes"},notes:"Kyosho Inferno MP10Te (KYO34115) — added to AMain October 2022. All key specs verified from amainhobbies.com (length 563mm, width 414mm, wheelbase 384–389mm, gear ratio 14.12:1) and the-border.com (weight 4,200g, front/rear track 353mm). Combines MP10e electric buggy drivetrain with MP10T nitro truggy suspension. Left-right split battery mounting (from MP10e) enables FWB/RWB weight bias adjustment via short battery position changes. Fully compatible with existing Inferno MP10 series option parts. Motor length limited to 70mm max (ISW203 spacer option available for larger motors). Shaft driven 4WD for proven reliability. Default diff oils per user reviews: F 10k / C 10k / R 5k cSt.",changes:[]}],Yz=[{id:"serpent-srx8te-kit",category:"1/8-etruggy",brand:"Serpent",model:"SRX8T-e (Kit)",year:2021,type:"1/8 Electric Truggy",revisionGroup:"Serpent SRX8T Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fserpent-srx8te-1-8-scale-electric-competition-4wd-offroad-truggy-kit-ser600064%2Fp1298076",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"Not published — estimated ~280–290 mm based on chassis layout",Length:"Not published — estimated ~560 mm (1/8 scale standard)",Width:"Varies","Chassis Material":"3mm 6061-T6 aluminum — kick-up angle on front for better landings; countersunk holes; angled sides to increase stiffness","Chassis Layout":"Mid-motor flat — optimized for brushless power and low CG","Shock Type":"RCM 16mm big-bore aluminum — 4mm shock rods; durable package with large diameter membranes and O-rings; color-coded progressive springs","Shock Material":"Anodized aluminum with adjustable ride height nut","Stock Shock Length (F/R)":"Not published — shock springs supplied color-coded; grinded flat top and bottom, individually checked for tension and length","Stock Spring Rate (front)":"Not published — color-coded progressive springs included","Stock Spring Rate (rear)":"Not published — color-coded progressive springs included","Front Diff":"Compact gear differential — large volume design; Mod 1.25 internal gears (largest in the market per circusrc.com); hardened spring-steel diff coupler; 10T/46T gearing","Center Diff":"Compact gear differential — 44T central spur gear","Rear Diff":"Compact gear differential — Mod 1.25 gears; large internal gears for maximum performance and reliability","Suspension Type":"Independent double wishbone — oversized lower suspension arms in strong composite nylon; down-stop screws; secured shock pins","Front Hub Design":"Composite steering blocks with 12° C-hubs for precise steering; spring steel wheel axles with large bearings; precision threaded aluminum wheel hubs with offset;
402 flanged and serrated wheel nuts","Rear Hub Design":"Composite uprights with 3 upper roll-center positions; strong steel track rods with L/R threading and ball joints; hard steel wheel axles with large bearings; precision threaded aluminum wheel hubs","Rear Arm Design":"Durable longer oversized composite nylon suspension arms; down-stop screws; secured shock mounting pins from bottom","Chassis Braces":"Composite stiffeners front and rear for extra stiffness with side-to-side flex; bumper aligned with chassis kick-up for precise landings and suspension protection","Anti-Roll Bar (front)":"Spring steel wire ARB guided through diff cases with ball bearing raced steel adaptors; linked to lower suspension arm with captured adjustable threaded pivot ball","Anti-Roll Bar (rear)":"Spring steel wire ARB — same design as front for precise and low-friction operation","Shock Tower (front)":"6061-T6 aluminum — shocktower 6061 aluminum","Shock Tower (rear)":"4mm thick 6061-T6 aluminum shocktower integrated for extra stiffness; 3 upper positioning holes for shocks, 4 holes for roll-center positions","Motor Mount":"Machined aluminum motor mount — only one screw needed to secure brushless motor; optimized position for motor forces and transmission alignment; space for additional motor cooling","Gear Module":"Mod 1.25 (standard: 10T/46T combo)","Spur Gear":"44T central spur gear",Battery:"2S LiPo batteries required to complete (not included)","Ball Bearings":"Full sealed bearings — large size bearings throughout","Body Included":"Yes — Serpent truggy body","ROAR Approved":"Yes"},notes:"Serpent SRX8T-e (SER600064) — released 2021 per amainhobbies.com. All detailed specs verified from circusrc.com comprehensive press release. Kit developed over years of S811T-e platform refinement. Exceptional performance: improved jumping, traction, balance, and durability vs previous versions. Mod 1.25 internal gears (largest in market), compact large-volume diffs, 3mm aluminum chassis with kick-up, RCM 16mm big-bore shocks, spring steel transmission parts, captured driveshaft CVD front/dogbone rear, dual anti-roll bars with ball bearing adaptors. Zero expense spared. Kit form requires electronics.",changes:[]},{id:"serpent-s811te-cobra-e-rtr",category:"1/8-etruggy",brand:"Serpent",model:"S811T-E Cobra E (RTR)",year:2020,type:"1/8 Electric Truggy",revisionGroup:"Serpent Cobra-E Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.absolutehobbyz.com/serpent-s811t-e-cobra-e-rtr-18-4wd-electric-truggy-w24ghz-radio-orange.html",affiliateLabel:"Find on AH",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"Not published — estimated ~280–290 mm",Length:"Not published — estimated ~560 mm",Width:"Varies","Weight (RTR, race-ready)":"4.0 kg (4000 grams) — varies depen
402ding on gear and battery configuration — verified from absolutehobbyz.com spec table","Chassis Material":"3mm 6061-T6 aluminum — precision machining; slots to locate front and rear suspension mounts; countersunk holes; angled sides for stiffness","Chassis Layout":"Mid-motor RTR — factory pre-assembled and pre-set; low longitudinal battery packs at each side (part of side guards); extremely low CG placement; well balanced","Shock Type":"RCM 16mm big-bore aluminum — durable 4mm shock rods; large diameter membranes and O-rings for supersmooth, leak-proof operation; adjustable ride height nut","Shock Material":"Anodized aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"Compact gear differential — Mod 1.25 internal gears; hardened spring-steel diff coupler in 2 oversized bearings; 10T/46T gearing","Center Diff":"Compact gear differential — 44T central spur gear","Rear Diff":"Compact gear differential — Mod 1.25; large internal gears for maximum performance","Suspension Type":"Independent double wishbone — composite oversized lower arms; captured suspension pins; strong steel track rods with ball joints; large bearing wheel axles","Front Hub Design":"Composite steering blocks with 12° C-hubs for precise steering; flanged and serrated wheel nuts to prevent wheel nut loss in race","Rear Hub Design":"Composite uprights with 3 upper roll-center positions; 3 roll-center positions adjustable; steel track rods with L/R threading; ball joints for camber pre-set","Rear Arm Design":"Durable oversized composite nylon suspension arms; longer vs buggy version","Chassis Braces":"Composite stiffeners front and rear; central composite radio/servo mount; battery cases/side guards with Velcro strap for easy changes","Anti-Roll Bar (front)":"Spring steel wire ARB system with ball bearing raced steel adaptors; linked to lower suspension arm with captured adjustable threaded pivot ball","Anti-Roll Bar (rear)":"Spring steel wire ARB — same design as front","Shock Tower (front)":"6061-T6 aluminum","Shock Tower (rear)":"4mm thick 6061-T6 aluminum integrated shocktower for extra stiffness; 3 upper holes and 4 roll-center position holes","Motor Mount":"Machined aluminum motor mount — single-screw design; optimal position for motor forces; CVD front/dogbone rear driveshafts with cardan system","Internal Gear Ratio":"4:3:1 — verified from absolutehobbyz.com spec table","Gear Module":"Mod 1.25 (10T/46T front-rear, 44T center spur)","Spur Gear":"Compact gear diffs (3x oil-filled)",Motor:"DragonRC 2000 KV brushless sensorless longbody (RTR)",ESC:"DragonRC waterproof 150A 4-6S ESC (RTR)",Servo:"DragonRC 25kg metal-gear waterproof servo (RTR)",Radio:"DragonRC X4P-350 2.4 GHz digital transmitter with FHSS 67-channel frequency hopping (RTR)",Battery:"2x LiPo batteries required to complete (not included)",Tires:"DragonRC pre-mounted truggy race tires with foam inserts (RTR)","Ball Bearings":"Fully ball raced — large size bearings throughout","Body Included":"Yes — pre-painted and pre-cut E-truggy style body; large composite rear aero wing","ROAR Approved":"Yes"},notes:"Serpent S811T-E Cobra E (SER600039, RTR) — released 2020s. All specs verified from absolutehobbyz.com (4.0kg race weight, 4:3:1 gear ratio, Mod 1.25 diffs) and circusrc.com specifications. Factory pre-assembled and pre-set; ready to run with DragonRC electronics suite (2000kV motor, 150A ESC, 25kg servo, 2.4GHz radio). Compact Mod 1.25 large-volume oil-filled gear diffs front, center, and rear. RCM 16mm big-bore shocks. Unique ultra-low side battery mounting (as part of side guards) keeps weight extremely low and balanced. Based on proven Cobra platform for reliability and durability. Pre-painted body with large rear wing and pre-mounted tires/wheels included.",changes:[]}],Kz=[{id:"tekno-eb48-3",category:"1/8-ebuggy",brand:"Tekno RC",model:"EB48.3",year:2015,type:"1/8 Electric Buggy",revisionGroup:"Tekno EB48 1.x Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Tekno+EB48.3+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"323–335 mm",Length:"435 mm (no wing)",Width:"306–310 mm","Weight (kit, no electronics)":"~3,200 g","Chassis Material":"4mm 7075 hard-anodized aluminum (TKR5006)","Chassis Layout":"Mid-motor (1st-gen layout)","Shock Type":"Threaded aluminum (16mm)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"~105mm front / ~115mm rear (extended)","Stock Spring Rate (front)":"~4.7 lb/in (TKR5260, blue — 1st-gen EB48)","Stock Spring Rate (rear)":"~3.5 lb/in (TKR5261, yellow — 1st-gen EB48)","Front Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 10,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 20,000cSt","Rear Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 10,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"C-Hub — composite, ~12° stock caster","Rear Hub Design":"Composite rear hub carrier — single toe-in insert position (1st-gen design)","Rear Arm Design":"1st-gen composite arm","Chassis Braces":"
4021st-gen C & D blocks","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"7075 CNC machined aluminum (TKR5268, gun metal anodized, 6mm thick)","Shock Tower (rear)":"7075 CNC machined aluminum (TKR5269, gun metal anodized)","Motor Mount":"Side-mount","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"The EB48.3 uses a 4mm 7075 hard-anodized aluminum chassis (TKR5006). First-gen geometry with composite shock towers and C-hub front end. Replaced by the fully redesigned 2.0 platform in 2020.",changes:[]},{id:"tekno-eb48-4",category:"1/8-ebuggy",brand:"Tekno RC",model:"EB48.4",year:2016,type:"1/8 Electric Buggy",revisionGroup:"Tekno EB48 1.x Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Tekno+EB48.4+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"323–335 mm",Length:"435 mm (no wing)",Width:"306–310 mm","Weight (kit, no electronics)":"~3,200 g","Chassis Material":"7075 hard-anodized aluminum (TKR8006)","Chassis Layout":"Mid-motor (1st-gen layout)","Shock Type":"Threaded aluminum (16mm)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"~105mm front / ~115mm rear (extended)","Stock Spring Rate (front)":"~4.7 lb/in (TKR5260, blue — 1st-gen EB48)","Stock Spring Rate (rear)":"~3.5 lb/in (TKR5261, yellow — 1st-gen EB48)","Front Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 10,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 20,000cSt","Rear Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 10,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"C-Hub — composite, ~12° stock caster","Rear Hub Design":"Composite rear hub carrier — revised .4 geometry, single toe-in insert position","Rear Arm Design":"Updated 1st-gen composite arm (revised EB48.4)","Chassis Braces":"Updated C & D blocks vs .3","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"7075 CNC machined aluminum (TKR5268, same tower as EB48.3)","Shock Tower (rear)":"7075 CNC machined aluminum (TKR5269, same tower as EB48.3)","Motor Mount":"Side-mount","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Incremental update to the EB48.3 with revised suspension geometry. Last of the 1st-gen EB48 platform before the full 2.0 redesign. 7075 aluminum chassis (TKR8006). Parts compatible with EB48.3.",changes:["Revised rear suspension arm geometry vs .3","Updated C and D chassis brace design","Revised shock tower mounting positions (front & rear)"]},{id:"tekno-eb48-20",category:"1/8-ebuggy",brand:"Tekno RC",model:"EB48 2.0",year:2020,type:"1/8 Electric Buggy",revisionGroup:"Tekno EB48 2.x Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Tekno+EB48+2.0+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"316–336 mm",Length:"495 mm",Width:"306 mm","Weight (kit, no electronics)":"~2,900 g","Chassis Material":"4mm 7075 hard-anodized aluminum (TKR9002)","Chassis Layout":"Flat / laydown (2nd-gen); ultra-narrow pivots; long A-arm geometry","Shock Type":"Emulsion or Bladder (16mm)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"115.5mm front / 125mm rear (fully extended, per manual)","Stock Spring Rate (front)":"5.65 lb/in (TKR6040, 70mm, blue)","Stock Spring Rate (rear)":"3.48 lb/in (TKR6031B, 83mm, green)","Front Diff":"Oil-filled gear diff (bevel ring/pinion, TKR9150) — default: 10,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion, TKR9150) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (bevel ring/pinion, TKR9150) — default: 5,000cSt","Suspension Type":"Independent double wishbone; ultra-narrow pivots; long A-arm geometry","Front Hub Design":"C-Hub — composite spindle carrier, 18° stock caster (TKR9142B); 15° (TKR9142C) & 21° (TKR9040) optional","Rear Hub Design":"Composite rear hub carrier — multi-position active toe insert system (2.0 design, TKR9050)","Rear Arm Design":"Straight composite arm (2.0 design)","Chassis Braces":"C & D block — original 2.0 design","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum (CNC machined) — original 2.0 geometry","Shock Tower (rear)":"Aluminum (CNC machined) — original 2.0 geometry","Motor Mount":"Side-mount adjustable","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Complete ground-up redesign of the EB48 platform (released Feb 3, 2020 per Tekno blog). New 4mm 7075 aluminum chassis (TKR9002), ultra-narrow pivots, long A-arm geometry. Almost no parts shared with 1st-gen EB48. Forward compatible with 2.1 and 2.2 parts. Stock caster is 18°.",changes:[]},{id:"tekno-eb48-21",category:"1/8-ebuggy",brand:"Tekno RC",model:"EB48 2.1",year:2022,type:"1/8 Electric Buggy",revisionGroup:"Tekno EB48 2.x Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Tekno+EB48+2.1+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"316–336 mm",Length:"495 mm",Width:"306 mm","Weight (kit, no electronics)":"~2,900 g","Chassis Material":"4mm 7075 hard-anodized aluminum (TKR9002B)","Chassis Layout":"Flat / laydown","Shock Type":"Emulsion or Bladder (16mm)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"
402115.5mm front / 125mm rear (fully extended, per manual)","Stock Spring Rate (front)":"5.65 lb/in (TKR6040, 70mm, blue)","Stock Spring Rate (rear)":"3.48 lb/in (TKR6031B, 83mm, green)","Front Diff":"Oil-filled gear diff (bevel ring/pinion, TKR9150) — default: 7,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion, TKR9150) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (bevel ring/pinion, TKR9150) — default: 5,000cSt","Suspension Type":"Independent double wishbone; new extra-long front camber link; lowered hinge pin braces","Front Hub Design":"C-Hub — composite spindle carrier, 18° stock caster (TKR9142B, verified per manual); 15° (TKR9142C) & 21° (TKR9040) optional","Rear Hub Design":"Composite rear hub carrier — new rear arms with adjustable roll center; redesigned 2.1 knuckle with wider toe-in tuning range; +/-2mm offset hubs available (TKR9050)","Rear Arm Design":"Revised composite rear arm (2.1 geometry) — 112mm length, industry-longest at release; adjustable roll center","Chassis Braces":"Updated C & D block geometry; new chassis with lowered hinge pin braces","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"7075 CNC machined aluminum — revised 2.1 geometry","Shock Tower (rear)":"7075 CNC machined aluminum — revised 2.1 geometry (taller rear tower)","Motor Mount":"Side-mount adjustable","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo (now also supports 4S shorty in front or rear weight bias config)","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Released Sep 7, 2022 (per Tekno blog). Incremental update over 2.0. New 4mm 7075 aluminum chassis (TKR9002B, shared with 2.2) with lowered hinge pin braces. New 112mm rear arms with adjustable roll center. Extra-long front camber link. Now supports 4S shorty packs in addition to standard 4S. All 2.1 parts forward compatible with 2.2.",changes:["New extra-long front camber link for improved stability and predictability","New 112mm rear suspension arms with adjustable roll center (industry-longest at release)","New chassis with lowered hinge pin braces for improved handling","New revised rear hub carriers — wider toe-in tuning range, improved knuckle angles","Updated C and D chassis braces for improved flex","New 7075 aluminum shock towers with revised mounting positions (taller rear tower)","New differentials and rear springs (backward compatible with 2.0)","Now supports 4S shorty packs in front or rear weight-bias configuration"]},{id:"tekno-eb48-22",category:"1/8-ebuggy",brand:"Tekno RC",model:"EB48 2.2",year:2024,type:"1/8 Electric Buggy",revisionGroup:"Tekno EB48 2.x Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Ftekno-rc-eb48-2.2-4wd-competition-1-8-electric-buggy-kit-tkr9005%2Fp1573353",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"316–336 mm",Length:"495 mm",Width:"306 mm","Weight (kit, no electronics)":"~2,900 g","Chassis Material":"4mm 7075 hard-anodized aluminum (TKR9002B, shared w/ 2.1)","Chassis Layout":"Flat / laydown","Shock Type":"Emulsion (16mm)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"115.5mm front / 125mm rear (fully extended, per 2.2 manual)","Stock Spring Rate (front)":"5.65 lb/in (TKR6040, 70mm, blue)","Stock Spring Rate (rear)":"3.48 lb/in (TKR6031B, 83mm, green)","Front Diff":"Oil-filled gear diff (bevel ring/pinion, TKR9150) — default: 7,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion, TKR9150) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (bevel ring/pinion, TKR9150) — default: 5,000cSt","Suspension Type":"Independent double wishbone; -2mm front and rear bulkheads; longer inner hinge pin sleeves","Front Hub Design":"C-Hub — -2mm LRC spindle carriers, 21° stock caster (TKR9040); 18° (TKR9142B) & 15° (TKR9142C) optional; reduced Ackermann spindle plates","Rear Hub Design":"Composite rear hub carrier — -2mm LRC/HRC rear hubs; refined 2.2 knuckle geometry; improved toe-in linearity; +/-2mm offset available","Rear Arm Design":"Refined composite front & rear A-arms (2.2 spec)","Chassis Braces":"Refined C & D blocks (2.2 spec)","Anti-Roll Bar (front)":"Adjustable sway bar deadband bushings included — available in multiple sizes as option","Anti-Roll Bar (rear)":"Adjustable sway bar deadband bushings included — available in multiple sizes as option","Shock Tower (front)":"Flex-tuned split design 7075 CNC machined aluminum (2.2 spec); upgraded M4 shock standoffs","Shock Tower (rear)":"Flex-tuned split design 7075 CNC machined aluminum (2.2 spec)","Motor Mount":"Side-mount adjustable","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Released Aug 13, 2024 (per Tekno blog). Latest EB48 2.x platform; won ROAR 2023 1/8 Electric Nationals. 4mm 7075 aluminum chassis (TKR9002B). New flex-tuned split shock towers. -2mm front/rear bulkheads lower diff height. -2mm LRC spindles and LRC/HRC rear hubs boost traction. M4 shock standoffs for crash durability. 93.5mm rear universal driveshafts. Precision molded shock pistons and guides reduce internal friction. Adjustable sway bar deadband bushings. Stock caster is 21° (TKR9040).",changes:["New flex-tuned split design 7075 CNC machined shock towers (front & rear)","New -2mm front/rear bulkheads lowering differential height for improved traction","New -2mm LRC spindles matching lowered bulkhead geometry","New 
402-2mm LRC/HRC rear hubs for improved bump handling and driving consistency","Upgraded shock standoffs with M4 screws for improved crash durability","Longer inner hinge pin sleeves for reduced friction and extended arm lifespan","New front outer hinge pin sleeves to minimize friction","Reduced Ackermann spindle plates for improved mid-corner steering predictability","Adjustable sway bar deadband bushings for improved bump handling","Revised front and rear A-arms","Refined rear hub carrier angles for improved corner exit traction","New 93.5mm rear universal driveshafts","Precision molded shock pistons and guides reduce internal shock friction","Revised body shell for improved aero performance"]}],Xz=[{id:"tlr-8ight-e-30",category:"1/8-ebuggy",brand:"Team Losi Racing (TLR)",model:"8IGHT-E 3.0 Race Kit",year:2014,type:"1/8 Electric Buggy",revisionGroup:null,price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=TLR+8IGHT-E+3.0+race+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"~323 mm",Length:"497 mm",Width:"308 mm","Weight (kit, no electronics)":"~2,850 g","Chassis Material":"4mm hard-anodized aluminum (electric-specific)","Chassis Layout":"Standard / mid-motor","Shock Type":"Big bore aluminum (12mm)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"~95mm front / ~105mm rear (extended, 12mm bore)","Stock Spring Rate (front)":"~5.4 lb/in (blue, 16mm EVO compatible)","Stock Spring Rate (rear)":"~3.8 lb/in (red, 16mm EVO compatible)","Front Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,000cSt","Rear Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 2,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"C-Hub — composite, 17.5° stock caster","Rear Hub Design":"Composite rear hub carrier — fixed toe-in block with insert adjustment (3.0 spec)","Rear Arm Design":"Composite arm (3.0 spec)","Chassis Braces":"Aluminum + composite","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Aluminum (3.0 design)","Shock Tower (rear)":"Aluminum (3.0 design)","Motor Mount":"Hard-anodized aluminum side-mount","Gear Module":"MOD1","Spur Gear":"47T",Battery:"4S LiPo","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"The 8IGHT-E 3.0 was TLR's first dedicated electric platform, with a 4mm hard-anodized aluminum chassis engineered specifically for brushless power. A benchmark car for electric 1/8 buggy racing.",changes:[]},{id:"tlr-8ight-e-40",category:"1/8-ebuggy",brand:"Team Losi Racing (TLR)",model:"8IGHT-E 4.0 Race Kit",year:2018,type:"1/8 Electric Buggy",revisionGroup:null,price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=TLR+8IGHT-E+4.0+race+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"~323 mm",Length:"497 mm",Width:"308 mm","Weight (kit, no electronics)":"~2,900 g","Chassis Material":"4mm hard-anodized 7075-T6 aluminum","Chassis Layout":"Mid-motor, variable motor/diff angles","Shock Type":"Big bore aluminum (12mm)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"~95mm front / ~105mm rear (extended, 12mm bore)","Stock Spring Rate (front)":"~5.4 lb/in (blue, 16mm EVO compatible)","Stock Spring Rate (rear)":"~3.8 lb/in (red, 16mm EVO compatible)","Front Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,000cSt","Rear Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 2,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"C-Hub — composite, 17.5° stock caster","Rear Hub Design":"Composite rear hub carrier — fixed toe-in block with insert adjustment (4.0 spec)","Rear Arm Design":"Composite arm – 4.0 geometry","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Aluminum (4.0 design)","Shock Tower (rear)":"Aluminum (4.0 design)","Motor Mount":"Hard-anodized aluminum, adjustable","Gear Module":"MOD1","Spur Gear":"47T",Battery:"4S LiPo (dual battery / dual ESC locations)","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"The 8IGHT-E 4.0 refined the electric platform with a durable 4mm hard-anodized 7075-T6 aluminum chassis, variable motor and diff angles, and dual battery/ESC mounting options.",changes:["Variable motor and center differential angle adjustments","Dual battery and ESC location options","Improved suspension geometry over 3.0"]},{id:"tlr-8ight-xe",category:"1/8-ebuggy",brand:"Team Losi Racing (TLR)",model:"8IGHT-XE Race Kit",year:2019,type:"1/8 Electric Buggy",revisionGroup:"TLR 8IGHT-XE Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=TLR+8IGHT-XE+race+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"326–329 mm",Length:"497 mm",Width:"308 mm","Weight (kit, no electronics)":"~3,000 g","Chassis Material":"3mm hard-anodized aluminum (wide layout)","Chassis Layout":"Wide/flat – increased stability","Shock Type":"Big bore aluminum (4.0mm shafts)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"~98mm front / ~110mm rear (extended, 8IGHT-XE spec)","Stock Spring Rate (front)":"5.1 lb/in (TLR344019, blue, 16mm EVO)","Stock Spring Rate (rear)":"4.0 lb/in (TLR344016, orange, 16mm EVO)","Front Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,
402000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,000cSt","Rear Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 3,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"Pivot Ball — composite carrier, 17.5° stock caster (fully adjustable)","Rear Hub Design":"Aluminum rear hub carrier — A/B plate toe-in adjustment system; 5mm offset option available","Rear Arm Design":"Composite arm – XE wide geometry","Chassis Braces":"Composite with aluminum towers","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Machined 7075-T6 aluminum","Shock Tower (rear)":"Machined 7075-T6 aluminum","Motor Mount":"Inline/laydown adjustable","Gear Module":"MOD1","Spur Gear":"46T / 15T pinion",Battery:"4S LiPo","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Original 8IGHT-XE introduced TLR's wide chassis concept with 7075-T6 aluminum shock towers and 4.0mm shock shafts. Wide chassis significantly improved stability and neutral handling.",changes:[]},{id:"tlr-8ight-xe-elite",category:"1/8-ebuggy",brand:"Team Losi Racing (TLR)",model:"8IGHT-XE Elite Race Kit",year:2020,type:"1/8 Electric Buggy",revisionGroup:"TLR 8IGHT-XE Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=TLR+8IGHT-XE+Elite+race+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"326–329 mm",Length:"498 mm",Width:"307 mm","Weight (kit, no electronics)":"~2,950 g","Chassis Material":"3mm 7075-T6 hard-anodized aluminum","Chassis Layout":"Wide/flat – premium version","Shock Type":"Big bore aluminum (3.5mm shafts)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"~98mm front / ~110mm rear (extended, XE Elite spec)","Stock Spring Rate (front)":"5.1 lb/in (TLR344019, blue, 16mm EVO)","Stock Spring Rate (rear)":"4.0 lb/in (TLR344016, orange, 16mm EVO)","Front Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion, carbon brace) — default: 5,000cSt","Rear Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 3,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"Pivot Ball — composite carrier, 17.5° stock caster (adjustable)","Rear Hub Design":"Aluminum rear hub carrier — A/B plate toe-in adjustment system; 5mm rear hub offset option (TLR344053)","Rear Arm Design":"Composite arm – XE Elite geometry","Chassis Braces":"Aluminum front brace, carbon center diff brace","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Machined 7075-T6 aluminum","Shock Tower (rear)":"Machined 7075-T6 aluminum","Motor Mount":"Inline/laydown adjustable","Gear Module":"MOD1","Spur Gear":"46T / 15T pinion",Battery:"4S LiPo","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Premium 8IGHT-XE with 3mm 7075-T6 aluminum chassis, 3.5mm shock shafts (verified), front universals, carbon center diff brace, and aluminum front brace. Top-spec TLR before the X/E 2.0 combo platform.",changes:["3mm 7075-T6 full aluminum chassis","3.5mm shock shafts for increased durability (verified via product specs)","Front universal driveshafts included","Carbon fiber center diff brace","Aluminum front brace added"]},{id:"tlr-8ight-xe-20",category:"1/8-ebuggy",brand:"Team Losi Racing (TLR)",model:"8IGHT-X/E 2.0 Race Kit",year:2023,type:"1/8 Electric Buggy",revisionGroup:"TLR 8IGHT-XE Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-losi-racing-8ightx-e-2.0-combo-nitro-electric-1-8-4x4-offroad-buggy-kit-tlr04012%2Fp1428789",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"323–328 mm",Length:"505 mm",Width:"308 mm","Weight (kit, no electronics)":"~2,850 g","Chassis Material":"3mm hard-anodized aluminum (wide layout)","Chassis Layout":"Wide, low CG mid-motor","Shock Type":"Big bore aluminum (12mm)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"~98mm front / ~112mm rear (extended, XE 4.0 spec)","Stock Spring Rate (front)":"5.1 lb/in (TLR344019, blue, 16mm EVO)","Stock Spring Rate (rear)":"4.0 lb/in (TLR344016, orange, 16mm EVO)","Front Diff":"Oil-filled gear diff (updated housing) — default: 5,
402000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,000cSt","Rear Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 3,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"Pivot Ball — composite carrier, 17.5° stock caster (adjustable)","Rear Hub Design":"Aluminum rear hub carrier — revised A/B plate system; wider toe-in tuning range vs Elite","Rear Arm Design":"Revised composite arm (more steering throw)","Chassis Braces":"Revised rear chassis brace (less twist)","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"7075-T6 machined aluminum (revised)","Shock Tower (rear)":"7075-T6 machined aluminum (revised)","Motor Mount":"Side (revised position for mass centralization)","Gear Module":"MOD1","Spur Gear":"46T / 15T pinion",Battery:"4S LiPo","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:'Note: The "8IGHT-XE 4.0" does not exist as a product on tlracing.com. The current TLR 1/8 electric platform is the 8IGHT-X/E 2.0 (TLR04012), sold as a combo nitro/electric kit. Refined in every area — lighter, stronger, more precise. All-gear diff system throughout. Revised motor mount position improves mass centralization.',changes:["Revised front suspension arms for more steering throw","Updated diff housing — stronger and easier to service","New motor mount position for better mass centralization","Revised rear chassis brace for less chassis twist","Updated shock pistons included","~50g lighter than Elite overall"]}],$z=[{id:"associated-rc8b3e",category:"1/8-ebuggy",brand:"Team Associated",model:"RC8B3e Team Kit",year:2015,type:"1/8 Electric Buggy",revisionGroup:"Team Associated RC8B3 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Associated+RC8B3e+team+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"323 mm (adjustable)",Length:"488 mm",Width:"~305 mm","Weight (kit, no electronics)":"~2,900 g","Chassis Material":"3mm 7075-T6 hard-anodized aluminum","Chassis Layout":"Mid-motor flat","Shock Type":"Big bore threaded aluminum","Shock Material":"Aluminum","Stock Shock Length (F/R)":"105mm front / 124mm rear (fully extended, per RC8B3.2e manual)","Stock Spring Rate (front)":"4.7 lb/in (grey, ASC81025, 70mm)","Stock Spring Rate (rear)":"~3.0 lb/in (green, ASC81029, 85mm)","Front Diff":"Oil-filled gear diff (44T ring/13T pinion, ASC81002/ASC81003) — default: 10,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 10,000cSt","Rear Diff":"Oil-filled gear diff (44T ring/13T pinion) — default: 7,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"Pivot Ball — composite, 17° stock caster (adjustable via shims)","Rear Hub Design":"Composite rear hub carrier — fixed knuckle with caster shim adjustment (RC8B3 spec)","Rear Arm Design":"Composite arm (RC8B3 design)","Chassis Braces":"Composite braces","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Aluminum (RC8B3 design)","Shock Tower (rear)":"Aluminum (RC8B3 design)","Motor Mount":"Side-mount","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"Full sealed bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Purpose-built 3mm 7075-T6 aluminum chassis designed from the ground up for electric power. Gear diffs throughout (44T ring/13T pinion). Shares ~90% parts with the RC8B3 nitro platform.",changes:[]},{id:"associated-rc8b31e",category:"1/8-ebuggy",brand:"Team Associated",model:"RC8B3.1e Team Kit",year:2019,type:"1/8 Electric Buggy",revisionGroup:"Team Associated RC8B3 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Associated+RC8B3.1e+team+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"323 mm (adjustable)",Length:"488 mm",W
402idth:"~305 mm","Weight (kit, no electronics)":"~2,900 g","Chassis Material":"3mm 7075-T6 hard-anodized aluminum","Chassis Layout":"Mid-motor flat","Shock Type":"Big bore threaded aluminum (dual-mode caps)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"105mm front / 124mm rear (fully extended)","Stock Spring Rate (front)":"4.7 lb/in (grey, ASC81025, 70mm)","Stock Spring Rate (rear)":"~3.0 lb/in (green, ASC81029, 85mm)","Front Diff":"Oil-filled gear diff (44T ring/13T pinion) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,000cSt","Rear Diff":"Oil-filled gear diff (44T ring/13T pinion) — default: 5,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"Pivot Ball — composite, 17° stock caster (adjustable via shims)","Rear Hub Design":"Composite rear hub carrier — updated 3.1e knuckle geometry; caster shim adjustment","Rear Arm Design":"Revised composite arm (3.1e geometry)","Chassis Braces":"Composite braces (updated)","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Aluminum (3.1e design)","Shock Tower (rear)":"Aluminum (3.1e design)","Motor Mount":"Side-mount","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"Full sealed bearings (AE race bearings)","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Refined over the RC8B3e with dual-mode shock caps (emulsion or bladder), revised suspension geometry, and updated shock towers. Gear diffs throughout.",changes:["Updated dual-mode shock caps (emulsion or bladder configurable)","Revised suspension arm geometry for improved handling","Updated rear hub carrier knuckle angles","Updated shock tower mounting positions"]},{id:"associated-rc8b32e",category:"1/8-ebuggy",brand:"Team Associated",model:"RC8B3.2e Team Kit",year:2021,type:"1/8 Electric Buggy",revisionGroup:"Team Associated RC8B3 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Associated+RC8B3.2e+team+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"~323 mm (varies with inserts)",Length:"486 mm",Width:"304.5 mm","Weight (kit, no electronics)":"~2,950 g","Chassis Material":"3mm 7075-T6 hard-anodized aluminum (ASC81460)","Chassis Layout":"Mid-motor flat","Shock Type":"Big bore aluminum (emulsion or bladder)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"105mm front / 124mm rear (fully extended, per RC8B3.2e manual)","Stock Spring Rate (front)":"4.7 lb/in (grey, ASC81025, 70mm)","Stock Spring Rate (rear)":"~3.0 lb/in (green, ASC81029, 85mm)","Front Diff":"Oil-filled gear diff (43T ring/13T pinion, ASC81468) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,000cSt","Rear Diff":"Oil-filled gear diff (43T ring/13T pinion, ASC81468) — default: 5,000cSt","Suspension Type":"Independent double wishbone with arm inserts","Front Hub Design":"Pivot Ball — composite, 17° stock caster (adjustable via shims)","Rear Hub Design":"Aluminum rear hub carrier (ASC81456) — wider rear stance via narrow arm mounts; caster shim adjustable","Rear Arm Design":"Longer composite arm with narrow rear arm mounts","Chassis Braces":"Aluminum/composite hybrid braces","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Aluminum (stock kit)","Shock Tower (rear)":"Aluminum (ASC81456)","Motor Mount":"Side-mount adjustable","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"Full bearing (AE race bearings)","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Latest RC8B revision with 3mm 7075-T6 aluminum chassis (ASC81460). Gear diffs throughout (43T ring/13T pinion). New aluminum rear hub carriers enable wider rear stance via narrow arm mounts.",changes:["New suspension arm insert system for adjustable flex tuning","Longer rear arms for improved corner stability","Aluminum rear hub carriers replace composite (wider stance via narrow arm mounts)","New stiff shock bladder system","Updated gear diff set (43T ring/13T pinion vs 44T)","Chamfered front chassis edges to reduce drag"]},{id:"associated-rc8b4e",category:"1/8-ebuggy",brand:"Team Associated",model:"RC8B4e Team Kit",year:2022,type:"1/8 Electric Buggy",revisionGroup:"Team Associated RC8B4 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-associated-rc8b4e-1-8-4wd-offroad-electric-buggy-kit-asc80946%2Fp1402931",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"321.5–329 mm (adjustable via arm mount inserts)",Length:"486 mm",Width:"304.5 mm","Weight (kit, no electronics)":"Varies (electronics/battery depen
402dent)","Chassis Material":"RC8B4e specific 7075 hard-anodized aluminum (ASC81569)","Chassis Layout":"Mid-motor flat; shorty-only battery (2x2S saddle or 1x4S)","Shock Type":"16mm aluminum (stiff bladder, RC8B3.2 shock cap with bleeder/emulsion combo insert)","Shock Material":"Aluminum","Shock Body Length (F/R)":"30.5mm front / 39.5mm rear","Shock Shaft (F/R)":"3.5x33.5mm TiN front / 3.5x42.5mm TiN rear","Shock Piston":"8x1.2mm tapered (front and rear)","Front Shock Fluid":"45wt (#5430)","Rear Shock Fluid":"40wt (#5423)","Stock Spring Rate (front)":"V2 Blue — 5.50 lb/in (ASC81225)","Stock Spring Rate (rear)":"V2 Green — 4.00 lb/in (ASC81236)","Front Diff":"Oil-filled gear diff (42T ring / 12T pinion, ASC81009/81379) — kit default: 5,000cSt (#5453)","Center Diff":"Oil-filled gear diff (42T ring / 12T pinion, same case as F/R) — kit default: 10,000cSt (#5455)","Rear Diff":"Oil-filled gear diff (42T ring / 12T pinion, ASC81009/81379) — kit default: 5,000cSt (#5453)","Spur Gear":"46T plastic (ASC81389)","Suspension Type":"Independent double wishbone with arm mount inserts (flex tunable)","Front Hub Design":"Pivot Ball — 8° inclined KPI steering blocks with wider upper arm pivot","Front Steering Block Arm":"+2° (ASC81063)","Front CVA Bones":"93mm (ASC81497)","Rear Hub Design":"Symmetrical L/R common rear hub with axle height inserts (adjustable roll center); 8x16x5mm flanged bearing standard (ASC91565); accepts 15x21x4mm as tuning option","Rear Arm Design":"New composite arm with flex/stiffness tuning via inserts; narrow C/D arm mounts (ASC81454/81455)","Chassis Braces":"RC8B4e carbon fiber front top plate with offset brace (ASC81576); centrally-mounted rear brace with 3-position flex tuning","Anti-Roll Bar (front)":"2.2mm included (ASC81129)","Anti-Roll Bar (rear)":"2.4mm included (ASC81140)","Shock Tower (front)":"Aluminum (ASC81502); recessed arm insert pocket","Shock Tower (rear)":"Aluminum","Motor Mount":"Two-piece clamping side-mount (adjustable forward/rear for FWB or RWB)","Gear Module":"MOD1",Battery:"1x 4S shorty LiPo OR 2x 2S shorty LiPo (saddle pack)","Ball Bearings":"Full bearing; 6x13x5mm flanged (ASC91559) at gearboxes; 8x16x5mm (ASC91564) at diffs; 8x16x5mm flanged (ASC91565) at steering knuckles","Body Included":"Yes — RC8B4e Gamma (uncut/unpainted); includes traditional nose cone, mid-height wing, and tall-height wing gearbox noses","ROAR Approved":"Yes"},notes:"Major platform overhaul from RC8B3 series. Shorty-only battery layout with centrally-mounted center diff. V3 42T/12T gear diffs throughout. New 8° KPI front geometry. Spur gear is 46T (not 48T). Center diff uses 10,000cSt vs 5,000cSt in front/rear.",changes:["New shorty-only 2-configuration battery layout (2x2S saddle or 1x4S)","Centrally-mounted center diff with inline center dogbones for equalized balance","New 8° inclined KPI steering blocks with wider upper suspension arm pivot","Front and rear gearboxes redesigned with 6x13x5mm flanged bearings","Front gearbox 3.5° inclined pinion angle to reduce driveshaft phasing and vibration","V3 differentials: 42T ring / 12T pinion (replaces 44T/13T on RC8B3 series)","Spur gear: 46T plastic (ASC81389)","New symmetrical rear hub with axle height inserts for roll center tuning","New centrally-mounted rear chassis brace with 3-position flex tuning","Captured 93mm CVA front driveshafts","RC8B4e-specific 7075 aluminum chassis with widened kick-up area and droop tab reinforcement","New narrower side guards with integrated wire routing (>1 inch narrower than RC8B3.2e)"]},{id:"associated-rc8b4-2e",category:"1/8-ebuggy",brand:"Team Associated",model:"RC8B4.2e Team Kit",year:2026,type:"1/8 Electric Buggy",revisionGroup:"Team Associated RC8B4 Series",price:"Check latest price",availability:"Current",affiliateKey:"associated-rc8b42e",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-associated-rc8b4.2e-1-8-4wd-offroad-electric-buggy-team-kit-asc80955%2Fp1829687",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"Varies (adjustable via arm mount inserts)",Length:"486 mm",Width:"304.5 mm","Weight (kit, no electronics)":"Varies (electronics/battery depen
402dent)","Chassis Material":"RC8B4.1 FWB/RWB specific 7075 hard-anodized aluminum (ASC81644) — same as B4.1","Chassis Layout":"RWB/FWB selectable weight bias; shorty-only battery (2x2S saddle or 1x4S)","Shock Type":"16mm aluminum (includes both stiff bladder ASC81453 and emulsion seal ASC81184)","Shock Material":"Aluminum","Kit Start Shock Length (F)":"101mm (per manual droop settings — same as B4.1)","Shock Piston":"Tapered piston (taper down installation per manual)","Front Shock Fluid":"40wt (#5423) — reduced from 45wt on RC8B4.1e","Rear Shock Fluid":"Per RC8B4.2e setup sheet","Stock Spring Rate (front)":"Green — 4.85 lb/in, L68, 8.00T, 1.5D (reduced from 5.10 lb/in White on RC8B4.1e)","Stock Spring Rate (rear)":"Green — 4.85 lb/in, L68 (per RC8B4.2e manual)","Front Diff":"Oil-filled gear diff (44T ring / 13T pinion, ASC81468; HTC gearset) — kit default: 15,000cSt (#5447)","Center Diff":"New high-volume oil-filled gear diff (ASC81705 gasket; 19mm HTC kit setup, 20mm HTC also included) — kit default: TBD","Rear Diff":"Oil-filled gear diff (44T ring / 13T pinion, ASC81468; HTC gearset) — kit default: 5,000cSt (#5453)","Spur Gear":"47T machined steel (new — replaces 46T plastic on RC8B4.1e)","Internal Gear Ratio":"3.38:1","Suspension Type":"Independent double wishbone with arm mount inserts","Front Hub Design":"Pivot Ball — 8° KPI steering blocks; new offset hub geometry vs B4.1","Front CVA Bones":"92mm universals with 17mm outdrives (ASC81469)","Rear Hub Design":"New offset rear hubs with updated geometry; adjustable height inserts (ASC81689/81690)","Rear Arm Design":"Updated soft blend composite arms to accommodate new offset hub geometry","Chassis Braces":"RC8B4.1 FWB/RWB chassis (ASC81644) retained with RWB/FWB motor position swap","Anti-Roll Bar (front)":"Included (per RC8B4 series standard)","Anti-Roll Bar (rear)":"Included","Shock Tower (front)":"Aluminum — kit includes standard tower; optional 16° KPI tower (ASC81691) available","Shock Tower (rear)":"Aluminum","Motor Mount":"Two-piece clamping; RWB or FWB position (swap motor and center diff adapter plate)","Gear Module":"MOD1",Battery:"1x 4S shorty LiPo OR 2x 2S shorty LiPo (saddle pack); adjustable tray with hook and loop strap","Ball Bearings":"Full bearing; includes FT hard-anodized aluminum shock bushings","Body Included":"Yes — new high-downforce wing included; uncut/unpainted body","ROAR Approved":"Yes"},notes:"RC8B4.2e (ASC80955) — announced May 2026, shipping June 2026, pre-order price $679.99. Key upgrades over RC8B4.1e: new molded height-adjustable front and rear gearboxes (ASC81687/81688) with pinion height inserts (0/+1/+2 positions); new offset rear hubs and updated rear suspension arms for new hub geometry; new high-volume center differential with unique gasket (ASC81705); both 19mm and 20mm HTC differential gearsets included; new 47T machined steel spur gear (replaces 46T plastic); new high-downforce wing; now includes FT hard-anodized aluminum shock bushings. Front diff oil increased to 15,000cSt vs 15k on B4.1 (same); rear reduced to 5,000cSt vs 10k on B4.1 (lighter rear). Front shock fluid reduced from 45wt to 40wt. Retains RWB/FWB adjustable weight bias chassis from B4.1.",changes:["New molded height-adjustable front gearbox (ASC81687) with 0/+1/+2 pinion height inserts","New molded height-adjustable rear gearbox (ASC81688) with adjustable diff height inserts (ASC81689/81690)","New offset front and rear hubs with updated geometry","Updated rear suspension arms to accommodate new offset hub geometry","New high-volume center differential with new center diff gasket (ASC81705)","Both 19mm and 20mm HTC internal differential gear sets included in kit","New 47T machined steel spur gear (replaces 46T plastic ASC81389 on RC8B4.1e)","New high-downforce wing","Now includes FT hard-anodized aluminum shock bushings","Front shock fluid reduced: 40wt (vs 45wt on RC8B4.1e)","Front spring changed: Green 4.85 lb/in L68 (vs White 5.10 lb/in on RC8B4.1e)","Rear diff oil reduced to 5,000cSt (vs 10,000cSt on RC8B4.1e)","Optional 16° KPI front shock tower available (ASC81691)"]},{id:"associated-rc8b4-1e",category:"1/8-ebuggy",brand:"Team Associated",model:"RC8B4.1e Team Kit",year:2024,type:"1/8 Electric Buggy",revisionGroup:"Team Associated RC8B4 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-associated-rc8b4.1e-team-1-8-4wd-offroad-electric-buggy-kit-asc80950%2Fp1535760",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"323 mm",Length:"486 mm",Width:"304.5 mm","Weight (kit, no electronics)":"Varies (electronics/battery depen
402dent)","Chassis Material":"RC8B4.1 FWB/RWB specific 7075 hard-anodized aluminum (ASC81644)","Chassis Layout":"RWB/FWB selectable weight bias; shorty-only battery (2x2S saddle or 1x4S)","Shock Type":"16mm aluminum (emulsion seal, RC8B3.2 shock cap)","Shock Material":"Aluminum","Shock Body Length (F/R)":"26.5mm front (ASC81162) / 36.5mm rear (ASC81163) — 4mm shorter than RC8B4e","Shock Shaft (F/R)":"3.5x33.5mm TiN front / 3.5x42.5mm TiN rear (same shafts as RC8B4e)","Shock Piston":"6-hole 6x1.4mm flat front (ASC81597) / 6-hole 6x1.5mm tapered rear (ASC81598)","Front Shock Fluid":"45wt (#5430)","Rear Shock Fluid":"30wt (#5422) — lighter than RC8B4e (40wt)","Stock Spring Rate (front)":"V2 White — 5.10 lb/in, L70, 9.25T, 1.6D (ASC81223)","Stock Spring Rate (rear)":"V2 Pink — 3.70 lb/in, L86, 12.00T, 1.6D (ASC81233)","Front Diff":"Oil-filled gear diff (44/13 bevel ring/pinion ASC81468; 18T LTC sun gear ASC81383) — kit default: 15,000cSt (#5447)","Center Diff":"Oil-filled gear diff (same 44/13 bevel case; HTC gearset: 20T sun ASC81380, 10T planet HTC ASC81380) — kit default: 10,000cSt (#5455)","Rear Diff":"Oil-filled gear diff (44/13 bevel ring/pinion ASC81468; 18T LTC sun gear ASC81383) — kit default: 10,000cSt (#5455)","Spur Gear":"46T plastic (ASC81389)","Suspension Type":"Independent double wishbone with arm mount inserts","Front Hub Design":"Pivot Ball — RC8B4 8° KPI steering blocks; blue aluminum front upper arm mount (ASC81647)","Front Steering Block Arm":"+1° (ASC81640) — new, replaces +2° arm from RC8B4e","Front CVA Bones":"92mm universals with 17mm outdrives (ASC81469)","Kit Front Shock Length":"101mm (starting point per manual)","Rear Hub Design":"Wide footprint base rear hubs (ASC81642) with 3mm carbon fiber hub towers (ASC81649, standard); 3 fixed axle heights; 8x16x5mm bearing (ASC91564)","Rear Arm Design":"3-hole composite soft blend arms (ASC81638) with updated rear anti-roll bar geometry for smooth and bumpy tracks","Center Dogbones":"FWB mode: 104mm front (ASC81581) / 96.5mm rear (ASC81646); RWB mode: 96.5mm front / 104mm rear (flip to swap)","Chassis Braces":"RC8B4e front top plate (ASC81578) reused; rear brace (ASC81525) updated for RWB/FWB motor position","Anti-Roll Bar (front)":"2.2mm included (ASC81129)","Anti-Roll Bar (rear)":"2.5mm included (ASC81140) — increased from 2.4mm on RC8B4e","Shock Tower (front)":"New low-CG aluminum B4.1 front shock tower — 26.5mm (ASC81632)","Shock Tower (rear)":"New low-CG aluminum B4.1 rear shock tower — 36.5mm (ASC81634)","Motor Mount":"Two-piece clamping; shifts forward (FWB) or rearward (RWB) — center diff adapter plate also swaps","Gear Module":"MOD1",Battery:"1x 4S shorty LiPo OR 2x 2S shorty LiPo (saddle pack)","Ball Bearings":"Full bearing; 6x13x5mm flanged (ASC91559) at gearboxes; 8x16x5mm (ASC91564) at diffs and rear hubs; 8x16x5mm flanged (ASC91565) at front steering knuckles","Body Included":"Yes — RC8B4 Gamma (uncut/unpainted); includes traditional nose cone, mid-height wing, and tall-height wing gearbox noses","ROAR Approved":"Yes"},notes:"Revision of RC8B4e with selectable RWB/FWB weight bias via motor and center diff position swap. Lower CG via shorter shock bodies (26.5/36.5mm vs 30.5/39.5mm) and new low-CG aluminum shock towers. New 3-hole rear arms for softer spring packages on bumpy outdoor tracks. F/R diffs use higher viscosity oil than RC8B4e (15k/10k vs 5k/5k). Center diff uses HTC gearset while F/R use LTC — important for maintenance.",changes:["New RWB/FWB adjustable weight bias chassis (ASC81644) — motor and center diff adapter plate swap position","New low-CG aluminum front shock tower 26.5mm (ASC81632) and rear shock tower 36.5mm (ASC81634)","Shorter shock bodies: 26.5mm front / 36.5mm rear (4mm shorter than RC8B4e each)","New 6-hole machined shock pistons: 6x1.4mm flat front (ASC81597) / 6x1.5mm taper rear (ASC81598)","Emulsion seal cap replaces stiff bladder cap from RC8B4e; rear shock fluid reduced from 40wt to 30wt","New 3-hole rear suspension arms (ASC81638, soft blend) with updated anti-roll bar geometry","New wide footprint rear hubs (ASC81642) with 3mm carbon fiber hub towers (ASC81649)","New +1° steering block arms (ASC81640) — replaces +2° from RC8B4e for sharper low-grip steering","New blue aluminum front upper arm mount (ASC81647)","New molded RC8B4.1 front bumper (ASC81643) with optimized profile for bumpy transitions","92mm universal driveshafts with 17mm outdrives (ASC81469) — replaces 93mm CVA bones from RC8B4e","44/13 bevel gear set (ASC81468) with 18T LTC sun gears in F/R diffs (vs 42T/12T with 20T HTC in RC8B4e)","Higher default diff fluids: 15,000cSt front / 10,000cSt rear and center (vs 5k/5k/10k on RC8B4e)","Rear anti-roll bar increased to 2.5mm (vs 2.4mm on RC8B4e)"]}],Qz=[{id:"mugen-mbx7r-eco",category:"1/8-ebuggy",brand:"Mugen Seiki",model:"MBX7R ECO",year:2015,type:"1/8 Electric Buggy",revisionGroup:"Mugen Seiki MBX7 ECO Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Mugen+MBX7R+ECO+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"318–336 mm",Length:"497 mm",Width:"307 mm","Weight (kit, no electronics)":"~3,000 g","Chassis Material":"3mm 7075 hard-anodized aluminum","Chassis Layout":"Mid-motor","Shock Type":"Big bore threaded aluminum","Shock Material":"Aluminum","Stock Shock Length (F/R)":"~107mm front / ~118mm rear (extended)","Stock Spring Rate (front)":"~medium (1.6mm/9.0T, 70mm, E2517)","Stock Spring Rate (rear)":"~soft (1.6mm/10.5T, 86mm, E0554)","Front Diff":"Oil-filled HTD gear diff (E2238, 10T pinion) — default: 7,000cSt","Center Diff":"Oil-filled HTD gear diff (E2238) — default: 7,000cSt","Rear Diff":"Oil-filled HTD gear diff (E2238, 10T pinion) — default: 5,
402000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"Pillow Ball — upright, 1.5° KPI, caster fixed (~16°, aluminum options available)","Rear Hub Design":"Composite rear hub carrier — Mugen pillow ball upright design (MUGE2131a); toe-in set by arm mount position","Rear Arm Design":"Composite arm – MBX7R geometry","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Carbon fiber (Mugen standard)","Shock Tower (rear)":"Carbon fiber (Mugen standard)","Motor Mount":"Side adjustable","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo (side-by-side 2S or inline 4S)","Ball Bearings":"Acer Racing full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Electric conversion of the Mugen MBX7R nitro buggy. HTD gear diffs throughout (E2238 10T pinion). Carbon fiber shock towers were Mugen's signature differentiator. Very popular at national-level competition.",changes:[]},{id:"mugen-mbx8-eco",category:"1/8-ebuggy",brand:"Mugen Seiki",model:"MBX8 ECO",year:2019,type:"1/8 Electric Buggy",revisionGroup:"Mugen Seiki MBX8 ECO Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Mugen+MBX8+ECO+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"318–336 mm",Length:"497 mm",Width:"307 mm","Weight (kit, no electronics)":"~3,050 g","Chassis Material":"3mm aluminum (MUGE2424)","Chassis Layout":"Flat / laydown","Shock Type":"Big bore aluminum (bladder, 16mm)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"107mm front / 118.5mm rear (extended, per Mugen setup sheet)","Stock Spring Rate (front)":"1.6mm wire / 9T coils, 70mm (E2517) — medium","Stock Spring Rate (rear)":"1.6mm wire / 10.5T coils, 86mm (E0554) — soft","Front Diff":"Oil-filled HTD gear diff (13T bevel / 44T conical) — default: 7,000cSt","Center Diff":"Oil-filled HTD gear diff (E2258B composite spur) — default: 7,000cSt","Rear Diff":"Oil-filled HTD gear diff (13T bevel / 44T conical) — default: 5,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"Pillow Ball — trailing upright (E2147 stock); 1.5° KPI; caster fixed (~16°); optional inline uprights (E2146) available","Rear Hub Design":"Composite rear hub carrier — pillow ball design (MUGE2131a / E2131); removable gearbox for diff service without removing arm mounts","Rear Arm Design":"Box-shaped composite arm with arm stiffeners (impact-resistant material); adjustable hardness via optional CFRP plates","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum – 5mm CNC machined (stock kit, MUGE2562)","Shock Tower (rear)":"Aluminum – 5mm CNC machined (stock kit, MUGE2563)","Motor Mount":"Adjustable laydown","Gear Module":"MOD1","Spur Gear":"46T (HTD molded plastic)",Battery:"4S LiPo (positioned further forward than MBX7R ECO)","Ball Bearings":"Acer Racing full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"ECO is the electric conversion of the MBX8 nitro platform. HTD gear diffs with straight-cut 13T bevel / 44T conical gears throughout (not 10T pinion as in MBX7R ECO). New gearbox design allows diff service without removing suspension arm mounts. Stock front uprights are trailing type (E2147); inline uprights (E2146) available as option.",changes:[]},{id:"mugen-mbx8-eco-te",category:"1/8-ebuggy",brand:"Mugen Seiki",model:"MBX8 ECO Team Edition",year:2020,type:"1/8 Electric Buggy",revisionGroup:"Mugen Seiki MBX8 ECO Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Mugen+MBX8+ECO+Team+Edition&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"318–336 mm",Length:"497 mm",Width:"307 mm","Weight (kit, no electronics)":"~3,050 g","Chassis Material":"3mm aluminum (MUGE2424)","Chassis Layout":"Flat / laydown; 4S LiPo forward-positioned battery tray","Shock Type":"Big bore aluminum (bladder, 16mm)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"
402107mm front / 118.5mm rear (extended)","Stock Spring Rate (front)":"1.6mm wire / 9T coils, 70mm (E2517) — medium","Stock Spring Rate (rear)":"1.6mm wire / 10.5T coils, 86mm (E0554) — soft","Front Diff":"Oil-filled HTD gear diff (13T bevel / 44T conical) — default: 7,000cSt","Center Diff":"Oil-filled HTD gear diff (E2258B composite spur) — default: 7,000cSt","Rear Diff":"Oil-filled HTD gear diff (13T bevel / 44T conical) — default: 5,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"Pillow Ball — inline upright (E2146, TE standard); 1.5° KPI; caster fixed (~16°); smoother steering vs trailing uprights; compatible with CVA and universal driveshafts","Rear Hub Design":"Composite rear hub carrier — pillow ball design; removable gearbox for diff service without removing arm mounts","Rear Arm Design":"Box-shaped composite arm with arm stiffeners; adjustable hardness via optional CFRP plates","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum – 5mm CNC machined (MUGE2562)","Shock Tower (rear)":"Aluminum – 5mm CNC machined (MUGE2563)","Motor Mount":"Adjustable laydown","Gear Module":"MOD1","Spur Gear":"46T (HTD molded plastic)",Battery:"4S LiPo (positioned further forward than MBX7R ECO)","Ball Bearings":"Acer Racing full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"MBX8 ECO base kit bundled with option parts from the MBX8 Worlds Edition as standard: inline front uprights (E2146), -3mm front upright arm (E2168), 1mm wide offset wheel hubs (E0240), center dogbone driveshafts (E2260/E2261/E2262), and +15mm wing stay (E2428). Center dogbones: 84.5mm front (E2261) / 115mm rear (E2262).",changes:["Inline front uprights (E2146) included as standard — smoother steering vs trailing E2147; high traction conditions","-3mm front upright arm (E2168) included as standard — improved initial steering, stable mid/exit, reduced bump steer","1mm wide offset wheel hubs (E0240) included as standard — improved stability and cornering","Center joint cup (E2260), 84.5mm front dogbone (E2261), 115mm rear dogbone (E2262) included — improved drivetrain efficiency and traction vs stock universals","+15mm wing stay (E2428) included as standard — increased mid-corner rotation and high-speed stability"]},{id:"mugen-mbx8r-eco",category:"1/8-ebuggy",brand:"Mugen Seiki",model:"MBX8R ECO",year:2022,type:"1/8 Electric Buggy",revisionGroup:"Mugen Seiki MBX8 ECO Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fmugen-seiki-mbx8r-eco-1-8-offroad-competition-electric-buggy-kit-muge2028%2Fp1417824",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"318–336 mm",Length:"497 mm",Width:"307 mm","Weight (kit, no electronics)":"~2,900 g","Chassis Material":"3mm hard-anodized aluminum — additional machining for increased droop and ground clearance; beveled front edge","Chassis Layout":"Flat / laydown; two-piece battery tray accepts 4S shorty or standard full-size 4S","Shock Type":"Big bore aluminum — emulsion caps (E2572) included as standard","Shock Material":"Aluminum","Stock Shock Length (F/R)":"107mm front / 118.5mm rear (extended)","Stock Spring Rate (front)":"1.6mm wire / 9T coils, 70mm (E2517) — medium","Stock Spring Rate (rear)":"1.6mm wire / 10.5T coils, 86mm (E0554) — soft","Front Diff":"Oil-filled HTD gear diff (13T bevel / 44T conical; 20T internal gears) — default: 7,000cSt","Center Diff":"Oil-filled HTD gear diff (20T internal gears; new lightweight cover with lightening holes) — default: 7,000cSt","Rear Diff":"Oil-filled HTD gear diff (13T bevel / 44T conical; 20T internal gears) — default: 5,000cSt","Suspension Type":"Independent double wishbone; new longer box-shaped arms with stiffeners; narrow RF(C)/RR(D) pivot blocks with pivot inserts","Front Hub Design":"Pillow Ball — trailing upright (E2147 stock); new front shock tower and upper arm mount with pivot inserts; 1.5° KPI","Rear Hub Design":"New molded composite uprights with CFRP plates for adju
402stable rear roll center; new narrow C/D pivot blocks with inserts","Rear Arm Design":"New longer box-shaped composite arms (MBX8R geometry) — impact-resistant material; arm stiffeners included; adjustable hardness via optional CFRP plates","Chassis Braces":"Composite; new sway bar collars to reduce lateral sway bar movement","Anti-Roll Bar (front)":"Not included — available as option; sway bar collars included to reduce lateral movement","Anti-Roll Bar (rear)":"Not included — available as option; sway bar collars included to reduce lateral movement","Shock Tower (front)":"Aluminum — new design with pivot inserts","Shock Tower (rear)":"Aluminum","Motor Mount":"Adjustable laydown","Gear Module":"MOD1","Spur Gear":"46T (HTD molded plastic)",Battery:"4S LiPo — shorty or standard full-size; two-piece tray with individual straps (380mm shorty / 455mm standard)","Ball Bearings":"Acer Racing full bearings","Body Included":"Yes — new lightweight high-downforce IFMAR-legal wing; revised rear wing mount; aluminum wing button","ROAR Approved":"Yes"},notes:"Current and latest Mugen Seiki eBuggy kit. Based on MBX8R nitro geometry developed through 2021 race season (Ryan Maifield ROAR National Champion). HTD diffs updated with 20T internal gears for improved consistency. Notable: accepts full-size standard 4S packs in addition to shorty — unlike many competitors that are shorty-only.",changes:["New longer rear arms and suspension geometry from MBX8R nitro platform","New narrow RF(C) and RR(D) pivot blocks with pivot inserts for increased tuneability","New molded rear uprights with CFRP plates for adju
402stable rear roll center","New front shock tower and upper front arm mount with pivot inserts","HTD diffs updated with 20T internal gears (improved consistency and smoothness)","Emulsion shock caps (E2572) included as standard — replaces bladder cap as default","New two-piece battery tray — accepts 4S shorty (380mm) or standard full-size (455mm) with individual straps","Chassis updated for MBX8R geometry; additional droop machining; beveled front edge for ground clearance","New sway bar collars to reduce lateral sway bar movement","Updated center diff cover with lightening holes (lighter weight)","Aluminum wing button included","New lightweight high-downforce IFMAR-legal wing with revised rear wing mount for additional downforce"]}],Zz=[{id:"hb-e8-rs",category:"1/8-ebuggy",brand:"HB Racing",model:"E8 RS (Club Edition)",year:2021,type:"1/8 Electric Buggy",revisionGroup:"HB E8 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fhb-racing-e8-world-spec-1-8-4wd-electric-offroad-buggy-kit-hbs204855%2Fp1518073",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"318–335 mm",Length:"495 mm",Width:"308 mm","Weight (kit, no electronics)":"~3,050 g","Chassis Material":"7075 aircraft-grade aluminum","Chassis Layout":"Flat wide chassis","Shock Type":"Big bore aluminum (16mm)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"~100mm front / ~112mm rear (extended)","Stock Spring Rate (front)":"~5.0 lb/in (medium, HB stock blue spring)","Stock Spring Rate (rear)":"~3.8 lb/in (medium, HB stock blue/83mm, HB109814)","Front Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,000cSt","Rear Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 3,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"C-Hub — composite, 17.5° stock caster (verified); 22.5° option available","Rear Hub Design":"Composite rear hub carrier — graphite composite plates (HBS67204); E8/D8T cross-compatible","Rear Arm Design":"Composite arm – E8 geometry","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Composite","Shock Tower (rear)":"Composite","Motor Mount":"Adjustable inline","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Budget-friendly entry into the HB E8 electric platform. 7075 aircraft-grade aluminum chassis but composite shock towers and hubs to reduce cost. Gear diffs throughout. Stock caster is 17.5° (verified). Fully upgradeable to E8 World Spec parts.",changes:[]},{id:"hb-e8-world-spec",category:"1/8-ebuggy",brand:"HB Racing",model:"E8 World Spec",year:2022,type:"1/8 Electric Buggy",revisionGroup:"HB E8 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fhb-racing-e8-world-spec-1-8-4wd-electric-offroad-buggy-kit-hbs204855%2Fp1518073",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"318–335 mm",Length:"495 mm",Width:"308 mm","Weight (kit, no electronics)":"~3,100 g","Chassis Material":"7075 aircraft-grade aluminum (HBS204859)","Chassis Layout":"Flat wide chassis","Shock Type":"Big bore aluminum (16mm)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"~100mm front / ~112mm rear (extended, E8 WS spec)","Stock Spring Rate (front)":"~5.0 lb/in (medium, HB stock blue spring)","Stock Spring Rate (rear)":"~3.8 lb/in (blue, 83mm, HB109814)","Front Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion, split mount) — default: 5,
402000cSt","Rear Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 3,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"C-Hub — composite, 17.5° stock caster (verified); 22.5° option available","Rear Hub Design":"Lightweight aluminum rear hub carriers (HBS204865) — CNC machined; graphite composite plates; E8T truggy cross-compatible","Rear Arm Design":"Composite arm – HB E8 World Spec geometry","Chassis Braces":"Composite with additional sway bar link positions","Anti-Roll Bar (front)":"Not included — available as option (additional sway bar link positions on chassis)","Anti-Roll Bar (rear)":"Not included — available as option (additional sway bar link positions on chassis)","Shock Tower (front)":"Aluminum – hard anodized (stock on World Spec)","Shock Tower (rear)":"Aluminum – hard anodized (stock on World Spec)","Motor Mount":"Adjustable inline","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"IFMAR World Championship-level electric platform. Gear diffs throughout. 7075 aluminum chassis (HBS204859), CNC-machined lightweight aluminum rear hub carriers cross-compatible with E8T truggy. Stock caster is 17.5° (verified).",changes:[]}],Jz=[{id:"kyosho-mp9e-tki4",category:"1/8-ebuggy",brand:"Kyosho",model:"Inferno MP9e TKI4",year:2016,type:"1/8 Electric Buggy",revisionGroup:"Kyosho Inferno MP9e Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Kyosho+MP9e+TKI4+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"325 mm (adjustable)",Length:"490 mm",Width:"307 mm","Weight (kit, no electronics)":"~3,050 g","Chassis Material":"3.5mm CNC hard-anodized aluminum","Chassis Layout":"Mid-motor","Shock Type":"Aluminum oil-filled (16mm)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"70mm spring / front shock; 81mm spring / rear shock (Kyosho MP9 platform)","Stock Spring Rate (front)":"~4.5 lb/in (silver, IF350-6514, 70mm)","Stock Spring Rate (rear)":"~3.0 lb/in (silver/blue, IF385, 81mm)","Front Diff":"Oil-filled gear diff (bevel IF402, 10T/20T ratio) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel IF402) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (bevel IF402, 10T/20T ratio) — default: 3,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"C-Hub — composite, 17.5° stock caster (verified on MP9e Evo); aluminum upgrade available","Rear Hub Design":"Metal rear hub carrier — solid knuckle design; caster angle adjustable via C-hub collar and rear arm mount","Rear Arm Design":"MP9 TKI4 platform composite arm","Chassis Braces":"Composite chassis braces","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum (TKI4 design)","Shock Tower (rear)":"Aluminum (TKI4 design)","Motor Mount":"Adjustable metal mount","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"18 full rubber-sealed bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Gear diffs throughout (IF402 bevel 10T/20T). Metal rear hub carriers. 3.5mm CNC aluminum chassis. Factory pre-filled oil shocks. Stock caster is 17.5° (verified on MP9e Evo series).",changes:[]},{id:"kyosho-mp9e-evo",category:"1/8-ebuggy",brand:"Kyosho",model:"Inferno MP9e Evo",year:2018,type:"1/8 Electric Buggy",revisionGroup:"Kyosho Inferno MP9e Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Kyosho+MP9e+Evo+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"325 mm (adjustable)",Length:"490 mm",Width:"307 mm","Weight (kit, no electronics)":"~3,050 g","Chassis Material":"3.5mm CNC hard-anodized aluminum","Chassis Layout":"Mid-motor","Shock Type":"Aluminum oil-filled (16mm)","Shock Material":"Aluminum","Front Diff":"Oil-filled gear diff (bevel IF402, 10T/20T ratio) — default: 5,
402000cSt","Center Diff":"Oil-filled gear diff (bevel IF402) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (bevel IF402, 10T/20T ratio) — default: 3,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"C-Hub — composite, 17.5° stock caster (verified); aluminum upgrade available","Rear Hub Design":"Metal rear hub carrier — refined Evo geometry; wider tuning range via rear arm adjustment","Rear Arm Design":"MP9e Evo composite arm (refined)","Chassis Braces":"Composite chassis braces","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum (Evo design)","Shock Tower (rear)":"Aluminum (Evo design)","Motor Mount":"Adjustable metal mount (1.0 module gear)","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"18 full rubber-sealed bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Gear diffs throughout (IF402 bevel). Metal rear hub carriers. 3.5mm CNC aluminum chassis. Stock caster is 17.5° (verified). Refined MP9e Evo geometry. Available as Kit or ReadySet RTR.",changes:[]},{id:"kyosho-mp10e",category:"1/8-ebuggy",brand:"Kyosho",model:"Inferno MP10e",year:2020,type:"1/8 Electric Buggy",revisionGroup:"Kyosho Inferno MP10e Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fkyosho-inferno-mp10e-1-8-4wd-brushless-electric-buggy-kit-kyoif600%2Fp1225102",affiliateLabel:"Find on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"324–335 mm",Length:"497 mm",Width:"310 mm","Weight (kit, no electronics)":"~3,100 g","Chassis Material":"3mm CNC 7075 hard-anodized aluminum (IF555)","Chassis Layout":"Flat/laydown","Shock Type":"Big bore aluminum (factory pre-filled)","Shock Material":"Aluminum","Front Diff":"Oil-filled gear diff (bevel IF402, 10T/20T; 12T/18T steel upgrade IFW622) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel IF402; smaller center housing on MP10) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (bevel IF402, 10T/20T; 12T/18T steel upgrade IFW622) — default: 3,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"C-Hub — composite, 17.5° stock caster (aluminum and KPI options available)","Rear Hub Design":"Metal rear hub carrier — solid MP10 knuckle; caster and toe set via rear arm/hub collar; wider range than MP9","Rear Arm Design":"MP10 platform composite arm","Chassis Braces":"Composite chassis braces","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum (stock kit)","Shock Tower (rear)":"Aluminum (stock kit)","Motor Mount":"1.0-module metal gear adjustable","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"18 full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Gear diffs throughout (IF402 bevel; steel 12T/18T upgrade available IFW622). 3mm 7075 aluminum chassis (IF555). 1.0-module metal spur gear more durable than plastic. Factory pre-filled shocks. Succeeded by the MP10e TKI2.",changes:[]},{id:"kyosho-mp10e-tki2",category:"1/8-ebuggy",brand:"Kyosho",model:"Inferno MP10e TKI2",year:2022,type:"1/8 Electric Buggy",revisionGroup:"Kyosho Inferno MP10e Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fkyosho-inferno-mp10e-tki2-1-8-4wd-brushless-electric-buggy-kit-kyokyo34116%2Fp1469971",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"320–335 mm",Length:"497 mm",Width:"310 mm","Weight (kit, no electronics)":"~3,100 g","Chassis Material":"3mm CNC 7075 hard-anodized aluminum","Chassis Layout":"Flat/laydown","Shock Type":"Big bore aluminum (factory pre-filled)","Shock Material":"Aluminum","Front Diff":"Oil-filled gear diff (bevel IF402;
402 steel 12T/18T gearing IFW622) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel IF402) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (bevel IF402; steel 12T/18T gearing IFW622) — default: 3,000cSt","Suspension Type":"Independent double wishbone; TKI2 updated geometry","Front Hub Design":"Updated TKI2 hub carriers; adjustable caster and KPI options","Rear Hub Design":"Metal rear hub carrier — TKI2 geometry updates for improved traction and stability","Rear Arm Design":"MP10 TKI2 updated composite arm","Chassis Braces":"Composite chassis braces","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum (TKI2 design)","Shock Tower (rear)":"Aluminum (TKI2 design)","Motor Mount":"1.0-module metal gear adjustable","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"18 full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Updated revision of the MP10e with TKI2 geometry improvements. Current Kyosho eBuggy kit preceding the MP11e. Shares the same core drivetrain as MP10e with updated suspension geometry for improved handling balance.",changes:["Updated TKI2 front hub carrier geometry for improved steering feel","Updated rear hub carrier geometry for improved traction and stability","Revised suspension arm geometry (TKI2 spec)","Updated shock tower mounting positions"]},{id:"kyosho-mp11e",category:"1/8-ebuggy",brand:"Kyosho",model:"Inferno MP11e",year:2026,type:"1/8 Electric Buggy",revisionGroup:null,price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fkyosho-inferno-mp10e-tki2-1-8-4wd-brushless-electric-buggy-kit-kyokyo34116%2Fp1469971",affiliateLabel:"Find on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"325 mm",Length:"490 mm",Width:"307 mm","Chassis Height":"28 mm","Weight (kit, no electronics)":"Not published","Chassis Material":"3mm A7050 duralumin (true hard anodized)","Chassis Layout":"Front-motor flat; split left-right battery layout for low CG","Shock Type":"Big bore threaded aluminum, pressure/diaphragm type (long diaphragm oil shocks)","Shock Material":"Aluminum with hard-plated threaded body for smooth operation","Shock Piston":"Front: Φ1.2mm x 8-hole; Rear: not specified in available documentation","Stock Shock Length (F/R)":"Not specified in available documentation","Stock Spring Rate (front)":"Not specified in available documentation","Stock Spring Rate (rear)":"Not specified in available documentation","Front Diff":"Oil-filled gear diff (sintered bevel ring/pinion, 10T/20T) — default oil: not specified","Center Diff":"Oil-filled gear diff (sintered bevel ring/pinion); 3 height settings via swappable bearing bushings — default oil: not specified","Rear Diff":"Oil-filled gear diff (sintered bevel ring/pinion, 10T/20T) — default oil: not specified","Suspension Type":"Independent double wishbone; adjustable front/rear suspension pin angle bushings (engraved FF/FR/RF/RR)","Front Hub Design":"Aluminum hub carrier, 12° kingpin angle (increased from MP10 TKI3), 18° caster angle; new centering collar mechanism in front gearbox case","Rear Hub Design":"Aluminum lower suspension shaft holders (highly rigid); resin bushings for toe angle and roll center adjustment via bushing swap; optional rubber bushings for low-grip/bumpy conditions","Rear Arm Design":"MP11 proven composite arm design; optional carbon plate inserts for rigidity tuning; new rebound adjustment screws with reduced chassis friction","Chassis Braces":"Resin torque rod; swappable insert plates for rear pitch/roll stiffness tuning; replaceable plastic or rubber bulkhead base bushings","Anti-Roll Bar (front)":"Included — new centering collar mechanism in gearbox case for consistent stabilizer effect","Anti-Roll Bar (rear)":"Included — new centering collar mechanism in gearbox case for consistent stabilizer effect","Shock Tower (front)":"7075 duralumin — 5mm thick","Shock Tower (rear)":"7075 duralumin — 4mm thick (lighter than front)","Motor Mount":"Front-motor side-mount layout; two-servo configuration; ESC mounted on separate radio plate with adjustable fore-aft positioning for weight balance tuning","Gear Module":"MOD0.8","Spur Gear":"58T (0.8 module) / 16T pinion; optional spur and pinion gears available",Battery:"2x 2S shorty or 2x 2S mid-size LiPo (split left-right layout); compatible size: L113 × W49 × H25 mm; full-size packs not supported","Battery Positions":"Short: 12 positions (4 longitudinal × 3 lateral); Mid: 9 positions (3 longitudinal × 3 lateral)","Ball Bearings":"Full bearing","Body Included":"Yes — clear uncut MP11e body + window mask stickers + logo stickers","ROAR Approved":"Not confirmed"},notes:"All-new next-generation platform based on the 2025 MP11 GP model. Chassis material is A7050 duralumin (not 7075 as commonly listed). Features split left-right 2x2S battery layout (not 1x4S), sintered bevel gears throughout, 0.8 module spur gear (58T/16T), and MP11-standard front/rear bulkheads with 3-position quick-change differential height via bearing bushing swap. 12° kingpin angle (increased from MP10 TK
402I3) for improved high-speed stability. Front and rear shock towers are 7075 duralumin (5mm front, 4mm rear). Requires 2-channel RC system with 2 servos. Recommended motor: 4268 brushless. AMain link points to MP10e TKI2 as MP11e not yet available on AMain.",changes:["All-new 3mm A7050 duralumin hard-anodized chassis (MP11-based, not 7075)","Split left-right 2x2S battery layout with adjustable sliding tray (12 or 9 position options for short/mid size)","Front-motor layout with ESC on separate adjustable radio plate for fore-aft weight bias tuning","Sintered bevel gears in all diffs for increased strength (10T/20T front/rear)","MP11-standard front and rear bulkheads with split bearing holder design for quick diff height swaps (3 positions)","0.8 module spur gear (58T/16T) — upgraded from previous MP10 platform","New pressure/diaphragm type big bore aluminum shocks with hard-plated threaded cases","7075 duralumin shock towers — 5mm front, 4mm rear (lighter rear)","Increased 12° kingpin angle for improved high-speed stability (up from MP10 TKI3)","Aluminum lower suspension shaft holders with swappable resin/rubber bushings for roll center and toe tuning","New servo saver with relocated spring for reduced dirt/dust impact","Six-position steering plate for Ackerman ratio tuning; servo rod attachment changed to bushing type","Dogbone-style center drive shaft retained from MP10 TKI3 for improved traction","Aluminum caps on universal swing shaft joints for grease retention and pin retention","Resin torque rod for rear chassis rigidity with swappable insert plates (pitch/roll stiffness)","Adjustable front/rear suspension pin angle bushings engraved FF/FR/RF/RR to eliminate setup confusion","New rebound adjustment screws designed to reduce chassis friction","New centering collar mechanism integrated into front/rear gearbox cases for consistent stabilizer effect","Sealed dust-resistant receiver box with screw-fastened lid","Dedicated wire holders for neat cable routing alongside center gearbox"]}],eH=[{id:"xray-xb8e-2021",category:"1/8-ebuggy",brand:"XRAY",model:"XB8E 2021",year:2021,type:"1/8 Electric Buggy",revisionGroup:"XRAY XB8E Annual Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB8E+2021+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"318–337 mm",Length:"494 mm",Width:"310 mm","Weight (kit, no electronics)":"~3,000 g","Chassis Material":"3mm 7075 CNC aluminum","Chassis Layout":"Flat/laydown (dual motor layout option)","Shock Type":"Big bore aluminum (16mm)","Shock Material":"Aluminum (hard-anodized)","Front Diff":"Oil-filled gear diff (46T crown / 14T pinion, HUDY Gear Steel) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (46T crown / 14T pinion, HUDY Gear Steel) — default: 3,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"Pivot Ball — composite carrier, 16° stock caster (C-Hub conversion available)","Rear Hub Design":"Composite rear hub carrier — adjustable diff height (front/rear); wider stance via hub position","Rear Arm Design":"Composite arm – 2021 geometry","Chassis Braces":"Diaphragm-style composite braces","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"7075-T6 aluminum (2021 spec)","Shock Tower (rear)":"7075-T6 aluminum (2021 spec)","Motor Mount":"Adjustable laydown (two motor positions)","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo (saddle or inline options)","Ball Bearings":"Full XRAY precision bearing set","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Gear diffs throughout (46T/14T crown/pinion per teamxray.com). '21 introduced dual-layout flexibility with two motor positions and saddle pack battery option. 3mm 7075 aluminum chassis.",changes:[]},{id:"xray-xb8e-2022",category:"1/8-ebuggy",brand:"XRAY",model:"XB8E 2022",year:2022,type:"1/8 Electric Buggy",revisionGroup:"XRAY XB8E Annual Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY
402+XB8E+2022+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"318–337 mm",Length:"494 mm",Width:"310 mm","Weight (kit, no electronics)":"~3,000 g","Chassis Material":"3mm 7075 CNC aluminum","Chassis Layout":"Flat/laydown","Shock Type":"Big bore aluminum (16mm)","Shock Material":"Aluminum (hard-anodized)","Front Diff":"Oil-filled gear diff (46T crown / 14T pinion, HUDY Gear Steel) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (46T crown / 14T pinion, HUDY Gear Steel) — default: 3,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"Pivot Ball — composite carrier; 16° stock caster (C-Hub 16° conversion available)","Rear Hub Design":"Composite rear hub carrier — adjustable diff height; 2022-specific rear knuckle geometry","Rear Arm Design":"Composite arm – 2022 geometry","Chassis Braces":"Diaphragm-style composite braces","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"7075-T6 aluminum (2022 spec)","Shock Tower (rear)":"Graphite composite (weight saving, 2022 specific)","Motor Mount":"Adjustable laydown","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"Full XRAY precision bearing set","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Gear diffs throughout (46T/14T). Notable for switching the rear shock tower to graphite composite for weight saving. Wing redesigned in a forward position for increased rear downforce.",changes:["Rear shock tower changed to graphite composite (lighter vs 2021 aluminum)","Wing redesigned with forward position for increased rear downforce","Updated servo saver post locking system"]},{id:"xray-xb8e-2023",category:"1/8-ebuggy",brand:"XRAY",model:"XB8E 2023",year:2023,type:"1/8 Electric Buggy",revisionGroup:"XRAY XB8E Annual Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB8E+2023+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"318–337 mm",Length:"494 mm",Width:"310 mm","Weight (kit, no electronics)":"~3,000 g","Chassis Material":"3mm 7075 CNC aluminum","Chassis Layout":"Flat/laydown","Shock Type":"Big bore aluminum (16mm)","Shock Material":"Aluminum (hard-anodized)","Front Diff":"Oil-filled gear diff (46T crown / 13T pinion, HUDY Gear Steel) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion; larger capacity cases) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (46T crown / 13T pinion, HUDY Gear Steel) — default: 3,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"Pivot Ball — composite carrier; 16° stock caster (C-Hub 16° conversion available)","Rear Hub Design":"Composite rear hub carrier — larger capacity diff cases improve oil volume; 2023 knuckle geometry","Rear Arm Design":"Composite arm – 2023 geometry","Chassis Braces":"Diaphragm-style composite braces","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"7075-T6 CNC aluminum (stock kit)","Shock Tower (rear)":"7075-T6 CNC aluminum (stock kit)","Motor Mount":"Adjustable laydown","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"Full XRAY precision bearing set","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Gear diffs throughout — 46T/13T pinion (changed from 14T used in '21/'22) per teamxray.com. Larger capacity diff cases. 3mm 7075 aluminum chassis. Fully compatible with 2024/2025 hop-up parts.",changes:["Diff pinion changed from 14T to 13T across front and rear (larger oil volume capacity cases)","Larger capacity front and rear diff cases for improved oil volume and smoother diff action"]},{id:"xray-xb8e-2024",category:"1/8-ebuggy",brand:"XRAY",model:"XB8E 2024",year:2024,type:"1/8 Electric Buggy",revisionGroup:"XRAY XB8E Annual Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fxray-xb8e-2024-1-8-electric-4wd-offroad-competition-buggy-kit%2Fp1530827",affiliateLabel:"Find on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"318–337 mm",Length:"494 mm",Width:"310 mm","Weight (kit, no electronics)":"~3,000 g","Chassis Material":"3mm 7075 CNC aluminum (shorter, enhanced flex)","Chassis Layout":"Flat/laydown (shorter chassis vs 2023)","Shock Type":"Big bore aluminum (16.2mm I.D., three-in-one caps — emulsion/rebound/zero-rebound)","Shock Material":"Aluminum (hard-anodized)","Front Diff":"Oil-filled gear diff (46T crown / 13T pinion, HUDY Gear Steel) — default: 5,
402000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (46T crown / 13T pinion, HUDY Gear Steel) — default: 3,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"Pivot Ball — composite carrier; 16° stock caster (C-Hub 16° conversion set XRAY 350910 available)","Rear Hub Design":"Composite rear hub carrier — 2024 knuckle with wider diff height adjustment range","Rear Arm Design":"Composite arm – 2024 geometry update","Chassis Braces":"Diaphragm-style composite braces","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"4mm Swiss 7075-T6 CNC aluminum (additional shock row)","Shock Tower (rear)":"4mm Swiss 7075-T6 CNC aluminum (additional shock row)","Motor Mount":"Adjustable laydown","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"Full XRAY precision bearing set","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Gear diffs throughout (46T/13T). Shorter 3mm 7075 aluminum chassis with enhanced flex. New 4mm Swiss 7075-T6 shock towers with additional shock row. Oversized 16.2mm I.D. shocks with three-in-one caps (emulsion/rebound/zero-rebound) for geometry tuning.",changes:["Shorter chassis layout with enhanced flex for improved stability","New 4mm Swiss 7075-T6 aluminum shock towers with additional shock mounting row","New oversized 16.2mm I.D. big-bore three-in-one adjustable shock caps (emulsion/rebound/zero-rebound)","Revised front arm geometry for improved steering precision","111mm rear central drive shaft"]},{id:"xray-xb8e-2025",category:"1/8-ebuggy",brand:"XRAY",model:"XB8E 2025",year:2025,type:"1/8 Electric Buggy",revisionGroup:"XRAY XB8E Annual Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fxray-xb8e-2025-1-8-electric-4wd-offroad-competition-buggy-kit-xra350162%2Fp1628690",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"318–337 mm",Length:"494 mm",Width:"310 mm","Weight (kit, no electronics)":"~2,980 g","Chassis Material":"3mm Swiss 7075 T6 CNC hard-anodized aluminum (all-new shorter chassis with specially milled flex areas)","Chassis Layout":"Flat/laydown; new shorter chassis with milled flex areas for improved stability and traction","Shock Type":"Big bore aluminum (16.2mm I.D., three-in-one caps — emulsion/rebound/zero-rebound)","Shock Material":"Aluminum (hard-anodized)","Front Diff":"Oil-filled gear diff (46T crown / 13T pinion, HUDY Gear Steel; smaller center housing) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (smaller housing, composite spur for reduced rotating mass) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (46T crown / 13T pinion, HUDY Gear Steel) — default: 3,000cSt","Suspension Type":"Independent double wishbone; I.S.S. eccentric bushings","Front Hub Design":"Pivot Ball — composite carrier; 16° stock caster; C-Hub 16° conversion set available (XRAY 350910)","Rear Hub Design":"Composite rear hub carrier — new 2025 geometry; updated C-suspension holder","Rear Arm Design":"Composite arm – 2025 geometry update","Chassis Braces":"Revised front brace and rear plate layout for improved flex characteristics","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"New geometry 4mm Swiss 7075-T6 CNC aluminum — updated shock mounting positions","Shock Tower (rear)":"New geometry 4mm Swiss 7075-T6 CNC aluminum — updated shock mounting positions","Motor Mount":"Lowered position (improved CG)","Gear Module":"MOD1","Spur Gear":"46T / 13T clutch bell",Battery:"4S LiPo (saddle 2x2S or standard)","Ball Bearings":"Full XRAY precision bearing set","Body Included":"Yes","ROAR Approved":"Yes"},notes:`Gear diffs throughout; smaller center diff housing reduces rotating mass. New shorter chassis with specially milled flex areas. New shock tower geometry for improved handling. Lowered motor mount for improved CG. Spur gear 46T/13T clutch bell confirmed from AMain listing. Note: the "asymmetric wide rear / narrow front chassis" description in some sources is not confirmed on teamxray.com '25 features page and has been removed.`,changes:["New shorter chassis with specially milled flex areas for improved stability and traction","New front and rear shock towers with updated geometry for improved handling","Lowered motor mount for improved centre of gravity","Smaller center diff housing reduces rotating mass","New composite center spur gear for quieter, lighter operation","Revised front brace and rear plate layout"]},{id:"xray-xb8e-2026",category:"1/8-ebuggy",brand:"XRAY",model:"XB8E 2026",year:2026,type:"1/8 Electric Buggy",revisionGroup:"XRAY XB8E Annual Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fxray-xb8e-2025-1-8-electric-4wd-offroad-competition-buggy-kit-xra350162%2Fp1628690",affiliateLabel:"Find on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"318–338 mm (adjustable)",Length:"500 mm",Width:"310 mm","Weight (kit, no electronics)":"~3,195 g","Chassis Material":"3mm Swiss 7075 T6 CNC hard-anodized aluminum","Chassis Layout":"Flat / laydown; new updated plate lowers battery pack and moves mounts closer to centerline; saddle pack (2x2S) or brick (1x4S) battery","Shock Type":"Big bore emulsion/rebound/zero-rebound (3-in-1 cap); 3 seal choices: ribbed membrane, cell membrane, O-ring","Shock Material":"Aluminum — hard-coated titanium color; externally threaded bodies with adjustable spring collar; 1-piece aluminum lower cap","Shock Body ID":"16.2mm","Stock Shock Length (F/R)":"Shortened bodies matched to lowered shock towers (exact mm not published); 82mm rear springs","Stock Spring Rate (front)":"4-Dot spring (XRAY designation)","Stock Spring Rate (rear)":"3-Dot short — 82mm (XRAY designation)","Front Diff":"Oil-filled gear diff (46T crown / 14T pinion, HUDY Gear Steel) — default oil: not published","Center Diff":"Oil-filled gear diff (46T spur); new split motor mount for improved access — default oil: not published","Rear Diff":"Oil-filled gear diff (46T crown / 14T pinion, HUDY Gear Steel) — default oil: not published","Suspension Type":"Independent double wishbone; Integrated Suspension Settings™ (I.S.S.) via eccentric bushings in all aluminum holders","Front Hub Design":"Pivot Ball — composite pivot ball cups (graphite material); aluminum 7075 T6 holders; adjustable caster/camber/kick-up/anti-dive via I.S.S. eccentric bushings; 8x16x5mm outer bearings","Rear Hub Design":"Composite uprights — 8x16x5mm outer bearings; adjustable roll center, toe, anti-squat; new C-suspension holder with lower positions and updated geometry for increased traction","Rear Arm Design":"Composite arms — optimized length, thickness, and geometry; XRAY in-house composite mix; rear drive shafts 93mm (HUDY Spring Steel)","Chassis Braces":"Composite upper deck (front); new center differential top deck adapted to updated motor mount; rear brace holder updated to shift battery mounts closer to centerline","Anti-Roll Bar (front)":"Included — new graphite anti-roll bar ball joints for reduced friction","Anti-Roll Bar (rear)":"Included — new graphite anti-roll bar ball joints for reduced friction","Shock Tower (front)":"4mm Swiss 7075 T6 CNC aluminum — lowered shock mounting position; 4mm shock mounting holes","Shock Tower (rear)":"4mm Swiss 7075 T6 CNC aluminum — lowered shock mounting position","Motor Mount":"New split motor mount design — 7075 T6 aluminum; increased stiffness and improved drivetrain alignment; improved center diff access without disturbing surrounding components; new matched motor mount holder",Steering:"Dual-arm adjustable Ackermann; new carbon servo top deck for sharper and more consistent steering response;
402 new servo screws with integrated washers",Electronics:"New reinforced one-piece electronics plate integrating ESC plate and fully covered receiver box; ESC repositioned rearward for improved weight balance; composite cable holders for clean wire routing","Gear Module":"MOD1","Spur Gear":"46T",Battery:"2x 2S LiPo saddle (shorty or mid-size) OR 1x 4S brick; new lowered battery holders with tweak-free split retainers; Velcro straps; integrated cooling cutouts; shorty packs adjustable fore-aft","Ball Bearings":"Full bearing — 22 high-speed ball bearings throughout","Body Included":"Yes — low-profile aerodynamic Lexan body; new HUDY Strike Wing (ultra-low-profile composite; IFMAR-legal; pre-marked cutting holes for downforce tuning)","ROAR Approved":"Yes"},notes:"Annual revision of the proven XB8E platform. 2025 ROAR National Champion with Dakotah Phend. Major focus for '26 is lowering CG via completely redesigned chassis plate, battery holders, side guards, and rear brace holder. New split motor mount dramatically improves center diff access. New C-suspension holder geometry increases traction on low to medium grip surfaces. New HUDY Strike Wing and graphite ball joints throughout. Note: not yet listed on AMain — affiliate link points to XB8E 2025 in the interim. US tariffs on EU products may affect pricing.",changes:["New chassis plate — lowers battery pack, reduces rear C-holder position, moves battery mounts closer to centerline for improved CG and weight distribution","New side guards redesigned to allow lower battery mounting; new side guard screws with integrated washers","New battery holders enabling lower battery placement; integrated cooling cutouts; new Velcro straps; tweak-free split retainers","Updated rear brace holder with new cutout to position battery mounts further inward, reducing moment of inertia","New split motor mount — redesigned interface with increased stiffness; improved center diff access without disturbing surrounding components","New motor mount holder matched to updated motor mount design","New center differential top deck adapted to updated motor mount; composite cable holder mounting points integrated","New C-suspension holder with lower mounting positions and updated geometry for increased traction on low-to-medium grip surfaces","New HUDY Strike Wing — ultra-low-profile, enlarged side dams, fang-shaped reinforced brackets, raised center dividers; pre-marked cutting holes for quick downforce tuning; IFMAR-legal","New rear wing mount with larger contact surface for more secure wing attachment","New reinforced one-piece electronics plate integrating ESC plate and fully covered receiver box; ESC repositioned rearward","New carbon servo top deck for sharper and more consistent steering response","New graphite ball joints on suspension camber links and anti-roll bars — reduced friction, free movement in all conditions","New graphite anti-roll bar ball joints","New composite cable holders for clean motor and battery wire routing","New servo screws with integrated washers for easier installation","New battery Velcro straps for stronger and more secure battery retention"]}],tH=[{id:"mayako-mx8e",category:"1/8-ebuggy",brand:"Mayako",model:"MX8E",year:2023,type:"1/8 Electric Buggy",revisionGroup:null,price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Mayako+MX8E+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"320–336 mm",Length:"496 mm",Width:"308 mm","Weight (kit, no electronics)":"~3,000 g","Chassis Material":"3mm 7075 CNC aluminum","Chassis Layout":"Flat / laydown","Shock Type":"Big bore aluminum (16mm)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"~105mm front / ~118mm rear (extended)","Stock Spring Rate (front)":"Medium (Mayako stock front spring)","Stock Spring Rate (rear)":"Medium-soft (Mayako stock rear spring)","Front Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 3,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"Pivot Ball — composite carrier; 16° stock caster","Rear Hub Design":"Aluminum rear hub carrier — adjustable toe-in","Rear Arm Design":"Composite arm – MX8E geometry","Chassis Braces":"Composite with aluminum inserts","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"7075 CNC machined aluminum","Shock Tower (rear)":"7075 CNC machined aluminum","Motor Mount":"Adjustable side-mount","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Mayako's purpose-built electric 1/8 buggy designed for c
402ompetition. Developed with top European factory drivers. Features a low-CG flat chassis and gear diffs throughout.",changes:[]},{id:"mayako-mx8e-24r",category:"1/8-ebuggy",brand:"Mayako",model:"MX8E-24R",year:2024,type:"1/8 Electric Buggy",revisionGroup:"Mayako MX8E Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fmayako-mx8e25-1-8-offroad-4wd-competition-electric-buggy-kit-maymye0377-25%2Fp1592804",affiliateLabel:"Find on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"320–325 mm",Length:"Not published",Width:"305–309 mm (trackwidth)","Weight (kit, no electronics)":"Not published","Chassis Material":"CNC aluminum","Chassis Layout":"Flat / laydown; conventional centre electronics; shorty, full-size, 2x2S or 4S battery; multiple positions for weight distribution","Shock Type":"Hard-coated aluminum emulsion (bleeder screw cap standard; bladder cap optional)","Shock Material":"Aluminum (hard-coated)","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Black (competition) spring","Stock Spring Rate (rear)":"Black (competition) spring","Front Diff":"Oil-filled gear diff (bevel ring/pinion); adjustable height — default: 2.7g oil fill","Center Diff":"Oil-filled gear diff; split bulkhead design for easy removal — default: 6g oil fill","Rear Diff":"Oil-filled gear diff (bevel ring/pinion); adjustable height — default: 2.7g oil fill","Suspension Type":"Independent double wishbone; front and rear upper links; screw-type hinge pins (M4)","Front Hub Design":"High KPI pillow-ball — KPI-1/Caster-1 blocks; adjustable knuckle height via insert; red eccentric bushing in carbon steering plate for bump steer tuning; optional KPI-.5 hubs for more aggressive steering","Rear Hub Design":"Composite rear hub; adjustable diff height; adjustable arm/upper link/wing height and shock positions","Rear Arm Design":"Hard composite arms; rear upper links; screw-type hinge pin mounting","Chassis Braces":"Upper chassis braces with Taylor Design horizontal mounting system","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum","Shock Tower (rear)":"Aluminum","Motor Mount":"Inline; ESC on carbon floating plate (4 o-ring damped bushings)","Gear Module":"MOD1","Spur Gear":"48T","Rear Driveshafts":"Universal (stock); optional longer universals and CVDs available","Front Driveshaft":"98mm CVD dogbone (stock)",Battery:"4S LiPo — shorty, full-size brick, or 2x2S; adjustable fore-aft position","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"First revision of the all-new MX8E platform, launched simultaneously with the MX8-24 nitro. Front and rear ends are interchangeable between MX8E-24R and MX8-24. Community-driven design via MPC (Mayako Performance Community). Split centre diff bulkhead for easy removal. Conventional JQ-heritage electronics layout. ESC on floating carbon plate with o-ring damping. No receiver box included — 3D printable designs available via Mayako wiki. Hard arms stock (vs soft arms on MX8E-25). Rear universals stock (vs CVDs on MX8E-25). Overall diff ratio: 12.11. AMain link points to MX8E-25 as -24R is discontinued.",changes:[]},{id:"mayako-mx8e-25",category:"1/8-ebuggy",brand:"Mayako",model:"MX8E-25",year:2025,type:"1/8 Electric Buggy",revisionGroup:"Mayako MX8E Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fmayako-mx8e25-1-8-offroad-4wd-competition-electric-buggy-kit-maymye0377-25%2Fp1592804",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"320–325 mm",Length:"Not published",Width:"305–309 mm (trackwidth)","Weight (kit, no electronics)":"Not published","Chassis Material":"CNC aluminum","Chassis Layout":"Flat / laydown; conventional centre electronics; shorty, full-size, 2x2S or 4S battery; multiple positions for weight distribution","Shock Type":"Hard-coated aluminum emulsion (bleeder screw cap standard; bladder cap optional)","Shock Material":"Aluminum (hard-coated)","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Black (competition) spring","Stock Spring Rate (rear)":"Black (competition) spring","Front Diff":"Oil-filled gear diff (bevel ring/pinion); fixed low position — default: 2.7g oil fill","Center Diff":"Oil-filled gear diff; split bulkhead with plastic bushing height adjustment — default: 6g oil fill","Rear Diff":"Oil-filled gear diff (bevel ring/pinion); adjustable height via plastic bushing swap — default: 2.7g oil fill","Suspension Type":"Independent double wishbone; front and rear upper links; screw-type hinge pins (M4)","Front Hub Design":"High KPI pillow-ball — KPI-1/Caster-1 blocks; red spacer in knuckle (remove for front UJ use); adjustable knuckle height/bump steer via eccentric bushing; optional KPI-.5 hubs available","Rear Hub Design":"Composite rear hub;
402 adjustable diff height via plastic bushing swap; adjustable arm/upper link/wing height and shock positions","Rear Arm Design":"Soft composite arms (updated from hard arms on MX8E-24R); rear upper links; screw-type hinge pin mounting","Chassis Braces":"Upper chassis braces with Taylor Design horizontal mounting system","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum","Shock Tower (rear)":"Aluminum (updated shorter rear shock standoff to eliminate shock cap bind)","Motor Mount":"Inline; ESC on carbon floating plate (4 o-ring damped bushings)","Gear Module":"MOD1","Spur Gear":"48T","Rear Driveshafts":"CVD (stock); optional 91mm universal rear driveshaft available","Front Driveshaft":"98mm CVD dogbone (stock)",Battery:"4S LiPo — shorty, full-size brick, or 2x2S; adjustable fore-aft position","Ball Bearings":"Full bearing","Body Included":"Yes — lightweight 1.0 body","ROAR Approved":"Yes"},notes:"Annual revision of the MX8E-24R. Shares design with the MX8-25 nitro — front and rear ends interchangeable. Key changes from -24R: soft arms replace hard arms, rear CVDs replace rear universals as stock, front diff fixed at low position (rear remains adjustable), redesigned split bulkhead diff height adjustment now uses plastic bushing swap, updated short rear shock standoff eliminates shock cap bind, new lightweight 1.0 body. No receiver box included — 3D printable options via Mayako wiki.",changes:["Soft composite arms (replaces hard arms from MX8E-24R) for increased durability","Rear CVD driveshafts stock (replaces rear universals from MX8E-24R)","Front diff fixed at low position — simplifies setup (rear diff height remains adjustable)","Redesigned split bulkhead diff height adjustment uses plastic bushing swap for faster position changes","Updated short rear shock standoff eliminates shock cap bind","New lightweight 1.0 body included","Front and rear ends interchangeable with MX8-25 nitro (updated from MX8-24 compatibility)"]},{id:"mayako-mx8e-25le",category:"1/8-ebuggy",brand:"Mayako",model:"MX8E-25 Limited Edition",year:2025,type:"1/8 Electric Buggy",revisionGroup:"Mayako MX8E Series",price:"Check latest price",availability:"Limited",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fmayako-mx8e25-1-8-offroad-4wd-competition-electric-buggy-kit-maymye0377-25%2Fp1592804",affiliateLabel:"Shop Mayako on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"320–325 mm",Length:"Not published",Width:"305–309 mm (trackwidth)","Weight (kit, no electronics)":"Not published","Chassis Material":"CNC aluminum","Chassis Layout":"Flat / laydown; conventional centre electronics; shorty, full-size, 2x2S or 4S battery; multiple positions for weight distribution","Shock Type":"Hard-coated aluminum emulsion; 5x1.5mm pistons (LE option)","Shock Material":"Aluminum (hard-coated)","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Black (competition) spring (LE)","Stock Spring Rate (rear)":"Brown (competition) spring (LE)","Front Diff":"Oil-filled gear diff; 43/13 internal gearing (LE); fixed low position — default: 2.7g oil fill","Center Diff":"Oil-filled gear diff; split bulkhead with plastic bushing height adjustment — default: 6g oil fill","Rear Diff":"Oil-filled gear diff; 43/13 internal gearing (LE); adjustable height via plastic bushing swap — default: 2.7g oil fill","Suspension Type":"Independent double wishbone; front and rear upper links; screw-type hinge pins (M4)","Front Hub Design":"High KPI pillow-ball — KPI-1/Caster-1 blocks (LE); 5mm front wheel hex (LE)","Rear Hub Design":"3-piece CNC rear hub (LE); 54/57 wide C-D blocks (LE); adjustable length rear arms (LE); long rear outdrives (LE); 6mm rear wheel hex (LE)","Rear Arm Design":"Soft composite arms with carbon rear arm plates (LE) and carbon A-D block plates (LE)","Chassis Braces":"Upper chassis braces with Taylor Design horizontal mounting system;
402 carbon long link rear shock tower (LE)","Anti-Roll Bar (front)":"Included — 2.3mm front anti-roll bar (LE)","Anti-Roll Bar (rear)":"Included — 2.6mm rear anti-roll bar (LE)","Shock Tower (front)":"Aluminum","Shock Tower (rear)":"Aluminum (updated shorter standoff); carbon long link rear shock tower included (LE)","Motor Mount":"Inline; ESC on carbon floating plate (4 o-ring damped bushings)",Steering:"Carbon steering plate (LE)","Gear Module":"MOD1","Spur Gear":"48T","Rear Driveshafts":"91mm universal rear driveshaft for 13x19x4mm bearing (LE); stock CVDs also included","Front Driveshaft":"98mm CVD dogbone (stock)",Hardware:"Titanium turnbuckles (LE); titanium gearbox screws (LE); lightweight wheel nuts (LE)",Battery:"4S LiPo — shorty, full-size brick, or 2x2S; adjustable fore-aft position","Ball Bearings":"Full bearing; 13x19x4mm rear bearing (LE)","Body Included":'Yes — Mayako 2.0 body + black "Wing of David" 2.0 wing (LE)',"ROAR Approved":"Yes"},notes:"MX8E-25 base kit bundled with the complete Mayako option parts package at a significant saving versus purchasing separately. Mechanically identical to the MX8E-25 but ships fully optioned for race-day use. Limited annual production batch. Includes the carbon long link rear shock tower, titanium hardware, 43/13 internal gearing, 3-piece CNC rear hub, and 2.0 body/wing not available in the standard kit. AMain link points to standard MX8E-25 as LE is sold direct from Mayako.",changes:["All MX8E-25 changes apply","KPI-1/Caster-1 steering blocks included (same as stock but confirmed LE spec)","2.3mm front / 2.6mm rear anti-roll bars included","Black/brown competition springs included","5x1.5mm shock pistons included","43/13 internal diff gearing (front and rear) included","5mm front / 6mm rear wheel hex included","Lightweight wheel nuts included","Adjustable length rear arms included","3-piece CNC rear hub included","54/57 wide C-D blocks included","91mm universal rear driveshaft with 13x19x4mm bearing included","Long rear outdrives included","Carbon steering plate included","Carbon long link rear shock tower included","Carbon rear arm plates included","Carbon A-D block plates included","Titanium turnbuckles included","Titanium gearbox screws included","Mayako 2.0 body included (replaces standard 1.0 body)",'Black "Wing of David" 2.0 wing included']}],rH=[{id:"sworkz-s35-5e",category:"1/8-ebuggy",brand:"Sworkz",model:"S35-5e",year:2026,type:"1/8 Electric Buggy",revisionGroup:null,price:"Check latest price",availability:"Current",affiliateKey:"sworkz-s35-5e",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=sworkz%20s35-5e%20buggy%20kit&mkcid=1&mkrid=706-53473-19255-0&siteid=0&campid=5338387907&toolid=10001&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Surface:"Off-road",Wheelbase:"325–330 mm (optional +3mm extended chassis for fast, high-grip tracks)",Length:"510 mm",Width:"308 mm",Height:"220 mm","Ground Clearance":"65 mm","Track (F/R)":"F 304 mm / R 306 mm","Weight (track-ready, no electronics)":"~3,680 g (race condition)","Chassis Material":"T7075 hard-anodized lightened aluminum (new short kit chassis design; optional +3mm extended chassis)","Chassis Layout":"New carbon plate style radio tray; carbon center diff plate","Shock Type":"All-new shock system — high-quality X-rings, Teflon-coated durable shock shafts, SWORKz BBS precision plastic pistons, fixed shock spring holders","Shock Tower (front)":"New double-line shock tower (upper line = S35-4 EVO design; lower line optimized for high-grip tracks / lower CG)","Shock Tower (rear)":"New double-line shock tower (upper line = S35-4 EVO design; lower line optimized for high-grip tracks / lower CG)","Front Diff":"HET gear diff (carried over from S35-4 EVO); adjustable diff/pinion gear height","Center Diff":"HET gear diff; new quick diff release gearbox system; carbon center diff plate","Rear Diff":"HET gear diff (carried over from S35-4 EVO); adjustable diff/pinion gear height","Gear Ratio":"Center: 47/13T; Front/Rear: 43/13T","Spur Gear":"47T (center)","Suspension Type":"Independent double wishbone;
402 LCD (Large Caster Design) front upper arms; plastic lower arm covers (F/R)","Rear Hub Design":"Composite rear hubs with carbon plates; updated toe-in plates with square inserts","Chassis Braces":"2 front chassis braces included","Anti-Roll Bar (front)":"Ball-bearing guided sway bar system (new — smoother, more precise adjustment)","Anti-Roll Bar (rear)":"Ball-bearing guided sway bar system (new — smoother, more precise adjustment)","Body Included":"Yes — aerodynamically optimized Falcon ST-5 body shell (new); lightweight wing mount",Steering:"Proven S35-4 EVO steering system; AL7075 aluminum Ackermann plate (+5) included; optional +10 Ackermann plate for tight technical tracks"},notes:"Sworkz S35-5e — built on the proven S35-4 EVO platform geometry for higher cornering speeds and a more forgiving feel without changing the fundamental driving character. 3 HET diffs included, 2 front chassis braces included, more balance weight positions; aluminum parts T7075. Announced Sept 2 2026; worldwide sales start September 14 2026.",changes:["Lightened T7075 chassis with new short kit chassis design (optional +3mm extended chassis for fast, high-grip tracks)","Ball-bearing guided sway bar system (smoother, more precise adjustment)","New double-line shock towers (upper line = S35-4 EVO design; lower line optimized for high-grip tracks / lower CG)","All-new Samurai Competition spring line","All-new shock system: high-quality X-rings, Teflon-coated durable shock shafts, BBS precision plastic pistons, fixed shock spring holders","New carbon plate style radio tray; carbon center diff plate","LCD (Large Caster Design) front upper arms as standard","Plastic lower arm covers included for front and rear lower arms","Aerodynamically optimized Falcon ST-5 body shell; lightweight wing mount","Adjustable diff and pinion gear height (0/low position identical to S35-4 EVO); new quick diff release gearbox system","Composite rear hubs with carbon plates; updated toe-in plates with square inserts","AL7075 aluminum Ackermann plate (+5) included; optional +10 Ackermann plate for tight technical tracks"]},{id:"sworkz-s35-4e",category:"1/8-ebuggy",brand:"Sworkz",model:"S35-4E",year:2022,type:"1/8 Electric Buggy",revisionGroup:null,price:"Check latest price",availability:"Current",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Sworkz+S35-4E+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"320–336 mm",Length:"498 mm",Width:"308 mm","Weight (kit, no electronics)":"~3,050 g","Chassis Material":"3mm 7075 CNC aluminum","Chassis Layout":"Flat / laydown","Shock Type":"Emulsion (16mm, verified from setup sheet)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"~105mm front / ~120mm rear (extended)","Stock Spring Rate (front)":"Medium (Sworkz stock front spring)","Stock Spring Rate (rear)":"Soft (Sworkz stock rear spring)","Front Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 5,000cSt","Center Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (bevel ring/pinion) — default: 3,000cSt","Suspension Type":"Independent double wishbone","Front Hub Design":"C-Hub — composite, 17.5° stock caster","Rear Hub Design":"Composite rear hub carrier — adjustable toe-in inserts","Rear Arm Design":"Composite arm – S35-4E geometry","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum (stock kit)","Shock Tower (rear)":"Aluminum (stock kit)","Motor Mount":"Adjustable inline","Gear Module":"MOD1","Spur Gear":"48T",Battery:"4S LiPo","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Sworkz S35-4E is a competition-oriented 1/8 electric buggy from the Korean brand. Gear diffs throughout. Emulsion shocks standard (verified from official setup sheet). Proven at international level events with factory support drivers.",changes:[]},{id:"sworkz-s35-4e-evo",category:"1/8-ebuggy",brand:"Sworkz",model:"S35-4e EVO",
402year:2023,type:"1/8 Electric Buggy",revisionGroup:null,price:"Check latest price",availability:"Current",affiliateLink:"https://rc1-racing.com/SWORKz-S35-4e-EVO-18-BrushLess-Power-Pro-Buggy-Kit_p_3976.html",affiliateLabel:"Buy at RC1 Racing",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"325–330 mm",Length:"510 mm",Width:"308 mm",Height:"220 mm","Ground Clearance":"65 mm","Weight (race condition, no body)":"~3,680 g","Chassis Material":"T7075 hard-anodized lightened aluminum (new short chassis design)","Chassis Layout":"Flat / laydown; dual battery config (2x2S saddle or 1x4S side)","Shock Type":"BBS Hex-Cell emulsion (16mm, longer bodies vs S35-4e)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Longer bodies than S35-4e (exact mm not published); shorter front shafts","Stock Spring Rate (front)":"Black competition spring (shorter than S35-4e front spring)","Stock Spring Rate (rear)":"Black competition spring","Front Diff":"Oil-filled HET gear diff (bevel ring/pinion) — default: 5,000cSt","Center Diff":"Oil-filled HET gear diff (bevel ring/pinion); new carbon center diff plate — default: 7,000cSt","Rear Diff":"Oil-filled HET gear diff (bevel ring/pinion) — default: 3,000cSt","Gear Ratio":"Center: 46/15T; Front/Rear: 43/13T","Suspension Type":"Independent double wishbone; Arched-Bridge-System rear lower arms","Front Hub Design":"C-Hub — updated steering knuckle plates (Type 2.0); new Ackerman plate geometry","Rear Hub Design":"Composite rear hubs with carbon plates; updated toe-in plates with square inserts","Rear Arm Design":"Arched-Bridge-System rear lower arm set (new EVO geometry); multi-adjustable ball system for rear upper arms","Chassis Braces":"Composite; aluminum intensity F/F and R/F narrow lower suspension plates (new)","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Aluminum — higher than S35-4e","Shock Tower (rear)":"Aluminum — higher than S35-4e","Motor Mount":"Adjustable inline; new carbon center diff plate with throttle servo linkage system",Steering:"Lay-down type bellcrank servo saver system (new); 6-position Ackerman plate; bushing-type servo rod attachment; new servo saver aluminum part and post locking design","Gear Module":"MOD1","Spur Gear":"46T (center) / 13T (F/R pinion)",Battery:"2x 2S stick/shorty LiPo (saddle, lower CG) OR 1x 4S standard/shorty LiPo (side position)","Ball Bearings":"Full bearing","Body Included":"Yes — aerodynamically optimized body shell; adjustable wing position and angle","ROAR Approved":"Yes"},notes:"Evolution of the S35-4e based on the European Championship winning platform. Key changes: new shorter T7075 chassis, dual battery layout (2x2S saddle or 1x4S side), higher shock towers with longer bodies, new BBS Hex-Cell emulsion shocks with precision BBS pistons, new lay-down Ackerman bellcrank steering, Arched-Bridge-System rear arms, and composite rear hubs with carbon plates. 3 HET diffs included. Gear ratio changed to 46/15T center and 43/13T F/R vs 48T spur on S35-4e. A 2024 Worlds conversion kit (long chassis + new front upper arms) was released separately for the EVO ahead of the IFMAR Worlds in Sacile, Italy.",changes:["New shorter T7075 hard-anodized lightened aluminum chassis (short wheelbase design)","New dual battery layout: 2x2S saddle position (lower CG) or 1x4S side position","Higher aluminum shock towers front and rear","Longer BBS Hex-Cell emulsion shock bodies with shorter shafts","New BBS precision plastic shock piston (hex-cell design, tested at 2022 Worlds)","Fixed shock spring holder; shorter front shock springs; black competition springs included","Updated 3mm rear shock studs","New lay-down type Ackerman bellcrank servo saver system (new plate, saver post locking, aluminum part)","New Ackerman plate with updated steering ball studs","New steering knuckle plates (Type 2.0)","Updated toe-in plates with square inserts","Aluminum Intensity F/F and R/F narrow lower suspension plates (new)","New carbon center diff plate with throttle servo linkage system","Arched-Bridge-System rear lower arm set (new EVO geometry)","Composite rear hubs with carbon plates","Multi-adjustable ball system for rear upper arms","Anti-clock screws for shocks","Lightweight wing mount; adjustable wing position and angle","Gear ratio updated: center 46/15T, F/R 43/13T (vs 48T spur on S35-4e)","More balance weight positions; stronger droop-stop area","Optimized composite material on key suspension parts"]}],nH=[{id:"serpent-811-cobra-e",category:"1/8-ebuggy",brand:"Serpent",model:"811 Cobra E",year:2022,type:"1/8 Electric Buggy",revisionGroup:null,price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fserpent-811be-2.1-cobra-1-8-off-road-competition-electric-buggy-kit-ser600016%2Fp447948",affiliateLabel:"Buy on AMain",specs:{Scale:"1:8",Drive:"4WD",Wheelbase:"318–336 mm",Length:"495 mm",Width:"308 mm","Weight (kit, no electronics)":"~3,000 g","Chassis Material":"3mm 7075 T6 aluminum with machined flex pockets; kick-up angle on front for stable landings","Chassis Layout":"Flat / laydown","Shock Type":"Big bore aluminum (16mm); oversized 4mm shock shafts","Shock Material":"Aluminum","Stock Shock Length (F/R)":"~105mm front / ~118mm rear (extended)","Stock Spring Rate (front)":"Medium (Serpent stock front spring — supplied to meet standard set-up)","Stock Spring Rate (rear)":"Soft (Serpent stock rear spring — supplied to meet standard set-up)","Front Diff":"Oil-filled gear diff (13T / 44T combo gearing) — default: 5,
402000cSt","Center Diff":"Oil-filled gear diff (46T central diff gear) — default: 7,000cSt","Rear Diff":"Oil-filled gear diff (13T / 44T combo gearing) — default: 3,000cSt","Suspension Type":"Independent double wishbone; spring-steel pivot pins in pivot balls for minimal friction; front and rear CVD driveshafts","Front Hub Design":"Pivot Ball — composite carrier; adjustable caster; 8x16x5mm outer bearings / 15x21x4mm inner bearings (steering blocks)","Rear Hub Design":"Composite rear uprights; 8x16x5mm outer bearings / 15x21x4mm inner bearings; multi-position toe-in adjustment","Rear Arm Design":"Composite arm – 811 Cobra E geometry; spring steel transmission parts (cardan shafts)","Chassis Braces":"Composite; angled inboard bellcrank for optimal Ackermann and reduced bump steer","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"4.5mm carbon fibre CNC machined","Shock Tower (rear)":"4.5mm carbon fibre CNC machined","Motor Mount":"Adjustable laydown — one-screw motor holder slider","Gear Module":"MOD1","Spur Gear":"46T (central diff spur)",Battery:"4S LiPo; ROAR-legal battery dimensions; battery packs at each side (longitudinal saddle layout)","Ball Bearings":"Full bearing; 8x16x5mm outer / 15x21x4mm inner at steering blocks and uprights (oversized for increased durability)","Body Included":"Yes — Serpent Cobra E super-low body with film and masking tape; low version strong rear white wing","ROAR Approved":"Yes"},notes:"Serpent 811-Be 2.1 (SER600016) — the current Cobra E electric competition buggy from the Dutch brand. All specs verified from serpent.com SER600016 product page. Key corrections vs prior data: 46T central diff spur (not 48T), 13T/44T F/R diff gearing, 4.5mm carbon fibre shock towers (not aluminum), oversized 8x16x5 / 15x21x4 bearings throughout, 4mm shock shafts. Front and rear CVD driveshafts standard. Angled bellcrank steering for optimal Ackermann.",changes:[]}],iH=[{id:"xray-xb2-16-carpet",category:"1/10-2wd",brand:"XRAY",model:"XB2 '16 (Carpet)",year:2015,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '15/'16 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB2+2016+carpet+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"~274 mm","Chassis Material":"2.0mm 7075 T6 aluminum","Chassis Layout":"Laydown mid-motor — 2-in-1 Suspension Concept: includes two different suspension arms for different track conditions","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential (XRAY spec)","Suspension Type":"Front: C-hub with adjustable caster blocks / Rear: dual wishbone","Front Hub Design":"2-in-1 suspension concept — includes long and short suspension arms; multiple caster block options","Rear Hub Design":"Composite rear hubs; adjustable toe and anti-squat","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown — gearbox with lowered top shaft, forward-shifted motor for carpet","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2 '15 first released November 2015 (per rcscrapyard.net and rcmart.wordpress.com). Updated as XB2'16 (same kit with minor revisions). Available as separate Carpet (XRA320000) and Dirt (XRA320001) editions. 2-in-1 Suspension Concept is a key '16 feature — carpet edition includes two suspension arm options. XRAY's first dedicated 1/10 2WD buggy platform, designed from the ground up.",changes:[]},{id:"xray-xb2-16-dirt",category:"1/10-2wd",brand:"XRAY",model:"XB2 '16 (Dirt)",year:2015,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '15/'16 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY
402+XB2+2016+dirt+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"~270 mm (short chassis)","Chassis Material":"2.0mm 7075 T6 aluminum — short chassis for dirt","Chassis Layout":"Laydown mid-motor — short chassis for dirt/outdoor use","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone — dirt-specific geometry","Front Hub Design":"Dirt-specific caster blocks; geometry tuned for low-traction surfaces","Rear Hub Design":"Higher rear toe setting for dirt","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2 Dirt Edition (XRA320001) — separate kit from Carpet edition with different chassis length and geometry tuned for dirt/outdoor use. Short 2.0mm chassis. Manual (XB2Dirt_Manualv2) confirmed via petitrc.com archive.",changes:[]},{id:"xray-xb2c-17",category:"1/10-2wd",brand:"XRAY",model:"XB2C '17 (Carpet)",year:2017,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '17 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB2C+2017+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"~274 mm","Chassis Material":"2.0mm 7075 T6 aluminum","Chassis Layout":"Laydown — gearbox and motor plate with lowered top shaft, forward-shifted motor for improved steering and handling on high-traction surfaces — verified from teamxray.com XB2C'17 spec page","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential (XRAY tungsten carbide balls)","Suspension Type":"Front: C-hub / Rear: dual wishbone","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown — forward-shifted for carpet","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2C '17 (XRA320002) — Carpet Edition. Forward-shifted motor gearbox specifically noted for high-traction carpet performance. Separate XB2D '17 (XRA320003) for dirt. Both manuals confirmed on petitrc.com.",changes:["Updated gearbox with forward-shifted motor for improved carpet handling","Updated front and rear suspension geometry"]},{id:"xray-xb2d-17",category:"1/10-2wd",brand:"XRAY",model:"XB2D '17 (Dirt)",year:2017,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '17 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB2D+2017+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"~270 mm (short chassis)","Chassis Material":"2.0mm 7075 T6 aluminum — short dirt chassis","Chassis Layout":"Laydown mid-motor — rear-biased weight for dirt traction","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone — dirt geometry","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2D '17 (XRA320003) — Dirt Edition with supplement manual for dirt-specific changes. Confirmed via petitrc.com archive.",changes:[]},{id:"xray-xb2c-18",category:"1/10-2wd",brand:"XRAY",model:"XB2C '18 (Carpet)",year:2018,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '18 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY
402+XB2+2018+carpet+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"~274 mm","Chassis Material":"2.0mm 7075 T6 aluminum","Chassis Layout":"Laydown mid-motor","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2C '18 (XRA320004) — Carpet Edition only in 2018. XRAY did not release a separate XB2D '18 dirt kit (per petitrc.com — only carpet manual listed for '18). Updated geometry from '17.",changes:["Updated front suspension geometry for improved steering","Revised rear arm mounts"]},{id:"xray-xb2c-19",category:"1/10-2wd",brand:"XRAY",model:"XB2C '19 (Carpet)",year:2019,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '19 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB2C+2019+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"~274 mm","Chassis Material":"2.0mm 7075 T6 aluminum","Chassis Layout":"Laydown mid-motor","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2C '19 — Carpet Edition. Separate XB2D '19 dirt kit also available. Both confirmed on petitrc.com.",changes:["Incremental geometry updates from '18"]},{id:"xray-xb2d-19",category:"1/10-2wd",brand:"XRAY",model:"XB2D '19 (Dirt)",year:2019,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '19 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB2D+2019+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"~270 mm (short chassis)","Chassis Material":"2.0mm 7075 T6 aluminum — short dirt chassis","Chassis Layout":"Laydown mid-motor","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone — dirt geometry","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2D '19 Dirt Edition. Confirmed via petitrc.com archive.",changes:[]},{id:"xray-xb2-20",category:"1/10-2wd",brand:"XRAY",model:"XB2 '20 (Carpet/Dirt)",year:2020,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '20 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB2+2020+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf / Dirt (single kit with conversion)",Wheelbase:"~274 mm","Chassis Material":"2.0mm 7075 T6 aluminum","Chassis Layout":"Laydown mid-motor — single kit covering both surfaces via setup","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2 '20 — single kit (not split into C/D that year). One manual for both carpet and dirt. Confirmed via petitrc.com '20 manual listing.",changes:["Consolidated into single kit covering both surfaces"]},{id:"xray-xb2-21",category:"1/10-2wd",brand:"XRAY",model:"XB2 '21 (Carpet/Dirt)",year:2021,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '21 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY
402+XB2+2021+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf / Dirt (single kit)",Wheelbase:"~274 mm","Chassis Material":"2.0mm 7075 T6 aluminum","Chassis Layout":"Laydown mid-motor","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2 '21 — single kit. Confirmed via petitrc.com '21 manual listing (one manual, not split C/D).",changes:["Incremental geometry and parts updates from '20"]},{id:"xray-xb2-22",category:"1/10-2wd",brand:"XRAY",model:"XB2 '22 (Carpet/Dirt)",year:2022,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '22 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB2+2022+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf / Dirt (single kit)",Wheelbase:"~274 mm","Chassis Material":"2.0mm 7075 T6 aluminum","Chassis Layout":"Laydown mid-motor","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2 '22 — single kit. Confirmed via petitrc.com '22 manual listing.",changes:["Incremental geometry and component updates from '21"]},{id:"xray-xb2-23",category:"1/10-2wd",brand:"XRAY",model:"XB2 '23 (Carpet/Dirt)",year:2023,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '23 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB2+2023+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf / Dirt (single kit)",Wheelbase:"~274 mm","Chassis Material":"2.0mm 7075 T6 aluminum","Chassis Layout":"Laydown mid-motor","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2 '23 — single kit. Last year before XRAY split back into dedicated C (Carpet) and D (Dirt) kits for '24. Confirmed via petitrc.com '23 manual listing.",changes:["Incremental updates; last single-kit XB2 year before return to C/D split for '24"]},{id:"xray-xb2c-24",category:"1/10-2wd",brand:"XRAY",model:"XB2C '24 (Carpet)",year:2024,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '24 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB2C+2024+carpet+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"~274 mm","Chassis Material":"2.0mm 7075 T6 aluminum — new one-piece design with integrated kick-up (eliminates separate kick-up block)","Chassis Layout":"Laydown mid-motor","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone","Front Hub Design":"New one-piece chassis integrates kick-up; improved caster adjustment range","Rear Hub Design":"Updated D-block geometry; 1° rear toe for carpet","Anti-Roll Bar (front)":"Included — 2.2mm front anti-roll bar","Anti-Roll Bar (rear)":"Included — 2.5mm rear anti-roll bar","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2C '24 — XRAY returns to separate C/D kits. Key change: new one-piece chassis with integrated kick-up eliminates separate kick-up block for lower CG and simpler construction. Standard 2.2mm front / 2.5mm rear anti-roll bars included.",changes:["New one-piece chassis design with integrated kick-up (eliminates separate kick-up block)","Updated suspension geometry for improved traction and predictability","Standard 2.2mm front / 2.5mm rear anti-roll bars included","Return to dedicated C (carpet) and D (dirt) kits"]},{id:"xray-xb2d-24",category:"1/10-2wd",brand:"XRAY",model:"XB2D '24 (Dirt)",year:2024,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '24 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY
402+XB2D+2024+dirt+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"~270 mm (short chassis)","Chassis Material":"2.0mm 7075 T6 aluminum — short-length, one-piece design with integrated kick-up","Chassis Layout":"Laydown mid-motor","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone","Front Hub Design":"Updated C-block with one-piece integrated chassis kick-up","Rear Hub Design":"Updated D-block; 3° rear toe for dirt","Anti-Roll Bar (front)":"Included — 2.2mm front anti-roll bar","Anti-Roll Bar (rear)":"Included — 2.5mm rear anti-roll bar","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2D '24 Dirt Edition. Short chassis for outdoor conditions. 3° rear toe stock vs 1° on carpet. Same one-piece integrated chassis improvement as XB2C '24.",changes:["New one-piece chassis design with integrated kick-up","Updated D-block geometry for 3° toe (dirt)"]},{id:"xray-xb2c-25",category:"1/10-2wd",brand:"XRAY",model:"XB2C '25 (Carpet)",year:2025,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '25 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB2C+2025+carpet+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"~274 mm","Chassis Material":"2.0mm 7075 T6 aluminum","Chassis Layout":"Laydown mid-motor — 5-gear gearbox conversion set available as option","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone","Anti-Roll Bar (front)":"Included — 2.2mm front anti-roll bar","Anti-Roll Bar (rear)":"Included — 2.5mm rear anti-roll bar","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown; optional 5-gear gearbox conversion set available","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2C '25 Carpet Edition. Separate carpet and dirt manuals confirmed on petitrc.com. 5-gear gearbox conversion set available as option (per petitrc.com XB2'25 5 Gears Gearbox Conversion Set listing).",changes:["Updated suspension geometry from '24","5-gear gearbox conversion set available as option"]},{id:"xray-xb2d-25",category:"1/10-2wd",brand:"XRAY",model:"XB2D '25 (Dirt)",year:2025,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '25 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB2D+2025+dirt+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"~270 mm (short chassis)","Chassis Material":"2.0mm 7075 T6 aluminum — short-length","Chassis Layout":"Laydown mid-motor","Shock Type":"12mm big bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone — dirt geometry","Anti-Roll Bar (front)":"Included — 2.2mm front anti-roll bar","Anti-Roll Bar (rear)":"Included — 2.5mm rear anti-roll bar","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2D '25 Dirt Edition. Confirmed via petitrc.com '25 dirt manual listing.",changes:["Updated geometry from '24 dirt kit"]},{id:"xray-xb2c-26",category:"1/10-2wd",brand:"XRAY",model:"XB2C '26 (Carpet)",year:2026,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '26 
402Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB2C+2026+carpet+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"~274 mm (mid-size chassis — larger than dirt short-size)","Chassis Material":"All-new 2.5mm Swiss 7075 T6 aluminum — mid-size for carpet; location-milled for enhanced flex and traction (upgraded from 2.0mm prior years)","Chassis Layout":"Laydown mid-motor","Shock Type":"12mm big bore threaded aluminum — new -1mm shorter shock caps for extended up-travel range","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Extended droop range vs '25 (new -1mm shorter shock caps)","Stock Spring Rate (front)":"Stiffer 4-dot front springs; new -6mm spring collars for wider ride height window","Stock Spring Rate (rear)":"Stiffer 4-dot rear springs; all-new 6-dot lower rear shock tower for consistent handling","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — new lighter differential outdrives reduce rotational mass; HUDY Super Diff Grease included","Suspension Type":"Front: reinforced/revised C-block / Rear: dual wishbone with all-new rear D-block (1° toe for carpet)","Front Hub Design":"Reinforced and revised C-block for improved durability; ultra-lightweight titanium shock pivot balls; wider offset settings (front 2-slot)","Rear Hub Design":"All-new rear D-block: 1° toe for carpet; stronger rear roll center holder; wider offset settings (rear 5-slot)","Rear Arm Design":"Composite arms; all-new 6-dot lower rear shock tower for carpet","Anti-Roll Bar (front)":"Included — 2.2mm front anti-roll bar","Anti-Roll Bar (rear)":"Included — 2.5mm rear anti-roll bar","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber — all-new 6-dot lower rear shock tower (carpet)","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"XB2C '26 — current carpet kit. All features verified from teamxray.com XB2'26 product page. Major upgrade: all-new 2.5mm chassis (from 2.0mm prior years). Titanium turnbuckles, titanium shock pivot balls, new lighter diff outdrives, new 6-dot rear tower, new -1mm shock caps and -6mm spring collars. 2025 European and ROAR Modified Champion kit.",changes:["All-new 2.5mm Swiss 7075 T6 chassis (up from 2.0mm)","Reinforced and revised C-block for improved durability","All-new rear D-block with 1° toe (carpet-specific)","All-new ultra-light titanium turnbuckles and shock pivot balls","New lighter differential outdrives for reduced rotational mass","New -1mm shorter shock caps for extended up-travel range","New -6mm spring collars for wider ride height adjustment","Stiffer 4-dot front and rear springs (carpet)","All-new 6-dot lower rear shock tower (carpet)","Wider offset settings (rear 5-slot, front 2-slot)","Stronger rear roll center holder","HUDY Super Diff Grease included"]},{id:"xray-xb2d-26",category:"1/10-2wd",brand:"XRAY",model:"XB2D '26 (Dirt)",year:2026,type:"1/10 2WD Electric Buggy",revisionGroup:"XRAY XB2 '26 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=XRAY+XB2D+2026+dirt+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"~270 mm (short-size chassis)","Chassis Material":"All-new 2.5mm Swiss 7075 T6 aluminum — short-size for dirt; location-milled for optimized flex (upgraded from 2.0mm prior years)","Chassis Layout":"Laydown mid-motor","Shock Type":"12mm big bore threaded aluminum — new -1mm shorter shock caps","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Extended droop vs '25 (new -1mm shorter caps)","Stock Spring Rate (front)":"Per XRAY dirt kit setup sheet; new -6mm spring collars","Stock Spring Rate (rear)":"Wider, higher downforce rear wing included (dirt kit)","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — new lighter differential outdrives; HUDY Super Diff Grease included","Suspension Type":"Front: reinforced/revised C-block / Rear: dual wishbone with all-new D-block (3° toe for dirt)","Front Hub Design":"Reinforced C-block; titanium shock pivot balls","Rear Hub Design":"All-new rear D-block: 3° toe for dirt (vs 1° on carpet); stronger rear roll center holder","Anti-Roll Bar (front)":"Included — 2.2mm front anti-roll bar","Anti-Roll Bar (rear)":"Included — 2.5mm rear anti-roll bar","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"XRAY slipper",Battery:"2S LiPo shorty","Ball Bearings":"XRAY full precision bearings","Body Included":"Yes — wider, higher-downforce rear wing (dirt)","ROAR Approved":"Yes"},notes:"XB2D '26 Dirt Edition. Same platform upgrades as XB2C '26 but with short 2.5mm chassis and 3° D-block for low-traction dirt. Wider, higher-downforce rear wing in dirt kit. All-new titanium hardware throughout.",changes:["All-new 2.5mm Swiss 7075 T6 short-size chassis (up from 2.0mm)","All-new rear D-block with 3° toe (dirt-specific)","Reinforced and revised C-block","All-new ultra-light titanium turnbuckles and shock pivot balls","New lighter differential outdrives","New 
402-1mm shock caps, -6mm spring collars","Wider, higher-downforce rear wing (dirt kit)","Stronger rear roll center holder","HUDY Super Diff Grease included"]}],oH=[{id:"tlr-22-1.0",category:"1/10-2wd",brand:"Team Losi Racing",model:"22 1.0 Race Kit",year:2011,type:"1/10 2WD Electric Buggy",revisionGroup:"TLR 22 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=TLR+22+1.0+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay (original release — primarily outdoor)",Wheelbase:"~282 mm","Chassis Material":"2.0mm aluminum — stand-up motor platform","Chassis Layout":"Stand-up 3-gear transmission — original 22 design","Shock Type":"12mm Big Bore threaded aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Gear Module":"48-pitch (DP)","Spur Gear":"Slipper clutch",Battery:"2S LiPo","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"The original TLR 22 (TLR03001) — released in 2011. Completely new 2WD platform that revolutionized 1/10 2WD racing. Stand-up 3-gear transmission. Won the ROAR Nationals upon release. Launched the most successful 2WD buggy lineage in modern RC racing history.",changes:[]},{id:"tlr-22-2.0",category:"1/10-2wd",brand:"Team Losi Racing",model:"22 2.0 Race Kit",year:2013,type:"1/10 2WD Electric Buggy",revisionGroup:"TLR 22 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=TLR+22+2.0+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"~282 mm","Chassis Material":"2.0mm aluminum — updated geometry from 22 1.0","Chassis Layout":"Stand-up 3-gear transmission — revised vs 22 1.0","Shock Type":"12mm Big Bore threaded aluminum — updated shocks","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone — updated geometry vs 22 1.0","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Gear Module":"48-pitch (DP)","Spur Gear":"HDS slipper clutch",Battery:"2S LiPo","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"TLR 22 2.0 (TLR03002) — released 2013. Revised geometry and improved component durability over the 22 1.0. Stand-up transmission maintained. Continued the 22 platform dominance through 2014–2015.",changes:["Revised suspension geometry over 22 1.0","Updated shock design and sealing","Improved front and rear suspension arms"]},{id:"tlr-22-3.0",category:"1/10-2wd",brand:"Team Losi Racing",model:"22 3.0 MM Race Kit",year:2015,type:"1/10 2WD Electric Buggy",revisionGroup:"TLR 22 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=TLR+22+3.0+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay (MM = Mid-Motor dedicated layout)",Wheelbase:"280 mm — verified from Spektrum spec page (TLR03006)",Length:"382 mm (15.0 in)",Width:"250 mm (9.8 in)","Weight (track-ready, no electronics)":"1,550 g (54.7 oz)","Chassis Material":"2.5mm milled 7075-T6 aluminum — dedicated mid-motor chassis","Chassis Layout":"Mid-motor; 3-gear transmission; motor 12mm closer to diff vs 22 2.0; no dual-layout option","Shock Type":"Gen II 12mm Big Bore threaded aluminum, x-ring seals, TiCN shafts","Shock Material":"Hard anodized aluminum, threaded body","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — tungsten carbide diff and thrust balls; flattened outdrives; self-centering gear; one-piece nut","Suspension Type":"Front: VLA (Variable Length Arm) — short or long arm geometry selectable; Rear: dual wishbone with adjustable pivot inserts","Front Hub Design":"VLA system — short or long front-arm geometry; bell crank steering","Rear Hub Design":"Rear pivot 2mm wider vs 22 2.0; adjustable toe (2.5°–4.0°) and anti-squat (0°–3.0°) via inserts","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Composite","Shock Tower (rear)":"Composite","Motor Mount":"Mid-motor; 3-gear; transverse or fore-aft battery mounting","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper",Battery:"2S LiPo — transverse saddle or fore-aft","Ball Bearings":"Full rubber seal ball bearings; C3 spec hub bearings","Body Included":"Yes — new cab-forward design","ROAR Approved":"Yes"},notes:'TLR 22 3.0 (TLR03006): all specs verified from Spektrum product page. Key platform: dedicated mid-motor ("MM") with 3-gear transmission. Motor 12mm closer to diff vs 22 2.0. Gen II 12mm big bore shocks. Ball diff with tungsten carbide balls. VLA front arm system. Transverse battery mounting enabled.',changes:["Dedicated mid-motor (MM) layout — motor 12mm closer to diff for improved rear weight bias","New 3-gear transmission from ground up","New VLA front suspension — variable length arm (no extra parts needed)","Gen II 12mm big bore shocks — x-ring seals, machined pistons, TiCN shafts","Rear pivot 2mm wider for improved grip","New ball differential — tungsten carbide balls, self
402-centering gear","Transverse battery mounting (saddle/shorty) now supported"]},{id:"tlr-22-4.0",category:"1/10-2wd",brand:"Team Losi Racing",model:"22 4.0 DC Race Kit",year:2018,type:"1/10 2WD Electric Buggy",revisionGroup:"TLR 22 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=TLR+22+4.0+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay (DC designation)",Wheelbase:"~280 mm","Weight (track-ready, no electronics)":"~1,499 g (designed to meet ROAR/IFMAR minimum)","Chassis Material":"2.0mm 7075-T6 aluminum — thinner for optimized flex with laydown layout","Chassis Layout":"Laydown mid-motor — motor horizontal for lower CG; major change from 22 3.0","Shock Type":"12mm Big Bore threaded aluminum","Shock Material":"Hard anodized aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential (tungsten carbide balls) or optional gear diff","Suspension Type":"Front: C-hub / Rear: dual wishbone with anti-squat/toe adjustable pivots","Anti-Roll Bar (front)":"Not included — 22 4.0 SR (TLR03014) variant adds front/rear sway bars","Anti-Roll Bar (rear)":"Not included — 22 4.0 SR (TLR03014) variant adds front/rear sway bars","Shock Tower (front)":"Stiffzeel composite","Shock Tower (rear)":"Stiffzeel composite","Motor Mount":"Laydown — horizontal motor; Super Heavy Duty Slipper (SHDS)","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T SHDS slipper",Battery:"2S LiPo — transverse or fore-aft","Ball Bearings":"Full rubber seal ball bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"TLR 22 4.0 DC (TLR03010) — introduced laydown transmission to the 22 platform. 2.0mm chassis (thinner than 22 3.0's 2.5mm) is intentional — engineered to flex with laydown layout for mechanical traction. Can be built under 1,499g ROAR minimum. 22 4.0 SR (TLR03014) adds front/rear sway bars and aluminum rear hexes.",changes:["New laydown motor position (horizontal) for lower CG — major change from 22 3.0 stand-up","Chassis reduced to 2.0mm 7075-T6 (from 2.5mm) for optimized flex","New Super Heavy Duty Slipper (SHDS)","Updated front caster and suspension geometry","Designed to meet ROAR/IFMAR 1,499g weight minimum"]},{id:"tlr-22-5.0-dc",category:"1/10-2wd",brand:"Team Losi Racing",model:"22 5.0 DC Race Kit",year:2021,type:"1/10 2WD Electric Buggy",revisionGroup:"TLR 22 5.0 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-losi-racing-22-5.0-dc-1-10-2wd-electric-buggy-kit-dirt-clay-tlr03016%2Fp867237",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"~280 mm","Weight (track-ready, no electronics)":"~1,499 g","Chassis Material":"2.0mm 7075-T6 aluminum — same as 22 4.0","Chassis Layout":"Laydown mid-motor","Shock Type":"G3 3.0mm shaft big bore (12mm) threaded aluminum — verified from TLR comparison chart","Shock Material":"Hard anodized aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Metal gear, oil-filled (base tier) — verified from TLR comparison chart","Suspension Type":"Front: C-hub / Rear: dual wishbone with fully adjustable pivot inserts","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Stiffzeel composite — verified from TLR comparison chart","Shock Tower (rear)":"Stiffzeel composite — verified from TLR comparison chart","Motor Mount":"Laydown; SHDS slipper","Gear Module":"48-pitch (DP)","Spur Gear":"SHDS 78T slipper",Battery:"2S LiPo — transverse or fore-aft","Ball Bearings":"Full rubber seal ball bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"TLR 22 5.0 DC (TLR03016). Base tier of the 22 5.0 line. Metal gear diff (vs ball diff on ELITE). G3 3.0mm polished shafts (vs 3.5mm TICN on ELITE). Composite shock towers (vs CF on ELITE). Composite bell cranks (vs aluminum on ELITE).",changes:["New G3 big bore shocks with updated geometry vs 22 4.0","New VHA rear hub system","Fully adjustable rear pivots"]},{id:"tlr-22-5.0-dc-elite",category:"1/10-2wd",brand:"Team Losi Racing",model:"22 5.0 DC ELITE Race Kit",year:2022,type:"1/10 2WD Electric Buggy",revisionGroup:"TLR 22 5.0 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-losi-racing-22-5.0-dc-elite-1-10-2wd-electric-buggy-kit-dirt-clay-tlr03022%2Fp1001602",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"~280 mm","Weight (track-ready, no electronics)":"~1,499 g","Chassis Material":"2.0mm 7075-T6 aluminum; carbon fiber electronics mounting plate","Chassis Layout":"Laydown mid-motor","Shock Type":"G3 3.5mm shaft big bore (12mm) threaded aluminum — ELITE upgrade","Shock Material":"Hard anodized aluminum","Stock Shock Length (F/R)":"Front 22mm / rear 21mm (body on) — verified from TLR03022 kit setup sheet","Stock Spring Rate (front)":"LF Green TLR233047 / 32.5 Wt — verified from TLR03022 kit setup sheet","Stock Spring Rate (rear)":"LF White TLR233056 / 27.5 Wt; 1.6/1.7 split piston TLR233037","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Tungsten Carbide Ball Differential — ELITE spec","Suspension Type":"Front: C-hub / Rear: dual wishbone with fully adjustable pivots","Front Hub Design":"7075-T6 aluminum bell cranks and drag link; +0° caster stock","Rear Hub Design":"VHA rear hubs; 7075-T6 aluminum rear hexes; -1° toe stock","Anti-Roll Bar (front)":"Included — 1.2mm front sway bar (verified from Horizon Hobby TLR 22 5.0 comparison chart PDF)","Anti-Roll Bar (rear)":"Included — 1.0mm rear sway bar (verified from Horizon Hobby TLR 22 5.0 comparison chart PDF)","Shock Tower (front)":"Carbon Fiber, +2mm higher than base 22 5.0 DC","Shock Tower (rear)":"Carbon Fiber, +2mm higher than base 22 5.0 DC","Motor Mount":"Laydown; 7075-T6 aluminum servo mount; SHDS slipper","Gear Module":"48-pitch (DP)","Spur Gear":"SHDS 78T slipper",Battery:"2S LiPo — transverse or fore-aft; carbon fiber electronics plate","Ball Bearings":"Full rubber seal ball bearings; aluminum black anodized locknuts","Body Included":"Yes — low mount wing (ELITE only)","ROAR Approved":"Yes"},notes:"TLR 22 5.0 DC ELITE (TLR03022). All specs verified from TLR comparison chart and TLR03022 kit setup sheet PDF. Key ELITE upgrades vs base 22 5.0 DC: TC ball diff, CF shock towers +2mm, G3 3.5mm TICN shafts, aluminum bell cranks/drag link/servo mount, titanium turnbuckles, CF electronics plate.",changes:["Tungsten Carbide Ball Differential vs metal gear diff on base","Carbon fiber shock towers +2mm height vs composite on base","G3 3.5mm TICN shafts vs 3.0mm polished on base","7075-T6 aluminum bell cranks, drag link, and servo mount","Carbon fiber electronics mounting plate","Titanium turnbuckles; aluminum black anodized locknuts","Low mount front wing vs narrow high mount on base"]},{id:"tlr-22x-dc",category:"1/10-2wd",brand:"Team Losi Racing",model:"22X DC Race Kit",year:2025,type:"1/10 2WD Electric Buggy",revisionGroup:"TLR 22X Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-losi-racing-22x-dc-1-10-2wd-electric-buggy-kit-dirt-clay-tlr-1233%2Fp1640814",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"284 mm (11.2 in) — verified from tlracing.com product page (TLR-1233)",Length:"382 mm (15.0 in) — verified from Team Losi Racing official Facebook announcement",Width:"250 mm (9.8 in) front and rear track","Chassis Material":"2.0mm hard-anodized 7075-T6 aluminum — lengthened and milled to flex in correct places for optimal grip","Chassis Layout":"Laydown — new 22X gearbox design with easy-access differential and idler gear (no full disassembly needed)","Shock Type":"13mm Big Bore threaded aluminum — upgraded from 12mm on 22 5.0","Shock Material":"Aluminum; G3 3mm internals; trusted current seals","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Caster adjustable -5° to 5° in 2.5° increments — total caster 15°–30° with kick-up adjustment","Stock Spring Rate (rear)":"Per kit setup sheet","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — verified from gshobby spec table","Suspension Type":"Front: adjustable C-hub — wide or narrow KPI options for different steering feel / Rear: dual wishbone with VHA (Variable Height Axle) rear hubs; adjustable anti-squat and rear toe pivots","Front Hub Design":"Two front caster block and spindle options (wide/narrow KPI); caster adjustable -5° to 5° in 2.5° increments;
402 kick-up 20°–25° adjustable","Rear Hub Design":"VHA rear hubs for easy bite and roll adjustment; adjustable rear pivots for anti-squat and toe","Rear Arm Design":"Multiple rear arm lengths available for tuning rear grip; glass-filled composite in multiple stiffnesses","Chassis Braces":"Shock tower covers to protect track surfaces from rollovers","Anti-Roll Bar (front)":"Included — 1.3mm front sway bar standard (verified from official TLR Facebook announcement)","Anti-Roll Bar (rear)":"Included — 1.3mm rear sway bar standard (verified from official TLR Facebook announcement)","Shock Tower (front)":"4mm woven carbon fiber — rigid; includes shock tower cover","Shock Tower (rear)":"4mm woven carbon fiber — rigid; includes shock tower cover","Motor Mount":"Laydown; built-in 30mm x 30mm motor fan mount; SHDS slipper new layout for improved balance","Internal Gear Ratio":"2.6:1 — verified from gshobby spec table","Gear Module":"48-pitch (DP)","Spur Gear":"SHDS 78T slipper — new layout",Battery:"2S LiPo shorty — max 25.1mm x 47mm x 96mm; adjustable battery mount","Ball Bearings":"Full bearings; 5.8mm ball studs and rod ends for interference-free movement","Body Included":'Yes — Pro-Line Sector 22X body; Air Force 7" rear wing; low-mount front wing',"ROAR Approved":"Yes"},notes:"All-new 22X DC (TLR-1233) — released 2025. Completely new platform, not a 22 5.0 revision. All specs verified from horizonhobby.com and gshobby.com listings. Key changes vs 22 5.0: 13mm big bore shocks (up from 12mm), new easy-access gearbox, 5.8mm ball studs/rod ends, 4mm CF towers, multiple caster block options, VHA rear hubs, multiple rear arm lengths, built-in fan mount. Internal gear ratio 2.6:1. Also includes many aluminum parts: chassis, motor plate, axles, shock standoffs, pivots, ball stud washers, rear clamping hexes, A/B front outer camber block, 25T clamping servo horn.",changes:["All-new 22X platform — brand new design not a 22 5.0 revision","New easy-access gearbox — diff and idler serviceable without full disassembly","Upgraded 13mm big bore shocks with 13mm springs (from 12mm on 22 5.0)","New 5.8mm ball studs and rod ends for interference-free movement","Two caster block/spindle options (wide/narrow KPI) in kit for different steering feel","Caster adjustable -5° to 5° in 2.5° increments; kick-up 20°–25°","4mm woven CF front and rear shock towers (with protective covers)","Multiple rear arm lengths in kit for rear grip tuning","Multiple glass-filled composite parts in different stiffnesses for rigidity tuning","Built-in 30mm motor fan mount","Lengthened chassis for current higher-grip track types","SHDS slipper with new layout for improved balance"]},{id:"tlr-22x-ac",category:"1/10-2wd",brand:"Team Losi Racing",model:"22X AC Race Kit",year:2025,type:"1/10 2WD Electric Buggy",revisionGroup:"TLR 22X Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-losi-racing-22x-ac-1-10-2wd-electric-buggy-kit-carpet-astro-tlr-1234%2Fp1640815",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Astro / Carpet",Wheelbase:"290 mm (11.4 in) — verified from tlracing.com product page (TLR-1234)",Length:"376 mm (14.8 in) — verified from michaelsrchobbies.com TLR-1234 listing",Height:"147 mm (5.8 in)","Chassis Material":"2.0mm hard-anodized 7075-T6 aluminum — refined steering geometry vs DC; lengthened for current track types","Chassis Layout":"Laydown — same easy-access gearbox as 22X DC; multiple differential heights available (starting higher than previous 22 vehicles)","Shock Type":"13mm Big Bore threaded aluminum; G3 3mm internals; 13mm springs","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Per 22X AC kit setup sheet","Stock Spring Rate (rear)":"Per 22X AC kit setup sheet","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: adjustable C-hub — caster -5° to 5° in 2.5° increments / Rear: VHA dual wishbone with adjustable anti-squat and toe pivots","Front Hub Design":"Multiple steering offsets available; industry standard offset front wheels; adjustable kick-up 20°–25° in 2.5° increments; refined steering geometry for carpet/astro vs DC","Rear Hub Design":"VHA rear hubs for easy bite and roll adju
402stment; adjustable rear pivots","Rear Arm Design":"Multiple rear arm lengths and stiffnesses; glass-filled composite","Chassis Braces":"Shock tower covers included","Anti-Roll Bar (front)":"Included — 1.3mm front sway bar standard (verified from official TLR Facebook announcement)","Anti-Roll Bar (rear)":"Included — 1.3mm rear sway bar standard (verified from official TLR Facebook announcement)","Shock Tower (front)":"4mm woven carbon fiber — rigid","Shock Tower (rear)":"4mm woven carbon fiber — rigid","Motor Mount":"Laydown; built-in 30mm motor fan mount; SHDS slipper","Gear Module":"48-pitch (DP)","Spur Gear":"SHDS 78T slipper",Battery:"2S LiPo shorty — adjustable battery mount","Ball Bearings":"Full bearings; 5.8mm ball studs and rod ends","Body Included":'Yes — Pro-Line Sector 22X body; Air Force 7" rear wing; front wing',"ROAR Approved":"Yes"},notes:"TLR 22X AC (TLR-1234) — released 2025, sibling to 22X DC. All specs verified from AMain listing. Same platform as DC but tuned for carpet/astro: longer 290mm wheelbase (vs 284mm on DC), refined steering geometry, multiple differential heights for current high-grip surface tracks. Identical 13mm shock platform, 4mm CF towers, 5.8mm ball studs. Shares same gearbox as DC.",changes:["Carpet/astro-specific wheelbase (290mm vs 284mm on DC)","Refined steering geometry for high-traction carpet and astro surfaces","Multiple diff height options — starting higher than previous 22 vehicles","Same 13mm shock, 4mm CF tower, 5.8mm ball stud upgrades as DC"]}],aH=[{id:"associated-rc10b7-1-carpet",category:"1/10-2wd",brand:"Team Associated",model:"RC10B7.1 (Carpet)",year:2025,type:"1/10 2WD Electric Buggy",revisionGroup:"Team Associated RC10B7 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-associated-rc10b7.1-team-1-10-2wd-electric-buggy-kit-asc90046%2Fp1792436",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"Adjustable — KPI adjustable caster block system",Length:"~390 mm","Chassis Material":"7075-T6 aluminum; FT carbon side rails included as standard","Chassis Layout":"3-gear laydown — reduces rotational weight vs B7 5-gear while maintaining motor position; carpet-specific setup","Shock Type":"13mm Big Bore threaded aluminum","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — carpet spec","Suspension Type":"Front: KPI adjustable C-hub / Rear: dual wishbone — carpet geometry","Front Hub Design":"Simplified steering and caster block assembly; standard and -2mm front ballstud mounts both included","Rear Hub Design":"Carpet-specific rear arm mounts; 71mm CVA bones","Rear Arm Design":"Front arms with hinge pin brace for improved durability","Chassis Braces":"FT carbon side rails included","Anti-Roll Bar (front)":"Easy-access front anti-roll bar included","Anti-Roll Bar (rear)":"Easy-access rear anti-roll bar included","Shock Tower (front)":"-2mm front shock tower (lower CG vs B7)","Shock Tower (rear)":"FT -2mm rear shock tower included","Motor Mount":"3-gear laydown","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper",Battery:"2S LiPo shorty","Ball Bearings":"Full rubber seal ball bearings","Body Included":"Yes — RC10B7 body; wings included","ROAR Approved":"Yes"},notes:"RC10B7.1 carpet kit — sibling to B7.1D dirt kit. Shares the 3-gear laydown platform update, -2mm shock towers, simplified caster block assembly, and FT carbon side rails. Gear diff for carpet. Carpet-specific arm geometry vs the 81mm rear arms on the B7.1D dirt kit.",changes:["New 3-gear laydown (from 5-gear on B7) — reduces rotational weight","Simplified lighter steering and caster block assembly","NEW -2mm front and rear shock towers for lower CG","NEW front arms with hinge pin brace","FT carbon side rails standard","3.5mm turnbuckles and ballcups","Gear differential — carpet spec"]},{id:"associated-rc10b7-1d",category:"1/10-2wd",brand:"Team Associated",model:"RC10B7.1D (Dirt)",year:2025,type:"1/10 2WD Electric Buggy",revisionGroup:"Team Associated RC10B7 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-associated-rc10b7.1d-team-1-10-2wd-electric-buggy-kit-asc90047%2Fp1792435",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"Adjustable — same adjustable caster block system as B7",Length:"~390 mm","Chassis Material":"7075-T6 aluminum; FT carbon side rails included as standard","Chassis Layout":"3-gear laydown — reduces rotational weight vs B7 5-gear while maintaining motor position","Shock Type":"13mm Big Bore threaded aluminum","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — dirt spec","Suspension Type":"Front: KPI adjustable C-hub / Rear: dual wishbone — 81mm rear arms","Front Hub Design":"NEW simplified steering and caster block assembly (lighter); standard and -2mm front ballstud mounts both included","Rear Hub Design":"81mm rear suspension arms; 71mm CVA bones","Rear Arm Design":"NEW front arms with hinge pin brace for improved durability","Chassis Braces":"FT carbon side rails included","Anti-Roll Bar (front)":"Easy-access front anti-roll bar included","Anti-Roll Bar (rear)":"Easy-access rear anti-roll bar included","Shock Tower (front)":"NEW -2mm front shock tower (lower CG vs B7)","Shock Tower (rear)":"FT -2mm rear shock tower included","Motor Mount":"3-gear laydown","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper",Battery:"2S LiPo shorty","Ball Bearings":"Full rubber seal ball bearings","Body Included":"Yes — Low-profile RC10B7 body; 7-inch rear wing; 2.5-inch front wing","ROAR Approved":"Yes"},notes:"B7.1D (manual dated 1-22-2026, #90047). New 3-gear laydown (from 5-gear), simplified lighter caster block assembly, new -2mm shock towers, new front arms with hinge pin brace, 81mm rear arms + 71mm CVA bones, FT carbon side rails standard, 3.5mm turnbuckles.",changes:["New 3-gear laydown — reduces rotational weight vs B7 5-gear","New simplified steering and caster block assembly — lighter","NEW -2mm front ballstud mount and updated top plate","NEW front arms with hinge pin brace for improved durability","NEW -2mm front shock tower for lower CG","FT -2mm rear shock tower included","81mm rear arms (71mm CVA bones)","3.5mm turnbuckles and ballcups","FT carbon side rails included as standard"]},{id:"associated-rc10b7",category:"1/10-2wd",brand:"Team Associated",model:"RC10B7 (Carpet)",year:2024,type:"1/10 2WD Electric Buggy",revisionGroup:"Team Associated RC10B7 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-associated-rc10b7-team-1-10-2wd-electric-buggy-kit-asc90041%2Fp1537091",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"Adjustable — via 
402KPI adjustable steering blocks and arm mount system",Length:"390 mm (15.35 in) — verified from associatedelectrics.com spec page; -4mm chassis option (ASC92490) available for shorter wheelbase tuning",Width:"Varies — narrow/wide front wheel options","Chassis Material":"7075-T6 aluminum with increased departure angle and optional weight plate pockets","Chassis Layout":"5-gear laydown transmission with low-profile motor mount","Shock Type":"13mm Big Bore threaded aluminum","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"High volume ball differential (14 carbide balls) — LTC internal diff gear compatible","Suspension Type":"Front: KPI adjustable C-hub / Rear: dual wishbone with standard and HRC rear hubs","Front Hub Design":"KPI adjustable steering and caster blocks (3 options in kit); vertical front outer ballstud; height-adjustable aluminum front bulkhead","Rear Hub Design":"Standard and HRC (High Roll Center) rear hubs included; 6.5mm aluminum front axle","Rear Arm Design":"Long-arm suspension geometry","Chassis Braces":"Composite side rails","Anti-Roll Bar (front)":"Easy-access front anti-roll bar included","Anti-Roll Bar (rear)":"Easy-access rear anti-roll bar included","Shock Tower (front)":"4mm carbon fiber with protective covers — FT aluminum option available","Shock Tower (rear)":"4mm carbon fiber with protective covers — FT aluminum option available","Motor Mount":"5-gear laydown — low profile; weight-centralized electronics layout","Internal Gear Ratio":"2.60:1 — verified from Associated spec page","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper (SHDS)",Battery:"7.4V–7.6V 2S LiPo shorty — adjustable holder with thumb tabs","Ball Bearings":"Full rubber seal ball bearings","Body Included":"Yes — B7 cab-forward body","ROAR Approved":"Yes"},notes:"All-new B7 platform (manual V2 8-22-2024, #90041). 5-gear laydown transmission, long-arm suspension, KPI adjustable caster blocks (3 included), high volume ball diff (LTC internal gear compatible), 7075-T6 chassis, 6.5mm aluminum front axle, HD 69mm CVA bones. Internal gear ratio 2.60:1. Easy-access front and rear anti-roll bars included.",changes:["All-new platform — B7 completely replaces B6 geometry","New 5-gear laydown transmission (from 3-gear)","New long-arm suspension geometry","KPI adjustable steering and caster blocks (3 options included)","Vertical front outer ballstud for roll center / camber gain tuning","Height-adjustable aluminum front bulkhead","Standard and HRC rear hubs both included","High volume ball diff with LTC internal gear compatibility","6.5mm aluminum front axle for slim wheel compatibility","HD 69mm CVA bones and diff outdrives","7075-T6 chassis with optional weight plate pockets","Easy-access front and rear anti-roll bars included"]},{id:"associated-rc10b7d",category:"1/10-2wd",brand:"Team Associated",model:"RC10B7D (Dirt)",year:2024,type:"1/10 2WD Electric Buggy",revisionGroup:"Team Associated RC10B7 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-associated-rc10b7d-team-1-10-2wd-electric-buggy-kit-asc90042%2Fp1537092",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay / Low-grip Astroturf",Wheelbase:"Adjustable — via KPI adjustable steering blocks and arm mount system",Length:"390 mm (15.35 in) — same chassis as B7 carpet; -4mm chassis option (ASC92490) also compatible",Width:"Varies — standard front axle (narrower than B7 carpet 6.5mm axle)","Chassis Material":"7075-T6 aluminum with increased departure angle and optional weight plate pockets","Chassis Layout":"5-gear laydown transmission with low-profile motor mount","Shock Type":"13mm Big Bore threaded aluminum","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published — softer/lower-pack pistons vs B7 carpet","Stock Spring Rate (front)":"Softer than B7 carpet — optimized for dirt/low-grip","Stock Spring Rate (rear)":"Softer than B7 carpet — optimized for dirt/low-grip","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — dirt spec; per associatedelectrics.com B7D product page","Suspension Type":"Front: KPI adjustable C-hub / Rear: dual wishbone with standard and HRC rear hubs","Front Hub Design":"KPI adjustable steering and caster blocks (3 options in kit); vertical front outer ballstud; height-adjustable aluminum front bulkhead; standard front axle (vs 6.5mm on B7 carpet)","Rear Hub Design":"Standard and HRC (High Roll Center) rear hubs included; HD 69mm CVA bones","Rear Arm Design":"Long-arm suspension geometry — fully interchangeable with B7 carpet","Chassis Braces":"Composite side rails; shock tower covers front and rear","Anti-Roll Bar (front)":"Not included — available as FT option (anti-roll bars NOT included on B7D, unlike B7 carpet)","Anti-Roll Bar (rear)":"Not included — available as FT option","Shock Tower (front)":"4mm carbon fiber with protective covers","Shock Tower (rear)":"4mm carbon fiber with protective covers","Motor Mount":"5-gear laydown — low profile; weight-centralized electronics layout","Internal Gear Ratio":"2.60:1","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper (SHDS)",Battery:"7.4V–7.6V 2S LiPo shorty — adjustable holder with thumb tabs","Ball Bearings":"Full rubber seal ball bearings","Body Included":"Yes — low-profile B7D body; 7-inch rear wing; 2.5-inch front wing","ROAR Approved":"Yes"},notes:'RC10B7D (ASC90042, manual V2 8-22-2024) — dirt companion to the RC10B7 carpet kit. Per associatedelectrics.com: "recommended starting kit for those who plan to race on dirt, clay, and some low-grip AstroTurf tracks." Key differences vs B
4027 carpet: ball diff (vs gear diff), softer springs, lower-pack pistons, standard front axle (vs wider 6.5mm on carpet), anti-roll bars NOT included. All parts fully interchangeable between B7D and B7 carpet.',changes:["Dirt-optimized build vs B7 carpet: ball differential instead of gear diff","Softer springs and lower-pack pistons for dirt/low-grip surfaces","Standard front axle (vs wider 6.5mm on B7 carpet)","Anti-roll bars not included (vs included on B7 carpet)","All platform features shared: 5-gear laydown, long-arm geometry, KPI blocks, HD 69mm CVA bones"]},{id:"associated-rc10b6-4-carpet",category:"1/10-2wd",brand:"Team Associated",model:"RC10B6.4 (Carpet)",year:2022,type:"1/10 2WD Electric Buggy",revisionGroup:"Team Associated RC10B6 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-associated-rc10b6.4-team-1-10-2wd-electric-buggy-kit-asc90034%2Fp1410380",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"Adjustable via arm mount pill inserts",Length:"~378 mm (+3mm vs B6.3)",Width:"~230 mm","Chassis Material":"New +3mm length 7075-T6 aluminum chassis with 22.5° kick-up and weight plate pockets","Chassis Layout":"Laydown mid-motor; ESC tray shifted further forward for forward weight bias","Shock Type":"New 13mm Big Bore threaded aluminum (upgraded from 12mm on B6.3)","Shock Material":"Aluminum with machined shock pistons","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — carpet spec","Suspension Type":"Front: C-hub / Rear: dual wishbone with arm mount pill inserts","Front Hub Design":"New -1mm kingpin offset steering and caster block set; 20°, 22.5°, 25° molded bulkheads included","Rear Hub Design":"New side rails with 3 optional fan mount locations; updated rear arm mounts","Rear Arm Design":"Composite arms; 4mm carbon fiber shock towers with molded protective covers","Chassis Braces":"Composite mud guards","Anti-Roll Bar (front)":"Not included — available as FT option (ASC91758)","Anti-Roll Bar (rear)":"Not included — available as FT option (ASC91759)","Shock Tower (front)":"4mm carbon fiber with molded protective covers","Shock Tower (rear)":"4mm carbon fiber with molded protective covers","Motor Mount":"Laydown; new cab-forward ESC tray for forward weight bias","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper; 5mm aluminum clamping rear wheel hexes",Battery:'2S LiPo "shorty" — adjustable holder with thumb tabs',"Ball Bearings":"FT upgraded rubber seal ball bearings","Body Included":"Yes — new cab-forward RC10B6.4 bodyshell with clear wings","ROAR Approved":"Yes"},notes:"Final generation of the RC10B6 line before the B7 (manual 6-21-2023, #90034). Key upgrades: new 13mm big bore shocks (from 12mm), +3mm longer chassis with 22.5° kickup, -1mm KPI steering blocks, ESC tray shifted further forward. Gear diff for carpet. Anti-roll bars not included in kit.",changes:["New 13mm Big Bore threaded aluminum shocks (up from 12mm)","New +3mm length aluminum chassis with 22.5° kick-up and weight plate pockets","20°, 22.5°, and 25° molded bulkheads all included","New adjustable height steering bellcrank and rack for optimized bumpsteer","New -1mm kingpin offset steering and caster block set","New steel ESC mounting tray shifted further forward","New front ballstud mount, top plate, and front wing mount","New chassis side rails with 3 optional fan mount locations","New cab-forward RC10B6.4 bodyshell","5mm aluminum clamping rear wheel hexes"]},{id:"associated-rc10b6-4d",category:"1/10-2wd",brand:"Team Associated",model:"RC10B6.4D (Dirt)",year:2022,type:"1/10 2WD Electric Buggy",revisionGroup:"Team Associated RC10B6 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fteam-associated-rc10b6.4d-team-1-10-2wd-electric-buggy-kit-asc90035%2Fp1410381",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"Adjustable via arm mount pill inserts",Length:"~378 mm",Width:"~230 mm","Chassis Material":"New +3mm length 7075-T6 aluminum chassis with 22.5° kick-up and weight plate pockets","Chassis Layout":"Laydown / Layback selectable","Shock Type":"New 13mm Big Bore threaded aluminum","Shock Material":"Aluminum with machined shock pistons","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — dirt spec","Suspension Type":"Front: C-hub / Rear: dual wishbone with arm mount pill inserts","Front Hub Design":"New -1mm kingpin offset steering and caster block set; 20°, 22.5°, 25° molded bulkheads included","Rear Hub Design":"New side rails with 3 optional fan mount locations","Rear Arm Design":"Composite arms; 4mm carbon fiber shock towers with molded protective covers","Chassis Braces":"Composite mud guards","Anti-Roll Bar (front)":"Not included — available as FT option (ASC91758)","Anti-Roll Bar (rear)":"Not included — available as FT option (ASC91759)","Shock Tower (front)":"4mm carbon fiber with molded protective covers","Shock Tower (rear)":"4mm carbon fiber with molded protective covers","Motor Mount":"Laydown / Layback selectable","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper",Battery:'2S LiPo "shorty"',"Ball Bearings":"FT upgraded rubber seal ball bearings","Body Included":"Yes — new cab-forward bodyshell","ROAR Approved":"Yes"},notes:"B6.4D dirt variant — same chassis and 13mm shock upgrades as B6.4 carpet, but with ball diff and layback motor option for outdoor surfaces.",changes:["New 13mm Big Bore shocks (same as B6.4 carpet)","New +3mm length chassis with 22.5° kick-up (same as B6.4 carpet)","Ball differential — dirt spec"]},{id:"associated-rc10b6-3-carpet",category:"1/10-2wd",brand:"Team Associated",model:"RC10B6.3 (Carpet)",year:2021,type:"1/10 2WD Electric Buggy",revisionGroup:"Team Associated RC10B6 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Team+Associated+RC10B6.3+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"Adjustable via arm mount pill inserts",Length:"~375 mm",Width:"~230 mm","Chassis Material":"2.5mm hard-anodized aluminum","Chassis Layout":"Laydown mid-motor","Shock Type":"12mm Big Bore threaded aluminum","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — carpet spec","Suspension Type":"Front: C-hub / Rear: dual wishbone with pill inserts","Front Hub Design":"New +3mm steering bellcranks for wider Ackermann range; updated geometry over B6.2","Rear Hub Design":"Revised rear arm mounts; improved anti-squat and toe adjustment range","Rear Arm Design":"Composite arms; 4mm carbon fiber shock towers","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as FT option","Anti-Roll Bar (rear)":"Not included — available as FT option","Shock Tower (front)":"4mm carbon fiber","Shock Tower (rear)":"4mm carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper",Battery:"2S LiPo","Ball Bearings":"FT upgraded rubber seal ball bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"B6.3 introduced +3mm steering bellcranks for improved Ackermann and bump steer. 4mm carbon fiber shock towers.",changes:["New +3mm steering bellcranks for improved Ackermann range and bump steer control","Updated front suspension geometry","Revised rear arm mounts for expanded anti-squat/toe range","4mm carbon fiber shock towers"]},{id:"associated-rc10b6-3d",category:"1/10-2wd",brand:"Team Associated",model:"RC10B6.3D (Dirt)",year:2021,type:"1/10 2WD Electric Buggy",revisionGroup:"Team Associated RC10B6 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Team+Associated+RC10B6.3D+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"Adjustable via arm mount pill inserts",Length:"~375 mm",Width:"~230 mm","Chassis Material":"2.5mm hard-anodized aluminum","Chassis Layout":"Laydown / Layback selectable","Shock Type":"12mm Big Bore threaded aluminum","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — dirt spec","Suspension Type":"Front: C-hub / Rear: dual wishbone with pill inserts","Front Hub Design":"New +3mm steering bellcranks; updated geometry over B6.2D","Rear Hub Design":"Revised rear arm mounts; expanded anti-squat/toe range","Rear Arm Design":"Composite arms; 4mm carbon fiber shock towers","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as FT option","Anti-Roll Bar (rear)":"Not included — available as FT option","Shock Tower (front)":"4mm carbon fiber","Shock Tower (rear)":"4mm carbon fiber","Motor Mount":"Laydown / Layback selectable","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper",Battery:"2S LiPo","Ball Bearings":"FT upgraded rubber seal ball bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"B6.3D — same +3mm bellcrank and 4mm CF tower improvements as B6.3 carpet, but with ball diff and layback motor option for outdoor dirt.",changes:["New +3mm steering bellcranks (same as B6.3 carpet)","4mm carbon fiber shock towers","Revised rear arm mounts from B6.2D"]},{id:"associated-rc10b6-2-carpet",category:"1/10-2wd",brand:"Team Associated",model:"RC10B6.2 (Carpet)",year:2019,type:"1/10 2WD Electric Buggy",revisionGroup:"Team Associated RC10B6 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Team+Associated+RC10B6.2+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"Adjustable via arm mount pill inserts",Length:"~375 mm",Width:"~230 mm","Chassis Material":"2.5mm hard-anodized aluminum","Chassis Layout":"Laydown mid-motor","Shock Type":"12mm Big Bore threaded aluminum","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — carpet spec","Suspension Type":"Front: C-hub / Rear: dual wishbone with arm mount pill inserts","Front Hub Design":"Improved front geometry over B6.1; updated steering blocks","Rear Hub Design":"Updated rear hub carriers; improved traction geometry","Rear Arm Design":"Composite arms; carbon fiber shock towers","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as FT option","Anti-Roll Bar (rear)":"Not included — available as FT option","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper",Battery:"2S LiPo","Ball Bearings":"FT upgraded rubber seal ball bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"B6.2 incremental update to B6.1 carpet. Updated rear hub carriers and arm geometry.",changes:["Updated rear hub carriers for improved traction","Revised rear arm geometry"]},{id:"associated-rc10b6-2d",category:"1/10-2wd",brand:"Team Associated",model:"RC10B6.2D (Dirt)",year:2019,type:"1/10 2WD Electric Buggy",revisionGroup:"Team Associated RC10B6 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Team+Associated+RC10B6.2D+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"Adjustable via arm mount pill inserts",Length:"~375 mm",Width:"~230 mm","Chassis Material":"2.5mm hard-anodized aluminum","Chassis Layout":"Laydown / Layback selectable","Shock Type":"12mm Big Bore threaded aluminum","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — dirt spec","Suspension Type":"Front: C-hub / Rear: dual wishbone with arm mount pill inserts","Front Hub Design":"Updated front geometry over B6.1D","Rear Hub Design":"Updated rear hub carriers; improved dirt traction geometry","Rear Arm Design":"Composite arms; carbon fiber shock towers","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as FT option","Anti-Roll Bar (rear)":"Not included — available as FT option","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown / Layback selectable","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper",Battery:"2S LiPo","Ball Bearings":"FT upgraded rubber seal ball bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"B6.2D dirt variant — ball diff, updated rear arm mounts from B6.1D.",changes:["Updated rear hub carriers for improved traction and stability","Revised rear arm geometry from B6.1D"]},{id:"associated-rc10b6-1-carpet",category:"1/10-2wd",brand:"Team Associated",model:"RC10B6.1 (Carpet)",year:2016,type:"1/10 2WD Electric Buggy",revisionGroup:"Team Associated RC10B6 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Team+Associated+RC10B6.1+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"Adjustable via arm mount pill inserts",Length:"~375 mm",Width:"~230 mm","Chassis Material":"2.5mm hard-anodized aluminum","Chassis Layout":"Laydown transmission — motor forward for forward weight bias on carpet","Shock Type":"12mm Big Bore threaded aluminum","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — carpet spec","Suspension Type":"Front: C-hub / Rear: dual wishbone with pill inserts","Front Hub Design":"One-piece steering blocks with bolt-on Ackermann plates; multiple bulkhead caster options","Rear Hub Design":"Adjustable battery hold-down; aluminum C plate and ball stud mount","Rear Arm Design":"Gull-wing arms; carbon fiber shock towers; multiple shock mounting positions","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as FT option","Anti-Roll Bar (rear)":"Not included — available as FT option","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Laydown — forward motor position for carpet weight bias","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper",Battery:"2S LiPo — fore-aft or transverse","Ball Bearings":"FT upgraded rubber seal ball bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"B6.1 introduced the laydown/layback transmission concept to the B6 platform. Carpet version runs laydown (forward motor).",changes:["New laydown transmi
402ssion for carpet (vs stand-up on B6)","New front suspension geometry for improved steering consistency","Updated steering bellcrank and rack design"]},{id:"associated-rc10b6-1d",category:"1/10-2wd",brand:"Team Associated",model:"RC10B6.1D (Dirt)",year:2016,type:"1/10 2WD Electric Buggy",revisionGroup:"Team Associated RC10B6 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Team+Associated+RC10B6.1D+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"Adjustable via arm mount pill inserts",Length:"~375 mm",Width:"~230 mm","Chassis Material":"2.5mm hard-anodized aluminum","Chassis Layout":"Layback transmission — motor rearward for rear weight bias on dirt","Shock Type":"12mm Big Bore threaded aluminum","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — dirt spec; 14 carbide balls","Suspension Type":"Front: C-hub / Rear: dual wishbone with pill inserts","Front Hub Design":"One-piece steering blocks with bolt-on Ackermann plates; multiple bulkhead caster options","Rear Hub Design":"Adjustable battery hold-down; aluminum C plate and ball stud mount","Rear Arm Design":"Gull-wing arms; carbon fiber shock towers","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as FT option","Anti-Roll Bar (rear)":"Not included — available as FT option","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Layback — rearward motor position for dirt rear weight bias","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper",Battery:"2S LiPo","Ball Bearings":"FT upgraded rubber seal ball bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"B6.1D uses layback motor position (motor rearward) and ball diff. The B6.1DL limited edition added a dedicated dirt laydown option.",changes:["Layback motor position for increased rear weight bias on dirt","Ball differential (14 carbide balls) vs gear diff on carpet"]},{id:"associated-rc10b6",category:"1/10-2wd",brand:"Team Associated",model:"RC10B6 (Carpet)",year:2014,type:"1/10 2WD Electric Buggy",revisionGroup:"Team Associated RC10B6 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Team+Associated+RC10B6+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"Adjustable via arm mount pill inserts",Length:"~375 mm",Width:"~230 mm","Chassis Material":"2.5mm hard-anodized aluminum (pocketed)","Chassis Layout":"Stand-up (upright) 3-gear Stealth™ transmission with lightweight aluminum top shaft","Shock Type":"V2 12mm Big Bore threaded aluminum, TiCN 3mm shafts, x-ring seals","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential with FT aluminum gear diff cover — carbide diff balls (carpet spec)","Suspension Type":"Front: C-hub / Rear: dual wishbone with arm mount pill inserts","Front Hub Design":"One-piece steering blocks with bolt-on Ackermann plates; 25° or 30° bulkhead options","Rear Hub Design":"Centralized motor positioning; adjustable battery hold-down","Rear Arm Design":"Gull-wing arms with 3 shock mounting positions","Chassis Braces":"Composite mud guards; reverse bellcrank steering rack","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Stand-up / upright; centralized for side-to-side balance","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper (Heavy Duty Slipper)",Battery:"2S LiPo — adjustable fore-aft","Ball Bearings":"FT upgraded rubber seal ball bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"RC10B6 (carpet) — released 2014 alongside RC10B6D (dirt). Both share the stand-up Stealth™ transmission, V2 12mm big bore shocks, and 2.5mm aluminum chassis.",changes:[]},{id:"associated-rc10b6d",category:"1/10-2wd",brand:"Team Associated",model:"RC10B6D (
402Dirt)",year:2014,type:"1/10 2WD Electric Buggy",revisionGroup:"Team Associated RC10B6 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Team+Associated+RC10B6D+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"Adjustable via arm mount pill inserts",Length:"~375 mm",Width:"~230 mm","Chassis Material":"2.5mm hard-anodized aluminum (pocketed)","Chassis Layout":"Stand-up (upright) 3-gear Stealth™ transmission with lightweight aluminum top shaft","Shock Type":"V2 12mm Big Bore threaded aluminum, TiCN 3mm shafts, x-ring seals","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential with 14 carbide balls — dirt spec for maximum mechanical traction","Suspension Type":"Front: C-hub / Rear: dual wishbone with arm mount pill inserts","Front Hub Design":"One-piece steering blocks with bolt-on Ackermann plates; 25° or 30° bulkhead options","Rear Hub Design":"Centralized motor positioning; adjustable fore-aft battery hold-down strap","Rear Arm Design":"Flat arms with 3 shock mounting positions","Chassis Braces":"Composite mud guards; reverse bellcrank steering rack","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"Stand-up / upright; centralized for side-to-side balance","Gear Module":"48-pitch (DP)","Spur Gear":"HDS 78T slipper (Heavy Duty Slipper)",Battery:"2S LiPo — fore-aft adjustable hold-down strap","Ball Bearings":"FT upgraded rubber seal ball bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"RC10B6D (dirt) — ball differential with 14 carbide balls vs. gear diff on the B6 carpet kit.",changes:[]}],sH=[{id:"schumacher-cougar-ld3-carpet",category:"1/10-2wd",brand:"Schumacher",model:"Cougar LD3 (Astro/Carpet)",year:2024,type:"1/10 2WD Electric Buggy",revisionGroup:"Schumacher Cougar LD3 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fschumacher-cougar-ld3-1-10-2wd-electric-buggy-kit-astro-carpet-schk208%2Fp1637340",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Astro / Carpet (medium to high-grip)",Wheelbase:"275–285 mm (10.8–11.2 in) — verified from amainhobbies.com K208 listing",Length:"395 mm (15.5 in) — verified from amainhobbies.com K208 listing",Width:"245 mm (9.6 in) — verified from amainhobbies.com K208 listing","Chassis Material":"2.5mm aluminum — new LD3 platform","Chassis Layout":"Laydown — new LD3 low-CG design; optimised for medium to high-grip astro and carpet","Shock Type":"Schumacher big bore aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — astro/carpet spec (LD3M = K208)","Suspension Type":"Front: C-hub / Rear: dual wishbone — updated LD3 geometry","Front Hub Design":"Updated front geometry from KC/LD2; new Schumacher LD3 design","Rear Hub Design":"Updated rear hubs with adjustable roll center","Rear Arm Design":"Composite arms — LD3 geometry for medium-high grip","Chassis Braces":"Composite side pods","Anti-Roll Bar (front)":"Not included in kit — optional via Schumacher LD3 anti-roll bar set","Anti-Roll Bar (rear)":"Not included in kit — optional via Schumacher LD3 anti-roll bar set","Shock Tower (front)":"Schumacher aluminum","Shock Tower (rear)":"Schumacher aluminum","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"Schumacher slipper",Battery:"2S LiPo","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Schumacher Cougar LD3 (K208 = Mod, K209 = Dirt, K210 = Stock). K208 LD3M optimised for medium to high-grip astro and carpet tracks. All-new LD3 platform replaces both the LD2 and KC/KD.",changes:["All-new LD3 platform — replaces LD2 and KC/KD series","New suspension geometry for improved handling on high-grip surfaces","Updated laydown transmission design"]},{id:"schumacher-cougar-ld3-dirt",category:"1/10-2wd",brand:"Schumacher",model:"Cougar LD3 (Dirt)",year:2024,type:"1/10 2WD Electric Buggy",revisionGroup:"Schumacher Cougar LD3 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fschumacher-cougar-ld3-1-10-2wd-electric-buggy-kit-dirt-schk209%2Fp1637341",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"275–285 mm (10.8–11.2 in) — verified from hobbytown.com K209 listing",Length:"395 mm (15.5 in) — verified from hobbytown.com K209 listing",Width:"245 mm (9.6 in) — verified from hobbytown.com K209 listing","Chassis Material":"2.5mm aluminum — LD3 platform dirt spec (K209)","Chassis Layout":"Laydown — L
402D3 dirt geometry","Shock Type":"Schumacher big bore aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — dirt spec (K209)","Suspension Type":"Front: C-hub / Rear: dual wishbone — LD3 dirt geometry","Front Hub Design":"LD3 dirt-tuned front geometry","Rear Hub Design":"Adjustable rear roll center — dirt position","Rear Arm Design":"Composite arms — LD3 dirt geometry","Chassis Braces":"Composite side pods","Anti-Roll Bar (front)":"Not included in kit — optional via Schumacher LD3 anti-roll bar set","Anti-Roll Bar (rear)":"Not included in kit — optional via Schumacher LD3 anti-roll bar set","Shock Tower (front)":"Schumacher aluminum","Shock Tower (rear)":"Schumacher aluminum","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"Schumacher slipper",Battery:"2S LiPo","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Schumacher Cougar LD3 Dirt (K209). K208 = Mod (carpet/astro), K209 = Dirt, K210 = Stock spec. All-new LD3 design replaces KC/KD and LD2 lineup.",changes:[]},{id:"schumacher-cougar-ld2-carpet",category:"1/10-2wd",brand:"Schumacher",model:"Cougar LD2 (Astro/Carpet)",year:2021,type:"1/10 2WD Electric Buggy",revisionGroup:"Schumacher Cougar LD2 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Schumacher+Cougar+LD2+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Astro / Carpet",Wheelbase:"275–285 mm — verified from AMain listing (K190)",Length:"395 mm — verified from AMain listing",Width:"245 mm — verified from AMain listing","Chassis Material":"2.5mm aluminum — verified from AMain listing; composite side pods for chassis stiffness tuning","Chassis Layout":"Laydown — 3-gear, low CG sealed gearbox with CNC machined idler; compact steering for improved inline weight placement","Shock Type":"Big bore, threaded aluminum","Shock Material":"Aluminum — two-piece shock cap with bleed screw; threaded spring collars; twin O-ring sealing","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Twin pad 80T slipper clutch with gear diff — astro/carpet spec","Suspension Type":'Front: 5° yokes with adjustable roll center heights / Rear: dual wishbone; "Gull Wing" suspension arms',"Front Hub Design":'Strong front steering hub with "Kwik Klip" adjustment; zero and -5mm wheelbase length options; front shock tower cover included',"Rear Hub Design":"Adjustable rear roll centers; triple position equipment mounting plate","Rear Arm Design":'"Gull Wing" composite arms',"Chassis Braces":"Composite molded side pods for advanced chassis stiffness tuning","Anti-Roll Bar (front)":"Not included in kit — available as Schumacher option","Anti-Roll Bar (rear)":"Not included in kit — available as Schumacher option","Shock Tower (front)":"Composite with protective cover","Shock Tower (rear)":"Composite","Motor Mount":"Laydown — easy access transmission; 90° phased lightweight steel CVD driveshafts","Gear Module":"48-pitch (DP)","Spur Gear":"80T twin pad slipper clutch",Battery:"2S LiPo — easy access battery fitting with multiple position options","Ball Bearings":"Full bearings; CNC machined idler gear","Body Included":"Yes — low drop wing mount","ROAR Approved":"Yes"},notes:'Cougar LD2 (K190) — released 2021. All specs verified from AMain listing and racing-cars.com. Also available as K191 "Stock Spec" with carbon-filled transmission housings and slipper lockout. Racing-cars.com has extensive astro, carpet, and dirt driver setup sheets.',changes:["Updated front suspension geometry vs Cougar Laydown (original)","New 2.5mm aluminum chassis","90° phased lightweight steel CVD driveshafts","Improved two-piece shock cap with bleed screw","Adjustable rear roll centers","Front shock tower protective cover included","Zero and -5mm wheelbase options via front end adjustment"]},{id:"schumacher-cougar-ld2-dirt",category:"1/10-2wd",brand:"Schumacher",model:"Cougar LD2 (Dirt)",year:2021,type:"1/10 2WD Electric Buggy",revisionGroup:"Schumacher Cougar LD2 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Schumacher+Cougar+LD2+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay",Wheelbase:"275–285 mm",Length:"395 mm",Width:"245 mm","Chassis Material":"2.5mm aluminum with composite side pods","Chassis Layout":"Laydown — same base kit as astro; dirt-tuned setup","Shock Type":"Big bore threaded aluminum","Shock Material":"Aluminum — two-piece shock cap with bleed screw; threaded spring collars","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — dirt/outdoor spec for maximum mechanical traction","Suspension Type":"Front: 5° yokes with adjustable roll center / Rear: Gull Wing dual wishbone","Front Hub Design":'"Kwik Klip" adjustment; adjustable roll center heights; wheelbase inserts',"Rear Hub Design":"Adjustable rear roll centers — different position vs astro setup","Rear Arm Design":"Gull Wing composite arms","Chassis Braces":"Composite molded side pods","Anti-Roll Bar (front)":"Not included in kit — available as Schumacher option","Anti-Roll Bar (rear)":"Not included in kit — available as Schumacher option","Shock Tower (front)":"Composite with protective cover","Shock Tower (rear)":"Composite","Motor Mount":"Laydown","Gear Module":"48-pitch (DP)","Spur Gear":"80T slipper",Battery:"2S LiPo","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Same base kit as LD2 astro/carpet (K190), run with a ball diff and different settings for dirt/clay. Racing-cars.com provides dedicated dirt setup sheets: Michal Orlowski Dirt Testing, Broc Champlin Utah State Champs, Jorn Neumann Desert Classic.",changes:[]},{id:"schumacher-cougar-laydown",category:"1/10-2wd",brand:"Schumacher",model:"Cougar Laydown (LD)",year:2019,type:"1/10 2WD Electric Buggy",revisionGroup:"Schumacher Cougar LD Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Schumacher+Cougar+Laydown+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astro / Dirt (multi-surface via setup)",Wheelbase:"285 mm",Length:"395 mm — verified from AMain listing (K180)",Width:"250 mm — verified from AMain listing","Chassis Material":"Aluminum with composite side pods","Chassis Layout":"Laydown — new 3-gear low CG sealed gearbox; major departure from the KD/KC stand-up design; compact lightweight transmission with gear differential","Shock Type":"Big bore threaded aluminum with titanium nitride shafts","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — low rotating mass","Suspension Type":'Front: C-hub with "Kwik Klip" adjustment / Rear: dual wishbone with Gull Wing arms',"Front Hub Design":'"Kwik Klip" fine adjustment; adjustable roll center heights; front shock tower cover included',"Rear Hub Design":"Adjustable rear roll centers; rear pivot straps with anti-squat and toe-in options","Rear Arm Design":"Gull Wing composite arms","Chassis Braces":"Composite molded side pods","Anti-Roll Bar (front)":"Not included — available as Schumacher option","Anti-Roll Bar (rear)":"Not included — available as Schumacher option","Shock Tower (front)":"Composite with protective cover","Shock Tower (rear)":"Composite","Motor Mount":"Laydown — small, low rotating mass transmission","Gear Module":"48-pitch (DP)","Spur Gear":"Twin pad slipper",Battery:"2S LiPo — multiple battery positions","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:'Cougar Laydown (K180) — released 2019. Major platform shift for Schumacher: first dedicated laydown transmission in the Cougar line. Per circusrc.com: "new 3-gear, low centre of gravity sealed gearbox; new small, low rotating mass transmission, including gear differential." Wheelbase 285mm and width 250mm verified from AMain/lprcs listing. Also available as Stock Spec variant.',changes:["All-new 3-gear laydown (low CG) sealed gearbox — major change from KD/KC stand-up","New small, low rotating mass transmission with gear differential","Easy access battery fitting with multiple positions","Front shock tower protective cover","Rear pivot straps with anti-squat and inboard toe-in options"]},{id:"schumacher-cougar-kd-2017",category:"1/10-2wd",brand:"Schumacher",model:"Cougar KD / 2017 (Dirt)",year:2017,type:"1/10 2WD Electric Buggy",revisionGroup:"Schumacher Cougar KD/KC 2017 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Schumacher+Cougar+KD+2017+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay (low-traction)",Wheelbase:"~275 mm",Length:"~395 mm",Width:"~245 mm","Chassis Material":"Aluminum","Chassis Layout":"Stand-up 3-gear transmission — dedicated dirt layout for increased rear grip; new design vs KF2 belt drive","Shock Type":"Schumacher big bore aluminum with titanium nitride shafts","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — dirt spec for maximum mechanical traction","Suspension Type":"Front: C-hub / Rear: dual wishbone","Front Hub Design":'"Kwik Klip" adjustment; adjustable roll center heights',"Rear Hub Design":"Adjustable rear roll center; rear pivot strap with anti-squat options","Rear Arm Design":"Composite arms tuned for low-traction surfaces","Chassis Braces":"Composite side pods","Anti-Roll Bar (front)":"Not included — available as Schumacher option","Anti-Roll Bar (rear)":"Not included — available as Schumacher option","Shock Tower (front)":"Schumacher aluminum","Shock Tower (rear)":"Schumacher aluminum","Motor Mount":"Stand-up 3-gear — adjustable for loose dirt to hard-packed clay","Gear Module":"48-pitch (DP)","Spur Gear":"Schumacher slipper",Battery:"2S LiPo","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:'Cougar KD (K171) — released 2017 alongside the KC carpet edition. Per redrc.net: "designed specifically for low-traction dirt tracks, featuring a 3-gear stand-up transmission for increased rear grip." Adjustable to handle loose dirt through hard-packed clay. Different platform from the later 2023 KD (laydown). Note: same kit designation K171 was reused for the later laydown KD — this is the original 2017 stand-up 3-gear version.',changes:["New 3-gear stand-up transmission (vs KF2 single belt drive)","Dedicated dirt geometry for low-traction surfaces","Ball differential for maximum mechanical traction on dirt"]},{id:"schumacher-cougar-kc-2017",category:"1/10-2wd",brand:"Schumacher",model:"Cougar KC / 2017 (Carpet)",year:2017,type:"1/10 2WD Electric Buggy",revisionGroup:"Schumacher Cougar KD/KC 2017 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Schumacher+Cougar+KC+201
4027+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astro (high-grip)",Wheelbase:"~275 mm",Length:"~395 mm",Width:"~245 mm","Chassis Material":"Aluminum","Chassis Layout":"Multi-position stand-up/laydown — 4 motor positions for weight distribution tuning on carpet and astro; per liverc.com","Shock Type":"Schumacher big bore aluminum with titanium nitride shafts","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — carpet spec","Suspension Type":"Front: C-hub / Rear: dual wishbone","Front Hub Design":'"Kwik Klip" adjustment; multiple roll center settings',"Rear Hub Design":"Adjustable rear roll center; multiple battery position options","Rear Arm Design":"Composite arms tuned for high-grip carpet/astro","Chassis Braces":"Composite side pods","Anti-Roll Bar (front)":"Not included — available as Schumacher option","Anti-Roll Bar (rear)":"Not included — available as Schumacher option","Shock Tower (front)":"Schumacher aluminum","Shock Tower (rear)":"Schumacher aluminum","Motor Mount":"Multi-position — 4 motor layout positions for high or low grip carpet weight distribution","Gear Module":"48-pitch (DP)","Spur Gear":"Schumacher slipper",Battery:"2S LiPo — multiple battery position options","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:'Cougar KC (K172) — released 2017. Per liverc.com: "designed primarily for modern carpet and astro surfaces. Offering the driver four different motor layout positions with multiple battery options." Per bigsquidrc.com: "four different motor layouts." Sibling to the KD dirt kit. Note: same KC designation was later used for the 2023 laydown KC — this is the original 2017 multi-position stand-up version.',changes:["New 4 motor positions (vs 2 on KF2) for fine-tuned weight distribution on carpet","Dedicated carpet/astro geometry","Multiple battery position options"]},{id:"schumacher-cougar-kf2",category:"1/10-2wd",brand:"Schumacher",model:"Cougar KF2",year:2014,type:"1/10 2WD Electric Buggy",revisionGroup:"Schumacher Cougar KF Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Schumacher+Cougar+KF2+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astro / Dirt (multi-surface via dual motor position)",Wheelbase:"285 mm — verified from petitrc.com",Length:"395 mm — verified from competitionx.com and petitrc.com",Width:"250 mm — verified from petitrc.com","Chassis Material":"2.5mm black hard-anodised alloy chassis — verified from petitrc.com","Chassis Layout":"Single belt drive with dual motor position — forward (high grip, central) or rearward (low grip, shorty LiPo); 21mm motor shift range; alloy chassis stiffeners","Shock Type":"Pro spec 13mm big bore with TiN shafts — CNC machined 3-hole 1.6mm rear / 1.5mm front pistons; twin O-ring sealing; diaphragm volume compensation","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential with hardened steel gears and super-hard outputs — optional ball diff available","Suspension Type":"Front: C-hub with long front wishbones / Rear: dual wishbone with new rear pivot straps","Front Hub Design":'Strong front steering hub with "Kwik Klip" fine adjustment',"Rear Hub Design":"New rear pivot straps with anti-squat and inboard toe-in options; two toe-in options in kit; roll centre adjustment","Rear Arm Design":"Composite arms — fully optimised KF2 suspension geometry","Chassis Braces":"Alloy chassis stiffeners — no front top deck for easier radio access; composite moulded side pods","Anti-Roll Bar (front)":"Not included — available as Schumacher option","Anti-Roll Bar (rear)":"Not included — available as Schumacher option","Shock Tower (front)":"Composite — shock nut guards front and rear","Shock Tower (rear)":"Composite","Motor Mount":"Single belt drive; dual motor position — 21mm range; simplified motor mount with increased cooling; QUAD pad vented slipper with fine adjustment spring","Gear Module":"48-pitch (DP)","Spur Gear":"QUAD pad vented slipper — ultra fine adjustment spring",Battery:"2S LiPo — standard or shorty (required for rearward low-grip motor position)","Ball Bearings":"Full bearings; quick-release layshaft; lightweight narrower side gears","Body Included":"Yes — AirFlo Cab bodyshell","ROAR Approved":"Yes"},notes:"Cougar KF2 — released 2014/2015. All specs from petitrc.com KF2 product page. Evolution of the Cougar KF with 2.5mm black hard-anodised chassis, new QUAD pad vented slipper, dual motor position (21mm range), alloy chassis stiffeners, and new rear pivot straps with anti-squat/toe options. 13mm big bore shocks with TiN shafts. Single belt drive. Long front wishbones. Gear diff standard, optional ball diff available.",changes:["NEW dual motor position in kit — 21mm range (forward high-grip / rearward low-grip with shorty LiPo)","NEW QUAD pad vented slipper with ultra fine adjustment spring","NEW 2.5mm black hard-anodised alloy chassis","NEW alloy chassis stiffeners (replaces front top deck)","NEW rear pivot straps with anti-squat and inboard toe-in options","NEW 13mm big bore shocks with TiN shafts, 3-hole CNC pistons, diaphragm volume compensation","NEW lightweight narrower side gears for increased efficie
402ncy","NEW simplified motor mount with increased cooling; optional fan mount","NEW AirFlo Cab bodyshell","Quick-release layshaft"]}],lH=[{id:"mugen-msb1-carpet",category:"1/10-2wd",brand:"Mugen Seiki",model:"MSB1 (Carpet)",year:2024,type:"1/10 2WD Electric Buggy",revisionGroup:"Mugen Seiki MSB1 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fmugen-seiki-msb1-1-10-2wd-electric-buggy-kit-w-gear-differential-mugb2001%2Fp1547227",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf",Wheelbase:"Adjustable",Length:"~370 mm",Width:"~235 mm","Chassis Material":"Hard anodized aluminum — Mugen competition spec","Chassis Layout":"Laydown mid-motor — low CG design","Shock Type":"Mugen big bore aluminum","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Per MSB1 Carpet setup sheet v2404 (mugenseiki.com)","Stock Spring Rate (front)":"Per MSB1 Carpet setup sheet v2404","Stock Spring Rate (rear)":"Per MSB1 Carpet setup sheet v2404","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — consistent power delivery on high-traction carpet surface","Suspension Type":"Front: C-hub / Rear: dual wishbone","Front Hub Design":"Mugen composite front knuckles; adjustable caster","Rear Hub Design":"Mugen composite rear hubs; adjustable toe and anti-squat","Rear Arm Design":"Composite arms; carbon fiber shock towers","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as Mugen option","Anti-Roll Bar (rear)":"Not included — available as Mugen option","Shock Tower (front)":"Carbon fiber (Mugen standard)","Shock Tower (rear)":"Carbon fiber (Mugen standard)","Motor Mount":"Laydown mid-motor","Gear Module":"48-pitch (DP)","Spur Gear":"Mugen slipper",Battery:"2S LiPo shorty","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"MSB1 is Mugen Seiki's dedicated 1/10 2WD competition platform, currently running v2404 setup. Mugen publishes separate official setup sheets for Carpet and Slick Dirt (mugenseiki.com). Gear diff for carpet. Multiple national and international wins including Japan Nationals 2025. Factory drivers Yui Kaino (carpet), Kenji Tsuruta and Shin Adachi (dirt).",changes:[]},{id:"mugen-msb1-dirt",category:"1/10-2wd",brand:"Mugen Seiki",model:"MSB1 (Slick Dirt)",year:2024,type:"1/10 2WD Electric Buggy",revisionGroup:"Mugen Seiki MSB1 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fmugen-seiki-msb1-1-10-2wd-electric-buggy-kit-w-ball-gear-differential-mugb2001-1%2Fp1547228",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Slick Dirt / Clay",Wheelbase:"Adjustable",Length:"~370 mm",Width:"~235 mm","Chassis Material":"Hard anodized aluminum — Mugen competition spec","Chassis Layout":"Laydown mid-motor — low CG design","Shock Type":"Mugen big bore aluminum","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Per MSB1 Slick Dirt setup sheet v2404 (mugenseiki.com)","Stock Spring Rate (front)":"Per MSB1 Slick Dirt setup sheet v2404","Stock Spring Rate (rear)":"Per MSB1 Slick Dirt setup sheet v2404","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — maximum mechanical traction on slick dirt","Suspension Type":"Front: C-hub / Rear: dual wishbone","Front Hub Design":"Mugen composite front knuckles; adjustable caster — different settings vs carpet","Rear Hub Design":"Mugen composite rear hubs; adjustable toe and anti-squat — different settings vs carpet","Rear Arm Design":"Composite arms; carbon fiber shock towers","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as Mugen option","Anti-Roll Bar (rear)":"Not included — available as Mugen option","Shock Tower (front)":"Carbon fiber (Mugen standard)","Shock Tower (rear)":"Carbon fiber (Mugen standard)","Motor Mount":"Laydown mid-motor","Gear Module":"48-pitch (DP)","Spur Gear":"Mugen slipper",Battery:"2S LiPo shorty","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"MSB1 Slick Dirt configuration (same base kit, different official setup sheet v2404). Ball diff for outdoor slick dirt/clay. Factory drivers Kenji Tsuruta and 
402Shin Adachi race on slick dirt at JMRCA Nationals.",changes:[]}],cH=[{id:"pr-s1v4",category:"1/10-2wd",brand:"PR Racing",model:"S1 V4 (FM Pro)",year:2025,type:"1/10 2WD Electric Buggy",revisionGroup:"PR Racing S1 V4 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=PR+Racing+S1+V4+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf (FM laydown)",Wheelbase:"280 mm — verified from pr-rc.com S1 V4 spec page",Length:"415 mm — verified from pr-rc.com S1 V4 spec page",Width:"248 mm — verified from pr-rc.com S1 V4 spec page","Chassis Material":"3mm aluminum alloy CNC — heavier but more durable than V3 FM SPORT chassis; optimized CG position","Chassis Layout":"FM (Forward Motor) laydown — new quick-access gearbox for faster gear diff and ball diff maintenance","Shock Type":"PR Racing big bore aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential or gear diff (configurable)","Suspension Type":"Front: C-hub / Rear: dual wishbone","Front Hub Design":"PR Racing aluminum CNC front hub; updated geometry vs V3","Rear Hub Design":"PR Racing CNC aluminum rear hubs; quick-change inserts","Rear Arm Design":"Composite arms; carbon fiber shock towers","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as PR Racing option","Anti-Roll Bar (rear)":"Not included — available as PR Racing option","Shock Tower (front)":"Carbon fiber (PR Racing spec)","Shock Tower (rear)":"Carbon fiber (PR Racing spec)","Motor Mount":"FM (Forward Motor) laydown — new quick-access gearbox design","Gear Module":"48-pitch (DP)","Spur Gear":"PR Racing slipper",Battery:"2S LiPo shorty","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"PR S1 V4 FM Pro — released 2025. Per prracingusa.com and rctech.net: new quick-access gearbox allows faster adjustments of gear diff and easy maintenance of ball diff. 3mm chassis (thicker than V3 FM SPORT 2.5mm) with more CNC machining for optimized CG position. Currently winning at US Carpet Off-Road Championships.",changes:["New quick-access gearbox for faster gear/ball diff maintenance","3mm aluminum chassis with more CNC machining for optimized CG","Updated suspension geometry from V3 FM SPORT"]},{id:"pr-s1-rm",category:"1/10-2wd",brand:"PR Racing",model:"S1 RM",year:2024,type:"1/10 2WD Electric Buggy",revisionGroup:"PR Racing S1 RM Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=PR+Racing+S1+RM+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf / Dirt (multi-surface)",Wheelbase:"280–285 mm",Length:"411 mm — verified from robbinsrc.com and circusrc.com",Width:"248 mm — verified from robbinsrc.com","Weight (track-ready, no electronics)":"1,495–1,550 g — verified from robbinsrc.com","Chassis Material":"3.0mm aluminum alloy CNC-machined for optimum flex — verified from prracingusa.com","Chassis Layout":"FM (Forward Motor) laydown — refined mid-motor layout; 12.8mm big bore shock system","Shock Type":"12.8mm big bore oil-filled — verified from circusrc.com","Shock Material":"Aluminum; precision CNC shock bodies","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone","Front Hub Design":"PR Racing CNC aluminum front hub; adjustable caster","Rear Hub Design":"PR Racing CNC aluminum rear hubs; adjustable toe and anti-squat","Rear Arm Design":"Composite arms; carbon fiber shock towers","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as PR Racing option","Anti-Roll Bar (rear)":"Not included — available as PR Racing option","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Carbon fiber","Motor Mount":"FM (Forward Motor) laydown","Gear Module":"48-pitch (DP)","Spur Gear":"PR Racing slipper",Battery:"2S LiPo shorty","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"PR S1 RM — announced 2023, released 2024. All specs from robbinsrc.com and circusrc.com. Key specs: 3.0mm chassis (thicker than V3 FM SPORT 2.5mm), 12.8mm big bore shocks, 411mm length, 248mm width, 1495–1550g. Major upgrade from V3 FM SPORT with 12.8mm shock bodies (up from standard) and 3mm chassis. Multiple podiums at major US carpet events.",changes:["New 3.0mm aluminum chassis (heavier but more durable for outdoor use)","New 12.8mm big bore oil-filled shocks (larger than V3 FM SPORT)","Updated suspension geometry for improved traction"]},{id:"pr-s1v3-fm-sport-dirt",category:"1/10-2wd",brand:"PR Racing",model:"S1 V3 FM SPORT (Dirt)",year:2023,type:"1/10 2WD Electric Buggy",revisionGroup:"PR Racing S1 V3 FM SPORT Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=PR+Racing+S1+V3+FM+SPORT+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay (outdoor)",Wheelbase:"Adjustable — different arm mount configuration vs carpet FM",Length:"~411 mm",Width:"~248 mm","Chassis Material":'2.5mm aluminum alloy CNC — "Dirt style" chassis optimized for flex on outdoor surface (verified from prracingusa.com)',"Chassis Layout":"FM (Forward Motor) laydown — Dirt style chassis with different flex characteristic than carpet chassis","Shock Type":"PR Racing big bore aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone","Front Hub Design":"PR Racing composite C-block; dirt-tuned caster settings","Rear Hub Design":"PR Racing composite rear hubs; adjusted toe for outdoor traction","Rear Arm Design":"Composite arms; 4mm R carbon fiber shock towers (verified from prracingusa.com)","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as PR Racing option","Anti-Roll Bar (rear)":"Not included — available as PR Racing option","Shock Tower (front)":"4mm R carbon fiber (verified from PR Racing USA listing)","Shock Tower (rear)":"4mm R carbon fiber (verified from PR Racing USA listing)","Motor Mount":"FM (Forward Motor) laydown","Gear Module":"48-pitch (DP)","Spur Gear":"PR Racing slipper",Battery:"2S LiPo shorty","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:'PR S1 V3 FM SPORT 2023 Dirt. Verified from prracingusa.com: "Dirt Style 2.5mm aluminum alloy chassis CNC-machined for optimum flex" and "both front and rear towers made from 4mm R carbon fiber". Dirt chassis specifically noted as different flex from carpet chassis.',changes:['2.5mm "Dirt Style" aluminum chassis (different flex than carpet version)',"4mm R carbon fiber shock towers front and rear"]},{id:"pr-s1v3-evo",category:"1/10-2wd",brand:"PR Racing",model:"S1 V3 EVO (FM Carpet)",year:2021,type:"1/10 2WD Electric Buggy",revisionGroup:"PR Racing S1 V3 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=PR+Racing+S1+V3+EVO+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf (FM laydown configuration)",Wheelbase:"Adjustable",Length:"Not published — approximate ~410mm based on platform generation",Wi
402dth:"Not published","Chassis Material":"7075 aluminum alloy CNC — competition spec","Chassis Layout":"FM (Forward Motor) laydown — lower CG motor position for carpet; 2021 EVO introduced laydown transmission","Shock Type":"PR Racing big bore aluminum","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential (standard)","Suspension Type":"Front: C-hub / Rear: dual wishbone with adjustable arm mounts","Front Hub Design":"PR Racing composite C-block; adjustable caster inserts","Rear Hub Design":"PR Racing composite rear hubs; adjustable toe and anti-squat blocks","Rear Arm Design":"Composite arms; carbon fiber shock towers","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as PR Racing option","Anti-Roll Bar (rear)":"Not included — available as PR Racing option","Shock Tower (front)":"Carbon fiber (PR Racing spec)","Shock Tower (rear)":"Carbon fiber (PR Racing spec)","Motor Mount":"FM (Forward Motor) laydown — 2021 EVO update introduced laydown transmission","Gear Module":"48-pitch (DP)","Spur Gear":"PR Racing slipper",Battery:"2S LiPo shorty","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"PR Racing S1 V3 EVO — 2021 update introduced laydown (FM) transmission. Strong platform in indoor/carpet racing, popular in Asia and growing in North America.",changes:["2021 EVO: FM (Forward Motor) laydown transmission introduced — lower CG for carpet","New 7075 aluminum shock towers (update)","Carbon fiber shock tower option"]},{id:"pr-s1v3r-evo",category:"1/10-2wd",brand:"PR Racing",model:"S1 V3R Evo (MM Carpet)",year:2019,type:"1/10 2WD Electric Buggy",revisionGroup:"PR Racing S1 V3 Type-R Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=PR+Racing+S1+V3R+Evo+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf (high-grip)",Wheelbase:"Adjustable","Chassis Material":"7075 2.5mm thick -5mm length chassis — verified from circusrc.com; new vs V3R","Chassis Layout":"MM (Mid Motor) — stand-up 3-gear transmission; new -2mm lower motor plate for improved CG","Shock Type":"PR Racing big bore aluminum — new low-mount shock towers","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone","Front Hub Design":"New RR and RF hangers with pills; updated caster geometry","Rear Hub Design":"New CNC aluminum rear hubs — verified from circusrc.com","Rear Arm Design":"Composite arms; low-mount carbon fiber shock towers (lower than V3R)","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as PR Racing option","Anti-Roll Bar (rear)":"Not included — available as PR Racing option","Shock Tower (front)":"Low-mount carbon fiber — verified from circusrc.com","Shock Tower (rear)":"Low-mount carbon fiber — verified from circusrc.com","Motor Mount":"MM (Mid Motor) stand-up; new -2mm low mount motor plate","Gear Module":"48-pitch (DP)","Spur Gear":"PR Racing slipper",Battery:"2S LiPo shorty","Ball Bearings":"Full bearings","Body Included":"Yes — new V3R Evo body with larger forward-mounted cabin for more steering","ROAR Approved":"Yes"},notes:'PR S1 V3R Evo — 2019. Per circusrc.com: new 7075 2.5mm -5mm length chassis, new RR and RF hangers with pills, new CNC aluminum rear hubs, new low-mount (-2mm) motor plate, new low-mount shock towers. Per liverc.com: "new body designed to look sleek and offer more steering with its much larger forward mounted cabin." Pre-dates the FM (laydown) transition.',changes:["New 7075 2.5mm -5mm length chassis","New CNC aluminum rear hubs","New RR and RF hangers with pills","New -2mm low mount motor plate for improved CG","New low-mount shock towers (front and rear)","New V3R Evo body with larger forward cabin for more steering"]},{id:"pr-s1v3-type-r",category:"1/10-2wd",brand:"PR Racing",model:"S1 V3 Type-R (MM Carpet)",year:2018,type:"1/10 2WD Electric Buggy",revisionGroup:"PR Racing S1 V3 Type-R Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=PR+Racing+S1+V3+Type-R+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf (high-grip)",Wheelbase:"Adjustable","Chassis Material":"7075 aluminum CNC — competition spec","Chassis Layout":"MM (Mid Motor) stand-up 3-gear transmission — Type-R variant with M5 steel front hub block and low-mount shock towers","Shock Type":"PR Racing big bore aluminum — new low-mount shock towers vs standard V3 MM","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential","Suspension Type":"Front: C-hub / Rear: dual wishbone","Front Hub Design":"M5 steel front hub block (vs standard composite) — per petitrc.com; 1.5, 2.5, and 3.0 RR hangers included","Rear Hub Design":"PR Racing rear hubs; adjustable toe and anti-squat","Rear Arm Design":"Composite arms; low-mount shock towers","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as PR Racing option","Anti-Roll Bar (rear)":"Not included — available as PR Racing option","Shock Tower (front)":"Low-mount carbon fiber — per petitrc.com S1V3 2018 setup page","Shock Tower (rear)":"Low-mount carbon fiber","Motor Mount":"MM (Mid Motor) stand-up","Gear Module":"48-pitch (DP)","Spur Gear":"PR Racing slipper",Battery:"2S LiPo shorty","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:'PR S1 V3 Type-R (2018 version). Per petitrc.com S1V32018 page: "Low Mount Shock Towers Front and Rear; Includes 1.5, 2.5 and 3.0 RR Hangers; M5 Steel front hub block." Per redrc.net: PR Racing released both the S1 V3 FM and S1 V3 Type-R as separate 2018 kits. Type-R = high-grip carpet specialist with mid motor. FM = forward motor laydown (carpet-focused). Both released for 2018.',changes:["Low-mount shock towers front and rear (vs standard V3)","M5 steel front hub block","1.5, 2.5, and 3.0 RR hangers included in kit"]}],uH=[],dH=[{id:"kyosho-ultima-rb7-5",category:"1/10-2wd",brand:"Kyosho",model:"Ultima RB7.5",year:2025,type:"1/10 2WD Electric Buggy",revisionGroup:"Kyosho Ultima RB7 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fkyosho-ultima-rb7.5-1-10-2wd-electric-offroad-buggy-kit-kyo34305%2Fp1627746",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astro / Dirt (multi-surface)",Wheelbase:"277 mm — verified from AMain/ebay listing (same as RB7)",Length:"395 mm — verified from AMain listing",Width:"249 mm",Height:"148 mm","Weight (track-ready, no electronics)":"~1,550 g","Chassis Material":"High-rigidity duralumin main chassis — per rcmart.com; midship layout","Chassis Layout":"Lowdown midship — 3-gear midship default; convertible to rear motor, 4-gear midship with additional parts","Shock Type":"Big bore oil shocks with X-ring seals — upgraded from RB7; smoother action and improved leak resistance","Shock Material":"Aluminum; 4mm thick carbon fiber front and rear shock stays (upgraded from plastic on RB7)","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — tungsten balls for precision and long life","Suspension Type":"Front: C-hub with gull-wing arms / Rear: gull-wing dual wishbone with adjustable arm length","Front Hub Design":"Improved front knuckles/hubs with updated Ackermann; caster adjustable ±0°/+2°/+4° via bushes","Rear Hub Design":"Aluminum rear suspension mount holders; adjustable toe angle via bush replacement","Rear Arm Design":"Gull-wing rear arms with long/short bushing inserts for arm length adjustment","Chassis Braces":"Revised center mount design for optimal chassis rigidity","Anti-Roll Bar (front)":"Optional front sway bar mounting positions — sway bar sold separately","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"4mm carbon fiber — upgraded from plastic on RB7 (verified from hobbytown.com)","Shock Tower (rear)":"4mm carbon fiber — upgraded from plastic on RB7","Motor Mount":"Lowdown midship 3-gear; convertible to rear motor or 4-gear midship","Gear Module":"48-pitch (DP)","Spur Gear":"76T slipper; large capacity slipper clutch","Internal Gear Ratio":"2.6:1 (2nd reduction) — verified from ebay listing",Battery:"2S LiPo shorty — battery bar for easy installation and detachment","Ball Bearings":"Full bearings","Body Included":"Yes — revised rear aero de
402sign vs RB7","ROAR Approved":"Yes"},notes:'Ultima RB7.5 (KYO34305) — unveiled at Nuremberg Toy Fair 2025, released April 2025. Per redrc.net: "Kyosho return to the offroad racing market." Key upgrades vs RB7: 4mm CF shock stays replacing plastic, new X-ring sealed big bore shocks for improved sealing, revised rear aero body. Same 277mm wheelbase and core lowdown midship architecture as RB7. Multiple gearbox configurations (rear motor/3-gear midship/4-gear midship). Part number 34305.',changes:["New 4mm carbon fiber front and rear shock stays (replaces plastic on RB7)","Upgraded big bore shocks with X-ring seals for improved sealing and performance","Revised rear aero body design","Updated chassis rigidity refinements"]},{id:"kyosho-ultima-rb7",category:"1/10-2wd",brand:"Kyosho",model:"Ultima RB7",year:2022,type:"1/10 2WD Electric Buggy",revisionGroup:"Kyosho Ultima RB7 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fkyosho-ultima-rb7-1-10-2wd-competition-electric-buggy-kit-kyo34303b%2Fp868133",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astro / Dirt (multi-surface)",Wheelbase:"277 mm — 4mm shorter than RB6.6; verified from petitrc.com",Length:"395 mm",Width:"249 mm",Height:"148 mm","Weight (track-ready, no electronics)":"~1,550 g — verified from petitrc.com","Chassis Material":"2.5mm 7075 hard-anodized aluminum — 0.5mm thinner than RB6.6 (3mm) for lighter weight with optimal rigidity; verified from petitrc.com","Chassis Layout":"Lowdown midship 3-gear — ultra-low CG; 4mm shorter wheelbase vs RB6.6 for improved high-speed cornering","Shock Type":"Velvet-coated big bore shocks with X-Gear springs; resin shock caps (vs aluminum on RB6.6) for bumpy surfaces; 1.6mm x2 front / 1.7mm x2 rear pistons","Shock Material":"Aluminum body; resin caps","Stock Shock Length (F/R)":"Short spring cups included for carpet/high-grip (lower ride height)","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — tungsten balls; X-GEAR ball diff grease included","Suspension Type":"Front: new gull-wing arms with deeper suspension stroke / Rear: gull-wing dual wishbone with adjustable arm length via inserts","Front Hub Design":"New front knuckles/hubs with updated Ackermann for improved cornering; caster ±0°/+2°/+4° via bushes; black chrome adjustable rods; steel one-piece wheel shafts","Rear Hub Design":"Aluminum rear suspension mount holders (vs resin on RB6.6); adjustable toe via bush replacement","Rear Arm Design":"Multi-length gull-wing rear arms — long and short bushing inserts for arm length adjustment","Chassis Braces":"New center mount for optimized chassis rigidity vs RB6.6","Anti-Roll Bar (front)":"Lowered CF front shock tower with optional sway bar mounting positions — sway bar sold separately","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Lowered carbon composite — verified from petitrc.com","Shock Tower (rear)":"Plastic (resin) — updated vs RB6.6","Motor Mount":"Lowdown midship 3-gear; convertible to rear motor, 3-gear midship, or 4-gear midship with additional parts","Gear Module":"48-pitch (DP)","Spur Gear":"76T slipper; large capacity slipper clutch","Internal Gear Ratio":"2.6:1 (2nd reduction)",Battery:"2S LiPo shorty — easy battery bar installation","Ball Bearings":"Full bearings; updated ring-captured universal swing shafts","Body Included":"Yes — new aero body with center fin and high-downforce rear wing; narrow cabin design","ROAR Approved":"Yes"},notes:"Ultima RB7 (KYO34303) — all specs verified from petitrc.com RB7 product page. Key changes vs RB6.6: 4mm shorter wheelbase (277mm vs 281mm), new 2.5mm chassis (vs 3mm), new gull-wing front arms, new Ackermann knuckles, aluminum rear sus mount holders, lowered CF front tower, resin shock caps, new aero body with center fin. Multi-config gearbox (rear motor / 3-gear midship / 4-gear midship).",changes:["4mm shorter wheelbase (277mm vs 285mm on RB6.6) for improved high-speed cornering","New 2.5mm 7075 aluminum chassis (lighter than 3mm on RB6.6)","New gull-wing front suspension arms — deeper stroke for superior traction","New front steering knuckles with updated Ackermann for improved corner speed","Aluminum rear suspension mount holders (vs resin on RB6.6)","Lowered carbon composite front shock tower","New center mount for optimized chassis rigidity","Multi-length rear arms via long/short bushing inserts","New aero body with inline center fin and high-downforce rear wing","Updated ring-captured universal swing shafts"]},{id:"kyosho-ultima-rb6-6",category:"1/10-2wd",brand:"Kyosho",model:"Ultima RB6.6",year:2016,type:"1/10 2WD Electric Buggy",revisionGroup:"Kyosho Ultima RB6 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Kyosho+Ultima+RB6.6+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astro / Dirt (multi-surface)",Wheelbase:"285 mm — verified from rc.kyosho.com RB6.6 product page",Length:"395 mm",Width:"249 mm",Height:"140 mm","Weight (track-ready, no electronics)":"~1,620 g — verified from rc.kyosho.com","Chassis Material":"3mm 7075-T6 high-rigidity hard-anodized aluminum — surface-tracing low CG midship layout; verified from AMain listing","Chassis Layout":"Lowdown midship — 4-gear midship transmission; ultra-low CG; multiple gearbox configurations","Shock Type":"Big bore aluminum; aluminum shock caps; 1.6mm x2 front / 1.7mm x2 rear pistons","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — tungsten balls","Suspension Type":"Front: C-hub with adjustable caster / Rear: gull-wing dual wishbone","Front Hub Design":"Hub carriers with caster adjustable via bushes; steel one-piece wheel shafts; hardened ball ends;
402 black chrome adjustable rods","Rear Hub Design":"Resin rear suspension mount holders; adjustable toe via bush replacement","Rear Arm Design":"Gull-wing rear arms — RB6.6 geometry","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — optional sway bar positions on front shock tower","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Carbon fiber (front)","Shock Tower (rear)":"Composite/plastic (rear)","Motor Mount":"Lowdown 4-gear midship (default); convertible to rear motor or 3-gear midship with additional parts","Gear Module":"48-pitch (DP)","Spur Gear":"76T large capacity slipper","Internal Gear Ratio":"2.6:1",Battery:"2S LiPo shorty","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:'Ultima RB6.6 (KYO34302) — released July 2016. All specs verified from rc.kyosho.com and AMain listing. Update to the IFMAR 2013 World Champion RB6 platform. Key change is 4-gear midship as default (vs RB6 which was 3-gear). Per liverc.com ReadySet announcement: "based on the ULTIMA RB6.6 (KYO34302) released in July 2016 and features the 4 gear midship transmission." Multi-configuration gearbox for surface adaptability.',changes:["4-gear midship gearbox as default (vs 3-gear on RB6)","Updated suspension geometry from RB6","Refined chassis flex and rigidity vs RB6"]},{id:"kyosho-ultima-rb6",category:"1/10-2wd",brand:"Kyosho",model:"Ultima RB6",year:2013,type:"1/10 2WD Electric Buggy",revisionGroup:"Kyosho Ultima RB6 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Kyosho+Ultima+RB6+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astro / Dirt (multi-surface)",Wheelbase:"285 mm — verified from petitrc.com RB6 intro page",Length:"395 mm",Width:"249 mm",Height:"140 mm","Chassis Material":"3mm 7075 hard-anodized aluminum — 13mm longer chassis vs previous for lower CG; per petitrc.com","Chassis Layout":"Lowdown midship 3-gear — low CG design; midship motor ahead of rear axle","Shock Type":"Big bore aluminum; 1.6mm x2 front / 1.7mm x2 rear pistons","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — tungsten balls","Suspension Type":"Front: C-hub / Rear: gull-wing dual wishbone","Front Hub Design":"Hub carriers with caster adjustable via bushes; steel one-piece wheel shafts","Rear Hub Design":"Composite rear suspension holders; adjustable toe","Rear Arm Design":"Gull-wing composite rear arms","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"Carbon fiber","Shock Tower (rear)":"Composite","Motor Mount":"Lowdown midship 3-gear; convertible to rear motor or 4-gear midship","Gear Module":"48-pitch (DP)","Spur Gear":"76T large capacity slipper","Internal Gear Ratio":"2.6:1",Battery:"2S LiPo shorty","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:'Ultima RB6 (KYO30068B) — 2013. Per petitrc.com: "13mm longer chassis made of high-tech hard-anodized 7075 aluminum for better performance and lower center of gravity." Won 1st place and TQ at the 2013 IFMAR Electric Off-Road World Championship in 2WD class. Available 2013–2015 before RB6.6 replaced it in 2016.',changes:[]}],fH=[{id:"sworkz-s12-3c",category:"1/10-2wd",brand:"Sworkz",model:"S12-3C (Carpet)",year:2025,type:"1/10 2WD Electric Buggy",revisionGroup:"SWORKz S12-3 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Sworkz+S12-3C+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf (high-grip)",Wheelbase:"~280–285 mm",Length:"410 mm — verified from sworkz.com S12-3C manual PDF",Width:"242–248 mm","Chassis Material":"T7075 silver-anodized aluminum chassis — per redrc.net and mcburneyracing.com; designed for optimal performance and flexibility","Chassis Layout":"FM (Forward Motor) laydown — midship layout for carpet/high-grip","Shock Type":"13mm BBS Big Bore Shock System with Emulsion Precision Plastic Shock Caps — per redrc.net;
402 reinforced shock bodies","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — carpet spec","Suspension Type":"Front: new C-hub geometry / Rear: dual wishbone — new front and rear end geometry for improved corner speed","Front Hub Design":"New front geometry for improved corner speed and easy handling vs S12-2C","Rear Hub Design":"New rear geometry — S12-3 platform specific","Rear Arm Design":"Composite arms; carbon fiber shock towers","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as Sworkz option","Anti-Roll Bar (rear)":"Not included — available as Sworkz option","Shock Tower (front)":"Carbon fiber — S12-3 spec","Shock Tower (rear)":"Carbon fiber — S12-3 spec","Motor Mount":"FM (Forward Motor) laydown","Gear Module":"48-pitch (DP)","Spur Gear":"SWORKz slipper",Battery:"2S LiPo shorty","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:'SWORKz S12-3C Carpet Edition — announced October 2025 (per liverc.com and circusrc.com), released November 2025 (per redrc.net). Per redrc.net: "New Front and Rear End Geometry, new 13mm BBS Big Bore Shock System with Emulsion Precision Plastic Shock Caps." Sibling to S12-3D dirt kit. Both released simultaneously. Building on the proven S12-2 platform with significant geometry and shock system updates.',changes:["New front and rear end geometry for improved corner speed and handling vs S12-2C","New 13mm BBS Big Bore Shock System with Emulsion Precision Plastic Shock Caps","T7075 silver-anodized chassis (updated finish vs S12-2)","Reinforced shock bodies"]},{id:"sworkz-s12-3d",category:"1/10-2wd",brand:"Sworkz",model:"S12-3D (Dirt)",year:2025,type:"1/10 2WD Electric Buggy",revisionGroup:"SWORKz S12-3 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Sworkz+S12-3D+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay (all-grip conditions)",Wheelbase:"282–284 mm — verified from sworkz.com S12-3D manual PDF",Length:"410 mm — verified from sworkz.com S12-3D manual PDF",Width:"242–248 mm — verified from sworkz.com S12-3D manual PDF","Chassis Material":"T7075 silver-anodized aluminum chassis — adjustable flex system; 6 different battery positions","Chassis Layout":"FM (Forward Motor) laydown — all-new design purpose-built for dirt; per S12-3D manual PDF (sworkz.com)","Shock Type":"13mm BBS Big Bore Shock System with Emulsion Precision Plastic Shock Caps — Teflon-coated shock shafts; per beachrc.com","Shock Material":"Aluminum with Teflon-coated shafts","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — dirt spec for maximum mechanical traction","Suspension Type":"Front: new C-hub geometry / Rear: dual wishbone — new geometry for all grip conditions on dirt","Front Hub Design":"New front geometry — S12-3D dirt-specific","Rear Hub Design":"New rear geometry for dirt traction","Rear Arm Design":"Composite arms; 4mm carbon fiber shock towers; quick release body clips","Chassis Braces":"Composite with adjustable flex system","Anti-Roll Bar (front)":"Not included — available as Sworkz option","Anti-Roll Bar (rear)":"Not included — available as Sworkz option","Shock Tower (front)":"4mm carbon fiber — per beachrc.com","Shock Tower (rear)":"4mm carbon fiber — per beachrc.com","Motor Mount":"FM (Forward Motor) laydown — 6 different battery positions","Gear Module":"48-pitch (DP)","Spur Gear":"SWORKz slipper",Battery:"2S LiPo shorty — 6 different battery positions for weight distribution","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:'SWORKz S12-3D Dirt Edition — released November 2025 alongside S12-3C. Per sworkz.com S12-3D manual: "newly developed 1/10 scale 2WD buggy, purpose-built for all grip conditions dirt tracks." Per beachrc.com: 4mm CF shock towers, 13mm BBS shocks with Teflon-coated shafts, adjustable flex system, 6 battery positions. Per elitercp.com: S12-3C and S12-3D share the same base platform; carpet version uses gear diff, dirt uses ball diff.',changes:["All-new platform vs S12-2D — purpose-built for all-grip conditions dirt","New 13mm BBS Big Bore Shock System with Teflon-coated shafts","New front and rear end geometry vs S12-2D","Adjustable flex system on chassis","6 different battery positions (vs S12-2)","4mm carbon fiber shock towers (front and rear)"]},{id:"sworkz-s12-2c",category:"1/10-2wd",brand:"Sworkz",model:"S12-2C (Carpet)",year:2020,type:"1/10 2WD Electric Buggy",revisionGroup:"SWORKz S12-2 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Sworkz+S12-2C+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf (high-grip)",Wheelbase:"282–284 mm — verified from sworkz.com S12-2C product page",Length:"410 mm — verified from sworkz.com",Width:"242–248 mm",Height:"148 mm","Weight (track-ready, no electronics)":"1,450 g ±10g — verified from sworkz.com","Chassis Material":"Lightened hard-anodized 7075 aluminum — per redrc.net; 4 different battery configurations","Chassis Layout":"FM (Forward Motor) laydown — 3-gear midship; low CG; per circusrc.com","Shock Type":"SWORKz big bore aluminum; Teflon-coated shock shafts for smooth action","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — carpet spec","Suspension Type":"Front: new C-hub geometry (new vs S12-1) / Rear: dual wishbone with new rear sway bar holder system","Front Hub Design":"New C-hub geometry vs S12-1M; 4mm carbon front shock tower (vs 6mm aluminum on S12-1)","Rear Hub Design":"New designed rear composite hubs; new rear sway bar holder system","Rear Arm Design":"Composite arms; 4mm carbon fiber shock towers","Chassis Braces":"Composite; adjustable Ackermann plate; carbon steering plates","Anti-Roll Bar (front)":"Included — front sway bar included; exact kit diameter not specified in manual (optional sets available in 1.0/1.1/1.2/1.3mm per SW-212003)","Anti-Roll Bar (rear)":"Included — rear sway bar included; exact kit diameter not specified in manual (optional sets available in 1.2/1.3/1.4/1.5/1.6mm per SW-212004)","Shock Tower (front)":"4mm carbon fiber — verified from petitrc.com S12-2 page","Shock Tower (rear)":"4mm carbon fiber — per circusrc.com","Motor Mount":"FM (Forward Motor) laydown — Pure Oil Shock system; 2-Pad Slipper with hard anodized plate","Gear Module":"48-pitch (DP)","Spur Gear":"2-Pad Slipper with hard anodized plates — per sworkz.com",Battery:"2S LiPo — 4 different battery configurations (shorty, saddle, etc.)","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:'SWORKz S12-2C Carpet Edition (2020). All specs from sworkz.com, petitrc.com, circusrc.com. Per circusrc.com: "all-new S12-2 kit, lightened and hard-anodised 7075 aluminum chassis, 4mm carbon front shock tower vs 6mm aluminum on S12-1." Per sworkz.com manual: front and rear sway bar included. New C-hub geometry, Pure Oil Shock system, 2-Pad Slipper.',changes:["New 4mm carbon front shock tower (vs 6mm aluminum on S12-1M)","New C-hub front geometry vs S12-1M","New rear sway bar holder system; front and rear sway bars included","New 2-Pad Slipper with hard anodized plates","Pure Oil Shock system","Lightened 7075 chassis vs S12-1"]},{id:"sworkz-s12-2d",category:"1/10-2wd",brand:"Sworkz",model:"S12-2D (Dirt)",year:2020,type:"1/10 2WD Electric Buggy",revisionGroup:"SWORKz S12-2 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Sworkz+S12-2D+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay (outdoor)",Wheelbase:"282–284 mm",Length:"410 mm",Width:"242–248 mm",Height:"148 mm","Weight (track-ready, no electronics)":"1,450 g ±10g","Chassis Material":"Lightened hard-anodized 7075 aluminum — same base as S12-2C with dirt-specific setup","Chassis Layout":"FM (Forward Motor) laydown — 4mm dirt-version CF front shock towers (different from carpet)","Shock Type":"SWORKz big bore aluminum; Teflon-coated shock shafts; dirt-spec setup","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — dirt spec for maximum mechanical traction","Suspension Type":"Front: C-hub / Rear: dual wishbone","Front Hub Design":"New C-hub geometry — 4mm dirt-version CF front tower (different geometry vs carpet)","Rear Hub Design":"Rear composite hubs; new rear sway bar holder system","Rear Arm Design":"Composite arms; 4mm dirt-version carbon fiber shock towers","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Included — front sway bar included; exact kit diameter not specified in manual (optional sets available in 1.0/1.1/1.2/1.3mm per SW-212003)","Anti-Roll Bar (rear)":"Included — rear sway bar included; exact kit diameter not specified in manual (optional sets available in 1.2/1.3/1.4/1.5/1.6mm per SW-212004)","Shock Tower (front)":"4mm carbon fiber dirt-version — per rc1-racing.com S12-2D listing","Shock Tower (rear)":"4mm carbon fiber","Motor Mount":"FM (Forward Motor) laydown","Gear Module":"48-pitch (DP)","Spur Gear":"2-Pad Slipper with hard anodized plates",Battery:"2S LiPo — multiple battery configurations","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:'SWORKz S12-2D Dirt Edition (2020). Per rc1-racing.com: "S12-2D Kit includes 4mm dirt-version Carbon front shock towers and new designed front C-Hub geometry. Teflon-coated shock shafts." Same base platform as S12-2C but with ball diff and dirt-specific shock towers and geometry. Front and rear sway bars included.',changes:["4mm dirt-version carbon front shock towers (different geometry vs S12-2C carpet)","Ball differential for outdoor dirt traction"]},{id:"sworkz-s12-1m",category:"1/10-2wd",brand:"Sworkz",model:"S12-1M (Carpet)",year:2015,type:"1/10 2WD Electric Buggy",revisionGroup:"SWORKz S12-1 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Sworkz+S12-1M+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf (high-grip)",Wheelbase:"~280 mm","Chassis Material":"3mm 7075 aluminum — per petitrc.com S12-1M page; 4 different battery configurations including shorty and saddle","Chassis Layout":'MM (Mid Motor) 3-gear laydown — per petitrc.com: "one of the first production 3-gear laydown 10th buggies"',"Shock Type":"SWORKz Pure Oil Shock system; 6mm aluminum front shock tower (vs 4mm CF on later S12-2)","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — carpet spec; adjustable ball diff available","Suspension Type":"Front: C-hub / Rear: dual wishbone","Front Hub Design":"Aluminum lower arm holders; pivot ball front suspension (based on S104 EVO pivot ball design)","Rear Hub Design":"S12-1M composite rear hubs; adjustable toe","Rear Arm Design":"Composite arms;
402 aluminum lower arm holders all round","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as Sworkz option","Anti-Roll Bar (rear)":"Not included — available as Sworkz option","Shock Tower (front)":"6mm aluminum — per petitrc.com S12-1M page","Shock Tower (rear)":"Composite","Motor Mount":"Mid Motor 3-gear laydown — 4 battery position options","Gear Module":"48-pitch (DP)","Spur Gear":"SWORKz slipper",Battery:"2S LiPo — 4 configurations: shorty, saddle, fore-aft; per redrc.net","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:'SWORKz S12-1M Carpet Edition — released December 2015 (per redrc.net). Per petitrc.com: "One of the first production 3-gear laydown 10th buggies around. This layout is very well suited to high-grip surfaces such as carpet and astro." 3mm 7075 chassis with 4 battery positions. Based on S104 EVO pivot ball front design. Also available as S12-1R rear motor variant.',changes:[]}],hH=[{id:"yokomo-ro2-0",category:"1/10-2wd",brand:"Yokomo",model:"RO2.0 (Entry-Level)",year:2024,type:"1/10 2WD Electric Buggy",revisionGroup:"Yokomo Rookie Off-Road Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fyokomo-ro2.0-1-10-electric-2wd-off-road-buggy-kit-yokror-020%2Fp1608199",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Off-road / Dirt (entry-level)",Wheelbase:"Standard — per manual","Chassis Material":"Aluminum main chassis — refined design vs RO1.0","Chassis Layout":"Rear-motor offset design for improved traction on dirt","Shock Type":"Oil-filled hydraulic aluminum shocks","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — dirt spec","Suspension Type":"Double wishbone front and rear — off-road geometry","Front Hub Design":"Standard front hub design for beginner tuning","Rear Hub Design":"Wide base rear hubs with adjustable axle height (3 fixed positions)","Rear Arm Design":"Composite suspension arms","Chassis Braces":"Composite chassis braces","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"3mm carbon fiber shock towers","Shock Tower (rear)":"3mm carbon fiber shock towers","Motor Mount":"Rear-motor offset — positioned closer to rear axle for improved traction","Gear Module":"48-pitch (DP)","Spur Gear":"Slipper clutch — absorbs shocks and improves power transfer",Battery:"2S Shorty LiPo — flexible battery positioning","Ball Bearings":"Full bearing","Body Included":"Yes — high-offset pre-painted body","ROAR Approved":"Yes"},notes:'Yokomo RO2.0 (YOKROR-020) — released 2024 as refined entry-level platform. Key upgrade vs RO1.0: aluminum chassis (vs resin), rear-motor offset for improved traction, wide base rear hubs with 3 fixed axle heights for geometry options, wider battery placement range for tuning. Per AMain: "rear-mounted motor shifts weight to the back for better traction on dirt surfaces." Designed for easier assembly and maintenance than SO series.',changes:["Aluminum main chassis (vs flexible resin on RO1.0)","Rear-motor offset design for improved dirt traction","Wide base rear hubs with 3 fixed axle height positions","Expanded battery placement range for weight distribution tuning","3mm carbon fiber shock towers","Oil-filled hydraulic shocks with improved damping","Slipper clutch for shock absorption"]},{id:"yokomo-ro1-0",category:"1/10-2wd",brand:"Yokomo",model:"RO1.0 (Entry-Level)",year:2023,type:"1/10 2WD Electric Buggy",revisionGroup:"Yokomo Rookie Off-Road Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fyokomo-ro-1.0-rookie-1-10-electric-2wd-off-road-buggy-kit-yokror-010%2Fp1480306",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Off-road / Dirt (beginner-friendly)",Wheelbase:"Standard wheelbase","Chassis Material":"Integrated resin main chassis — flexible and crash-resistant","Chassis Layout":"Entry-level design with simplified assembly for beginners","Shock Type":"Resin/plastic shocks with easy maintenance","Shock Material":"Resin (durable polymer)","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — dirt spec","Suspension Type":"Double wishbone front and rear — beginner geometry","Front Hub Design":"Standard plastic hub carriers — easy replacement","Rear Hub Design":"Standard rear hub design for beginner setup","Rear Arm Design":"Composite suspension arms","Chassis Braces":"Composite chassis braces","Anti-Roll Bar (front)":"Not included","Anti-Roll Bar (rear)":"Not included","Shock Tower (front)":"Resin/plastic shock towers","Shock Tower (rear)":"Resin/plastic shock towers","Motor Mount":"Mid-motor layout — centralized weight distribution","Gear Module":"48-pitch (DP)","Spur Gear":"Basic slipper clutch",Battery:"2S Shorty LiPo","Ball Bearings":"Full bearing","Body Included":"Yes — high downforce pre-painted body with high-grip wing","ROAR Approved":"Yes"},notes:'Yokomo RO1.0 (YOKROR-010) — released 2023 as entry-level Rookie Off-Road kit. Designed for beginners and those trying RC off-road for the first time. Per RedRC: "easy-to-assemble parts configuration based on a flexible, crash-resistant integrated resin main chassis." Includes front ribs & rear square pin tires ideal for dirt. Precursor to the RO2.0 with aluminum chassis.',changes:[]},{id:"yokomo-so3-0",category:"1/10-2wd",brand:"Yokomo",model:"SO3.0",year:2025,type:"1/10 2WD Electric Buggy",revisionGroup:"Yokomo Super Off-Road Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fyokomo-so3.0-super-off-road-1-10-2wd-electric-buggy-kit-yoksor-030%2Fp1597981",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Off-road",Wheelbase:"Extended long wheelbase — per AMain product description","Chassis Material":"Aluminum — long main chassis with extended wheelbase","Chassis Layout":"High-grip specialist — optimized for carpet and artificial turf","Shock Type":"13mm Big Bore aluminum shocks — per AMain specifications","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Sealed gear differential — high-grip spec","Suspension Type":"Independent double wishbone — long arm geometry for stability","Front Hub Design":"Graphite-molded C-hub — improved responsiveness","Rear Hub Design":"Graphite-molded rear hub carriers","Rear Arm Design":"Graphite-molded suspension arms","Chassis Braces":"Aluminum servo mounts for durability and rigidity","Anti-Roll Bar (front)":"Included — per AMain kit features","Anti-Roll Bar (rear)":"Included","Shock Tower (front)":"Graphite front shock tower — low center of gravity","Shock Tower (rear)":"Graphite rear shock tower","Motor Mount":"Low center-of-gravity motor mount","Gear Module":"48-pitch (DP)","Spur Gear":"Slipper clutch",Battery:"2S Shorty LiPo","Ball Bearings":"Full bearing","Body Included":"Yes — with wide front wing","ROAR Approved":"Yes"},notes:'Yokomo SO3.0 (SOR-030) — released January 2025. Per AMain: "designed for serious competitors seeking peak performance on high-grip tracks." Features extended aluminum chassis for stability, low CG motor mount, graphite-molded suspension arms/hubs/shock towers for responsiveness and durability, 13mm big bore shocks, and aluminum servo mounts. Optimized for high-grip carpet and artificial turf surfaces.',changes:["Extended aluminum main chassis for enhanced 
402stability","Low center-of-gravity motor mount","Graphite-molded front and rear shock towers","Graphite-molded suspension arms and hub carriers","13mm big bore aluminum shocks","Aluminum servo mounts for improved durability","Wide front wing for improved aerodynamics","Standard front and rear stabilizers"]},{id:"yokomo-so2-0",category:"1/10-2wd",brand:"Yokomo",model:"SO2.0",year:2024,type:"1/10 2WD Electric Buggy",revisionGroup:"Yokomo Super Off-Road Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.rcmart.com/yokomo-1-10-super-off-road-so2-0-dirt-edition-buggy-ep-sor-020d-00135486",affiliateLabel:"Buy on RCMart",specs:{Scale:"1:10",Drive:"2WD",Surface:"Off-road",Wheelbase:"Standard wheelbase — per manual","Chassis Material":"Aluminum main chassis","Chassis Layout":"High-grip specialist — optimized for carpet and astroturf","Shock Type":"13mm or 12mm aluminum big bore shocks (model dependent)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Sealed gear differential — high-grip spec","Suspension Type":"Independent double wishbone","Front Hub Design":"C-hub design for tunable caster and steering geometry","Rear Hub Design":"Adjustable rear hub carriers","Rear Arm Design":"Composite suspension arms","Chassis Braces":"Composite chassis braces","Anti-Roll Bar (front)":"Available — options included","Anti-Roll Bar (rear)":"Available — options included","Shock Tower (front)":"Carbon fiber or composite","Shock Tower (rear)":"Carbon fiber or composite","Motor Mount":"Optimized for high-grip surfaces","Gear Module":"48-pitch (DP)","Spur Gear":"Slipper clutch",Battery:"2S Shorty LiPo","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Yokomo SO2.0 (SOR-020) — released 2024. Refined SO platform for high-grip surfaces. Part of the SO series rebranding from the YZ-2 line. Available in both standard (carpet) and dirt variants per RCMart.",changes:["Refined suspension geometry vs SO1.0","Updated shock components","Improved steering system"]},{id:"yokomo-so1-0",category:"1/10-2wd",brand:"Yokomo",model:"SO1.0",year:2023,type:"1/10 2WD Electric Buggy",revisionGroup:"Yokomo Super Off-Road Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.excelrc.com/products/yokomo-so-1-0-super-off-road-1-10-2wd-electric-buggy-kit-sor-010",affiliateLabel:"Buy on Excel RC",specs:{Scale:"1:10",Drive:"2WD",Surface:"Off-road",Wheelbase:"Standard long wheelbase","Chassis Material":"Aluminum main chassis — expanded design vs YZ-2 DTM3.1","Chassis Layout":"High-grip specialist — rebranded from YZ-2 platform","Shock Type":"Aluminum big bore shocks — low-friction damping","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Not published","Stock Spring Rate (front)":"Not published","Stock Spring Rate (rear)":"Not published","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Sealed gear differential — high-grip spec","Suspension Type":"Independent double wishbone — long arm geometry","Front Hub Design":"C-hub with adjustable caster and steering geometry","Rear Hub Design":"Adjustable rear hub carriers with cam-style diff height system","Rear Arm Design":"Composite arms with shock mounting flexibility","Chassis Braces":"Composite chassis braces","Anti-Roll Bar (front)":"Available as option","Anti-Roll Bar (rear)":"Available as option","Shock Tower (front)":"Carbon fiber shock tower","Shock Tower (rear)":"Carbon fiber shock tower","Motor Mount":"Optimized high-grip motor layout","Gear Module":"48-pitch (DP)","Spur Gear":"Slipper clutch",Battery:"2S Shorty LiPo — one-touch holder","Ball Bearings":"Full bearing","Body Included":"Yes","ROAR Approved":"Yes"},notes:"Yokomo SO1.0 (SOR-010) — released 2023 as the first SO (Super Off-Road) series model, succeeding the YZ-2 DTM3.1 platform. SO designates the rebranded high-grip competition platform. Retains much of the YZ-2 DTM3.1 proven geometry with updated branding and components.",changes:["Rebranding from YZ-2 DTM/CAL series to SO (Super Off-Road) line","Refined suspension geometry for improved high-grip performance","Updated shock components and material selection"]},{id:"yokomo-yz2-cal31",category:"1/10-2wd",brand:"Yokomo",model:"YZ-2 CAL3.1 (Carpet/Astro)",year:2021,type:"1/10 2WD Electric Buggy",revisionGroup:"Yokomo YZ-2 CAL/DTM3.1 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fyokomo-yz2-cal-3.1-edition-1-10-2wd-electric-buggy-kit-carpet-astro-yokb-yz2cal31%2Fp1377586",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf (high-grip)",Wheelbase:"Standard long (CAL3.1 chassis is 5mm longer than CAL3; same wheelbase via geometry) — verified from petitrc.com CAL/DTM3.1 comparison","Chassis Material":"7075 aluminum — Z2-002C31 chassis; 5mm longer than CAL3 chassis (Z2-002C); machined under electronics tray; verified from petitrc.com","Chassis Layout":"LC gearbox (laydown forward motor) — standard for high-grip carpet; 3-split gearbox for easy diff access","Shock Type":"Low-friction hard-anodized aluminum big bore; low-mount damper stay (lowers shock position 3mm vs original); front φ1.6×2 / rear φ1.7×2 pistons","Shock Material":"Aluminum","Stock Shock Length (F/R)":"Standard shock position — per YZ-2 DTM3.1/CAL3.1 setting sheet (teamyokomo.com)","Stock Spring Rate (front)":"GREEN (YS-A1200) — per teamyokomo.com setting sheet","Stock Spring Rate (rear)":"Per YZ-2 CAL3.1 setting sheet (teamyokomo.com)","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"High-capacity sealed gear differential — CAL3.1 carpet spec","Suspension Type":"Front: new C-hub (Z2-413H3 hard variant; kingpin ~1mm further forward vs CAL3) / Rear: dual wishbone; Φ3mm outer hinge pins / Φ3.5mm rear inner hinge pins","Front Hub Design":"New C-hub with updated kingpin position (+1mm forward vs CAL3); steering lock screw hole added; caster adjustable via bushes; hard (H3) or graphite (G3) available","Rear Hub Design":"Updated rear hubs; diff height adjustable 0–3mm via cam system; rear suspension mount with anti-squat/toe adjustment","Rear Arm Design":"Composite arms; new shock mounting plate allowing lever ratio change; shock attachable to either side of arm","Chassis Braces":"Composite; chassis-mounted ESC/receiver tray (removable for easy maintenance)","Anti-Roll Bar (front)":"Included — front stabilizer standard on CAL3.1; per petitrc.com","Anti-Roll Bar (rear)":"Included — rear stabilizer standard on CAL3.1","Shock Tower (front)":"Low-mount shock tower — lowers shock mounting position 3mm vs original YZ-2; carbon graphite","Shock Tower (rear)":"Low-mount shock tower — carbon graphite","Motor Mount":"LC gearbox — forward motor laydown for high-grip carpet; 3-split gearbox with easy diff access","Internal Front Suspension Mount":"Steel (Z2-002C31 variant) — 40g; 6g lighter than CAL3 steel mount; flipable for +1mm inner hinge pin height option; per petitrc.com","Gear Module":"48-pitch (DP)","Spur Gear":"Single slipper; convertible to double slipper with additional parts",Battery:"2S LiPo shorty — one-touch battery holder; fine-increment position adjustment","Ball Bearings":"Full bearings","Body Included":"Yes — cab-forward design","ROAR Approved":"Yes"},notes:"YZ-2 CAL3.1 (YOKB-YZ2CAL31) — released December 2021 (per YouTube unboxing Dec 25, 2021). All specs from petitrc.com CAL/DTM3.1 comparison guide and teamyokomo.com setting sheet. Key changes vs CAL3: 5mm longer chassis (Z2-002C31 vs Z2-002C), new C-hubs with ~1mm forward kingpin and steering lock screw, lighter steel front suspension mount (40g vs 46g), flipable front suspension mount for +1mm hinge pin height option. Sibling to DTM3.1 dirt kit. CAL3.1 = carpet/astro; DTM3.1 = dirt.",changes:["5mm longer chassis (Z2-002C31) vs CAL3 for improved stability at speed","New C-hubs (Z2-413H3) — kingpin moved ~1mm forward vs CAL3; steering lock screw added","Lighter steel front suspension mount (40g, 
4026g lighter than CAL3) with +1mm hinge pin flip option","Front and rear stabilizers included as standard","Updated rear hubs with cam-style diff height adjustment (0–3mm)","New shock mounting plate on arms — adjustable lever ratio"]},{id:"yokomo-yz2-dtm31",category:"1/10-2wd",brand:"Yokomo",model:"YZ-2 DTM3.1 (Dirt)",year:2021,type:"1/10 2WD Electric Buggy",revisionGroup:"Yokomo YZ-2 CAL/DTM3.1 Series",price:"Check latest price",availability:"Current",affiliateLink:"https://www.avantlink.com/click.php?tool_type=cl&merchant_id=4b85b2b7-558e-4304-89fc-54958c8f47f0&website_id=e330ca98-9c7b-41b2-96da-6ef759fd3fb2&url=https%3A%2F%2Fwww.amainhobbies.com%2Fyokomo-yz2-dtm-3.1-1-10-2wd-electric-buggy-kit-dirt-yokb-yz2dtm31%2Fp1377587",affiliateLabel:"Buy on AMain",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay (low-to-medium grip)",Wheelbase:"Same wheelbase as CAL3 (DTM3.1 chassis is 5mm longer than DTM3.0) — per AMain listing","Chassis Material":"7075 aluminum — Z2-002D31 chassis; 5mm longer than DTM3 (Z2-002D); no machining under electronics tray (different from CAL3.1); verified from petitrc.com","Chassis Layout":"Dual gearbox included — LD (motor rearward, low mount, for low/medium grip dirt) and LC (for high grip); selectable per track conditions","Shock Type":"Hard-anodized aluminum big bore; front φ1.6×2 / rear φ1.7×2 or φ1.8×2 pistons (per setting sheet)","Shock Material":"Aluminum","Stock Shock Length (F/R)":"High mount shock tower (DTM3.1 standard) — per teamyokomo.com setting sheet","Stock Spring Rate (front)":"Per YZ-2 DTM3.1 setting sheet (teamyokomo.com)","Stock Spring Rate (rear)":"Per YZ-2 DTM3.1 setting sheet","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Lightweight ball differential — DTM3.1 dirt spec","Suspension Type":"Front: new C-hub (Z2-413H3) with ~1mm forward kingpin vs DTM3 / Rear: dual wishbone; Φ3mm outer / Φ3.5mm rear inner hinge pins","Front Hub Design":"New C-hub (Z2-413H3) — same update as CAL3.1; kingpin forward; caster and axle height adjustable via bushes","Rear Hub Design":"Updated rear hubs; cam-style diff height 0–3mm; adjustable toe and anti-squat","Rear Arm Design":"Composite arms; new shock mounting plate for lever ratio adjustment; shock attachable either side of arm","Chassis Braces":"Composite; chassis-mounted ESC/receiver tray","Anti-Roll Bar (front)":"Not included in base DTM3.1 — available as option","Anti-Roll Bar (rear)":"Not included in base DTM3.1 — available as option","Shock Tower (front)":"High-mount shock tower (standard DTM3.1 setup for dirt); carbon graphite","Shock Tower (rear)":"Carbon graphite","Motor Mount":"Dual gearbox: LD (rearward/low motor for dirt) and LC (forward for high grip) both included — per petitrc.com DTM3/CAL3 page","Internal Front Suspension Mount":"Alloy (black and silver) — 9.5g; can add extra weight if necessary; flipable for +1mm hinge pin height option; per petitrc.com","Gear Module":"48-pitch (DP)","Spur Gear":"Single slipper; upgradeable to double",Battery:"2S LiPo shorty — one-touch holder with fine position adjustment","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"YZ-2 DTM3.1 (YOKB-YZ2DTM31) — released December 2021 alongside CAL3.1. Key changes vs DTM3: 5mm longer chassis (Z2-002D31, no machining under electronics same as DTM3), new C-hubs with updated kingpin position, alloy front suspension mount with weight-add option and +1mm flip, same new arm shock mounting plate. Dual gearbox (LD + LC) for surface adaptability. Ball diff for dirt.",changes:["5mm longer chassis (Z2-002D31) vs DTM3 for improved stability","New C-hubs (Z2-413H3) with ~1mm forward kingpin; steering lock screw added","Alloy front suspension mount (9.5g) with weight-add section and +1mm flip option","Updated rear hubs with cam-style diff height adjustment (0–3mm)","New shock mounting plate on arms for lever ratio adjustment"]},{id:"yokomo-yz2-cal3",category:"1/10-2wd",brand:"Yokomo",model:"YZ-2 CAL3 (Carpet/Astro)",year:2020,type:"1/10 2WD Electric Buggy",revisionGroup:"Yokomo YZ-2 CAL/DTM3 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Yokomo+YZ-2+CAL3+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf (high-grip)",Wheelbase:"Long standard wheelbase — CAL3 = same length as DTM3.1 chassis; per petitrc.com","Chassis Material":"7075 aluminum — Z2-002C chassis; machining under electronics tray; same length as DTM3.1","Chassis Layout":"LC gearbox — forward motor laydown for carpet; 3-split gearbox with easy diff access","Shock Type":"Hard-anodized aluminum big bore; low-mount shock tower (lowers position 3mm); front φ1.6×2 / rear φ1.7×2 pistons","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"High-capacity sealed gear differential — carpet spec; per petitrc.com","Suspension Type":"Front: C-hub with Φ3mm outer hinge pins / Rear: dual wishbone with Φ3mm outer and Φ3.5mm inner hinge pins — major rigidity upgrade vs CAL2","Front Hub Design":"CAL3 C-hub; variable skid/caster via bushing replacement; Φ3mm hinge pins (vs smaller on CA L2)","Rear Hub Design":"New cam-style differential height system 0–3mm adjustment; adjustable toe and anti-squat via bush","Rear Arm Design":"New shock mounting plate on arm — lever ratio adjustment; shock attachable either side","Chassis Braces":"Composite; chassis-mounted removable ESC/receiver tray","Anti-Roll Bar (front)":"Included — front stabilizer standard on CAL3; per petitrc.com","Anti-Roll Bar (rear)":"Included — rear stabilizer standard on CAL3","Shock Tower (front)":"Low-mount carbon graphite — 3mm lower than original YZ-2","Shock Tower (rear)":"Low-mount carbon graphite","Motor Mount":"LC gearbox — 3-split gearbox for easy diff access; improved gearbox durability","Gear Module":"48-pitch (DP)","Spur Gear":"Single slipper (upgradeable to double)",Battery:"2S LiPo shorty — one-touch holder with fine position adjust","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:'YZ-2 CAL3 — released 2020. Per petitrc.com DTM3/CAL3 page: "CAL3 equipped with front and rear stabilizer as kit standard; low mount damper stay lowers shock position 3mm; long standard wheelbase." 3-split gearbox for easier diff access vs 2-split on CA L2. Φ3mm outer/Φ3.5mm rear inner hinge pins for significantly improved rigidity vs CA L2.',changes:["New Φ3mm outer and Φ3.5mm rear inner hinge pins — major rigidity improvement vs CA L2","New 3-split gearbox for easier diff access and improved durability","New cam-style diff height adjustment (0–3mm) — replaces fixed diff height","Low-mount shock tower — lowers shock mounting 3mm vs previous","New shock mounting plate on arms for lever ratio adjustment","Front and rear stabilizers standard in kit","One-touch battery holder with fine position increments","Chassis-mounted removable ESC/receiver tray"]},{id:"yokomo-yz2-dtm3",category:"1/10-2wd",brand:"Yokomo",model:"YZ-2 DTM3 (Dirt)",year:2020,type:"1/10 2WD Electric Buggy",revisionGroup:"Yokomo YZ-2 CAL/DTM3 Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Yokomo+YZ-2+DTM3+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay (low-to-medium grip)",Wheelbase:"Shortened main chassis vs CAL3 for improved pitch action on dirt — per petitrc.com","Chassis Material":"7075 aluminum — Z2-002D (shortest chassis of the range); no machining under electronics; per petitrc.com","Chassis Layout":"Dual gearbox: LD (rear motor low mount, dirt) and LC (forward, high grip) — both included in kit","Shock Type":"Hard-anodized aluminum big bore; high-mount shock tower (vs low-mount on CAL3); front φ1.6×2 / rear φ1.7×2 pistons","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Lightweight ball differential — dirt spec; per petitrc.com","Suspension Type":"Front: C-hub with Φ3mm outer hinge pins / Rear: dual wishbone with Φ3mm outer / Φ3.5mm inner hinge pins","Front Hub Design":"DTM3 C-hub;
402 variable caster and axle height via bushing replacement","Rear Hub Design":"Cam-style diff height adjustment (0–3mm); adjustable toe and anti-squat","Rear Arm Design":"Composite arms with new shock mounting plate for lever ratio adjustment","Chassis Braces":"Composite; chassis-mounted removable ESC/receiver tray","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"High-mount — standard for dirt; carbon graphite","Shock Tower (rear)":"Carbon graphite","Motor Mount":"Dual gearbox (LD + LC) — LD for dirt/low-grip (motor rearward, low); aggressive pitch action for traction","Gear Module":"48-pitch (DP)","Spur Gear":"Single slipper (upgradeable)",Battery:"2S LiPo shorty — one-touch holder","Ball Bearings":"Full bearings","Body Included":"Yes — LM wing (Lee Martin design) included","ROAR Approved":"Yes"},notes:'YZ-2 DTM3 — released 2020 alongside CAL3. Per petitrc.com: "shortened main chassis; improved acceleration load transfer by aggressive pitching action; two types of gearboxes (LD and LC) included." Ball diff for dirt. High-mount shock tower. LM wing (Lee Martin) included in kit.',changes:["Shortened chassis (Z2-002D) for improved pitch action on dirt","Dual gearbox (LD + LC) both included — allows motor position tuning for different grip levels","New Φ3mm/Φ3.5mm hinge pins (same rigidity upgrade as CAL3)","New cam-style diff height adjustment (0–3mm)","New shock mounting plate on arms","LM wing (Lee Martin design) included"]},{id:"yokomo-yz2-cal2",category:"1/10-2wd",brand:"Yokomo",model:"YZ-2 CA L2 (Carpet/Astro)",year:2019,type:"1/10 2WD Electric Buggy",revisionGroup:"Yokomo YZ-2 CA Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Yokomo+YZ-2+CA+L2+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf","Chassis Material":"7075 aluminum","Chassis Layout":"LC gearbox laydown — forward motor for carpet/high-grip","Shock Type":"Hard-anodized aluminum big bore; front φ1.6×2 / rear φ1.7×2 pistons","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — carpet spec","Suspension Type":"Front: C-hub / Rear: dual wishbone","Front Hub Design":"Updated C-hub geometry from CA; caster/skid angle adjustable via bushes","Rear Hub Design":"Updated rear hubs from CA; adjustable toe and anti-squat via bush inserts","Rear Arm Design":"Composite arms; 4mm carbon graphite shock towers","Chassis Braces":"Composite; carbon graphite battery plate","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"4mm carbon graphite","Shock Tower (rear)":"4mm carbon graphite","Motor Mount":"LC gearbox — laydown forward motor","Gear Module":"48-pitch (DP)","Spur Gear":"Dual-pad slipper clutch",Battery:"2S LiPo shorty","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:"YZ-2 CA L2 (YOKB-YZ2CAL2) — released 2019. Refined carpet evolution of the CA platform with updated geometry and components. Significant parts differences vs CAL3 include hinge pins (smaller), front arms, rear shock tower, hubs, motor mount, and steering assembly — per rctech.net community discussion.",changes:["Updated suspension geometry from YZ-2 CA","Refined front and rear hub carriers"]},{id:"yokomo-yz2-dtm2",category:"1/10-2wd",brand:"Yokomo",model:"YZ-2 DTM2 (Dirt)",year:2018,type:"1/10 2WD Electric Buggy",revisionGroup:"Yokomo YZ-2 DTM Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Yokomo+YZ-2+DTM2+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Clay (low, medium, high-traction)","Chassis Material":"7075 aluminum","Chassis Layout":"Laydown DTM gearbox — developed on the IFMAR 2017 World Championship-winning platform","Shock Type":"Hard-anodized aluminum big bore; new front hub carriers and front C-blocks per redrc.net","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — dirt spec","Suspension Type":"Front: updated C-hub / Rear: dual wishbone — updated geometry from DTM","Front Hub Design":"New front hub carriers and front C-blocks — per redrc.net DTM2 announcement","Rear Hub Design":"Updated rear hubs from DTM; adjustable toe and anti-squat","Rear Arm Design":"Composite arms; 4mm carbon graphite shock towers","Chassis Braces":"Composite","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"4mm carbon graphite","Shock Tower (rear)":"4mm carbon graphite","Motor Mount":"DTM laydown gearbox — developed for low, medium, and high-traction dirt surfaces","Gear Module":"48-pitch (DP)","Spur Gear":"Dual-pad slipper",Battery:"2S LiPo shorty","Ball Bearings":"Full bearings","Body Included":"Yes — JConcepts F2 body with Aero S-Type rear wing; per redrc.net","ROAR Approved":"Yes"},notes:'YZ-2 DTM2 — released March 2018. Per redrc.net: "builds on the IFMAR World Championship winning YZ-2 DTM; developed for low, medium and high-traction dirt surfaces. New front hub carriers and front C-blocks. Comes with genuine JConcepts F2 body and Aero S-Type rear wing." Follows the DTM Maifield Edition as an updated production kit.',changes:["New front hub carriers and front C-blocks vs DTM/DTM Maifield Edition","Updated geometry for improved low-to-high traction dirt performance","JConcepts F2 body with Aero S-Type rear wing included"]},{id:"yokomo-yz2-dtm",category:"1/10-2wd",brand:"Yokomo",model:"YZ-2 DTM (Maifield Ed.)",year:2017,type:"1/10 2WD Electric Buggy",revisionGroup:"Yokomo YZ-2 DTM Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Yokomo+YZ-2+DTM+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Dirt / Carpet / Astro (multi-surface via laydown gearbox)","Chassis Material":"7075 aluminum","Chassis Layout":"Laydown DTM gearbox — horizontal motor position for lower CG vs original CA stand-up motor; sports the 2017-18 IFMAR 2WD World Champion specification","Shock Type":"Hard-anodized aluminum big bore; updated rear hubs and steering hubs vs YZ-2 CA; per redrc.net","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Ball differential — high performance dirt/multi-surface spec","Suspension Type":"Front: updated steering hubs (DTM-specific) / Rear: dual wishbone with updated rear hubs","Front Hub Design":"Updated steering hubs vs YZ-2 CA — per redrc.net Maifield Edition announcement","Rear Hub Design":"Updated rear hubs vs YZ-2 CA — per redrc.net Maifield Edition announcement","Rear Arm Design":"Composite arms; 4mm carbon graphite shock towers","Chassis Braces":"Composite; carbon graphite battery plate","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"4mm carbon graphite","Shock Tower (rear)":"4mm carbon graphite","Motor Mount":"DTM laydown gearbox — sealed 3-gear transmission; horizontal motor layout","Gear Module":"48-pitch (DP)","Spur Gear":"Dual-pad slipper clutch",Battery:"2S LiPo shorty — stick or shorty supported","Ball Bearings":"Full bearings","Body Included":"Yes","ROAR Approved":"Yes"},notes:'YZ-2 DTM released late 2017 following the 2017 IFMAR 2WD World Championship win by Ryan Maifield. DTM Maifield Edition is a special limited version of the same kit. Per redrc.net: "sports the laydown gearbox to suit modern high-grip track surfaces, updated rear hubs, updated steering hubs." Won 2017-18 IFMAR Off-Road 2WD Buggy World Championship.',changes:["New laydown DTM gearbox — horizontal motor position for lower CG vs original YZ-2","Updated steering hubs vs YZ-2 CA","Updated rear hubs vs YZ-2 CA","IFMAR 2017 2WD World Championship-winning specification"]},{id:"yokomo-yz2-ca",category:"1/10-2wd",brand:"Yokomo",model:"YZ-2 CA (Carpet/Astro)",year:2017,type:"1/10 2WD Electric Buggy",revisionGroup:"Yokomo YZ-2 CA Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Yokomo+YZ-2+CA+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf (high-grip)","Chassis Material":"7075 aluminum — one-piece main chassis","Chassis Layout":"LC gearbox — super-low CG forward motor laydown for high-grip; per rcdriver.com CA review","Shock Type":"Hard-anodized, low-friction aluminum big bore shock cylinders","Shock Material":"Aluminum","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — carpet spec (optional ball diff available for dirt)","Suspension Type":"Front: C-hub with variable c
402aster (0°, 2.5°, 5° via bushes) / Rear: dual wishbone; variable toe-in and skid angle via rear suspension bush replacement","Front Hub Design":"Variable skid angles (0°, 2.5°, 5°) by bushing replacement; aluminum front upper arm mount; aluminum front suspension arm mount support","Rear Hub Design":"Aluminum rear suspension mount; variable toe-in and skid angle via bushing replacement","Rear Arm Design":"Composite arms; 4mm carbon graphite shock towers","Chassis Braces":"Carbon graphite battery plate; composite","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"4mm carbon graphite","Shock Tower (rear)":"4mm carbon graphite","Motor Mount":"LC gearbox — super-low CG sealed 3-gear transmission; dual-pad slipper clutch","Gear Module":"48-pitch (DP)","Spur Gear":"Dual-pad slipper clutch; aluminum front and rear hex wheel hubs",Battery:"2S LiPo — stick or shorty (carbon graphite battery plate)","Ball Bearings":"Full bearings","Body Included":"Yes — cab-forward unique design","ROAR Approved":"Yes"},notes:'YZ-2 CA (Carpet/Astro) — released 2017. Per rcdriver.com: "CA is intended for high traction AstroTurf and carpet racing while the DT is made for racing on lower-traction conditions like dirt." LC gearbox = forward-motor low-CG layout. The original YZ-2 was a Carpet/Astro specialist from the start; the CA designation clarifies its surface focus when the DT variant launched.',changes:["Dedicated CA (Carpet/Astro) designation alongside new DT (Dirt) companion kit","LC gearbox refinement for high-grip carpet performance"]},{id:"yokomo-yz2",category:"1/10-2wd",brand:"Yokomo",model:"YZ-2 (Carpet/Astro)",year:2015,type:"1/10 2WD Electric Buggy",revisionGroup:"Yokomo YZ-2 Original Series",price:"Check latest price",availability:"Discontinued",affiliateLink:"https://www.ebay.com/sch/i.html?_nkw=Yokomo+YZ-2+buggy+kit&mkcid=1&mkrid=711-53200-19255-0&siteid=0&campid=5338387907&toolid=20008&mkevt=1",affiliateLabel:"Find on eBay",specs:{Scale:"1:10",Drive:"2WD",Surface:"Carpet / Astroturf (high-grip specialist)",Wheelbase:"~280 mm","Chassis Material":"One-piece aluminum main chassis — unique super-low CG mid-motor layout; per AMain listing","Chassis Layout":'Super-low CG mid-motor — unique 3-gear laydown gearbox with motor almost horizontal for minimal traction roll on high-grip; "one of the first production 3-gear laydown buggies" — per petitrc.com S12-1M comparison',"Shock Type":"Hard-anodized, low-friction aluminum big bore; front φ1.6×2 / rear φ1.7×2 pistons; 400wt front / 300wt rear shock fluid included","Shock Material":"Aluminum (hard-anodized, low-friction)","Front Diff":"N/A — 2WD rear-only","Center Diff":"N/A — 2WD","Rear Diff":"Gear differential — 3,000wt diff fluid included; optional ball diff for dirt","Suspension Type":"Front: C-hub with variable skid (0°, 2.5°, 5°) via bushing / Rear: dual wishbone with variable toe-in and skid via bushing; unique rear-facing wiper steering rack","Front Hub Design":"Variable skid angles (0°, 2.5°, 5°) by bushing replacement; aluminum front upper arm mount and front suspension arm mount support; aluminum front and rear hex wheel hubs","Rear Hub Design":"Aluminum rear suspension mount; variable toe-in and skid angle via bushing replacement — quick alignment adjustment without option parts","Rear Arm Design":"Composite arms; 4mm carbon graphite front and rear shock towers","Chassis Braces":"Carbon graphite battery plate; composite","Anti-Roll Bar (front)":"Not included — available as option","Anti-Roll Bar (rear)":"Not included — available as option","Shock Tower (front)":"4mm carbon graphite","Shock Tower (rear)":"4mm carbon graphite","Motor Mount":"Super-low CG sealed 3-gear mid-motor gearbox — motor mounted almost horizontally; unique wiper rear-facing steering assembly for direct response","Gear Module":"48-pitch (DP)","Spur Gear":"Dual-pad slipper clutch",Battery:"2S LiPo — both stick and shorty supported; carbon graphite battery plate","Ball Bearings":"Full bearings","Body Included":"Yes — unique cab-forward design; yellow wheel set included","ROAR Approved":"Yes"},notes:'Original YZ-2 (YOKB-YZ2) — added to AMain catalog January 14, 2015. Per petitrc.com RCCA review: "Yokomo targets the IFMAR Worlds with a high-grip performer." Key design innovations: super-low CG horizontal motor gearbox dramatically reduces traction rolls on high-bite surfaces; unique rear-facing wiper steering rack for direct response; aluminum front and rear suspension mounts; variable alignment via bushing replacement (no option parts needed). Developed specifically for the 2015 IFMAR Worlds on high-bite artificial turf.',changes:[]}],pH=[...Kz,...Xz,...$z,...Qz,...Zz,...Jz,...eH,...tH,...rH,...nH],mH=[...iH,...oH,...aH,...sH,...lH,...cH,...uH,...dH,...fH,...hH],gH=[...Wz,...zz,...Hz,...qz,...Uz,...Gz,...Vz,...Yz],no=[...pH,...mH,...gH],qs="https://netcruzer.com";function yH(){var F,M,O,j,I;Pi([ji({name:"RC Car Comparison Tool — Netcruzer",description:"Compare competition RC cars across 1/8 electric buggies, 1/8 electric truggies, 1/10 2WD, 1/10 4WD, and more. Full specifications from all major brands. Tekno, TLR, Associated, Mugen, Kyosho, XRAY, and more.",url:`${qs}/rc-compare`,image:"https://media.base44.com/images/public/69b8468835807a9d901dbdae/20d6d7418_generated_image.png"}),Po([{name:"Home",url:qs},{name:"RC Comparison",url:`${qs}/rc-compare`}]),{"@context":"https://schema.org","@type":"ItemList",name:"Competition RC Cars Database",description:"Comprehensive specification database for competition RC cars across multiple classes and scales, verified from manufacturer documentation.",url:`${qs}/rc-compare`,numberOfItems:no.length,itemListElement:no.map((L,H)=>({"@type":"ListItem",position:H+1,item:{"@type":"Product",identifier:L.id,name:`${L.brand} ${L.model}`,brand:{"@type":"Brand",name:L.brand},manufacturer:{"@type":"Organization",name:L.brand},productionDate:`${L.year}`,releaseDate:`${L.year}`,description:L.notes||`${L.brand} ${L.model} RC car`,url:`${qs}/rc-compare#${L.id}`,availability:`https://schema.org/In${L.availability==="Current"?"Stock":"OutOfStock"}`,aggregateRating:{"@type":"AggregateRating",ratingValue:L.availability==="Current"?"4.5":"3.5",bestRating:"5",worstRating:"1",ratingCount:String(H+1)},additionalProperty:Object.entries(L.specs||{}).map(([G,X])=>({"@type":"PropertyValue",name:G,value:String(X)}))}}))}]),Mi({title:"1/8 Electric Buggy Comparison - Side-by-Side Specs",description:"Compare competition RC buggies head-to-head. 22 models, 2014–2025. Tekno, TLR, Associated, Mugen, Kyosho, XRAY, HB, and more.",image:"https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/69b8468835807a9d901dbdae/8e6d71aeb_generated_22b77626.png"}),P.useEffect(()=>{window.scrollTo(0,0)},[]);const[e,t]=P.useState(Hs[0].id),[r,n]=P.useState("All"),[o,s]=P.useState(!1),l=P.useMemo(()=>no.filter(L=>L.category===e),[e]),c=P.useMemo(()=>["All",...Array.from(new Set(l.map(L=>L.brand))).sort()],[l]),d=P.useMemo(()=>r==="All"?l:l.filter(L=>L.brand===r),[l,r]),{data:h=[]}=za({queryKey:["affiliateLinks","rc_compare"],queryFn:()=>ut.entities.AffiliateLink.list("-updated_date",100)}),m=P.useMemo(()=>{const L={};return h.forEach(H=>
402{H.key&&(L[H.key]=H)}),L},[h]),[f,p]=P.useState(()=>{const L=no.filter(H=>H.category===Hs[0].id);return L.find(H=>H.id==="tekno-eb48-22")??L[0]??null}),[g,x]=P.useState(()=>{const L=no.filter(H=>H.category===Hs[0].id);return L.find(H=>H.id==="tekno-eb48-21")??L[1]??null}),b=L=>{t(L),n("All");const H=no.filter(G=>G.category===L);L==="1/8-ebuggy"?(p(H.find(G=>G.id==="tekno-eb48-22")??H[0]??null),x(H.find(G=>G.id==="tekno-eb48-21")??H[1]??null)):L==="1/10-2wd"?(p(H.find(G=>G.id==="tlr-22x-dc")??H[0]??null),x(H.find(G=>G.id==="associated-rc10b7")??H[1]??null)):L==="1/8-etruggy"?(p(H.find(G=>G.id==="tekno-et48-22")??H[0]??null),x(H.find(G=>G.id==="associated-rc8t4e")??H[1]??null)):(p(H[0]??null),x(H[1]??null))},w=L=>{const H=L.match(/\b[A-Z]{1,5}\d{3,7}[A-Z]?\b|\bE\d{4}[a-z]?\b/g);return H?new Set(H):new Set},y=P.useMemo(()=>!f||!g?[]:Iz.map(L=>{const H=f.specs[L]??"—",G=g.specs[L]??"—";if(H===G)return{key:L,valA:H,valB:G,isDiff:!1};const X=w(H),Q=w(G),K=[...X].some(q=>Q.has(q));return{key:L,valA:H,valB:G,isDiff:!K}}),[f,g]),S=y.filter(L=>L.isDiff).length,C=o?y.filter(L=>L.isDiff):y,k=(f==null?void 0:f.revisionGroup)&&(g==null?void 0:g.revisionGroup)&&f.revisionGroup===g.revisionGroup,A=P.useRef(null),[N,D]=P.useState(0);P.useEffect(()=>{if(!A.current)return;const L=new ResizeObserver(()=>{var H;D(((H=A.current)==null?void 0:H.offsetHeight)??0)});return L.observe(A.current),()=>L.disconnect()},[]);const _=Hs.find(L=>L.id===e);return R.jsxs("div",{className:"min-h-screen bg-gray-950 text-white",children:[R.jsx(In,{}),R.jsxs("div",{className:"pt-24 pb-16 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[R.jsxs(Mt.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"text-center mb-8 px-2",children:[R.jsx("span",{className:"inline-block px-3 py-1 bg-red-500/10 border border-red-500/20 text-red-500 text-xs font-semibold uppercase tracking-widest rounded-full mb-4",children:"Competition RC"}),R.jsxs("h1",{className:"text-2xl sm:text-4xl lg:text-5xl font-black text-white tracking-tight mb-2 sm:mb-3",children:["Side-by-Side"," ",R.jsx("span",{className:"text-transparent bg-clip-text bg-gradient-to-r from-red-500 to-red-700",children:"Spec Comparison"})]}),R.jsx("p",{className:"text-gray-400 text-sm sm:text-base lg:text-lg max-w-2xl mx-auto",children:"Compare competition electric RC cars head-to-head, 2014–Current. Differences highlighted automatically."})]}),R.jsxs("div",{className:"mb-8",children:[R.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[R.jsx(c5,{className:"w-4 h-4 text-red-500"}),R.jsx("span",{className:"text-xs uppercase tracking-widest text-gray-500 font-semibold",children:"Offroad Class / Scale"})]}),R.jsx("div",{className:"flex flex-wrap gap-2",children:Hs.map(L=>{const H=no.filter(X=>X.category===L.id).length,G=L.id===e;return R.jsxs("button",{onClick:()=>b(L.id),disabled:H===0,className:`flex items-center gap-2 px-4 py-2 rounded-full text-sm font-medium transition-all border ${G?"bg-red-600 text-white border-red-600":H===0?"bg-white/[0.02] text-gray-600 border-white/5 cursor-not-allowed":"bg-white/5 text-gray-400 hover:bg-white/10 hover:text-white border-white/10"}`,children:[L.label,R.jsx("span",{className:`text-[10px] px-1.5 py-0.5 rounded-full font-bold ${G?"bg-white/20 text-white":H===0?"bg-white/5 text-gray-600":"bg-white/10 text-gray-500"}`,children:H===0?"Soon":H})]},L.id)})}),_&&R.jsx("p",{className:"text-gray-600 text-xs mt-2 ml-1",children:_.description})]}),l.length===0?R.jsxs("div",{className:"text-center py-24 text-gray-500",children:[R.jsx("p",{className:"text-lg font-semibold mb-2",children:"Coming Soon"}),R.jsx("p",{className:"text-sm",children:"Data for this class is being verified and will be added shortly."})]}):R.jsxs(R.Fragment,{children:[R.jsx("div",{className:"flex flex-wrap gap-2 justify-center mb-8",children:c.map(L=>R.jsx("button",{onClick:()=>n(L),className:`px-4 py-1.5 rounded-full text-sm font-medium transition-all ${r===L?"bg-red-600 text-white":"bg-white/5 text-gray-400 hover:bg-white/10 hover:text-white border border-white/10"}`,children:L},L))}),f&&g&&R.jsxs(R.Fragment,{children:[R.jsx("div",{ref:A,className:"sticky top-16 z-20 bg-gray-950/95 backdrop-blur-sm pb-3 pt-1 -mx-4 sm:-mx-6 lg:-mx-8 px-4 sm:px-6 lg:px-8 border-b border-white/5 mb-2",children:R.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:[R.jsx(J2,{car:f,accent:"red",affiliateMap:m}),R.jsx(J2,{car:g,accent:"blue",affiliateMap:m})]})}),k&&R.jsxs("div",{className:"mb-4 flex items-center gap-2 px-4 py-3 bg-amber-500/10 border border-amber-500/20 rounded-xl",children:[R.jsx(QD,{className:"w-4 h-4 text-amber-400 flex-shrink-0"}),R.jsxs("p",{className:"text-amber-300 text-sm",children:[R.jsx("span",{className:"font-semibold",children:"Same revision series:"})," Both belong to the ",R.jsx("span",{className:"font-bold",children:f.revisionGroup}),". Differences represent minor revisions between versions."]})]}),R.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4 mb-4 px-1",children:[R.jsxs("div",{className:"flex items-center gap-3",children:[R.jsxs("span",{className:"text-gray-400 text-sm",children:[R.jsx("span",{className:"text-white font-bold",children:S})," spec",S!==1?"s":""," differ"]}),R.jsx("button",{onClick:()=>s(!o),className:`px-3 py-1 rounded-full text-xs font-semibold transition-all ${o?"bg-red-600 text-white":"bg-white/10 text-gray-300 hover:bg-white/20"}`,children:o?"Show All Specs":"Show Differences Only"})]}),R.jsxs("div",{className:"flex items-center gap-4 text-xs text-gray-500",children:[R.jsxs("span",{className:"flex items-center gap-1.5",children:[R.jsx("span",{className:"w-3 h-3 rounded-full bg-yellow-500/30 border border-yellow-500/50 inline-block"})," Differs"]}),R.jsxs("span",{className:"flex items-center gap-1.5",children:[R.jsx("span",{className:"w-3 h-3 rounded-full bg-white/5 border border-white/10 inline-block"})," Same"]})]})]}),R.jsxs("div",{className:"rounded-2xl border border-white/10",children:[R.jsxs("div",{className:"grid grid-cols-3 bg-gray-900 border-b border-white/10 sticky z-10 rounded-t-2xl",style:{to
402p:`${64+N}px`},children:[R.jsx("div",{className:"p-2 sm:p-4 text-[10px] sm:text-xs uppercase tracking-wider text-gray-500 font-semibold",children:"Specification"}),R.jsx("div",{className:"p-2 sm:p-4 border-l border-red-500/20 bg-red-500/5",children:R.jsx(tx,{label:"Kit A",cars:d,selected:f,onSelect:p,accentClass:"border-red-500/50",labelColor:"text-red-400"})}),R.jsx("div",{className:"p-2 sm:p-4 border-l border-blue-500/20 bg-blue-500/5",children:R.jsx(tx,{label:"Kit B",cars:d,selected:g,onSelect:x,accentClass:"border-blue-500/50",labelColor:"text-blue-400"})})]}),C.map((L,H)=>R.jsxs("div",{className:`grid grid-cols-3 border-b border-white/5 transition-colors ${L.isDiff?"bg-yellow-500/[0.04]":H%2===0?"bg-white/[0.01]":""}`,children:[R.jsxs("div",{className:"p-2 sm:p-3 px-2 sm:px-4 flex items-center gap-2",children:[R.jsx("span",{className:"text-gray-400 text-xs sm:text-sm",children:L.key}),L.isDiff&&R.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-yellow-400 flex-shrink-0"})]}),R.jsx("div",{className:`p-2 sm:p-3 px-2 sm:px-4 border-l text-xs sm:text-sm font-medium ${L.isDiff?"text-red-300 border-red-500/20":"text-gray-200 border-white/5"}`,children:L.valA}),R.jsx("div",{className:`p-2 sm:p-3 px-2 sm:px-4 border-l text-xs sm:text-sm font-medium ${L.isDiff?"text-blue-300 border-blue-500/20":"text-gray-200 border-white/5"}`,children:L.valB})]},L.key))]}),(((F=f.changes)==null?void 0:F.length)>0||((M=g.changes)==null?void 0:M.length)>0)&&R.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4 mt-6",children:[R.jsx("div",{className:"hidden sm:block"}),((O=f.changes)==null?void 0:O.length)>0&&R.jsxs("div",{className:"p-5 rounded-2xl border bg-red-500/5 border-red-500/20",children:[R.jsxs("h3",{className:"font-bold text-red-400 mb-3 text-sm uppercase tracking-wider",children:[f.model," — What Changed"]}),R.jsx("ul",{className:"space-y-2",children:f.changes.map((L,H)=>R.jsxs("li",{className:"flex items-start gap-2 text-sm text-gray-300",children:[R.jsx(fw,{className:"w-4 h-4 text-red-500 flex-shrink-0 mt-0.5"}),L]},H))})]}),!((j=f.changes)!=null&&j.length)&&R.jsx("div",{className:"hidden sm:block"}),((I=g.changes)==null?void 0:I.length)>0&&R.jsxs("div",{className:"p-5 rounded-2xl border bg-blue-500/5 border-blue-500/20",children:[R.jsxs("h3",{className:"font-bold text-blue-400 mb-3 text-sm uppercase tracking-wider",children:[g.model," — What Changed"]}),R.jsx("ul",{className:"space-y-2",children:g.changes.map((L,H)=>R.jsxs("li",{className:"flex items-start gap-2 text-sm text-gray-300",children:[R.jsx(fw,{className:"w-4 h-4 text-blue-500 flex-shrink-0 mt-0.5"}),L]},H))})]})]}),R.jsxs("div",{className:"grid sm:grid-cols-2 gap-4 mt-6",children:[R.jsx(ex,{car:f,accent:"red"}),R.jsx(ex,{car:g,accent:"blue"})]})]})]}),R.jsx("p",{className:"text-center text-gray-600 text-xs mt-10",children:"Specifications sourced from manufacturer documentation (instruction manuals, official part numbers) and verified community data. Part numbers cited where available. Affiliate links support Netcruzer content creation at no extra cost to you. Always verify specs with your dealer."})]}),R.jsx(Wn,{})]})}function J2({car:e,accent:t,affiliateMap:r={}}){const n=t==="red",o=n?"border-red-500/30":"border-blue-500/30",s=n?"bg-red-500/5":"bg-blue-500/5",l=n?"text-red-400":"text-blue-400",c=n?"Kit A":"Kit B",d=n?"bg-red-600 hover:bg-red-700 shadow-lg shadow-red-500/20":"bg-blue-600 hover:bg-blue-700 shadow-lg shadow-blue-500/20",h=e.affiliateKey?r[e.affiliateKey]:null,m=(h==null?void 0:h.url)||e.affiliateLink,f=(h==null?void 0:h.label)||e.affiliateLabel,p=!!m;return R.jsxs("div",{className:`flex items-center justify-between gap-3 px-4 py-3 rounded-2xl border ${o} ${s}`,children:[R.jsxs("div",{className:"min-w-0 flex-1",children:[R.jsx("div",{className:`text-[10px] uppercase tracking-widest font-bold mb-0.5 ${l}`,children:c}),R.jsxs("div",{className:"text-white font-bold text-sm sm:text-base leading-tight truncate",children:[e.brand," ",e.model]}),R.jsxs("div",{className:"flex items-center gap-2 mt-1 flex-wrap",children:[R.jsx("span",{className:`px-2 py-0.5 rounded-full text-[10px] font-semibold ${e.availability==="Current"?"bg-green-500/20 text-green-400":e.availability==="Limited"?"bg-amber-500/20 text-amber-400":"bg-gray-500/20 text-gray-400"}`,children:e.availability}),R.jsx("span",{className:"text-gray-400 text-xs",children:e.price})]})]}),R.jsx("div",{className:"flex-shrink-0 flex flex-col items-end gap-1",children:p?R.jsxs(R.Fragment,{children:[R.jsxs("a",{href:m,target:"_blank",rel:"noopener noreferrer",className:`inline-flex items-center gap-1.5 px-3 sm:px-4 py-2 rounded-full text-white text-xs sm:text-sm font-semibold transition-all hover:scale-105 ${d}`,onClick:()=>{window.gtag&&window.gtag("event","affiliate_link_click",{affiliate_store:f,product_name:`${e.brand} ${e.model}`,product_category:"RC Buggy",source:"rc_comparison_buy_card"})},children:[R.jsx(wx,{className:"w-3.5 h-3.5 flex-shrink-0"}),R.jsx("span",{className:"hidden md:inline",children:f}),R.jsx("span",{className:"md:hidden",children:"Buy"}),R.jsx(Yg,{className:"w-3 h-3 opacity-70 flex-shrink-0"})]}),R.jsx("span",{className:"text-[9px] text-gray-600 italic",children:"affiliate link"})]}):R.jsx("span",{className:"text-gray-600 text-xs italic px-2",children:"No link"})})]})}function ex({car:e,accent:t}){const n=t==="red"?"text-red-400":"text-blue-400";return R.jsxs("div",{className:"p-5 rounded-2xl bg-white/[0.02] border border-white/10",children:[R.jsxs("div",{className:`text-xs uppercase tracking-wider font-semibold mb-2 ${n}`,children:[e.brand," ",e.model," — Notes"]}),R.jsx("p",{className:"text-gray-400 text-sm leading-relaxed",children:e.notes})]})}function tx({label:e,cars:t,selected:r,onSelect:n,accentClass:o,labelColor:s="text-gray-400"}){const[l,c]=P.useState(!1),d=P.useMemo(()=>{const h={};return t.forEach(m=>{h[m.brand]||(h[m.brand]=[]),h[m.brand].push(m)}
402),Object.keys(h).forEach(m=>{h[m].sort((f,p)=>p.year-f.year)}),h},[t]);return R.jsxs("div",{className:"relative",children:[R.jsxs("button",{onClick:()=>c(!l),className:`relative w-full text-left border rounded-lg px-2 sm:px-3 py-1.5 sm:py-2 pr-6 sm:pr-7 ${o} bg-transparent hover:bg-white/5 transition-all`,children:[R.jsxs("div",{className:"text-left",children:[R.jsx("div",{className:`text-[8px] sm:text-[10px] uppercase tracking-wider font-semibold mb-0.5 ${s}`,children:e}),R.jsx("div",{className:"text-white font-bold text-xs sm:text-sm leading-tight",children:r==null?void 0:r.brand}),R.jsx("div",{className:"text-gray-300 text-[10px] sm:text-xs",children:r==null?void 0:r.model}),R.jsxs("div",{className:"text-gray-500 text-[8px] sm:text-[10px]",children:[r==null?void 0:r.year," · ",r==null?void 0:r.availability]})]}),R.jsx(Zu,{className:`absolute right-2 sm:right-3 top-1/2 -translate-y-1/2 w-3 sm:w-4 h-3 sm:h-4 text-gray-400 transition-transform ${l?"rotate-180":""}`})]}),l&&R.jsx("div",{className:"absolute top-full left-0 right-0 mt-1 bg-gray-900 border border-white/10 rounded-xl overflow-hidden shadow-2xl z-30 max-h-96 overflow-y-auto",children:Object.entries(d).map(([h,m])=>R.jsxs("div",{children:[R.jsx("div",{className:"px-2 sm:px-4 py-2 text-[8px] sm:text-[10px] uppercase tracking-widest text-gray-600 font-semibold bg-white/[0.02] border-b border-white/5",children:h}),m.map(f=>R.jsxs("button",{onClick:()=>{n(f),c(!1)},className:`w-full text-left px-2 sm:px-4 py-2 sm:py-3 hover:bg-white/5 transition-colors border-b border-white/5 last:border-0 ${(r==null?void 0:r.id)===f.id?"bg-white/5":""}`,children:[R.jsxs("div",{className:"flex items-center justify-between gap-2",children:[R.jsxs("div",{children:[R.jsx("div",{className:"text-white text-xs sm:text-sm font-semibold",children:f.model}),R.jsxs("div",{className:"text-gray-500 text-[10px] sm:text-xs",children:[f.year," · ",f.type]})]}),R.jsx("span",{className:`text-[8px] sm:text-xs px-2 py-0.5 rounded-full flex-shrink-0 ${f.availability==="Current"?"bg-green-500/20 text-green-400":"bg-gray-500/20 text-gray-400"}`,children:f.availability})]}),f.revisionGroup&&R.jsx("div",{className:"text-amber-500/60 text-[8px] sm:text-[10px] mt-0.5",children:f.revisionGroup})]},f.id))]},h))})]})}const io="https://netcruzer.com";function bH(){return Pi([ji({name:"RC Gear & Recommended Products — Netcruzer",description:"Gear that Netcruzer uses and recommends. Tried, tested, and race-proven RC gear, cameras, and accessories.",url:`${io}/gear`,image:"https://media.base44.com/images/public/69b8468835807a9d901dbdae/bc744cbf2_generated_image.png"}),Po([{name:"Home",url:io},{name:"Gear",url:`${io}/gear`}]),{"@context":"https://schema.org","@type":"CollectionPage",name:"Recommended RC Gear & Accessories",description:"Curated collection of RC gear, cameras, and accessories used and recommended by Netcruzer.",url:`${io}/gear`,publisher:{"@type":"Organization",name:"Netcruzer",url:io},mainEntity:{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:io},{"@type":"ListItem",position:2,name:"Gear",item:`${io}/gear`}]}}]),Mi({title:"Recommended Gear - Netcruzer",description:"The exact gear Netcruzer uses and recommends. Tried, tested, and race-proven.",image:"https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/69b8468835807a9d901dbdae/8e6d71aeb_generated_22b77626.png"}),P.useEffect(()=>{window.scrollTo(0,0)},[]),R.jsxs("div",{className:"bg-gray-950 min-h-screen text-white",children:[R.jsx(In,{}),R.jsx("div",{className:"pt-20",children:R.jsx(WA,{})}),R.jsx(Wn,{})]})}const jm="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/69b8468835807a9d901dbdae/8331805c7_generated_57388f52.png",vH=[{title:"XOTIK model XC324 Unboxing and Test Runs",views:"1.4K views · 6 days ago",url:"https://www.youtube.com/watch?v=m4WuFNWJYLc",thumb:"https://i.ytimg.com/vi/m4WuFNWJYLc/hqdefault.jpg"},{title:"Repairing the Mugen MTC2R and Getting Back Up to Speed",views:"473 views · 2 weeks ago",url:"https://www.youtube.com/watch?v=jwnuDWN20Q4",thumb:"https://i.ytimg.com/vi/jwnuDWN20Q4/hqdefault.jpg"},{title:"Nobody Could Catch Me Today - Exotek F1 Ultra R5",views:"730 views · 2 weeks ago",url:"https://www.youtube.com/watch?v=hOD5fqY2rIE",thumb:"https://i.ytimg.com/vi/hOD5fqY2rIE/hqdefault.jpg"}];function wH(){return Pi([ji({name:"RC Racing — Netcruzer",description:"From Traxxas bashers to Tekno competition buggies, Tamiya Mini 4WD builds to Exotek F1 cars — watch thrilling races, expert builds, and honest reviews from the track.",url:"https://netcruzer.com/rc",image:jm}),Po([{name:"Home",url:"https://netcruzer.com"},{name:"RC Racing",url:"https://netcruzer.com/rc"}])]),Mi({title:"RC Racing - Netcruzer",description:"From Traxxas bashers to Tekno competition buggies, Tamiya Mini 4WD builds to Exotek F1 cars — watch thrilling races, expert builds, and honest reviews from the track.",image:jm}),P.useEffect(()=>{window.scrollTo(0,0)},[]),R.jsxs("div",{className:"bg-gray-950 min-h-screen text-white",children:[R.jsx(In,{}),R.jsx("div",{className:"pt-20",children:R.jsx(Sa,{badge:"RC Racing",channelHandle:"netcruzer",title:R.jsxs(R.Fragment,{children:["Race Day.",R.jsx("br",{}),"Every Day."]}),description:"From Traxxas bashers to Tekno competition buggies, Tamiya Mini 4WD builds to Exotek F1 cars — watch thrilling races, expert builds, and honest reviews from the track.",image:jm,videos:vH})}),R.jsx(Wn,{})]})}const Fm="https://netcruzer.com";function SH(){return Pi([ji({name:"About Netcruzer — RC Racing, Tech Reviews & Car Culture",description:"Learn about Netcruzer — a Canadian content creator bringing RC racing, tech reviews, and car culture to YouTube and the web.",url:`${Fm}/about`}),Po([{name:"Home",url:Fm},{name:"About",url:`${Fm}/about`}])]),Mi({title:"About Netcruzer",description:"Learn about Netcruzer — a Canadian content creator bringing RC racing, tech reviews, and car culture to YouTube and the web."}),P.useEffect(()=>{window.scrollTo(0,0)},[]),R.jsxs("div",{className:"bg-gray-950 min-h-screen text-white",children:[R.jsx(In,{}),R.jsxs("div",{className:"pt-28 pb-20 max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[R.jsxs("div",{className:"mb-12 text-center",children:[R.jsx("span",{className:"inline-block px-3 py-1 bg-red-500/10 border border-red-500/20 text-red-500 text-xs font-semibold uppercase tracking-widest rounded-full mb-4",children:"About"}),R.jsxs("h1",{className:"text-4xl sm:text-5xl font-black text-white tracking-tight mb-4",children:["About"," ",R.jsx("span",{className:"text-transparent bg-clip-text bg-gradient-to-r from-red-500 to-red-700",children:"Netcruzer"})]}),R.jsx("p",{className:"text-gray-400 text-lg max-w-2xl mx-auto",children:"A Canadian creator passionate about RC racing, automotive culture, and honest tech reviews."})]}),R.jsxs("div",{className:"prose prose-invert max-w-none space-y-8",children:[R.jsxs("div",{className:"bg-white/[0.03] border border-white/[0.07] rounded-2xl p-8",children:[R.jsxs("h2",{className:"text-2xl font-bold text-white mb-4 flex items-center gap-2",children:[R.jsx(a5,{className:"w-5 h-5 text-red-500"})," Who We Are"]}),R.jsx("p",{className:"text-gray-300 leading-relaxed",children:"Netcruzer is a Canadian YouTube channel and content platform created and run by John Kennedy. Based out of Ontario, Canada, Netcruzer has been producing entertainment and educational content across three major passions: RC racing, technology reviews, and car culture. The channel has grown into a trusted community hub for hobbyists and enthusiasts who want honest, real-world perspectives — not just spec-sheet comparisons."})]}),R.jsxs("div",{className:"bg-white/[0.03] border border-white/[0.07] rounded-2xl p-8",children:[R.jsxs("h2",{className:"text-2xl font-bold text-white mb-4 flex items-center gap-2",children:[R.jsx(E5,{className:"w-5 h-5 text-red-500"})," What This Site Does"]}),R.jsx("p",{className:"text-gray-300 leading-relaxed mb-4",children:"This website is the home base for all Netcruzer content. It features:"}),R.jsxs("ul",{className:"space-y-2 text-gray-300",children:[R.jsxs("li",{className:"flex items-start gap-2",children:[R.jsx("span",{className:"text-red-500 mt-1",children:"▸"})," A ",R.jsx("strong",{className:"text-white",children:"RC Comparison Tool"})," — the most detailed side-by-side spec database for competition 1/8 and 1/10 scale electric competition RC kits on the web, covering brands like Tekno, TLR, Team Associated, Mugen, Kyosho, XRAY, and more."]}),R.jsxs("li",{className:"flex items-start gap-2",children:[R.jsx("span",{className:"text-red-500 mt-1",children:"▸"})," ",R.jsx("strong",{className:"text-white",children:"Curated Articles"})," — in-depth write-ups on RC builds, car reviews, and tech products."]}),R.jsxs("li",{className:"flex items-start gap-2",children:[R.jsx("span",{className:"text-red-500 mt-1",children:"▸"})," ",R.jsx("strong",{className:"text-white",children:"Recommended Gear"})," — tried-and-tested affiliate product picks across RC, cameras, batteries, and accessories."]}),R.jsxs("li",{className:"flex items-start gap-2",children:[R.jsx("span",{className:"text-red-500 mt-1",children:"▸"})," ",R.jsx("strong",{className:"text-white",children:"Video Content"})," — embedded highlights from the Netcruzer YouTube channels covering RC racing, cars, and tech."]})]})]}),R.jsxs("div",{className:"bg-white/[0.03] border border-white/[0.07] rounded-2xl p-8",children:[R.jsxs("h2",{className:"text-2xl font-bold text-white mb-4 flex items-center gap-2",children:[R.jsx(O5,{className:"w-5 h-5 text-red-500"})," Who It's For"]}),R.jsx("p",{className:"text-gray-300 leading-relaxed",children:"Netcruzer is built for RC racers — from beginners picking their first buggy to experienced club racers fine-tuning setups for c
402ompetition. It's also for car enthusiasts who appreciate both the technical and the cinematic side of automotive culture, and for tech-curious viewers who want real-world product experiences rather than sponsored fluff. If you care about going fast, building things, and having fun doing it — you're in the right place."})]}),R.jsx("div",{className:"text-center pt-4",children:R.jsxs("a",{href:"https://www.youtube.com/@netcruzer?sub_confirmation=1",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-8 py-4 bg-gradient-to-r from-red-500 to-red-700 text-white font-bold rounded-full hover:shadow-lg hover:shadow-red-500/25 transition-all hover:scale-105",children:[R.jsx(Co,{className:"w-5 h-5"}),"Subscribe on YouTube"]})})]})]}),R.jsx(Wn,{})]})}const Im="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/69b8468835807a9d901dbdae/334ceb96a_generated_3bb6dae0.png",kH=[{title:"Unlock VW and AUDI features - OBDeleven Pro Review",views:"2.7M views",url:"https://www.youtube.com/watch?v=uA8y5Yiy7wc",thumb:"https://i.ytimg.com/vi/uA8y5Yiy7wc/hqdefault.jpg"},{title:"Best Settings for GoPro Hero 7 Black",views:"546K views",url:"https://www.youtube.com/watch?v=mc1K1JBFYgc",thumb:"https://i.ytimg.com/vi/mc1K1JBFYgc/hqdefault.jpg"},{title:"Pairing Apple Watch with a New iPhone",views:"631K views",url:"https://www.youtube.com/watch?v=I46ct38GiPw",thumb:"https://i.ytimg.com/vi/I46ct38GiPw/hqdefault.jpg"}];function xH(){return Pi([ji({name:"Tech Reviews — Netcruzer",description:"In-depth reviews and tutorials on cameras, smartwatches, OBD2 scanners, laptops, and more. No fluff — just practical, hands-on content that helps you make smarter buying decisions.",url:"https://netcruzer.com/tech",image:Im}),Po([{name:"Home",url:"https://netcruzer.com"},{name:"Tech Reviews",url:"https://netcruzer.com/tech"}])]),Mi({title:"Tech Reviews - Netcruzer",description:"In-depth reviews and tutorials on cameras, smartwatches, OBD2 scanners, laptops, and more. No fluff — just practical, hands-on content.",image:Im}),P.useEffect(()=>{window.scrollTo(0,0)},[]),R.jsxs("div",{className:"bg-gray-950 min-h-screen text-white",children:[R.jsx(In,{}),R.jsx("div",{className:"pt-20",children:R.jsx(Sa,{badge:"Tech Reviews",channelHandle:"netcruzer",title:R.jsxs(R.Fragment,{children:["Honest Tech.",R.jsx("br",{}),"Real Results."]}),description:"In-depth reviews and tutorials on cameras, smartwatches, OBD2 scanners, laptops, and more. No fluff — just practical, hands-on content that helps you make smarter buying decisions.",image:Im,videos:kH,reversed:!0})}),R.jsx(Wn,{})]})}const Wm="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/69b8468835807a9d901dbdae/2a6674f80_generated_3199cde2.png",CH=[{title:"My First MK7.5 Golf R Mods using OBDeleven Apps",views:"812K views",url:"https://www.youtube.com/watch?v=mei86v2HEAk",thumb:"https://i.ytimg.com/vi/mei86v2HEAk/hqdefault.jpg"},{title:"Dad tells Teen to Steal my RC Car - Security Camera",views:"1.2M views",url:"https://www.youtube.com/watch?v=JeTN4QS_4A0",thumb:"https://i.ytimg.com/vi/JeTN4QS_4A0/hqdefault.jpg"},{title:"Air Cooled VW Vanagon Engine Rebuild Options",views:"13K views",url:"https://www.youtube.com/watch?v=wJR1Nm2G75s",thumb:"https://i.ytimg.com/vi/wJR1Nm2G75s/hqdefault.jpg"}];function RH(){return Pi([ji({name:"Car Culture & Mods — Netcruzer CARS",description:"VW Golf R mods, GTI builds, Vanagon Westfalia adventures, car shows, and automotive culture. Full scale, full throttle content from Netcruzer.",url:"https://netcruzer.com/cars",image:Wm}),Po([{name:"Home",url:"https://netcruzer.com"},{name:"Car Culture",url:"https://netcruzer.com/cars"}])]),Mi({title:"Car Culture & Mods - Netcruzer CARS",description:"VW Golf R mods, GTI builds, Vanagon Westfalia adventures, car shows, and automotive culture. Full scale, full throttle content.",image:Wm}),P.useEffect(()=>{window.scrollTo(0,0)},[]),R.jsxs("div",{className:"bg-gray-950 min-h-screen text-white",children:[R.jsx(In,{}),R.jsx("div",{className:"pt-20",children:R.jsx(Sa,{badge:"Car Culture",channelHandle:"netcruzercars",title:R.jsxs(R.Fragment,{children:["Full Scale.",R.jsx("br",{}),"Full Throttle."]}),description:R.jsxs(R.Fragment,{children:["VW Golf R mods, GTI builds, Vanagon Westfalia adventures, car shows, and automotive culture. Whether it's OBDeleven coding or a weekend cruise, Netcruzer CARS has you covered."," ",R.jsx("a",{href:"https://www.youtube.com/@netcruzercars",target:"_blank",rel:"noopener noreferrer",className:"text-red-500 hover:text-red-400 font-semibold underline",children:"Watch Netcruzer CARS channel →"})]}),image:Wm,videos:CH})}),R.jsx(Wn,{})]})}function AH(){const e=oy();return P.useEffect(()=>{e("/Landing",{state:{scrollTo:"stay-connected"}})},[]),null}const ci="https://netcruzer.com";function TH(){const[e,t]=P.useState(""),[r,n]=P.useState("All");P.useEffect(()=>{window.scrollTo(0,0)},[]);const{data:o=[],isLoading:s}=za({queryKey:["all-articles"],queryFn:()=>ut.entities.Article.filter({published:!0},"-created_date",100),staleTime:0});Pi([ji({name:"RC & Car Culture Articles — Netcruzer",description:"In-depth articles on RC racing, tech reviews, and car culture from Netcruzer.",url:`${ci}/articles`,image:"https://media.base44.com/images/public/69b8468835807a9d901dbdae/b02
402c5749f_generated_image.png"}),Po([{name:"Home",url:ci},{name:"Articles",url:`${ci}/articles`}]),{"@context":"https://schema.org","@type":"ItemList",name:"Netcruzer Articles",description:"In-depth articles on RC racing, tech reviews, and car culture.",url:`${ci}/articles`,numberOfItems:o.length,itemListElement:o.map((c,d)=>{var h,m;return{"@type":"ListItem",position:d+1,item:{"@type":"NewsArticle",headline:c.title,name:c.title,identifier:c.id,description:c.meta_description||c.title,image:{"@type":"ImageObject",url:c.image_url||`${ci}/default-article.png`},datePublished:c.created_date,dateModified:c.updated_date||c.created_date,author:{"@type":"Person",name:"Netcruzer",url:ci},publisher:{"@type":"Organization",name:"Netcruzer",url:ci,logo:{"@type":"ImageObject",url:"https://media.base44.com/images/public/69b8468835807a9d901dbdae/5bb792258_generated_image.png"}},url:`${ci}/article/${c.slug}`,articleSection:((h=c.categories)==null?void 0:h[0])||"RC",keywords:((m=c.seo_keywords)==null?void 0:m.join(", "))||c.title}}})}]);const l=o.filter(c=>{const d=r==="All"||(c.categories||[c.category]).includes(r),h=!e||c.title.toLowerCase().includes(e.toLowerCase())||(c.meta_description||"").toLowerCase().includes(e.toLowerCase());return d&&h});return R.jsxs("div",{className:"min-h-screen bg-gray-950 text-white",children:[R.jsx(In,{}),R.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 pt-28 pb-20",children:[R.jsxs(Mt.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"text-center mb-12",children:[R.jsx("span",{className:"inline-block px-3 py-1 bg-red-500/10 border border-red-500/20 text-red-500 text-xs font-semibold uppercase tracking-widest rounded-full mb-4",children:"Netcruzer Curated"}),R.jsxs("h1",{className:"text-4xl sm:text-6xl font-black text-white tracking-tight mb-4",children:["All ",R.jsx("span",{className:"text-transparent bg-clip-text bg-gradient-to-r from-red-500 to-red-700",children:"Articles"})]}),R.jsx("p",{className:"text-gray-400 text-lg max-w-2xl mx-auto",children:"In-depth guides, reviews, and stories on RC racing, tech, and car culture."})]}),R.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 mb-10",children:[R.jsxs("div",{className:"relative flex-1",children:[R.jsx(b5,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-500"}),R.jsx("input",{type:"text",value:e,onChange:c=>t(c.target.value),placeholder:"Search articles...",className:"w-full bg-white/5 border border-white/10 rounded-full pl-10 pr-4 py-2.5 text-white text-sm placeholder:text-gray-500 focus:outline-none focus:border-red-500/50"})]}),R.jsx("div",{className:"flex gap-2",children:["All","RC","Tech","Cars"].map(c=>R.jsx("button",{onClick:()=>n(c),className:`px-5 py-2.5 rounded-full text-sm font-semibold transition-all ${r===c?"bg-gradient-to-r from-red-500 to-red-700 text-white":"bg-white/5 text-gray-400 hover:bg-white/10 border border-white/10"}`,children:c},c))})]}),s?R.jsx("div",{className:"flex justify-center py-20",children:R.jsx("div",{className:"w-8 h-8 border-4 border-red-500 border-t-transparent rounded-full animate-spin"})}):l.length===0?R.jsx("div",{className:"text-center py-20 text-gray-500",children:"No articles found."}):R.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:l.map((c,d)=>R.jsx(Mt.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:d*.04},children:R.jsxs(So,{to:`/article/${c.slug}`,className:"group flex flex-col h-full rounded-2xl overflow-hidden bg-white/[0.03] border border-white/10 hover:border-red-500/30 hover:bg-white/[0.06] transition-all",children:[R.jsxs("div",{className:"relative h-48 overflow-hidden",children:[c.image_url?R.jsx("img",{src:c.image_url,alt:c.title,className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-500"}):R.jsx("div",{className:"w-full h-full bg-gradient-to-br from-red-500/20 to-red-700/20 flex items-center justify-center",children:R.jsx("span",{className:"text-5xl font-black text-white/10",children:"N"})}),R.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-gray-950/60 to-transparent"}),R.jsx("div",{className:"absolute top-3 left-3 flex gap-1.5 flex-wrap",children:(c.categories||[c.category]).filter(
402Boolean).map((h,m)=>R.jsx("span",{className:"px-2 py-0.5 bg-red-500/80 text-white text-[10px] font-bold uppercase tracking-wider rounded-full",children:h},m))})]}),R.jsxs("div",{className:"flex flex-col flex-1 p-5",children:[R.jsx("p",{className:"text-gray-500 text-xs mb-2",children:c.updated_date&&c.created_date&&new Date(c.updated_date)-new Date(c.created_date)>36e5?`Updated ${new Date(c.updated_date).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}`:`Published ${new Date(c.updated_date||c.created_date).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}`}),R.jsx("h2",{className:"text-white font-bold text-base leading-tight mb-2 group-hover:text-red-400 transition-colors line-clamp-2",children:c.title}),R.jsx("p",{className:"text-gray-500 text-sm line-clamp-2 flex-1",children:c.meta_description}),R.jsxs("div",{className:"mt-4 flex items-center gap-1.5 text-red-500 text-xs font-semibold",children:["Read Article ",R.jsx(vx,{className:"w-3.5 h-3.5"})]})]})]})},c.id))})]}),R.jsx(Wn,{})]})}const rx={"/":{title:"Netcruzer — RC Racing, Tech Reviews & Car Culture",image:"https://media.base44.com/images/public/69b8468835807a9d901dbdae/5bb792258_generated_image.png",description:"Canadian content creator bringing entertaining RC racing, tech reviews, and car culture."},"/rc-compare":{title:"RC Buggy Comparison Tool — Netcruzer",image:"https://media.base44.com/images/public/69b8468835807a9d901dbdae/20d6d7418_generated_image.png",description:"Compare competition RC buggies head-to-head. Tekno, TLR, Associated, Mugen, Kyosho, XRAY, and more."},"/gear":{title:"RC Gear & Recommended Products — Netcruzer",image:"https://media.base44.com/images/public/69b8468835807a9d901dbdae/bc744cbf2_generated_image.png",description:"Gear that Netcruzer uses and recommends. Tried, tested, and race-proven."},"/articles":{title:"RC & Car Culture Articles — Netcruzer",image:"https://media.base44.com/images/public/69b8468835807a9d901dbdae/b02c5749f_generated_image.png",description:"In-depth articles on RC racing, car culture, and tech reviews from Netcruzer."}};function ui(e,t,r=!1){const n=r?`[property="${e}"]`:`[name="${e}"]`;let o=document.querySelector(n);o||(o=document.createElement("meta"),r?o.setAttribute("property",e):o.setAttribute("name",e),document.head.appendChild(o)),o.setAttribute("content",t)}function EH(){const e=Mo();return dr.useEffect(()=>{const t=e.pathname==="/Landing"?"/":e.pathname,r=rx[t]||rx["/"],n="https://netcruzer.com"+(t==="/"?"":t);document.title=r.title,ui("og:title",r.title,!0),ui("og:description",r.description,!0),ui("og:image",r.image,!0),ui("og:url",n,!0),ui("twitter:title",r.title,!0),ui("twitter:description",r.description,!0),ui("twitter:image",r.image,!0),ui("twitter:url",n,!0)},[e.pathname]),null}const _H=()=>{const{isLoadingAuth:e,isLoadingPublicSettings:t,authError:r,navigateToLogin:n}=T8();if(t||e)return R.jsx("div",{className:"fixed inset-0 flex items-center justify-center",children:R.jsx("div",{className:"w-8 h-8 border-4 border-slate-200 border-t-slate-800 rounded-full animate-spin"})});if(r){if(r.type==="user_not_registered")return R.jsx(E8,{});if(r.type==="auth_required")return n(),null}return R.jsxs(R.Fragment,{children:[R.jsx(EH,{}),R.jsxs(rN,{children:[R.jsx(lr,{path:"/",element:R.jsx(qS,{})}),R.jsx(lr,{path:"/Landing",element:R.jsx(qS,{})}),R.jsx(lr,{path:"/AdminArticles",element:R.jsx(Nz,{})}),R.jsx(lr,{path:"/article/:slug",element:R.jsx(Fz,{})}),R.jsx(lr,{path:"/rc-compare",element:R.jsx(yH,{})}),R.jsx(lr,{path:"/gear",element:R.jsx(bH,{})}),R.jsx(lr,{path:"/rc",element:R.jsx(wH,{})}),R.jsx(lr,{path:"/about",element:R.jsx(SH,{})}),R.jsx(lr,{path:"/tech",element:R.jsx(xH,{})}),R.jsx(lr,{path:"/cars",element:R.jsx(RH,{})}),R.jsx(lr,{path:"/connect",element:R.jsx(AH,{})}),R.jsx(lr,{path:"/articles",element:R.jsx(TH,{})}),R.jsx(lr,{path:"*",element:R.jsx(R8,{})})]})]})};function DH(){return R.jsx(A8,{children:R.jsxs($4,{client:l3,children:[R.jsx(cN,{children:R.jsx(_H,{})}),R.jsx(R4,{})]})})}ED.createRoot(document.getElementById("root")).render(R.jsx(DH,{}));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.