From e497d3dcebf86b5ce62914b12f6ea8c65f8c7fff Mon Sep 17 00:00:00 2001 From: Jack Kingsman Date: Thu, 8 Jan 2026 21:33:18 -0800 Subject: [PATCH] improve n + 1 cracking to skip dict/prior length --- .../{index-FM2HgcXA.js => index-DycUwj3W.js} | 26 +++++++++---------- frontend/dist/index.html | 2 +- frontend/src/components/CrackerPanel.tsx | 5 +++- 3 files changed, 18 insertions(+), 15 deletions(-) rename frontend/dist/assets/{index-FM2HgcXA.js => index-DycUwj3W.js} (98%) diff --git a/frontend/dist/assets/index-FM2HgcXA.js b/frontend/dist/assets/index-DycUwj3W.js similarity index 98% rename from frontend/dist/assets/index-FM2HgcXA.js rename to frontend/dist/assets/index-DycUwj3W.js index a3646c6..e1cba5b 100644 --- a/frontend/dist/assets/index-FM2HgcXA.js +++ b/frontend/dist/assets/index-DycUwj3W.js @@ -1,4 +1,4 @@ -var Kv=Object.defineProperty;var Yv=(a,r,o)=>r in a?Kv(a,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[r]=o;var Hn=(a,r,o)=>Yv(a,typeof r!="symbol"?r+"":r,o);function Zv(a,r){for(var o=0;ot[u]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))t(u);new MutationObserver(u=>{for(const l of u)if(l.type==="childList")for(const m of l.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&t(m)}).observe(document,{childList:!0,subtree:!0});function o(u){const l={};return u.integrity&&(l.integrity=u.integrity),u.referrerPolicy&&(l.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?l.credentials="include":u.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function t(u){if(u.ep)return;u.ep=!0;const l=o(u);fetch(u.href,l)}})();var Yc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Fo(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}function Lg(a){if(Object.prototype.hasOwnProperty.call(a,"__esModule"))return a;var r=a.default;if(typeof r=="function"){var o=function t(){return this instanceof t?Reflect.construct(r,arguments,this.constructor):r.apply(this,arguments)};o.prototype=r.prototype}else o={};return Object.defineProperty(o,"__esModule",{value:!0}),Object.keys(a).forEach(function(t){var u=Object.getOwnPropertyDescriptor(a,t);Object.defineProperty(o,t,u.get?u:{enumerable:!0,get:function(){return a[t]}})}),o}var Zc={exports:{}},br={},Xc={exports:{}},Me={};/** +var Kv=Object.defineProperty;var Yv=(a,r,o)=>r in a?Kv(a,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[r]=o;var Hn=(a,r,o)=>Yv(a,typeof r!="symbol"?r+"":r,o);function Zv(a,r){for(var o=0;ot[u]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))t(u);new MutationObserver(u=>{for(const l of u)if(l.type==="childList")for(const m of l.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&t(m)}).observe(document,{childList:!0,subtree:!0});function o(u){const l={};return u.integrity&&(l.integrity=u.integrity),u.referrerPolicy&&(l.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?l.credentials="include":u.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function t(u){if(u.ep)return;u.ep=!0;const l=o(u);fetch(u.href,l)}})();var Yc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Fo(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}function Lg(a){if(Object.prototype.hasOwnProperty.call(a,"__esModule"))return a;var r=a.default;if(typeof r=="function"){var o=function t(){return this instanceof t?Reflect.construct(r,arguments,this.constructor):r.apply(this,arguments)};o.prototype=r.prototype}else o={};return Object.defineProperty(o,"__esModule",{value:!0}),Object.keys(a).forEach(function(t){var u=Object.getOwnPropertyDescriptor(a,t);Object.defineProperty(o,t,u.get?u:{enumerable:!0,get:function(){return a[t]}})}),o}var Zc={exports:{}},br={},Xc={exports:{}},Ie={};/** * @license React * react.production.min.js * @@ -6,7 +6,7 @@ var Kv=Object.defineProperty;var Yv=(a,r,o)=>r in a?Kv(a,r,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Im;function Xv(){if(Im)return Me;Im=1;var a=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),t=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),m=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),g=Symbol.iterator;function f(z){return z===null||typeof z!="object"?null:(z=g&&z[g]||z["@@iterator"],typeof z=="function"?z:null)}var x={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,j={};function v(z,I,L){this.props=z,this.context=I,this.refs=j,this.updater=L||x}v.prototype.isReactComponent={},v.prototype.setState=function(z,I){if(typeof z!="object"&&typeof z!="function"&&z!=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,z,I,"setState")},v.prototype.forceUpdate=function(z){this.updater.enqueueForceUpdate(this,z,"forceUpdate")};function A(){}A.prototype=v.prototype;function q(z,I,L){this.props=z,this.context=I,this.refs=j,this.updater=L||x}var k=q.prototype=new A;k.constructor=q,w(k,v.prototype),k.isPureReactComponent=!0;var C=Array.isArray,S=Object.prototype.hasOwnProperty,D={current:null},T={key:!0,ref:!0,__self:!0,__source:!0};function F(z,I,L){var G,ue={},he=null,ge=null;if(I!=null)for(G in I.ref!==void 0&&(ge=I.ref),I.key!==void 0&&(he=""+I.key),I)S.call(I,G)&&!T.hasOwnProperty(G)&&(ue[G]=I[G]);var re=arguments.length-2;if(re===1)ue.children=L;else if(1r in a?Kv(a,r,{enumerable:!0,config `+z+e}var L=!1;function G(e,i){if(!e||L)return"";L=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(i)if(i=function(){throw Error()},Object.defineProperty(i.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(i,[])}catch(X){var s=X}Reflect.construct(e,[],i)}else{try{i.call()}catch(X){s=X}e.call(i.prototype)}else{try{throw Error()}catch(X){s=X}e()}}catch(X){if(X&&s&&typeof X.stack=="string"){for(var p=X.stack.split(` `),b=s.stack.split(` `),E=p.length-1,P=b.length-1;1<=E&&0<=P&&p[E]!==b[P];)P--;for(;1<=E&&0<=P;E--,P--)if(p[E]!==b[P]){if(E!==1||P!==1)do if(E--,P--,0>P||p[E]!==b[P]){var M=` -`+p[E].replace(" at new "," at ");return e.displayName&&M.includes("")&&(M=M.replace("",e.displayName)),M}while(1<=E&&0<=P);break}}}finally{L=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?I(e):""}function ue(e){switch(e.tag){case 5:return I(e.type);case 16:return I("Lazy");case 13:return I("Suspense");case 19:return I("SuspenseList");case 0:case 2:case 15:return e=G(e.type,!1),e;case 11:return e=G(e.type.render,!1),e;case 1:return e=G(e.type,!0),e;default:return""}}function he(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case T:return"Fragment";case D:return"Portal";case O:return"Profiler";case F:return"StrictMode";case H:return"Suspense";case $:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case R:return(e.displayName||"Context")+".Consumer";case N:return(e._context.displayName||"Context")+".Provider";case V:var i=e.render;return e=e.displayName,e||(e=i.displayName||i.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ae:return i=e.displayName||null,i!==null?i:he(e.type)||"Memo";case J:i=e._payload,e=e._init;try{return he(e(i))}catch{}}return null}function ge(e){var i=e.type;switch(e.tag){case 24:return"Cache";case 9:return(i.displayName||"Context")+".Consumer";case 10:return(i._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=i.render,e=e.displayName||e.name||"",i.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return i;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return he(i);case 8:return i===F?"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 i=="function")return i.displayName||i.name||null;if(typeof i=="string")return i}return null}function re(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function le(e){var i=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(i==="checkbox"||i==="radio")}function je(e){var i=le(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,i),s=""+e[i];if(!e.hasOwnProperty(i)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var p=n.get,b=n.set;return Object.defineProperty(e,i,{configurable:!0,get:function(){return p.call(this)},set:function(E){s=""+E,b.call(this,E)}}),Object.defineProperty(e,i,{enumerable:n.enumerable}),{getValue:function(){return s},setValue:function(E){s=""+E},stopTracking:function(){e._valueTracker=null,delete e[i]}}}}function Pe(e){e._valueTracker||(e._valueTracker=je(e))}function Ze(e){if(!e)return!1;var i=e._valueTracker;if(!i)return!0;var n=i.getValue(),s="";return e&&(s=le(e)?e.checked?"true":"false":e.value),e=s,e!==n?(i.setValue(e),!0):!1}function Je(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function _e(e,i){var n=i.checked;return ee({},i,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Ge(e,i){var n=i.defaultValue==null?"":i.defaultValue,s=i.checked!=null?i.checked:i.defaultChecked;n=re(i.value!=null?i.value:n),e._wrapperState={initialChecked:s,initialValue:n,controlled:i.type==="checkbox"||i.type==="radio"?i.checked!=null:i.value!=null}}function ei(e,i){i=i.checked,i!=null&&k(e,"checked",i,!1)}function Ve(e,i){ei(e,i);var n=re(i.value),s=i.type;if(n!=null)s==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}i.hasOwnProperty("value")?ai(e,i.type,n):i.hasOwnProperty("defaultValue")&&ai(e,i.type,re(i.defaultValue)),i.checked==null&&i.defaultChecked!=null&&(e.defaultChecked=!!i.defaultChecked)}function xi(e,i,n){if(i.hasOwnProperty("value")||i.hasOwnProperty("defaultValue")){var s=i.type;if(!(s!=="submit"&&s!=="reset"||i.value!==void 0&&i.value!==null))return;i=""+e._wrapperState.initialValue,n||i===e.value||(e.value=i),e.defaultValue=i}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ai(e,i,n){(i!=="number"||Je(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Ti=Array.isArray;function si(e,i,n,s){if(e=e.options,i){i={};for(var p=0;p"+i.valueOf().toString()+"",i=Ki.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;i.firstChild;)e.appendChild(i.firstChild)}});function qi(e,i){if(i){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=i;return}}e.textContent=i}var ci={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},Z=["Webkit","ms","Moz","O"];Object.keys(ci).forEach(function(e){Z.forEach(function(i){i=i+e.charAt(0).toUpperCase()+e.substring(1),ci[i]=ci[e]})});function de(e,i,n){return i==null||typeof i=="boolean"||i===""?"":n||typeof i!="number"||i===0||ci.hasOwnProperty(e)&&ci[e]?(""+i).trim():i+"px"}function ze(e,i){e=e.style;for(var n in i)if(i.hasOwnProperty(n)){var s=n.indexOf("--")===0,p=de(n,i[n],s);n==="float"&&(n="cssFloat"),s?e.setProperty(n,p):e[n]=p}}var K=ee({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 ne(e,i){if(i){if(K[e]&&(i.children!=null||i.dangerouslySetInnerHTML!=null))throw Error(o(137,e));if(i.dangerouslySetInnerHTML!=null){if(i.children!=null)throw Error(o(60));if(typeof i.dangerouslySetInnerHTML!="object"||!("__html"in i.dangerouslySetInnerHTML))throw Error(o(61))}if(i.style!=null&&typeof i.style!="object")throw Error(o(62))}}function ye(e,i){if(e.indexOf("-")===-1)return typeof i.is=="string";switch(e){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 Fe=null;function Be(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ne=null,Re=null,Te=null;function ji(e){if(e=ar(e)){if(typeof Ne!="function")throw Error(o(280));var i=e.stateNode;i&&(i=us(i),Ne(e.stateNode,e.type,i))}}function Ae(e){Re?Te?Te.push(e):Te=[e]:Re=e}function Oe(){if(Re){var e=Re,i=Te;if(Te=Re=null,ji(e),i)for(e=0;e>>=0,e===0?32:31-(df(e)/pf|0)|0}var Gr=64,Qr=4194304;function Io(e){switch(e&-e){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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function $r(e,i){var n=e.pendingLanes;if(n===0)return 0;var s=0,p=e.suspendedLanes,b=e.pingedLanes,E=n&268435455;if(E!==0){var P=E&~p;P!==0?s=Io(P):(b&=E,b!==0&&(s=Io(b)))}else E=n&~p,E!==0?s=Io(E):b!==0&&(s=Io(b));if(s===0)return 0;if(i!==0&&i!==s&&(i&p)===0&&(p=s&-s,b=i&-i,p>=b||p===16&&(b&4194240)!==0))return i;if((s&4)!==0&&(s|=n&16),i=e.entangledLanes,i!==0)for(e=e.entanglements,i&=s;0n;n++)i.push(e);return i}function Mo(e,i,n){e.pendingLanes|=i,i!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,i=31-xa(i),e[i]=n}function yf(e,i){var n=e.pendingLanes&~i;e.pendingLanes=i,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=i,e.mutableReadLanes&=i,e.entangledLanes&=i,i=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0=Qo),_d=" ",Dd=!1;function Fd(e,i){switch(e){case"keyup":return Uf.indexOf(i.keyCode)!==-1;case"keydown":return i.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Rd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ao=!1;function Gf(e,i){switch(e){case"compositionend":return Rd(i);case"keypress":return i.which!==32?null:(Dd=!0,_d);case"textInput":return e=i.data,e===_d&&Dd?null:e;default:return null}}function Qf(e,i){if(ao)return e==="compositionend"||!Bl&&Fd(e,i)?(e=jd(),Jr=ql=ln=null,ao=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(i.ctrlKey||i.altKey||i.metaKey)||i.ctrlKey&&i.altKey){if(i.char&&1=i)return{node:n,offset:i-e};e=s}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Hd(n)}}function Vd(e,i){return e&&i?e===i?!0:e&&e.nodeType===3?!1:i&&i.nodeType===3?Vd(e,i.parentNode):"contains"in e?e.contains(i):e.compareDocumentPosition?!!(e.compareDocumentPosition(i)&16):!1:!1}function Ud(){for(var e=window,i=Je();i instanceof e.HTMLIFrameElement;){try{var n=typeof i.contentWindow.location.href=="string"}catch{n=!1}if(n)e=i.contentWindow;else break;i=Je(e.document)}return i}function Fl(e){var i=e&&e.nodeName&&e.nodeName.toLowerCase();return i&&(i==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||i==="textarea"||e.contentEditable==="true")}function av(e){var i=Ud(),n=e.focusedElem,s=e.selectionRange;if(i!==n&&n&&n.ownerDocument&&Vd(n.ownerDocument.documentElement,n)){if(s!==null&&Fl(n)){if(i=s.start,e=s.end,e===void 0&&(e=i),"selectionStart"in n)n.selectionStart=i,n.selectionEnd=Math.min(e,n.value.length);else if(e=(i=n.ownerDocument||document)&&i.defaultView||window,e.getSelection){e=e.getSelection();var p=n.textContent.length,b=Math.min(s.start,p);s=s.end===void 0?b:Math.min(s.end,p),!e.extend&&b>s&&(p=s,s=b,b=p),p=Ld(n,b);var E=Ld(n,s);p&&E&&(e.rangeCount!==1||e.anchorNode!==p.node||e.anchorOffset!==p.offset||e.focusNode!==E.node||e.focusOffset!==E.offset)&&(i=i.createRange(),i.setStart(p.node,p.offset),e.removeAllRanges(),b>s?(e.addRange(i),e.extend(E.node,E.offset)):(i.setEnd(E.node,E.offset),e.addRange(i)))}}for(i=[],e=n;e=e.parentNode;)e.nodeType===1&&i.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,no=null,Rl=null,Zo=null,Tl=!1;function Wd(e,i,n){var s=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Tl||no==null||no!==Je(s)||(s=no,"selectionStart"in s&&Fl(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),Zo&&Yo(Zo,s)||(Zo=s,s=ts(Rl,"onSelect"),0lo||(e.current=Ql[lo],Ql[lo]=null,lo--)}function oi(e,i){lo++,Ql[lo]=e.current,e.current=i}var pn={},Hi=dn(pn),Zi=dn(!1),Bn=pn;function co(e,i){var n=e.type.contextTypes;if(!n)return pn;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===i)return s.__reactInternalMemoizedMaskedChildContext;var p={},b;for(b in n)p[b]=i[b];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=i,e.__reactInternalMemoizedMaskedChildContext=p),p}function Xi(e){return e=e.childContextTypes,e!=null}function ds(){li(Zi),li(Hi)}function sp(e,i,n){if(Hi.current!==pn)throw Error(o(168));oi(Hi,i),oi(Zi,n)}function tp(e,i,n){var s=e.stateNode;if(i=i.childContextTypes,typeof s.getChildContext!="function")return n;s=s.getChildContext();for(var p in s)if(!(p in i))throw Error(o(108,ge(e)||"Unknown",p));return ee({},n,s)}function ps(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||pn,Bn=Hi.current,oi(Hi,e),oi(Zi,Zi.current),!0}function lp(e,i,n){var s=e.stateNode;if(!s)throw Error(o(169));n?(e=tp(e,i,Bn),s.__reactInternalMemoizedMergedChildContext=e,li(Zi),li(Hi),oi(Hi,e)):li(Zi),oi(Zi,n)}var Ua=null,ms=!1,$l=!1;function cp(e){Ua===null?Ua=[e]:Ua.push(e)}function hv(e){ms=!0,cp(e)}function mn(){if(!$l&&Ua!==null){$l=!0;var e=0,i=Xe;try{var n=Ua;for(Xe=1;e>=E,p-=E,Wa=1<<32-xa(i)+p|n<De?(Di=Se,Se=null):Di=Se.sibling;var $e=se(Q,Se,Y[De],pe);if($e===null){Se===null&&(Se=Di);break}e&&Se&&$e.alternate===null&&i(Q,Se),U=b($e,U,De),Ee===null?Ce=$e:Ee.sibling=$e,Ee=$e,Se=Di}if(De===Y.length)return n(Q,Se),ui&&Dn(Q,De),Ce;if(Se===null){for(;DeDe?(Di=Se,Se=null):Di=Se.sibling;var xn=se(Q,Se,$e.value,pe);if(xn===null){Se===null&&(Se=Di);break}e&&Se&&xn.alternate===null&&i(Q,Se),U=b(xn,U,De),Ee===null?Ce=xn:Ee.sibling=xn,Ee=xn,Se=Di}if($e.done)return n(Q,Se),ui&&Dn(Q,De),Ce;if(Se===null){for(;!$e.done;De++,$e=Y.next())$e=ce(Q,$e.value,pe),$e!==null&&(U=b($e,U,De),Ee===null?Ce=$e:Ee.sibling=$e,Ee=$e);return ui&&Dn(Q,De),Ce}for(Se=s(Q,Se);!$e.done;De++,$e=Y.next())$e=be(Se,Q,De,$e.value,pe),$e!==null&&(e&&$e.alternate!==null&&Se.delete($e.key===null?De:$e.key),U=b($e,U,De),Ee===null?Ce=$e:Ee.sibling=$e,Ee=$e);return e&&Se.forEach(function($v){return i(Q,$v)}),ui&&Dn(Q,De),Ce}function fi(Q,U,Y,pe){if(typeof Y=="object"&&Y!==null&&Y.type===T&&Y.key===null&&(Y=Y.props.children),typeof Y=="object"&&Y!==null){switch(Y.$$typeof){case S:e:{for(var Ce=Y.key,Ee=U;Ee!==null;){if(Ee.key===Ce){if(Ce=Y.type,Ce===T){if(Ee.tag===7){n(Q,Ee.sibling),U=p(Ee,Y.props.children),U.return=Q,Q=U;break e}}else if(Ee.elementType===Ce||typeof Ce=="object"&&Ce!==null&&Ce.$$typeof===J&&gp(Ce)===Ee.type){n(Q,Ee.sibling),U=p(Ee,Y.props),U.ref=nr(Q,Ee,Y),U.return=Q,Q=U;break e}n(Q,Ee);break}else i(Q,Ee);Ee=Ee.sibling}Y.type===T?(U=On(Y.props.children,Q.mode,pe,Y.key),U.return=Q,Q=U):(pe=Hs(Y.type,Y.key,Y.props,null,Q.mode,pe),pe.ref=nr(Q,U,Y),pe.return=Q,Q=pe)}return E(Q);case D:e:{for(Ee=Y.key;U!==null;){if(U.key===Ee)if(U.tag===4&&U.stateNode.containerInfo===Y.containerInfo&&U.stateNode.implementation===Y.implementation){n(Q,U.sibling),U=p(U,Y.children||[]),U.return=Q,Q=U;break e}else{n(Q,U);break}else i(Q,U);U=U.sibling}U=Wc(Y,Q.mode,pe),U.return=Q,Q=U}return E(Q);case J:return Ee=Y._init,fi(Q,U,Ee(Y._payload),pe)}if(Ti(Y))return ve(Q,U,Y,pe);if(oe(Y))return qe(Q,U,Y,pe);bs(Q,Y)}return typeof Y=="string"&&Y!==""||typeof Y=="number"?(Y=""+Y,U!==null&&U.tag===6?(n(Q,U.sibling),U=p(U,Y),U.return=Q,Q=U):(n(Q,U),U=Uc(Y,Q.mode,pe),U.return=Q,Q=U),E(Q)):n(Q,U)}return fi}var ho=yp(!0),bp=yp(!1),fs=dn(null),vs=null,go=null,ec=null;function ic(){ec=go=vs=null}function ac(e){var i=fs.current;li(fs),e._currentValue=i}function nc(e,i,n){for(;e!==null;){var s=e.alternate;if((e.childLanes&i)!==i?(e.childLanes|=i,s!==null&&(s.childLanes|=i)):s!==null&&(s.childLanes&i)!==i&&(s.childLanes|=i),e===n)break;e=e.return}}function yo(e,i){vs=e,ec=go=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&i)!==0&&(Ji=!0),e.firstContext=null)}function ha(e){var i=e._currentValue;if(ec!==e)if(e={context:e,memoizedValue:i,next:null},go===null){if(vs===null)throw Error(o(308));go=e,vs.dependencies={lanes:0,firstContext:e}}else go=go.next=e;return i}var Fn=null;function oc(e){Fn===null?Fn=[e]:Fn.push(e)}function fp(e,i,n,s){var p=i.interleaved;return p===null?(n.next=n,oc(i)):(n.next=p.next,p.next=n),i.interleaved=n,Qa(e,s)}function Qa(e,i){e.lanes|=i;var n=e.alternate;for(n!==null&&(n.lanes|=i),n=e,e=e.return;e!==null;)e.childLanes|=i,n=e.alternate,n!==null&&(n.childLanes|=i),n=e,e=e.return;return n.tag===3?n.stateNode:null}var hn=!1;function rc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function vp(e,i){e=e.updateQueue,i.updateQueue===e&&(i.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function $a(e,i){return{eventTime:e,lane:i,tag:0,payload:null,callback:null,next:null}}function gn(e,i,n){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,(Qe&2)!==0){var p=s.pending;return p===null?i.next=i:(i.next=p.next,p.next=i),s.pending=i,Qa(e,n)}return p=s.interleaved,p===null?(i.next=i,oc(s)):(i.next=p.next,p.next=i),s.interleaved=i,Qa(e,n)}function ks(e,i,n){if(i=i.updateQueue,i!==null&&(i=i.shared,(n&4194240)!==0)){var s=i.lanes;s&=e.pendingLanes,n|=s,i.lanes=n,vl(e,n)}}function kp(e,i){var n=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,n===s)){var p=null,b=null;if(n=n.firstBaseUpdate,n!==null){do{var E={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};b===null?p=b=E:b=b.next=E,n=n.next}while(n!==null);b===null?p=b=i:b=b.next=i}else p=b=i;n={baseState:s.baseState,firstBaseUpdate:p,lastBaseUpdate:b,shared:s.shared,effects:s.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=i:e.next=i,n.lastBaseUpdate=i}function ws(e,i,n,s){var p=e.updateQueue;hn=!1;var b=p.firstBaseUpdate,E=p.lastBaseUpdate,P=p.shared.pending;if(P!==null){p.shared.pending=null;var M=P,X=M.next;M.next=null,E===null?b=X:E.next=X,E=M;var te=e.alternate;te!==null&&(te=te.updateQueue,P=te.lastBaseUpdate,P!==E&&(P===null?te.firstBaseUpdate=X:P.next=X,te.lastBaseUpdate=M))}if(b!==null){var ce=p.baseState;E=0,te=X=M=null,P=b;do{var se=P.lane,be=P.eventTime;if((s&se)===se){te!==null&&(te=te.next={eventTime:be,lane:0,tag:P.tag,payload:P.payload,callback:P.callback,next:null});e:{var ve=e,qe=P;switch(se=i,be=n,qe.tag){case 1:if(ve=qe.payload,typeof ve=="function"){ce=ve.call(be,ce,se);break e}ce=ve;break e;case 3:ve.flags=ve.flags&-65537|128;case 0:if(ve=qe.payload,se=typeof ve=="function"?ve.call(be,ce,se):ve,se==null)break e;ce=ee({},ce,se);break e;case 2:hn=!0}}P.callback!==null&&P.lane!==0&&(e.flags|=64,se=p.effects,se===null?p.effects=[P]:se.push(P))}else be={eventTime:be,lane:se,tag:P.tag,payload:P.payload,callback:P.callback,next:null},te===null?(X=te=be,M=ce):te=te.next=be,E|=se;if(P=P.next,P===null){if(P=p.shared.pending,P===null)break;se=P,P=se.next,se.next=null,p.lastBaseUpdate=se,p.shared.pending=null}}while(!0);if(te===null&&(M=ce),p.baseState=M,p.firstBaseUpdate=X,p.lastBaseUpdate=te,i=p.shared.interleaved,i!==null){p=i;do E|=p.lane,p=p.next;while(p!==i)}else b===null&&(p.shared.lanes=0);Pn|=E,e.lanes=E,e.memoizedState=ce}}function wp(e,i,n){if(e=i.effects,i.effects=null,e!==null)for(i=0;in?n:4,e(!0);var s=uc.transition;uc.transition={};try{e(!1),i()}finally{Xe=n,uc.transition=s}}function Op(){return ga().memoizedState}function fv(e,i,n){var s=vn(e);if(n={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null},Hp(e))Lp(i,n);else if(n=fp(e,i,n,s),n!==null){var p=Qi();Ea(n,e,s,p),Vp(n,i,s)}}function vv(e,i,n){var s=vn(e),p={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null};if(Hp(e))Lp(i,p);else{var b=e.alternate;if(e.lanes===0&&(b===null||b.lanes===0)&&(b=i.lastRenderedReducer,b!==null))try{var E=i.lastRenderedState,P=b(E,n);if(p.hasEagerState=!0,p.eagerState=P,za(P,E)){var M=i.interleaved;M===null?(p.next=p,oc(i)):(p.next=M.next,M.next=p),i.interleaved=p;return}}catch{}finally{}n=fp(e,i,p,s),n!==null&&(p=Qi(),Ea(n,e,s,p),Vp(n,i,s))}}function Hp(e){var i=e.alternate;return e===pi||i!==null&&i===pi}function Lp(e,i){tr=qs=!0;var n=e.pending;n===null?i.next=i:(i.next=n.next,n.next=i),e.pending=i}function Vp(e,i,n){if((n&4194240)!==0){var s=i.lanes;s&=e.pendingLanes,n|=s,i.lanes=n,vl(e,n)}}var Cs={readContext:ha,useCallback:Li,useContext:Li,useEffect:Li,useImperativeHandle:Li,useInsertionEffect:Li,useLayoutEffect:Li,useMemo:Li,useReducer:Li,useRef:Li,useState:Li,useDebugValue:Li,useDeferredValue:Li,useTransition:Li,useMutableSource:Li,useSyncExternalStore:Li,useId:Li,unstable_isNewReconciler:!1},kv={readContext:ha,useCallback:function(e,i){return Ta().memoizedState=[e,i===void 0?null:i],e},useContext:ha,useEffect:Dp,useImperativeHandle:function(e,i,n){return n=n!=null?n.concat([e]):null,js(4194308,4,Tp.bind(null,i,e),n)},useLayoutEffect:function(e,i){return js(4194308,4,e,i)},useInsertionEffect:function(e,i){return js(4,2,e,i)},useMemo:function(e,i){var n=Ta();return i=i===void 0?null:i,e=e(),n.memoizedState=[e,i],e},useReducer:function(e,i,n){var s=Ta();return i=n!==void 0?n(i):i,s.memoizedState=s.baseState=i,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},s.queue=e,e=e.dispatch=fv.bind(null,pi,e),[s.memoizedState,e]},useRef:function(e){var i=Ta();return e={current:e},i.memoizedState=e},useState:Bp,useDebugValue:bc,useDeferredValue:function(e){return Ta().memoizedState=e},useTransition:function(){var e=Bp(!1),i=e[0];return e=bv.bind(null,e[1]),Ta().memoizedState=e,[i,e]},useMutableSource:function(){},useSyncExternalStore:function(e,i,n){var s=pi,p=Ta();if(ui){if(n===void 0)throw Error(o(407));n=n()}else{if(n=i(),_i===null)throw Error(o(349));(Tn&30)!==0||jp(s,i,n)}p.memoizedState=n;var b={value:n,getSnapshot:i};return p.queue=b,Dp(Cp.bind(null,s,b,e),[e]),s.flags|=2048,ur(9,Ap.bind(null,s,b,n,i),void 0,null),n},useId:function(){var e=Ta(),i=_i.identifierPrefix;if(ui){var n=Ga,s=Wa;n=(s&~(1<<32-xa(s)-1)).toString(32)+n,i=":"+i+"R"+n,n=lr++,0")&&(M=M.replace("",e.displayName)),M}while(1<=E&&0<=P);break}}}finally{L=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?I(e):""}function ue(e){switch(e.tag){case 5:return I(e.type);case 16:return I("Lazy");case 13:return I("Suspense");case 19:return I("SuspenseList");case 0:case 2:case 15:return e=G(e.type,!1),e;case 11:return e=G(e.type.render,!1),e;case 1:return e=G(e.type,!0),e;default:return""}}function he(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case T:return"Fragment";case D:return"Portal";case O:return"Profiler";case F:return"StrictMode";case H:return"Suspense";case $:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case R:return(e.displayName||"Context")+".Consumer";case N:return(e._context.displayName||"Context")+".Provider";case V:var i=e.render;return e=e.displayName,e||(e=i.displayName||i.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ae:return i=e.displayName||null,i!==null?i:he(e.type)||"Memo";case J:i=e._payload,e=e._init;try{return he(e(i))}catch{}}return null}function ge(e){var i=e.type;switch(e.tag){case 24:return"Cache";case 9:return(i.displayName||"Context")+".Consumer";case 10:return(i._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=i.render,e=e.displayName||e.name||"",i.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return i;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return he(i);case 8:return i===F?"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 i=="function")return i.displayName||i.name||null;if(typeof i=="string")return i}return null}function re(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function le(e){var i=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(i==="checkbox"||i==="radio")}function je(e){var i=le(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,i),s=""+e[i];if(!e.hasOwnProperty(i)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var p=n.get,b=n.set;return Object.defineProperty(e,i,{configurable:!0,get:function(){return p.call(this)},set:function(E){s=""+E,b.call(this,E)}}),Object.defineProperty(e,i,{enumerable:n.enumerable}),{getValue:function(){return s},setValue:function(E){s=""+E},stopTracking:function(){e._valueTracker=null,delete e[i]}}}}function Te(e){e._valueTracker||(e._valueTracker=je(e))}function Xe(e){if(!e)return!1;var i=e._valueTracker;if(!i)return!0;var n=i.getValue(),s="";return e&&(s=le(e)?e.checked?"true":"false":e.value),e=s,e!==n?(i.setValue(e),!0):!1}function ai(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ue(e,i){var n=i.checked;return ee({},i,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function We(e,i){var n=i.defaultValue==null?"":i.defaultValue,s=i.checked!=null?i.checked:i.defaultChecked;n=re(i.value!=null?i.value:n),e._wrapperState={initialChecked:s,initialValue:n,controlled:i.type==="checkbox"||i.type==="radio"?i.checked!=null:i.value!=null}}function Le(e,i){i=i.checked,i!=null&&k(e,"checked",i,!1)}function Je(e,i){Le(e,i);var n=re(i.value),s=i.type;if(n!=null)s==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}i.hasOwnProperty("value")?ni(e,i.type,n):i.hasOwnProperty("defaultValue")&&ni(e,i.type,re(i.defaultValue)),i.checked==null&&i.defaultChecked!=null&&(e.defaultChecked=!!i.defaultChecked)}function $e(e,i,n){if(i.hasOwnProperty("value")||i.hasOwnProperty("defaultValue")){var s=i.type;if(!(s!=="submit"&&s!=="reset"||i.value!==void 0&&i.value!==null))return;i=""+e._wrapperState.initialValue,n||i===e.value||(e.value=i),e.defaultValue=i}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ni(e,i,n){(i!=="number"||ai(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var fi=Array.isArray;function ti(e,i,n,s){if(e=e.options,i){i={};for(var p=0;p"+i.valueOf().toString()+"",i=Ki.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;i.firstChild;)e.appendChild(i.firstChild)}});function ji(e,i){if(i){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=i;return}}e.textContent=i}var ui={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},Z=["Webkit","ms","Moz","O"];Object.keys(ui).forEach(function(e){Z.forEach(function(i){i=i+e.charAt(0).toUpperCase()+e.substring(1),ui[i]=ui[e]})});function de(e,i,n){return i==null||typeof i=="boolean"||i===""?"":n||typeof i!="number"||i===0||ui.hasOwnProperty(e)&&ui[e]?(""+i).trim():i+"px"}function ze(e,i){e=e.style;for(var n in i)if(i.hasOwnProperty(n)){var s=n.indexOf("--")===0,p=de(n,i[n],s);n==="float"&&(n="cssFloat"),s?e.setProperty(n,p):e[n]=p}}var K=ee({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 ne(e,i){if(i){if(K[e]&&(i.children!=null||i.dangerouslySetInnerHTML!=null))throw Error(o(137,e));if(i.dangerouslySetInnerHTML!=null){if(i.children!=null)throw Error(o(60));if(typeof i.dangerouslySetInnerHTML!="object"||!("__html"in i.dangerouslySetInnerHTML))throw Error(o(61))}if(i.style!=null&&typeof i.style!="object")throw Error(o(62))}}function ye(e,i){if(e.indexOf("-")===-1)return typeof i.is=="string";switch(e){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 De=null;function Be(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Pe=null,Fe=null,Re=null;function Ai(e){if(e=ar(e)){if(typeof Pe!="function")throw Error(o(280));var i=e.stateNode;i&&(i=us(i),Pe(e.stateNode,e.type,i))}}function Ae(e){Fe?Re?Re.push(e):Re=[e]:Fe=e}function Me(){if(Fe){var e=Fe,i=Re;if(Re=Fe=null,Ai(e),i)for(e=0;e>>=0,e===0?32:31-(df(e)/pf|0)|0}var Gr=64,Qr=4194304;function Io(e){switch(e&-e){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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function $r(e,i){var n=e.pendingLanes;if(n===0)return 0;var s=0,p=e.suspendedLanes,b=e.pingedLanes,E=n&268435455;if(E!==0){var P=E&~p;P!==0?s=Io(P):(b&=E,b!==0&&(s=Io(b)))}else E=n&~p,E!==0?s=Io(E):b!==0&&(s=Io(b));if(s===0)return 0;if(i!==0&&i!==s&&(i&p)===0&&(p=s&-s,b=i&-i,p>=b||p===16&&(b&4194240)!==0))return i;if((s&4)!==0&&(s|=n&16),i=e.entangledLanes,i!==0)for(e=e.entanglements,i&=s;0n;n++)i.push(e);return i}function Mo(e,i,n){e.pendingLanes|=i,i!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,i=31-xa(i),e[i]=n}function yf(e,i){var n=e.pendingLanes&~i;e.pendingLanes=i,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=i,e.mutableReadLanes&=i,e.entangledLanes&=i,i=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0=Qo),_d=" ",Dd=!1;function Fd(e,i){switch(e){case"keyup":return Uf.indexOf(i.keyCode)!==-1;case"keydown":return i.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Rd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ao=!1;function Gf(e,i){switch(e){case"compositionend":return Rd(i);case"keypress":return i.which!==32?null:(Dd=!0,_d);case"textInput":return e=i.data,e===_d&&Dd?null:e;default:return null}}function Qf(e,i){if(ao)return e==="compositionend"||!Bl&&Fd(e,i)?(e=jd(),Jr=ql=ln=null,ao=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(i.ctrlKey||i.altKey||i.metaKey)||i.ctrlKey&&i.altKey){if(i.char&&1=i)return{node:n,offset:i-e};e=s}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Hd(n)}}function Vd(e,i){return e&&i?e===i?!0:e&&e.nodeType===3?!1:i&&i.nodeType===3?Vd(e,i.parentNode):"contains"in e?e.contains(i):e.compareDocumentPosition?!!(e.compareDocumentPosition(i)&16):!1:!1}function Ud(){for(var e=window,i=ai();i instanceof e.HTMLIFrameElement;){try{var n=typeof i.contentWindow.location.href=="string"}catch{n=!1}if(n)e=i.contentWindow;else break;i=ai(e.document)}return i}function Fl(e){var i=e&&e.nodeName&&e.nodeName.toLowerCase();return i&&(i==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||i==="textarea"||e.contentEditable==="true")}function av(e){var i=Ud(),n=e.focusedElem,s=e.selectionRange;if(i!==n&&n&&n.ownerDocument&&Vd(n.ownerDocument.documentElement,n)){if(s!==null&&Fl(n)){if(i=s.start,e=s.end,e===void 0&&(e=i),"selectionStart"in n)n.selectionStart=i,n.selectionEnd=Math.min(e,n.value.length);else if(e=(i=n.ownerDocument||document)&&i.defaultView||window,e.getSelection){e=e.getSelection();var p=n.textContent.length,b=Math.min(s.start,p);s=s.end===void 0?b:Math.min(s.end,p),!e.extend&&b>s&&(p=s,s=b,b=p),p=Ld(n,b);var E=Ld(n,s);p&&E&&(e.rangeCount!==1||e.anchorNode!==p.node||e.anchorOffset!==p.offset||e.focusNode!==E.node||e.focusOffset!==E.offset)&&(i=i.createRange(),i.setStart(p.node,p.offset),e.removeAllRanges(),b>s?(e.addRange(i),e.extend(E.node,E.offset)):(i.setEnd(E.node,E.offset),e.addRange(i)))}}for(i=[],e=n;e=e.parentNode;)e.nodeType===1&&i.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,no=null,Rl=null,Zo=null,Tl=!1;function Wd(e,i,n){var s=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Tl||no==null||no!==ai(s)||(s=no,"selectionStart"in s&&Fl(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),Zo&&Yo(Zo,s)||(Zo=s,s=ts(Rl,"onSelect"),0lo||(e.current=Ql[lo],Ql[lo]=null,lo--)}function ri(e,i){lo++,Ql[lo]=e.current,e.current=i}var pn={},Hi=dn(pn),Zi=dn(!1),Bn=pn;function co(e,i){var n=e.type.contextTypes;if(!n)return pn;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===i)return s.__reactInternalMemoizedMaskedChildContext;var p={},b;for(b in n)p[b]=i[b];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=i,e.__reactInternalMemoizedMaskedChildContext=p),p}function Xi(e){return e=e.childContextTypes,e!=null}function ds(){ci(Zi),ci(Hi)}function sp(e,i,n){if(Hi.current!==pn)throw Error(o(168));ri(Hi,i),ri(Zi,n)}function tp(e,i,n){var s=e.stateNode;if(i=i.childContextTypes,typeof s.getChildContext!="function")return n;s=s.getChildContext();for(var p in s)if(!(p in i))throw Error(o(108,ge(e)||"Unknown",p));return ee({},n,s)}function ps(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||pn,Bn=Hi.current,ri(Hi,e),ri(Zi,Zi.current),!0}function lp(e,i,n){var s=e.stateNode;if(!s)throw Error(o(169));n?(e=tp(e,i,Bn),s.__reactInternalMemoizedMergedChildContext=e,ci(Zi),ci(Hi),ri(Hi,e)):ci(Zi),ri(Zi,n)}var Ua=null,ms=!1,$l=!1;function cp(e){Ua===null?Ua=[e]:Ua.push(e)}function hv(e){ms=!0,cp(e)}function mn(){if(!$l&&Ua!==null){$l=!0;var e=0,i=ei;try{var n=Ua;for(ei=1;e>=E,p-=E,Wa=1<<32-xa(i)+p|n<_e?(Fi=Se,Se=null):Fi=Se.sibling;var Ke=se(Q,Se,Y[_e],pe);if(Ke===null){Se===null&&(Se=Fi);break}e&&Se&&Ke.alternate===null&&i(Q,Se),U=b(Ke,U,_e),Ee===null?Ce=Ke:Ee.sibling=Ke,Ee=Ke,Se=Fi}if(_e===Y.length)return n(Q,Se),di&&Dn(Q,_e),Ce;if(Se===null){for(;_e_e?(Fi=Se,Se=null):Fi=Se.sibling;var xn=se(Q,Se,Ke.value,pe);if(xn===null){Se===null&&(Se=Fi);break}e&&Se&&xn.alternate===null&&i(Q,Se),U=b(xn,U,_e),Ee===null?Ce=xn:Ee.sibling=xn,Ee=xn,Se=Fi}if(Ke.done)return n(Q,Se),di&&Dn(Q,_e),Ce;if(Se===null){for(;!Ke.done;_e++,Ke=Y.next())Ke=ce(Q,Ke.value,pe),Ke!==null&&(U=b(Ke,U,_e),Ee===null?Ce=Ke:Ee.sibling=Ke,Ee=Ke);return di&&Dn(Q,_e),Ce}for(Se=s(Q,Se);!Ke.done;_e++,Ke=Y.next())Ke=be(Se,Q,_e,Ke.value,pe),Ke!==null&&(e&&Ke.alternate!==null&&Se.delete(Ke.key===null?_e:Ke.key),U=b(Ke,U,_e),Ee===null?Ce=Ke:Ee.sibling=Ke,Ee=Ke);return e&&Se.forEach(function($v){return i(Q,$v)}),di&&Dn(Q,_e),Ce}function ki(Q,U,Y,pe){if(typeof Y=="object"&&Y!==null&&Y.type===T&&Y.key===null&&(Y=Y.props.children),typeof Y=="object"&&Y!==null){switch(Y.$$typeof){case S:e:{for(var Ce=Y.key,Ee=U;Ee!==null;){if(Ee.key===Ce){if(Ce=Y.type,Ce===T){if(Ee.tag===7){n(Q,Ee.sibling),U=p(Ee,Y.props.children),U.return=Q,Q=U;break e}}else if(Ee.elementType===Ce||typeof Ce=="object"&&Ce!==null&&Ce.$$typeof===J&&gp(Ce)===Ee.type){n(Q,Ee.sibling),U=p(Ee,Y.props),U.ref=nr(Q,Ee,Y),U.return=Q,Q=U;break e}n(Q,Ee);break}else i(Q,Ee);Ee=Ee.sibling}Y.type===T?(U=On(Y.props.children,Q.mode,pe,Y.key),U.return=Q,Q=U):(pe=Hs(Y.type,Y.key,Y.props,null,Q.mode,pe),pe.ref=nr(Q,U,Y),pe.return=Q,Q=pe)}return E(Q);case D:e:{for(Ee=Y.key;U!==null;){if(U.key===Ee)if(U.tag===4&&U.stateNode.containerInfo===Y.containerInfo&&U.stateNode.implementation===Y.implementation){n(Q,U.sibling),U=p(U,Y.children||[]),U.return=Q,Q=U;break e}else{n(Q,U);break}else i(Q,U);U=U.sibling}U=Wc(Y,Q.mode,pe),U.return=Q,Q=U}return E(Q);case J:return Ee=Y._init,ki(Q,U,Ee(Y._payload),pe)}if(fi(Y))return ve(Q,U,Y,pe);if(oe(Y))return qe(Q,U,Y,pe);bs(Q,Y)}return typeof Y=="string"&&Y!==""||typeof Y=="number"?(Y=""+Y,U!==null&&U.tag===6?(n(Q,U.sibling),U=p(U,Y),U.return=Q,Q=U):(n(Q,U),U=Uc(Y,Q.mode,pe),U.return=Q,Q=U),E(Q)):n(Q,U)}return ki}var ho=yp(!0),bp=yp(!1),fs=dn(null),vs=null,go=null,ec=null;function ic(){ec=go=vs=null}function ac(e){var i=fs.current;ci(fs),e._currentValue=i}function nc(e,i,n){for(;e!==null;){var s=e.alternate;if((e.childLanes&i)!==i?(e.childLanes|=i,s!==null&&(s.childLanes|=i)):s!==null&&(s.childLanes&i)!==i&&(s.childLanes|=i),e===n)break;e=e.return}}function yo(e,i){vs=e,ec=go=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&i)!==0&&(Ji=!0),e.firstContext=null)}function ha(e){var i=e._currentValue;if(ec!==e)if(e={context:e,memoizedValue:i,next:null},go===null){if(vs===null)throw Error(o(308));go=e,vs.dependencies={lanes:0,firstContext:e}}else go=go.next=e;return i}var Fn=null;function oc(e){Fn===null?Fn=[e]:Fn.push(e)}function fp(e,i,n,s){var p=i.interleaved;return p===null?(n.next=n,oc(i)):(n.next=p.next,p.next=n),i.interleaved=n,Qa(e,s)}function Qa(e,i){e.lanes|=i;var n=e.alternate;for(n!==null&&(n.lanes|=i),n=e,e=e.return;e!==null;)e.childLanes|=i,n=e.alternate,n!==null&&(n.childLanes|=i),n=e,e=e.return;return n.tag===3?n.stateNode:null}var hn=!1;function rc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function vp(e,i){e=e.updateQueue,i.updateQueue===e&&(i.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function $a(e,i){return{eventTime:e,lane:i,tag:0,payload:null,callback:null,next:null}}function gn(e,i,n){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,(Qe&2)!==0){var p=s.pending;return p===null?i.next=i:(i.next=p.next,p.next=i),s.pending=i,Qa(e,n)}return p=s.interleaved,p===null?(i.next=i,oc(s)):(i.next=p.next,p.next=i),s.interleaved=i,Qa(e,n)}function ks(e,i,n){if(i=i.updateQueue,i!==null&&(i=i.shared,(n&4194240)!==0)){var s=i.lanes;s&=e.pendingLanes,n|=s,i.lanes=n,vl(e,n)}}function kp(e,i){var n=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,n===s)){var p=null,b=null;if(n=n.firstBaseUpdate,n!==null){do{var E={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};b===null?p=b=E:b=b.next=E,n=n.next}while(n!==null);b===null?p=b=i:b=b.next=i}else p=b=i;n={baseState:s.baseState,firstBaseUpdate:p,lastBaseUpdate:b,shared:s.shared,effects:s.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=i:e.next=i,n.lastBaseUpdate=i}function ws(e,i,n,s){var p=e.updateQueue;hn=!1;var b=p.firstBaseUpdate,E=p.lastBaseUpdate,P=p.shared.pending;if(P!==null){p.shared.pending=null;var M=P,X=M.next;M.next=null,E===null?b=X:E.next=X,E=M;var te=e.alternate;te!==null&&(te=te.updateQueue,P=te.lastBaseUpdate,P!==E&&(P===null?te.firstBaseUpdate=X:P.next=X,te.lastBaseUpdate=M))}if(b!==null){var ce=p.baseState;E=0,te=X=M=null,P=b;do{var se=P.lane,be=P.eventTime;if((s&se)===se){te!==null&&(te=te.next={eventTime:be,lane:0,tag:P.tag,payload:P.payload,callback:P.callback,next:null});e:{var ve=e,qe=P;switch(se=i,be=n,qe.tag){case 1:if(ve=qe.payload,typeof ve=="function"){ce=ve.call(be,ce,se);break e}ce=ve;break e;case 3:ve.flags=ve.flags&-65537|128;case 0:if(ve=qe.payload,se=typeof ve=="function"?ve.call(be,ce,se):ve,se==null)break e;ce=ee({},ce,se);break e;case 2:hn=!0}}P.callback!==null&&P.lane!==0&&(e.flags|=64,se=p.effects,se===null?p.effects=[P]:se.push(P))}else be={eventTime:be,lane:se,tag:P.tag,payload:P.payload,callback:P.callback,next:null},te===null?(X=te=be,M=ce):te=te.next=be,E|=se;if(P=P.next,P===null){if(P=p.shared.pending,P===null)break;se=P,P=se.next,se.next=null,p.lastBaseUpdate=se,p.shared.pending=null}}while(!0);if(te===null&&(M=ce),p.baseState=M,p.firstBaseUpdate=X,p.lastBaseUpdate=te,i=p.shared.interleaved,i!==null){p=i;do E|=p.lane,p=p.next;while(p!==i)}else b===null&&(p.shared.lanes=0);Pn|=E,e.lanes=E,e.memoizedState=ce}}function wp(e,i,n){if(e=i.effects,i.effects=null,e!==null)for(i=0;in?n:4,e(!0);var s=uc.transition;uc.transition={};try{e(!1),i()}finally{ei=n,uc.transition=s}}function Op(){return ga().memoizedState}function fv(e,i,n){var s=vn(e);if(n={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null},Hp(e))Lp(i,n);else if(n=fp(e,i,n,s),n!==null){var p=Qi();Ea(n,e,s,p),Vp(n,i,s)}}function vv(e,i,n){var s=vn(e),p={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null};if(Hp(e))Lp(i,p);else{var b=e.alternate;if(e.lanes===0&&(b===null||b.lanes===0)&&(b=i.lastRenderedReducer,b!==null))try{var E=i.lastRenderedState,P=b(E,n);if(p.hasEagerState=!0,p.eagerState=P,za(P,E)){var M=i.interleaved;M===null?(p.next=p,oc(i)):(p.next=M.next,M.next=p),i.interleaved=p;return}}catch{}finally{}n=fp(e,i,p,s),n!==null&&(p=Qi(),Ea(n,e,s,p),Vp(n,i,s))}}function Hp(e){var i=e.alternate;return e===mi||i!==null&&i===mi}function Lp(e,i){tr=qs=!0;var n=e.pending;n===null?i.next=i:(i.next=n.next,n.next=i),e.pending=i}function Vp(e,i,n){if((n&4194240)!==0){var s=i.lanes;s&=e.pendingLanes,n|=s,i.lanes=n,vl(e,n)}}var Cs={readContext:ha,useCallback:Li,useContext:Li,useEffect:Li,useImperativeHandle:Li,useInsertionEffect:Li,useLayoutEffect:Li,useMemo:Li,useReducer:Li,useRef:Li,useState:Li,useDebugValue:Li,useDeferredValue:Li,useTransition:Li,useMutableSource:Li,useSyncExternalStore:Li,useId:Li,unstable_isNewReconciler:!1},kv={readContext:ha,useCallback:function(e,i){return Ta().memoizedState=[e,i===void 0?null:i],e},useContext:ha,useEffect:Dp,useImperativeHandle:function(e,i,n){return n=n!=null?n.concat([e]):null,js(4194308,4,Tp.bind(null,i,e),n)},useLayoutEffect:function(e,i){return js(4194308,4,e,i)},useInsertionEffect:function(e,i){return js(4,2,e,i)},useMemo:function(e,i){var n=Ta();return i=i===void 0?null:i,e=e(),n.memoizedState=[e,i],e},useReducer:function(e,i,n){var s=Ta();return i=n!==void 0?n(i):i,s.memoizedState=s.baseState=i,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},s.queue=e,e=e.dispatch=fv.bind(null,mi,e),[s.memoizedState,e]},useRef:function(e){var i=Ta();return e={current:e},i.memoizedState=e},useState:Bp,useDebugValue:bc,useDeferredValue:function(e){return Ta().memoizedState=e},useTransition:function(){var e=Bp(!1),i=e[0];return e=bv.bind(null,e[1]),Ta().memoizedState=e,[i,e]},useMutableSource:function(){},useSyncExternalStore:function(e,i,n){var s=mi,p=Ta();if(di){if(n===void 0)throw Error(o(407));n=n()}else{if(n=i(),Di===null)throw Error(o(349));(Tn&30)!==0||jp(s,i,n)}p.memoizedState=n;var b={value:n,getSnapshot:i};return p.queue=b,Dp(Cp.bind(null,s,b,e),[e]),s.flags|=2048,ur(9,Ap.bind(null,s,b,n,i),void 0,null),n},useId:function(){var e=Ta(),i=Di.identifierPrefix;if(di){var n=Ga,s=Wa;n=(s&~(1<<32-xa(s)-1)).toString(32)+n,i=":"+i+"R"+n,n=lr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=E.createElement(n,{is:s.is}):(e=E.createElement(n),n==="select"&&(E=e,s.multiple?E.multiple=!0:s.size&&(E.size=s.size))):e=E.createElementNS(e,n),e[Fa]=i,e[ir]=s,cm(e,i,!1,!1),i.stateNode=e;e:{switch(E=ye(n,s),n){case"dialog":ti("cancel",e),ti("close",e),p=s;break;case"iframe":case"object":case"embed":ti("load",e),p=s;break;case"video":case"audio":for(p=0;pwo&&(i.flags|=128,s=!0,dr(b,!1),i.lanes=4194304)}else{if(!s)if(e=xs(E),e!==null){if(i.flags|=128,s=!0,n=e.updateQueue,n!==null&&(i.updateQueue=n,i.flags|=4),dr(b,!0),b.tail===null&&b.tailMode==="hidden"&&!E.alternate&&!ui)return Vi(i),null}else 2*bi()-b.renderingStartTime>wo&&n!==1073741824&&(i.flags|=128,s=!0,dr(b,!1),i.lanes=4194304);b.isBackwards?(E.sibling=i.child,i.child=E):(n=b.last,n!==null?n.sibling=E:i.child=E,b.last=E)}return b.tail!==null?(i=b.tail,b.rendering=i,b.tail=i.sibling,b.renderingStartTime=bi(),i.sibling=null,n=di.current,oi(di,s?n&1|2:n&1),i):(Vi(i),null);case 22:case 23:return Hc(),s=i.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(i.flags|=8192),s&&(i.mode&1)!==0?(la&1073741824)!==0&&(Vi(i),i.subtreeFlags&6&&(i.flags|=8192)):Vi(i),null;case 24:return null;case 25:return null}throw Error(o(156,i.tag))}function Ev(e,i){switch(Yl(i),i.tag){case 1:return Xi(i.type)&&ds(),e=i.flags,e&65536?(i.flags=e&-65537|128,i):null;case 3:return bo(),li(Zi),li(Hi),cc(),e=i.flags,(e&65536)!==0&&(e&128)===0?(i.flags=e&-65537|128,i):null;case 5:return tc(i),null;case 13:if(li(di),e=i.memoizedState,e!==null&&e.dehydrated!==null){if(i.alternate===null)throw Error(o(340));mo()}return e=i.flags,e&65536?(i.flags=e&-65537|128,i):null;case 19:return li(di),null;case 4:return bo(),null;case 10:return ac(i.type._context),null;case 22:case 23:return Hc(),null;case 24:return null;default:return null}}var _s=!1,Ui=!1,Sv=typeof WeakSet=="function"?WeakSet:Set,fe=null;function vo(e,i){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(s){yi(e,i,s)}else n.current=null}function Sc(e,i,n){try{n()}catch(s){yi(e,i,s)}}var pm=!1;function Bv(e,i){if(Hl=Zr,e=Ud(),Fl(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var s=n.getSelection&&n.getSelection();if(s&&s.rangeCount!==0){n=s.anchorNode;var p=s.anchorOffset,b=s.focusNode;s=s.focusOffset;try{n.nodeType,b.nodeType}catch{n=null;break e}var E=0,P=-1,M=-1,X=0,te=0,ce=e,se=null;i:for(;;){for(var be;ce!==n||p!==0&&ce.nodeType!==3||(P=E+p),ce!==b||s!==0&&ce.nodeType!==3||(M=E+s),ce.nodeType===3&&(E+=ce.nodeValue.length),(be=ce.firstChild)!==null;)se=ce,ce=be;for(;;){if(ce===e)break i;if(se===n&&++X===p&&(P=E),se===b&&++te===s&&(M=E),(be=ce.nextSibling)!==null)break;ce=se,se=ce.parentNode}ce=be}n=P===-1||M===-1?null:{start:P,end:M}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ll={focusedElem:e,selectionRange:n},Zr=!1,fe=i;fe!==null;)if(i=fe,e=i.child,(i.subtreeFlags&1028)!==0&&e!==null)e.return=i,fe=e;else for(;fe!==null;){i=fe;try{var ve=i.alternate;if((i.flags&1024)!==0)switch(i.tag){case 0:case 11:case 15:break;case 1:if(ve!==null){var qe=ve.memoizedProps,fi=ve.memoizedState,Q=i.stateNode,U=Q.getSnapshotBeforeUpdate(i.elementType===i.type?qe:ja(i.type,qe),fi);Q.__reactInternalSnapshotBeforeUpdate=U}break;case 3:var Y=i.stateNode.containerInfo;Y.nodeType===1?Y.textContent="":Y.nodeType===9&&Y.documentElement&&Y.removeChild(Y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(pe){yi(i,i.return,pe)}if(e=i.sibling,e!==null){e.return=i.return,fe=e;break}fe=i.return}return ve=pm,pm=!1,ve}function pr(e,i,n){var s=i.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var p=s=s.next;do{if((p.tag&e)===e){var b=p.destroy;p.destroy=void 0,b!==void 0&&Sc(i,n,b)}p=p.next}while(p!==s)}}function Ds(e,i){if(i=i.updateQueue,i=i!==null?i.lastEffect:null,i!==null){var n=i=i.next;do{if((n.tag&e)===e){var s=n.create;n.destroy=s()}n=n.next}while(n!==i)}}function Bc(e){var i=e.ref;if(i!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof i=="function"?i(e):i.current=e}}function mm(e){var i=e.alternate;i!==null&&(e.alternate=null,mm(i)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(i=e.stateNode,i!==null&&(delete i[Fa],delete i[ir],delete i[Gl],delete i[pv],delete i[mv])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function hm(e){return e.tag===5||e.tag===3||e.tag===4}function gm(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||hm(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function _c(e,i,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,i?n.nodeType===8?n.parentNode.insertBefore(e,i):n.insertBefore(e,i):(n.nodeType===8?(i=n.parentNode,i.insertBefore(e,n)):(i=n,i.appendChild(e)),n=n._reactRootContainer,n!=null||i.onclick!==null||(i.onclick=cs));else if(s!==4&&(e=e.child,e!==null))for(_c(e,i,n),e=e.sibling;e!==null;)_c(e,i,n),e=e.sibling}function Dc(e,i,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,i?n.insertBefore(e,i):n.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(Dc(e,i,n),e=e.sibling;e!==null;)Dc(e,i,n),e=e.sibling}var Pi=null,Aa=!1;function yn(e,i,n){for(n=n.child;n!==null;)ym(e,i,n),n=n.sibling}function ym(e,i,n){if(Da&&typeof Da.onCommitFiberUnmount=="function")try{Da.onCommitFiberUnmount(Wr,n)}catch{}switch(n.tag){case 5:Ui||vo(n,i);case 6:var s=Pi,p=Aa;Pi=null,yn(e,i,n),Pi=s,Aa=p,Pi!==null&&(Aa?(e=Pi,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Pi.removeChild(n.stateNode));break;case 18:Pi!==null&&(Aa?(e=Pi,n=n.stateNode,e.nodeType===8?Wl(e.parentNode,n):e.nodeType===1&&Wl(e,n),Uo(e)):Wl(Pi,n.stateNode));break;case 4:s=Pi,p=Aa,Pi=n.stateNode.containerInfo,Aa=!0,yn(e,i,n),Pi=s,Aa=p;break;case 0:case 11:case 14:case 15:if(!Ui&&(s=n.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){p=s=s.next;do{var b=p,E=b.destroy;b=b.tag,E!==void 0&&((b&2)!==0||(b&4)!==0)&&Sc(n,i,E),p=p.next}while(p!==s)}yn(e,i,n);break;case 1:if(!Ui&&(vo(n,i),s=n.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=n.memoizedProps,s.state=n.memoizedState,s.componentWillUnmount()}catch(P){yi(n,i,P)}yn(e,i,n);break;case 21:yn(e,i,n);break;case 22:n.mode&1?(Ui=(s=Ui)||n.memoizedState!==null,yn(e,i,n),Ui=s):yn(e,i,n);break;default:yn(e,i,n)}}function bm(e){var i=e.updateQueue;if(i!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Sv),i.forEach(function(s){var p=Mv.bind(null,e,s);n.has(s)||(n.add(s),s.then(p,p))})}}function Ca(e,i){var n=i.deletions;if(n!==null)for(var s=0;sp&&(p=E),s&=~b}if(s=p,s=bi()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*Dv(s/1960))-s,10e?16:e,fn===null)var s=!1;else{if(e=fn,fn=null,Ns=0,(Qe&6)!==0)throw Error(o(331));var p=Qe;for(Qe|=4,fe=e.current;fe!==null;){var b=fe,E=b.child;if((fe.flags&16)!==0){var P=b.deletions;if(P!==null){for(var M=0;Mbi()-Tc?In(e,0):Rc|=n),ia(e,i)}function Bm(e,i){i===0&&((e.mode&1)===0?i=1:(i=Qr,Qr<<=1,(Qr&130023424)===0&&(Qr=4194304)));var n=Qi();e=Qa(e,i),e!==null&&(Mo(e,i,n),ia(e,n))}function Iv(e){var i=e.memoizedState,n=0;i!==null&&(n=i.retryLane),Bm(e,n)}function Mv(e,i){var n=0;switch(e.tag){case 13:var s=e.stateNode,p=e.memoizedState;p!==null&&(n=p.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(o(314))}s!==null&&s.delete(i),Bm(e,n)}var _m;_m=function(e,i,n){if(e!==null)if(e.memoizedProps!==i.pendingProps||Zi.current)Ji=!0;else{if((e.lanes&n)===0&&(i.flags&128)===0)return Ji=!1,Av(e,i,n);Ji=(e.flags&131072)!==0}else Ji=!1,ui&&(i.flags&1048576)!==0&&up(i,gs,i.index);switch(i.lanes=0,i.tag){case 2:var s=i.type;Bs(e,i),e=i.pendingProps;var p=co(i,Hi.current);yo(i,n),p=pc(null,i,s,e,p,n);var b=mc();return i.flags|=1,typeof p=="object"&&p!==null&&typeof p.render=="function"&&p.$$typeof===void 0?(i.tag=1,i.memoizedState=null,i.updateQueue=null,Xi(s)?(b=!0,ps(i)):b=!1,i.memoizedState=p.state!==null&&p.state!==void 0?p.state:null,rc(i),p.updater=Es,i.stateNode=p,p._reactInternals=i,vc(i,s,e,n),i=zc(null,i,s,!0,b,n)):(i.tag=0,ui&&b&&Kl(i),Gi(null,i,p,n),i=i.child),i;case 16:s=i.elementType;e:{switch(Bs(e,i),e=i.pendingProps,p=s._init,s=p(s._payload),i.type=s,p=i.tag=Hv(s),e=ja(s,e),p){case 0:i=xc(null,i,s,e,n);break e;case 1:i=nm(null,i,s,e,n);break e;case 11:i=Xp(null,i,s,e,n);break e;case 14:i=Jp(null,i,s,ja(s.type,e),n);break e}throw Error(o(306,s,""))}return i;case 0:return s=i.type,p=i.pendingProps,p=i.elementType===s?p:ja(s,p),xc(e,i,s,p,n);case 1:return s=i.type,p=i.pendingProps,p=i.elementType===s?p:ja(s,p),nm(e,i,s,p,n);case 3:e:{if(om(i),e===null)throw Error(o(387));s=i.pendingProps,b=i.memoizedState,p=b.element,vp(e,i),ws(i,s,null,n);var E=i.memoizedState;if(s=E.element,b.isDehydrated)if(b={element:s,isDehydrated:!1,cache:E.cache,pendingSuspenseBoundaries:E.pendingSuspenseBoundaries,transitions:E.transitions},i.updateQueue.baseState=b,i.memoizedState=b,i.flags&256){p=fo(Error(o(423)),i),i=rm(e,i,s,n,p);break e}else if(s!==p){p=fo(Error(o(424)),i),i=rm(e,i,s,n,p);break e}else for(ta=un(i.stateNode.containerInfo.firstChild),sa=i,ui=!0,qa=null,n=bp(i,null,s,n),i.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(mo(),s===p){i=Ka(e,i,n);break e}Gi(e,i,s,n)}i=i.child}return i;case 5:return xp(i),e===null&&Xl(i),s=i.type,p=i.pendingProps,b=e!==null?e.memoizedProps:null,E=p.children,Vl(s,p)?E=null:b!==null&&Vl(s,b)&&(i.flags|=32),am(e,i),Gi(e,i,E,n),i.child;case 6:return e===null&&Xl(i),null;case 13:return sm(e,i,n);case 4:return sc(i,i.stateNode.containerInfo),s=i.pendingProps,e===null?i.child=ho(i,null,s,n):Gi(e,i,s,n),i.child;case 11:return s=i.type,p=i.pendingProps,p=i.elementType===s?p:ja(s,p),Xp(e,i,s,p,n);case 7:return Gi(e,i,i.pendingProps,n),i.child;case 8:return Gi(e,i,i.pendingProps.children,n),i.child;case 12:return Gi(e,i,i.pendingProps.children,n),i.child;case 10:e:{if(s=i.type._context,p=i.pendingProps,b=i.memoizedProps,E=p.value,oi(fs,s._currentValue),s._currentValue=E,b!==null)if(za(b.value,E)){if(b.children===p.children&&!Zi.current){i=Ka(e,i,n);break e}}else for(b=i.child,b!==null&&(b.return=i);b!==null;){var P=b.dependencies;if(P!==null){E=b.child;for(var M=P.firstContext;M!==null;){if(M.context===s){if(b.tag===1){M=$a(-1,n&-n),M.tag=2;var X=b.updateQueue;if(X!==null){X=X.shared;var te=X.pending;te===null?M.next=M:(M.next=te.next,te.next=M),X.pending=M}}b.lanes|=n,M=b.alternate,M!==null&&(M.lanes|=n),nc(b.return,n,i),P.lanes|=n;break}M=M.next}}else if(b.tag===10)E=b.type===i.type?null:b.child;else if(b.tag===18){if(E=b.return,E===null)throw Error(o(341));E.lanes|=n,P=E.alternate,P!==null&&(P.lanes|=n),nc(E,n,i),E=b.sibling}else E=b.child;if(E!==null)E.return=b;else for(E=b;E!==null;){if(E===i){E=null;break}if(b=E.sibling,b!==null){b.return=E.return,E=b;break}E=E.return}b=E}Gi(e,i,p.children,n),i=i.child}return i;case 9:return p=i.type,s=i.pendingProps.children,yo(i,n),p=ha(p),s=s(p),i.flags|=1,Gi(e,i,s,n),i.child;case 14:return s=i.type,p=ja(s,i.pendingProps),p=ja(s.type,p),Jp(e,i,s,p,n);case 15:return em(e,i,i.type,i.pendingProps,n);case 17:return s=i.type,p=i.pendingProps,p=i.elementType===s?p:ja(s,p),Bs(e,i),i.tag=1,Xi(s)?(e=!0,ps(i)):e=!1,yo(i,n),Wp(i,s,p),vc(i,s,p,n),zc(null,i,s,!0,e,n);case 19:return lm(e,i,n);case 22:return im(e,i,n)}throw Error(o(156,i.tag))};function Dm(e,i){return dd(e,i)}function Ov(e,i,n,s){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=i,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ba(e,i,n,s){return new Ov(e,i,n,s)}function Vc(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Hv(e){if(typeof e=="function")return Vc(e)?1:0;if(e!=null){if(e=e.$$typeof,e===V)return 11;if(e===ae)return 14}return 2}function wn(e,i){var n=e.alternate;return n===null?(n=ba(e.tag,i,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=i,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,i=e.dependencies,n.dependencies=i===null?null:{lanes:i.lanes,firstContext:i.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Hs(e,i,n,s,p,b){var E=2;if(s=e,typeof e=="function")Vc(e)&&(E=1);else if(typeof e=="string")E=5;else e:switch(e){case T:return On(n.children,p,b,i);case F:E=8,p|=8;break;case O:return e=ba(12,n,i,p|2),e.elementType=O,e.lanes=b,e;case H:return e=ba(13,n,i,p),e.elementType=H,e.lanes=b,e;case $:return e=ba(19,n,i,p),e.elementType=$,e.lanes=b,e;case ie:return Ls(n,p,b,i);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case N:E=10;break e;case R:E=9;break e;case V:E=11;break e;case ae:E=14;break e;case J:E=16,s=null;break e}throw Error(o(130,e==null?e:typeof e,""))}return i=ba(E,n,i,p),i.elementType=e,i.type=s,i.lanes=b,i}function On(e,i,n,s){return e=ba(7,e,s,i),e.lanes=n,e}function Ls(e,i,n,s){return e=ba(22,e,s,i),e.elementType=ie,e.lanes=n,e.stateNode={isHidden:!1},e}function Uc(e,i,n){return e=ba(6,e,null,i),e.lanes=n,e}function Wc(e,i,n){return i=ba(4,e.children!==null?e.children:[],e.key,i),i.lanes=n,i.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},i}function Lv(e,i,n,s,p){this.tag=i,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=fl(0),this.expirationTimes=fl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=fl(0),this.identifierPrefix=s,this.onRecoverableError=p,this.mutableSourceEagerHydrationData=null}function Gc(e,i,n,s,p,b,E,P,M){return e=new Lv(e,i,n,P,M),i===1?(i=1,b===!0&&(i|=8)):i=0,b=ba(3,null,null,i),e.current=b,b.stateNode=e,b.memoizedState={element:s,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},rc(b),e}function Vv(e,i,n){var s=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(r){console.error(r)}}return a(),Jc.exports=nk(),Jc.exports}var Gm;function ok(){if(Gm)return Ks;Gm=1;var a=Vg();return Ks.createRoot=a.createRoot,Ks.hydrateRoot=a.hydrateRoot,Ks}var rk=ok();const sk="/api";async function ri(a,r){const o=await fetch(`${sk}${a}`,{...r,headers:{"Content-Type":"application/json",...r==null?void 0:r.headers}});if(!o.ok){const t=await o.text();throw new Error(t||o.statusText)}return o.json()}const ii={getHealth:()=>ri("/health"),getRadioConfig:()=>ri("/radio/config"),updateRadioConfig:a=>ri("/radio/config",{method:"PATCH",body:JSON.stringify(a)}),setPrivateKey:a=>ri("/radio/private-key",{method:"PUT",body:JSON.stringify({private_key:a})}),sendAdvertisement:(a=!0)=>ri(`/radio/advertise?flood=${a}`,{method:"POST"}),rebootRadio:()=>ri("/radio/reboot",{method:"POST"}),reconnectRadio:()=>ri("/radio/reconnect",{method:"POST"}),getContacts:(a=100,r=0)=>ri(`/contacts?limit=${a}&offset=${r}`),getContact:a=>ri(`/contacts/${a}`),syncContacts:()=>ri("/contacts/sync",{method:"POST"}),addContactToRadio:a=>ri(`/contacts/${a}/add-to-radio`,{method:"POST"}),removeContactFromRadio:a=>ri(`/contacts/${a}/remove-from-radio`,{method:"POST"}),deleteContact:a=>ri(`/contacts/${a}`,{method:"DELETE"}),getChannels:()=>ri("/channels"),getChannel:a=>ri(`/channels/${a}`),createChannel:(a,r)=>ri("/channels",{method:"POST",body:JSON.stringify({name:a,key:r})}),syncChannels:()=>ri("/channels/sync",{method:"POST"}),deleteChannel:a=>ri(`/channels/${a}`,{method:"DELETE"}),getMessages:a=>{const r=new URLSearchParams;a!=null&&a.limit&&r.set("limit",a.limit.toString()),a!=null&&a.offset&&r.set("offset",a.offset.toString()),a!=null&&a.type&&r.set("type",a.type),a!=null&&a.conversation_key&&r.set("conversation_key",a.conversation_key);const o=r.toString();return ri(`/messages${o?`?${o}`:""}`)},getMessagesBulk:(a,r=100)=>ri(`/messages/bulk?limit_per_conversation=${r}`,{method:"POST",body:JSON.stringify(a)}),sendDirectMessage:(a,r)=>ri("/messages/direct",{method:"POST",body:JSON.stringify({destination:a,text:r})}),sendChannelMessage:(a,r)=>ri("/messages/channel",{method:"POST",body:JSON.stringify({channel_key:a,text:r})}),getUndecryptedPacketCount:()=>ri("/packets/undecrypted/count"),decryptHistoricalPackets:a=>ri("/packets/decrypt/historical",{method:"POST",body:JSON.stringify(a)}),getSettings:()=>ri("/settings"),updateSettings:a=>ri("/settings",{method:"PATCH",body:JSON.stringify(a)})};function tk(a){const r=B.useRef(null),o=B.useRef(null),[t,u]=B.useState(!1),l=B.useCallback(()=>{const m=window.location.protocol==="https:"?"wss:":"ws:",h=window.location.port==="5173"?"ws://localhost:8000/api/ws":`${m}//${window.location.host}/api/ws`,d=new WebSocket(h);d.onopen=()=>{console.log("WebSocket connected"),u(!0)},d.onclose=()=>{console.log("WebSocket disconnected"),u(!1),r.current=null,o.current=window.setTimeout(()=>{console.log("Attempting WebSocket reconnect..."),l()},3e3)},d.onerror=y=>{console.error("WebSocket error:",y)},d.onmessage=y=>{var g,f,x,w,j,v,A,q;try{const k=JSON.parse(y.data);switch(k.type){case"health":(g=a.onHealth)==null||g.call(a,k.data);break;case"contacts":(f=a.onContacts)==null||f.call(a,k.data);break;case"channels":(x=a.onChannels)==null||x.call(a,k.data);break;case"message":(w=a.onMessage)==null||w.call(a,k.data);break;case"contact":(j=a.onContact)==null||j.call(a,k.data);break;case"raw_packet":(v=a.onRawPacket)==null||v.call(a,k.data);break;case"message_acked":(A=a.onMessageAcked)==null||A.call(a,k.data.message_id);break;case"error":(q=a.onError)==null||q.call(a,k.data);break;case"pong":break;default:console.log("Unknown WebSocket message type:",k.type)}}catch(k){console.error("Failed to parse WebSocket message:",k)}},r.current=d},[a]);return B.useEffect(()=>{l();const m=setInterval(()=>{var c;((c=r.current)==null?void 0:c.readyState)===WebSocket.OPEN&&r.current.send("ping")},3e4);return()=>{clearInterval(m),o.current&&clearTimeout(o.current),r.current&&r.current.close()}},[l]),{connected:t}}/** +`+b.stack}return{value:e,source:i,stack:p,digest:null}}function kc(e,i,n){return{value:e,source:null,stack:n??null,digest:i??null}}function wc(e,i){try{console.error(i.value)}catch(n){setTimeout(function(){throw n})}}var zv=typeof WeakMap=="function"?WeakMap:Map;function Qp(e,i,n){n=$a(-1,n),n.tag=3,n.payload={element:null};var s=i.value;return n.callback=function(){Ts||(Ts=!0,Pc=s),wc(e,i)},n}function $p(e,i,n){n=$a(-1,n),n.tag=3;var s=e.type.getDerivedStateFromError;if(typeof s=="function"){var p=i.value;n.payload=function(){return s(p)},n.callback=function(){wc(e,i)}}var b=e.stateNode;return b!==null&&typeof b.componentDidCatch=="function"&&(n.callback=function(){wc(e,i),typeof s!="function"&&(bn===null?bn=new Set([this]):bn.add(this));var E=i.stack;this.componentDidCatch(i.value,{componentStack:E!==null?E:""})}),n}function Kp(e,i,n){var s=e.pingCache;if(s===null){s=e.pingCache=new zv;var p=new Set;s.set(i,p)}else p=s.get(i),p===void 0&&(p=new Set,s.set(i,p));p.has(n)||(p.add(n),e=Nv.bind(null,e,i,n),i.then(e,e))}function Yp(e){do{var i;if((i=e.tag===13)&&(i=e.memoizedState,i=i!==null?i.dehydrated!==null:!0),i)return e;e=e.return}while(e!==null);return null}function Zp(e,i,n,s,p){return(e.mode&1)===0?(e===i?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(i=$a(-1,1),i.tag=2,gn(n,i,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=p,e)}var qv=C.ReactCurrentOwner,Ji=!1;function Gi(e,i,n,s){i.child=e===null?bp(i,null,n,s):ho(i,e.child,n,s)}function Xp(e,i,n,s,p){n=n.render;var b=i.ref;return yo(i,p),s=pc(e,i,n,s,b,p),n=mc(),e!==null&&!Ji?(i.updateQueue=e.updateQueue,i.flags&=-2053,e.lanes&=~p,Ka(e,i,p)):(di&&n&&Kl(i),i.flags|=1,Gi(e,i,s,p),i.child)}function Jp(e,i,n,s,p){if(e===null){var b=n.type;return typeof b=="function"&&!Vc(b)&&b.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(i.tag=15,i.type=b,em(e,i,b,s,p)):(e=Hs(n.type,null,s,i,i.mode,p),e.ref=i.ref,e.return=i,i.child=e)}if(b=e.child,(e.lanes&p)===0){var E=b.memoizedProps;if(n=n.compare,n=n!==null?n:Yo,n(E,s)&&e.ref===i.ref)return Ka(e,i,p)}return i.flags|=1,e=wn(b,s),e.ref=i.ref,e.return=i,i.child=e}function em(e,i,n,s,p){if(e!==null){var b=e.memoizedProps;if(Yo(b,s)&&e.ref===i.ref)if(Ji=!1,i.pendingProps=s=b,(e.lanes&p)!==0)(e.flags&131072)!==0&&(Ji=!0);else return i.lanes=e.lanes,Ka(e,i,p)}return xc(e,i,n,s,p)}function im(e,i,n){var s=i.pendingProps,p=s.children,b=e!==null?e.memoizedState:null;if(s.mode==="hidden")if((i.mode&1)===0)i.memoizedState={baseLanes:0,cachePool:null,transitions:null},ri(ko,la),la|=n;else{if((n&1073741824)===0)return e=b!==null?b.baseLanes|n:n,i.lanes=i.childLanes=1073741824,i.memoizedState={baseLanes:e,cachePool:null,transitions:null},i.updateQueue=null,ri(ko,la),la|=e,null;i.memoizedState={baseLanes:0,cachePool:null,transitions:null},s=b!==null?b.baseLanes:n,ri(ko,la),la|=s}else b!==null?(s=b.baseLanes|n,i.memoizedState=null):s=n,ri(ko,la),la|=s;return Gi(e,i,p,n),i.child}function am(e,i){var n=i.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(i.flags|=512,i.flags|=2097152)}function xc(e,i,n,s,p){var b=Xi(n)?Bn:Hi.current;return b=co(i,b),yo(i,p),n=pc(e,i,n,s,b,p),s=mc(),e!==null&&!Ji?(i.updateQueue=e.updateQueue,i.flags&=-2053,e.lanes&=~p,Ka(e,i,p)):(di&&s&&Kl(i),i.flags|=1,Gi(e,i,n,p),i.child)}function nm(e,i,n,s,p){if(Xi(n)){var b=!0;ps(i)}else b=!1;if(yo(i,p),i.stateNode===null)Bs(e,i),Wp(i,n,s),vc(i,n,s,p),s=!0;else if(e===null){var E=i.stateNode,P=i.memoizedProps;E.props=P;var M=E.context,X=n.contextType;typeof X=="object"&&X!==null?X=ha(X):(X=Xi(n)?Bn:Hi.current,X=co(i,X));var te=n.getDerivedStateFromProps,ce=typeof te=="function"||typeof E.getSnapshotBeforeUpdate=="function";ce||typeof E.UNSAFE_componentWillReceiveProps!="function"&&typeof E.componentWillReceiveProps!="function"||(P!==s||M!==X)&&Gp(i,E,s,X),hn=!1;var se=i.memoizedState;E.state=se,ws(i,s,E,p),M=i.memoizedState,P!==s||se!==M||Zi.current||hn?(typeof te=="function"&&(fc(i,n,te,s),M=i.memoizedState),(P=hn||Up(i,n,P,s,se,M,X))?(ce||typeof E.UNSAFE_componentWillMount!="function"&&typeof E.componentWillMount!="function"||(typeof E.componentWillMount=="function"&&E.componentWillMount(),typeof E.UNSAFE_componentWillMount=="function"&&E.UNSAFE_componentWillMount()),typeof E.componentDidMount=="function"&&(i.flags|=4194308)):(typeof E.componentDidMount=="function"&&(i.flags|=4194308),i.memoizedProps=s,i.memoizedState=M),E.props=s,E.state=M,E.context=X,s=P):(typeof E.componentDidMount=="function"&&(i.flags|=4194308),s=!1)}else{E=i.stateNode,vp(e,i),P=i.memoizedProps,X=i.type===i.elementType?P:ja(i.type,P),E.props=X,ce=i.pendingProps,se=E.context,M=n.contextType,typeof M=="object"&&M!==null?M=ha(M):(M=Xi(n)?Bn:Hi.current,M=co(i,M));var be=n.getDerivedStateFromProps;(te=typeof be=="function"||typeof E.getSnapshotBeforeUpdate=="function")||typeof E.UNSAFE_componentWillReceiveProps!="function"&&typeof E.componentWillReceiveProps!="function"||(P!==ce||se!==M)&&Gp(i,E,s,M),hn=!1,se=i.memoizedState,E.state=se,ws(i,s,E,p);var ve=i.memoizedState;P!==ce||se!==ve||Zi.current||hn?(typeof be=="function"&&(fc(i,n,be,s),ve=i.memoizedState),(X=hn||Up(i,n,X,s,se,ve,M)||!1)?(te||typeof E.UNSAFE_componentWillUpdate!="function"&&typeof E.componentWillUpdate!="function"||(typeof E.componentWillUpdate=="function"&&E.componentWillUpdate(s,ve,M),typeof E.UNSAFE_componentWillUpdate=="function"&&E.UNSAFE_componentWillUpdate(s,ve,M)),typeof E.componentDidUpdate=="function"&&(i.flags|=4),typeof E.getSnapshotBeforeUpdate=="function"&&(i.flags|=1024)):(typeof E.componentDidUpdate!="function"||P===e.memoizedProps&&se===e.memoizedState||(i.flags|=4),typeof E.getSnapshotBeforeUpdate!="function"||P===e.memoizedProps&&se===e.memoizedState||(i.flags|=1024),i.memoizedProps=s,i.memoizedState=ve),E.props=s,E.state=ve,E.context=M,s=X):(typeof E.componentDidUpdate!="function"||P===e.memoizedProps&&se===e.memoizedState||(i.flags|=4),typeof E.getSnapshotBeforeUpdate!="function"||P===e.memoizedProps&&se===e.memoizedState||(i.flags|=1024),s=!1)}return zc(e,i,n,s,b,p)}function zc(e,i,n,s,p,b){am(e,i);var E=(i.flags&128)!==0;if(!s&&!E)return p&&lp(i,n,!1),Ka(e,i,b);s=i.stateNode,qv.current=i;var P=E&&typeof n.getDerivedStateFromError!="function"?null:s.render();return i.flags|=1,e!==null&&E?(i.child=ho(i,e.child,null,b),i.child=ho(i,null,P,b)):Gi(e,i,P,b),i.memoizedState=s.state,p&&lp(i,n,!0),i.child}function om(e){var i=e.stateNode;i.pendingContext?sp(e,i.pendingContext,i.pendingContext!==i.context):i.context&&sp(e,i.context,!1),sc(e,i.containerInfo)}function rm(e,i,n,s,p){return mo(),Jl(p),i.flags|=256,Gi(e,i,n,s),i.child}var qc={dehydrated:null,treeContext:null,retryLane:0};function jc(e){return{baseLanes:e,cachePool:null,transitions:null}}function sm(e,i,n){var s=i.pendingProps,p=pi.current,b=!1,E=(i.flags&128)!==0,P;if((P=E)||(P=e!==null&&e.memoizedState===null?!1:(p&2)!==0),P?(b=!0,i.flags&=-129):(e===null||e.memoizedState!==null)&&(p|=1),ri(pi,p&1),e===null)return Xl(i),e=i.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((i.mode&1)===0?i.lanes=1:e.data==="$!"?i.lanes=8:i.lanes=1073741824,null):(E=s.children,e=s.fallback,b?(s=i.mode,b=i.child,E={mode:"hidden",children:E},(s&1)===0&&b!==null?(b.childLanes=0,b.pendingProps=E):b=Ls(E,s,0,null),e=On(e,s,n,null),b.return=i,e.return=i,b.sibling=e,i.child=b,i.child.memoizedState=jc(n),i.memoizedState=qc,e):Ac(i,E));if(p=e.memoizedState,p!==null&&(P=p.dehydrated,P!==null))return jv(e,i,E,s,P,p,n);if(b){b=s.fallback,E=i.mode,p=e.child,P=p.sibling;var M={mode:"hidden",children:s.children};return(E&1)===0&&i.child!==p?(s=i.child,s.childLanes=0,s.pendingProps=M,i.deletions=null):(s=wn(p,M),s.subtreeFlags=p.subtreeFlags&14680064),P!==null?b=wn(P,b):(b=On(b,E,n,null),b.flags|=2),b.return=i,s.return=i,s.sibling=b,i.child=s,s=b,b=i.child,E=e.child.memoizedState,E=E===null?jc(n):{baseLanes:E.baseLanes|n,cachePool:null,transitions:E.transitions},b.memoizedState=E,b.childLanes=e.childLanes&~n,i.memoizedState=qc,s}return b=e.child,e=b.sibling,s=wn(b,{mode:"visible",children:s.children}),(i.mode&1)===0&&(s.lanes=n),s.return=i,s.sibling=null,e!==null&&(n=i.deletions,n===null?(i.deletions=[e],i.flags|=16):n.push(e)),i.child=s,i.memoizedState=null,s}function Ac(e,i){return i=Ls({mode:"visible",children:i},e.mode,0,null),i.return=e,e.child=i}function Ss(e,i,n,s){return s!==null&&Jl(s),ho(i,e.child,null,n),e=Ac(i,i.pendingProps.children),e.flags|=2,i.memoizedState=null,e}function jv(e,i,n,s,p,b,E){if(n)return i.flags&256?(i.flags&=-257,s=kc(Error(o(422))),Ss(e,i,E,s)):i.memoizedState!==null?(i.child=e.child,i.flags|=128,null):(b=s.fallback,p=i.mode,s=Ls({mode:"visible",children:s.children},p,0,null),b=On(b,p,E,null),b.flags|=2,s.return=i,b.return=i,s.sibling=b,i.child=s,(i.mode&1)!==0&&ho(i,e.child,null,E),i.child.memoizedState=jc(E),i.memoizedState=qc,b);if((i.mode&1)===0)return Ss(e,i,E,null);if(p.data==="$!"){if(s=p.nextSibling&&p.nextSibling.dataset,s)var P=s.dgst;return s=P,b=Error(o(419)),s=kc(b,s,void 0),Ss(e,i,E,s)}if(P=(E&e.childLanes)!==0,Ji||P){if(s=Di,s!==null){switch(E&-E){case 4:p=2;break;case 16:p=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:p=32;break;case 536870912:p=268435456;break;default:p=0}p=(p&(s.suspendedLanes|E))!==0?0:p,p!==0&&p!==b.retryLane&&(b.retryLane=p,Qa(e,p),Ea(s,e,p,-1))}return Lc(),s=kc(Error(o(421))),Ss(e,i,E,s)}return p.data==="$?"?(i.flags|=128,i.child=e.child,i=Iv.bind(null,e),p._reactRetry=i,null):(e=b.treeContext,ta=un(p.nextSibling),sa=i,di=!0,qa=null,e!==null&&(pa[ma++]=Wa,pa[ma++]=Ga,pa[ma++]=_n,Wa=e.id,Ga=e.overflow,_n=i),i=Ac(i,s.children),i.flags|=4096,i)}function tm(e,i,n){e.lanes|=i;var s=e.alternate;s!==null&&(s.lanes|=i),nc(e.return,i,n)}function Cc(e,i,n,s,p){var b=e.memoizedState;b===null?e.memoizedState={isBackwards:i,rendering:null,renderingStartTime:0,last:s,tail:n,tailMode:p}:(b.isBackwards=i,b.rendering=null,b.renderingStartTime=0,b.last=s,b.tail=n,b.tailMode=p)}function lm(e,i,n){var s=i.pendingProps,p=s.revealOrder,b=s.tail;if(Gi(e,i,s.children,n),s=pi.current,(s&2)!==0)s=s&1|2,i.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=i.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&tm(e,n,i);else if(e.tag===19)tm(e,n,i);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===i)break e;for(;e.sibling===null;){if(e.return===null||e.return===i)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}s&=1}if(ri(pi,s),(i.mode&1)===0)i.memoizedState=null;else switch(p){case"forwards":for(n=i.child,p=null;n!==null;)e=n.alternate,e!==null&&xs(e)===null&&(p=n),n=n.sibling;n=p,n===null?(p=i.child,i.child=null):(p=n.sibling,n.sibling=null),Cc(i,!1,p,n,b);break;case"backwards":for(n=null,p=i.child,i.child=null;p!==null;){if(e=p.alternate,e!==null&&xs(e)===null){i.child=p;break}e=p.sibling,p.sibling=n,n=p,p=e}Cc(i,!0,n,null,b);break;case"together":Cc(i,!1,null,null,void 0);break;default:i.memoizedState=null}return i.child}function Bs(e,i){(i.mode&1)===0&&e!==null&&(e.alternate=null,i.alternate=null,i.flags|=2)}function Ka(e,i,n){if(e!==null&&(i.dependencies=e.dependencies),Pn|=i.lanes,(n&i.childLanes)===0)return null;if(e!==null&&i.child!==e.child)throw Error(o(153));if(i.child!==null){for(e=i.child,n=wn(e,e.pendingProps),i.child=n,n.return=i;e.sibling!==null;)e=e.sibling,n=n.sibling=wn(e,e.pendingProps),n.return=i;n.sibling=null}return i.child}function Av(e,i,n){switch(i.tag){case 3:om(i),mo();break;case 5:xp(i);break;case 1:Xi(i.type)&&ps(i);break;case 4:sc(i,i.stateNode.containerInfo);break;case 10:var s=i.type._context,p=i.memoizedProps.value;ri(fs,s._currentValue),s._currentValue=p;break;case 13:if(s=i.memoizedState,s!==null)return s.dehydrated!==null?(ri(pi,pi.current&1),i.flags|=128,null):(n&i.child.childLanes)!==0?sm(e,i,n):(ri(pi,pi.current&1),e=Ka(e,i,n),e!==null?e.sibling:null);ri(pi,pi.current&1);break;case 19:if(s=(n&i.childLanes)!==0,(e.flags&128)!==0){if(s)return lm(e,i,n);i.flags|=128}if(p=i.memoizedState,p!==null&&(p.rendering=null,p.tail=null,p.lastEffect=null),ri(pi,pi.current),s)break;return null;case 22:case 23:return i.lanes=0,im(e,i,n)}return Ka(e,i,n)}var cm,Ec,um,dm;cm=function(e,i){for(var n=i.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===i)break;for(;n.sibling===null;){if(n.return===null||n.return===i)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ec=function(){},um=function(e,i,n,s){var p=e.memoizedProps;if(p!==s){e=i.stateNode,Rn(Ra.current);var b=null;switch(n){case"input":p=Ue(e,p),s=Ue(e,s),b=[];break;case"select":p=ee({},p,{value:void 0}),s=ee({},s,{value:void 0}),b=[];break;case"textarea":p=Ge(e,p),s=Ge(e,s),b=[];break;default:typeof p.onClick!="function"&&typeof s.onClick=="function"&&(e.onclick=cs)}ne(n,s);var E;n=null;for(X in p)if(!s.hasOwnProperty(X)&&p.hasOwnProperty(X)&&p[X]!=null)if(X==="style"){var P=p[X];for(E in P)P.hasOwnProperty(E)&&(n||(n={}),n[E]="")}else X!=="dangerouslySetInnerHTML"&&X!=="children"&&X!=="suppressContentEditableWarning"&&X!=="suppressHydrationWarning"&&X!=="autoFocus"&&(u.hasOwnProperty(X)?b||(b=[]):(b=b||[]).push(X,null));for(X in s){var M=s[X];if(P=p!=null?p[X]:void 0,s.hasOwnProperty(X)&&M!==P&&(M!=null||P!=null))if(X==="style")if(P){for(E in P)!P.hasOwnProperty(E)||M&&M.hasOwnProperty(E)||(n||(n={}),n[E]="");for(E in M)M.hasOwnProperty(E)&&P[E]!==M[E]&&(n||(n={}),n[E]=M[E])}else n||(b||(b=[]),b.push(X,n)),n=M;else X==="dangerouslySetInnerHTML"?(M=M?M.__html:void 0,P=P?P.__html:void 0,M!=null&&P!==M&&(b=b||[]).push(X,M)):X==="children"?typeof M!="string"&&typeof M!="number"||(b=b||[]).push(X,""+M):X!=="suppressContentEditableWarning"&&X!=="suppressHydrationWarning"&&(u.hasOwnProperty(X)?(M!=null&&X==="onScroll"&&li("scroll",e),b||P===M||(b=[])):(b=b||[]).push(X,M))}n&&(b=b||[]).push("style",n);var X=b;(i.updateQueue=X)&&(i.flags|=4)}},dm=function(e,i,n,s){n!==s&&(i.flags|=4)};function dr(e,i){if(!di)switch(e.tailMode){case"hidden":i=e.tail;for(var n=null;i!==null;)i.alternate!==null&&(n=i),i=i.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var s=null;n!==null;)n.alternate!==null&&(s=n),n=n.sibling;s===null?i||e.tail===null?e.tail=null:e.tail.sibling=null:s.sibling=null}}function Vi(e){var i=e.alternate!==null&&e.alternate.child===e.child,n=0,s=0;if(i)for(var p=e.child;p!==null;)n|=p.lanes|p.childLanes,s|=p.subtreeFlags&14680064,s|=p.flags&14680064,p.return=e,p=p.sibling;else for(p=e.child;p!==null;)n|=p.lanes|p.childLanes,s|=p.subtreeFlags,s|=p.flags,p.return=e,p=p.sibling;return e.subtreeFlags|=s,e.childLanes=n,i}function Cv(e,i,n){var s=i.pendingProps;switch(Yl(i),i.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Vi(i),null;case 1:return Xi(i.type)&&ds(),Vi(i),null;case 3:return s=i.stateNode,bo(),ci(Zi),ci(Hi),cc(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(ys(i)?i.flags|=4:e===null||e.memoizedState.isDehydrated&&(i.flags&256)===0||(i.flags|=1024,qa!==null&&(Mc(qa),qa=null))),Ec(e,i),Vi(i),null;case 5:tc(i);var p=Rn(sr.current);if(n=i.type,e!==null&&i.stateNode!=null)um(e,i,n,s,p),e.ref!==i.ref&&(i.flags|=512,i.flags|=2097152);else{if(!s){if(i.stateNode===null)throw Error(o(166));return Vi(i),null}if(e=Rn(Ra.current),ys(i)){s=i.stateNode,n=i.type;var b=i.memoizedProps;switch(s[Fa]=i,s[ir]=b,e=(i.mode&1)!==0,n){case"dialog":li("cancel",s),li("close",s);break;case"iframe":case"object":case"embed":li("load",s);break;case"video":case"audio":for(p=0;p<\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=E.createElement(n,{is:s.is}):(e=E.createElement(n),n==="select"&&(E=e,s.multiple?E.multiple=!0:s.size&&(E.size=s.size))):e=E.createElementNS(e,n),e[Fa]=i,e[ir]=s,cm(e,i,!1,!1),i.stateNode=e;e:{switch(E=ye(n,s),n){case"dialog":li("cancel",e),li("close",e),p=s;break;case"iframe":case"object":case"embed":li("load",e),p=s;break;case"video":case"audio":for(p=0;pwo&&(i.flags|=128,s=!0,dr(b,!1),i.lanes=4194304)}else{if(!s)if(e=xs(E),e!==null){if(i.flags|=128,s=!0,n=e.updateQueue,n!==null&&(i.updateQueue=n,i.flags|=4),dr(b,!0),b.tail===null&&b.tailMode==="hidden"&&!E.alternate&&!di)return Vi(i),null}else 2*vi()-b.renderingStartTime>wo&&n!==1073741824&&(i.flags|=128,s=!0,dr(b,!1),i.lanes=4194304);b.isBackwards?(E.sibling=i.child,i.child=E):(n=b.last,n!==null?n.sibling=E:i.child=E,b.last=E)}return b.tail!==null?(i=b.tail,b.rendering=i,b.tail=i.sibling,b.renderingStartTime=vi(),i.sibling=null,n=pi.current,ri(pi,s?n&1|2:n&1),i):(Vi(i),null);case 22:case 23:return Hc(),s=i.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(i.flags|=8192),s&&(i.mode&1)!==0?(la&1073741824)!==0&&(Vi(i),i.subtreeFlags&6&&(i.flags|=8192)):Vi(i),null;case 24:return null;case 25:return null}throw Error(o(156,i.tag))}function Ev(e,i){switch(Yl(i),i.tag){case 1:return Xi(i.type)&&ds(),e=i.flags,e&65536?(i.flags=e&-65537|128,i):null;case 3:return bo(),ci(Zi),ci(Hi),cc(),e=i.flags,(e&65536)!==0&&(e&128)===0?(i.flags=e&-65537|128,i):null;case 5:return tc(i),null;case 13:if(ci(pi),e=i.memoizedState,e!==null&&e.dehydrated!==null){if(i.alternate===null)throw Error(o(340));mo()}return e=i.flags,e&65536?(i.flags=e&-65537|128,i):null;case 19:return ci(pi),null;case 4:return bo(),null;case 10:return ac(i.type._context),null;case 22:case 23:return Hc(),null;case 24:return null;default:return null}}var _s=!1,Ui=!1,Sv=typeof WeakSet=="function"?WeakSet:Set,fe=null;function vo(e,i){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(s){bi(e,i,s)}else n.current=null}function Sc(e,i,n){try{n()}catch(s){bi(e,i,s)}}var pm=!1;function Bv(e,i){if(Hl=Zr,e=Ud(),Fl(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var s=n.getSelection&&n.getSelection();if(s&&s.rangeCount!==0){n=s.anchorNode;var p=s.anchorOffset,b=s.focusNode;s=s.focusOffset;try{n.nodeType,b.nodeType}catch{n=null;break e}var E=0,P=-1,M=-1,X=0,te=0,ce=e,se=null;i:for(;;){for(var be;ce!==n||p!==0&&ce.nodeType!==3||(P=E+p),ce!==b||s!==0&&ce.nodeType!==3||(M=E+s),ce.nodeType===3&&(E+=ce.nodeValue.length),(be=ce.firstChild)!==null;)se=ce,ce=be;for(;;){if(ce===e)break i;if(se===n&&++X===p&&(P=E),se===b&&++te===s&&(M=E),(be=ce.nextSibling)!==null)break;ce=se,se=ce.parentNode}ce=be}n=P===-1||M===-1?null:{start:P,end:M}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ll={focusedElem:e,selectionRange:n},Zr=!1,fe=i;fe!==null;)if(i=fe,e=i.child,(i.subtreeFlags&1028)!==0&&e!==null)e.return=i,fe=e;else for(;fe!==null;){i=fe;try{var ve=i.alternate;if((i.flags&1024)!==0)switch(i.tag){case 0:case 11:case 15:break;case 1:if(ve!==null){var qe=ve.memoizedProps,ki=ve.memoizedState,Q=i.stateNode,U=Q.getSnapshotBeforeUpdate(i.elementType===i.type?qe:ja(i.type,qe),ki);Q.__reactInternalSnapshotBeforeUpdate=U}break;case 3:var Y=i.stateNode.containerInfo;Y.nodeType===1?Y.textContent="":Y.nodeType===9&&Y.documentElement&&Y.removeChild(Y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(pe){bi(i,i.return,pe)}if(e=i.sibling,e!==null){e.return=i.return,fe=e;break}fe=i.return}return ve=pm,pm=!1,ve}function pr(e,i,n){var s=i.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var p=s=s.next;do{if((p.tag&e)===e){var b=p.destroy;p.destroy=void 0,b!==void 0&&Sc(i,n,b)}p=p.next}while(p!==s)}}function Ds(e,i){if(i=i.updateQueue,i=i!==null?i.lastEffect:null,i!==null){var n=i=i.next;do{if((n.tag&e)===e){var s=n.create;n.destroy=s()}n=n.next}while(n!==i)}}function Bc(e){var i=e.ref;if(i!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof i=="function"?i(e):i.current=e}}function mm(e){var i=e.alternate;i!==null&&(e.alternate=null,mm(i)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(i=e.stateNode,i!==null&&(delete i[Fa],delete i[ir],delete i[Gl],delete i[pv],delete i[mv])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function hm(e){return e.tag===5||e.tag===3||e.tag===4}function gm(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||hm(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function _c(e,i,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,i?n.nodeType===8?n.parentNode.insertBefore(e,i):n.insertBefore(e,i):(n.nodeType===8?(i=n.parentNode,i.insertBefore(e,n)):(i=n,i.appendChild(e)),n=n._reactRootContainer,n!=null||i.onclick!==null||(i.onclick=cs));else if(s!==4&&(e=e.child,e!==null))for(_c(e,i,n),e=e.sibling;e!==null;)_c(e,i,n),e=e.sibling}function Dc(e,i,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,i?n.insertBefore(e,i):n.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(Dc(e,i,n),e=e.sibling;e!==null;)Dc(e,i,n),e=e.sibling}var Pi=null,Aa=!1;function yn(e,i,n){for(n=n.child;n!==null;)ym(e,i,n),n=n.sibling}function ym(e,i,n){if(Da&&typeof Da.onCommitFiberUnmount=="function")try{Da.onCommitFiberUnmount(Wr,n)}catch{}switch(n.tag){case 5:Ui||vo(n,i);case 6:var s=Pi,p=Aa;Pi=null,yn(e,i,n),Pi=s,Aa=p,Pi!==null&&(Aa?(e=Pi,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Pi.removeChild(n.stateNode));break;case 18:Pi!==null&&(Aa?(e=Pi,n=n.stateNode,e.nodeType===8?Wl(e.parentNode,n):e.nodeType===1&&Wl(e,n),Uo(e)):Wl(Pi,n.stateNode));break;case 4:s=Pi,p=Aa,Pi=n.stateNode.containerInfo,Aa=!0,yn(e,i,n),Pi=s,Aa=p;break;case 0:case 11:case 14:case 15:if(!Ui&&(s=n.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){p=s=s.next;do{var b=p,E=b.destroy;b=b.tag,E!==void 0&&((b&2)!==0||(b&4)!==0)&&Sc(n,i,E),p=p.next}while(p!==s)}yn(e,i,n);break;case 1:if(!Ui&&(vo(n,i),s=n.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=n.memoizedProps,s.state=n.memoizedState,s.componentWillUnmount()}catch(P){bi(n,i,P)}yn(e,i,n);break;case 21:yn(e,i,n);break;case 22:n.mode&1?(Ui=(s=Ui)||n.memoizedState!==null,yn(e,i,n),Ui=s):yn(e,i,n);break;default:yn(e,i,n)}}function bm(e){var i=e.updateQueue;if(i!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Sv),i.forEach(function(s){var p=Mv.bind(null,e,s);n.has(s)||(n.add(s),s.then(p,p))})}}function Ca(e,i){var n=i.deletions;if(n!==null)for(var s=0;sp&&(p=E),s&=~b}if(s=p,s=vi()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*Dv(s/1960))-s,10e?16:e,fn===null)var s=!1;else{if(e=fn,fn=null,Ns=0,(Qe&6)!==0)throw Error(o(331));var p=Qe;for(Qe|=4,fe=e.current;fe!==null;){var b=fe,E=b.child;if((fe.flags&16)!==0){var P=b.deletions;if(P!==null){for(var M=0;Mvi()-Tc?In(e,0):Rc|=n),ia(e,i)}function Bm(e,i){i===0&&((e.mode&1)===0?i=1:(i=Qr,Qr<<=1,(Qr&130023424)===0&&(Qr=4194304)));var n=Qi();e=Qa(e,i),e!==null&&(Mo(e,i,n),ia(e,n))}function Iv(e){var i=e.memoizedState,n=0;i!==null&&(n=i.retryLane),Bm(e,n)}function Mv(e,i){var n=0;switch(e.tag){case 13:var s=e.stateNode,p=e.memoizedState;p!==null&&(n=p.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(o(314))}s!==null&&s.delete(i),Bm(e,n)}var _m;_m=function(e,i,n){if(e!==null)if(e.memoizedProps!==i.pendingProps||Zi.current)Ji=!0;else{if((e.lanes&n)===0&&(i.flags&128)===0)return Ji=!1,Av(e,i,n);Ji=(e.flags&131072)!==0}else Ji=!1,di&&(i.flags&1048576)!==0&&up(i,gs,i.index);switch(i.lanes=0,i.tag){case 2:var s=i.type;Bs(e,i),e=i.pendingProps;var p=co(i,Hi.current);yo(i,n),p=pc(null,i,s,e,p,n);var b=mc();return i.flags|=1,typeof p=="object"&&p!==null&&typeof p.render=="function"&&p.$$typeof===void 0?(i.tag=1,i.memoizedState=null,i.updateQueue=null,Xi(s)?(b=!0,ps(i)):b=!1,i.memoizedState=p.state!==null&&p.state!==void 0?p.state:null,rc(i),p.updater=Es,i.stateNode=p,p._reactInternals=i,vc(i,s,e,n),i=zc(null,i,s,!0,b,n)):(i.tag=0,di&&b&&Kl(i),Gi(null,i,p,n),i=i.child),i;case 16:s=i.elementType;e:{switch(Bs(e,i),e=i.pendingProps,p=s._init,s=p(s._payload),i.type=s,p=i.tag=Hv(s),e=ja(s,e),p){case 0:i=xc(null,i,s,e,n);break e;case 1:i=nm(null,i,s,e,n);break e;case 11:i=Xp(null,i,s,e,n);break e;case 14:i=Jp(null,i,s,ja(s.type,e),n);break e}throw Error(o(306,s,""))}return i;case 0:return s=i.type,p=i.pendingProps,p=i.elementType===s?p:ja(s,p),xc(e,i,s,p,n);case 1:return s=i.type,p=i.pendingProps,p=i.elementType===s?p:ja(s,p),nm(e,i,s,p,n);case 3:e:{if(om(i),e===null)throw Error(o(387));s=i.pendingProps,b=i.memoizedState,p=b.element,vp(e,i),ws(i,s,null,n);var E=i.memoizedState;if(s=E.element,b.isDehydrated)if(b={element:s,isDehydrated:!1,cache:E.cache,pendingSuspenseBoundaries:E.pendingSuspenseBoundaries,transitions:E.transitions},i.updateQueue.baseState=b,i.memoizedState=b,i.flags&256){p=fo(Error(o(423)),i),i=rm(e,i,s,n,p);break e}else if(s!==p){p=fo(Error(o(424)),i),i=rm(e,i,s,n,p);break e}else for(ta=un(i.stateNode.containerInfo.firstChild),sa=i,di=!0,qa=null,n=bp(i,null,s,n),i.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(mo(),s===p){i=Ka(e,i,n);break e}Gi(e,i,s,n)}i=i.child}return i;case 5:return xp(i),e===null&&Xl(i),s=i.type,p=i.pendingProps,b=e!==null?e.memoizedProps:null,E=p.children,Vl(s,p)?E=null:b!==null&&Vl(s,b)&&(i.flags|=32),am(e,i),Gi(e,i,E,n),i.child;case 6:return e===null&&Xl(i),null;case 13:return sm(e,i,n);case 4:return sc(i,i.stateNode.containerInfo),s=i.pendingProps,e===null?i.child=ho(i,null,s,n):Gi(e,i,s,n),i.child;case 11:return s=i.type,p=i.pendingProps,p=i.elementType===s?p:ja(s,p),Xp(e,i,s,p,n);case 7:return Gi(e,i,i.pendingProps,n),i.child;case 8:return Gi(e,i,i.pendingProps.children,n),i.child;case 12:return Gi(e,i,i.pendingProps.children,n),i.child;case 10:e:{if(s=i.type._context,p=i.pendingProps,b=i.memoizedProps,E=p.value,ri(fs,s._currentValue),s._currentValue=E,b!==null)if(za(b.value,E)){if(b.children===p.children&&!Zi.current){i=Ka(e,i,n);break e}}else for(b=i.child,b!==null&&(b.return=i);b!==null;){var P=b.dependencies;if(P!==null){E=b.child;for(var M=P.firstContext;M!==null;){if(M.context===s){if(b.tag===1){M=$a(-1,n&-n),M.tag=2;var X=b.updateQueue;if(X!==null){X=X.shared;var te=X.pending;te===null?M.next=M:(M.next=te.next,te.next=M),X.pending=M}}b.lanes|=n,M=b.alternate,M!==null&&(M.lanes|=n),nc(b.return,n,i),P.lanes|=n;break}M=M.next}}else if(b.tag===10)E=b.type===i.type?null:b.child;else if(b.tag===18){if(E=b.return,E===null)throw Error(o(341));E.lanes|=n,P=E.alternate,P!==null&&(P.lanes|=n),nc(E,n,i),E=b.sibling}else E=b.child;if(E!==null)E.return=b;else for(E=b;E!==null;){if(E===i){E=null;break}if(b=E.sibling,b!==null){b.return=E.return,E=b;break}E=E.return}b=E}Gi(e,i,p.children,n),i=i.child}return i;case 9:return p=i.type,s=i.pendingProps.children,yo(i,n),p=ha(p),s=s(p),i.flags|=1,Gi(e,i,s,n),i.child;case 14:return s=i.type,p=ja(s,i.pendingProps),p=ja(s.type,p),Jp(e,i,s,p,n);case 15:return em(e,i,i.type,i.pendingProps,n);case 17:return s=i.type,p=i.pendingProps,p=i.elementType===s?p:ja(s,p),Bs(e,i),i.tag=1,Xi(s)?(e=!0,ps(i)):e=!1,yo(i,n),Wp(i,s,p),vc(i,s,p,n),zc(null,i,s,!0,e,n);case 19:return lm(e,i,n);case 22:return im(e,i,n)}throw Error(o(156,i.tag))};function Dm(e,i){return dd(e,i)}function Ov(e,i,n,s){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=i,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ba(e,i,n,s){return new Ov(e,i,n,s)}function Vc(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Hv(e){if(typeof e=="function")return Vc(e)?1:0;if(e!=null){if(e=e.$$typeof,e===V)return 11;if(e===ae)return 14}return 2}function wn(e,i){var n=e.alternate;return n===null?(n=ba(e.tag,i,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=i,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,i=e.dependencies,n.dependencies=i===null?null:{lanes:i.lanes,firstContext:i.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Hs(e,i,n,s,p,b){var E=2;if(s=e,typeof e=="function")Vc(e)&&(E=1);else if(typeof e=="string")E=5;else e:switch(e){case T:return On(n.children,p,b,i);case F:E=8,p|=8;break;case O:return e=ba(12,n,i,p|2),e.elementType=O,e.lanes=b,e;case H:return e=ba(13,n,i,p),e.elementType=H,e.lanes=b,e;case $:return e=ba(19,n,i,p),e.elementType=$,e.lanes=b,e;case ie:return Ls(n,p,b,i);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case N:E=10;break e;case R:E=9;break e;case V:E=11;break e;case ae:E=14;break e;case J:E=16,s=null;break e}throw Error(o(130,e==null?e:typeof e,""))}return i=ba(E,n,i,p),i.elementType=e,i.type=s,i.lanes=b,i}function On(e,i,n,s){return e=ba(7,e,s,i),e.lanes=n,e}function Ls(e,i,n,s){return e=ba(22,e,s,i),e.elementType=ie,e.lanes=n,e.stateNode={isHidden:!1},e}function Uc(e,i,n){return e=ba(6,e,null,i),e.lanes=n,e}function Wc(e,i,n){return i=ba(4,e.children!==null?e.children:[],e.key,i),i.lanes=n,i.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},i}function Lv(e,i,n,s,p){this.tag=i,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=fl(0),this.expirationTimes=fl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=fl(0),this.identifierPrefix=s,this.onRecoverableError=p,this.mutableSourceEagerHydrationData=null}function Gc(e,i,n,s,p,b,E,P,M){return e=new Lv(e,i,n,P,M),i===1?(i=1,b===!0&&(i|=8)):i=0,b=ba(3,null,null,i),e.current=b,b.stateNode=e,b.memoizedState={element:s,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},rc(b),e}function Vv(e,i,n){var s=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(r){console.error(r)}}return a(),Jc.exports=nk(),Jc.exports}var Gm;function ok(){if(Gm)return Ks;Gm=1;var a=Vg();return Ks.createRoot=a.createRoot,Ks.hydrateRoot=a.hydrateRoot,Ks}var rk=ok();const sk="/api";async function si(a,r){const o=await fetch(`${sk}${a}`,{...r,headers:{"Content-Type":"application/json",...r==null?void 0:r.headers}});if(!o.ok){const t=await o.text();throw new Error(t||o.statusText)}return o.json()}const ii={getHealth:()=>si("/health"),getRadioConfig:()=>si("/radio/config"),updateRadioConfig:a=>si("/radio/config",{method:"PATCH",body:JSON.stringify(a)}),setPrivateKey:a=>si("/radio/private-key",{method:"PUT",body:JSON.stringify({private_key:a})}),sendAdvertisement:(a=!0)=>si(`/radio/advertise?flood=${a}`,{method:"POST"}),rebootRadio:()=>si("/radio/reboot",{method:"POST"}),reconnectRadio:()=>si("/radio/reconnect",{method:"POST"}),getContacts:(a=100,r=0)=>si(`/contacts?limit=${a}&offset=${r}`),getContact:a=>si(`/contacts/${a}`),syncContacts:()=>si("/contacts/sync",{method:"POST"}),addContactToRadio:a=>si(`/contacts/${a}/add-to-radio`,{method:"POST"}),removeContactFromRadio:a=>si(`/contacts/${a}/remove-from-radio`,{method:"POST"}),deleteContact:a=>si(`/contacts/${a}`,{method:"DELETE"}),getChannels:()=>si("/channels"),getChannel:a=>si(`/channels/${a}`),createChannel:(a,r)=>si("/channels",{method:"POST",body:JSON.stringify({name:a,key:r})}),syncChannels:()=>si("/channels/sync",{method:"POST"}),deleteChannel:a=>si(`/channels/${a}`,{method:"DELETE"}),getMessages:a=>{const r=new URLSearchParams;a!=null&&a.limit&&r.set("limit",a.limit.toString()),a!=null&&a.offset&&r.set("offset",a.offset.toString()),a!=null&&a.type&&r.set("type",a.type),a!=null&&a.conversation_key&&r.set("conversation_key",a.conversation_key);const o=r.toString();return si(`/messages${o?`?${o}`:""}`)},getMessagesBulk:(a,r=100)=>si(`/messages/bulk?limit_per_conversation=${r}`,{method:"POST",body:JSON.stringify(a)}),sendDirectMessage:(a,r)=>si("/messages/direct",{method:"POST",body:JSON.stringify({destination:a,text:r})}),sendChannelMessage:(a,r)=>si("/messages/channel",{method:"POST",body:JSON.stringify({channel_key:a,text:r})}),getUndecryptedPacketCount:()=>si("/packets/undecrypted/count"),decryptHistoricalPackets:a=>si("/packets/decrypt/historical",{method:"POST",body:JSON.stringify(a)}),getSettings:()=>si("/settings"),updateSettings:a=>si("/settings",{method:"PATCH",body:JSON.stringify(a)})};function tk(a){const r=B.useRef(null),o=B.useRef(null),[t,u]=B.useState(!1),l=B.useCallback(()=>{const m=window.location.protocol==="https:"?"wss:":"ws:",h=window.location.port==="5173"?"ws://localhost:8000/api/ws":`${m}//${window.location.host}/api/ws`,d=new WebSocket(h);d.onopen=()=>{console.log("WebSocket connected"),u(!0)},d.onclose=()=>{console.log("WebSocket disconnected"),u(!1),r.current=null,o.current=window.setTimeout(()=>{console.log("Attempting WebSocket reconnect..."),l()},3e3)},d.onerror=y=>{console.error("WebSocket error:",y)},d.onmessage=y=>{var g,f,x,w,j,v,A,q;try{const k=JSON.parse(y.data);switch(k.type){case"health":(g=a.onHealth)==null||g.call(a,k.data);break;case"contacts":(f=a.onContacts)==null||f.call(a,k.data);break;case"channels":(x=a.onChannels)==null||x.call(a,k.data);break;case"message":(w=a.onMessage)==null||w.call(a,k.data);break;case"contact":(j=a.onContact)==null||j.call(a,k.data);break;case"raw_packet":(v=a.onRawPacket)==null||v.call(a,k.data);break;case"message_acked":(A=a.onMessageAcked)==null||A.call(a,k.data.message_id);break;case"error":(q=a.onError)==null||q.call(a,k.data);break;case"pong":break;default:console.log("Unknown WebSocket message type:",k.type)}}catch(k){console.error("Failed to parse WebSocket message:",k)}},r.current=d},[a]);return B.useEffect(()=>{l();const m=setInterval(()=>{var c;((c=r.current)==null?void 0:c.readyState)===WebSocket.OPEN&&r.current.send("ping")},3e4);return()=>{clearInterval(m),o.current&&clearTimeout(o.current),r.current&&r.current.close()}},[l]),{connected:t}}/** * @license lucide-react v0.562.0 - ISC * * This source code is licensed under the ISC license. @@ -72,8 +72,8 @@ Error generating stack: `+b.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const bk=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Wg=Pu("x",bk);var Gg=Vg();const Qg=Fo(Gg);function fk(a){if(typeof document>"u")return;let r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",r.appendChild(o),o.styleSheet?o.styleSheet.cssText=a:o.appendChild(document.createTextNode(a))}const vk=a=>{switch(a){case"success":return xk;case"info":return qk;case"warning":return zk;case"error":return jk;default:return null}},kk=Array(12).fill(0),wk=({visible:a,className:r})=>me.createElement("div",{className:["sonner-loading-wrapper",r].filter(Boolean).join(" "),"data-visible":a},me.createElement("div",{className:"sonner-spinner"},kk.map((o,t)=>me.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${t}`})))),xk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},me.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),zk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},me.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),qk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},me.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),jk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},me.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),Ak=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},me.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),me.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Ck=()=>{const[a,r]=me.useState(document.hidden);return me.useEffect(()=>{const o=()=>{r(document.hidden)};return document.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)},[]),a};let vu=1;class Ek{constructor(){this.subscribe=r=>(this.subscribers.push(r),()=>{const o=this.subscribers.indexOf(r);this.subscribers.splice(o,1)}),this.publish=r=>{this.subscribers.forEach(o=>o(r))},this.addToast=r=>{this.publish(r),this.toasts=[...this.toasts,r]},this.create=r=>{var o;const{message:t,...u}=r,l=typeof(r==null?void 0:r.id)=="number"||((o=r.id)==null?void 0:o.length)>0?r.id:vu++,m=this.toasts.find(h=>h.id===l),c=r.dismissible===void 0?!0:r.dismissible;return this.dismissedToasts.has(l)&&this.dismissedToasts.delete(l),m?this.toasts=this.toasts.map(h=>h.id===l?(this.publish({...h,...r,id:l,title:t}),{...h,...r,id:l,dismissible:c,title:t}):h):this.addToast({title:t,...u,dismissible:c,id:l}),l},this.dismiss=r=>(r?(this.dismissedToasts.add(r),requestAnimationFrame(()=>this.subscribers.forEach(o=>o({id:r,dismiss:!0})))):this.toasts.forEach(o=>{this.subscribers.forEach(t=>t({id:o.id,dismiss:!0}))}),r),this.message=(r,o)=>this.create({...o,message:r}),this.error=(r,o)=>this.create({...o,message:r,type:"error"}),this.success=(r,o)=>this.create({...o,type:"success",message:r}),this.info=(r,o)=>this.create({...o,type:"info",message:r}),this.warning=(r,o)=>this.create({...o,type:"warning",message:r}),this.loading=(r,o)=>this.create({...o,type:"loading",message:r}),this.promise=(r,o)=>{if(!o)return;let t;o.loading!==void 0&&(t=this.create({...o,promise:r,type:"loading",message:o.loading,description:typeof o.description!="function"?o.description:void 0}));const u=Promise.resolve(r instanceof Function?r():r);let l=t!==void 0,m;const c=u.then(async d=>{if(m=["resolve",d],me.isValidElement(d))l=!1,this.create({id:t,type:"default",message:d});else if(Bk(d)&&!d.ok){l=!1;const g=typeof o.error=="function"?await o.error(`HTTP error! status: ${d.status}`):o.error,f=typeof o.description=="function"?await o.description(`HTTP error! status: ${d.status}`):o.description,w=typeof g=="object"&&!me.isValidElement(g)?g:{message:g};this.create({id:t,type:"error",description:f,...w})}else if(d instanceof Error){l=!1;const g=typeof o.error=="function"?await o.error(d):o.error,f=typeof o.description=="function"?await o.description(d):o.description,w=typeof g=="object"&&!me.isValidElement(g)?g:{message:g};this.create({id:t,type:"error",description:f,...w})}else if(o.success!==void 0){l=!1;const g=typeof o.success=="function"?await o.success(d):o.success,f=typeof o.description=="function"?await o.description(d):o.description,w=typeof g=="object"&&!me.isValidElement(g)?g:{message:g};this.create({id:t,type:"success",description:f,...w})}}).catch(async d=>{if(m=["reject",d],o.error!==void 0){l=!1;const y=typeof o.error=="function"?await o.error(d):o.error,g=typeof o.description=="function"?await o.description(d):o.description,x=typeof y=="object"&&!me.isValidElement(y)?y:{message:y};this.create({id:t,type:"error",description:g,...x})}}).finally(()=>{l&&(this.dismiss(t),t=void 0),o.finally==null||o.finally.call(o)}),h=()=>new Promise((d,y)=>c.then(()=>m[0]==="reject"?y(m[1]):d(m[1])).catch(y));return typeof t!="string"&&typeof t!="number"?{unwrap:h}:Object.assign(t,{unwrap:h})},this.custom=(r,o)=>{const t=(o==null?void 0:o.id)||vu++;return this.create({jsx:r(t),id:t,...o}),t},this.getActiveToasts=()=>this.toasts.filter(r=>!this.dismissedToasts.has(r.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const na=new Ek,Sk=(a,r)=>{const o=(r==null?void 0:r.id)||vu++;return na.addToast({title:a,...r,id:o}),o},Bk=a=>a&&typeof a=="object"&&"ok"in a&&typeof a.ok=="boolean"&&"status"in a&&typeof a.status=="number",_k=Sk,Dk=()=>na.toasts,Fk=()=>na.getActiveToasts(),Tr=Object.assign(_k,{success:na.success,info:na.info,warning:na.warning,error:na.error,custom:na.custom,message:na.message,promise:na.promise,dismiss:na.dismiss,loading:na.loading},{getHistory:Dk,getToasts:Fk});fk("[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%)}");function Ys(a){return a.label!==void 0}const Rk=3,Tk="24px",Pk="16px",$m=4e3,Nk=356,Ik=14,Mk=45,Ok=200;function Na(...a){return a.filter(Boolean).join(" ")}function Hk(a){const[r,o]=a.split("-"),t=[];return r&&t.push(r),o&&t.push(o),t}const Lk=a=>{var r,o,t,u,l,m,c,h,d;const{invert:y,toast:g,unstyled:f,interacting:x,setHeights:w,visibleToasts:j,heights:v,index:A,toasts:q,expanded:k,removeToast:C,defaultRichColors:S,closeButton:D,style:T,cancelButtonStyle:F,actionButtonStyle:O,className:N="",descriptionClassName:R="",duration:V,position:H,gap:$,expandByDefault:ae,classNames:J,icons:ie,closeButtonAriaLabel:W="Close toast"}=a,[oe,ee]=me.useState(null),[z,I]=me.useState(null),[L,G]=me.useState(!1),[ue,he]=me.useState(!1),[ge,re]=me.useState(!1),[le,je]=me.useState(!1),[Pe,Ze]=me.useState(!1),[Je,_e]=me.useState(0),[Ge,ei]=me.useState(0),Ve=me.useRef(g.duration||V||$m),xi=me.useRef(null),ai=me.useRef(null),Ti=A===0,si=A+1<=j,We=g.type,mi=g.dismissible!==!1,$i=g.className||"",va=g.descriptionClassName||"",zi=me.useMemo(()=>v.findIndex(Ae=>Ae.toastId===g.id)||0,[v,g.id]),Oi=me.useMemo(()=>{var Ae;return(Ae=g.closeButton)!=null?Ae:D},[g.closeButton,D]),Ki=me.useMemo(()=>g.duration||V||$m,[g.duration,V]),oa=me.useRef(0),qi=me.useRef(0),ci=me.useRef(0),Z=me.useRef(null),[de,ze]=H.split("-"),K=me.useMemo(()=>v.reduce((Ae,Oe,Ue)=>Ue>=zi?Ae:Ae+Oe.height,0),[v,zi]),ne=Ck(),ye=g.invert||y,Fe=We==="loading";qi.current=me.useMemo(()=>zi*$+K,[zi,K]),me.useEffect(()=>{Ve.current=Ki},[Ki]),me.useEffect(()=>{G(!0)},[]),me.useEffect(()=>{const Ae=ai.current;if(Ae){const Oe=Ae.getBoundingClientRect().height;return ei(Oe),w(Ue=>[{toastId:g.id,height:Oe,position:g.position},...Ue]),()=>w(Ue=>Ue.filter(hi=>hi.toastId!==g.id))}},[w,g.id]),me.useLayoutEffect(()=>{if(!L)return;const Ae=ai.current,Oe=Ae.style.height;Ae.style.height="auto";const Ue=Ae.getBoundingClientRect().height;Ae.style.height=Oe,ei(Ue),w(hi=>hi.find(He=>He.toastId===g.id)?hi.map(He=>He.toastId===g.id?{...He,height:Ue}:He):[{toastId:g.id,height:Ue,position:g.position},...hi])},[L,g.title,g.description,w,g.id,g.jsx,g.action,g.cancel]);const Be=me.useCallback(()=>{he(!0),_e(qi.current),w(Ae=>Ae.filter(Oe=>Oe.toastId!==g.id)),setTimeout(()=>{C(g)},Ok)},[g,C,w,qi]);me.useEffect(()=>{if(g.promise&&We==="loading"||g.duration===1/0||g.type==="loading")return;let Ae;return k||x||ne?(()=>{if(ci.current{Ve.current!==1/0&&(oa.current=new Date().getTime(),Ae=setTimeout(()=>{g.onAutoClose==null||g.onAutoClose.call(g,g),Be()},Ve.current))})(),()=>clearTimeout(Ae)},[k,x,g,We,ne,Be]),me.useEffect(()=>{g.delete&&(Be(),g.onDismiss==null||g.onDismiss.call(g,g))},[Be,g.delete]);function Ne(){var Ae;if(ie!=null&&ie.loading){var Oe;return me.createElement("div",{className:Na(J==null?void 0:J.loader,g==null||(Oe=g.classNames)==null?void 0:Oe.loader,"sonner-loader"),"data-visible":We==="loading"},ie.loading)}return me.createElement(wk,{className:Na(J==null?void 0:J.loader,g==null||(Ae=g.classNames)==null?void 0:Ae.loader),visible:We==="loading"})}const Re=g.icon||(ie==null?void 0:ie[We])||vk(We);var Te,ji;return me.createElement("li",{tabIndex:0,ref:ai,className:Na(N,$i,J==null?void 0:J.toast,g==null||(r=g.classNames)==null?void 0:r.toast,J==null?void 0:J.default,J==null?void 0:J[We],g==null||(o=g.classNames)==null?void 0:o[We]),"data-sonner-toast":"","data-rich-colors":(Te=g.richColors)!=null?Te:S,"data-styled":!(g.jsx||g.unstyled||f),"data-mounted":L,"data-promise":!!g.promise,"data-swiped":Pe,"data-removed":ue,"data-visible":si,"data-y-position":de,"data-x-position":ze,"data-index":A,"data-front":Ti,"data-swiping":ge,"data-dismissible":mi,"data-type":We,"data-invert":ye,"data-swipe-out":le,"data-swipe-direction":z,"data-expanded":!!(k||ae&&L),"data-testid":g.testId,style:{"--index":A,"--toasts-before":A,"--z-index":q.length-A,"--offset":`${ue?Je:qi.current}px`,"--initial-height":ae?"auto":`${Ge}px`,...T,...g.style},onDragEnd:()=>{re(!1),ee(null),Z.current=null},onPointerDown:Ae=>{Ae.button!==2&&(Fe||!mi||(xi.current=new Date,_e(qi.current),Ae.target.setPointerCapture(Ae.pointerId),Ae.target.tagName!=="BUTTON"&&(re(!0),Z.current={x:Ae.clientX,y:Ae.clientY})))},onPointerUp:()=>{var Ae,Oe,Ue;if(le||!mi)return;Z.current=null;const hi=Number(((Ae=ai.current)==null?void 0:Ae.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),da=Number(((Oe=ai.current)==null?void 0:Oe.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),He=new Date().getTime()-((Ue=xi.current)==null?void 0:Ue.getTime()),ni=oe==="x"?hi:da,ka=Math.abs(ni)/He;if(Math.abs(ni)>=Mk||ka>.11){_e(qi.current),g.onDismiss==null||g.onDismiss.call(g,g),I(oe==="x"?hi>0?"right":"left":da>0?"down":"up"),Be(),je(!0);return}else{var Ye,gi;(Ye=ai.current)==null||Ye.style.setProperty("--swipe-amount-x","0px"),(gi=ai.current)==null||gi.style.setProperty("--swipe-amount-y","0px")}Ze(!1),re(!1),ee(null)},onPointerMove:Ae=>{var Oe,Ue,hi;if(!Z.current||!mi||((Oe=window.getSelection())==null?void 0:Oe.toString().length)>0)return;const He=Ae.clientY-Z.current.y,ni=Ae.clientX-Z.current.x;var ka;const Ye=(ka=a.swipeDirections)!=null?ka:Hk(H);!oe&&(Math.abs(ni)>1||Math.abs(He)>1)&&ee(Math.abs(ni)>Math.abs(He)?"x":"y");let gi={x:0,y:0};const wa=Yi=>1/(1.5+Math.abs(Yi)/20);if(oe==="y"){if(Ye.includes("top")||Ye.includes("bottom"))if(Ye.includes("top")&&He<0||Ye.includes("bottom")&&He>0)gi.y=He;else{const Yi=He*wa(He);gi.y=Math.abs(Yi)0)gi.x=ni;else{const Yi=ni*wa(ni);gi.x=Math.abs(Yi)0||Math.abs(gi.y)>0)&&Ze(!0),(Ue=ai.current)==null||Ue.style.setProperty("--swipe-amount-x",`${gi.x}px`),(hi=ai.current)==null||hi.style.setProperty("--swipe-amount-y",`${gi.y}px`)}},Oi&&!g.jsx&&We!=="loading"?me.createElement("button",{"aria-label":W,"data-disabled":Fe,"data-close-button":!0,onClick:Fe||!mi?()=>{}:()=>{Be(),g.onDismiss==null||g.onDismiss.call(g,g)},className:Na(J==null?void 0:J.closeButton,g==null||(t=g.classNames)==null?void 0:t.closeButton)},(ji=ie==null?void 0:ie.close)!=null?ji:Ak):null,(We||g.icon||g.promise)&&g.icon!==null&&((ie==null?void 0:ie[We])!==null||g.icon)?me.createElement("div",{"data-icon":"",className:Na(J==null?void 0:J.icon,g==null||(u=g.classNames)==null?void 0:u.icon)},g.promise||g.type==="loading"&&!g.icon?g.icon||Ne():null,g.type!=="loading"?Re:null):null,me.createElement("div",{"data-content":"",className:Na(J==null?void 0:J.content,g==null||(l=g.classNames)==null?void 0:l.content)},me.createElement("div",{"data-title":"",className:Na(J==null?void 0:J.title,g==null||(m=g.classNames)==null?void 0:m.title)},g.jsx?g.jsx:typeof g.title=="function"?g.title():g.title),g.description?me.createElement("div",{"data-description":"",className:Na(R,va,J==null?void 0:J.description,g==null||(c=g.classNames)==null?void 0:c.description)},typeof g.description=="function"?g.description():g.description):null),me.isValidElement(g.cancel)?g.cancel:g.cancel&&Ys(g.cancel)?me.createElement("button",{"data-button":!0,"data-cancel":!0,style:g.cancelButtonStyle||F,onClick:Ae=>{Ys(g.cancel)&&mi&&(g.cancel.onClick==null||g.cancel.onClick.call(g.cancel,Ae),Be())},className:Na(J==null?void 0:J.cancelButton,g==null||(h=g.classNames)==null?void 0:h.cancelButton)},g.cancel.label):null,me.isValidElement(g.action)?g.action:g.action&&Ys(g.action)?me.createElement("button",{"data-button":!0,"data-action":!0,style:g.actionButtonStyle||O,onClick:Ae=>{Ys(g.action)&&(g.action.onClick==null||g.action.onClick.call(g.action,Ae),!Ae.defaultPrevented&&Be())},className:Na(J==null?void 0:J.actionButton,g==null||(d=g.classNames)==null?void 0:d.actionButton)},g.action.label):null)};function Km(){if(typeof window>"u"||typeof document>"u")return"ltr";const a=document.documentElement.getAttribute("dir");return a==="auto"||!a?window.getComputedStyle(document.documentElement).direction:a}function Vk(a,r){const o={};return[a,r].forEach((t,u)=>{const l=u===1,m=l?"--mobile-offset":"--offset",c=l?Pk:Tk;function h(d){["top","right","bottom","left"].forEach(y=>{o[`${m}-${y}`]=typeof d=="number"?`${d}px`:d})}typeof t=="number"||typeof t=="string"?h(t):typeof t=="object"?["top","right","bottom","left"].forEach(d=>{t[d]===void 0?o[`${m}-${d}`]=c:o[`${m}-${d}`]=typeof t[d]=="number"?`${t[d]}px`:t[d]}):h(c)}),o}const Uk=me.forwardRef(function(r,o){const{id:t,invert:u,position:l="bottom-right",hotkey:m=["altKey","KeyT"],expand:c,closeButton:h,className:d,offset:y,mobileOffset:g,theme:f="light",richColors:x,duration:w,style:j,visibleToasts:v=Rk,toastOptions:A,dir:q=Km(),gap:k=Ik,icons:C,containerAriaLabel:S="Notifications"}=r,[D,T]=me.useState([]),F=me.useMemo(()=>t?D.filter(L=>L.toasterId===t):D.filter(L=>!L.toasterId),[D,t]),O=me.useMemo(()=>Array.from(new Set([l].concat(F.filter(L=>L.position).map(L=>L.position)))),[F,l]),[N,R]=me.useState([]),[V,H]=me.useState(!1),[$,ae]=me.useState(!1),[J,ie]=me.useState(f!=="system"?f:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),W=me.useRef(null),oe=m.join("+").replace(/Key/g,"").replace(/Digit/g,""),ee=me.useRef(null),z=me.useRef(!1),I=me.useCallback(L=>{T(G=>{var ue;return(ue=G.find(he=>he.id===L.id))!=null&&ue.delete||na.dismiss(L.id),G.filter(({id:he})=>he!==L.id)})},[]);return me.useEffect(()=>na.subscribe(L=>{if(L.dismiss){requestAnimationFrame(()=>{T(G=>G.map(ue=>ue.id===L.id?{...ue,delete:!0}:ue))});return}setTimeout(()=>{Qg.flushSync(()=>{T(G=>{const ue=G.findIndex(he=>he.id===L.id);return ue!==-1?[...G.slice(0,ue),{...G[ue],...L},...G.slice(ue+1)]:[L,...G]})})})}),[D]),me.useEffect(()=>{if(f!=="system"){ie(f);return}if(f==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?ie("dark"):ie("light")),typeof window>"u")return;const L=window.matchMedia("(prefers-color-scheme: dark)");try{L.addEventListener("change",({matches:G})=>{ie(G?"dark":"light")})}catch{L.addListener(({matches:ue})=>{try{ie(ue?"dark":"light")}catch(he){console.error(he)}})}},[f]),me.useEffect(()=>{D.length<=1&&H(!1)},[D]),me.useEffect(()=>{const L=G=>{var ue;if(m.every(re=>G[re]||G.code===re)){var ge;H(!0),(ge=W.current)==null||ge.focus()}G.code==="Escape"&&(document.activeElement===W.current||(ue=W.current)!=null&&ue.contains(document.activeElement))&&H(!1)};return document.addEventListener("keydown",L),()=>document.removeEventListener("keydown",L)},[m]),me.useEffect(()=>{if(W.current)return()=>{ee.current&&(ee.current.focus({preventScroll:!0}),ee.current=null,z.current=!1)}},[W.current]),me.createElement("section",{ref:o,"aria-label":`${S} ${oe}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},O.map((L,G)=>{var ue;const[he,ge]=L.split("-");return F.length?me.createElement("ol",{key:L,dir:q==="auto"?Km():q,tabIndex:-1,ref:W,className:d,"data-sonner-toaster":!0,"data-sonner-theme":J,"data-y-position":he,"data-x-position":ge,style:{"--front-toast-height":`${((ue=N[0])==null?void 0:ue.height)||0}px`,"--width":`${Nk}px`,"--gap":`${k}px`,...j,...Vk(y,g)},onBlur:re=>{z.current&&!re.currentTarget.contains(re.relatedTarget)&&(z.current=!1,ee.current&&(ee.current.focus({preventScroll:!0}),ee.current=null))},onFocus:re=>{re.target instanceof HTMLElement&&re.target.dataset.dismissible==="false"||z.current||(z.current=!0,ee.current=re.relatedTarget)},onMouseEnter:()=>H(!0),onMouseMove:()=>H(!0),onMouseLeave:()=>{$||H(!1)},onDragEnd:()=>H(!1),onPointerDown:re=>{re.target instanceof HTMLElement&&re.target.dataset.dismissible==="false"||ae(!0)},onPointerUp:()=>ae(!1)},F.filter(re=>!re.position&&G===0||re.position===L).map((re,le)=>{var je,Pe;return me.createElement(Lk,{key:re.id,icons:C,index:le,toast:re,defaultRichColors:x,duration:(je=A==null?void 0:A.duration)!=null?je:w,className:A==null?void 0:A.className,descriptionClassName:A==null?void 0:A.descriptionClassName,invert:u,visibleToasts:v,closeButton:(Pe=A==null?void 0:A.closeButton)!=null?Pe:h,interacting:$,position:L,style:A==null?void 0:A.style,unstyled:A==null?void 0:A.unstyled,classNames:A==null?void 0:A.classNames,cancelButtonStyle:A==null?void 0:A.cancelButtonStyle,actionButtonStyle:A==null?void 0:A.actionButtonStyle,closeButtonAriaLabel:A==null?void 0:A.closeButtonAriaLabel,removeToast:I,toasts:F.filter(Ze=>Ze.position==re.position),heights:N.filter(Ze=>Ze.position==re.position),setHeights:R,expandByDefault:c,gap:k,expanded:V,swipeDirections:r.swipeDirections})})):null}))}),Wk=({...a})=>_.jsx(Uk,{theme:"dark",className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-card group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",error:"group-[.toaster]:bg-[#2a1a1a] group-[.toaster]:text-[#e8a0a0] group-[.toaster]:border-[#4a2a2a] [&_[data-description]]:text-[#b08080]"}},...a});function Gk({health:a,config:r,onConfigClick:o,onAdvertise:t,onMenuClick:u}){const l=(a==null?void 0:a.radio_connected)??!1,[m,c]=B.useState(!1),h=async()=>{c(!0);try{const d=await ii.reconnectRadio();d.connected&&Tr.success("Reconnected",{description:d.message})}catch(d){Tr.error("Reconnection failed",{description:d instanceof Error?d.message:"Check radio connection and power"})}finally{c(!1)}};return _.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 bg-[#252525] border-b border-[#333] text-xs",children:[u&&_.jsx("button",{onClick:u,className:"md:hidden p-1 bg-transparent border-none text-[#e0e0e0] cursor-pointer","aria-label":"Open menu",children:_.jsx(yk,{className:"h-5 w-5"})}),_.jsx("h1",{className:"hidden lg:block text-base font-semibold mr-auto",children:"RemoteTerm"}),_.jsxs("div",{className:"flex items-center gap-1 text-[#888]",children:[_.jsx("div",{className:`w-2 h-2 rounded-full ${l?"bg-[#4caf50]":"bg-[#666]"}`}),_.jsx("span",{className:"hidden lg:inline text-[#e0e0e0]",children:l?"Connected":"Disconnected"})]}),(a==null?void 0:a.serial_port)&&_.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["Port: ",_.jsx("span",{className:"text-[#e0e0e0]",children:a.serial_port})]}),r&&_.jsxs(_.Fragment,{children:[_.jsx("div",{className:"hidden lg:flex items-center gap-1 text-[#888]",children:_.jsx("span",{className:"text-[#e0e0e0]",children:r.name||"Unnamed"})}),_.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:[r.radio.freq," MHz/SF",r.radio.sf,"/CR",r.radio.cr,"/",r.tx_power,"dBm"]})]}),_.jsx("div",{className:"flex-1 lg:hidden"}),!l&&_.jsx("button",{onClick:h,disabled:m,className:"px-3 py-1 bg-[#4a3000] border border-[#6b4500] text-[#ffa500] rounded text-xs cursor-pointer hover:bg-[#5a3a00] disabled:opacity-50 disabled:cursor-not-allowed",children:m?"Reconnecting...":"Reconnect"}),_.jsx("button",{onClick:t,disabled:!l,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444] disabled:bg-[#333] disabled:text-[#666] disabled:cursor-not-allowed",children:"Advertise"}),_.jsx("button",{onClick:o,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444]",children:"Config"})]})}const Qk=12;function Bo(a){return a.slice(0,Qk)}function $g(a,r){return!a||!r?!1:Bo(a)===Bo(r)}function Kn(a,r){return a||Bo(r)}const ku="remoteterm-lastMessageTime",wu="remoteterm-lastReadTime";function el(a){try{const r=localStorage.getItem(a);return r?JSON.parse(r):{}}catch{return{}}}function Kg(a,r){try{localStorage.setItem(a,JSON.stringify(r))}catch{}}function Ym(){return el(ku)}function $k(){return el(wu)}function au(a,r){const o=el(ku);return(!o[a]||r>o[a])&&(o[a]=r,Kg(ku,o)),o}function nu(a,r){const o=el(wu);return o[a]=r,Kg(wu,o),o}function an(a,r){return a==="channel"?`channel-${r}`:`contact-${Bo(r)}`}const xu=2,Kk={text:"🛜",background:"#444444",textColor:"#ffffff"};function Yk(a){let r=0;for(let o=0;o>8)%30,u=35+(r>>16)%20,l=`hsl(${o}, ${t}%, ${u}%)`,m=u<45?"#ffffff":"#000000";return{background:l,text:m}}function ew(a,r,o){if(o===xu)return Kk;const t=Xk(a,r),u=Jk(r);return{text:t,background:u.background,textColor:u.text}}function Yg({name:a,publicKey:r,size:o=28,contactType:t}){const u=ew(a,r,t);return _.jsx("div",{className:"flex items-center justify-center rounded-full font-semibold flex-shrink-0 select-none",style:{backgroundColor:u.background,color:u.textColor,width:o,height:o,fontSize:o*.45},children:u.text})}function Zg(a){var r,o,t="";if(typeof a=="string"||typeof a=="number")t+=a;else if(typeof a=="object")if(Array.isArray(a)){var u=a.length;for(r=0;r{const o=new Array(a.length+r.length);for(let t=0;t({classGroupId:a,validator:r}),Jg=(a=new Map,r=null,o)=>({nextPart:a,validators:r,classGroupId:o}),Qt="-",Zm=[],nw="arbitrary..",ow=a=>{const r=sw(a),{conflictingClassGroups:o,conflictingClassGroupModifiers:t}=a;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return rw(m);const c=m.split(Qt),h=c[0]===""&&c.length>1?1:0;return ey(c,h,r)},getConflictingClassGroupIds:(m,c)=>{if(c){const h=t[m],d=o[m];return h?d?iw(d,h):h:d||Zm}return o[m]||Zm}}},ey=(a,r,o)=>{if(a.length-r===0)return o.classGroupId;const u=a[r],l=o.nextPart.get(u);if(l){const d=ey(a,r+1,l);if(d)return d}const m=o.validators;if(m===null)return;const c=r===0?a.join(Qt):a.slice(r).join(Qt),h=m.length;for(let d=0;da.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const r=a.slice(1,-1),o=r.indexOf(":"),t=r.slice(0,o);return t?nw+t:void 0})(),sw=a=>{const{theme:r,classGroups:o}=a;return tw(o,r)},tw=(a,r)=>{const o=Jg();for(const t in a){const u=a[t];Nu(u,o,t,r)}return o},Nu=(a,r,o,t)=>{const u=a.length;for(let l=0;l{if(typeof a=="string"){cw(a,r,o);return}if(typeof a=="function"){uw(a,r,o,t);return}dw(a,r,o,t)},cw=(a,r,o)=>{const t=a===""?r:iy(r,a);t.classGroupId=o},uw=(a,r,o,t)=>{if(pw(a)){Nu(a(t),r,o,t);return}r.validators===null&&(r.validators=[]),r.validators.push(aw(o,a))},dw=(a,r,o,t)=>{const u=Object.entries(a),l=u.length;for(let m=0;m{let o=a;const t=r.split(Qt),u=t.length;for(let l=0;l"isThemeGetter"in a&&a.isThemeGetter===!0,mw=a=>{if(a<1)return{get:()=>{},set:()=>{}};let r=0,o=Object.create(null),t=Object.create(null);const u=(l,m)=>{o[l]=m,r++,r>a&&(r=0,t=o,o=Object.create(null))};return{get(l){let m=o[l];if(m!==void 0)return m;if((m=t[l])!==void 0)return u(l,m),m},set(l,m){l in o?o[l]=m:u(l,m)}}},zu="!",Xm=":",hw=[],Jm=(a,r,o,t,u)=>({modifiers:a,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:t,isExternal:u}),gw=a=>{const{prefix:r,experimentalParseClassName:o}=a;let t=u=>{const l=[];let m=0,c=0,h=0,d;const y=u.length;for(let j=0;jh?d-h:void 0;return Jm(l,x,f,w)};if(r){const u=r+Xm,l=t;t=m=>m.startsWith(u)?l(m.slice(u.length)):Jm(hw,!1,m,void 0,!0)}if(o){const u=t;t=l=>o({className:l,parseClassName:u})}return t},yw=a=>{const r=new Map;return a.orderSensitiveModifiers.forEach((o,t)=>{r.set(o,1e6+t)}),o=>{const t=[];let u=[];for(let l=0;l0&&(u.sort(),t.push(...u),u=[]),t.push(m)):u.push(m)}return u.length>0&&(u.sort(),t.push(...u)),t}},bw=a=>({cache:mw(a.cacheSize),parseClassName:gw(a),sortModifiers:yw(a),...ow(a)}),fw=/\s+/,vw=(a,r)=>{const{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:u,sortModifiers:l}=r,m=[],c=a.trim().split(fw);let h="";for(let d=c.length-1;d>=0;d-=1){const y=c[d],{isExternal:g,modifiers:f,hasImportantModifier:x,baseClassName:w,maybePostfixModifierPosition:j}=o(y);if(g){h=y+(h.length>0?" "+h:h);continue}let v=!!j,A=t(v?w.substring(0,j):w);if(!A){if(!v){h=y+(h.length>0?" "+h:h);continue}if(A=t(w),!A){h=y+(h.length>0?" "+h:h);continue}v=!1}const q=f.length===0?"":f.length===1?f[0]:l(f).join(":"),k=x?q+zu:q,C=k+A;if(m.indexOf(C)>-1)continue;m.push(C);const S=u(A,v);for(let D=0;D0?" "+h:h)}return h},kw=(...a)=>{let r=0,o,t,u="";for(;r{if(typeof a=="string")return a;let r,o="";for(let t=0;t{let o,t,u,l;const m=h=>{const d=r.reduce((y,g)=>g(y),a());return o=bw(d),t=o.cache.get,u=o.cache.set,l=c,c(h)},c=h=>{const d=t(h);if(d)return d;const y=vw(h,o);return u(h,y),y};return l=m,(...h)=>l(kw(...h))},xw=[],Ei=a=>{const r=o=>o[a]||xw;return r.isThemeGetter=!0,r},ny=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,oy=/^\((?:(\w[\w-]*):)?(.+)\)$/i,zw=/^\d+\/\d+$/,qw=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,jw=/\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$/,Aw=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Cw=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ew=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,zo=a=>zw.test(a),Ie=a=>!!a&&!Number.isNaN(Number(a)),zn=a=>!!a&&Number.isInteger(Number(a)),ou=a=>a.endsWith("%")&&Ie(a.slice(0,-1)),Za=a=>qw.test(a),Sw=()=>!0,Bw=a=>jw.test(a)&&!Aw.test(a),ry=()=>!1,_w=a=>Cw.test(a),Dw=a=>Ew.test(a),Fw=a=>!ke(a)&&!we(a),Rw=a=>Ro(a,ly,ry),ke=a=>ny.test(a),Ln=a=>Ro(a,cy,Bw),ru=a=>Ro(a,Mw,Ie),eh=a=>Ro(a,sy,ry),Tw=a=>Ro(a,ty,Dw),Zs=a=>Ro(a,uy,_w),we=a=>oy.test(a),fr=a=>To(a,cy),Pw=a=>To(a,Ow),ih=a=>To(a,sy),Nw=a=>To(a,ly),Iw=a=>To(a,ty),Xs=a=>To(a,uy,!0),Ro=(a,r,o)=>{const t=ny.exec(a);return t?t[1]?r(t[1]):o(t[2]):!1},To=(a,r,o=!1)=>{const t=oy.exec(a);return t?t[1]?r(t[1]):o:!1},sy=a=>a==="position"||a==="percentage",ty=a=>a==="image"||a==="url",ly=a=>a==="length"||a==="size"||a==="bg-size",cy=a=>a==="length",Mw=a=>a==="number",Ow=a=>a==="family-name",uy=a=>a==="shadow",Hw=()=>{const a=Ei("color"),r=Ei("font"),o=Ei("text"),t=Ei("font-weight"),u=Ei("tracking"),l=Ei("leading"),m=Ei("breakpoint"),c=Ei("container"),h=Ei("spacing"),d=Ei("radius"),y=Ei("shadow"),g=Ei("inset-shadow"),f=Ei("text-shadow"),x=Ei("drop-shadow"),w=Ei("blur"),j=Ei("perspective"),v=Ei("aspect"),A=Ei("ease"),q=Ei("animate"),k=()=>["auto","avoid","all","avoid-page","page","left","right","column"],C=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],S=()=>[...C(),we,ke],D=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto","contain","none"],F=()=>[we,ke,h],O=()=>[zo,"full","auto",...F()],N=()=>[zn,"none","subgrid",we,ke],R=()=>["auto",{span:["full",zn,we,ke]},zn,we,ke],V=()=>[zn,"auto",we,ke],H=()=>["auto","min","max","fr",we,ke],$=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ae=()=>["start","end","center","stretch","center-safe","end-safe"],J=()=>["auto",...F()],ie=()=>[zo,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...F()],W=()=>[a,we,ke],oe=()=>[...C(),ih,eh,{position:[we,ke]}],ee=()=>["no-repeat",{repeat:["","x","y","space","round"]}],z=()=>["auto","cover","contain",Nw,Rw,{size:[we,ke]}],I=()=>[ou,fr,Ln],L=()=>["","none","full",d,we,ke],G=()=>["",Ie,fr,Ln],ue=()=>["solid","dashed","dotted","double"],he=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ge=()=>[Ie,ou,ih,eh],re=()=>["","none",w,we,ke],le=()=>["none",Ie,we,ke],je=()=>["none",Ie,we,ke],Pe=()=>[Ie,we,ke],Ze=()=>[zo,"full",...F()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Za],breakpoint:[Za],color:[Sw],container:[Za],"drop-shadow":[Za],ease:["in","out","in-out"],font:[Fw],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Za],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Za],shadow:[Za],spacing:["px",Ie],text:[Za],"text-shadow":[Za],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",zo,ke,we,v]}],container:["container"],columns:[{columns:[Ie,ke,we,c]}],"break-after":[{"break-after":k()}],"break-before":[{"break-before":k()}],"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:S()}],overflow:[{overflow:D()}],"overflow-x":[{"overflow-x":D()}],"overflow-y":[{"overflow-y":D()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:O()}],"inset-x":[{"inset-x":O()}],"inset-y":[{"inset-y":O()}],start:[{start:O()}],end:[{end:O()}],top:[{top:O()}],right:[{right:O()}],bottom:[{bottom:O()}],left:[{left:O()}],visibility:["visible","invisible","collapse"],z:[{z:[zn,"auto",we,ke]}],basis:[{basis:[zo,"full","auto",c,...F()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ie,zo,"auto","initial","none",ke]}],grow:[{grow:["",Ie,we,ke]}],shrink:[{shrink:["",Ie,we,ke]}],order:[{order:[zn,"first","last","none",we,ke]}],"grid-cols":[{"grid-cols":N()}],"col-start-end":[{col:R()}],"col-start":[{"col-start":V()}],"col-end":[{"col-end":V()}],"grid-rows":[{"grid-rows":N()}],"row-start-end":[{row:R()}],"row-start":[{"row-start":V()}],"row-end":[{"row-end":V()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":H()}],"auto-rows":[{"auto-rows":H()}],gap:[{gap:F()}],"gap-x":[{"gap-x":F()}],"gap-y":[{"gap-y":F()}],"justify-content":[{justify:[...$(),"normal"]}],"justify-items":[{"justify-items":[...ae(),"normal"]}],"justify-self":[{"justify-self":["auto",...ae()]}],"align-content":[{content:["normal",...$()]}],"align-items":[{items:[...ae(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ae(),{baseline:["","last"]}]}],"place-content":[{"place-content":$()}],"place-items":[{"place-items":[...ae(),"baseline"]}],"place-self":[{"place-self":["auto",...ae()]}],p:[{p:F()}],px:[{px:F()}],py:[{py:F()}],ps:[{ps:F()}],pe:[{pe:F()}],pt:[{pt:F()}],pr:[{pr:F()}],pb:[{pb:F()}],pl:[{pl:F()}],m:[{m:J()}],mx:[{mx:J()}],my:[{my:J()}],ms:[{ms:J()}],me:[{me:J()}],mt:[{mt:J()}],mr:[{mr:J()}],mb:[{mb:J()}],ml:[{ml:J()}],"space-x":[{"space-x":F()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":F()}],"space-y-reverse":["space-y-reverse"],size:[{size:ie()}],w:[{w:[c,"screen",...ie()]}],"min-w":[{"min-w":[c,"screen","none",...ie()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[m]},...ie()]}],h:[{h:["screen","lh",...ie()]}],"min-h":[{"min-h":["screen","lh","none",...ie()]}],"max-h":[{"max-h":["screen","lh",...ie()]}],"font-size":[{text:["base",o,fr,Ln]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,we,ru]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ou,ke]}],"font-family":[{font:[Pw,ke,r]}],"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:[u,we,ke]}],"line-clamp":[{"line-clamp":[Ie,"none",we,ru]}],leading:[{leading:[l,...F()]}],"list-image":[{"list-image":["none",we,ke]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",we,ke]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:W()}],"text-color":[{text:W()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ue(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ie,"from-font","auto",we,Ln]}],"text-decoration-color":[{decoration:W()}],"underline-offset":[{"underline-offset":[Ie,"auto",we,ke]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:F()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",we,ke]}],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",we,ke]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:oe()}],"bg-repeat":[{bg:ee()}],"bg-size":[{bg:z()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},zn,we,ke],radial:["",we,ke],conic:[zn,we,ke]},Iw,Tw]}],"bg-color":[{bg:W()}],"gradient-from-pos":[{from:I()}],"gradient-via-pos":[{via:I()}],"gradient-to-pos":[{to:I()}],"gradient-from":[{from:W()}],"gradient-via":[{via:W()}],"gradient-to":[{to:W()}],rounded:[{rounded:L()}],"rounded-s":[{"rounded-s":L()}],"rounded-e":[{"rounded-e":L()}],"rounded-t":[{"rounded-t":L()}],"rounded-r":[{"rounded-r":L()}],"rounded-b":[{"rounded-b":L()}],"rounded-l":[{"rounded-l":L()}],"rounded-ss":[{"rounded-ss":L()}],"rounded-se":[{"rounded-se":L()}],"rounded-ee":[{"rounded-ee":L()}],"rounded-es":[{"rounded-es":L()}],"rounded-tl":[{"rounded-tl":L()}],"rounded-tr":[{"rounded-tr":L()}],"rounded-br":[{"rounded-br":L()}],"rounded-bl":[{"rounded-bl":L()}],"border-w":[{border:G()}],"border-w-x":[{"border-x":G()}],"border-w-y":[{"border-y":G()}],"border-w-s":[{"border-s":G()}],"border-w-e":[{"border-e":G()}],"border-w-t":[{"border-t":G()}],"border-w-r":[{"border-r":G()}],"border-w-b":[{"border-b":G()}],"border-w-l":[{"border-l":G()}],"divide-x":[{"divide-x":G()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":G()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ue(),"hidden","none"]}],"divide-style":[{divide:[...ue(),"hidden","none"]}],"border-color":[{border:W()}],"border-color-x":[{"border-x":W()}],"border-color-y":[{"border-y":W()}],"border-color-s":[{"border-s":W()}],"border-color-e":[{"border-e":W()}],"border-color-t":[{"border-t":W()}],"border-color-r":[{"border-r":W()}],"border-color-b":[{"border-b":W()}],"border-color-l":[{"border-l":W()}],"divide-color":[{divide:W()}],"outline-style":[{outline:[...ue(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ie,we,ke]}],"outline-w":[{outline:["",Ie,fr,Ln]}],"outline-color":[{outline:W()}],shadow:[{shadow:["","none",y,Xs,Zs]}],"shadow-color":[{shadow:W()}],"inset-shadow":[{"inset-shadow":["none",g,Xs,Zs]}],"inset-shadow-color":[{"inset-shadow":W()}],"ring-w":[{ring:G()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:W()}],"ring-offset-w":[{"ring-offset":[Ie,Ln]}],"ring-offset-color":[{"ring-offset":W()}],"inset-ring-w":[{"inset-ring":G()}],"inset-ring-color":[{"inset-ring":W()}],"text-shadow":[{"text-shadow":["none",f,Xs,Zs]}],"text-shadow-color":[{"text-shadow":W()}],opacity:[{opacity:[Ie,we,ke]}],"mix-blend":[{"mix-blend":[...he(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":he()}],"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":[Ie]}],"mask-image-linear-from-pos":[{"mask-linear-from":ge()}],"mask-image-linear-to-pos":[{"mask-linear-to":ge()}],"mask-image-linear-from-color":[{"mask-linear-from":W()}],"mask-image-linear-to-color":[{"mask-linear-to":W()}],"mask-image-t-from-pos":[{"mask-t-from":ge()}],"mask-image-t-to-pos":[{"mask-t-to":ge()}],"mask-image-t-from-color":[{"mask-t-from":W()}],"mask-image-t-to-color":[{"mask-t-to":W()}],"mask-image-r-from-pos":[{"mask-r-from":ge()}],"mask-image-r-to-pos":[{"mask-r-to":ge()}],"mask-image-r-from-color":[{"mask-r-from":W()}],"mask-image-r-to-color":[{"mask-r-to":W()}],"mask-image-b-from-pos":[{"mask-b-from":ge()}],"mask-image-b-to-pos":[{"mask-b-to":ge()}],"mask-image-b-from-color":[{"mask-b-from":W()}],"mask-image-b-to-color":[{"mask-b-to":W()}],"mask-image-l-from-pos":[{"mask-l-from":ge()}],"mask-image-l-to-pos":[{"mask-l-to":ge()}],"mask-image-l-from-color":[{"mask-l-from":W()}],"mask-image-l-to-color":[{"mask-l-to":W()}],"mask-image-x-from-pos":[{"mask-x-from":ge()}],"mask-image-x-to-pos":[{"mask-x-to":ge()}],"mask-image-x-from-color":[{"mask-x-from":W()}],"mask-image-x-to-color":[{"mask-x-to":W()}],"mask-image-y-from-pos":[{"mask-y-from":ge()}],"mask-image-y-to-pos":[{"mask-y-to":ge()}],"mask-image-y-from-color":[{"mask-y-from":W()}],"mask-image-y-to-color":[{"mask-y-to":W()}],"mask-image-radial":[{"mask-radial":[we,ke]}],"mask-image-radial-from-pos":[{"mask-radial-from":ge()}],"mask-image-radial-to-pos":[{"mask-radial-to":ge()}],"mask-image-radial-from-color":[{"mask-radial-from":W()}],"mask-image-radial-to-color":[{"mask-radial-to":W()}],"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":C()}],"mask-image-conic-pos":[{"mask-conic":[Ie]}],"mask-image-conic-from-pos":[{"mask-conic-from":ge()}],"mask-image-conic-to-pos":[{"mask-conic-to":ge()}],"mask-image-conic-from-color":[{"mask-conic-from":W()}],"mask-image-conic-to-color":[{"mask-conic-to":W()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:oe()}],"mask-repeat":[{mask:ee()}],"mask-size":[{mask:z()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",we,ke]}],filter:[{filter:["","none",we,ke]}],blur:[{blur:re()}],brightness:[{brightness:[Ie,we,ke]}],contrast:[{contrast:[Ie,we,ke]}],"drop-shadow":[{"drop-shadow":["","none",x,Xs,Zs]}],"drop-shadow-color":[{"drop-shadow":W()}],grayscale:[{grayscale:["",Ie,we,ke]}],"hue-rotate":[{"hue-rotate":[Ie,we,ke]}],invert:[{invert:["",Ie,we,ke]}],saturate:[{saturate:[Ie,we,ke]}],sepia:[{sepia:["",Ie,we,ke]}],"backdrop-filter":[{"backdrop-filter":["","none",we,ke]}],"backdrop-blur":[{"backdrop-blur":re()}],"backdrop-brightness":[{"backdrop-brightness":[Ie,we,ke]}],"backdrop-contrast":[{"backdrop-contrast":[Ie,we,ke]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ie,we,ke]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ie,we,ke]}],"backdrop-invert":[{"backdrop-invert":["",Ie,we,ke]}],"backdrop-opacity":[{"backdrop-opacity":[Ie,we,ke]}],"backdrop-saturate":[{"backdrop-saturate":[Ie,we,ke]}],"backdrop-sepia":[{"backdrop-sepia":["",Ie,we,ke]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":F()}],"border-spacing-x":[{"border-spacing-x":F()}],"border-spacing-y":[{"border-spacing-y":F()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",we,ke]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Ie,"initial",we,ke]}],ease:[{ease:["linear","initial",A,we,ke]}],delay:[{delay:[Ie,we,ke]}],animate:[{animate:["none",q,we,ke]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[j,we,ke]}],"perspective-origin":[{"perspective-origin":S()}],rotate:[{rotate:le()}],"rotate-x":[{"rotate-x":le()}],"rotate-y":[{"rotate-y":le()}],"rotate-z":[{"rotate-z":le()}],scale:[{scale:je()}],"scale-x":[{"scale-x":je()}],"scale-y":[{"scale-y":je()}],"scale-z":[{"scale-z":je()}],"scale-3d":["scale-3d"],skew:[{skew:Pe()}],"skew-x":[{"skew-x":Pe()}],"skew-y":[{"skew-y":Pe()}],transform:[{transform:[we,ke,"","none","gpu","cpu"]}],"transform-origin":[{origin:S()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ze()}],"translate-x":[{"translate-x":Ze()}],"translate-y":[{"translate-y":Ze()}],"translate-z":[{"translate-z":Ze()}],"translate-none":["translate-none"],accent:[{accent:W()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:W()}],"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",we,ke]}],"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":F()}],"scroll-mx":[{"scroll-mx":F()}],"scroll-my":[{"scroll-my":F()}],"scroll-ms":[{"scroll-ms":F()}],"scroll-me":[{"scroll-me":F()}],"scroll-mt":[{"scroll-mt":F()}],"scroll-mr":[{"scroll-mr":F()}],"scroll-mb":[{"scroll-mb":F()}],"scroll-ml":[{"scroll-ml":F()}],"scroll-p":[{"scroll-p":F()}],"scroll-px":[{"scroll-px":F()}],"scroll-py":[{"scroll-py":F()}],"scroll-ps":[{"scroll-ps":F()}],"scroll-pe":[{"scroll-pe":F()}],"scroll-pt":[{"scroll-pt":F()}],"scroll-pr":[{"scroll-pr":F()}],"scroll-pb":[{"scroll-pb":F()}],"scroll-pl":[{"scroll-pl":F()}],"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",we,ke]}],fill:[{fill:["none",...W()]}],"stroke-w":[{stroke:[Ie,fr,Ln,ru]}],stroke:[{stroke:["none",...W()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","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","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","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-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-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-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-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"]}},Lw=ww(Hw);function Ke(...a){return Lw(Xg(a))}const wi=B.forwardRef(({className:a,type:r,...o},t)=>_.jsx("input",{type:r,className:Ke("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background 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-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a),ref:t,...o}));wi.displayName="Input";function ah(a,r){if(typeof a=="function")return a(r);a!=null&&(a.current=r)}function Or(...a){return r=>{let o=!1;const t=a.map(u=>{const l=ah(u,r);return!o&&typeof l=="function"&&(o=!0),l});if(o)return()=>{for(let u=0;u{let{children:l,...m}=t;dy(l)&&typeof $t=="function"&&(l=$t(l._payload));const c=B.Children.toArray(l),h=c.find($w);if(h){const d=h.props.children,y=c.map(g=>g===h?B.Children.count(d)>1?B.Children.only(null):B.isValidElement(d)?d.props.children:null:g);return _.jsx(r,{...m,ref:u,children:B.isValidElement(d)?B.cloneElement(d,void 0,y):null})}return _.jsx(r,{...m,ref:u,children:l})});return o.displayName=`${a}.Slot`,o}var Ww=Iu("Slot");function Gw(a){const r=B.forwardRef((o,t)=>{let{children:u,...l}=o;if(dy(u)&&typeof $t=="function"&&(u=$t(u._payload)),B.isValidElement(u)){const m=Yw(u),c=Kw(l,u.props);return u.type!==B.Fragment&&(c.ref=t?Or(t,m):m),B.cloneElement(u,c)}return B.Children.count(u)>1?B.Children.only(null):null});return r.displayName=`${a}.SlotClone`,r}var Qw=Symbol("radix.slottable");function $w(a){return B.isValidElement(a)&&typeof a.type=="function"&&"__radixId"in a.type&&a.type.__radixId===Qw}function Kw(a,r){const o={...r};for(const t in r){const u=a[t],l=r[t];/^on[A-Z]/.test(t)?u&&l?o[t]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[t]=u):t==="style"?o[t]={...u,...l}:t==="className"&&(o[t]=[u,l].filter(Boolean).join(" "))}return{...a,...o}}function Yw(a){var t,u;let r=(t=Object.getOwnPropertyDescriptor(a.props,"ref"))==null?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?a.ref:(r=(u=Object.getOwnPropertyDescriptor(a,"ref"))==null?void 0:u.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}const nh=a=>typeof a=="boolean"?`${a}`:a===0?"0":a,oh=Xg,il=(a,r)=>o=>{var t;if((r==null?void 0:r.variants)==null)return oh(a,o==null?void 0:o.class,o==null?void 0:o.className);const{variants:u,defaultVariants:l}=r,m=Object.keys(u).map(d=>{const y=o==null?void 0:o[d],g=l==null?void 0:l[d];if(y===null)return null;const f=nh(y)||nh(g);return u[d][f]}),c=o&&Object.entries(o).reduce((d,y)=>{let[g,f]=y;return f===void 0||(d[g]=f),d},{}),h=r==null||(t=r.compoundVariants)===null||t===void 0?void 0:t.reduce((d,y)=>{let{class:g,className:f,...x}=y;return Object.entries(x).every(w=>{let[j,v]=w;return Array.isArray(v)?v.includes({...l,...c}[j]):{...l,...c}[j]===v})?[...d,g,f]:d},[]);return oh(a,m,h,o==null?void 0:o.class,o==null?void 0:o.className)},Zw=il("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),Ha=B.forwardRef(({className:a,variant:r,size:o,asChild:t=!1,...u},l)=>{const m=t?Ww:"button";return _.jsx(m,{className:Ke(Zw({variant:r,size:o,className:a})),ref:l,...u})});Ha.displayName="Button";function Xw(){try{return localStorage.getItem("remoteterm-sortOrder")==="alpha"?"alpha":"recent"}catch{return"recent"}}function Jw(a){try{localStorage.setItem("remoteterm-sortOrder",a)}catch{}}function ex({contacts:a,channels:r,activeConversation:o,onSelectConversation:t,onNewMessage:u,lastMessageTimes:l,unreadCounts:m,showCracker:c,crackerRunning:h,onToggleCracker:d,onMarkAllRead:y}){const[g,f]=B.useState(Xw),[x,w]=B.useState(""),j=()=>{const R=g==="alpha"?"recent":"alpha";f(R),Jw(R)},v=R=>{w(""),t(R)},A=(R,V)=>(o==null?void 0:o.type)===R&&(o==null?void 0:o.id)===V,q=(R,V)=>{const H=an(R,V);return m[H]||0},k=(R,V)=>{const H=an(R,V);return l[H]||0},C=r.reduce((R,V)=>(R.some(H=>H.name===V.name)||R.push(V),R),[]),S=a.filter(R=>R.public_key&&R.public_key.length>0).sort((R,V)=>R.name&&!V.name?-1:!R.name&&V.name?1:(R.name||"").localeCompare(V.name||"")).reduce((R,V)=>{const H=Bo(V.public_key);return R.some($=>Bo($.public_key)===H)||R.push(V),R},[]),D=[...C].sort((R,V)=>{if(R.name==="Public")return-1;if(V.name==="Public")return 1;if(g==="recent"){const H=k("channel",R.key),$=k("channel",V.key);if(H&&$)return $-H;if(H&&!$)return-1;if(!H&&$)return 1}return R.name.localeCompare(V.name)}),T=[...S].sort((R,V)=>{const H=R.type===xu,$=V.type===xu;if(H&&!$)return 1;if(!H&&$)return-1;if(H&&$)return(R.name||R.public_key).localeCompare(V.name||V.public_key);if(g==="recent"){const ae=k("contact",R.public_key),J=k("contact",V.public_key);if(ae&&J)return J-ae;if(ae&&!J)return-1;if(!ae&&J)return 1}return(R.name||R.public_key).localeCompare(V.name||V.public_key)}),F=x.toLowerCase().trim(),O=F?D.filter(R=>R.name.toLowerCase().includes(F)):D,N=F?T.filter(R=>{var V;return((V=R.name)==null?void 0:V.toLowerCase().includes(F))||R.public_key.toLowerCase().includes(F)}):T;return _.jsxs("div",{className:"sidebar w-60 h-full min-h-0 bg-card border-r border-border flex flex-col",children:[_.jsxs("div",{className:"flex justify-between items-center px-3 py-3 border-b border-border",children:[_.jsx("h2",{className:"text-xs uppercase text-muted-foreground font-medium",children:"Conversations"}),_.jsx(Ha,{variant:"ghost",size:"sm",onClick:u,title:"New Message",className:"h-6 w-6 p-0 text-muted-foreground hover:text-foreground",children:"+"})]}),_.jsxs("div",{className:"relative px-3 py-2 border-b border-border",children:[_.jsx(wi,{type:"text",placeholder:"Search...",value:x,onChange:R=>w(R.target.value),className:"h-8 text-sm pr-8"}),x&&_.jsx("button",{className:"absolute right-4 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground text-lg leading-none",onClick:()=>w(""),title:"Clear search",children:"×"})]}),_.jsxs("div",{className:"flex-1 overflow-y-auto",children:[!F&&_.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",A("raw","raw")&&"bg-accent border-l-primary"),onClick:()=>v({type:"raw",id:"raw",name:"Raw Packet Feed"}),children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"📡"}),_.jsx("span",{className:"flex-1 truncate",children:"Packet Feed"})]}),!F&&_.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",c&&"bg-accent border-l-primary"),onClick:d,children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"🔓"}),_.jsxs("span",{className:"flex-1 truncate",children:[c?"Hide":"Show"," Cracker",_.jsxs("span",{className:Ke("ml-1 text-xs",h?"text-green-500":"text-muted-foreground"),children:["(",h?"running":"stopped",")"]})]})]}),!F&&Object.keys(m).length>0&&_.jsxs("div",{className:"px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",onClick:y,children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"✓"}),_.jsx("span",{className:"flex-1 truncate text-muted-foreground",children:"Mark all as read"})]}),O.length>0&&_.jsxs(_.Fragment,{children:[_.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[_.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Channels"}),_.jsx("button",{className:"bg-transparent border border-border text-muted-foreground px-1.5 py-0.5 text-[10px] rounded hover:bg-accent hover:text-foreground",onClick:j,title:g==="alpha"?"Sort by recent":"Sort alphabetically",children:g==="alpha"?"A-Z":"⏱"})]}),O.map(R=>{const V=q("channel",R.key);return _.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",A("channel",R.key)&&"bg-accent border-l-primary",V>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>v({type:"channel",id:R.key,name:R.name}),children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"#"}),_.jsx("span",{className:"name flex-1 truncate",children:R.name}),V>0&&_.jsx("span",{className:"bg-primary text-primary-foreground text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",children:V})]},`chan-${R.key}`)})]}),N.length>0&&_.jsxs(_.Fragment,{children:[_.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[_.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Contacts"}),O.length===0&&_.jsx("button",{className:"bg-transparent border border-border text-muted-foreground px-1.5 py-0.5 text-[10px] rounded hover:bg-accent hover:text-foreground",onClick:j,title:g==="alpha"?"Sort by recent":"Sort alphabetically",children:g==="alpha"?"A-Z":"⏱"})]}),N.map(R=>{const V=q("contact",R.public_key);return _.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",A("contact",R.public_key)&&"bg-accent border-l-primary",V>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>v({type:"contact",id:R.public_key,name:Kn(R.name,R.public_key)}),children:[_.jsx(Yg,{name:R.name,publicKey:R.public_key,size:24,contactType:R.type}),_.jsx("span",{className:"name flex-1 truncate",children:Kn(R.name,R.public_key)}),V>0&&_.jsx("span",{className:"bg-primary text-primary-foreground text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",children:V})]},R.public_key)})]}),N.length===0&&O.length===0&&_.jsx("div",{className:"p-5 text-center text-muted-foreground",children:F?"No matches found":"No conversations yet"})]})]})}function rh(a){const r=a.indexOf(": ");if(r>0&&r<50){const o=a.substring(0,r);if(!/[:\[\]]/.test(o))return{sender:o,content:a.substring(r+2)}}return{sender:null,content:a}}function sh(a){const r=new Date(a*1e3),o=new Date,t=r.toDateString()===o.toDateString(),u=r.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return t?u:`${r.toLocaleDateString([],{month:"short",day:"numeric"})} ${u}`}function ix({messages:a,contacts:r,loading:o,loadingOlder:t=!1,hasOlderMessages:u=!1,onSenderClick:l,onLoadOlder:m}){const c=B.useRef(null),h=B.useRef(0),d=B.useRef(!0),[y,g]=B.useState(!1),f=B.useRef({scrollTop:0,scrollHeight:0,wasNearTop:!1});B.useLayoutEffect(()=>{if(!c.current)return;const C=c.current,S=a.length-h.current;if(d.current&&a.length>0)C.scrollTop=C.scrollHeight,d.current=!1;else if(S>0&&h.current>0){const D=C.scrollHeight-f.current.scrollHeight;f.current.wasNearTop&&D>0?C.scrollTop=f.current.scrollTop+D:f.current.wasNearTop||(C.scrollTop=C.scrollHeight)}h.current=a.length},[a]),B.useEffect(()=>{a.length===0&&(d.current=!0,h.current=0,f.current={scrollTop:0,scrollHeight:0,wasNearTop:!1})},[a.length]);const x=B.useCallback(()=>{if(!c.current)return;const{scrollTop:C,scrollHeight:S,clientHeight:D}=c.current;f.current={scrollTop:C,scrollHeight:S,wasNearTop:C<150};const T=S-C-D;g(T>100),!(!m||t||!u)&&C<100&&m()},[m,t,u]),w=B.useCallback(()=>{c.current&&(c.current.scrollTop=c.current.scrollHeight)},[]),j=C=>C&&r.find(S=>$g(S.public_key,C))||null,v=C=>r.find(S=>S.name===C)||null;if(o)return _.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"Loading messages..."});if(a.length===0)return _.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"No messages yet"});const q=[...a.reduce((C,S)=>{const D=`${S.type}-${S.conversation_key}-${S.text}-${S.sender_timestamp}`;return C.find(F=>`${F.type}-${F.conversation_key}-${F.text}-${F.sender_timestamp}`===D)||C.push(S),C},[])].sort((C,S)=>C.received_at-S.received_at),k=(C,S)=>C.outgoing?"__outgoing__":C.type==="PRIV"&&C.conversation_key?C.conversation_key:S||"__unknown__";return _.jsxs("div",{className:"flex-1 overflow-hidden relative",children:[_.jsxs("div",{className:"h-full overflow-y-auto p-4 flex flex-col gap-0.5",ref:c,onScroll:x,children:[t&&_.jsx("div",{className:"text-center py-2 text-muted-foreground text-sm",children:"Loading older messages..."}),!t&&u&&_.jsx("div",{className:"text-center py-2 text-muted-foreground text-xs",children:"Scroll up for older messages"}),q.map((C,S)=>{var W;const{sender:D,content:T}=rh(C.text),F=C.type==="PRIV"?j(C.conversation_key):null,O=C.outgoing?"You":(F==null?void 0:F.name)||D||((W=C.conversation_key)==null?void 0:W.slice(0,8))||"Unknown",N=!C.outgoing&&l&&O!=="Unknown",R=k(C,D),V=q[S-1],H=V?k(V,rh(V.text).sender):null,$=!C.outgoing&&R!==H,ae=S===0;let J=null,ie="";if(!C.outgoing){if(C.type==="PRIV"&&C.conversation_key)J=(F==null?void 0:F.name)||null,ie=C.conversation_key;else if(D){const oe=v(D);J=D,ie=(oe==null?void 0:oe.public_key)||`name:${D}`}}return _.jsxs("div",{className:Ke("flex items-start max-w-[85%]",C.outgoing&&"flex-row-reverse self-end",$&&!ae&&"mt-3"),children:[!C.outgoing&&_.jsx("div",{className:"w-10 flex-shrink-0 flex items-start pt-0.5",children:$&&ie&&_.jsx(Yg,{name:J,publicKey:ie,size:32})}),_.jsxs("div",{className:Ke("py-1.5 px-3 rounded-lg min-w-0",C.outgoing?"bg-[#1e3a29]":"bg-muted"),children:[$&&_.jsxs("div",{className:"text-[13px] font-semibold text-muted-foreground mb-0.5",children:[N?_.jsx("span",{className:"cursor-pointer hover:text-primary hover:underline",onClick:()=>l(O),title:`Mention ${O}`,children:O}):O,_.jsx("span",{className:"font-normal text-muted-foreground/70 ml-2 text-[11px]",children:sh(C.sender_timestamp||C.received_at)})]}),_.jsxs("div",{className:"break-words whitespace-pre-wrap",children:[T.split(` -`).map((oe,ee,z)=>_.jsxs("span",{children:[oe,ee({appendText:f=>{var x;m(w=>w+f),(x=d.current)==null||x.focus()}}));const y=B.useCallback(async f=>{f.preventDefault();const x=l.trim();if(!(!x||c||o)){h(!0);try{await r(x),m("")}catch(w){console.error("Failed to send message:",w)}finally{h(!1)}}},[l,c,o,r]),g=B.useCallback(f=>{f.key==="Enter"&&!f.shiftKey&&(f.preventDefault(),y(f))},[y]);return _.jsxs("form",{className:"px-4 py-3 border-t border-border flex gap-2",onSubmit:y,children:[_.jsx(wi,{ref:d,type:"text",value:l,onChange:f=>m(f.target.value),onKeyDown:g,placeholder:t||"Type a message...",disabled:o||c,className:"flex-1"}),_.jsx(Ha,{type:"submit",disabled:o||c||!l.trim(),children:c?"Sending...":"Send"})]})});function Si(a,r,{checkForDefaultPrevented:o=!0}={}){return function(u){if(a==null||a(u),o===!1||!u.defaultPrevented)return r==null?void 0:r(u)}}function nx(a,r){const o=B.createContext(r),t=l=>{const{children:m,...c}=l,h=B.useMemo(()=>c,Object.values(c));return _.jsx(o.Provider,{value:h,children:m})};t.displayName=a+"Provider";function u(l){const m=B.useContext(o);if(m)return m;if(r!==void 0)return r;throw new Error(`\`${l}\` must be used within \`${a}\``)}return[t,u]}function Hr(a,r=[]){let o=[];function t(l,m){const c=B.createContext(m),h=o.length;o=[...o,m];const d=g=>{var A;const{scope:f,children:x,...w}=g,j=((A=f==null?void 0:f[a])==null?void 0:A[h])||c,v=B.useMemo(()=>w,Object.values(w));return _.jsx(j.Provider,{value:v,children:x})};d.displayName=l+"Provider";function y(g,f){var j;const x=((j=f==null?void 0:f[a])==null?void 0:j[h])||c,w=B.useContext(x);if(w)return w;if(m!==void 0)return m;throw new Error(`\`${g}\` must be used within \`${l}\``)}return[d,y]}const u=()=>{const l=o.map(m=>B.createContext(m));return function(c){const h=(c==null?void 0:c[a])||l;return B.useMemo(()=>({[`__scope${a}`]:{...c,[a]:h}}),[c,h])}};return u.scopeName=a,[t,ox(u,...r)]}function ox(...a){const r=a[0];if(a.length===1)return r;const o=()=>{const t=a.map(u=>({useScope:u(),scopeName:u.scopeName}));return function(l){const m=t.reduce((c,{useScope:h,scopeName:d})=>{const g=h(l)[`__scope${d}`];return{...c,...g}},{});return B.useMemo(()=>({[`__scope${r.scopeName}`]:m}),[m])}};return o.scopeName=r.scopeName,o}var _o=globalThis!=null&&globalThis.document?B.useLayoutEffect:()=>{},rx=Tu[" useId ".trim().toString()]||(()=>{}),sx=0;function Pr(a){const[r,o]=B.useState(rx());return _o(()=>{o(t=>t??String(sx++))},[a]),r?`radix-${r}`:""}var tx=Tu[" useInsertionEffect ".trim().toString()]||_o;function al({prop:a,defaultProp:r,onChange:o=()=>{},caller:t}){const[u,l,m]=lx({defaultProp:r,onChange:o}),c=a!==void 0,h=c?a:u;{const y=B.useRef(a!==void 0);B.useEffect(()=>{const g=y.current;g!==c&&console.warn(`${t} is changing from ${g?"controlled":"uncontrolled"} to ${c?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),y.current=c},[c,t])}const d=B.useCallback(y=>{var g;if(c){const f=cx(y)?y(a):y;f!==a&&((g=m.current)==null||g.call(m,f))}else l(y)},[c,a,l,m]);return[h,d]}function lx({defaultProp:a,onChange:r}){const[o,t]=B.useState(a),u=B.useRef(o),l=B.useRef(r);return tx(()=>{l.current=r},[r]),B.useEffect(()=>{var m;u.current!==o&&((m=l.current)==null||m.call(l,o),u.current=o)},[o,u]),[o,t,l]}function cx(a){return typeof a=="function"}function ux(a){const r=dx(a),o=B.forwardRef((t,u)=>{const{children:l,...m}=t,c=B.Children.toArray(l),h=c.find(mx);if(h){const d=h.props.children,y=c.map(g=>g===h?B.Children.count(d)>1?B.Children.only(null):B.isValidElement(d)?d.props.children:null:g);return _.jsx(r,{...m,ref:u,children:B.isValidElement(d)?B.cloneElement(d,void 0,y):null})}return _.jsx(r,{...m,ref:u,children:l})});return o.displayName=`${a}.Slot`,o}function dx(a){const r=B.forwardRef((o,t)=>{const{children:u,...l}=o;if(B.isValidElement(u)){const m=gx(u),c=hx(l,u.props);return u.type!==B.Fragment&&(c.ref=t?Or(t,m):m),B.cloneElement(u,c)}return B.Children.count(u)>1?B.Children.only(null):null});return r.displayName=`${a}.SlotClone`,r}var px=Symbol("radix.slottable");function mx(a){return B.isValidElement(a)&&typeof a.type=="function"&&"__radixId"in a.type&&a.type.__radixId===px}function hx(a,r){const o={...r};for(const t in r){const u=a[t],l=r[t];/^on[A-Z]/.test(t)?u&&l?o[t]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[t]=u):t==="style"?o[t]={...u,...l}:t==="className"&&(o[t]=[u,l].filter(Boolean).join(" "))}return{...a,...o}}function gx(a){var t,u;let r=(t=Object.getOwnPropertyDescriptor(a.props,"ref"))==null?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?a.ref:(r=(u=Object.getOwnPropertyDescriptor(a,"ref"))==null?void 0:u.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}var yx=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Fi=yx.reduce((a,r)=>{const o=ux(`Primitive.${r}`),t=B.forwardRef((u,l)=>{const{asChild:m,...c}=u,h=m?o:r;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),_.jsx(h,{...c,ref:l})});return t.displayName=`Primitive.${r}`,{...a,[r]:t}},{});function bx(a,r){a&&Gg.flushSync(()=>a.dispatchEvent(r))}function Do(a){const r=B.useRef(a);return B.useEffect(()=>{r.current=a}),B.useMemo(()=>(...o)=>{var t;return(t=r.current)==null?void 0:t.call(r,...o)},[])}function fx(a,r=globalThis==null?void 0:globalThis.document){const o=Do(a);B.useEffect(()=>{const t=u=>{u.key==="Escape"&&o(u)};return r.addEventListener("keydown",t,{capture:!0}),()=>r.removeEventListener("keydown",t,{capture:!0})},[o,r])}var vx="DismissableLayer",qu="dismissableLayer.update",kx="dismissableLayer.pointerDownOutside",wx="dismissableLayer.focusOutside",th,py=B.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),my=B.forwardRef((a,r)=>{const{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:t,onPointerDownOutside:u,onFocusOutside:l,onInteractOutside:m,onDismiss:c,...h}=a,d=B.useContext(py),[y,g]=B.useState(null),f=(y==null?void 0:y.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,x]=B.useState({}),w=fa(r,T=>g(T)),j=Array.from(d.layers),[v]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),A=j.indexOf(v),q=y?j.indexOf(y):-1,k=d.layersWithOutsidePointerEventsDisabled.size>0,C=q>=A,S=qx(T=>{const F=T.target,O=[...d.branches].some(N=>N.contains(F));!C||O||(u==null||u(T),m==null||m(T),T.defaultPrevented||c==null||c())},f),D=jx(T=>{const F=T.target;[...d.branches].some(N=>N.contains(F))||(l==null||l(T),m==null||m(T),T.defaultPrevented||c==null||c())},f);return fx(T=>{q===d.layers.size-1&&(t==null||t(T),!T.defaultPrevented&&c&&(T.preventDefault(),c()))},f),B.useEffect(()=>{if(y)return o&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(th=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(y)),d.layers.add(y),lh(),()=>{o&&d.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=th)}},[y,f,o,d]),B.useEffect(()=>()=>{y&&(d.layers.delete(y),d.layersWithOutsidePointerEventsDisabled.delete(y),lh())},[y,d]),B.useEffect(()=>{const T=()=>x({});return document.addEventListener(qu,T),()=>document.removeEventListener(qu,T)},[]),_.jsx(Fi.div,{...h,ref:w,style:{pointerEvents:k?C?"auto":"none":void 0,...a.style},onFocusCapture:Si(a.onFocusCapture,D.onFocusCapture),onBlurCapture:Si(a.onBlurCapture,D.onBlurCapture),onPointerDownCapture:Si(a.onPointerDownCapture,S.onPointerDownCapture)})});my.displayName=vx;var xx="DismissableLayerBranch",zx=B.forwardRef((a,r)=>{const o=B.useContext(py),t=B.useRef(null),u=fa(r,t);return B.useEffect(()=>{const l=t.current;if(l)return o.branches.add(l),()=>{o.branches.delete(l)}},[o.branches]),_.jsx(Fi.div,{...a,ref:u})});zx.displayName=xx;function qx(a,r=globalThis==null?void 0:globalThis.document){const o=Do(a),t=B.useRef(!1),u=B.useRef(()=>{});return B.useEffect(()=>{const l=c=>{if(c.target&&!t.current){let h=function(){hy(kx,o,d,{discrete:!0})};const d={originalEvent:c};c.pointerType==="touch"?(r.removeEventListener("click",u.current),u.current=h,r.addEventListener("click",u.current,{once:!0})):h()}else r.removeEventListener("click",u.current);t.current=!1},m=window.setTimeout(()=>{r.addEventListener("pointerdown",l)},0);return()=>{window.clearTimeout(m),r.removeEventListener("pointerdown",l),r.removeEventListener("click",u.current)}},[r,o]),{onPointerDownCapture:()=>t.current=!0}}function jx(a,r=globalThis==null?void 0:globalThis.document){const o=Do(a),t=B.useRef(!1);return B.useEffect(()=>{const u=l=>{l.target&&!t.current&&hy(wx,o,{originalEvent:l},{discrete:!1})};return r.addEventListener("focusin",u),()=>r.removeEventListener("focusin",u)},[r,o]),{onFocusCapture:()=>t.current=!0,onBlurCapture:()=>t.current=!1}}function lh(){const a=new CustomEvent(qu);document.dispatchEvent(a)}function hy(a,r,o,{discrete:t}){const u=o.originalEvent.target,l=new CustomEvent(a,{bubbles:!1,cancelable:!0,detail:o});r&&u.addEventListener(a,r,{once:!0}),t?bx(u,l):u.dispatchEvent(l)}var su="focusScope.autoFocusOnMount",tu="focusScope.autoFocusOnUnmount",ch={bubbles:!1,cancelable:!0},Ax="FocusScope",gy=B.forwardRef((a,r)=>{const{loop:o=!1,trapped:t=!1,onMountAutoFocus:u,onUnmountAutoFocus:l,...m}=a,[c,h]=B.useState(null),d=Do(u),y=Do(l),g=B.useRef(null),f=fa(r,j=>h(j)),x=B.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;B.useEffect(()=>{if(t){let j=function(k){if(x.paused||!c)return;const C=k.target;c.contains(C)?g.current=C:qn(g.current,{select:!0})},v=function(k){if(x.paused||!c)return;const C=k.relatedTarget;C!==null&&(c.contains(C)||qn(g.current,{select:!0}))},A=function(k){if(document.activeElement===document.body)for(const S of k)S.removedNodes.length>0&&qn(c)};document.addEventListener("focusin",j),document.addEventListener("focusout",v);const q=new MutationObserver(A);return c&&q.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",j),document.removeEventListener("focusout",v),q.disconnect()}}},[t,c,x.paused]),B.useEffect(()=>{if(c){dh.add(x);const j=document.activeElement;if(!c.contains(j)){const A=new CustomEvent(su,ch);c.addEventListener(su,d),c.dispatchEvent(A),A.defaultPrevented||(Cx(Dx(yy(c)),{select:!0}),document.activeElement===j&&qn(c))}return()=>{c.removeEventListener(su,d),setTimeout(()=>{const A=new CustomEvent(tu,ch);c.addEventListener(tu,y),c.dispatchEvent(A),A.defaultPrevented||qn(j??document.body,{select:!0}),c.removeEventListener(tu,y),dh.remove(x)},0)}}},[c,d,y,x]);const w=B.useCallback(j=>{if(!o&&!t||x.paused)return;const v=j.key==="Tab"&&!j.altKey&&!j.ctrlKey&&!j.metaKey,A=document.activeElement;if(v&&A){const q=j.currentTarget,[k,C]=Ex(q);k&&C?!j.shiftKey&&A===C?(j.preventDefault(),o&&qn(k,{select:!0})):j.shiftKey&&A===k&&(j.preventDefault(),o&&qn(C,{select:!0})):A===q&&j.preventDefault()}},[o,t,x.paused]);return _.jsx(Fi.div,{tabIndex:-1,...m,ref:f,onKeyDown:w})});gy.displayName=Ax;function Cx(a,{select:r=!1}={}){const o=document.activeElement;for(const t of a)if(qn(t,{select:r}),document.activeElement!==o)return}function Ex(a){const r=yy(a),o=uh(r,a),t=uh(r.reverse(),a);return[o,t]}function yy(a){const r=[],o=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,{acceptNode:t=>{const u=t.tagName==="INPUT"&&t.type==="hidden";return t.disabled||t.hidden||u?NodeFilter.FILTER_SKIP:t.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)r.push(o.currentNode);return r}function uh(a,r){for(const o of a)if(!Sx(o,{upTo:r}))return o}function Sx(a,{upTo:r}){if(getComputedStyle(a).visibility==="hidden")return!0;for(;a;){if(r!==void 0&&a===r)return!1;if(getComputedStyle(a).display==="none")return!0;a=a.parentElement}return!1}function Bx(a){return a instanceof HTMLInputElement&&"select"in a}function qn(a,{select:r=!1}={}){if(a&&a.focus){const o=document.activeElement;a.focus({preventScroll:!0}),a!==o&&Bx(a)&&r&&a.select()}}var dh=_x();function _x(){let a=[];return{add(r){const o=a[0];r!==o&&(o==null||o.pause()),a=ph(a,r),a.unshift(r)},remove(r){var o;a=ph(a,r),(o=a[0])==null||o.resume()}}}function ph(a,r){const o=[...a],t=o.indexOf(r);return t!==-1&&o.splice(t,1),o}function Dx(a){return a.filter(r=>r.tagName!=="A")}var Fx="Portal",by=B.forwardRef((a,r)=>{var c;const{container:o,...t}=a,[u,l]=B.useState(!1);_o(()=>l(!0),[]);const m=o||u&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return m?Qg.createPortal(_.jsx(Fi.div,{...t,ref:r}),m):null});by.displayName=Fx;function Rx(a,r){return B.useReducer((o,t)=>r[o][t]??o,a)}var Po=a=>{const{present:r,children:o}=a,t=Tx(r),u=typeof o=="function"?o({present:t.isPresent}):B.Children.only(o),l=fa(t.ref,Px(u));return typeof o=="function"||t.isPresent?B.cloneElement(u,{ref:l}):null};Po.displayName="Presence";function Tx(a){const[r,o]=B.useState(),t=B.useRef(null),u=B.useRef(a),l=B.useRef("none"),m=a?"mounted":"unmounted",[c,h]=Rx(m,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return B.useEffect(()=>{const d=Js(t.current);l.current=c==="mounted"?d:"none"},[c]),_o(()=>{const d=t.current,y=u.current;if(y!==a){const f=l.current,x=Js(d);a?h("MOUNT"):x==="none"||(d==null?void 0:d.display)==="none"?h("UNMOUNT"):h(y&&f!==x?"ANIMATION_OUT":"UNMOUNT"),u.current=a}},[a,h]),_o(()=>{if(r){let d;const y=r.ownerDocument.defaultView??window,g=x=>{const j=Js(t.current).includes(CSS.escape(x.animationName));if(x.target===r&&j&&(h("ANIMATION_END"),!u.current)){const v=r.style.animationFillMode;r.style.animationFillMode="forwards",d=y.setTimeout(()=>{r.style.animationFillMode==="forwards"&&(r.style.animationFillMode=v)})}},f=x=>{x.target===r&&(l.current=Js(t.current))};return r.addEventListener("animationstart",f),r.addEventListener("animationcancel",g),r.addEventListener("animationend",g),()=>{y.clearTimeout(d),r.removeEventListener("animationstart",f),r.removeEventListener("animationcancel",g),r.removeEventListener("animationend",g)}}else h("ANIMATION_END")},[r,h]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:B.useCallback(d=>{t.current=d?getComputedStyle(d):null,o(d)},[])}}function Js(a){return(a==null?void 0:a.animationName)||"none"}function Px(a){var t,u;let r=(t=Object.getOwnPropertyDescriptor(a.props,"ref"))==null?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?a.ref:(r=(u=Object.getOwnPropertyDescriptor(a,"ref"))==null?void 0:u.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}var lu=0;function Nx(){B.useEffect(()=>{const a=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",a[0]??mh()),document.body.insertAdjacentElement("beforeend",a[1]??mh()),lu++,()=>{lu===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),lu--}},[])}function mh(){const a=document.createElement("span");return a.setAttribute("data-radix-focus-guard",""),a.tabIndex=0,a.style.outline="none",a.style.opacity="0",a.style.position="fixed",a.style.pointerEvents="none",a}var Oa=function(){return Oa=Object.assign||function(r){for(var o,t=1,u=arguments.length;t"u")return ez;var r=iz(a),o=document.documentElement.clientWidth,t=window.innerWidth;return{left:r[0],top:r[1],right:r[2],gap:Math.max(0,t-o+r[2]-r[0])}},nz=wy(),Eo="data-scroll-locked",oz=function(a,r,o,t){var u=a.left,l=a.top,m=a.right,c=a.gap;return o===void 0&&(o="margin"),` + */const bk=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Wg=Pu("x",bk);var Gg=Vg();const Qg=Fo(Gg);function fk(a){if(typeof document>"u")return;let r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",r.appendChild(o),o.styleSheet?o.styleSheet.cssText=a:o.appendChild(document.createTextNode(a))}const vk=a=>{switch(a){case"success":return xk;case"info":return qk;case"warning":return zk;case"error":return jk;default:return null}},kk=Array(12).fill(0),wk=({visible:a,className:r})=>me.createElement("div",{className:["sonner-loading-wrapper",r].filter(Boolean).join(" "),"data-visible":a},me.createElement("div",{className:"sonner-spinner"},kk.map((o,t)=>me.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${t}`})))),xk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},me.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),zk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},me.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),qk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},me.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),jk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},me.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),Ak=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},me.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),me.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Ck=()=>{const[a,r]=me.useState(document.hidden);return me.useEffect(()=>{const o=()=>{r(document.hidden)};return document.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)},[]),a};let vu=1;class Ek{constructor(){this.subscribe=r=>(this.subscribers.push(r),()=>{const o=this.subscribers.indexOf(r);this.subscribers.splice(o,1)}),this.publish=r=>{this.subscribers.forEach(o=>o(r))},this.addToast=r=>{this.publish(r),this.toasts=[...this.toasts,r]},this.create=r=>{var o;const{message:t,...u}=r,l=typeof(r==null?void 0:r.id)=="number"||((o=r.id)==null?void 0:o.length)>0?r.id:vu++,m=this.toasts.find(h=>h.id===l),c=r.dismissible===void 0?!0:r.dismissible;return this.dismissedToasts.has(l)&&this.dismissedToasts.delete(l),m?this.toasts=this.toasts.map(h=>h.id===l?(this.publish({...h,...r,id:l,title:t}),{...h,...r,id:l,dismissible:c,title:t}):h):this.addToast({title:t,...u,dismissible:c,id:l}),l},this.dismiss=r=>(r?(this.dismissedToasts.add(r),requestAnimationFrame(()=>this.subscribers.forEach(o=>o({id:r,dismiss:!0})))):this.toasts.forEach(o=>{this.subscribers.forEach(t=>t({id:o.id,dismiss:!0}))}),r),this.message=(r,o)=>this.create({...o,message:r}),this.error=(r,o)=>this.create({...o,message:r,type:"error"}),this.success=(r,o)=>this.create({...o,type:"success",message:r}),this.info=(r,o)=>this.create({...o,type:"info",message:r}),this.warning=(r,o)=>this.create({...o,type:"warning",message:r}),this.loading=(r,o)=>this.create({...o,type:"loading",message:r}),this.promise=(r,o)=>{if(!o)return;let t;o.loading!==void 0&&(t=this.create({...o,promise:r,type:"loading",message:o.loading,description:typeof o.description!="function"?o.description:void 0}));const u=Promise.resolve(r instanceof Function?r():r);let l=t!==void 0,m;const c=u.then(async d=>{if(m=["resolve",d],me.isValidElement(d))l=!1,this.create({id:t,type:"default",message:d});else if(Bk(d)&&!d.ok){l=!1;const g=typeof o.error=="function"?await o.error(`HTTP error! status: ${d.status}`):o.error,f=typeof o.description=="function"?await o.description(`HTTP error! status: ${d.status}`):o.description,w=typeof g=="object"&&!me.isValidElement(g)?g:{message:g};this.create({id:t,type:"error",description:f,...w})}else if(d instanceof Error){l=!1;const g=typeof o.error=="function"?await o.error(d):o.error,f=typeof o.description=="function"?await o.description(d):o.description,w=typeof g=="object"&&!me.isValidElement(g)?g:{message:g};this.create({id:t,type:"error",description:f,...w})}else if(o.success!==void 0){l=!1;const g=typeof o.success=="function"?await o.success(d):o.success,f=typeof o.description=="function"?await o.description(d):o.description,w=typeof g=="object"&&!me.isValidElement(g)?g:{message:g};this.create({id:t,type:"success",description:f,...w})}}).catch(async d=>{if(m=["reject",d],o.error!==void 0){l=!1;const y=typeof o.error=="function"?await o.error(d):o.error,g=typeof o.description=="function"?await o.description(d):o.description,x=typeof y=="object"&&!me.isValidElement(y)?y:{message:y};this.create({id:t,type:"error",description:g,...x})}}).finally(()=>{l&&(this.dismiss(t),t=void 0),o.finally==null||o.finally.call(o)}),h=()=>new Promise((d,y)=>c.then(()=>m[0]==="reject"?y(m[1]):d(m[1])).catch(y));return typeof t!="string"&&typeof t!="number"?{unwrap:h}:Object.assign(t,{unwrap:h})},this.custom=(r,o)=>{const t=(o==null?void 0:o.id)||vu++;return this.create({jsx:r(t),id:t,...o}),t},this.getActiveToasts=()=>this.toasts.filter(r=>!this.dismissedToasts.has(r.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const na=new Ek,Sk=(a,r)=>{const o=(r==null?void 0:r.id)||vu++;return na.addToast({title:a,...r,id:o}),o},Bk=a=>a&&typeof a=="object"&&"ok"in a&&typeof a.ok=="boolean"&&"status"in a&&typeof a.status=="number",_k=Sk,Dk=()=>na.toasts,Fk=()=>na.getActiveToasts(),Tr=Object.assign(_k,{success:na.success,info:na.info,warning:na.warning,error:na.error,custom:na.custom,message:na.message,promise:na.promise,dismiss:na.dismiss,loading:na.loading},{getHistory:Dk,getToasts:Fk});fk("[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%)}");function Ys(a){return a.label!==void 0}const Rk=3,Tk="24px",Pk="16px",$m=4e3,Nk=356,Ik=14,Mk=45,Ok=200;function Na(...a){return a.filter(Boolean).join(" ")}function Hk(a){const[r,o]=a.split("-"),t=[];return r&&t.push(r),o&&t.push(o),t}const Lk=a=>{var r,o,t,u,l,m,c,h,d;const{invert:y,toast:g,unstyled:f,interacting:x,setHeights:w,visibleToasts:j,heights:v,index:A,toasts:q,expanded:k,removeToast:C,defaultRichColors:S,closeButton:D,style:T,cancelButtonStyle:F,actionButtonStyle:O,className:N="",descriptionClassName:R="",duration:V,position:H,gap:$,expandByDefault:ae,classNames:J,icons:ie,closeButtonAriaLabel:W="Close toast"}=a,[oe,ee]=me.useState(null),[z,I]=me.useState(null),[L,G]=me.useState(!1),[ue,he]=me.useState(!1),[ge,re]=me.useState(!1),[le,je]=me.useState(!1),[Te,Xe]=me.useState(!1),[ai,Ue]=me.useState(0),[We,Le]=me.useState(0),Je=me.useRef(g.duration||V||$m),$e=me.useRef(null),ni=me.useRef(null),fi=A===0,ti=A+1<=j,Ge=g.type,hi=g.dismissible!==!1,$i=g.className||"",va=g.descriptionClassName||"",qi=me.useMemo(()=>v.findIndex(Ae=>Ae.toastId===g.id)||0,[v,g.id]),Oi=me.useMemo(()=>{var Ae;return(Ae=g.closeButton)!=null?Ae:D},[g.closeButton,D]),Ki=me.useMemo(()=>g.duration||V||$m,[g.duration,V]),oa=me.useRef(0),ji=me.useRef(0),ui=me.useRef(0),Z=me.useRef(null),[de,ze]=H.split("-"),K=me.useMemo(()=>v.reduce((Ae,Me,Ve)=>Ve>=qi?Ae:Ae+Me.height,0),[v,qi]),ne=Ck(),ye=g.invert||y,De=Ge==="loading";ji.current=me.useMemo(()=>qi*$+K,[qi,K]),me.useEffect(()=>{Je.current=Ki},[Ki]),me.useEffect(()=>{G(!0)},[]),me.useEffect(()=>{const Ae=ni.current;if(Ae){const Me=Ae.getBoundingClientRect().height;return Le(Me),w(Ve=>[{toastId:g.id,height:Me,position:g.position},...Ve]),()=>w(Ve=>Ve.filter(gi=>gi.toastId!==g.id))}},[w,g.id]),me.useLayoutEffect(()=>{if(!L)return;const Ae=ni.current,Me=Ae.style.height;Ae.style.height="auto";const Ve=Ae.getBoundingClientRect().height;Ae.style.height=Me,Le(Ve),w(gi=>gi.find(Oe=>Oe.toastId===g.id)?gi.map(Oe=>Oe.toastId===g.id?{...Oe,height:Ve}:Oe):[{toastId:g.id,height:Ve,position:g.position},...gi])},[L,g.title,g.description,w,g.id,g.jsx,g.action,g.cancel]);const Be=me.useCallback(()=>{he(!0),Ue(ji.current),w(Ae=>Ae.filter(Me=>Me.toastId!==g.id)),setTimeout(()=>{C(g)},Ok)},[g,C,w,ji]);me.useEffect(()=>{if(g.promise&&Ge==="loading"||g.duration===1/0||g.type==="loading")return;let Ae;return k||x||ne?(()=>{if(ui.current{Je.current!==1/0&&(oa.current=new Date().getTime(),Ae=setTimeout(()=>{g.onAutoClose==null||g.onAutoClose.call(g,g),Be()},Je.current))})(),()=>clearTimeout(Ae)},[k,x,g,Ge,ne,Be]),me.useEffect(()=>{g.delete&&(Be(),g.onDismiss==null||g.onDismiss.call(g,g))},[Be,g.delete]);function Pe(){var Ae;if(ie!=null&&ie.loading){var Me;return me.createElement("div",{className:Na(J==null?void 0:J.loader,g==null||(Me=g.classNames)==null?void 0:Me.loader,"sonner-loader"),"data-visible":Ge==="loading"},ie.loading)}return me.createElement(wk,{className:Na(J==null?void 0:J.loader,g==null||(Ae=g.classNames)==null?void 0:Ae.loader),visible:Ge==="loading"})}const Fe=g.icon||(ie==null?void 0:ie[Ge])||vk(Ge);var Re,Ai;return me.createElement("li",{tabIndex:0,ref:ni,className:Na(N,$i,J==null?void 0:J.toast,g==null||(r=g.classNames)==null?void 0:r.toast,J==null?void 0:J.default,J==null?void 0:J[Ge],g==null||(o=g.classNames)==null?void 0:o[Ge]),"data-sonner-toast":"","data-rich-colors":(Re=g.richColors)!=null?Re:S,"data-styled":!(g.jsx||g.unstyled||f),"data-mounted":L,"data-promise":!!g.promise,"data-swiped":Te,"data-removed":ue,"data-visible":ti,"data-y-position":de,"data-x-position":ze,"data-index":A,"data-front":fi,"data-swiping":ge,"data-dismissible":hi,"data-type":Ge,"data-invert":ye,"data-swipe-out":le,"data-swipe-direction":z,"data-expanded":!!(k||ae&&L),"data-testid":g.testId,style:{"--index":A,"--toasts-before":A,"--z-index":q.length-A,"--offset":`${ue?ai:ji.current}px`,"--initial-height":ae?"auto":`${We}px`,...T,...g.style},onDragEnd:()=>{re(!1),ee(null),Z.current=null},onPointerDown:Ae=>{Ae.button!==2&&(De||!hi||($e.current=new Date,Ue(ji.current),Ae.target.setPointerCapture(Ae.pointerId),Ae.target.tagName!=="BUTTON"&&(re(!0),Z.current={x:Ae.clientX,y:Ae.clientY})))},onPointerUp:()=>{var Ae,Me,Ve;if(le||!hi)return;Z.current=null;const gi=Number(((Ae=ni.current)==null?void 0:Ae.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),da=Number(((Me=ni.current)==null?void 0:Me.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Oe=new Date().getTime()-((Ve=$e.current)==null?void 0:Ve.getTime()),oi=oe==="x"?gi:da,ka=Math.abs(oi)/Oe;if(Math.abs(oi)>=Mk||ka>.11){Ue(ji.current),g.onDismiss==null||g.onDismiss.call(g,g),I(oe==="x"?gi>0?"right":"left":da>0?"down":"up"),Be(),je(!0);return}else{var Ze,yi;(Ze=ni.current)==null||Ze.style.setProperty("--swipe-amount-x","0px"),(yi=ni.current)==null||yi.style.setProperty("--swipe-amount-y","0px")}Xe(!1),re(!1),ee(null)},onPointerMove:Ae=>{var Me,Ve,gi;if(!Z.current||!hi||((Me=window.getSelection())==null?void 0:Me.toString().length)>0)return;const Oe=Ae.clientY-Z.current.y,oi=Ae.clientX-Z.current.x;var ka;const Ze=(ka=a.swipeDirections)!=null?ka:Hk(H);!oe&&(Math.abs(oi)>1||Math.abs(Oe)>1)&&ee(Math.abs(oi)>Math.abs(Oe)?"x":"y");let yi={x:0,y:0};const wa=Yi=>1/(1.5+Math.abs(Yi)/20);if(oe==="y"){if(Ze.includes("top")||Ze.includes("bottom"))if(Ze.includes("top")&&Oe<0||Ze.includes("bottom")&&Oe>0)yi.y=Oe;else{const Yi=Oe*wa(Oe);yi.y=Math.abs(Yi)0)yi.x=oi;else{const Yi=oi*wa(oi);yi.x=Math.abs(Yi)0||Math.abs(yi.y)>0)&&Xe(!0),(Ve=ni.current)==null||Ve.style.setProperty("--swipe-amount-x",`${yi.x}px`),(gi=ni.current)==null||gi.style.setProperty("--swipe-amount-y",`${yi.y}px`)}},Oi&&!g.jsx&&Ge!=="loading"?me.createElement("button",{"aria-label":W,"data-disabled":De,"data-close-button":!0,onClick:De||!hi?()=>{}:()=>{Be(),g.onDismiss==null||g.onDismiss.call(g,g)},className:Na(J==null?void 0:J.closeButton,g==null||(t=g.classNames)==null?void 0:t.closeButton)},(Ai=ie==null?void 0:ie.close)!=null?Ai:Ak):null,(Ge||g.icon||g.promise)&&g.icon!==null&&((ie==null?void 0:ie[Ge])!==null||g.icon)?me.createElement("div",{"data-icon":"",className:Na(J==null?void 0:J.icon,g==null||(u=g.classNames)==null?void 0:u.icon)},g.promise||g.type==="loading"&&!g.icon?g.icon||Pe():null,g.type!=="loading"?Fe:null):null,me.createElement("div",{"data-content":"",className:Na(J==null?void 0:J.content,g==null||(l=g.classNames)==null?void 0:l.content)},me.createElement("div",{"data-title":"",className:Na(J==null?void 0:J.title,g==null||(m=g.classNames)==null?void 0:m.title)},g.jsx?g.jsx:typeof g.title=="function"?g.title():g.title),g.description?me.createElement("div",{"data-description":"",className:Na(R,va,J==null?void 0:J.description,g==null||(c=g.classNames)==null?void 0:c.description)},typeof g.description=="function"?g.description():g.description):null),me.isValidElement(g.cancel)?g.cancel:g.cancel&&Ys(g.cancel)?me.createElement("button",{"data-button":!0,"data-cancel":!0,style:g.cancelButtonStyle||F,onClick:Ae=>{Ys(g.cancel)&&hi&&(g.cancel.onClick==null||g.cancel.onClick.call(g.cancel,Ae),Be())},className:Na(J==null?void 0:J.cancelButton,g==null||(h=g.classNames)==null?void 0:h.cancelButton)},g.cancel.label):null,me.isValidElement(g.action)?g.action:g.action&&Ys(g.action)?me.createElement("button",{"data-button":!0,"data-action":!0,style:g.actionButtonStyle||O,onClick:Ae=>{Ys(g.action)&&(g.action.onClick==null||g.action.onClick.call(g.action,Ae),!Ae.defaultPrevented&&Be())},className:Na(J==null?void 0:J.actionButton,g==null||(d=g.classNames)==null?void 0:d.actionButton)},g.action.label):null)};function Km(){if(typeof window>"u"||typeof document>"u")return"ltr";const a=document.documentElement.getAttribute("dir");return a==="auto"||!a?window.getComputedStyle(document.documentElement).direction:a}function Vk(a,r){const o={};return[a,r].forEach((t,u)=>{const l=u===1,m=l?"--mobile-offset":"--offset",c=l?Pk:Tk;function h(d){["top","right","bottom","left"].forEach(y=>{o[`${m}-${y}`]=typeof d=="number"?`${d}px`:d})}typeof t=="number"||typeof t=="string"?h(t):typeof t=="object"?["top","right","bottom","left"].forEach(d=>{t[d]===void 0?o[`${m}-${d}`]=c:o[`${m}-${d}`]=typeof t[d]=="number"?`${t[d]}px`:t[d]}):h(c)}),o}const Uk=me.forwardRef(function(r,o){const{id:t,invert:u,position:l="bottom-right",hotkey:m=["altKey","KeyT"],expand:c,closeButton:h,className:d,offset:y,mobileOffset:g,theme:f="light",richColors:x,duration:w,style:j,visibleToasts:v=Rk,toastOptions:A,dir:q=Km(),gap:k=Ik,icons:C,containerAriaLabel:S="Notifications"}=r,[D,T]=me.useState([]),F=me.useMemo(()=>t?D.filter(L=>L.toasterId===t):D.filter(L=>!L.toasterId),[D,t]),O=me.useMemo(()=>Array.from(new Set([l].concat(F.filter(L=>L.position).map(L=>L.position)))),[F,l]),[N,R]=me.useState([]),[V,H]=me.useState(!1),[$,ae]=me.useState(!1),[J,ie]=me.useState(f!=="system"?f:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),W=me.useRef(null),oe=m.join("+").replace(/Key/g,"").replace(/Digit/g,""),ee=me.useRef(null),z=me.useRef(!1),I=me.useCallback(L=>{T(G=>{var ue;return(ue=G.find(he=>he.id===L.id))!=null&&ue.delete||na.dismiss(L.id),G.filter(({id:he})=>he!==L.id)})},[]);return me.useEffect(()=>na.subscribe(L=>{if(L.dismiss){requestAnimationFrame(()=>{T(G=>G.map(ue=>ue.id===L.id?{...ue,delete:!0}:ue))});return}setTimeout(()=>{Qg.flushSync(()=>{T(G=>{const ue=G.findIndex(he=>he.id===L.id);return ue!==-1?[...G.slice(0,ue),{...G[ue],...L},...G.slice(ue+1)]:[L,...G]})})})}),[D]),me.useEffect(()=>{if(f!=="system"){ie(f);return}if(f==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?ie("dark"):ie("light")),typeof window>"u")return;const L=window.matchMedia("(prefers-color-scheme: dark)");try{L.addEventListener("change",({matches:G})=>{ie(G?"dark":"light")})}catch{L.addListener(({matches:ue})=>{try{ie(ue?"dark":"light")}catch(he){console.error(he)}})}},[f]),me.useEffect(()=>{D.length<=1&&H(!1)},[D]),me.useEffect(()=>{const L=G=>{var ue;if(m.every(re=>G[re]||G.code===re)){var ge;H(!0),(ge=W.current)==null||ge.focus()}G.code==="Escape"&&(document.activeElement===W.current||(ue=W.current)!=null&&ue.contains(document.activeElement))&&H(!1)};return document.addEventListener("keydown",L),()=>document.removeEventListener("keydown",L)},[m]),me.useEffect(()=>{if(W.current)return()=>{ee.current&&(ee.current.focus({preventScroll:!0}),ee.current=null,z.current=!1)}},[W.current]),me.createElement("section",{ref:o,"aria-label":`${S} ${oe}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},O.map((L,G)=>{var ue;const[he,ge]=L.split("-");return F.length?me.createElement("ol",{key:L,dir:q==="auto"?Km():q,tabIndex:-1,ref:W,className:d,"data-sonner-toaster":!0,"data-sonner-theme":J,"data-y-position":he,"data-x-position":ge,style:{"--front-toast-height":`${((ue=N[0])==null?void 0:ue.height)||0}px`,"--width":`${Nk}px`,"--gap":`${k}px`,...j,...Vk(y,g)},onBlur:re=>{z.current&&!re.currentTarget.contains(re.relatedTarget)&&(z.current=!1,ee.current&&(ee.current.focus({preventScroll:!0}),ee.current=null))},onFocus:re=>{re.target instanceof HTMLElement&&re.target.dataset.dismissible==="false"||z.current||(z.current=!0,ee.current=re.relatedTarget)},onMouseEnter:()=>H(!0),onMouseMove:()=>H(!0),onMouseLeave:()=>{$||H(!1)},onDragEnd:()=>H(!1),onPointerDown:re=>{re.target instanceof HTMLElement&&re.target.dataset.dismissible==="false"||ae(!0)},onPointerUp:()=>ae(!1)},F.filter(re=>!re.position&&G===0||re.position===L).map((re,le)=>{var je,Te;return me.createElement(Lk,{key:re.id,icons:C,index:le,toast:re,defaultRichColors:x,duration:(je=A==null?void 0:A.duration)!=null?je:w,className:A==null?void 0:A.className,descriptionClassName:A==null?void 0:A.descriptionClassName,invert:u,visibleToasts:v,closeButton:(Te=A==null?void 0:A.closeButton)!=null?Te:h,interacting:$,position:L,style:A==null?void 0:A.style,unstyled:A==null?void 0:A.unstyled,classNames:A==null?void 0:A.classNames,cancelButtonStyle:A==null?void 0:A.cancelButtonStyle,actionButtonStyle:A==null?void 0:A.actionButtonStyle,closeButtonAriaLabel:A==null?void 0:A.closeButtonAriaLabel,removeToast:I,toasts:F.filter(Xe=>Xe.position==re.position),heights:N.filter(Xe=>Xe.position==re.position),setHeights:R,expandByDefault:c,gap:k,expanded:V,swipeDirections:r.swipeDirections})})):null}))}),Wk=({...a})=>_.jsx(Uk,{theme:"dark",className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-card group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",error:"group-[.toaster]:bg-[#2a1a1a] group-[.toaster]:text-[#e8a0a0] group-[.toaster]:border-[#4a2a2a] [&_[data-description]]:text-[#b08080]"}},...a});function Gk({health:a,config:r,onConfigClick:o,onAdvertise:t,onMenuClick:u}){const l=(a==null?void 0:a.radio_connected)??!1,[m,c]=B.useState(!1),h=async()=>{c(!0);try{const d=await ii.reconnectRadio();d.connected&&Tr.success("Reconnected",{description:d.message})}catch(d){Tr.error("Reconnection failed",{description:d instanceof Error?d.message:"Check radio connection and power"})}finally{c(!1)}};return _.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 bg-[#252525] border-b border-[#333] text-xs",children:[u&&_.jsx("button",{onClick:u,className:"md:hidden p-1 bg-transparent border-none text-[#e0e0e0] cursor-pointer","aria-label":"Open menu",children:_.jsx(yk,{className:"h-5 w-5"})}),_.jsx("h1",{className:"hidden lg:block text-base font-semibold mr-auto",children:"RemoteTerm"}),_.jsxs("div",{className:"flex items-center gap-1 text-[#888]",children:[_.jsx("div",{className:`w-2 h-2 rounded-full ${l?"bg-[#4caf50]":"bg-[#666]"}`}),_.jsx("span",{className:"hidden lg:inline text-[#e0e0e0]",children:l?"Connected":"Disconnected"})]}),(a==null?void 0:a.serial_port)&&_.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["Port: ",_.jsx("span",{className:"text-[#e0e0e0]",children:a.serial_port})]}),r&&_.jsxs(_.Fragment,{children:[_.jsx("div",{className:"hidden lg:flex items-center gap-1 text-[#888]",children:_.jsx("span",{className:"text-[#e0e0e0]",children:r.name||"Unnamed"})}),_.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:[r.radio.freq," MHz/SF",r.radio.sf,"/CR",r.radio.cr,"/",r.tx_power,"dBm"]})]}),_.jsx("div",{className:"flex-1 lg:hidden"}),!l&&_.jsx("button",{onClick:h,disabled:m,className:"px-3 py-1 bg-[#4a3000] border border-[#6b4500] text-[#ffa500] rounded text-xs cursor-pointer hover:bg-[#5a3a00] disabled:opacity-50 disabled:cursor-not-allowed",children:m?"Reconnecting...":"Reconnect"}),_.jsx("button",{onClick:t,disabled:!l,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444] disabled:bg-[#333] disabled:text-[#666] disabled:cursor-not-allowed",children:"Advertise"}),_.jsx("button",{onClick:o,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444]",children:"Config"})]})}const Qk=12;function Bo(a){return a.slice(0,Qk)}function $g(a,r){return!a||!r?!1:Bo(a)===Bo(r)}function Kn(a,r){return a||Bo(r)}const ku="remoteterm-lastMessageTime",wu="remoteterm-lastReadTime";function el(a){try{const r=localStorage.getItem(a);return r?JSON.parse(r):{}}catch{return{}}}function Kg(a,r){try{localStorage.setItem(a,JSON.stringify(r))}catch{}}function Ym(){return el(ku)}function $k(){return el(wu)}function au(a,r){const o=el(ku);return(!o[a]||r>o[a])&&(o[a]=r,Kg(ku,o)),o}function nu(a,r){const o=el(wu);return o[a]=r,Kg(wu,o),o}function an(a,r){return a==="channel"?`channel-${r}`:`contact-${Bo(r)}`}const xu=2,Kk={text:"🛜",background:"#444444",textColor:"#ffffff"};function Yk(a){let r=0;for(let o=0;o>8)%30,u=35+(r>>16)%20,l=`hsl(${o}, ${t}%, ${u}%)`,m=u<45?"#ffffff":"#000000";return{background:l,text:m}}function ew(a,r,o){if(o===xu)return Kk;const t=Xk(a,r),u=Jk(r);return{text:t,background:u.background,textColor:u.text}}function Yg({name:a,publicKey:r,size:o=28,contactType:t}){const u=ew(a,r,t);return _.jsx("div",{className:"flex items-center justify-center rounded-full font-semibold flex-shrink-0 select-none",style:{backgroundColor:u.background,color:u.textColor,width:o,height:o,fontSize:o*.45},children:u.text})}function Zg(a){var r,o,t="";if(typeof a=="string"||typeof a=="number")t+=a;else if(typeof a=="object")if(Array.isArray(a)){var u=a.length;for(r=0;r{const o=new Array(a.length+r.length);for(let t=0;t({classGroupId:a,validator:r}),Jg=(a=new Map,r=null,o)=>({nextPart:a,validators:r,classGroupId:o}),Qt="-",Zm=[],nw="arbitrary..",ow=a=>{const r=sw(a),{conflictingClassGroups:o,conflictingClassGroupModifiers:t}=a;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return rw(m);const c=m.split(Qt),h=c[0]===""&&c.length>1?1:0;return ey(c,h,r)},getConflictingClassGroupIds:(m,c)=>{if(c){const h=t[m],d=o[m];return h?d?iw(d,h):h:d||Zm}return o[m]||Zm}}},ey=(a,r,o)=>{if(a.length-r===0)return o.classGroupId;const u=a[r],l=o.nextPart.get(u);if(l){const d=ey(a,r+1,l);if(d)return d}const m=o.validators;if(m===null)return;const c=r===0?a.join(Qt):a.slice(r).join(Qt),h=m.length;for(let d=0;da.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const r=a.slice(1,-1),o=r.indexOf(":"),t=r.slice(0,o);return t?nw+t:void 0})(),sw=a=>{const{theme:r,classGroups:o}=a;return tw(o,r)},tw=(a,r)=>{const o=Jg();for(const t in a){const u=a[t];Nu(u,o,t,r)}return o},Nu=(a,r,o,t)=>{const u=a.length;for(let l=0;l{if(typeof a=="string"){cw(a,r,o);return}if(typeof a=="function"){uw(a,r,o,t);return}dw(a,r,o,t)},cw=(a,r,o)=>{const t=a===""?r:iy(r,a);t.classGroupId=o},uw=(a,r,o,t)=>{if(pw(a)){Nu(a(t),r,o,t);return}r.validators===null&&(r.validators=[]),r.validators.push(aw(o,a))},dw=(a,r,o,t)=>{const u=Object.entries(a),l=u.length;for(let m=0;m{let o=a;const t=r.split(Qt),u=t.length;for(let l=0;l"isThemeGetter"in a&&a.isThemeGetter===!0,mw=a=>{if(a<1)return{get:()=>{},set:()=>{}};let r=0,o=Object.create(null),t=Object.create(null);const u=(l,m)=>{o[l]=m,r++,r>a&&(r=0,t=o,o=Object.create(null))};return{get(l){let m=o[l];if(m!==void 0)return m;if((m=t[l])!==void 0)return u(l,m),m},set(l,m){l in o?o[l]=m:u(l,m)}}},zu="!",Xm=":",hw=[],Jm=(a,r,o,t,u)=>({modifiers:a,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:t,isExternal:u}),gw=a=>{const{prefix:r,experimentalParseClassName:o}=a;let t=u=>{const l=[];let m=0,c=0,h=0,d;const y=u.length;for(let j=0;jh?d-h:void 0;return Jm(l,x,f,w)};if(r){const u=r+Xm,l=t;t=m=>m.startsWith(u)?l(m.slice(u.length)):Jm(hw,!1,m,void 0,!0)}if(o){const u=t;t=l=>o({className:l,parseClassName:u})}return t},yw=a=>{const r=new Map;return a.orderSensitiveModifiers.forEach((o,t)=>{r.set(o,1e6+t)}),o=>{const t=[];let u=[];for(let l=0;l0&&(u.sort(),t.push(...u),u=[]),t.push(m)):u.push(m)}return u.length>0&&(u.sort(),t.push(...u)),t}},bw=a=>({cache:mw(a.cacheSize),parseClassName:gw(a),sortModifiers:yw(a),...ow(a)}),fw=/\s+/,vw=(a,r)=>{const{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:u,sortModifiers:l}=r,m=[],c=a.trim().split(fw);let h="";for(let d=c.length-1;d>=0;d-=1){const y=c[d],{isExternal:g,modifiers:f,hasImportantModifier:x,baseClassName:w,maybePostfixModifierPosition:j}=o(y);if(g){h=y+(h.length>0?" "+h:h);continue}let v=!!j,A=t(v?w.substring(0,j):w);if(!A){if(!v){h=y+(h.length>0?" "+h:h);continue}if(A=t(w),!A){h=y+(h.length>0?" "+h:h);continue}v=!1}const q=f.length===0?"":f.length===1?f[0]:l(f).join(":"),k=x?q+zu:q,C=k+A;if(m.indexOf(C)>-1)continue;m.push(C);const S=u(A,v);for(let D=0;D0?" "+h:h)}return h},kw=(...a)=>{let r=0,o,t,u="";for(;r{if(typeof a=="string")return a;let r,o="";for(let t=0;t{let o,t,u,l;const m=h=>{const d=r.reduce((y,g)=>g(y),a());return o=bw(d),t=o.cache.get,u=o.cache.set,l=c,c(h)},c=h=>{const d=t(h);if(d)return d;const y=vw(h,o);return u(h,y),y};return l=m,(...h)=>l(kw(...h))},xw=[],Si=a=>{const r=o=>o[a]||xw;return r.isThemeGetter=!0,r},ny=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,oy=/^\((?:(\w[\w-]*):)?(.+)\)$/i,zw=/^\d+\/\d+$/,qw=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,jw=/\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$/,Aw=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Cw=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ew=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,zo=a=>zw.test(a),Ne=a=>!!a&&!Number.isNaN(Number(a)),zn=a=>!!a&&Number.isInteger(Number(a)),ou=a=>a.endsWith("%")&&Ne(a.slice(0,-1)),Za=a=>qw.test(a),Sw=()=>!0,Bw=a=>jw.test(a)&&!Aw.test(a),ry=()=>!1,_w=a=>Cw.test(a),Dw=a=>Ew.test(a),Fw=a=>!ke(a)&&!we(a),Rw=a=>Ro(a,ly,ry),ke=a=>ny.test(a),Ln=a=>Ro(a,cy,Bw),ru=a=>Ro(a,Mw,Ne),eh=a=>Ro(a,sy,ry),Tw=a=>Ro(a,ty,Dw),Zs=a=>Ro(a,uy,_w),we=a=>oy.test(a),fr=a=>To(a,cy),Pw=a=>To(a,Ow),ih=a=>To(a,sy),Nw=a=>To(a,ly),Iw=a=>To(a,ty),Xs=a=>To(a,uy,!0),Ro=(a,r,o)=>{const t=ny.exec(a);return t?t[1]?r(t[1]):o(t[2]):!1},To=(a,r,o=!1)=>{const t=oy.exec(a);return t?t[1]?r(t[1]):o:!1},sy=a=>a==="position"||a==="percentage",ty=a=>a==="image"||a==="url",ly=a=>a==="length"||a==="size"||a==="bg-size",cy=a=>a==="length",Mw=a=>a==="number",Ow=a=>a==="family-name",uy=a=>a==="shadow",Hw=()=>{const a=Si("color"),r=Si("font"),o=Si("text"),t=Si("font-weight"),u=Si("tracking"),l=Si("leading"),m=Si("breakpoint"),c=Si("container"),h=Si("spacing"),d=Si("radius"),y=Si("shadow"),g=Si("inset-shadow"),f=Si("text-shadow"),x=Si("drop-shadow"),w=Si("blur"),j=Si("perspective"),v=Si("aspect"),A=Si("ease"),q=Si("animate"),k=()=>["auto","avoid","all","avoid-page","page","left","right","column"],C=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],S=()=>[...C(),we,ke],D=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto","contain","none"],F=()=>[we,ke,h],O=()=>[zo,"full","auto",...F()],N=()=>[zn,"none","subgrid",we,ke],R=()=>["auto",{span:["full",zn,we,ke]},zn,we,ke],V=()=>[zn,"auto",we,ke],H=()=>["auto","min","max","fr",we,ke],$=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ae=()=>["start","end","center","stretch","center-safe","end-safe"],J=()=>["auto",...F()],ie=()=>[zo,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...F()],W=()=>[a,we,ke],oe=()=>[...C(),ih,eh,{position:[we,ke]}],ee=()=>["no-repeat",{repeat:["","x","y","space","round"]}],z=()=>["auto","cover","contain",Nw,Rw,{size:[we,ke]}],I=()=>[ou,fr,Ln],L=()=>["","none","full",d,we,ke],G=()=>["",Ne,fr,Ln],ue=()=>["solid","dashed","dotted","double"],he=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ge=()=>[Ne,ou,ih,eh],re=()=>["","none",w,we,ke],le=()=>["none",Ne,we,ke],je=()=>["none",Ne,we,ke],Te=()=>[Ne,we,ke],Xe=()=>[zo,"full",...F()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Za],breakpoint:[Za],color:[Sw],container:[Za],"drop-shadow":[Za],ease:["in","out","in-out"],font:[Fw],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Za],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Za],shadow:[Za],spacing:["px",Ne],text:[Za],"text-shadow":[Za],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",zo,ke,we,v]}],container:["container"],columns:[{columns:[Ne,ke,we,c]}],"break-after":[{"break-after":k()}],"break-before":[{"break-before":k()}],"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:S()}],overflow:[{overflow:D()}],"overflow-x":[{"overflow-x":D()}],"overflow-y":[{"overflow-y":D()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:O()}],"inset-x":[{"inset-x":O()}],"inset-y":[{"inset-y":O()}],start:[{start:O()}],end:[{end:O()}],top:[{top:O()}],right:[{right:O()}],bottom:[{bottom:O()}],left:[{left:O()}],visibility:["visible","invisible","collapse"],z:[{z:[zn,"auto",we,ke]}],basis:[{basis:[zo,"full","auto",c,...F()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ne,zo,"auto","initial","none",ke]}],grow:[{grow:["",Ne,we,ke]}],shrink:[{shrink:["",Ne,we,ke]}],order:[{order:[zn,"first","last","none",we,ke]}],"grid-cols":[{"grid-cols":N()}],"col-start-end":[{col:R()}],"col-start":[{"col-start":V()}],"col-end":[{"col-end":V()}],"grid-rows":[{"grid-rows":N()}],"row-start-end":[{row:R()}],"row-start":[{"row-start":V()}],"row-end":[{"row-end":V()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":H()}],"auto-rows":[{"auto-rows":H()}],gap:[{gap:F()}],"gap-x":[{"gap-x":F()}],"gap-y":[{"gap-y":F()}],"justify-content":[{justify:[...$(),"normal"]}],"justify-items":[{"justify-items":[...ae(),"normal"]}],"justify-self":[{"justify-self":["auto",...ae()]}],"align-content":[{content:["normal",...$()]}],"align-items":[{items:[...ae(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ae(),{baseline:["","last"]}]}],"place-content":[{"place-content":$()}],"place-items":[{"place-items":[...ae(),"baseline"]}],"place-self":[{"place-self":["auto",...ae()]}],p:[{p:F()}],px:[{px:F()}],py:[{py:F()}],ps:[{ps:F()}],pe:[{pe:F()}],pt:[{pt:F()}],pr:[{pr:F()}],pb:[{pb:F()}],pl:[{pl:F()}],m:[{m:J()}],mx:[{mx:J()}],my:[{my:J()}],ms:[{ms:J()}],me:[{me:J()}],mt:[{mt:J()}],mr:[{mr:J()}],mb:[{mb:J()}],ml:[{ml:J()}],"space-x":[{"space-x":F()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":F()}],"space-y-reverse":["space-y-reverse"],size:[{size:ie()}],w:[{w:[c,"screen",...ie()]}],"min-w":[{"min-w":[c,"screen","none",...ie()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[m]},...ie()]}],h:[{h:["screen","lh",...ie()]}],"min-h":[{"min-h":["screen","lh","none",...ie()]}],"max-h":[{"max-h":["screen","lh",...ie()]}],"font-size":[{text:["base",o,fr,Ln]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,we,ru]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ou,ke]}],"font-family":[{font:[Pw,ke,r]}],"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:[u,we,ke]}],"line-clamp":[{"line-clamp":[Ne,"none",we,ru]}],leading:[{leading:[l,...F()]}],"list-image":[{"list-image":["none",we,ke]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",we,ke]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:W()}],"text-color":[{text:W()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ue(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ne,"from-font","auto",we,Ln]}],"text-decoration-color":[{decoration:W()}],"underline-offset":[{"underline-offset":[Ne,"auto",we,ke]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:F()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",we,ke]}],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",we,ke]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:oe()}],"bg-repeat":[{bg:ee()}],"bg-size":[{bg:z()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},zn,we,ke],radial:["",we,ke],conic:[zn,we,ke]},Iw,Tw]}],"bg-color":[{bg:W()}],"gradient-from-pos":[{from:I()}],"gradient-via-pos":[{via:I()}],"gradient-to-pos":[{to:I()}],"gradient-from":[{from:W()}],"gradient-via":[{via:W()}],"gradient-to":[{to:W()}],rounded:[{rounded:L()}],"rounded-s":[{"rounded-s":L()}],"rounded-e":[{"rounded-e":L()}],"rounded-t":[{"rounded-t":L()}],"rounded-r":[{"rounded-r":L()}],"rounded-b":[{"rounded-b":L()}],"rounded-l":[{"rounded-l":L()}],"rounded-ss":[{"rounded-ss":L()}],"rounded-se":[{"rounded-se":L()}],"rounded-ee":[{"rounded-ee":L()}],"rounded-es":[{"rounded-es":L()}],"rounded-tl":[{"rounded-tl":L()}],"rounded-tr":[{"rounded-tr":L()}],"rounded-br":[{"rounded-br":L()}],"rounded-bl":[{"rounded-bl":L()}],"border-w":[{border:G()}],"border-w-x":[{"border-x":G()}],"border-w-y":[{"border-y":G()}],"border-w-s":[{"border-s":G()}],"border-w-e":[{"border-e":G()}],"border-w-t":[{"border-t":G()}],"border-w-r":[{"border-r":G()}],"border-w-b":[{"border-b":G()}],"border-w-l":[{"border-l":G()}],"divide-x":[{"divide-x":G()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":G()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ue(),"hidden","none"]}],"divide-style":[{divide:[...ue(),"hidden","none"]}],"border-color":[{border:W()}],"border-color-x":[{"border-x":W()}],"border-color-y":[{"border-y":W()}],"border-color-s":[{"border-s":W()}],"border-color-e":[{"border-e":W()}],"border-color-t":[{"border-t":W()}],"border-color-r":[{"border-r":W()}],"border-color-b":[{"border-b":W()}],"border-color-l":[{"border-l":W()}],"divide-color":[{divide:W()}],"outline-style":[{outline:[...ue(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ne,we,ke]}],"outline-w":[{outline:["",Ne,fr,Ln]}],"outline-color":[{outline:W()}],shadow:[{shadow:["","none",y,Xs,Zs]}],"shadow-color":[{shadow:W()}],"inset-shadow":[{"inset-shadow":["none",g,Xs,Zs]}],"inset-shadow-color":[{"inset-shadow":W()}],"ring-w":[{ring:G()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:W()}],"ring-offset-w":[{"ring-offset":[Ne,Ln]}],"ring-offset-color":[{"ring-offset":W()}],"inset-ring-w":[{"inset-ring":G()}],"inset-ring-color":[{"inset-ring":W()}],"text-shadow":[{"text-shadow":["none",f,Xs,Zs]}],"text-shadow-color":[{"text-shadow":W()}],opacity:[{opacity:[Ne,we,ke]}],"mix-blend":[{"mix-blend":[...he(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":he()}],"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":[Ne]}],"mask-image-linear-from-pos":[{"mask-linear-from":ge()}],"mask-image-linear-to-pos":[{"mask-linear-to":ge()}],"mask-image-linear-from-color":[{"mask-linear-from":W()}],"mask-image-linear-to-color":[{"mask-linear-to":W()}],"mask-image-t-from-pos":[{"mask-t-from":ge()}],"mask-image-t-to-pos":[{"mask-t-to":ge()}],"mask-image-t-from-color":[{"mask-t-from":W()}],"mask-image-t-to-color":[{"mask-t-to":W()}],"mask-image-r-from-pos":[{"mask-r-from":ge()}],"mask-image-r-to-pos":[{"mask-r-to":ge()}],"mask-image-r-from-color":[{"mask-r-from":W()}],"mask-image-r-to-color":[{"mask-r-to":W()}],"mask-image-b-from-pos":[{"mask-b-from":ge()}],"mask-image-b-to-pos":[{"mask-b-to":ge()}],"mask-image-b-from-color":[{"mask-b-from":W()}],"mask-image-b-to-color":[{"mask-b-to":W()}],"mask-image-l-from-pos":[{"mask-l-from":ge()}],"mask-image-l-to-pos":[{"mask-l-to":ge()}],"mask-image-l-from-color":[{"mask-l-from":W()}],"mask-image-l-to-color":[{"mask-l-to":W()}],"mask-image-x-from-pos":[{"mask-x-from":ge()}],"mask-image-x-to-pos":[{"mask-x-to":ge()}],"mask-image-x-from-color":[{"mask-x-from":W()}],"mask-image-x-to-color":[{"mask-x-to":W()}],"mask-image-y-from-pos":[{"mask-y-from":ge()}],"mask-image-y-to-pos":[{"mask-y-to":ge()}],"mask-image-y-from-color":[{"mask-y-from":W()}],"mask-image-y-to-color":[{"mask-y-to":W()}],"mask-image-radial":[{"mask-radial":[we,ke]}],"mask-image-radial-from-pos":[{"mask-radial-from":ge()}],"mask-image-radial-to-pos":[{"mask-radial-to":ge()}],"mask-image-radial-from-color":[{"mask-radial-from":W()}],"mask-image-radial-to-color":[{"mask-radial-to":W()}],"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":C()}],"mask-image-conic-pos":[{"mask-conic":[Ne]}],"mask-image-conic-from-pos":[{"mask-conic-from":ge()}],"mask-image-conic-to-pos":[{"mask-conic-to":ge()}],"mask-image-conic-from-color":[{"mask-conic-from":W()}],"mask-image-conic-to-color":[{"mask-conic-to":W()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:oe()}],"mask-repeat":[{mask:ee()}],"mask-size":[{mask:z()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",we,ke]}],filter:[{filter:["","none",we,ke]}],blur:[{blur:re()}],brightness:[{brightness:[Ne,we,ke]}],contrast:[{contrast:[Ne,we,ke]}],"drop-shadow":[{"drop-shadow":["","none",x,Xs,Zs]}],"drop-shadow-color":[{"drop-shadow":W()}],grayscale:[{grayscale:["",Ne,we,ke]}],"hue-rotate":[{"hue-rotate":[Ne,we,ke]}],invert:[{invert:["",Ne,we,ke]}],saturate:[{saturate:[Ne,we,ke]}],sepia:[{sepia:["",Ne,we,ke]}],"backdrop-filter":[{"backdrop-filter":["","none",we,ke]}],"backdrop-blur":[{"backdrop-blur":re()}],"backdrop-brightness":[{"backdrop-brightness":[Ne,we,ke]}],"backdrop-contrast":[{"backdrop-contrast":[Ne,we,ke]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ne,we,ke]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ne,we,ke]}],"backdrop-invert":[{"backdrop-invert":["",Ne,we,ke]}],"backdrop-opacity":[{"backdrop-opacity":[Ne,we,ke]}],"backdrop-saturate":[{"backdrop-saturate":[Ne,we,ke]}],"backdrop-sepia":[{"backdrop-sepia":["",Ne,we,ke]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":F()}],"border-spacing-x":[{"border-spacing-x":F()}],"border-spacing-y":[{"border-spacing-y":F()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",we,ke]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Ne,"initial",we,ke]}],ease:[{ease:["linear","initial",A,we,ke]}],delay:[{delay:[Ne,we,ke]}],animate:[{animate:["none",q,we,ke]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[j,we,ke]}],"perspective-origin":[{"perspective-origin":S()}],rotate:[{rotate:le()}],"rotate-x":[{"rotate-x":le()}],"rotate-y":[{"rotate-y":le()}],"rotate-z":[{"rotate-z":le()}],scale:[{scale:je()}],"scale-x":[{"scale-x":je()}],"scale-y":[{"scale-y":je()}],"scale-z":[{"scale-z":je()}],"scale-3d":["scale-3d"],skew:[{skew:Te()}],"skew-x":[{"skew-x":Te()}],"skew-y":[{"skew-y":Te()}],transform:[{transform:[we,ke,"","none","gpu","cpu"]}],"transform-origin":[{origin:S()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Xe()}],"translate-x":[{"translate-x":Xe()}],"translate-y":[{"translate-y":Xe()}],"translate-z":[{"translate-z":Xe()}],"translate-none":["translate-none"],accent:[{accent:W()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:W()}],"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",we,ke]}],"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":F()}],"scroll-mx":[{"scroll-mx":F()}],"scroll-my":[{"scroll-my":F()}],"scroll-ms":[{"scroll-ms":F()}],"scroll-me":[{"scroll-me":F()}],"scroll-mt":[{"scroll-mt":F()}],"scroll-mr":[{"scroll-mr":F()}],"scroll-mb":[{"scroll-mb":F()}],"scroll-ml":[{"scroll-ml":F()}],"scroll-p":[{"scroll-p":F()}],"scroll-px":[{"scroll-px":F()}],"scroll-py":[{"scroll-py":F()}],"scroll-ps":[{"scroll-ps":F()}],"scroll-pe":[{"scroll-pe":F()}],"scroll-pt":[{"scroll-pt":F()}],"scroll-pr":[{"scroll-pr":F()}],"scroll-pb":[{"scroll-pb":F()}],"scroll-pl":[{"scroll-pl":F()}],"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",we,ke]}],fill:[{fill:["none",...W()]}],"stroke-w":[{stroke:[Ne,fr,Ln,ru]}],stroke:[{stroke:["none",...W()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","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","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","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-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-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-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-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"]}},Lw=ww(Hw);function Ye(...a){return Lw(Xg(a))}const zi=B.forwardRef(({className:a,type:r,...o},t)=>_.jsx("input",{type:r,className:Ye("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background 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-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a),ref:t,...o}));zi.displayName="Input";function ah(a,r){if(typeof a=="function")return a(r);a!=null&&(a.current=r)}function Or(...a){return r=>{let o=!1;const t=a.map(u=>{const l=ah(u,r);return!o&&typeof l=="function"&&(o=!0),l});if(o)return()=>{for(let u=0;u{let{children:l,...m}=t;dy(l)&&typeof $t=="function"&&(l=$t(l._payload));const c=B.Children.toArray(l),h=c.find($w);if(h){const d=h.props.children,y=c.map(g=>g===h?B.Children.count(d)>1?B.Children.only(null):B.isValidElement(d)?d.props.children:null:g);return _.jsx(r,{...m,ref:u,children:B.isValidElement(d)?B.cloneElement(d,void 0,y):null})}return _.jsx(r,{...m,ref:u,children:l})});return o.displayName=`${a}.Slot`,o}var Ww=Iu("Slot");function Gw(a){const r=B.forwardRef((o,t)=>{let{children:u,...l}=o;if(dy(u)&&typeof $t=="function"&&(u=$t(u._payload)),B.isValidElement(u)){const m=Yw(u),c=Kw(l,u.props);return u.type!==B.Fragment&&(c.ref=t?Or(t,m):m),B.cloneElement(u,c)}return B.Children.count(u)>1?B.Children.only(null):null});return r.displayName=`${a}.SlotClone`,r}var Qw=Symbol("radix.slottable");function $w(a){return B.isValidElement(a)&&typeof a.type=="function"&&"__radixId"in a.type&&a.type.__radixId===Qw}function Kw(a,r){const o={...r};for(const t in r){const u=a[t],l=r[t];/^on[A-Z]/.test(t)?u&&l?o[t]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[t]=u):t==="style"?o[t]={...u,...l}:t==="className"&&(o[t]=[u,l].filter(Boolean).join(" "))}return{...a,...o}}function Yw(a){var t,u;let r=(t=Object.getOwnPropertyDescriptor(a.props,"ref"))==null?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?a.ref:(r=(u=Object.getOwnPropertyDescriptor(a,"ref"))==null?void 0:u.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}const nh=a=>typeof a=="boolean"?`${a}`:a===0?"0":a,oh=Xg,il=(a,r)=>o=>{var t;if((r==null?void 0:r.variants)==null)return oh(a,o==null?void 0:o.class,o==null?void 0:o.className);const{variants:u,defaultVariants:l}=r,m=Object.keys(u).map(d=>{const y=o==null?void 0:o[d],g=l==null?void 0:l[d];if(y===null)return null;const f=nh(y)||nh(g);return u[d][f]}),c=o&&Object.entries(o).reduce((d,y)=>{let[g,f]=y;return f===void 0||(d[g]=f),d},{}),h=r==null||(t=r.compoundVariants)===null||t===void 0?void 0:t.reduce((d,y)=>{let{class:g,className:f,...x}=y;return Object.entries(x).every(w=>{let[j,v]=w;return Array.isArray(v)?v.includes({...l,...c}[j]):{...l,...c}[j]===v})?[...d,g,f]:d},[]);return oh(a,m,h,o==null?void 0:o.class,o==null?void 0:o.className)},Zw=il("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),Ha=B.forwardRef(({className:a,variant:r,size:o,asChild:t=!1,...u},l)=>{const m=t?Ww:"button";return _.jsx(m,{className:Ye(Zw({variant:r,size:o,className:a})),ref:l,...u})});Ha.displayName="Button";function Xw(){try{return localStorage.getItem("remoteterm-sortOrder")==="alpha"?"alpha":"recent"}catch{return"recent"}}function Jw(a){try{localStorage.setItem("remoteterm-sortOrder",a)}catch{}}function ex({contacts:a,channels:r,activeConversation:o,onSelectConversation:t,onNewMessage:u,lastMessageTimes:l,unreadCounts:m,showCracker:c,crackerRunning:h,onToggleCracker:d,onMarkAllRead:y}){const[g,f]=B.useState(Xw),[x,w]=B.useState(""),j=()=>{const R=g==="alpha"?"recent":"alpha";f(R),Jw(R)},v=R=>{w(""),t(R)},A=(R,V)=>(o==null?void 0:o.type)===R&&(o==null?void 0:o.id)===V,q=(R,V)=>{const H=an(R,V);return m[H]||0},k=(R,V)=>{const H=an(R,V);return l[H]||0},C=r.reduce((R,V)=>(R.some(H=>H.name===V.name)||R.push(V),R),[]),S=a.filter(R=>R.public_key&&R.public_key.length>0).sort((R,V)=>R.name&&!V.name?-1:!R.name&&V.name?1:(R.name||"").localeCompare(V.name||"")).reduce((R,V)=>{const H=Bo(V.public_key);return R.some($=>Bo($.public_key)===H)||R.push(V),R},[]),D=[...C].sort((R,V)=>{if(R.name==="Public")return-1;if(V.name==="Public")return 1;if(g==="recent"){const H=k("channel",R.key),$=k("channel",V.key);if(H&&$)return $-H;if(H&&!$)return-1;if(!H&&$)return 1}return R.name.localeCompare(V.name)}),T=[...S].sort((R,V)=>{const H=R.type===xu,$=V.type===xu;if(H&&!$)return 1;if(!H&&$)return-1;if(H&&$)return(R.name||R.public_key).localeCompare(V.name||V.public_key);if(g==="recent"){const ae=k("contact",R.public_key),J=k("contact",V.public_key);if(ae&&J)return J-ae;if(ae&&!J)return-1;if(!ae&&J)return 1}return(R.name||R.public_key).localeCompare(V.name||V.public_key)}),F=x.toLowerCase().trim(),O=F?D.filter(R=>R.name.toLowerCase().includes(F)):D,N=F?T.filter(R=>{var V;return((V=R.name)==null?void 0:V.toLowerCase().includes(F))||R.public_key.toLowerCase().includes(F)}):T;return _.jsxs("div",{className:"sidebar w-60 h-full min-h-0 bg-card border-r border-border flex flex-col",children:[_.jsxs("div",{className:"flex justify-between items-center px-3 py-3 border-b border-border",children:[_.jsx("h2",{className:"text-xs uppercase text-muted-foreground font-medium",children:"Conversations"}),_.jsx(Ha,{variant:"ghost",size:"sm",onClick:u,title:"New Message",className:"h-6 w-6 p-0 text-muted-foreground hover:text-foreground",children:"+"})]}),_.jsxs("div",{className:"relative px-3 py-2 border-b border-border",children:[_.jsx(zi,{type:"text",placeholder:"Search...",value:x,onChange:R=>w(R.target.value),className:"h-8 text-sm pr-8"}),x&&_.jsx("button",{className:"absolute right-4 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground text-lg leading-none",onClick:()=>w(""),title:"Clear search",children:"×"})]}),_.jsxs("div",{className:"flex-1 overflow-y-auto",children:[!F&&_.jsxs("div",{className:Ye("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",A("raw","raw")&&"bg-accent border-l-primary"),onClick:()=>v({type:"raw",id:"raw",name:"Raw Packet Feed"}),children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"📡"}),_.jsx("span",{className:"flex-1 truncate",children:"Packet Feed"})]}),!F&&_.jsxs("div",{className:Ye("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",c&&"bg-accent border-l-primary"),onClick:d,children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"🔓"}),_.jsxs("span",{className:"flex-1 truncate",children:[c?"Hide":"Show"," Cracker",_.jsxs("span",{className:Ye("ml-1 text-xs",h?"text-green-500":"text-muted-foreground"),children:["(",h?"running":"stopped",")"]})]})]}),!F&&Object.keys(m).length>0&&_.jsxs("div",{className:"px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",onClick:y,children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"✓"}),_.jsx("span",{className:"flex-1 truncate text-muted-foreground",children:"Mark all as read"})]}),O.length>0&&_.jsxs(_.Fragment,{children:[_.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[_.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Channels"}),_.jsx("button",{className:"bg-transparent border border-border text-muted-foreground px-1.5 py-0.5 text-[10px] rounded hover:bg-accent hover:text-foreground",onClick:j,title:g==="alpha"?"Sort by recent":"Sort alphabetically",children:g==="alpha"?"A-Z":"⏱"})]}),O.map(R=>{const V=q("channel",R.key);return _.jsxs("div",{className:Ye("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",A("channel",R.key)&&"bg-accent border-l-primary",V>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>v({type:"channel",id:R.key,name:R.name}),children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"#"}),_.jsx("span",{className:"name flex-1 truncate",children:R.name}),V>0&&_.jsx("span",{className:"bg-primary text-primary-foreground text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",children:V})]},`chan-${R.key}`)})]}),N.length>0&&_.jsxs(_.Fragment,{children:[_.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[_.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Contacts"}),O.length===0&&_.jsx("button",{className:"bg-transparent border border-border text-muted-foreground px-1.5 py-0.5 text-[10px] rounded hover:bg-accent hover:text-foreground",onClick:j,title:g==="alpha"?"Sort by recent":"Sort alphabetically",children:g==="alpha"?"A-Z":"⏱"})]}),N.map(R=>{const V=q("contact",R.public_key);return _.jsxs("div",{className:Ye("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",A("contact",R.public_key)&&"bg-accent border-l-primary",V>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>v({type:"contact",id:R.public_key,name:Kn(R.name,R.public_key)}),children:[_.jsx(Yg,{name:R.name,publicKey:R.public_key,size:24,contactType:R.type}),_.jsx("span",{className:"name flex-1 truncate",children:Kn(R.name,R.public_key)}),V>0&&_.jsx("span",{className:"bg-primary text-primary-foreground text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",children:V})]},R.public_key)})]}),N.length===0&&O.length===0&&_.jsx("div",{className:"p-5 text-center text-muted-foreground",children:F?"No matches found":"No conversations yet"})]})]})}function rh(a){const r=a.indexOf(": ");if(r>0&&r<50){const o=a.substring(0,r);if(!/[:\[\]]/.test(o))return{sender:o,content:a.substring(r+2)}}return{sender:null,content:a}}function sh(a){const r=new Date(a*1e3),o=new Date,t=r.toDateString()===o.toDateString(),u=r.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return t?u:`${r.toLocaleDateString([],{month:"short",day:"numeric"})} ${u}`}function ix({messages:a,contacts:r,loading:o,loadingOlder:t=!1,hasOlderMessages:u=!1,onSenderClick:l,onLoadOlder:m}){const c=B.useRef(null),h=B.useRef(0),d=B.useRef(!0),[y,g]=B.useState(!1),f=B.useRef({scrollTop:0,scrollHeight:0,wasNearTop:!1});B.useLayoutEffect(()=>{if(!c.current)return;const C=c.current,S=a.length-h.current;if(d.current&&a.length>0)C.scrollTop=C.scrollHeight,d.current=!1;else if(S>0&&h.current>0){const D=C.scrollHeight-f.current.scrollHeight;f.current.wasNearTop&&D>0?C.scrollTop=f.current.scrollTop+D:f.current.wasNearTop||(C.scrollTop=C.scrollHeight)}h.current=a.length},[a]),B.useEffect(()=>{a.length===0&&(d.current=!0,h.current=0,f.current={scrollTop:0,scrollHeight:0,wasNearTop:!1})},[a.length]);const x=B.useCallback(()=>{if(!c.current)return;const{scrollTop:C,scrollHeight:S,clientHeight:D}=c.current;f.current={scrollTop:C,scrollHeight:S,wasNearTop:C<150};const T=S-C-D;g(T>100),!(!m||t||!u)&&C<100&&m()},[m,t,u]),w=B.useCallback(()=>{c.current&&(c.current.scrollTop=c.current.scrollHeight)},[]),j=C=>C&&r.find(S=>$g(S.public_key,C))||null,v=C=>r.find(S=>S.name===C)||null;if(o)return _.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"Loading messages..."});if(a.length===0)return _.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"No messages yet"});const q=[...a.reduce((C,S)=>{const D=`${S.type}-${S.conversation_key}-${S.text}-${S.sender_timestamp}`;return C.find(F=>`${F.type}-${F.conversation_key}-${F.text}-${F.sender_timestamp}`===D)||C.push(S),C},[])].sort((C,S)=>C.received_at-S.received_at),k=(C,S)=>C.outgoing?"__outgoing__":C.type==="PRIV"&&C.conversation_key?C.conversation_key:S||"__unknown__";return _.jsxs("div",{className:"flex-1 overflow-hidden relative",children:[_.jsxs("div",{className:"h-full overflow-y-auto p-4 flex flex-col gap-0.5",ref:c,onScroll:x,children:[t&&_.jsx("div",{className:"text-center py-2 text-muted-foreground text-sm",children:"Loading older messages..."}),!t&&u&&_.jsx("div",{className:"text-center py-2 text-muted-foreground text-xs",children:"Scroll up for older messages"}),q.map((C,S)=>{var W;const{sender:D,content:T}=rh(C.text),F=C.type==="PRIV"?j(C.conversation_key):null,O=C.outgoing?"You":(F==null?void 0:F.name)||D||((W=C.conversation_key)==null?void 0:W.slice(0,8))||"Unknown",N=!C.outgoing&&l&&O!=="Unknown",R=k(C,D),V=q[S-1],H=V?k(V,rh(V.text).sender):null,$=!C.outgoing&&R!==H,ae=S===0;let J=null,ie="";if(!C.outgoing){if(C.type==="PRIV"&&C.conversation_key)J=(F==null?void 0:F.name)||null,ie=C.conversation_key;else if(D){const oe=v(D);J=D,ie=(oe==null?void 0:oe.public_key)||`name:${D}`}}return _.jsxs("div",{className:Ye("flex items-start max-w-[85%]",C.outgoing&&"flex-row-reverse self-end",$&&!ae&&"mt-3"),children:[!C.outgoing&&_.jsx("div",{className:"w-10 flex-shrink-0 flex items-start pt-0.5",children:$&&ie&&_.jsx(Yg,{name:J,publicKey:ie,size:32})}),_.jsxs("div",{className:Ye("py-1.5 px-3 rounded-lg min-w-0",C.outgoing?"bg-[#1e3a29]":"bg-muted"),children:[$&&_.jsxs("div",{className:"text-[13px] font-semibold text-muted-foreground mb-0.5",children:[N?_.jsx("span",{className:"cursor-pointer hover:text-primary hover:underline",onClick:()=>l(O),title:`Mention ${O}`,children:O}):O,_.jsx("span",{className:"font-normal text-muted-foreground/70 ml-2 text-[11px]",children:sh(C.sender_timestamp||C.received_at)})]}),_.jsxs("div",{className:"break-words whitespace-pre-wrap",children:[T.split(` +`).map((oe,ee,z)=>_.jsxs("span",{children:[oe,ee({appendText:f=>{var x;m(w=>w+f),(x=d.current)==null||x.focus()}}));const y=B.useCallback(async f=>{f.preventDefault();const x=l.trim();if(!(!x||c||o)){h(!0);try{await r(x),m("")}catch(w){console.error("Failed to send message:",w)}finally{h(!1)}}},[l,c,o,r]),g=B.useCallback(f=>{f.key==="Enter"&&!f.shiftKey&&(f.preventDefault(),y(f))},[y]);return _.jsxs("form",{className:"px-4 py-3 border-t border-border flex gap-2",onSubmit:y,children:[_.jsx(zi,{ref:d,type:"text",value:l,onChange:f=>m(f.target.value),onKeyDown:g,placeholder:t||"Type a message...",disabled:o||c,className:"flex-1"}),_.jsx(Ha,{type:"submit",disabled:o||c||!l.trim(),children:c?"Sending...":"Send"})]})});function Bi(a,r,{checkForDefaultPrevented:o=!0}={}){return function(u){if(a==null||a(u),o===!1||!u.defaultPrevented)return r==null?void 0:r(u)}}function nx(a,r){const o=B.createContext(r),t=l=>{const{children:m,...c}=l,h=B.useMemo(()=>c,Object.values(c));return _.jsx(o.Provider,{value:h,children:m})};t.displayName=a+"Provider";function u(l){const m=B.useContext(o);if(m)return m;if(r!==void 0)return r;throw new Error(`\`${l}\` must be used within \`${a}\``)}return[t,u]}function Hr(a,r=[]){let o=[];function t(l,m){const c=B.createContext(m),h=o.length;o=[...o,m];const d=g=>{var A;const{scope:f,children:x,...w}=g,j=((A=f==null?void 0:f[a])==null?void 0:A[h])||c,v=B.useMemo(()=>w,Object.values(w));return _.jsx(j.Provider,{value:v,children:x})};d.displayName=l+"Provider";function y(g,f){var j;const x=((j=f==null?void 0:f[a])==null?void 0:j[h])||c,w=B.useContext(x);if(w)return w;if(m!==void 0)return m;throw new Error(`\`${g}\` must be used within \`${l}\``)}return[d,y]}const u=()=>{const l=o.map(m=>B.createContext(m));return function(c){const h=(c==null?void 0:c[a])||l;return B.useMemo(()=>({[`__scope${a}`]:{...c,[a]:h}}),[c,h])}};return u.scopeName=a,[t,ox(u,...r)]}function ox(...a){const r=a[0];if(a.length===1)return r;const o=()=>{const t=a.map(u=>({useScope:u(),scopeName:u.scopeName}));return function(l){const m=t.reduce((c,{useScope:h,scopeName:d})=>{const g=h(l)[`__scope${d}`];return{...c,...g}},{});return B.useMemo(()=>({[`__scope${r.scopeName}`]:m}),[m])}};return o.scopeName=r.scopeName,o}var _o=globalThis!=null&&globalThis.document?B.useLayoutEffect:()=>{},rx=Tu[" useId ".trim().toString()]||(()=>{}),sx=0;function Pr(a){const[r,o]=B.useState(rx());return _o(()=>{o(t=>t??String(sx++))},[a]),r?`radix-${r}`:""}var tx=Tu[" useInsertionEffect ".trim().toString()]||_o;function al({prop:a,defaultProp:r,onChange:o=()=>{},caller:t}){const[u,l,m]=lx({defaultProp:r,onChange:o}),c=a!==void 0,h=c?a:u;{const y=B.useRef(a!==void 0);B.useEffect(()=>{const g=y.current;g!==c&&console.warn(`${t} is changing from ${g?"controlled":"uncontrolled"} to ${c?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),y.current=c},[c,t])}const d=B.useCallback(y=>{var g;if(c){const f=cx(y)?y(a):y;f!==a&&((g=m.current)==null||g.call(m,f))}else l(y)},[c,a,l,m]);return[h,d]}function lx({defaultProp:a,onChange:r}){const[o,t]=B.useState(a),u=B.useRef(o),l=B.useRef(r);return tx(()=>{l.current=r},[r]),B.useEffect(()=>{var m;u.current!==o&&((m=l.current)==null||m.call(l,o),u.current=o)},[o,u]),[o,t,l]}function cx(a){return typeof a=="function"}function ux(a){const r=dx(a),o=B.forwardRef((t,u)=>{const{children:l,...m}=t,c=B.Children.toArray(l),h=c.find(mx);if(h){const d=h.props.children,y=c.map(g=>g===h?B.Children.count(d)>1?B.Children.only(null):B.isValidElement(d)?d.props.children:null:g);return _.jsx(r,{...m,ref:u,children:B.isValidElement(d)?B.cloneElement(d,void 0,y):null})}return _.jsx(r,{...m,ref:u,children:l})});return o.displayName=`${a}.Slot`,o}function dx(a){const r=B.forwardRef((o,t)=>{const{children:u,...l}=o;if(B.isValidElement(u)){const m=gx(u),c=hx(l,u.props);return u.type!==B.Fragment&&(c.ref=t?Or(t,m):m),B.cloneElement(u,c)}return B.Children.count(u)>1?B.Children.only(null):null});return r.displayName=`${a}.SlotClone`,r}var px=Symbol("radix.slottable");function mx(a){return B.isValidElement(a)&&typeof a.type=="function"&&"__radixId"in a.type&&a.type.__radixId===px}function hx(a,r){const o={...r};for(const t in r){const u=a[t],l=r[t];/^on[A-Z]/.test(t)?u&&l?o[t]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[t]=u):t==="style"?o[t]={...u,...l}:t==="className"&&(o[t]=[u,l].filter(Boolean).join(" "))}return{...a,...o}}function gx(a){var t,u;let r=(t=Object.getOwnPropertyDescriptor(a.props,"ref"))==null?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?a.ref:(r=(u=Object.getOwnPropertyDescriptor(a,"ref"))==null?void 0:u.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}var yx=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ri=yx.reduce((a,r)=>{const o=ux(`Primitive.${r}`),t=B.forwardRef((u,l)=>{const{asChild:m,...c}=u,h=m?o:r;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),_.jsx(h,{...c,ref:l})});return t.displayName=`Primitive.${r}`,{...a,[r]:t}},{});function bx(a,r){a&&Gg.flushSync(()=>a.dispatchEvent(r))}function Do(a){const r=B.useRef(a);return B.useEffect(()=>{r.current=a}),B.useMemo(()=>(...o)=>{var t;return(t=r.current)==null?void 0:t.call(r,...o)},[])}function fx(a,r=globalThis==null?void 0:globalThis.document){const o=Do(a);B.useEffect(()=>{const t=u=>{u.key==="Escape"&&o(u)};return r.addEventListener("keydown",t,{capture:!0}),()=>r.removeEventListener("keydown",t,{capture:!0})},[o,r])}var vx="DismissableLayer",qu="dismissableLayer.update",kx="dismissableLayer.pointerDownOutside",wx="dismissableLayer.focusOutside",th,py=B.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),my=B.forwardRef((a,r)=>{const{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:t,onPointerDownOutside:u,onFocusOutside:l,onInteractOutside:m,onDismiss:c,...h}=a,d=B.useContext(py),[y,g]=B.useState(null),f=(y==null?void 0:y.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,x]=B.useState({}),w=fa(r,T=>g(T)),j=Array.from(d.layers),[v]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),A=j.indexOf(v),q=y?j.indexOf(y):-1,k=d.layersWithOutsidePointerEventsDisabled.size>0,C=q>=A,S=qx(T=>{const F=T.target,O=[...d.branches].some(N=>N.contains(F));!C||O||(u==null||u(T),m==null||m(T),T.defaultPrevented||c==null||c())},f),D=jx(T=>{const F=T.target;[...d.branches].some(N=>N.contains(F))||(l==null||l(T),m==null||m(T),T.defaultPrevented||c==null||c())},f);return fx(T=>{q===d.layers.size-1&&(t==null||t(T),!T.defaultPrevented&&c&&(T.preventDefault(),c()))},f),B.useEffect(()=>{if(y)return o&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(th=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(y)),d.layers.add(y),lh(),()=>{o&&d.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=th)}},[y,f,o,d]),B.useEffect(()=>()=>{y&&(d.layers.delete(y),d.layersWithOutsidePointerEventsDisabled.delete(y),lh())},[y,d]),B.useEffect(()=>{const T=()=>x({});return document.addEventListener(qu,T),()=>document.removeEventListener(qu,T)},[]),_.jsx(Ri.div,{...h,ref:w,style:{pointerEvents:k?C?"auto":"none":void 0,...a.style},onFocusCapture:Bi(a.onFocusCapture,D.onFocusCapture),onBlurCapture:Bi(a.onBlurCapture,D.onBlurCapture),onPointerDownCapture:Bi(a.onPointerDownCapture,S.onPointerDownCapture)})});my.displayName=vx;var xx="DismissableLayerBranch",zx=B.forwardRef((a,r)=>{const o=B.useContext(py),t=B.useRef(null),u=fa(r,t);return B.useEffect(()=>{const l=t.current;if(l)return o.branches.add(l),()=>{o.branches.delete(l)}},[o.branches]),_.jsx(Ri.div,{...a,ref:u})});zx.displayName=xx;function qx(a,r=globalThis==null?void 0:globalThis.document){const o=Do(a),t=B.useRef(!1),u=B.useRef(()=>{});return B.useEffect(()=>{const l=c=>{if(c.target&&!t.current){let h=function(){hy(kx,o,d,{discrete:!0})};const d={originalEvent:c};c.pointerType==="touch"?(r.removeEventListener("click",u.current),u.current=h,r.addEventListener("click",u.current,{once:!0})):h()}else r.removeEventListener("click",u.current);t.current=!1},m=window.setTimeout(()=>{r.addEventListener("pointerdown",l)},0);return()=>{window.clearTimeout(m),r.removeEventListener("pointerdown",l),r.removeEventListener("click",u.current)}},[r,o]),{onPointerDownCapture:()=>t.current=!0}}function jx(a,r=globalThis==null?void 0:globalThis.document){const o=Do(a),t=B.useRef(!1);return B.useEffect(()=>{const u=l=>{l.target&&!t.current&&hy(wx,o,{originalEvent:l},{discrete:!1})};return r.addEventListener("focusin",u),()=>r.removeEventListener("focusin",u)},[r,o]),{onFocusCapture:()=>t.current=!0,onBlurCapture:()=>t.current=!1}}function lh(){const a=new CustomEvent(qu);document.dispatchEvent(a)}function hy(a,r,o,{discrete:t}){const u=o.originalEvent.target,l=new CustomEvent(a,{bubbles:!1,cancelable:!0,detail:o});r&&u.addEventListener(a,r,{once:!0}),t?bx(u,l):u.dispatchEvent(l)}var su="focusScope.autoFocusOnMount",tu="focusScope.autoFocusOnUnmount",ch={bubbles:!1,cancelable:!0},Ax="FocusScope",gy=B.forwardRef((a,r)=>{const{loop:o=!1,trapped:t=!1,onMountAutoFocus:u,onUnmountAutoFocus:l,...m}=a,[c,h]=B.useState(null),d=Do(u),y=Do(l),g=B.useRef(null),f=fa(r,j=>h(j)),x=B.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;B.useEffect(()=>{if(t){let j=function(k){if(x.paused||!c)return;const C=k.target;c.contains(C)?g.current=C:qn(g.current,{select:!0})},v=function(k){if(x.paused||!c)return;const C=k.relatedTarget;C!==null&&(c.contains(C)||qn(g.current,{select:!0}))},A=function(k){if(document.activeElement===document.body)for(const S of k)S.removedNodes.length>0&&qn(c)};document.addEventListener("focusin",j),document.addEventListener("focusout",v);const q=new MutationObserver(A);return c&&q.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",j),document.removeEventListener("focusout",v),q.disconnect()}}},[t,c,x.paused]),B.useEffect(()=>{if(c){dh.add(x);const j=document.activeElement;if(!c.contains(j)){const A=new CustomEvent(su,ch);c.addEventListener(su,d),c.dispatchEvent(A),A.defaultPrevented||(Cx(Dx(yy(c)),{select:!0}),document.activeElement===j&&qn(c))}return()=>{c.removeEventListener(su,d),setTimeout(()=>{const A=new CustomEvent(tu,ch);c.addEventListener(tu,y),c.dispatchEvent(A),A.defaultPrevented||qn(j??document.body,{select:!0}),c.removeEventListener(tu,y),dh.remove(x)},0)}}},[c,d,y,x]);const w=B.useCallback(j=>{if(!o&&!t||x.paused)return;const v=j.key==="Tab"&&!j.altKey&&!j.ctrlKey&&!j.metaKey,A=document.activeElement;if(v&&A){const q=j.currentTarget,[k,C]=Ex(q);k&&C?!j.shiftKey&&A===C?(j.preventDefault(),o&&qn(k,{select:!0})):j.shiftKey&&A===k&&(j.preventDefault(),o&&qn(C,{select:!0})):A===q&&j.preventDefault()}},[o,t,x.paused]);return _.jsx(Ri.div,{tabIndex:-1,...m,ref:f,onKeyDown:w})});gy.displayName=Ax;function Cx(a,{select:r=!1}={}){const o=document.activeElement;for(const t of a)if(qn(t,{select:r}),document.activeElement!==o)return}function Ex(a){const r=yy(a),o=uh(r,a),t=uh(r.reverse(),a);return[o,t]}function yy(a){const r=[],o=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,{acceptNode:t=>{const u=t.tagName==="INPUT"&&t.type==="hidden";return t.disabled||t.hidden||u?NodeFilter.FILTER_SKIP:t.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)r.push(o.currentNode);return r}function uh(a,r){for(const o of a)if(!Sx(o,{upTo:r}))return o}function Sx(a,{upTo:r}){if(getComputedStyle(a).visibility==="hidden")return!0;for(;a;){if(r!==void 0&&a===r)return!1;if(getComputedStyle(a).display==="none")return!0;a=a.parentElement}return!1}function Bx(a){return a instanceof HTMLInputElement&&"select"in a}function qn(a,{select:r=!1}={}){if(a&&a.focus){const o=document.activeElement;a.focus({preventScroll:!0}),a!==o&&Bx(a)&&r&&a.select()}}var dh=_x();function _x(){let a=[];return{add(r){const o=a[0];r!==o&&(o==null||o.pause()),a=ph(a,r),a.unshift(r)},remove(r){var o;a=ph(a,r),(o=a[0])==null||o.resume()}}}function ph(a,r){const o=[...a],t=o.indexOf(r);return t!==-1&&o.splice(t,1),o}function Dx(a){return a.filter(r=>r.tagName!=="A")}var Fx="Portal",by=B.forwardRef((a,r)=>{var c;const{container:o,...t}=a,[u,l]=B.useState(!1);_o(()=>l(!0),[]);const m=o||u&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return m?Qg.createPortal(_.jsx(Ri.div,{...t,ref:r}),m):null});by.displayName=Fx;function Rx(a,r){return B.useReducer((o,t)=>r[o][t]??o,a)}var Po=a=>{const{present:r,children:o}=a,t=Tx(r),u=typeof o=="function"?o({present:t.isPresent}):B.Children.only(o),l=fa(t.ref,Px(u));return typeof o=="function"||t.isPresent?B.cloneElement(u,{ref:l}):null};Po.displayName="Presence";function Tx(a){const[r,o]=B.useState(),t=B.useRef(null),u=B.useRef(a),l=B.useRef("none"),m=a?"mounted":"unmounted",[c,h]=Rx(m,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return B.useEffect(()=>{const d=Js(t.current);l.current=c==="mounted"?d:"none"},[c]),_o(()=>{const d=t.current,y=u.current;if(y!==a){const f=l.current,x=Js(d);a?h("MOUNT"):x==="none"||(d==null?void 0:d.display)==="none"?h("UNMOUNT"):h(y&&f!==x?"ANIMATION_OUT":"UNMOUNT"),u.current=a}},[a,h]),_o(()=>{if(r){let d;const y=r.ownerDocument.defaultView??window,g=x=>{const j=Js(t.current).includes(CSS.escape(x.animationName));if(x.target===r&&j&&(h("ANIMATION_END"),!u.current)){const v=r.style.animationFillMode;r.style.animationFillMode="forwards",d=y.setTimeout(()=>{r.style.animationFillMode==="forwards"&&(r.style.animationFillMode=v)})}},f=x=>{x.target===r&&(l.current=Js(t.current))};return r.addEventListener("animationstart",f),r.addEventListener("animationcancel",g),r.addEventListener("animationend",g),()=>{y.clearTimeout(d),r.removeEventListener("animationstart",f),r.removeEventListener("animationcancel",g),r.removeEventListener("animationend",g)}}else h("ANIMATION_END")},[r,h]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:B.useCallback(d=>{t.current=d?getComputedStyle(d):null,o(d)},[])}}function Js(a){return(a==null?void 0:a.animationName)||"none"}function Px(a){var t,u;let r=(t=Object.getOwnPropertyDescriptor(a.props,"ref"))==null?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?a.ref:(r=(u=Object.getOwnPropertyDescriptor(a,"ref"))==null?void 0:u.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}var lu=0;function Nx(){B.useEffect(()=>{const a=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",a[0]??mh()),document.body.insertAdjacentElement("beforeend",a[1]??mh()),lu++,()=>{lu===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),lu--}},[])}function mh(){const a=document.createElement("span");return a.setAttribute("data-radix-focus-guard",""),a.tabIndex=0,a.style.outline="none",a.style.opacity="0",a.style.position="fixed",a.style.pointerEvents="none",a}var Oa=function(){return Oa=Object.assign||function(r){for(var o,t=1,u=arguments.length;t"u")return ez;var r=iz(a),o=document.documentElement.clientWidth,t=window.innerWidth;return{left:r[0],top:r[1],right:r[2],gap:Math.max(0,t-o+r[2]-r[0])}},nz=wy(),Eo="data-scroll-locked",oz=function(a,r,o,t){var u=a.left,l=a.top,m=a.right,c=a.gap;return o===void 0&&(o="margin"),` .`.concat(Mx,` { overflow: hidden `).concat(t,`; padding-right: `).concat(c,"px ").concat(t,`; @@ -113,11 +113,11 @@ Error generating stack: `+b.message+` `)},gh=function(){var a=parseInt(document.body.getAttribute(Eo)||"0",10);return isFinite(a)?a:0},rz=function(){B.useEffect(function(){return document.body.setAttribute(Eo,(gh()+1).toString()),function(){var a=gh()-1;a<=0?document.body.removeAttribute(Eo):document.body.setAttribute(Eo,a.toString())}},[])},sz=function(a){var r=a.noRelative,o=a.noImportant,t=a.gapMode,u=t===void 0?"margin":t;rz();var l=B.useMemo(function(){return az(u)},[u]);return B.createElement(nz,{styles:oz(l,!r,u,o?"":"!important")})},ju=!1;if(typeof window<"u")try{var et=Object.defineProperty({},"passive",{get:function(){return ju=!0,!0}});window.addEventListener("test",et,et),window.removeEventListener("test",et,et)}catch{ju=!1}var qo=ju?{passive:!1}:!1,tz=function(a){return a.tagName==="TEXTAREA"},xy=function(a,r){if(!(a instanceof Element))return!1;var o=window.getComputedStyle(a);return o[r]!=="hidden"&&!(o.overflowY===o.overflowX&&!tz(a)&&o[r]==="visible")},lz=function(a){return xy(a,"overflowY")},cz=function(a){return xy(a,"overflowX")},yh=function(a,r){var o=r.ownerDocument,t=r;do{typeof ShadowRoot<"u"&&t instanceof ShadowRoot&&(t=t.host);var u=zy(a,t);if(u){var l=qy(a,t),m=l[1],c=l[2];if(m>c)return!0}t=t.parentNode}while(t&&t!==o.body);return!1},uz=function(a){var r=a.scrollTop,o=a.scrollHeight,t=a.clientHeight;return[r,o,t]},dz=function(a){var r=a.scrollLeft,o=a.scrollWidth,t=a.clientWidth;return[r,o,t]},zy=function(a,r){return a==="v"?lz(r):cz(r)},qy=function(a,r){return a==="v"?uz(r):dz(r)},pz=function(a,r){return a==="h"&&r==="rtl"?-1:1},mz=function(a,r,o,t,u){var l=pz(a,window.getComputedStyle(r).direction),m=l*t,c=o.target,h=r.contains(c),d=!1,y=m>0,g=0,f=0;do{if(!c)break;var x=qy(a,c),w=x[0],j=x[1],v=x[2],A=j-v-l*w;(w||A)&&zy(a,c)&&(g+=A,f+=w);var q=c.parentNode;c=q&&q.nodeType===Node.DOCUMENT_FRAGMENT_NODE?q.host:q}while(!h&&c!==document.body||h&&(r.contains(c)||r===c));return(y&&Math.abs(g)<1||!y&&Math.abs(f)<1)&&(d=!0),d},it=function(a){return"changedTouches"in a?[a.changedTouches[0].clientX,a.changedTouches[0].clientY]:[0,0]},bh=function(a){return[a.deltaX,a.deltaY]},fh=function(a){return a&&"current"in a?a.current:a},hz=function(a,r){return a[0]===r[0]&&a[1]===r[1]},gz=function(a){return` .block-interactivity-`.concat(a,` {pointer-events: none;} .allow-interactivity-`).concat(a,` {pointer-events: all;} -`)},yz=0,jo=[];function bz(a){var r=B.useRef([]),o=B.useRef([0,0]),t=B.useRef(),u=B.useState(yz++)[0],l=B.useState(wy)[0],m=B.useRef(a);B.useEffect(function(){m.current=a},[a]),B.useEffect(function(){if(a.inert){document.body.classList.add("block-interactivity-".concat(u));var j=Ix([a.lockRef.current],(a.shards||[]).map(fh),!0).filter(Boolean);return j.forEach(function(v){return v.classList.add("allow-interactivity-".concat(u))}),function(){document.body.classList.remove("block-interactivity-".concat(u)),j.forEach(function(v){return v.classList.remove("allow-interactivity-".concat(u))})}}},[a.inert,a.lockRef.current,a.shards]);var c=B.useCallback(function(j,v){if("touches"in j&&j.touches.length===2||j.type==="wheel"&&j.ctrlKey)return!m.current.allowPinchZoom;var A=it(j),q=o.current,k="deltaX"in j?j.deltaX:q[0]-A[0],C="deltaY"in j?j.deltaY:q[1]-A[1],S,D=j.target,T=Math.abs(k)>Math.abs(C)?"h":"v";if("touches"in j&&T==="h"&&D.type==="range")return!1;var F=window.getSelection(),O=F&&F.anchorNode,N=O?O===D||O.contains(D):!1;if(N)return!1;var R=yh(T,D);if(!R)return!0;if(R?S=T:(S=T==="v"?"h":"v",R=yh(T,D)),!R)return!1;if(!t.current&&"changedTouches"in j&&(k||C)&&(t.current=S),!S)return!0;var V=t.current||S;return mz(V,v,j,V==="h"?k:C)},[]),h=B.useCallback(function(j){var v=j;if(!(!jo.length||jo[jo.length-1]!==l)){var A="deltaY"in v?bh(v):it(v),q=r.current.filter(function(S){return S.name===v.type&&(S.target===v.target||v.target===S.shadowParent)&&hz(S.delta,A)})[0];if(q&&q.should){v.cancelable&&v.preventDefault();return}if(!q){var k=(m.current.shards||[]).map(fh).filter(Boolean).filter(function(S){return S.contains(v.target)}),C=k.length>0?c(v,k[0]):!m.current.noIsolation;C&&v.cancelable&&v.preventDefault()}}},[]),d=B.useCallback(function(j,v,A,q){var k={name:j,delta:v,target:A,should:q,shadowParent:fz(A)};r.current.push(k),setTimeout(function(){r.current=r.current.filter(function(C){return C!==k})},1)},[]),y=B.useCallback(function(j){o.current=it(j),t.current=void 0},[]),g=B.useCallback(function(j){d(j.type,bh(j),j.target,c(j,a.lockRef.current))},[]),f=B.useCallback(function(j){d(j.type,it(j),j.target,c(j,a.lockRef.current))},[]);B.useEffect(function(){return jo.push(l),a.setCallbacks({onScrollCapture:g,onWheelCapture:g,onTouchMoveCapture:f}),document.addEventListener("wheel",h,qo),document.addEventListener("touchmove",h,qo),document.addEventListener("touchstart",y,qo),function(){jo=jo.filter(function(j){return j!==l}),document.removeEventListener("wheel",h,qo),document.removeEventListener("touchmove",h,qo),document.removeEventListener("touchstart",y,qo)}},[]);var x=a.removeScrollBar,w=a.inert;return B.createElement(B.Fragment,null,w?B.createElement(l,{styles:gz(u)}):null,x?B.createElement(sz,{noRelative:a.noRelative,gapMode:a.gapMode}):null)}function fz(a){for(var r=null;a!==null;)a instanceof ShadowRoot&&(r=a.host,a=a.host),a=a.parentNode;return r}const vz=Qx(ky,bz);var jy=B.forwardRef(function(a,r){return B.createElement(nl,Oa({},a,{ref:r,sideCar:vz}))});jy.classNames=nl.classNames;var kz=function(a){if(typeof document>"u")return null;var r=Array.isArray(a)?a[0]:a;return r.ownerDocument.body},Ao=new WeakMap,at=new WeakMap,nt={},pu=0,Ay=function(a){return a&&(a.host||Ay(a.parentNode))},wz=function(a,r){return r.map(function(o){if(a.contains(o))return o;var t=Ay(o);return t&&a.contains(t)?t:(console.error("aria-hidden",o,"in not contained inside",a,". Doing nothing"),null)}).filter(function(o){return!!o})},xz=function(a,r,o,t){var u=wz(r,Array.isArray(a)?a:[a]);nt[o]||(nt[o]=new WeakMap);var l=nt[o],m=[],c=new Set,h=new Set(u),d=function(g){!g||c.has(g)||(c.add(g),d(g.parentNode))};u.forEach(d);var y=function(g){!g||h.has(g)||Array.prototype.forEach.call(g.children,function(f){if(c.has(f))y(f);else try{var x=f.getAttribute(t),w=x!==null&&x!=="false",j=(Ao.get(f)||0)+1,v=(l.get(f)||0)+1;Ao.set(f,j),l.set(f,v),m.push(f),j===1&&w&&at.set(f,!0),v===1&&f.setAttribute(o,"true"),w||f.setAttribute(t,"true")}catch(A){console.error("aria-hidden: cannot operate on ",f,A)}})};return y(r),c.clear(),pu++,function(){m.forEach(function(g){var f=Ao.get(g)-1,x=l.get(g)-1;Ao.set(g,f),l.set(g,x),f||(at.has(g)||g.removeAttribute(t),at.delete(g)),x||g.removeAttribute(o)}),pu--,pu||(Ao=new WeakMap,Ao=new WeakMap,at=new WeakMap,nt={})}},zz=function(a,r,o){o===void 0&&(o="data-aria-hidden");var t=Array.from(Array.isArray(a)?a:[a]),u=kz(a);return u?(t.push.apply(t,Array.from(u.querySelectorAll("[aria-live], script"))),xz(t,u,o,"aria-hidden")):function(){return null}};function qz(a){const r=jz(a),o=B.forwardRef((t,u)=>{const{children:l,...m}=t,c=B.Children.toArray(l),h=c.find(Cz);if(h){const d=h.props.children,y=c.map(g=>g===h?B.Children.count(d)>1?B.Children.only(null):B.isValidElement(d)?d.props.children:null:g);return _.jsx(r,{...m,ref:u,children:B.isValidElement(d)?B.cloneElement(d,void 0,y):null})}return _.jsx(r,{...m,ref:u,children:l})});return o.displayName=`${a}.Slot`,o}function jz(a){const r=B.forwardRef((o,t)=>{const{children:u,...l}=o;if(B.isValidElement(u)){const m=Sz(u),c=Ez(l,u.props);return u.type!==B.Fragment&&(c.ref=t?Or(t,m):m),B.cloneElement(u,c)}return B.Children.count(u)>1?B.Children.only(null):null});return r.displayName=`${a}.SlotClone`,r}var Az=Symbol("radix.slottable");function Cz(a){return B.isValidElement(a)&&typeof a.type=="function"&&"__radixId"in a.type&&a.type.__radixId===Az}function Ez(a,r){const o={...r};for(const t in r){const u=a[t],l=r[t];/^on[A-Z]/.test(t)?u&&l?o[t]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[t]=u):t==="style"?o[t]={...u,...l}:t==="className"&&(o[t]=[u,l].filter(Boolean).join(" "))}return{...a,...o}}function Sz(a){var t,u;let r=(t=Object.getOwnPropertyDescriptor(a.props,"ref"))==null?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?a.ref:(r=(u=Object.getOwnPropertyDescriptor(a,"ref"))==null?void 0:u.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}var ol="Dialog",[Cy]=Hr(ol),[Bz,_a]=Cy(ol),Ey=a=>{const{__scopeDialog:r,children:o,open:t,defaultOpen:u,onOpenChange:l,modal:m=!0}=a,c=B.useRef(null),h=B.useRef(null),[d,y]=al({prop:t,defaultProp:u??!1,onChange:l,caller:ol});return _.jsx(Bz,{scope:r,triggerRef:c,contentRef:h,contentId:Pr(),titleId:Pr(),descriptionId:Pr(),open:d,onOpenChange:y,onOpenToggle:B.useCallback(()=>y(g=>!g),[y]),modal:m,children:o})};Ey.displayName=ol;var Sy="DialogTrigger",_z=B.forwardRef((a,r)=>{const{__scopeDialog:o,...t}=a,u=_a(Sy,o),l=fa(r,u.triggerRef);return _.jsx(Fi.button,{type:"button","aria-haspopup":"dialog","aria-expanded":u.open,"aria-controls":u.contentId,"data-state":Hu(u.open),...t,ref:l,onClick:Si(a.onClick,u.onOpenToggle)})});_z.displayName=Sy;var Mu="DialogPortal",[Dz,By]=Cy(Mu,{forceMount:void 0}),_y=a=>{const{__scopeDialog:r,forceMount:o,children:t,container:u}=a,l=_a(Mu,r);return _.jsx(Dz,{scope:r,forceMount:o,children:B.Children.map(t,m=>_.jsx(Po,{present:o||l.open,children:_.jsx(by,{asChild:!0,container:u,children:m})}))})};_y.displayName=Mu;var Kt="DialogOverlay",Dy=B.forwardRef((a,r)=>{const o=By(Kt,a.__scopeDialog),{forceMount:t=o.forceMount,...u}=a,l=_a(Kt,a.__scopeDialog);return l.modal?_.jsx(Po,{present:t||l.open,children:_.jsx(Rz,{...u,ref:r})}):null});Dy.displayName=Kt;var Fz=qz("DialogOverlay.RemoveScroll"),Rz=B.forwardRef((a,r)=>{const{__scopeDialog:o,...t}=a,u=_a(Kt,o);return _.jsx(jy,{as:Fz,allowPinchZoom:!0,shards:[u.contentRef],children:_.jsx(Fi.div,{"data-state":Hu(u.open),...t,ref:r,style:{pointerEvents:"auto",...t.style}})})}),Yn="DialogContent",Fy=B.forwardRef((a,r)=>{const o=By(Yn,a.__scopeDialog),{forceMount:t=o.forceMount,...u}=a,l=_a(Yn,a.__scopeDialog);return _.jsx(Po,{present:t||l.open,children:l.modal?_.jsx(Tz,{...u,ref:r}):_.jsx(Pz,{...u,ref:r})})});Fy.displayName=Yn;var Tz=B.forwardRef((a,r)=>{const o=_a(Yn,a.__scopeDialog),t=B.useRef(null),u=fa(r,o.contentRef,t);return B.useEffect(()=>{const l=t.current;if(l)return zz(l)},[]),_.jsx(Ry,{...a,ref:u,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Si(a.onCloseAutoFocus,l=>{var m;l.preventDefault(),(m=o.triggerRef.current)==null||m.focus()}),onPointerDownOutside:Si(a.onPointerDownOutside,l=>{const m=l.detail.originalEvent,c=m.button===0&&m.ctrlKey===!0;(m.button===2||c)&&l.preventDefault()}),onFocusOutside:Si(a.onFocusOutside,l=>l.preventDefault())})}),Pz=B.forwardRef((a,r)=>{const o=_a(Yn,a.__scopeDialog),t=B.useRef(!1),u=B.useRef(!1);return _.jsx(Ry,{...a,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:l=>{var m,c;(m=a.onCloseAutoFocus)==null||m.call(a,l),l.defaultPrevented||(t.current||(c=o.triggerRef.current)==null||c.focus(),l.preventDefault()),t.current=!1,u.current=!1},onInteractOutside:l=>{var h,d;(h=a.onInteractOutside)==null||h.call(a,l),l.defaultPrevented||(t.current=!0,l.detail.originalEvent.type==="pointerdown"&&(u.current=!0));const m=l.target;((d=o.triggerRef.current)==null?void 0:d.contains(m))&&l.preventDefault(),l.detail.originalEvent.type==="focusin"&&u.current&&l.preventDefault()}})}),Ry=B.forwardRef((a,r)=>{const{__scopeDialog:o,trapFocus:t,onOpenAutoFocus:u,onCloseAutoFocus:l,...m}=a,c=_a(Yn,o),h=B.useRef(null),d=fa(r,h);return Nx(),_.jsxs(_.Fragment,{children:[_.jsx(gy,{asChild:!0,loop:!0,trapped:t,onMountAutoFocus:u,onUnmountAutoFocus:l,children:_.jsx(my,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":Hu(c.open),...m,ref:d,onDismiss:()=>c.onOpenChange(!1)})}),_.jsxs(_.Fragment,{children:[_.jsx(Nz,{titleId:c.titleId}),_.jsx(Mz,{contentRef:h,descriptionId:c.descriptionId})]})]})}),Ou="DialogTitle",Ty=B.forwardRef((a,r)=>{const{__scopeDialog:o,...t}=a,u=_a(Ou,o);return _.jsx(Fi.h2,{id:u.titleId,...t,ref:r})});Ty.displayName=Ou;var Py="DialogDescription",Ny=B.forwardRef((a,r)=>{const{__scopeDialog:o,...t}=a,u=_a(Py,o);return _.jsx(Fi.p,{id:u.descriptionId,...t,ref:r})});Ny.displayName=Py;var Iy="DialogClose",My=B.forwardRef((a,r)=>{const{__scopeDialog:o,...t}=a,u=_a(Iy,o);return _.jsx(Fi.button,{type:"button",...t,ref:r,onClick:Si(a.onClick,()=>u.onOpenChange(!1))})});My.displayName=Iy;function Hu(a){return a?"open":"closed"}var Oy="DialogTitleWarning",[Zj,Hy]=nx(Oy,{contentName:Yn,titleName:Ou,docsSlug:"dialog"}),Nz=({titleId:a})=>{const r=Hy(Oy),o=`\`${r.contentName}\` requires a \`${r.titleName}\` for the component to be accessible for screen reader users. +`)},yz=0,jo=[];function bz(a){var r=B.useRef([]),o=B.useRef([0,0]),t=B.useRef(),u=B.useState(yz++)[0],l=B.useState(wy)[0],m=B.useRef(a);B.useEffect(function(){m.current=a},[a]),B.useEffect(function(){if(a.inert){document.body.classList.add("block-interactivity-".concat(u));var j=Ix([a.lockRef.current],(a.shards||[]).map(fh),!0).filter(Boolean);return j.forEach(function(v){return v.classList.add("allow-interactivity-".concat(u))}),function(){document.body.classList.remove("block-interactivity-".concat(u)),j.forEach(function(v){return v.classList.remove("allow-interactivity-".concat(u))})}}},[a.inert,a.lockRef.current,a.shards]);var c=B.useCallback(function(j,v){if("touches"in j&&j.touches.length===2||j.type==="wheel"&&j.ctrlKey)return!m.current.allowPinchZoom;var A=it(j),q=o.current,k="deltaX"in j?j.deltaX:q[0]-A[0],C="deltaY"in j?j.deltaY:q[1]-A[1],S,D=j.target,T=Math.abs(k)>Math.abs(C)?"h":"v";if("touches"in j&&T==="h"&&D.type==="range")return!1;var F=window.getSelection(),O=F&&F.anchorNode,N=O?O===D||O.contains(D):!1;if(N)return!1;var R=yh(T,D);if(!R)return!0;if(R?S=T:(S=T==="v"?"h":"v",R=yh(T,D)),!R)return!1;if(!t.current&&"changedTouches"in j&&(k||C)&&(t.current=S),!S)return!0;var V=t.current||S;return mz(V,v,j,V==="h"?k:C)},[]),h=B.useCallback(function(j){var v=j;if(!(!jo.length||jo[jo.length-1]!==l)){var A="deltaY"in v?bh(v):it(v),q=r.current.filter(function(S){return S.name===v.type&&(S.target===v.target||v.target===S.shadowParent)&&hz(S.delta,A)})[0];if(q&&q.should){v.cancelable&&v.preventDefault();return}if(!q){var k=(m.current.shards||[]).map(fh).filter(Boolean).filter(function(S){return S.contains(v.target)}),C=k.length>0?c(v,k[0]):!m.current.noIsolation;C&&v.cancelable&&v.preventDefault()}}},[]),d=B.useCallback(function(j,v,A,q){var k={name:j,delta:v,target:A,should:q,shadowParent:fz(A)};r.current.push(k),setTimeout(function(){r.current=r.current.filter(function(C){return C!==k})},1)},[]),y=B.useCallback(function(j){o.current=it(j),t.current=void 0},[]),g=B.useCallback(function(j){d(j.type,bh(j),j.target,c(j,a.lockRef.current))},[]),f=B.useCallback(function(j){d(j.type,it(j),j.target,c(j,a.lockRef.current))},[]);B.useEffect(function(){return jo.push(l),a.setCallbacks({onScrollCapture:g,onWheelCapture:g,onTouchMoveCapture:f}),document.addEventListener("wheel",h,qo),document.addEventListener("touchmove",h,qo),document.addEventListener("touchstart",y,qo),function(){jo=jo.filter(function(j){return j!==l}),document.removeEventListener("wheel",h,qo),document.removeEventListener("touchmove",h,qo),document.removeEventListener("touchstart",y,qo)}},[]);var x=a.removeScrollBar,w=a.inert;return B.createElement(B.Fragment,null,w?B.createElement(l,{styles:gz(u)}):null,x?B.createElement(sz,{noRelative:a.noRelative,gapMode:a.gapMode}):null)}function fz(a){for(var r=null;a!==null;)a instanceof ShadowRoot&&(r=a.host,a=a.host),a=a.parentNode;return r}const vz=Qx(ky,bz);var jy=B.forwardRef(function(a,r){return B.createElement(nl,Oa({},a,{ref:r,sideCar:vz}))});jy.classNames=nl.classNames;var kz=function(a){if(typeof document>"u")return null;var r=Array.isArray(a)?a[0]:a;return r.ownerDocument.body},Ao=new WeakMap,at=new WeakMap,nt={},pu=0,Ay=function(a){return a&&(a.host||Ay(a.parentNode))},wz=function(a,r){return r.map(function(o){if(a.contains(o))return o;var t=Ay(o);return t&&a.contains(t)?t:(console.error("aria-hidden",o,"in not contained inside",a,". Doing nothing"),null)}).filter(function(o){return!!o})},xz=function(a,r,o,t){var u=wz(r,Array.isArray(a)?a:[a]);nt[o]||(nt[o]=new WeakMap);var l=nt[o],m=[],c=new Set,h=new Set(u),d=function(g){!g||c.has(g)||(c.add(g),d(g.parentNode))};u.forEach(d);var y=function(g){!g||h.has(g)||Array.prototype.forEach.call(g.children,function(f){if(c.has(f))y(f);else try{var x=f.getAttribute(t),w=x!==null&&x!=="false",j=(Ao.get(f)||0)+1,v=(l.get(f)||0)+1;Ao.set(f,j),l.set(f,v),m.push(f),j===1&&w&&at.set(f,!0),v===1&&f.setAttribute(o,"true"),w||f.setAttribute(t,"true")}catch(A){console.error("aria-hidden: cannot operate on ",f,A)}})};return y(r),c.clear(),pu++,function(){m.forEach(function(g){var f=Ao.get(g)-1,x=l.get(g)-1;Ao.set(g,f),l.set(g,x),f||(at.has(g)||g.removeAttribute(t),at.delete(g)),x||g.removeAttribute(o)}),pu--,pu||(Ao=new WeakMap,Ao=new WeakMap,at=new WeakMap,nt={})}},zz=function(a,r,o){o===void 0&&(o="data-aria-hidden");var t=Array.from(Array.isArray(a)?a:[a]),u=kz(a);return u?(t.push.apply(t,Array.from(u.querySelectorAll("[aria-live], script"))),xz(t,u,o,"aria-hidden")):function(){return null}};function qz(a){const r=jz(a),o=B.forwardRef((t,u)=>{const{children:l,...m}=t,c=B.Children.toArray(l),h=c.find(Cz);if(h){const d=h.props.children,y=c.map(g=>g===h?B.Children.count(d)>1?B.Children.only(null):B.isValidElement(d)?d.props.children:null:g);return _.jsx(r,{...m,ref:u,children:B.isValidElement(d)?B.cloneElement(d,void 0,y):null})}return _.jsx(r,{...m,ref:u,children:l})});return o.displayName=`${a}.Slot`,o}function jz(a){const r=B.forwardRef((o,t)=>{const{children:u,...l}=o;if(B.isValidElement(u)){const m=Sz(u),c=Ez(l,u.props);return u.type!==B.Fragment&&(c.ref=t?Or(t,m):m),B.cloneElement(u,c)}return B.Children.count(u)>1?B.Children.only(null):null});return r.displayName=`${a}.SlotClone`,r}var Az=Symbol("radix.slottable");function Cz(a){return B.isValidElement(a)&&typeof a.type=="function"&&"__radixId"in a.type&&a.type.__radixId===Az}function Ez(a,r){const o={...r};for(const t in r){const u=a[t],l=r[t];/^on[A-Z]/.test(t)?u&&l?o[t]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[t]=u):t==="style"?o[t]={...u,...l}:t==="className"&&(o[t]=[u,l].filter(Boolean).join(" "))}return{...a,...o}}function Sz(a){var t,u;let r=(t=Object.getOwnPropertyDescriptor(a.props,"ref"))==null?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?a.ref:(r=(u=Object.getOwnPropertyDescriptor(a,"ref"))==null?void 0:u.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}var ol="Dialog",[Cy]=Hr(ol),[Bz,_a]=Cy(ol),Ey=a=>{const{__scopeDialog:r,children:o,open:t,defaultOpen:u,onOpenChange:l,modal:m=!0}=a,c=B.useRef(null),h=B.useRef(null),[d,y]=al({prop:t,defaultProp:u??!1,onChange:l,caller:ol});return _.jsx(Bz,{scope:r,triggerRef:c,contentRef:h,contentId:Pr(),titleId:Pr(),descriptionId:Pr(),open:d,onOpenChange:y,onOpenToggle:B.useCallback(()=>y(g=>!g),[y]),modal:m,children:o})};Ey.displayName=ol;var Sy="DialogTrigger",_z=B.forwardRef((a,r)=>{const{__scopeDialog:o,...t}=a,u=_a(Sy,o),l=fa(r,u.triggerRef);return _.jsx(Ri.button,{type:"button","aria-haspopup":"dialog","aria-expanded":u.open,"aria-controls":u.contentId,"data-state":Hu(u.open),...t,ref:l,onClick:Bi(a.onClick,u.onOpenToggle)})});_z.displayName=Sy;var Mu="DialogPortal",[Dz,By]=Cy(Mu,{forceMount:void 0}),_y=a=>{const{__scopeDialog:r,forceMount:o,children:t,container:u}=a,l=_a(Mu,r);return _.jsx(Dz,{scope:r,forceMount:o,children:B.Children.map(t,m=>_.jsx(Po,{present:o||l.open,children:_.jsx(by,{asChild:!0,container:u,children:m})}))})};_y.displayName=Mu;var Kt="DialogOverlay",Dy=B.forwardRef((a,r)=>{const o=By(Kt,a.__scopeDialog),{forceMount:t=o.forceMount,...u}=a,l=_a(Kt,a.__scopeDialog);return l.modal?_.jsx(Po,{present:t||l.open,children:_.jsx(Rz,{...u,ref:r})}):null});Dy.displayName=Kt;var Fz=qz("DialogOverlay.RemoveScroll"),Rz=B.forwardRef((a,r)=>{const{__scopeDialog:o,...t}=a,u=_a(Kt,o);return _.jsx(jy,{as:Fz,allowPinchZoom:!0,shards:[u.contentRef],children:_.jsx(Ri.div,{"data-state":Hu(u.open),...t,ref:r,style:{pointerEvents:"auto",...t.style}})})}),Yn="DialogContent",Fy=B.forwardRef((a,r)=>{const o=By(Yn,a.__scopeDialog),{forceMount:t=o.forceMount,...u}=a,l=_a(Yn,a.__scopeDialog);return _.jsx(Po,{present:t||l.open,children:l.modal?_.jsx(Tz,{...u,ref:r}):_.jsx(Pz,{...u,ref:r})})});Fy.displayName=Yn;var Tz=B.forwardRef((a,r)=>{const o=_a(Yn,a.__scopeDialog),t=B.useRef(null),u=fa(r,o.contentRef,t);return B.useEffect(()=>{const l=t.current;if(l)return zz(l)},[]),_.jsx(Ry,{...a,ref:u,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Bi(a.onCloseAutoFocus,l=>{var m;l.preventDefault(),(m=o.triggerRef.current)==null||m.focus()}),onPointerDownOutside:Bi(a.onPointerDownOutside,l=>{const m=l.detail.originalEvent,c=m.button===0&&m.ctrlKey===!0;(m.button===2||c)&&l.preventDefault()}),onFocusOutside:Bi(a.onFocusOutside,l=>l.preventDefault())})}),Pz=B.forwardRef((a,r)=>{const o=_a(Yn,a.__scopeDialog),t=B.useRef(!1),u=B.useRef(!1);return _.jsx(Ry,{...a,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:l=>{var m,c;(m=a.onCloseAutoFocus)==null||m.call(a,l),l.defaultPrevented||(t.current||(c=o.triggerRef.current)==null||c.focus(),l.preventDefault()),t.current=!1,u.current=!1},onInteractOutside:l=>{var h,d;(h=a.onInteractOutside)==null||h.call(a,l),l.defaultPrevented||(t.current=!0,l.detail.originalEvent.type==="pointerdown"&&(u.current=!0));const m=l.target;((d=o.triggerRef.current)==null?void 0:d.contains(m))&&l.preventDefault(),l.detail.originalEvent.type==="focusin"&&u.current&&l.preventDefault()}})}),Ry=B.forwardRef((a,r)=>{const{__scopeDialog:o,trapFocus:t,onOpenAutoFocus:u,onCloseAutoFocus:l,...m}=a,c=_a(Yn,o),h=B.useRef(null),d=fa(r,h);return Nx(),_.jsxs(_.Fragment,{children:[_.jsx(gy,{asChild:!0,loop:!0,trapped:t,onMountAutoFocus:u,onUnmountAutoFocus:l,children:_.jsx(my,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":Hu(c.open),...m,ref:d,onDismiss:()=>c.onOpenChange(!1)})}),_.jsxs(_.Fragment,{children:[_.jsx(Nz,{titleId:c.titleId}),_.jsx(Mz,{contentRef:h,descriptionId:c.descriptionId})]})]})}),Ou="DialogTitle",Ty=B.forwardRef((a,r)=>{const{__scopeDialog:o,...t}=a,u=_a(Ou,o);return _.jsx(Ri.h2,{id:u.titleId,...t,ref:r})});Ty.displayName=Ou;var Py="DialogDescription",Ny=B.forwardRef((a,r)=>{const{__scopeDialog:o,...t}=a,u=_a(Py,o);return _.jsx(Ri.p,{id:u.descriptionId,...t,ref:r})});Ny.displayName=Py;var Iy="DialogClose",My=B.forwardRef((a,r)=>{const{__scopeDialog:o,...t}=a,u=_a(Iy,o);return _.jsx(Ri.button,{type:"button",...t,ref:r,onClick:Bi(a.onClick,()=>u.onOpenChange(!1))})});My.displayName=Iy;function Hu(a){return a?"open":"closed"}var Oy="DialogTitleWarning",[Zj,Hy]=nx(Oy,{contentName:Yn,titleName:Ou,docsSlug:"dialog"}),Nz=({titleId:a})=>{const r=Hy(Oy),o=`\`${r.contentName}\` requires a \`${r.titleName}\` for the component to be accessible for screen reader users. If you want to hide the \`${r.titleName}\`, you can wrap it with our VisuallyHidden component. -For more information, see https://radix-ui.com/primitives/docs/components/${r.docsSlug}`;return B.useEffect(()=>{a&&(document.getElementById(a)||console.error(o))},[o,a]),null},Iz="DialogDescriptionWarning",Mz=({contentRef:a,descriptionId:r})=>{const t=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Hy(Iz).contentName}}.`;return B.useEffect(()=>{var l;const u=(l=a.current)==null?void 0:l.getAttribute("aria-describedby");r&&u&&(document.getElementById(r)||console.warn(t))},[t,a,r]),null},Ly=Ey,Vy=_y,rl=Dy,sl=Fy,tl=Ty,ll=Ny,Uy=My;const Wy=Ly,Oz=Vy,Gy=B.forwardRef(({className:a,...r},o)=>_.jsx(rl,{ref:o,className:Ke("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...r}));Gy.displayName=rl.displayName;const Lu=B.forwardRef(({className:a,children:r,...o},t)=>_.jsxs(Oz,{children:[_.jsx(Gy,{}),_.jsxs(sl,{ref:t,className:Ke("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...o,children:[r,_.jsxs(Uy,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[_.jsx(Wg,{className:"h-4 w-4"}),_.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Lu.displayName=sl.displayName;const Vu=({className:a,...r})=>_.jsx("div",{className:Ke("flex flex-col space-y-1.5 text-center sm:text-left",a),...r});Vu.displayName="DialogHeader";const Uu=({className:a,...r})=>_.jsx("div",{className:Ke("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...r});Uu.displayName="DialogFooter";const Wu=B.forwardRef(({className:a,...r},o)=>_.jsx(tl,{ref:o,className:Ke("text-lg font-semibold leading-none tracking-tight",a),...r}));Wu.displayName=tl.displayName;const Hz=B.forwardRef(({className:a,...r},o)=>_.jsx(ll,{ref:o,className:Ke("text-sm text-muted-foreground",a),...r}));Hz.displayName=ll.displayName;function vh(a){const r=Lz(a),o=B.forwardRef((t,u)=>{const{children:l,...m}=t,c=B.Children.toArray(l),h=c.find(Uz);if(h){const d=h.props.children,y=c.map(g=>g===h?B.Children.count(d)>1?B.Children.only(null):B.isValidElement(d)?d.props.children:null:g);return _.jsx(r,{...m,ref:u,children:B.isValidElement(d)?B.cloneElement(d,void 0,y):null})}return _.jsx(r,{...m,ref:u,children:l})});return o.displayName=`${a}.Slot`,o}function Lz(a){const r=B.forwardRef((o,t)=>{const{children:u,...l}=o;if(B.isValidElement(u)){const m=Gz(u),c=Wz(l,u.props);return u.type!==B.Fragment&&(c.ref=t?Or(t,m):m),B.cloneElement(u,c)}return B.Children.count(u)>1?B.Children.only(null):null});return r.displayName=`${a}.SlotClone`,r}var Vz=Symbol("radix.slottable");function Uz(a){return B.isValidElement(a)&&typeof a.type=="function"&&"__radixId"in a.type&&a.type.__radixId===Vz}function Wz(a,r){const o={...r};for(const t in r){const u=a[t],l=r[t];/^on[A-Z]/.test(t)?u&&l?o[t]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[t]=u):t==="style"?o[t]={...u,...l}:t==="className"&&(o[t]=[u,l].filter(Boolean).join(" "))}return{...a,...o}}function Gz(a){var t,u;let r=(t=Object.getOwnPropertyDescriptor(a.props,"ref"))==null?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?a.ref:(r=(u=Object.getOwnPropertyDescriptor(a,"ref"))==null?void 0:u.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}function Qz(a){const r=a+"CollectionProvider",[o,t]=Hr(r),[u,l]=o(r,{collectionRef:{current:null},itemMap:new Map}),m=j=>{const{scope:v,children:A}=j,q=me.useRef(null),k=me.useRef(new Map).current;return _.jsx(u,{scope:v,itemMap:k,collectionRef:q,children:A})};m.displayName=r;const c=a+"CollectionSlot",h=vh(c),d=me.forwardRef((j,v)=>{const{scope:A,children:q}=j,k=l(c,A),C=fa(v,k.collectionRef);return _.jsx(h,{ref:C,children:q})});d.displayName=c;const y=a+"CollectionItemSlot",g="data-radix-collection-item",f=vh(y),x=me.forwardRef((j,v)=>{const{scope:A,children:q,...k}=j,C=me.useRef(null),S=fa(v,C),D=l(y,A);return me.useEffect(()=>(D.itemMap.set(C,{ref:C,...k}),()=>void D.itemMap.delete(C))),_.jsx(f,{[g]:"",ref:S,children:q})});x.displayName=y;function w(j){const v=l(a+"CollectionConsumer",j);return me.useCallback(()=>{const q=v.collectionRef.current;if(!q)return[];const k=Array.from(q.querySelectorAll(`[${g}]`));return Array.from(v.itemMap.values()).sort((D,T)=>k.indexOf(D.ref.current)-k.indexOf(T.ref.current))},[v.collectionRef,v.itemMap])}return[{Provider:m,Slot:d,ItemSlot:x},w,t]}var $z=B.createContext(void 0);function Qy(a){const r=B.useContext($z);return a||r||"ltr"}var mu="rovingFocusGroup.onEntryFocus",Kz={bubbles:!1,cancelable:!0},Lr="RovingFocusGroup",[Au,$y,Yz]=Qz(Lr),[Zz,Ky]=Hr(Lr,[Yz]),[Xz,Jz]=Zz(Lr),Yy=B.forwardRef((a,r)=>_.jsx(Au.Provider,{scope:a.__scopeRovingFocusGroup,children:_.jsx(Au.Slot,{scope:a.__scopeRovingFocusGroup,children:_.jsx(e0,{...a,ref:r})})}));Yy.displayName=Lr;var e0=B.forwardRef((a,r)=>{const{__scopeRovingFocusGroup:o,orientation:t,loop:u=!1,dir:l,currentTabStopId:m,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:h,onEntryFocus:d,preventScrollOnEntryFocus:y=!1,...g}=a,f=B.useRef(null),x=fa(r,f),w=Qy(l),[j,v]=al({prop:m,defaultProp:c??null,onChange:h,caller:Lr}),[A,q]=B.useState(!1),k=Do(d),C=$y(o),S=B.useRef(!1),[D,T]=B.useState(0);return B.useEffect(()=>{const F=f.current;if(F)return F.addEventListener(mu,k),()=>F.removeEventListener(mu,k)},[k]),_.jsx(Xz,{scope:o,orientation:t,dir:w,loop:u,currentTabStopId:j,onItemFocus:B.useCallback(F=>v(F),[v]),onItemShiftTab:B.useCallback(()=>q(!0),[]),onFocusableItemAdd:B.useCallback(()=>T(F=>F+1),[]),onFocusableItemRemove:B.useCallback(()=>T(F=>F-1),[]),children:_.jsx(Fi.div,{tabIndex:A||D===0?-1:0,"data-orientation":t,...g,ref:x,style:{outline:"none",...a.style},onMouseDown:Si(a.onMouseDown,()=>{S.current=!0}),onFocus:Si(a.onFocus,F=>{const O=!S.current;if(F.target===F.currentTarget&&O&&!A){const N=new CustomEvent(mu,Kz);if(F.currentTarget.dispatchEvent(N),!N.defaultPrevented){const R=C().filter(J=>J.focusable),V=R.find(J=>J.active),H=R.find(J=>J.id===j),ae=[V,H,...R].filter(Boolean).map(J=>J.ref.current);Jy(ae,y)}}S.current=!1}),onBlur:Si(a.onBlur,()=>q(!1))})})}),Zy="RovingFocusGroupItem",Xy=B.forwardRef((a,r)=>{const{__scopeRovingFocusGroup:o,focusable:t=!0,active:u=!1,tabStopId:l,children:m,...c}=a,h=Pr(),d=l||h,y=Jz(Zy,o),g=y.currentTabStopId===d,f=$y(o),{onFocusableItemAdd:x,onFocusableItemRemove:w,currentTabStopId:j}=y;return B.useEffect(()=>{if(t)return x(),()=>w()},[t,x,w]),_.jsx(Au.ItemSlot,{scope:o,id:d,focusable:t,active:u,children:_.jsx(Fi.span,{tabIndex:g?0:-1,"data-orientation":y.orientation,...c,ref:r,onMouseDown:Si(a.onMouseDown,v=>{t?y.onItemFocus(d):v.preventDefault()}),onFocus:Si(a.onFocus,()=>y.onItemFocus(d)),onKeyDown:Si(a.onKeyDown,v=>{if(v.key==="Tab"&&v.shiftKey){y.onItemShiftTab();return}if(v.target!==v.currentTarget)return;const A=n0(v,y.orientation,y.dir);if(A!==void 0){if(v.metaKey||v.ctrlKey||v.altKey||v.shiftKey)return;v.preventDefault();let k=f().filter(C=>C.focusable).map(C=>C.ref.current);if(A==="last")k.reverse();else if(A==="prev"||A==="next"){A==="prev"&&k.reverse();const C=k.indexOf(v.currentTarget);k=y.loop?o0(k,C+1):k.slice(C+1)}setTimeout(()=>Jy(k))}}),children:typeof m=="function"?m({isCurrentTabStop:g,hasTabStop:j!=null}):m})})});Xy.displayName=Zy;var i0={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function a0(a,r){return r!=="rtl"?a:a==="ArrowLeft"?"ArrowRight":a==="ArrowRight"?"ArrowLeft":a}function n0(a,r,o){const t=a0(a.key,o);if(!(r==="vertical"&&["ArrowLeft","ArrowRight"].includes(t))&&!(r==="horizontal"&&["ArrowUp","ArrowDown"].includes(t)))return i0[t]}function Jy(a,r=!1){const o=document.activeElement;for(const t of a)if(t===o||(t.focus({preventScroll:r}),document.activeElement!==o))return}function o0(a,r){return a.map((o,t)=>a[(r+t)%a.length])}var r0=Yy,s0=Xy,cl="Tabs",[t0]=Hr(cl,[Ky]),eb=Ky(),[l0,Gu]=t0(cl),ib=B.forwardRef((a,r)=>{const{__scopeTabs:o,value:t,onValueChange:u,defaultValue:l,orientation:m="horizontal",dir:c,activationMode:h="automatic",...d}=a,y=Qy(c),[g,f]=al({prop:t,onChange:u,defaultProp:l??"",caller:cl});return _.jsx(l0,{scope:o,baseId:Pr(),value:g,onValueChange:f,orientation:m,dir:y,activationMode:h,children:_.jsx(Fi.div,{dir:y,"data-orientation":m,...d,ref:r})})});ib.displayName=cl;var ab="TabsList",nb=B.forwardRef((a,r)=>{const{__scopeTabs:o,loop:t=!0,...u}=a,l=Gu(ab,o),m=eb(o);return _.jsx(r0,{asChild:!0,...m,orientation:l.orientation,dir:l.dir,loop:t,children:_.jsx(Fi.div,{role:"tablist","aria-orientation":l.orientation,...u,ref:r})})});nb.displayName=ab;var ob="TabsTrigger",rb=B.forwardRef((a,r)=>{const{__scopeTabs:o,value:t,disabled:u=!1,...l}=a,m=Gu(ob,o),c=eb(o),h=lb(m.baseId,t),d=cb(m.baseId,t),y=t===m.value;return _.jsx(s0,{asChild:!0,...c,focusable:!u,active:y,children:_.jsx(Fi.button,{type:"button",role:"tab","aria-selected":y,"aria-controls":d,"data-state":y?"active":"inactive","data-disabled":u?"":void 0,disabled:u,id:h,...l,ref:r,onMouseDown:Si(a.onMouseDown,g=>{!u&&g.button===0&&g.ctrlKey===!1?m.onValueChange(t):g.preventDefault()}),onKeyDown:Si(a.onKeyDown,g=>{[" ","Enter"].includes(g.key)&&m.onValueChange(t)}),onFocus:Si(a.onFocus,()=>{const g=m.activationMode!=="manual";!y&&!u&&g&&m.onValueChange(t)})})})});rb.displayName=ob;var sb="TabsContent",tb=B.forwardRef((a,r)=>{const{__scopeTabs:o,value:t,forceMount:u,children:l,...m}=a,c=Gu(sb,o),h=lb(c.baseId,t),d=cb(c.baseId,t),y=t===c.value,g=B.useRef(y);return B.useEffect(()=>{const f=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(f)},[]),_.jsx(Po,{present:u||y,children:({present:f})=>_.jsx(Fi.div,{"data-state":y?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":h,hidden:!f,id:d,tabIndex:0,...m,ref:r,style:{...a.style,animationDuration:g.current?"0s":void 0},children:f&&l})})});tb.displayName=sb;function lb(a,r){return`${a}-trigger-${r}`}function cb(a,r){return`${a}-content-${r}`}var c0=ib,ub=nb,db=rb,pb=tb;const u0=c0,mb=B.forwardRef(({className:a,...r},o)=>_.jsx(ub,{ref:o,className:Ke("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",a),...r}));mb.displayName=ub.displayName;const Dr=B.forwardRef(({className:a,...r},o)=>_.jsx(db,{ref:o,className:Ke("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",a),...r}));Dr.displayName=db.displayName;const Fr=B.forwardRef(({className:a,...r},o)=>_.jsx(pb,{ref:o,className:Ke("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",a),...r}));Fr.displayName=pb.displayName;var d0=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],p0=d0.reduce((a,r)=>{const o=Iu(`Primitive.${r}`),t=B.forwardRef((u,l)=>{const{asChild:m,...c}=u,h=m?o:r;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),_.jsx(h,{...c,ref:l})});return t.displayName=`Primitive.${r}`,{...a,[r]:t}},{}),m0="Label",hb=B.forwardRef((a,r)=>_.jsx(p0.label,{...a,ref:r,onMouseDown:o=>{var u;o.target.closest("button, input, select, textarea")||((u=a.onMouseDown)==null||u.call(a,o),!o.defaultPrevented&&o.detail>1&&o.preventDefault())}}));hb.displayName=m0;var gb=hb;const h0=il("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),ki=B.forwardRef(({className:a,...r},o)=>_.jsx(gb,{ref:o,className:Ke(h0(),a),...r}));ki.displayName=gb.displayName;function g0(a){const r=B.useRef({value:a,previous:a});return B.useMemo(()=>(r.current.value!==a&&(r.current.previous=r.current.value,r.current.value=a),r.current.previous),[a])}function y0(a){const[r,o]=B.useState(void 0);return _o(()=>{if(a){o({width:a.offsetWidth,height:a.offsetHeight});const t=new ResizeObserver(u=>{if(!Array.isArray(u)||!u.length)return;const l=u[0];let m,c;if("borderBoxSize"in l){const h=l.borderBoxSize,d=Array.isArray(h)?h[0]:h;m=d.inlineSize,c=d.blockSize}else m=a.offsetWidth,c=a.offsetHeight;o({width:m,height:c})});return t.observe(a,{box:"border-box"}),()=>t.unobserve(a)}else o(void 0)},[a]),r}var ul="Checkbox",[b0]=Hr(ul),[f0,Qu]=b0(ul);function v0(a){const{__scopeCheckbox:r,checked:o,children:t,defaultChecked:u,disabled:l,form:m,name:c,onCheckedChange:h,required:d,value:y="on",internal_do_not_use_render:g}=a,[f,x]=al({prop:o,defaultProp:u??!1,onChange:h,caller:ul}),[w,j]=B.useState(null),[v,A]=B.useState(null),q=B.useRef(!1),k=w?!!m||!!w.closest("form"):!0,C={checked:f,disabled:l,setChecked:x,control:w,setControl:j,name:c,form:m,value:y,hasConsumerStoppedPropagationRef:q,required:d,defaultChecked:jn(u)?!1:u,isFormControl:k,bubbleInput:v,setBubbleInput:A};return _.jsx(f0,{scope:r,...C,children:k0(g)?g(C):t})}var yb="CheckboxTrigger",bb=B.forwardRef(({__scopeCheckbox:a,onKeyDown:r,onClick:o,...t},u)=>{const{control:l,value:m,disabled:c,checked:h,required:d,setControl:y,setChecked:g,hasConsumerStoppedPropagationRef:f,isFormControl:x,bubbleInput:w}=Qu(yb,a),j=fa(u,y),v=B.useRef(h);return B.useEffect(()=>{const A=l==null?void 0:l.form;if(A){const q=()=>g(v.current);return A.addEventListener("reset",q),()=>A.removeEventListener("reset",q)}},[l,g]),_.jsx(Fi.button,{type:"button",role:"checkbox","aria-checked":jn(h)?"mixed":h,"aria-required":d,"data-state":xb(h),"data-disabled":c?"":void 0,disabled:c,value:m,...t,ref:j,onKeyDown:Si(r,A=>{A.key==="Enter"&&A.preventDefault()}),onClick:Si(o,A=>{g(q=>jn(q)?!0:!q),w&&x&&(f.current=A.isPropagationStopped(),f.current||A.stopPropagation())})})});bb.displayName=yb;var $u=B.forwardRef((a,r)=>{const{__scopeCheckbox:o,name:t,checked:u,defaultChecked:l,required:m,disabled:c,value:h,onCheckedChange:d,form:y,...g}=a;return _.jsx(v0,{__scopeCheckbox:o,checked:u,defaultChecked:l,disabled:c,required:m,onCheckedChange:d,name:t,form:y,value:h,internal_do_not_use_render:({isFormControl:f})=>_.jsxs(_.Fragment,{children:[_.jsx(bb,{...g,ref:r,__scopeCheckbox:o}),f&&_.jsx(wb,{__scopeCheckbox:o})]})})});$u.displayName=ul;var fb="CheckboxIndicator",vb=B.forwardRef((a,r)=>{const{__scopeCheckbox:o,forceMount:t,...u}=a,l=Qu(fb,o);return _.jsx(Po,{present:t||jn(l.checked)||l.checked===!0,children:_.jsx(Fi.span,{"data-state":xb(l.checked),"data-disabled":l.disabled?"":void 0,...u,ref:r,style:{pointerEvents:"none",...a.style}})})});vb.displayName=fb;var kb="CheckboxBubbleInput",wb=B.forwardRef(({__scopeCheckbox:a,...r},o)=>{const{control:t,hasConsumerStoppedPropagationRef:u,checked:l,defaultChecked:m,required:c,disabled:h,name:d,value:y,form:g,bubbleInput:f,setBubbleInput:x}=Qu(kb,a),w=fa(o,x),j=g0(l),v=y0(t);B.useEffect(()=>{const q=f;if(!q)return;const k=window.HTMLInputElement.prototype,S=Object.getOwnPropertyDescriptor(k,"checked").set,D=!u.current;if(j!==l&&S){const T=new Event("click",{bubbles:D});q.indeterminate=jn(l),S.call(q,jn(l)?!1:l),q.dispatchEvent(T)}},[f,j,l,u]);const A=B.useRef(jn(l)?!1:l);return _.jsx(Fi.input,{type:"checkbox","aria-hidden":!0,defaultChecked:m??A.current,required:c,disabled:h,name:d,value:y,form:g,...r,tabIndex:-1,ref:w,style:{...r.style,...v,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});wb.displayName=kb;function k0(a){return typeof a=="function"}function jn(a){return a==="indeterminate"}function xb(a){return jn(a)?"indeterminate":a?"checked":"unchecked"}const zb=B.forwardRef(({className:a,...r},o)=>_.jsx($u,{ref:o,className:Ke("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",a),...r,children:_.jsx(vb,{className:Ke("flex items-center justify-center text-current"),children:_.jsx(hk,{className:"h-4 w-4"})})}));zb.displayName=$u.displayName;function w0({open:a,contacts:r,undecryptedCount:o,onClose:t,onSelectConversation:u,onCreateContact:l,onCreateChannel:m,onCreateHashtagChannel:c}){const[h,d]=B.useState("existing"),[y,g]=B.useState(""),[f,x]=B.useState(""),[w,j]=B.useState(!1),[v,A]=B.useState(""),[q,k]=B.useState(!1),C=B.useRef(null),S=async()=>{A(""),k(!0);try{if(h==="new-contact"){if(!y.trim()||!f.trim()){A("Name and public key are required");return}await l(y.trim(),f.trim(),w),u({type:"contact",id:f.trim(),name:y.trim()})}else if(h==="new-room"){if(!y.trim()||!f.trim()){A("Room name and key are required");return}await m(y.trim(),f.trim(),w)}else if(h==="hashtag"){const O=y.trim(),N=D(O);if(N){A(N);return}await c(`#${O}`,w)}t()}catch(O){A(O instanceof Error?O.message:"Failed to create")}finally{k(!1)}},D=O=>O?/^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$/.test(O)?null:"Use letters, numbers, and single dashes (no leading/trailing dashes)":"Channel name is required",T=async()=>{var R;A("");const O=y.trim(),N=D(O);if(N){A(N);return}k(!0);try{await c(`#${O}`,w),g(""),(R=C.current)==null||R.focus()}catch(V){A(V instanceof Error?V.message:"Failed to create")}finally{k(!1)}},F=h!=="existing"&&o>0;return _.jsx(Wy,{open:a,onOpenChange:O=>!O&&t(),children:_.jsxs(Lu,{className:"sm:max-w-[500px]",children:[_.jsx(Vu,{children:_.jsx(Wu,{children:"New Conversation"})}),_.jsxs(u0,{value:h,onValueChange:O=>d(O),className:"w-full",children:[_.jsxs(mb,{className:"grid w-full grid-cols-4",children:[_.jsx(Dr,{value:"existing",children:"Existing"}),_.jsx(Dr,{value:"new-contact",children:"Contact"}),_.jsx(Dr,{value:"new-room",children:"Room"}),_.jsx(Dr,{value:"hashtag",children:"Hashtag"})]}),_.jsx(Fr,{value:"existing",className:"mt-4",children:_.jsx("div",{className:"max-h-[300px] overflow-y-auto rounded-md border",children:r.length===0?_.jsx("div",{className:"p-4 text-center text-muted-foreground",children:"No contacts available"}):r.map(O=>_.jsx("div",{className:"cursor-pointer px-4 py-2 hover:bg-accent",onClick:()=>{u({type:"contact",id:O.public_key,name:Kn(O.name,O.public_key)}),t()},children:Kn(O.name,O.public_key)},O.public_key))})}),_.jsxs(Fr,{value:"new-contact",className:"mt-4 space-y-4",children:[_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"contact-name",children:"Name"}),_.jsx(wi,{id:"contact-name",value:y,onChange:O=>g(O.target.value),placeholder:"Contact name"})]}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"contact-key",children:"Public Key"}),_.jsx(wi,{id:"contact-key",value:f,onChange:O=>x(O.target.value),placeholder:"64-character hex public key"})]})]}),_.jsxs(Fr,{value:"new-room",className:"mt-4 space-y-4",children:[_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"room-name",children:"Room Name"}),_.jsx(wi,{id:"room-name",value:y,onChange:O=>g(O.target.value),placeholder:"Room name"})]}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"room-key",children:"Room Key"}),_.jsx(wi,{id:"room-key",value:f,onChange:O=>x(O.target.value),placeholder:"Pre-shared key (hex)"})]})]}),_.jsx(Fr,{value:"hashtag",className:"mt-4",children:_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"hashtag-name",children:"Hashtag Channel"}),_.jsxs("div",{className:"flex items-center gap-1",children:[_.jsx("span",{className:"text-sm text-muted-foreground",children:"#"}),_.jsx(wi,{ref:C,id:"hashtag-name",value:y,onChange:O=>g(O.target.value),placeholder:"channel-name",className:"flex-1"})]})]})})]}),F&&_.jsxs("div",{className:"space-y-1",children:[_.jsxs("div",{className:"flex items-center justify-end space-x-2",children:[_.jsxs(ki,{htmlFor:"try-historical",className:"text-sm text-muted-foreground cursor-pointer",children:["Try decrypting ",o.toLocaleString()," stored packet",o!==1?"s":""]}),_.jsx(zb,{id:"try-historical",checked:w,onCheckedChange:O=>j(O===!0)})]}),w&&_.jsx("p",{className:"text-xs text-muted-foreground text-right",children:"Messages will stream in as they decrypt in the background"})]}),v&&_.jsx("div",{className:"text-sm text-destructive",children:v}),_.jsxs(Uu,{children:[_.jsx(Ha,{variant:"outline",onClick:t,children:"Cancel"}),h==="hashtag"&&_.jsx(Ha,{variant:"secondary",onClick:T,disabled:q,children:q?"Creating...":"Create & Add Another"}),h!=="existing"&&_.jsx(Ha,{onClick:S,disabled:q,children:q?"Creating...":"Create"})]})]})})}var x0=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],z0=x0.reduce((a,r)=>{const o=Iu(`Primitive.${r}`),t=B.forwardRef((u,l)=>{const{asChild:m,...c}=u,h=m?o:r;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),_.jsx(h,{...c,ref:l})});return t.displayName=`Primitive.${r}`,{...a,[r]:t}},{}),q0="Separator",kh="horizontal",j0=["horizontal","vertical"],qb=B.forwardRef((a,r)=>{const{decorative:o,orientation:t=kh,...u}=a,l=A0(t)?t:kh,c=o?{role:"none"}:{"aria-orientation":l==="vertical"?l:void 0,role:"separator"};return _.jsx(z0.div,{"data-orientation":l,...c,...u,ref:r})});qb.displayName=q0;function A0(a){return j0.includes(a)}var jb=qb;const st=B.forwardRef(({className:a,orientation:r="horizontal",decorative:o=!0,...t},u)=>_.jsx(jb,{ref:u,decorative:o,orientation:r,className:Ke("shrink-0 bg-border",r==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",a),...t}));st.displayName=jb.displayName;const C0=il("relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",warning:"border-yellow-500/50 bg-yellow-500/10 text-yellow-200 [&>svg]:text-yellow-500"}},defaultVariants:{variant:"default"}}),Ab=B.forwardRef(({className:a,variant:r,...o},t)=>_.jsx("div",{ref:t,role:"alert",className:Ke(C0({variant:r}),a),...o}));Ab.displayName="Alert";const E0=B.forwardRef(({className:a,...r},o)=>_.jsx("h5",{ref:o,className:Ke("mb-1 font-medium leading-none tracking-tight",a),...r}));E0.displayName="AlertTitle";const Cb=B.forwardRef(({className:a,...r},o)=>_.jsx("div",{ref:o,className:Ke("text-sm [&_p]:leading-relaxed",a),...r}));Cb.displayName="AlertDescription";function S0({open:a,config:r,appSettings:o,onClose:t,onSave:u,onSaveAppSettings:l,onSetPrivateKey:m,onReboot:c}){const[h,d]=B.useState(""),[y,g]=B.useState(""),[f,x]=B.useState(""),[w,j]=B.useState(""),[v,A]=B.useState(""),[q,k]=B.useState(""),[C,S]=B.useState(""),[D,T]=B.useState(""),[F,O]=B.useState(""),[N,R]=B.useState(""),[V,H]=B.useState(!1),[$,ae]=B.useState(!1),[J,ie]=B.useState("");B.useEffect(()=>{r&&(d(r.name),g(String(r.lat)),x(String(r.lon)),j(String(r.tx_power)),A(String(r.radio.freq)),k(String(r.radio.bw)),S(String(r.radio.sf)),T(String(r.radio.cr)))},[r]),B.useEffect(()=>{o&&R(String(o.max_radio_contacts))},[o]);const W=async()=>{ie(""),H(!0);try{const z={name:h,lat:parseFloat(y),lon:parseFloat(f),tx_power:parseInt(w,10),radio:{freq:parseFloat(v),bw:parseFloat(q),sf:parseInt(C,10),cr:parseInt(D,10)}};await u(z);const I=parseInt(N,10);!isNaN(I)&&I!==(o==null?void 0:o.max_radio_contacts)&&await l({max_radio_contacts:I}),t()}catch(z){ie(z instanceof Error?z.message:"Failed to save")}finally{H(!1)}},oe=async()=>{if(!F.trim()){ie("Private key is required");return}ie(""),H(!0);try{await m(F.trim()),O(""),t()}catch(z){ie(z instanceof Error?z.message:"Failed to set private key")}finally{H(!1)}},ee=async()=>{if(confirm("Are you sure you want to reboot the radio? The connection will drop temporarily.")){ie(""),ae(!0);try{await c(),t()}catch(z){ie(z instanceof Error?z.message:"Failed to reboot radio")}finally{ae(!1)}}};return _.jsx(Wy,{open:a,onOpenChange:z=>!z&&t(),children:_.jsxs(Lu,{className:"sm:max-w-[500px] max-h-[90vh] overflow-y-auto",children:[_.jsx(Vu,{children:_.jsx(Wu,{children:"Radio Configuration"})}),r?_.jsxs("div",{className:"space-y-4",children:[_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"public-key",children:"Public Key"}),_.jsx(wi,{id:"public-key",value:r.public_key,disabled:!0})]}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"name",children:"Name"}),_.jsx(wi,{id:"name",value:h,onChange:z=>d(z.target.value)})]}),_.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"lat",children:"Latitude"}),_.jsx(wi,{id:"lat",type:"number",step:"any",value:y,onChange:z=>g(z.target.value)})]}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"lon",children:"Longitude"}),_.jsx(wi,{id:"lon",type:"number",step:"any",value:f,onChange:z=>x(z.target.value)})]})]}),_.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"freq",children:"Frequency (MHz)"}),_.jsx(wi,{id:"freq",type:"number",step:"any",value:v,onChange:z=>A(z.target.value)})]}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"bw",children:"Bandwidth (kHz)"}),_.jsx(wi,{id:"bw",type:"number",step:"any",value:q,onChange:z=>k(z.target.value)})]})]}),_.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"sf",children:"Spreading Factor"}),_.jsx(wi,{id:"sf",type:"number",min:"7",max:"12",value:C,onChange:z=>S(z.target.value)})]}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"cr",children:"Coding Rate"}),_.jsx(wi,{id:"cr",type:"number",min:"1",max:"4",value:D,onChange:z=>T(z.target.value)})]})]}),_.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"tx-power",children:"TX Power (dBm)"}),_.jsx(wi,{id:"tx-power",type:"number",value:w,onChange:z=>j(z.target.value)})]}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"max-tx",children:"Max TX Power"}),_.jsx(wi,{id:"max-tx",type:"number",value:r.max_tx_power,disabled:!0})]})]}),_.jsx(st,{className:"my-4"}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"max-contacts",children:"Max Contacts on Radio"}),_.jsx(wi,{id:"max-contacts",type:"number",min:"1",max:"1000",value:N,onChange:z=>R(z.target.value)}),_.jsx("p",{className:"text-xs text-muted-foreground",children:"Recent non-repeater contacts loaded to radio for DM auto-ACK (1-1000)"})]}),_.jsx(st,{className:"my-4"}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(ki,{htmlFor:"private-key",children:"Set Private Key (write-only)"}),_.jsxs("div",{className:"flex gap-2",children:[_.jsx(wi,{id:"private-key",type:"password",value:F,onChange:z=>O(z.target.value),placeholder:"64-character hex private key",className:"flex-1"}),_.jsx(Ha,{onClick:oe,disabled:V||!F.trim(),children:"Set"})]})]}),_.jsx(st,{className:"my-4"}),_.jsxs("div",{className:"space-y-3",children:[_.jsx(ki,{children:"Reboot Radio"}),_.jsx(Ab,{variant:"warning",children:_.jsx(Cb,{children:"Some configuration changes (like name) require a radio reboot to take effect. The connection will temporarily drop and automatically reconnect."})}),_.jsx(Ha,{variant:"outline",onClick:ee,disabled:$||V,className:"border-yellow-500/50 text-yellow-200 hover:bg-yellow-500/10",children:$?"Rebooting...":"Reboot Radio"})]}),J&&_.jsx("div",{className:"text-sm text-destructive",children:J})]}):_.jsx("div",{className:"py-8 text-center text-muted-foreground",children:"Loading configuration..."}),_.jsxs(Uu,{children:[_.jsx(Ha,{variant:"outline",onClick:t,children:"Cancel"}),_.jsx(Ha,{onClick:W,disabled:V||!r,children:V?"Saving...":"Save Config"})]})]})})}function B0(a){return new Date(a*1e3).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function wh(a){return a.split("_").map(r=>r.charAt(0)+r.slice(1).toLowerCase()).join(" ")}function _0(a){if(!a.decrypted||!a.decrypted_info)return wh(a.payload_type);const r=a.decrypted_info;return a.payload_type==="GROUP_TEXT"&&r.channel_name?`GroupText to ${r.channel_name}`:a.payload_type==="TEXT_MESSAGE"&&r.sender?`TextMessage from ${r.sender}`:wh(a.payload_type)}function D0(a){const r=[];return a.snr!==null&&a.snr!==void 0&&r.push(`SNR: ${a.snr.toFixed(1)} dB`),a.rssi!==null&&a.rssi!==void 0&&r.push(`RSSI: ${a.rssi} dBm`),r.join(" | ")}function F0({packets:a}){const r=B.useRef(null);if(B.useEffect(()=>{r.current&&(r.current.scrollTop=r.current.scrollHeight)},[a]),a.length===0)return _.jsx("div",{className:"h-full overflow-y-auto p-5 text-center text-muted-foreground",children:"No packets received yet. Packets will appear here in real-time."});const o=[...a].sort((t,u)=>t.timestamp-u.timestamp);return _.jsx("div",{className:"h-full overflow-y-auto p-4 flex flex-col gap-3",ref:r,children:o.map(t=>_.jsxs("div",{className:"py-2 px-3 bg-muted rounded",children:[_.jsxs("div",{className:t.decrypted?"text-primary":"text-destructive",children:[!t.decrypted&&_.jsx("span",{className:"mr-1",children:"🔒"}),_0(t)," • ",B0(t.timestamp)]}),(t.snr!==null||t.rssi!==null)&&_.jsx("div",{className:"text-[11px] text-muted-foreground mt-0.5",children:D0(t)}),_.jsx("div",{className:"font-mono text-[11px] break-all text-muted-foreground/70 mt-1",children:t.data.toUpperCase()})]},t.id))})}var Xa={},vr={},Ii={},xh;function ua(){if(xh)return Ii;xh=1,Object.defineProperty(Ii,"__esModule",{value:!0}),Ii.RequestType=Ii.AdvertFlags=Ii.DeviceRole=Ii.PayloadVersion=Ii.ControlSubType=Ii.PayloadType=Ii.RouteType=void 0;var a;(function(c){c[c.TransportFlood=0]="TransportFlood",c[c.Flood=1]="Flood",c[c.Direct=2]="Direct",c[c.TransportDirect=3]="TransportDirect"})(a||(Ii.RouteType=a={}));var r;(function(c){c[c.Request=0]="Request",c[c.Response=1]="Response",c[c.TextMessage=2]="TextMessage",c[c.Ack=3]="Ack",c[c.Advert=4]="Advert",c[c.GroupText=5]="GroupText",c[c.GroupData=6]="GroupData",c[c.AnonRequest=7]="AnonRequest",c[c.Path=8]="Path",c[c.Trace=9]="Trace",c[c.Multipart=10]="Multipart",c[c.Control=11]="Control",c[c.RawCustom=15]="RawCustom"})(r||(Ii.PayloadType=r={}));var o;(function(c){c[c.NodeDiscoverReq=128]="NodeDiscoverReq",c[c.NodeDiscoverResp=144]="NodeDiscoverResp"})(o||(Ii.ControlSubType=o={}));var t;(function(c){c[c.Version1=0]="Version1",c[c.Version2=1]="Version2",c[c.Version3=2]="Version3",c[c.Version4=3]="Version4"})(t||(Ii.PayloadVersion=t={}));var u;(function(c){c[c.Unknown=0]="Unknown",c[c.ChatNode=1]="ChatNode",c[c.Repeater=2]="Repeater",c[c.RoomServer=3]="RoomServer",c[c.Sensor=4]="Sensor"})(u||(Ii.DeviceRole=u={}));var l;(function(c){c[c.HasLocation=16]="HasLocation",c[c.HasFeature1=32]="HasFeature1",c[c.HasFeature2=64]="HasFeature2",c[c.HasName=128]="HasName"})(l||(Ii.AdvertFlags=l={}));var m;return(function(c){c[c.GetStats=1]="GetStats",c[c.Keepalive=2]="Keepalive",c[c.GetTelemetryData=3]="GetTelemetryData",c[c.GetMinMaxAvgData=4]="GetMinMaxAvgData",c[c.GetAccessList=5]="GetAccessList"})(m||(Ii.RequestType=m={})),Ii}var Vn={},zh;function Mi(){if(zh)return Vn;zh=1,Object.defineProperty(Vn,"__esModule",{value:!0}),Vn.byteToHex=a,Vn.bytesToHex=r,Vn.numberToHex=o,Vn.hexToBytes=t;function a(u){return u.toString(16).padStart(2,"0").toUpperCase()}function r(u){return Array.from(u).map(a).join("")}function o(u,l=8){return(u>>>0).toString(16).padStart(l,"0").toUpperCase()}function t(u){const l=u.replace(/\s/g,"").toUpperCase();if(!/^[0-9A-F]*$/.test(l))throw new Error("Invalid hex string: invalid characters at position 0");if(l.length%2!==0)throw new Error("Invalid hex string: odd length");const m=new Uint8Array(l.length/2);for(let c=0;c>>2]>>>24-T%4*8&255;k[S+T>>>2]|=F<<24-(S+T)%4*8}else for(var O=0;O>>2]=C[O>>>2];return this.sigBytes+=D,this},clamp:function(){var q=this.words,k=this.sigBytes;q[k>>>2]&=4294967295<<32-k%4*8,q.length=t.ceil(k/4)},clone:function(){var q=y.clone.call(this);return q.words=this.words.slice(0),q},random:function(q){for(var k=[],C=0;C>>2]>>>24-D%4*8&255;S.push((T>>>4).toString(16)),S.push((T&15).toString(16))}return S.join("")},parse:function(q){for(var k=q.length,C=[],S=0;S>>3]|=parseInt(q.substr(S,2),16)<<24-S%8*4;return new g.init(C,k/2)}},w=f.Latin1={stringify:function(q){for(var k=q.words,C=q.sigBytes,S=[],D=0;D>>2]>>>24-D%4*8&255;S.push(String.fromCharCode(T))}return S.join("")},parse:function(q){for(var k=q.length,C=[],S=0;S>>2]|=(q.charCodeAt(S)&255)<<24-S%4*8;return new g.init(C,k)}},j=f.Utf8={stringify:function(q){try{return decodeURIComponent(escape(w.stringify(q)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(q){return w.parse(unescape(encodeURIComponent(q)))}},v=d.BufferedBlockAlgorithm=y.extend({reset:function(){this._data=new g.init,this._nDataBytes=0},_append:function(q){typeof q=="string"&&(q=j.parse(q)),this._data.concat(q),this._nDataBytes+=q.sigBytes},_process:function(q){var k,C=this._data,S=C.words,D=C.sigBytes,T=this.blockSize,F=T*4,O=D/F;q?O=t.ceil(O):O=t.max((O|0)-this._minBufferSize,0);var N=O*T,R=t.min(N*4,D);if(N){for(var V=0;V>>2]|=h[g]<<24-g%4*8;m.call(this,y,d)}else m.apply(this,arguments)};c.prototype=l}})(),o.lib.WordArray})})(ut)),ut.exports}var dt={exports:{}},O0=dt.exports,Eh;function H0(){return Eh||(Eh=1,(function(a,r){(function(o,t){a.exports=t(Le())})(O0,function(o){return(function(){var t=o,u=t.lib,l=u.WordArray,m=t.enc;m.Utf16=m.Utf16BE={stringify:function(h){for(var d=h.words,y=h.sigBytes,g=[],f=0;f>>2]>>>16-f%4*8&65535;g.push(String.fromCharCode(x))}return g.join("")},parse:function(h){for(var d=h.length,y=[],g=0;g>>1]|=h.charCodeAt(g)<<16-g%2*16;return l.create(y,d*2)}},m.Utf16LE={stringify:function(h){for(var d=h.words,y=h.sigBytes,g=[],f=0;f>>2]>>>16-f%4*8&65535);g.push(String.fromCharCode(x))}return g.join("")},parse:function(h){for(var d=h.length,y=[],g=0;g>>1]|=c(h.charCodeAt(g)<<16-g%2*16);return l.create(y,d*2)}};function c(h){return h<<8&4278255360|h>>>8&16711935}})(),o.enc.Utf16})})(dt)),dt.exports}var pt={exports:{}},L0=pt.exports,Sh;function Xn(){return Sh||(Sh=1,(function(a,r){(function(o,t){a.exports=t(Le())})(L0,function(o){return(function(){var t=o,u=t.lib,l=u.WordArray,m=t.enc;m.Base64={stringify:function(h){var d=h.words,y=h.sigBytes,g=this._map;h.clamp();for(var f=[],x=0;x>>2]>>>24-x%4*8&255,j=d[x+1>>>2]>>>24-(x+1)%4*8&255,v=d[x+2>>>2]>>>24-(x+2)%4*8&255,A=w<<16|j<<8|v,q=0;q<4&&x+q*.75>>6*(3-q)&63));var k=g.charAt(64);if(k)for(;f.length%4;)f.push(k);return f.join("")},parse:function(h){var d=h.length,y=this._map,g=this._reverseMap;if(!g){g=this._reverseMap=[];for(var f=0;f>>6-x%4*2,v=w|j;g[f>>>2]|=v<<24-f%4*8,f++}return l.create(g,f)}})(),o.enc.Base64})})(pt)),pt.exports}var mt={exports:{}},V0=mt.exports,Bh;function U0(){return Bh||(Bh=1,(function(a,r){(function(o,t){a.exports=t(Le())})(V0,function(o){return(function(){var t=o,u=t.lib,l=u.WordArray,m=t.enc;m.Base64url={stringify:function(h,d){d===void 0&&(d=!0);var y=h.words,g=h.sigBytes,f=d?this._safe_map:this._map;h.clamp();for(var x=[],w=0;w>>2]>>>24-w%4*8&255,v=y[w+1>>>2]>>>24-(w+1)%4*8&255,A=y[w+2>>>2]>>>24-(w+2)%4*8&255,q=j<<16|v<<8|A,k=0;k<4&&w+k*.75>>6*(3-k)&63));var C=f.charAt(64);if(C)for(;x.length%4;)x.push(C);return x.join("")},parse:function(h,d){d===void 0&&(d=!0);var y=h.length,g=d?this._safe_map:this._map,f=this._reverseMap;if(!f){f=this._reverseMap=[];for(var x=0;x>>6-x%4*2,v=w|j;g[f>>>2]|=v<<24-f%4*8,f++}return l.create(g,f)}})(),o.enc.Base64url})})(mt)),mt.exports}var ht={exports:{}},W0=ht.exports,_h;function Jn(){return _h||(_h=1,(function(a,r){(function(o,t){a.exports=t(Le())})(W0,function(o){return(function(t){var u=o,l=u.lib,m=l.WordArray,c=l.Hasher,h=u.algo,d=[];(function(){for(var j=0;j<64;j++)d[j]=t.abs(t.sin(j+1))*4294967296|0})();var y=h.MD5=c.extend({_doReset:function(){this._hash=new m.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(j,v){for(var A=0;A<16;A++){var q=v+A,k=j[q];j[q]=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360}var C=this._hash.words,S=j[v+0],D=j[v+1],T=j[v+2],F=j[v+3],O=j[v+4],N=j[v+5],R=j[v+6],V=j[v+7],H=j[v+8],$=j[v+9],ae=j[v+10],J=j[v+11],ie=j[v+12],W=j[v+13],oe=j[v+14],ee=j[v+15],z=C[0],I=C[1],L=C[2],G=C[3];z=g(z,I,L,G,S,7,d[0]),G=g(G,z,I,L,D,12,d[1]),L=g(L,G,z,I,T,17,d[2]),I=g(I,L,G,z,F,22,d[3]),z=g(z,I,L,G,O,7,d[4]),G=g(G,z,I,L,N,12,d[5]),L=g(L,G,z,I,R,17,d[6]),I=g(I,L,G,z,V,22,d[7]),z=g(z,I,L,G,H,7,d[8]),G=g(G,z,I,L,$,12,d[9]),L=g(L,G,z,I,ae,17,d[10]),I=g(I,L,G,z,J,22,d[11]),z=g(z,I,L,G,ie,7,d[12]),G=g(G,z,I,L,W,12,d[13]),L=g(L,G,z,I,oe,17,d[14]),I=g(I,L,G,z,ee,22,d[15]),z=f(z,I,L,G,D,5,d[16]),G=f(G,z,I,L,R,9,d[17]),L=f(L,G,z,I,J,14,d[18]),I=f(I,L,G,z,S,20,d[19]),z=f(z,I,L,G,N,5,d[20]),G=f(G,z,I,L,ae,9,d[21]),L=f(L,G,z,I,ee,14,d[22]),I=f(I,L,G,z,O,20,d[23]),z=f(z,I,L,G,$,5,d[24]),G=f(G,z,I,L,oe,9,d[25]),L=f(L,G,z,I,F,14,d[26]),I=f(I,L,G,z,H,20,d[27]),z=f(z,I,L,G,W,5,d[28]),G=f(G,z,I,L,T,9,d[29]),L=f(L,G,z,I,V,14,d[30]),I=f(I,L,G,z,ie,20,d[31]),z=x(z,I,L,G,N,4,d[32]),G=x(G,z,I,L,H,11,d[33]),L=x(L,G,z,I,J,16,d[34]),I=x(I,L,G,z,oe,23,d[35]),z=x(z,I,L,G,D,4,d[36]),G=x(G,z,I,L,O,11,d[37]),L=x(L,G,z,I,V,16,d[38]),I=x(I,L,G,z,ae,23,d[39]),z=x(z,I,L,G,W,4,d[40]),G=x(G,z,I,L,S,11,d[41]),L=x(L,G,z,I,F,16,d[42]),I=x(I,L,G,z,R,23,d[43]),z=x(z,I,L,G,$,4,d[44]),G=x(G,z,I,L,ie,11,d[45]),L=x(L,G,z,I,ee,16,d[46]),I=x(I,L,G,z,T,23,d[47]),z=w(z,I,L,G,S,6,d[48]),G=w(G,z,I,L,V,10,d[49]),L=w(L,G,z,I,oe,15,d[50]),I=w(I,L,G,z,N,21,d[51]),z=w(z,I,L,G,ie,6,d[52]),G=w(G,z,I,L,F,10,d[53]),L=w(L,G,z,I,ae,15,d[54]),I=w(I,L,G,z,D,21,d[55]),z=w(z,I,L,G,H,6,d[56]),G=w(G,z,I,L,ee,10,d[57]),L=w(L,G,z,I,R,15,d[58]),I=w(I,L,G,z,W,21,d[59]),z=w(z,I,L,G,O,6,d[60]),G=w(G,z,I,L,J,10,d[61]),L=w(L,G,z,I,T,15,d[62]),I=w(I,L,G,z,$,21,d[63]),C[0]=C[0]+z|0,C[1]=C[1]+I|0,C[2]=C[2]+L|0,C[3]=C[3]+G|0},_doFinalize:function(){var j=this._data,v=j.words,A=this._nDataBytes*8,q=j.sigBytes*8;v[q>>>5]|=128<<24-q%32;var k=t.floor(A/4294967296),C=A;v[(q+64>>>9<<4)+15]=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360,v[(q+64>>>9<<4)+14]=(C<<8|C>>>24)&16711935|(C<<24|C>>>8)&4278255360,j.sigBytes=(v.length+1)*4,this._process();for(var S=this._hash,D=S.words,T=0;T<4;T++){var F=D[T];D[T]=(F<<8|F>>>24)&16711935|(F<<24|F>>>8)&4278255360}return S},clone:function(){var j=c.clone.call(this);return j._hash=this._hash.clone(),j}});function g(j,v,A,q,k,C,S){var D=j+(v&A|~v&q)+k+S;return(D<>>32-C)+v}function f(j,v,A,q,k,C,S){var D=j+(v&q|A&~q)+k+S;return(D<>>32-C)+v}function x(j,v,A,q,k,C,S){var D=j+(v^A^q)+k+S;return(D<>>32-C)+v}function w(j,v,A,q,k,C,S){var D=j+(A^(v|~q))+k+S;return(D<>>32-C)+v}u.MD5=c._createHelper(y),u.HmacMD5=c._createHmacHelper(y)})(Math),o.MD5})})(ht)),ht.exports}var gt={exports:{}},G0=gt.exports,Dh;function Eb(){return Dh||(Dh=1,(function(a,r){(function(o,t){a.exports=t(Le())})(G0,function(o){return(function(){var t=o,u=t.lib,l=u.WordArray,m=u.Hasher,c=t.algo,h=[],d=c.SHA1=m.extend({_doReset:function(){this._hash=new l.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(y,g){for(var f=this._hash.words,x=f[0],w=f[1],j=f[2],v=f[3],A=f[4],q=0;q<80;q++){if(q<16)h[q]=y[g+q]|0;else{var k=h[q-3]^h[q-8]^h[q-14]^h[q-16];h[q]=k<<1|k>>>31}var C=(x<<5|x>>>27)+A+h[q];q<20?C+=(w&j|~w&v)+1518500249:q<40?C+=(w^j^v)+1859775393:q<60?C+=(w&j|w&v|j&v)-1894007588:C+=(w^j^v)-899497514,A=v,v=j,j=w<<30|w>>>2,w=x,x=C}f[0]=f[0]+x|0,f[1]=f[1]+w|0,f[2]=f[2]+j|0,f[3]=f[3]+v|0,f[4]=f[4]+A|0},_doFinalize:function(){var y=this._data,g=y.words,f=this._nDataBytes*8,x=y.sigBytes*8;return g[x>>>5]|=128<<24-x%32,g[(x+64>>>9<<4)+14]=Math.floor(f/4294967296),g[(x+64>>>9<<4)+15]=f,y.sigBytes=g.length*4,this._process(),this._hash},clone:function(){var y=m.clone.call(this);return y._hash=this._hash.clone(),y}});t.SHA1=m._createHelper(d),t.HmacSHA1=m._createHmacHelper(d)})(),o.SHA1})})(gt)),gt.exports}var yt={exports:{}},Q0=yt.exports,Fh;function Vr(){return Fh||(Fh=1,(function(a,r){(function(o,t){a.exports=t(Le())})(Q0,function(o){return(function(t){var u=o,l=u.lib,m=l.WordArray,c=l.Hasher,h=u.algo,d=[],y=[];(function(){function x(A){for(var q=t.sqrt(A),k=2;k<=q;k++)if(!(A%k))return!1;return!0}function w(A){return(A-(A|0))*4294967296|0}for(var j=2,v=0;v<64;)x(j)&&(v<8&&(d[v]=w(t.pow(j,1/2))),y[v]=w(t.pow(j,1/3)),v++),j++})();var g=[],f=h.SHA256=c.extend({_doReset:function(){this._hash=new m.init(d.slice(0))},_doProcessBlock:function(x,w){for(var j=this._hash.words,v=j[0],A=j[1],q=j[2],k=j[3],C=j[4],S=j[5],D=j[6],T=j[7],F=0;F<64;F++){if(F<16)g[F]=x[w+F]|0;else{var O=g[F-15],N=(O<<25|O>>>7)^(O<<14|O>>>18)^O>>>3,R=g[F-2],V=(R<<15|R>>>17)^(R<<13|R>>>19)^R>>>10;g[F]=N+g[F-7]+V+g[F-16]}var H=C&S^~C&D,$=v&A^v&q^A&q,ae=(v<<30|v>>>2)^(v<<19|v>>>13)^(v<<10|v>>>22),J=(C<<26|C>>>6)^(C<<21|C>>>11)^(C<<7|C>>>25),ie=T+J+H+y[F]+g[F],W=ae+$;T=D,D=S,S=C,C=k+ie|0,k=q,q=A,A=v,v=ie+W|0}j[0]=j[0]+v|0,j[1]=j[1]+A|0,j[2]=j[2]+q|0,j[3]=j[3]+k|0,j[4]=j[4]+C|0,j[5]=j[5]+S|0,j[6]=j[6]+D|0,j[7]=j[7]+T|0},_doFinalize:function(){var x=this._data,w=x.words,j=this._nDataBytes*8,v=x.sigBytes*8;return w[v>>>5]|=128<<24-v%32,w[(v+64>>>9<<4)+14]=t.floor(j/4294967296),w[(v+64>>>9<<4)+15]=j,x.sigBytes=w.length*4,this._process(),this._hash},clone:function(){var x=c.clone.call(this);return x._hash=this._hash.clone(),x}});u.SHA256=c._createHelper(f),u.HmacSHA256=c._createHmacHelper(f)})(Math),o.SHA256})})(yt)),yt.exports}var bt={exports:{}},$0=bt.exports,Rh;function K0(){return Rh||(Rh=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),Vr())})($0,function(o){return(function(){var t=o,u=t.lib,l=u.WordArray,m=t.algo,c=m.SHA256,h=m.SHA224=c.extend({_doReset:function(){this._hash=new l.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var d=c._doFinalize.call(this);return d.sigBytes-=4,d}});t.SHA224=c._createHelper(h),t.HmacSHA224=c._createHmacHelper(h)})(),o.SHA224})})(bt)),bt.exports}var ft={exports:{}},Y0=ft.exports,Th;function Sb(){return Th||(Th=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),dl())})(Y0,function(o){return(function(){var t=o,u=t.lib,l=u.Hasher,m=t.x64,c=m.Word,h=m.WordArray,d=t.algo;function y(){return c.create.apply(c,arguments)}var g=[y(1116352408,3609767458),y(1899447441,602891725),y(3049323471,3964484399),y(3921009573,2173295548),y(961987163,4081628472),y(1508970993,3053834265),y(2453635748,2937671579),y(2870763221,3664609560),y(3624381080,2734883394),y(310598401,1164996542),y(607225278,1323610764),y(1426881987,3590304994),y(1925078388,4068182383),y(2162078206,991336113),y(2614888103,633803317),y(3248222580,3479774868),y(3835390401,2666613458),y(4022224774,944711139),y(264347078,2341262773),y(604807628,2007800933),y(770255983,1495990901),y(1249150122,1856431235),y(1555081692,3175218132),y(1996064986,2198950837),y(2554220882,3999719339),y(2821834349,766784016),y(2952996808,2566594879),y(3210313671,3203337956),y(3336571891,1034457026),y(3584528711,2466948901),y(113926993,3758326383),y(338241895,168717936),y(666307205,1188179964),y(773529912,1546045734),y(1294757372,1522805485),y(1396182291,2643833823),y(1695183700,2343527390),y(1986661051,1014477480),y(2177026350,1206759142),y(2456956037,344077627),y(2730485921,1290863460),y(2820302411,3158454273),y(3259730800,3505952657),y(3345764771,106217008),y(3516065817,3606008344),y(3600352804,1432725776),y(4094571909,1467031594),y(275423344,851169720),y(430227734,3100823752),y(506948616,1363258195),y(659060556,3750685593),y(883997877,3785050280),y(958139571,3318307427),y(1322822218,3812723403),y(1537002063,2003034995),y(1747873779,3602036899),y(1955562222,1575990012),y(2024104815,1125592928),y(2227730452,2716904306),y(2361852424,442776044),y(2428436474,593698344),y(2756734187,3733110249),y(3204031479,2999351573),y(3329325298,3815920427),y(3391569614,3928383900),y(3515267271,566280711),y(3940187606,3454069534),y(4118630271,4000239992),y(116418474,1914138554),y(174292421,2731055270),y(289380356,3203993006),y(460393269,320620315),y(685471733,587496836),y(852142971,1086792851),y(1017036298,365543100),y(1126000580,2618297676),y(1288033470,3409855158),y(1501505948,4234509866),y(1607167915,987167468),y(1816402316,1246189591)],f=[];(function(){for(var w=0;w<80;w++)f[w]=y()})();var x=d.SHA512=l.extend({_doReset:function(){this._hash=new h.init([new c.init(1779033703,4089235720),new c.init(3144134277,2227873595),new c.init(1013904242,4271175723),new c.init(2773480762,1595750129),new c.init(1359893119,2917565137),new c.init(2600822924,725511199),new c.init(528734635,4215389547),new c.init(1541459225,327033209)])},_doProcessBlock:function(w,j){for(var v=this._hash.words,A=v[0],q=v[1],k=v[2],C=v[3],S=v[4],D=v[5],T=v[6],F=v[7],O=A.high,N=A.low,R=q.high,V=q.low,H=k.high,$=k.low,ae=C.high,J=C.low,ie=S.high,W=S.low,oe=D.high,ee=D.low,z=T.high,I=T.low,L=F.high,G=F.low,ue=O,he=N,ge=R,re=V,le=H,je=$,Pe=ae,Ze=J,Je=ie,_e=W,Ge=oe,ei=ee,Ve=z,xi=I,ai=L,Ti=G,si=0;si<80;si++){var We,mi,$i=f[si];if(si<16)mi=$i.high=w[j+si*2]|0,We=$i.low=w[j+si*2+1]|0;else{var va=f[si-15],zi=va.high,Oi=va.low,Ki=(zi>>>1|Oi<<31)^(zi>>>8|Oi<<24)^zi>>>7,oa=(Oi>>>1|zi<<31)^(Oi>>>8|zi<<24)^(Oi>>>7|zi<<25),qi=f[si-2],ci=qi.high,Z=qi.low,de=(ci>>>19|Z<<13)^(ci<<3|Z>>>29)^ci>>>6,ze=(Z>>>19|ci<<13)^(Z<<3|ci>>>29)^(Z>>>6|ci<<26),K=f[si-7],ne=K.high,ye=K.low,Fe=f[si-16],Be=Fe.high,Ne=Fe.low;We=oa+ye,mi=Ki+ne+(We>>>0>>0?1:0),We=We+ze,mi=mi+de+(We>>>0>>0?1:0),We=We+Ne,mi=mi+Be+(We>>>0>>0?1:0),$i.high=mi,$i.low=We}var Re=Je&Ge^~Je&Ve,Te=_e&ei^~_e&xi,ji=ue&ge^ue&le^ge&le,Ae=he&re^he&je^re&je,Oe=(ue>>>28|he<<4)^(ue<<30|he>>>2)^(ue<<25|he>>>7),Ue=(he>>>28|ue<<4)^(he<<30|ue>>>2)^(he<<25|ue>>>7),hi=(Je>>>14|_e<<18)^(Je>>>18|_e<<14)^(Je<<23|_e>>>9),da=(_e>>>14|Je<<18)^(_e>>>18|Je<<14)^(_e<<23|Je>>>9),He=g[si],ni=He.high,ka=He.low,Ye=Ti+da,gi=ai+hi+(Ye>>>0>>0?1:0),Ye=Ye+Te,gi=gi+Re+(Ye>>>0>>0?1:0),Ye=Ye+ka,gi=gi+ni+(Ye>>>0>>0?1:0),Ye=Ye+We,gi=gi+mi+(Ye>>>0>>0?1:0),wa=Ue+Ae,Yi=Oe+ji+(wa>>>0>>0?1:0);ai=Ve,Ti=xi,Ve=Ge,xi=ei,Ge=Je,ei=_e,_e=Ze+Ye|0,Je=Pe+gi+(_e>>>0>>0?1:0)|0,Pe=le,Ze=je,le=ge,je=re,ge=ue,re=he,he=Ye+wa|0,ue=gi+Yi+(he>>>0>>0?1:0)|0}N=A.low=N+he,A.high=O+ue+(N>>>0>>0?1:0),V=q.low=V+re,q.high=R+ge+(V>>>0>>0?1:0),$=k.low=$+je,k.high=H+le+($>>>0>>0?1:0),J=C.low=J+Ze,C.high=ae+Pe+(J>>>0>>0?1:0),W=S.low=W+_e,S.high=ie+Je+(W>>>0<_e>>>0?1:0),ee=D.low=ee+ei,D.high=oe+Ge+(ee>>>0>>0?1:0),I=T.low=I+xi,T.high=z+Ve+(I>>>0>>0?1:0),G=F.low=G+Ti,F.high=L+ai+(G>>>0>>0?1:0)},_doFinalize:function(){var w=this._data,j=w.words,v=this._nDataBytes*8,A=w.sigBytes*8;j[A>>>5]|=128<<24-A%32,j[(A+128>>>10<<5)+30]=Math.floor(v/4294967296),j[(A+128>>>10<<5)+31]=v,w.sigBytes=j.length*4,this._process();var q=this._hash.toX32();return q},clone:function(){var w=l.clone.call(this);return w._hash=this._hash.clone(),w},blockSize:1024/32});t.SHA512=l._createHelper(x),t.HmacSHA512=l._createHmacHelper(x)})(),o.SHA512})})(ft)),ft.exports}var vt={exports:{}},Z0=vt.exports,Ph;function X0(){return Ph||(Ph=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),dl(),Sb())})(Z0,function(o){return(function(){var t=o,u=t.x64,l=u.Word,m=u.WordArray,c=t.algo,h=c.SHA512,d=c.SHA384=h.extend({_doReset:function(){this._hash=new m.init([new l.init(3418070365,3238371032),new l.init(1654270250,914150663),new l.init(2438529370,812702999),new l.init(355462360,4144912697),new l.init(1731405415,4290775857),new l.init(2394180231,1750603025),new l.init(3675008525,1694076839),new l.init(1203062813,3204075428)])},_doFinalize:function(){var y=h._doFinalize.call(this);return y.sigBytes-=16,y}});t.SHA384=h._createHelper(d),t.HmacSHA384=h._createHmacHelper(d)})(),o.SHA384})})(vt)),vt.exports}var kt={exports:{}},J0=kt.exports,Nh;function eq(){return Nh||(Nh=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),dl())})(J0,function(o){return(function(t){var u=o,l=u.lib,m=l.WordArray,c=l.Hasher,h=u.x64,d=h.Word,y=u.algo,g=[],f=[],x=[];(function(){for(var v=1,A=0,q=0;q<24;q++){g[v+5*A]=(q+1)*(q+2)/2%64;var k=A%5,C=(2*v+3*A)%5;v=k,A=C}for(var v=0;v<5;v++)for(var A=0;A<5;A++)f[v+5*A]=A+(2*v+3*A)%5*5;for(var S=1,D=0;D<24;D++){for(var T=0,F=0,O=0;O<7;O++){if(S&1){var N=(1<>>24)&16711935|(S<<24|S>>>8)&4278255360,D=(D<<8|D>>>24)&16711935|(D<<24|D>>>8)&4278255360;var T=q[C];T.high^=D,T.low^=S}for(var F=0;F<24;F++){for(var O=0;O<5;O++){for(var N=0,R=0,V=0;V<5;V++){var T=q[O+5*V];N^=T.high,R^=T.low}var H=w[O];H.high=N,H.low=R}for(var O=0;O<5;O++)for(var $=w[(O+4)%5],ae=w[(O+1)%5],J=ae.high,ie=ae.low,N=$.high^(J<<1|ie>>>31),R=$.low^(ie<<1|J>>>31),V=0;V<5;V++){var T=q[O+5*V];T.high^=N,T.low^=R}for(var W=1;W<25;W++){var N,R,T=q[W],oe=T.high,ee=T.low,z=g[W];z<32?(N=oe<>>32-z,R=ee<>>32-z):(N=ee<>>64-z,R=oe<>>64-z);var I=w[f[W]];I.high=N,I.low=R}var L=w[0],G=q[0];L.high=G.high,L.low=G.low;for(var O=0;O<5;O++)for(var V=0;V<5;V++){var W=O+5*V,T=q[W],ue=w[W],he=w[(O+1)%5+5*V],ge=w[(O+2)%5+5*V];T.high=ue.high^~he.high&ge.high,T.low=ue.low^~he.low&ge.low}var T=q[0],re=x[F];T.high^=re.high,T.low^=re.low}},_doFinalize:function(){var v=this._data,A=v.words;this._nDataBytes*8;var q=v.sigBytes*8,k=this.blockSize*32;A[q>>>5]|=1<<24-q%32,A[(t.ceil((q+1)/k)*k>>>5)-1]|=128,v.sigBytes=A.length*4,this._process();for(var C=this._state,S=this.cfg.outputLength/8,D=S/8,T=[],F=0;F>>24)&16711935|(N<<24|N>>>8)&4278255360,R=(R<<8|R>>>24)&16711935|(R<<24|R>>>8)&4278255360,T.push(R),T.push(N)}return new m.init(T,S)},clone:function(){for(var v=c.clone.call(this),A=v._state=this._state.slice(0),q=0;q<25;q++)A[q]=A[q].clone();return v}});u.SHA3=c._createHelper(j),u.HmacSHA3=c._createHmacHelper(j)})(Math),o.SHA3})})(kt)),kt.exports}var wt={exports:{}},iq=wt.exports,Ih;function aq(){return Ih||(Ih=1,(function(a,r){(function(o,t){a.exports=t(Le())})(iq,function(o){/** @preserve +For more information, see https://radix-ui.com/primitives/docs/components/${r.docsSlug}`;return B.useEffect(()=>{a&&(document.getElementById(a)||console.error(o))},[o,a]),null},Iz="DialogDescriptionWarning",Mz=({contentRef:a,descriptionId:r})=>{const t=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Hy(Iz).contentName}}.`;return B.useEffect(()=>{var l;const u=(l=a.current)==null?void 0:l.getAttribute("aria-describedby");r&&u&&(document.getElementById(r)||console.warn(t))},[t,a,r]),null},Ly=Ey,Vy=_y,rl=Dy,sl=Fy,tl=Ty,ll=Ny,Uy=My;const Wy=Ly,Oz=Vy,Gy=B.forwardRef(({className:a,...r},o)=>_.jsx(rl,{ref:o,className:Ye("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...r}));Gy.displayName=rl.displayName;const Lu=B.forwardRef(({className:a,children:r,...o},t)=>_.jsxs(Oz,{children:[_.jsx(Gy,{}),_.jsxs(sl,{ref:t,className:Ye("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...o,children:[r,_.jsxs(Uy,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[_.jsx(Wg,{className:"h-4 w-4"}),_.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Lu.displayName=sl.displayName;const Vu=({className:a,...r})=>_.jsx("div",{className:Ye("flex flex-col space-y-1.5 text-center sm:text-left",a),...r});Vu.displayName="DialogHeader";const Uu=({className:a,...r})=>_.jsx("div",{className:Ye("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...r});Uu.displayName="DialogFooter";const Wu=B.forwardRef(({className:a,...r},o)=>_.jsx(tl,{ref:o,className:Ye("text-lg font-semibold leading-none tracking-tight",a),...r}));Wu.displayName=tl.displayName;const Hz=B.forwardRef(({className:a,...r},o)=>_.jsx(ll,{ref:o,className:Ye("text-sm text-muted-foreground",a),...r}));Hz.displayName=ll.displayName;function vh(a){const r=Lz(a),o=B.forwardRef((t,u)=>{const{children:l,...m}=t,c=B.Children.toArray(l),h=c.find(Uz);if(h){const d=h.props.children,y=c.map(g=>g===h?B.Children.count(d)>1?B.Children.only(null):B.isValidElement(d)?d.props.children:null:g);return _.jsx(r,{...m,ref:u,children:B.isValidElement(d)?B.cloneElement(d,void 0,y):null})}return _.jsx(r,{...m,ref:u,children:l})});return o.displayName=`${a}.Slot`,o}function Lz(a){const r=B.forwardRef((o,t)=>{const{children:u,...l}=o;if(B.isValidElement(u)){const m=Gz(u),c=Wz(l,u.props);return u.type!==B.Fragment&&(c.ref=t?Or(t,m):m),B.cloneElement(u,c)}return B.Children.count(u)>1?B.Children.only(null):null});return r.displayName=`${a}.SlotClone`,r}var Vz=Symbol("radix.slottable");function Uz(a){return B.isValidElement(a)&&typeof a.type=="function"&&"__radixId"in a.type&&a.type.__radixId===Vz}function Wz(a,r){const o={...r};for(const t in r){const u=a[t],l=r[t];/^on[A-Z]/.test(t)?u&&l?o[t]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[t]=u):t==="style"?o[t]={...u,...l}:t==="className"&&(o[t]=[u,l].filter(Boolean).join(" "))}return{...a,...o}}function Gz(a){var t,u;let r=(t=Object.getOwnPropertyDescriptor(a.props,"ref"))==null?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?a.ref:(r=(u=Object.getOwnPropertyDescriptor(a,"ref"))==null?void 0:u.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}function Qz(a){const r=a+"CollectionProvider",[o,t]=Hr(r),[u,l]=o(r,{collectionRef:{current:null},itemMap:new Map}),m=j=>{const{scope:v,children:A}=j,q=me.useRef(null),k=me.useRef(new Map).current;return _.jsx(u,{scope:v,itemMap:k,collectionRef:q,children:A})};m.displayName=r;const c=a+"CollectionSlot",h=vh(c),d=me.forwardRef((j,v)=>{const{scope:A,children:q}=j,k=l(c,A),C=fa(v,k.collectionRef);return _.jsx(h,{ref:C,children:q})});d.displayName=c;const y=a+"CollectionItemSlot",g="data-radix-collection-item",f=vh(y),x=me.forwardRef((j,v)=>{const{scope:A,children:q,...k}=j,C=me.useRef(null),S=fa(v,C),D=l(y,A);return me.useEffect(()=>(D.itemMap.set(C,{ref:C,...k}),()=>void D.itemMap.delete(C))),_.jsx(f,{[g]:"",ref:S,children:q})});x.displayName=y;function w(j){const v=l(a+"CollectionConsumer",j);return me.useCallback(()=>{const q=v.collectionRef.current;if(!q)return[];const k=Array.from(q.querySelectorAll(`[${g}]`));return Array.from(v.itemMap.values()).sort((D,T)=>k.indexOf(D.ref.current)-k.indexOf(T.ref.current))},[v.collectionRef,v.itemMap])}return[{Provider:m,Slot:d,ItemSlot:x},w,t]}var $z=B.createContext(void 0);function Qy(a){const r=B.useContext($z);return a||r||"ltr"}var mu="rovingFocusGroup.onEntryFocus",Kz={bubbles:!1,cancelable:!0},Lr="RovingFocusGroup",[Au,$y,Yz]=Qz(Lr),[Zz,Ky]=Hr(Lr,[Yz]),[Xz,Jz]=Zz(Lr),Yy=B.forwardRef((a,r)=>_.jsx(Au.Provider,{scope:a.__scopeRovingFocusGroup,children:_.jsx(Au.Slot,{scope:a.__scopeRovingFocusGroup,children:_.jsx(e0,{...a,ref:r})})}));Yy.displayName=Lr;var e0=B.forwardRef((a,r)=>{const{__scopeRovingFocusGroup:o,orientation:t,loop:u=!1,dir:l,currentTabStopId:m,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:h,onEntryFocus:d,preventScrollOnEntryFocus:y=!1,...g}=a,f=B.useRef(null),x=fa(r,f),w=Qy(l),[j,v]=al({prop:m,defaultProp:c??null,onChange:h,caller:Lr}),[A,q]=B.useState(!1),k=Do(d),C=$y(o),S=B.useRef(!1),[D,T]=B.useState(0);return B.useEffect(()=>{const F=f.current;if(F)return F.addEventListener(mu,k),()=>F.removeEventListener(mu,k)},[k]),_.jsx(Xz,{scope:o,orientation:t,dir:w,loop:u,currentTabStopId:j,onItemFocus:B.useCallback(F=>v(F),[v]),onItemShiftTab:B.useCallback(()=>q(!0),[]),onFocusableItemAdd:B.useCallback(()=>T(F=>F+1),[]),onFocusableItemRemove:B.useCallback(()=>T(F=>F-1),[]),children:_.jsx(Ri.div,{tabIndex:A||D===0?-1:0,"data-orientation":t,...g,ref:x,style:{outline:"none",...a.style},onMouseDown:Bi(a.onMouseDown,()=>{S.current=!0}),onFocus:Bi(a.onFocus,F=>{const O=!S.current;if(F.target===F.currentTarget&&O&&!A){const N=new CustomEvent(mu,Kz);if(F.currentTarget.dispatchEvent(N),!N.defaultPrevented){const R=C().filter(J=>J.focusable),V=R.find(J=>J.active),H=R.find(J=>J.id===j),ae=[V,H,...R].filter(Boolean).map(J=>J.ref.current);Jy(ae,y)}}S.current=!1}),onBlur:Bi(a.onBlur,()=>q(!1))})})}),Zy="RovingFocusGroupItem",Xy=B.forwardRef((a,r)=>{const{__scopeRovingFocusGroup:o,focusable:t=!0,active:u=!1,tabStopId:l,children:m,...c}=a,h=Pr(),d=l||h,y=Jz(Zy,o),g=y.currentTabStopId===d,f=$y(o),{onFocusableItemAdd:x,onFocusableItemRemove:w,currentTabStopId:j}=y;return B.useEffect(()=>{if(t)return x(),()=>w()},[t,x,w]),_.jsx(Au.ItemSlot,{scope:o,id:d,focusable:t,active:u,children:_.jsx(Ri.span,{tabIndex:g?0:-1,"data-orientation":y.orientation,...c,ref:r,onMouseDown:Bi(a.onMouseDown,v=>{t?y.onItemFocus(d):v.preventDefault()}),onFocus:Bi(a.onFocus,()=>y.onItemFocus(d)),onKeyDown:Bi(a.onKeyDown,v=>{if(v.key==="Tab"&&v.shiftKey){y.onItemShiftTab();return}if(v.target!==v.currentTarget)return;const A=n0(v,y.orientation,y.dir);if(A!==void 0){if(v.metaKey||v.ctrlKey||v.altKey||v.shiftKey)return;v.preventDefault();let k=f().filter(C=>C.focusable).map(C=>C.ref.current);if(A==="last")k.reverse();else if(A==="prev"||A==="next"){A==="prev"&&k.reverse();const C=k.indexOf(v.currentTarget);k=y.loop?o0(k,C+1):k.slice(C+1)}setTimeout(()=>Jy(k))}}),children:typeof m=="function"?m({isCurrentTabStop:g,hasTabStop:j!=null}):m})})});Xy.displayName=Zy;var i0={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function a0(a,r){return r!=="rtl"?a:a==="ArrowLeft"?"ArrowRight":a==="ArrowRight"?"ArrowLeft":a}function n0(a,r,o){const t=a0(a.key,o);if(!(r==="vertical"&&["ArrowLeft","ArrowRight"].includes(t))&&!(r==="horizontal"&&["ArrowUp","ArrowDown"].includes(t)))return i0[t]}function Jy(a,r=!1){const o=document.activeElement;for(const t of a)if(t===o||(t.focus({preventScroll:r}),document.activeElement!==o))return}function o0(a,r){return a.map((o,t)=>a[(r+t)%a.length])}var r0=Yy,s0=Xy,cl="Tabs",[t0]=Hr(cl,[Ky]),eb=Ky(),[l0,Gu]=t0(cl),ib=B.forwardRef((a,r)=>{const{__scopeTabs:o,value:t,onValueChange:u,defaultValue:l,orientation:m="horizontal",dir:c,activationMode:h="automatic",...d}=a,y=Qy(c),[g,f]=al({prop:t,onChange:u,defaultProp:l??"",caller:cl});return _.jsx(l0,{scope:o,baseId:Pr(),value:g,onValueChange:f,orientation:m,dir:y,activationMode:h,children:_.jsx(Ri.div,{dir:y,"data-orientation":m,...d,ref:r})})});ib.displayName=cl;var ab="TabsList",nb=B.forwardRef((a,r)=>{const{__scopeTabs:o,loop:t=!0,...u}=a,l=Gu(ab,o),m=eb(o);return _.jsx(r0,{asChild:!0,...m,orientation:l.orientation,dir:l.dir,loop:t,children:_.jsx(Ri.div,{role:"tablist","aria-orientation":l.orientation,...u,ref:r})})});nb.displayName=ab;var ob="TabsTrigger",rb=B.forwardRef((a,r)=>{const{__scopeTabs:o,value:t,disabled:u=!1,...l}=a,m=Gu(ob,o),c=eb(o),h=lb(m.baseId,t),d=cb(m.baseId,t),y=t===m.value;return _.jsx(s0,{asChild:!0,...c,focusable:!u,active:y,children:_.jsx(Ri.button,{type:"button",role:"tab","aria-selected":y,"aria-controls":d,"data-state":y?"active":"inactive","data-disabled":u?"":void 0,disabled:u,id:h,...l,ref:r,onMouseDown:Bi(a.onMouseDown,g=>{!u&&g.button===0&&g.ctrlKey===!1?m.onValueChange(t):g.preventDefault()}),onKeyDown:Bi(a.onKeyDown,g=>{[" ","Enter"].includes(g.key)&&m.onValueChange(t)}),onFocus:Bi(a.onFocus,()=>{const g=m.activationMode!=="manual";!y&&!u&&g&&m.onValueChange(t)})})})});rb.displayName=ob;var sb="TabsContent",tb=B.forwardRef((a,r)=>{const{__scopeTabs:o,value:t,forceMount:u,children:l,...m}=a,c=Gu(sb,o),h=lb(c.baseId,t),d=cb(c.baseId,t),y=t===c.value,g=B.useRef(y);return B.useEffect(()=>{const f=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(f)},[]),_.jsx(Po,{present:u||y,children:({present:f})=>_.jsx(Ri.div,{"data-state":y?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":h,hidden:!f,id:d,tabIndex:0,...m,ref:r,style:{...a.style,animationDuration:g.current?"0s":void 0},children:f&&l})})});tb.displayName=sb;function lb(a,r){return`${a}-trigger-${r}`}function cb(a,r){return`${a}-content-${r}`}var c0=ib,ub=nb,db=rb,pb=tb;const u0=c0,mb=B.forwardRef(({className:a,...r},o)=>_.jsx(ub,{ref:o,className:Ye("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",a),...r}));mb.displayName=ub.displayName;const Dr=B.forwardRef(({className:a,...r},o)=>_.jsx(db,{ref:o,className:Ye("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",a),...r}));Dr.displayName=db.displayName;const Fr=B.forwardRef(({className:a,...r},o)=>_.jsx(pb,{ref:o,className:Ye("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",a),...r}));Fr.displayName=pb.displayName;var d0=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],p0=d0.reduce((a,r)=>{const o=Iu(`Primitive.${r}`),t=B.forwardRef((u,l)=>{const{asChild:m,...c}=u,h=m?o:r;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),_.jsx(h,{...c,ref:l})});return t.displayName=`Primitive.${r}`,{...a,[r]:t}},{}),m0="Label",hb=B.forwardRef((a,r)=>_.jsx(p0.label,{...a,ref:r,onMouseDown:o=>{var u;o.target.closest("button, input, select, textarea")||((u=a.onMouseDown)==null||u.call(a,o),!o.defaultPrevented&&o.detail>1&&o.preventDefault())}}));hb.displayName=m0;var gb=hb;const h0=il("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),xi=B.forwardRef(({className:a,...r},o)=>_.jsx(gb,{ref:o,className:Ye(h0(),a),...r}));xi.displayName=gb.displayName;function g0(a){const r=B.useRef({value:a,previous:a});return B.useMemo(()=>(r.current.value!==a&&(r.current.previous=r.current.value,r.current.value=a),r.current.previous),[a])}function y0(a){const[r,o]=B.useState(void 0);return _o(()=>{if(a){o({width:a.offsetWidth,height:a.offsetHeight});const t=new ResizeObserver(u=>{if(!Array.isArray(u)||!u.length)return;const l=u[0];let m,c;if("borderBoxSize"in l){const h=l.borderBoxSize,d=Array.isArray(h)?h[0]:h;m=d.inlineSize,c=d.blockSize}else m=a.offsetWidth,c=a.offsetHeight;o({width:m,height:c})});return t.observe(a,{box:"border-box"}),()=>t.unobserve(a)}else o(void 0)},[a]),r}var ul="Checkbox",[b0]=Hr(ul),[f0,Qu]=b0(ul);function v0(a){const{__scopeCheckbox:r,checked:o,children:t,defaultChecked:u,disabled:l,form:m,name:c,onCheckedChange:h,required:d,value:y="on",internal_do_not_use_render:g}=a,[f,x]=al({prop:o,defaultProp:u??!1,onChange:h,caller:ul}),[w,j]=B.useState(null),[v,A]=B.useState(null),q=B.useRef(!1),k=w?!!m||!!w.closest("form"):!0,C={checked:f,disabled:l,setChecked:x,control:w,setControl:j,name:c,form:m,value:y,hasConsumerStoppedPropagationRef:q,required:d,defaultChecked:jn(u)?!1:u,isFormControl:k,bubbleInput:v,setBubbleInput:A};return _.jsx(f0,{scope:r,...C,children:k0(g)?g(C):t})}var yb="CheckboxTrigger",bb=B.forwardRef(({__scopeCheckbox:a,onKeyDown:r,onClick:o,...t},u)=>{const{control:l,value:m,disabled:c,checked:h,required:d,setControl:y,setChecked:g,hasConsumerStoppedPropagationRef:f,isFormControl:x,bubbleInput:w}=Qu(yb,a),j=fa(u,y),v=B.useRef(h);return B.useEffect(()=>{const A=l==null?void 0:l.form;if(A){const q=()=>g(v.current);return A.addEventListener("reset",q),()=>A.removeEventListener("reset",q)}},[l,g]),_.jsx(Ri.button,{type:"button",role:"checkbox","aria-checked":jn(h)?"mixed":h,"aria-required":d,"data-state":xb(h),"data-disabled":c?"":void 0,disabled:c,value:m,...t,ref:j,onKeyDown:Bi(r,A=>{A.key==="Enter"&&A.preventDefault()}),onClick:Bi(o,A=>{g(q=>jn(q)?!0:!q),w&&x&&(f.current=A.isPropagationStopped(),f.current||A.stopPropagation())})})});bb.displayName=yb;var $u=B.forwardRef((a,r)=>{const{__scopeCheckbox:o,name:t,checked:u,defaultChecked:l,required:m,disabled:c,value:h,onCheckedChange:d,form:y,...g}=a;return _.jsx(v0,{__scopeCheckbox:o,checked:u,defaultChecked:l,disabled:c,required:m,onCheckedChange:d,name:t,form:y,value:h,internal_do_not_use_render:({isFormControl:f})=>_.jsxs(_.Fragment,{children:[_.jsx(bb,{...g,ref:r,__scopeCheckbox:o}),f&&_.jsx(wb,{__scopeCheckbox:o})]})})});$u.displayName=ul;var fb="CheckboxIndicator",vb=B.forwardRef((a,r)=>{const{__scopeCheckbox:o,forceMount:t,...u}=a,l=Qu(fb,o);return _.jsx(Po,{present:t||jn(l.checked)||l.checked===!0,children:_.jsx(Ri.span,{"data-state":xb(l.checked),"data-disabled":l.disabled?"":void 0,...u,ref:r,style:{pointerEvents:"none",...a.style}})})});vb.displayName=fb;var kb="CheckboxBubbleInput",wb=B.forwardRef(({__scopeCheckbox:a,...r},o)=>{const{control:t,hasConsumerStoppedPropagationRef:u,checked:l,defaultChecked:m,required:c,disabled:h,name:d,value:y,form:g,bubbleInput:f,setBubbleInput:x}=Qu(kb,a),w=fa(o,x),j=g0(l),v=y0(t);B.useEffect(()=>{const q=f;if(!q)return;const k=window.HTMLInputElement.prototype,S=Object.getOwnPropertyDescriptor(k,"checked").set,D=!u.current;if(j!==l&&S){const T=new Event("click",{bubbles:D});q.indeterminate=jn(l),S.call(q,jn(l)?!1:l),q.dispatchEvent(T)}},[f,j,l,u]);const A=B.useRef(jn(l)?!1:l);return _.jsx(Ri.input,{type:"checkbox","aria-hidden":!0,defaultChecked:m??A.current,required:c,disabled:h,name:d,value:y,form:g,...r,tabIndex:-1,ref:w,style:{...r.style,...v,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});wb.displayName=kb;function k0(a){return typeof a=="function"}function jn(a){return a==="indeterminate"}function xb(a){return jn(a)?"indeterminate":a?"checked":"unchecked"}const zb=B.forwardRef(({className:a,...r},o)=>_.jsx($u,{ref:o,className:Ye("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",a),...r,children:_.jsx(vb,{className:Ye("flex items-center justify-center text-current"),children:_.jsx(hk,{className:"h-4 w-4"})})}));zb.displayName=$u.displayName;function w0({open:a,contacts:r,undecryptedCount:o,onClose:t,onSelectConversation:u,onCreateContact:l,onCreateChannel:m,onCreateHashtagChannel:c}){const[h,d]=B.useState("existing"),[y,g]=B.useState(""),[f,x]=B.useState(""),[w,j]=B.useState(!1),[v,A]=B.useState(""),[q,k]=B.useState(!1),C=B.useRef(null),S=async()=>{A(""),k(!0);try{if(h==="new-contact"){if(!y.trim()||!f.trim()){A("Name and public key are required");return}await l(y.trim(),f.trim(),w),u({type:"contact",id:f.trim(),name:y.trim()})}else if(h==="new-room"){if(!y.trim()||!f.trim()){A("Room name and key are required");return}await m(y.trim(),f.trim(),w)}else if(h==="hashtag"){const O=y.trim(),N=D(O);if(N){A(N);return}await c(`#${O}`,w)}t()}catch(O){A(O instanceof Error?O.message:"Failed to create")}finally{k(!1)}},D=O=>O?/^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$/.test(O)?null:"Use letters, numbers, and single dashes (no leading/trailing dashes)":"Channel name is required",T=async()=>{var R;A("");const O=y.trim(),N=D(O);if(N){A(N);return}k(!0);try{await c(`#${O}`,w),g(""),(R=C.current)==null||R.focus()}catch(V){A(V instanceof Error?V.message:"Failed to create")}finally{k(!1)}},F=h!=="existing"&&o>0;return _.jsx(Wy,{open:a,onOpenChange:O=>!O&&t(),children:_.jsxs(Lu,{className:"sm:max-w-[500px]",children:[_.jsx(Vu,{children:_.jsx(Wu,{children:"New Conversation"})}),_.jsxs(u0,{value:h,onValueChange:O=>d(O),className:"w-full",children:[_.jsxs(mb,{className:"grid w-full grid-cols-4",children:[_.jsx(Dr,{value:"existing",children:"Existing"}),_.jsx(Dr,{value:"new-contact",children:"Contact"}),_.jsx(Dr,{value:"new-room",children:"Room"}),_.jsx(Dr,{value:"hashtag",children:"Hashtag"})]}),_.jsx(Fr,{value:"existing",className:"mt-4",children:_.jsx("div",{className:"max-h-[300px] overflow-y-auto rounded-md border",children:r.length===0?_.jsx("div",{className:"p-4 text-center text-muted-foreground",children:"No contacts available"}):r.map(O=>_.jsx("div",{className:"cursor-pointer px-4 py-2 hover:bg-accent",onClick:()=>{u({type:"contact",id:O.public_key,name:Kn(O.name,O.public_key)}),t()},children:Kn(O.name,O.public_key)},O.public_key))})}),_.jsxs(Fr,{value:"new-contact",className:"mt-4 space-y-4",children:[_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"contact-name",children:"Name"}),_.jsx(zi,{id:"contact-name",value:y,onChange:O=>g(O.target.value),placeholder:"Contact name"})]}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"contact-key",children:"Public Key"}),_.jsx(zi,{id:"contact-key",value:f,onChange:O=>x(O.target.value),placeholder:"64-character hex public key"})]})]}),_.jsxs(Fr,{value:"new-room",className:"mt-4 space-y-4",children:[_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"room-name",children:"Room Name"}),_.jsx(zi,{id:"room-name",value:y,onChange:O=>g(O.target.value),placeholder:"Room name"})]}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"room-key",children:"Room Key"}),_.jsx(zi,{id:"room-key",value:f,onChange:O=>x(O.target.value),placeholder:"Pre-shared key (hex)"})]})]}),_.jsx(Fr,{value:"hashtag",className:"mt-4",children:_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"hashtag-name",children:"Hashtag Channel"}),_.jsxs("div",{className:"flex items-center gap-1",children:[_.jsx("span",{className:"text-sm text-muted-foreground",children:"#"}),_.jsx(zi,{ref:C,id:"hashtag-name",value:y,onChange:O=>g(O.target.value),placeholder:"channel-name",className:"flex-1"})]})]})})]}),F&&_.jsxs("div",{className:"space-y-1",children:[_.jsxs("div",{className:"flex items-center justify-end space-x-2",children:[_.jsxs(xi,{htmlFor:"try-historical",className:"text-sm text-muted-foreground cursor-pointer",children:["Try decrypting ",o.toLocaleString()," stored packet",o!==1?"s":""]}),_.jsx(zb,{id:"try-historical",checked:w,onCheckedChange:O=>j(O===!0)})]}),w&&_.jsx("p",{className:"text-xs text-muted-foreground text-right",children:"Messages will stream in as they decrypt in the background"})]}),v&&_.jsx("div",{className:"text-sm text-destructive",children:v}),_.jsxs(Uu,{children:[_.jsx(Ha,{variant:"outline",onClick:t,children:"Cancel"}),h==="hashtag"&&_.jsx(Ha,{variant:"secondary",onClick:T,disabled:q,children:q?"Creating...":"Create & Add Another"}),h!=="existing"&&_.jsx(Ha,{onClick:S,disabled:q,children:q?"Creating...":"Create"})]})]})})}var x0=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],z0=x0.reduce((a,r)=>{const o=Iu(`Primitive.${r}`),t=B.forwardRef((u,l)=>{const{asChild:m,...c}=u,h=m?o:r;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),_.jsx(h,{...c,ref:l})});return t.displayName=`Primitive.${r}`,{...a,[r]:t}},{}),q0="Separator",kh="horizontal",j0=["horizontal","vertical"],qb=B.forwardRef((a,r)=>{const{decorative:o,orientation:t=kh,...u}=a,l=A0(t)?t:kh,c=o?{role:"none"}:{"aria-orientation":l==="vertical"?l:void 0,role:"separator"};return _.jsx(z0.div,{"data-orientation":l,...c,...u,ref:r})});qb.displayName=q0;function A0(a){return j0.includes(a)}var jb=qb;const st=B.forwardRef(({className:a,orientation:r="horizontal",decorative:o=!0,...t},u)=>_.jsx(jb,{ref:u,decorative:o,orientation:r,className:Ye("shrink-0 bg-border",r==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",a),...t}));st.displayName=jb.displayName;const C0=il("relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",warning:"border-yellow-500/50 bg-yellow-500/10 text-yellow-200 [&>svg]:text-yellow-500"}},defaultVariants:{variant:"default"}}),Ab=B.forwardRef(({className:a,variant:r,...o},t)=>_.jsx("div",{ref:t,role:"alert",className:Ye(C0({variant:r}),a),...o}));Ab.displayName="Alert";const E0=B.forwardRef(({className:a,...r},o)=>_.jsx("h5",{ref:o,className:Ye("mb-1 font-medium leading-none tracking-tight",a),...r}));E0.displayName="AlertTitle";const Cb=B.forwardRef(({className:a,...r},o)=>_.jsx("div",{ref:o,className:Ye("text-sm [&_p]:leading-relaxed",a),...r}));Cb.displayName="AlertDescription";function S0({open:a,config:r,appSettings:o,onClose:t,onSave:u,onSaveAppSettings:l,onSetPrivateKey:m,onReboot:c}){const[h,d]=B.useState(""),[y,g]=B.useState(""),[f,x]=B.useState(""),[w,j]=B.useState(""),[v,A]=B.useState(""),[q,k]=B.useState(""),[C,S]=B.useState(""),[D,T]=B.useState(""),[F,O]=B.useState(""),[N,R]=B.useState(""),[V,H]=B.useState(!1),[$,ae]=B.useState(!1),[J,ie]=B.useState("");B.useEffect(()=>{r&&(d(r.name),g(String(r.lat)),x(String(r.lon)),j(String(r.tx_power)),A(String(r.radio.freq)),k(String(r.radio.bw)),S(String(r.radio.sf)),T(String(r.radio.cr)))},[r]),B.useEffect(()=>{o&&R(String(o.max_radio_contacts))},[o]);const W=async()=>{ie(""),H(!0);try{const z={name:h,lat:parseFloat(y),lon:parseFloat(f),tx_power:parseInt(w,10),radio:{freq:parseFloat(v),bw:parseFloat(q),sf:parseInt(C,10),cr:parseInt(D,10)}};await u(z);const I=parseInt(N,10);!isNaN(I)&&I!==(o==null?void 0:o.max_radio_contacts)&&await l({max_radio_contacts:I}),t()}catch(z){ie(z instanceof Error?z.message:"Failed to save")}finally{H(!1)}},oe=async()=>{if(!F.trim()){ie("Private key is required");return}ie(""),H(!0);try{await m(F.trim()),O(""),t()}catch(z){ie(z instanceof Error?z.message:"Failed to set private key")}finally{H(!1)}},ee=async()=>{if(confirm("Are you sure you want to reboot the radio? The connection will drop temporarily.")){ie(""),ae(!0);try{await c(),t()}catch(z){ie(z instanceof Error?z.message:"Failed to reboot radio")}finally{ae(!1)}}};return _.jsx(Wy,{open:a,onOpenChange:z=>!z&&t(),children:_.jsxs(Lu,{className:"sm:max-w-[500px] max-h-[90vh] overflow-y-auto",children:[_.jsx(Vu,{children:_.jsx(Wu,{children:"Radio Configuration"})}),r?_.jsxs("div",{className:"space-y-4",children:[_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"public-key",children:"Public Key"}),_.jsx(zi,{id:"public-key",value:r.public_key,disabled:!0})]}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"name",children:"Name"}),_.jsx(zi,{id:"name",value:h,onChange:z=>d(z.target.value)})]}),_.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"lat",children:"Latitude"}),_.jsx(zi,{id:"lat",type:"number",step:"any",value:y,onChange:z=>g(z.target.value)})]}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"lon",children:"Longitude"}),_.jsx(zi,{id:"lon",type:"number",step:"any",value:f,onChange:z=>x(z.target.value)})]})]}),_.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"freq",children:"Frequency (MHz)"}),_.jsx(zi,{id:"freq",type:"number",step:"any",value:v,onChange:z=>A(z.target.value)})]}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"bw",children:"Bandwidth (kHz)"}),_.jsx(zi,{id:"bw",type:"number",step:"any",value:q,onChange:z=>k(z.target.value)})]})]}),_.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"sf",children:"Spreading Factor"}),_.jsx(zi,{id:"sf",type:"number",min:"7",max:"12",value:C,onChange:z=>S(z.target.value)})]}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"cr",children:"Coding Rate"}),_.jsx(zi,{id:"cr",type:"number",min:"1",max:"4",value:D,onChange:z=>T(z.target.value)})]})]}),_.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"tx-power",children:"TX Power (dBm)"}),_.jsx(zi,{id:"tx-power",type:"number",value:w,onChange:z=>j(z.target.value)})]}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"max-tx",children:"Max TX Power"}),_.jsx(zi,{id:"max-tx",type:"number",value:r.max_tx_power,disabled:!0})]})]}),_.jsx(st,{className:"my-4"}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"max-contacts",children:"Max Contacts on Radio"}),_.jsx(zi,{id:"max-contacts",type:"number",min:"1",max:"1000",value:N,onChange:z=>R(z.target.value)}),_.jsx("p",{className:"text-xs text-muted-foreground",children:"Recent non-repeater contacts loaded to radio for DM auto-ACK (1-1000)"})]}),_.jsx(st,{className:"my-4"}),_.jsxs("div",{className:"space-y-2",children:[_.jsx(xi,{htmlFor:"private-key",children:"Set Private Key (write-only)"}),_.jsxs("div",{className:"flex gap-2",children:[_.jsx(zi,{id:"private-key",type:"password",value:F,onChange:z=>O(z.target.value),placeholder:"64-character hex private key",className:"flex-1"}),_.jsx(Ha,{onClick:oe,disabled:V||!F.trim(),children:"Set"})]})]}),_.jsx(st,{className:"my-4"}),_.jsxs("div",{className:"space-y-3",children:[_.jsx(xi,{children:"Reboot Radio"}),_.jsx(Ab,{variant:"warning",children:_.jsx(Cb,{children:"Some configuration changes (like name) require a radio reboot to take effect. The connection will temporarily drop and automatically reconnect."})}),_.jsx(Ha,{variant:"outline",onClick:ee,disabled:$||V,className:"border-yellow-500/50 text-yellow-200 hover:bg-yellow-500/10",children:$?"Rebooting...":"Reboot Radio"})]}),J&&_.jsx("div",{className:"text-sm text-destructive",children:J})]}):_.jsx("div",{className:"py-8 text-center text-muted-foreground",children:"Loading configuration..."}),_.jsxs(Uu,{children:[_.jsx(Ha,{variant:"outline",onClick:t,children:"Cancel"}),_.jsx(Ha,{onClick:W,disabled:V||!r,children:V?"Saving...":"Save Config"})]})]})})}function B0(a){return new Date(a*1e3).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function wh(a){return a.split("_").map(r=>r.charAt(0)+r.slice(1).toLowerCase()).join(" ")}function _0(a){if(!a.decrypted||!a.decrypted_info)return wh(a.payload_type);const r=a.decrypted_info;return a.payload_type==="GROUP_TEXT"&&r.channel_name?`GroupText to ${r.channel_name}`:a.payload_type==="TEXT_MESSAGE"&&r.sender?`TextMessage from ${r.sender}`:wh(a.payload_type)}function D0(a){const r=[];return a.snr!==null&&a.snr!==void 0&&r.push(`SNR: ${a.snr.toFixed(1)} dB`),a.rssi!==null&&a.rssi!==void 0&&r.push(`RSSI: ${a.rssi} dBm`),r.join(" | ")}function F0({packets:a}){const r=B.useRef(null);if(B.useEffect(()=>{r.current&&(r.current.scrollTop=r.current.scrollHeight)},[a]),a.length===0)return _.jsx("div",{className:"h-full overflow-y-auto p-5 text-center text-muted-foreground",children:"No packets received yet. Packets will appear here in real-time."});const o=[...a].sort((t,u)=>t.timestamp-u.timestamp);return _.jsx("div",{className:"h-full overflow-y-auto p-4 flex flex-col gap-3",ref:r,children:o.map(t=>_.jsxs("div",{className:"py-2 px-3 bg-muted rounded",children:[_.jsxs("div",{className:t.decrypted?"text-primary":"text-destructive",children:[!t.decrypted&&_.jsx("span",{className:"mr-1",children:"🔒"}),_0(t)," • ",B0(t.timestamp)]}),(t.snr!==null||t.rssi!==null)&&_.jsx("div",{className:"text-[11px] text-muted-foreground mt-0.5",children:D0(t)}),_.jsx("div",{className:"font-mono text-[11px] break-all text-muted-foreground/70 mt-1",children:t.data.toUpperCase()})]},t.id))})}var Xa={},vr={},Ii={},xh;function ua(){if(xh)return Ii;xh=1,Object.defineProperty(Ii,"__esModule",{value:!0}),Ii.RequestType=Ii.AdvertFlags=Ii.DeviceRole=Ii.PayloadVersion=Ii.ControlSubType=Ii.PayloadType=Ii.RouteType=void 0;var a;(function(c){c[c.TransportFlood=0]="TransportFlood",c[c.Flood=1]="Flood",c[c.Direct=2]="Direct",c[c.TransportDirect=3]="TransportDirect"})(a||(Ii.RouteType=a={}));var r;(function(c){c[c.Request=0]="Request",c[c.Response=1]="Response",c[c.TextMessage=2]="TextMessage",c[c.Ack=3]="Ack",c[c.Advert=4]="Advert",c[c.GroupText=5]="GroupText",c[c.GroupData=6]="GroupData",c[c.AnonRequest=7]="AnonRequest",c[c.Path=8]="Path",c[c.Trace=9]="Trace",c[c.Multipart=10]="Multipart",c[c.Control=11]="Control",c[c.RawCustom=15]="RawCustom"})(r||(Ii.PayloadType=r={}));var o;(function(c){c[c.NodeDiscoverReq=128]="NodeDiscoverReq",c[c.NodeDiscoverResp=144]="NodeDiscoverResp"})(o||(Ii.ControlSubType=o={}));var t;(function(c){c[c.Version1=0]="Version1",c[c.Version2=1]="Version2",c[c.Version3=2]="Version3",c[c.Version4=3]="Version4"})(t||(Ii.PayloadVersion=t={}));var u;(function(c){c[c.Unknown=0]="Unknown",c[c.ChatNode=1]="ChatNode",c[c.Repeater=2]="Repeater",c[c.RoomServer=3]="RoomServer",c[c.Sensor=4]="Sensor"})(u||(Ii.DeviceRole=u={}));var l;(function(c){c[c.HasLocation=16]="HasLocation",c[c.HasFeature1=32]="HasFeature1",c[c.HasFeature2=64]="HasFeature2",c[c.HasName=128]="HasName"})(l||(Ii.AdvertFlags=l={}));var m;return(function(c){c[c.GetStats=1]="GetStats",c[c.Keepalive=2]="Keepalive",c[c.GetTelemetryData=3]="GetTelemetryData",c[c.GetMinMaxAvgData=4]="GetMinMaxAvgData",c[c.GetAccessList=5]="GetAccessList"})(m||(Ii.RequestType=m={})),Ii}var Vn={},zh;function Mi(){if(zh)return Vn;zh=1,Object.defineProperty(Vn,"__esModule",{value:!0}),Vn.byteToHex=a,Vn.bytesToHex=r,Vn.numberToHex=o,Vn.hexToBytes=t;function a(u){return u.toString(16).padStart(2,"0").toUpperCase()}function r(u){return Array.from(u).map(a).join("")}function o(u,l=8){return(u>>>0).toString(16).padStart(l,"0").toUpperCase()}function t(u){const l=u.replace(/\s/g,"").toUpperCase();if(!/^[0-9A-F]*$/.test(l))throw new Error("Invalid hex string: invalid characters at position 0");if(l.length%2!==0)throw new Error("Invalid hex string: odd length");const m=new Uint8Array(l.length/2);for(let c=0;c>>2]>>>24-T%4*8&255;k[S+T>>>2]|=F<<24-(S+T)%4*8}else for(var O=0;O>>2]=C[O>>>2];return this.sigBytes+=D,this},clamp:function(){var q=this.words,k=this.sigBytes;q[k>>>2]&=4294967295<<32-k%4*8,q.length=t.ceil(k/4)},clone:function(){var q=y.clone.call(this);return q.words=this.words.slice(0),q},random:function(q){for(var k=[],C=0;C>>2]>>>24-D%4*8&255;S.push((T>>>4).toString(16)),S.push((T&15).toString(16))}return S.join("")},parse:function(q){for(var k=q.length,C=[],S=0;S>>3]|=parseInt(q.substr(S,2),16)<<24-S%8*4;return new g.init(C,k/2)}},w=f.Latin1={stringify:function(q){for(var k=q.words,C=q.sigBytes,S=[],D=0;D>>2]>>>24-D%4*8&255;S.push(String.fromCharCode(T))}return S.join("")},parse:function(q){for(var k=q.length,C=[],S=0;S>>2]|=(q.charCodeAt(S)&255)<<24-S%4*8;return new g.init(C,k)}},j=f.Utf8={stringify:function(q){try{return decodeURIComponent(escape(w.stringify(q)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(q){return w.parse(unescape(encodeURIComponent(q)))}},v=d.BufferedBlockAlgorithm=y.extend({reset:function(){this._data=new g.init,this._nDataBytes=0},_append:function(q){typeof q=="string"&&(q=j.parse(q)),this._data.concat(q),this._nDataBytes+=q.sigBytes},_process:function(q){var k,C=this._data,S=C.words,D=C.sigBytes,T=this.blockSize,F=T*4,O=D/F;q?O=t.ceil(O):O=t.max((O|0)-this._minBufferSize,0);var N=O*T,R=t.min(N*4,D);if(N){for(var V=0;V>>2]|=h[g]<<24-g%4*8;m.call(this,y,d)}else m.apply(this,arguments)};c.prototype=l}})(),o.lib.WordArray})})(ut)),ut.exports}var dt={exports:{}},O0=dt.exports,Eh;function H0(){return Eh||(Eh=1,(function(a,r){(function(o,t){a.exports=t(He())})(O0,function(o){return(function(){var t=o,u=t.lib,l=u.WordArray,m=t.enc;m.Utf16=m.Utf16BE={stringify:function(h){for(var d=h.words,y=h.sigBytes,g=[],f=0;f>>2]>>>16-f%4*8&65535;g.push(String.fromCharCode(x))}return g.join("")},parse:function(h){for(var d=h.length,y=[],g=0;g>>1]|=h.charCodeAt(g)<<16-g%2*16;return l.create(y,d*2)}},m.Utf16LE={stringify:function(h){for(var d=h.words,y=h.sigBytes,g=[],f=0;f>>2]>>>16-f%4*8&65535);g.push(String.fromCharCode(x))}return g.join("")},parse:function(h){for(var d=h.length,y=[],g=0;g>>1]|=c(h.charCodeAt(g)<<16-g%2*16);return l.create(y,d*2)}};function c(h){return h<<8&4278255360|h>>>8&16711935}})(),o.enc.Utf16})})(dt)),dt.exports}var pt={exports:{}},L0=pt.exports,Sh;function Xn(){return Sh||(Sh=1,(function(a,r){(function(o,t){a.exports=t(He())})(L0,function(o){return(function(){var t=o,u=t.lib,l=u.WordArray,m=t.enc;m.Base64={stringify:function(h){var d=h.words,y=h.sigBytes,g=this._map;h.clamp();for(var f=[],x=0;x>>2]>>>24-x%4*8&255,j=d[x+1>>>2]>>>24-(x+1)%4*8&255,v=d[x+2>>>2]>>>24-(x+2)%4*8&255,A=w<<16|j<<8|v,q=0;q<4&&x+q*.75>>6*(3-q)&63));var k=g.charAt(64);if(k)for(;f.length%4;)f.push(k);return f.join("")},parse:function(h){var d=h.length,y=this._map,g=this._reverseMap;if(!g){g=this._reverseMap=[];for(var f=0;f>>6-x%4*2,v=w|j;g[f>>>2]|=v<<24-f%4*8,f++}return l.create(g,f)}})(),o.enc.Base64})})(pt)),pt.exports}var mt={exports:{}},V0=mt.exports,Bh;function U0(){return Bh||(Bh=1,(function(a,r){(function(o,t){a.exports=t(He())})(V0,function(o){return(function(){var t=o,u=t.lib,l=u.WordArray,m=t.enc;m.Base64url={stringify:function(h,d){d===void 0&&(d=!0);var y=h.words,g=h.sigBytes,f=d?this._safe_map:this._map;h.clamp();for(var x=[],w=0;w>>2]>>>24-w%4*8&255,v=y[w+1>>>2]>>>24-(w+1)%4*8&255,A=y[w+2>>>2]>>>24-(w+2)%4*8&255,q=j<<16|v<<8|A,k=0;k<4&&w+k*.75>>6*(3-k)&63));var C=f.charAt(64);if(C)for(;x.length%4;)x.push(C);return x.join("")},parse:function(h,d){d===void 0&&(d=!0);var y=h.length,g=d?this._safe_map:this._map,f=this._reverseMap;if(!f){f=this._reverseMap=[];for(var x=0;x>>6-x%4*2,v=w|j;g[f>>>2]|=v<<24-f%4*8,f++}return l.create(g,f)}})(),o.enc.Base64url})})(mt)),mt.exports}var ht={exports:{}},W0=ht.exports,_h;function Jn(){return _h||(_h=1,(function(a,r){(function(o,t){a.exports=t(He())})(W0,function(o){return(function(t){var u=o,l=u.lib,m=l.WordArray,c=l.Hasher,h=u.algo,d=[];(function(){for(var j=0;j<64;j++)d[j]=t.abs(t.sin(j+1))*4294967296|0})();var y=h.MD5=c.extend({_doReset:function(){this._hash=new m.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(j,v){for(var A=0;A<16;A++){var q=v+A,k=j[q];j[q]=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360}var C=this._hash.words,S=j[v+0],D=j[v+1],T=j[v+2],F=j[v+3],O=j[v+4],N=j[v+5],R=j[v+6],V=j[v+7],H=j[v+8],$=j[v+9],ae=j[v+10],J=j[v+11],ie=j[v+12],W=j[v+13],oe=j[v+14],ee=j[v+15],z=C[0],I=C[1],L=C[2],G=C[3];z=g(z,I,L,G,S,7,d[0]),G=g(G,z,I,L,D,12,d[1]),L=g(L,G,z,I,T,17,d[2]),I=g(I,L,G,z,F,22,d[3]),z=g(z,I,L,G,O,7,d[4]),G=g(G,z,I,L,N,12,d[5]),L=g(L,G,z,I,R,17,d[6]),I=g(I,L,G,z,V,22,d[7]),z=g(z,I,L,G,H,7,d[8]),G=g(G,z,I,L,$,12,d[9]),L=g(L,G,z,I,ae,17,d[10]),I=g(I,L,G,z,J,22,d[11]),z=g(z,I,L,G,ie,7,d[12]),G=g(G,z,I,L,W,12,d[13]),L=g(L,G,z,I,oe,17,d[14]),I=g(I,L,G,z,ee,22,d[15]),z=f(z,I,L,G,D,5,d[16]),G=f(G,z,I,L,R,9,d[17]),L=f(L,G,z,I,J,14,d[18]),I=f(I,L,G,z,S,20,d[19]),z=f(z,I,L,G,N,5,d[20]),G=f(G,z,I,L,ae,9,d[21]),L=f(L,G,z,I,ee,14,d[22]),I=f(I,L,G,z,O,20,d[23]),z=f(z,I,L,G,$,5,d[24]),G=f(G,z,I,L,oe,9,d[25]),L=f(L,G,z,I,F,14,d[26]),I=f(I,L,G,z,H,20,d[27]),z=f(z,I,L,G,W,5,d[28]),G=f(G,z,I,L,T,9,d[29]),L=f(L,G,z,I,V,14,d[30]),I=f(I,L,G,z,ie,20,d[31]),z=x(z,I,L,G,N,4,d[32]),G=x(G,z,I,L,H,11,d[33]),L=x(L,G,z,I,J,16,d[34]),I=x(I,L,G,z,oe,23,d[35]),z=x(z,I,L,G,D,4,d[36]),G=x(G,z,I,L,O,11,d[37]),L=x(L,G,z,I,V,16,d[38]),I=x(I,L,G,z,ae,23,d[39]),z=x(z,I,L,G,W,4,d[40]),G=x(G,z,I,L,S,11,d[41]),L=x(L,G,z,I,F,16,d[42]),I=x(I,L,G,z,R,23,d[43]),z=x(z,I,L,G,$,4,d[44]),G=x(G,z,I,L,ie,11,d[45]),L=x(L,G,z,I,ee,16,d[46]),I=x(I,L,G,z,T,23,d[47]),z=w(z,I,L,G,S,6,d[48]),G=w(G,z,I,L,V,10,d[49]),L=w(L,G,z,I,oe,15,d[50]),I=w(I,L,G,z,N,21,d[51]),z=w(z,I,L,G,ie,6,d[52]),G=w(G,z,I,L,F,10,d[53]),L=w(L,G,z,I,ae,15,d[54]),I=w(I,L,G,z,D,21,d[55]),z=w(z,I,L,G,H,6,d[56]),G=w(G,z,I,L,ee,10,d[57]),L=w(L,G,z,I,R,15,d[58]),I=w(I,L,G,z,W,21,d[59]),z=w(z,I,L,G,O,6,d[60]),G=w(G,z,I,L,J,10,d[61]),L=w(L,G,z,I,T,15,d[62]),I=w(I,L,G,z,$,21,d[63]),C[0]=C[0]+z|0,C[1]=C[1]+I|0,C[2]=C[2]+L|0,C[3]=C[3]+G|0},_doFinalize:function(){var j=this._data,v=j.words,A=this._nDataBytes*8,q=j.sigBytes*8;v[q>>>5]|=128<<24-q%32;var k=t.floor(A/4294967296),C=A;v[(q+64>>>9<<4)+15]=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360,v[(q+64>>>9<<4)+14]=(C<<8|C>>>24)&16711935|(C<<24|C>>>8)&4278255360,j.sigBytes=(v.length+1)*4,this._process();for(var S=this._hash,D=S.words,T=0;T<4;T++){var F=D[T];D[T]=(F<<8|F>>>24)&16711935|(F<<24|F>>>8)&4278255360}return S},clone:function(){var j=c.clone.call(this);return j._hash=this._hash.clone(),j}});function g(j,v,A,q,k,C,S){var D=j+(v&A|~v&q)+k+S;return(D<>>32-C)+v}function f(j,v,A,q,k,C,S){var D=j+(v&q|A&~q)+k+S;return(D<>>32-C)+v}function x(j,v,A,q,k,C,S){var D=j+(v^A^q)+k+S;return(D<>>32-C)+v}function w(j,v,A,q,k,C,S){var D=j+(A^(v|~q))+k+S;return(D<>>32-C)+v}u.MD5=c._createHelper(y),u.HmacMD5=c._createHmacHelper(y)})(Math),o.MD5})})(ht)),ht.exports}var gt={exports:{}},G0=gt.exports,Dh;function Eb(){return Dh||(Dh=1,(function(a,r){(function(o,t){a.exports=t(He())})(G0,function(o){return(function(){var t=o,u=t.lib,l=u.WordArray,m=u.Hasher,c=t.algo,h=[],d=c.SHA1=m.extend({_doReset:function(){this._hash=new l.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(y,g){for(var f=this._hash.words,x=f[0],w=f[1],j=f[2],v=f[3],A=f[4],q=0;q<80;q++){if(q<16)h[q]=y[g+q]|0;else{var k=h[q-3]^h[q-8]^h[q-14]^h[q-16];h[q]=k<<1|k>>>31}var C=(x<<5|x>>>27)+A+h[q];q<20?C+=(w&j|~w&v)+1518500249:q<40?C+=(w^j^v)+1859775393:q<60?C+=(w&j|w&v|j&v)-1894007588:C+=(w^j^v)-899497514,A=v,v=j,j=w<<30|w>>>2,w=x,x=C}f[0]=f[0]+x|0,f[1]=f[1]+w|0,f[2]=f[2]+j|0,f[3]=f[3]+v|0,f[4]=f[4]+A|0},_doFinalize:function(){var y=this._data,g=y.words,f=this._nDataBytes*8,x=y.sigBytes*8;return g[x>>>5]|=128<<24-x%32,g[(x+64>>>9<<4)+14]=Math.floor(f/4294967296),g[(x+64>>>9<<4)+15]=f,y.sigBytes=g.length*4,this._process(),this._hash},clone:function(){var y=m.clone.call(this);return y._hash=this._hash.clone(),y}});t.SHA1=m._createHelper(d),t.HmacSHA1=m._createHmacHelper(d)})(),o.SHA1})})(gt)),gt.exports}var yt={exports:{}},Q0=yt.exports,Fh;function Vr(){return Fh||(Fh=1,(function(a,r){(function(o,t){a.exports=t(He())})(Q0,function(o){return(function(t){var u=o,l=u.lib,m=l.WordArray,c=l.Hasher,h=u.algo,d=[],y=[];(function(){function x(A){for(var q=t.sqrt(A),k=2;k<=q;k++)if(!(A%k))return!1;return!0}function w(A){return(A-(A|0))*4294967296|0}for(var j=2,v=0;v<64;)x(j)&&(v<8&&(d[v]=w(t.pow(j,1/2))),y[v]=w(t.pow(j,1/3)),v++),j++})();var g=[],f=h.SHA256=c.extend({_doReset:function(){this._hash=new m.init(d.slice(0))},_doProcessBlock:function(x,w){for(var j=this._hash.words,v=j[0],A=j[1],q=j[2],k=j[3],C=j[4],S=j[5],D=j[6],T=j[7],F=0;F<64;F++){if(F<16)g[F]=x[w+F]|0;else{var O=g[F-15],N=(O<<25|O>>>7)^(O<<14|O>>>18)^O>>>3,R=g[F-2],V=(R<<15|R>>>17)^(R<<13|R>>>19)^R>>>10;g[F]=N+g[F-7]+V+g[F-16]}var H=C&S^~C&D,$=v&A^v&q^A&q,ae=(v<<30|v>>>2)^(v<<19|v>>>13)^(v<<10|v>>>22),J=(C<<26|C>>>6)^(C<<21|C>>>11)^(C<<7|C>>>25),ie=T+J+H+y[F]+g[F],W=ae+$;T=D,D=S,S=C,C=k+ie|0,k=q,q=A,A=v,v=ie+W|0}j[0]=j[0]+v|0,j[1]=j[1]+A|0,j[2]=j[2]+q|0,j[3]=j[3]+k|0,j[4]=j[4]+C|0,j[5]=j[5]+S|0,j[6]=j[6]+D|0,j[7]=j[7]+T|0},_doFinalize:function(){var x=this._data,w=x.words,j=this._nDataBytes*8,v=x.sigBytes*8;return w[v>>>5]|=128<<24-v%32,w[(v+64>>>9<<4)+14]=t.floor(j/4294967296),w[(v+64>>>9<<4)+15]=j,x.sigBytes=w.length*4,this._process(),this._hash},clone:function(){var x=c.clone.call(this);return x._hash=this._hash.clone(),x}});u.SHA256=c._createHelper(f),u.HmacSHA256=c._createHmacHelper(f)})(Math),o.SHA256})})(yt)),yt.exports}var bt={exports:{}},$0=bt.exports,Rh;function K0(){return Rh||(Rh=1,(function(a,r){(function(o,t,u){a.exports=t(He(),Vr())})($0,function(o){return(function(){var t=o,u=t.lib,l=u.WordArray,m=t.algo,c=m.SHA256,h=m.SHA224=c.extend({_doReset:function(){this._hash=new l.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var d=c._doFinalize.call(this);return d.sigBytes-=4,d}});t.SHA224=c._createHelper(h),t.HmacSHA224=c._createHmacHelper(h)})(),o.SHA224})})(bt)),bt.exports}var ft={exports:{}},Y0=ft.exports,Th;function Sb(){return Th||(Th=1,(function(a,r){(function(o,t,u){a.exports=t(He(),dl())})(Y0,function(o){return(function(){var t=o,u=t.lib,l=u.Hasher,m=t.x64,c=m.Word,h=m.WordArray,d=t.algo;function y(){return c.create.apply(c,arguments)}var g=[y(1116352408,3609767458),y(1899447441,602891725),y(3049323471,3964484399),y(3921009573,2173295548),y(961987163,4081628472),y(1508970993,3053834265),y(2453635748,2937671579),y(2870763221,3664609560),y(3624381080,2734883394),y(310598401,1164996542),y(607225278,1323610764),y(1426881987,3590304994),y(1925078388,4068182383),y(2162078206,991336113),y(2614888103,633803317),y(3248222580,3479774868),y(3835390401,2666613458),y(4022224774,944711139),y(264347078,2341262773),y(604807628,2007800933),y(770255983,1495990901),y(1249150122,1856431235),y(1555081692,3175218132),y(1996064986,2198950837),y(2554220882,3999719339),y(2821834349,766784016),y(2952996808,2566594879),y(3210313671,3203337956),y(3336571891,1034457026),y(3584528711,2466948901),y(113926993,3758326383),y(338241895,168717936),y(666307205,1188179964),y(773529912,1546045734),y(1294757372,1522805485),y(1396182291,2643833823),y(1695183700,2343527390),y(1986661051,1014477480),y(2177026350,1206759142),y(2456956037,344077627),y(2730485921,1290863460),y(2820302411,3158454273),y(3259730800,3505952657),y(3345764771,106217008),y(3516065817,3606008344),y(3600352804,1432725776),y(4094571909,1467031594),y(275423344,851169720),y(430227734,3100823752),y(506948616,1363258195),y(659060556,3750685593),y(883997877,3785050280),y(958139571,3318307427),y(1322822218,3812723403),y(1537002063,2003034995),y(1747873779,3602036899),y(1955562222,1575990012),y(2024104815,1125592928),y(2227730452,2716904306),y(2361852424,442776044),y(2428436474,593698344),y(2756734187,3733110249),y(3204031479,2999351573),y(3329325298,3815920427),y(3391569614,3928383900),y(3515267271,566280711),y(3940187606,3454069534),y(4118630271,4000239992),y(116418474,1914138554),y(174292421,2731055270),y(289380356,3203993006),y(460393269,320620315),y(685471733,587496836),y(852142971,1086792851),y(1017036298,365543100),y(1126000580,2618297676),y(1288033470,3409855158),y(1501505948,4234509866),y(1607167915,987167468),y(1816402316,1246189591)],f=[];(function(){for(var w=0;w<80;w++)f[w]=y()})();var x=d.SHA512=l.extend({_doReset:function(){this._hash=new h.init([new c.init(1779033703,4089235720),new c.init(3144134277,2227873595),new c.init(1013904242,4271175723),new c.init(2773480762,1595750129),new c.init(1359893119,2917565137),new c.init(2600822924,725511199),new c.init(528734635,4215389547),new c.init(1541459225,327033209)])},_doProcessBlock:function(w,j){for(var v=this._hash.words,A=v[0],q=v[1],k=v[2],C=v[3],S=v[4],D=v[5],T=v[6],F=v[7],O=A.high,N=A.low,R=q.high,V=q.low,H=k.high,$=k.low,ae=C.high,J=C.low,ie=S.high,W=S.low,oe=D.high,ee=D.low,z=T.high,I=T.low,L=F.high,G=F.low,ue=O,he=N,ge=R,re=V,le=H,je=$,Te=ae,Xe=J,ai=ie,Ue=W,We=oe,Le=ee,Je=z,$e=I,ni=L,fi=G,ti=0;ti<80;ti++){var Ge,hi,$i=f[ti];if(ti<16)hi=$i.high=w[j+ti*2]|0,Ge=$i.low=w[j+ti*2+1]|0;else{var va=f[ti-15],qi=va.high,Oi=va.low,Ki=(qi>>>1|Oi<<31)^(qi>>>8|Oi<<24)^qi>>>7,oa=(Oi>>>1|qi<<31)^(Oi>>>8|qi<<24)^(Oi>>>7|qi<<25),ji=f[ti-2],ui=ji.high,Z=ji.low,de=(ui>>>19|Z<<13)^(ui<<3|Z>>>29)^ui>>>6,ze=(Z>>>19|ui<<13)^(Z<<3|ui>>>29)^(Z>>>6|ui<<26),K=f[ti-7],ne=K.high,ye=K.low,De=f[ti-16],Be=De.high,Pe=De.low;Ge=oa+ye,hi=Ki+ne+(Ge>>>0>>0?1:0),Ge=Ge+ze,hi=hi+de+(Ge>>>0>>0?1:0),Ge=Ge+Pe,hi=hi+Be+(Ge>>>0>>0?1:0),$i.high=hi,$i.low=Ge}var Fe=ai&We^~ai&Je,Re=Ue&Le^~Ue&$e,Ai=ue&ge^ue&le^ge&le,Ae=he&re^he&je^re&je,Me=(ue>>>28|he<<4)^(ue<<30|he>>>2)^(ue<<25|he>>>7),Ve=(he>>>28|ue<<4)^(he<<30|ue>>>2)^(he<<25|ue>>>7),gi=(ai>>>14|Ue<<18)^(ai>>>18|Ue<<14)^(ai<<23|Ue>>>9),da=(Ue>>>14|ai<<18)^(Ue>>>18|ai<<14)^(Ue<<23|ai>>>9),Oe=g[ti],oi=Oe.high,ka=Oe.low,Ze=fi+da,yi=ni+gi+(Ze>>>0>>0?1:0),Ze=Ze+Re,yi=yi+Fe+(Ze>>>0>>0?1:0),Ze=Ze+ka,yi=yi+oi+(Ze>>>0>>0?1:0),Ze=Ze+Ge,yi=yi+hi+(Ze>>>0>>0?1:0),wa=Ve+Ae,Yi=Me+Ai+(wa>>>0>>0?1:0);ni=Je,fi=$e,Je=We,$e=Le,We=ai,Le=Ue,Ue=Xe+Ze|0,ai=Te+yi+(Ue>>>0>>0?1:0)|0,Te=le,Xe=je,le=ge,je=re,ge=ue,re=he,he=Ze+wa|0,ue=yi+Yi+(he>>>0>>0?1:0)|0}N=A.low=N+he,A.high=O+ue+(N>>>0>>0?1:0),V=q.low=V+re,q.high=R+ge+(V>>>0>>0?1:0),$=k.low=$+je,k.high=H+le+($>>>0>>0?1:0),J=C.low=J+Xe,C.high=ae+Te+(J>>>0>>0?1:0),W=S.low=W+Ue,S.high=ie+ai+(W>>>0>>0?1:0),ee=D.low=ee+Le,D.high=oe+We+(ee>>>0>>0?1:0),I=T.low=I+$e,T.high=z+Je+(I>>>0<$e>>>0?1:0),G=F.low=G+fi,F.high=L+ni+(G>>>0>>0?1:0)},_doFinalize:function(){var w=this._data,j=w.words,v=this._nDataBytes*8,A=w.sigBytes*8;j[A>>>5]|=128<<24-A%32,j[(A+128>>>10<<5)+30]=Math.floor(v/4294967296),j[(A+128>>>10<<5)+31]=v,w.sigBytes=j.length*4,this._process();var q=this._hash.toX32();return q},clone:function(){var w=l.clone.call(this);return w._hash=this._hash.clone(),w},blockSize:1024/32});t.SHA512=l._createHelper(x),t.HmacSHA512=l._createHmacHelper(x)})(),o.SHA512})})(ft)),ft.exports}var vt={exports:{}},Z0=vt.exports,Ph;function X0(){return Ph||(Ph=1,(function(a,r){(function(o,t,u){a.exports=t(He(),dl(),Sb())})(Z0,function(o){return(function(){var t=o,u=t.x64,l=u.Word,m=u.WordArray,c=t.algo,h=c.SHA512,d=c.SHA384=h.extend({_doReset:function(){this._hash=new m.init([new l.init(3418070365,3238371032),new l.init(1654270250,914150663),new l.init(2438529370,812702999),new l.init(355462360,4144912697),new l.init(1731405415,4290775857),new l.init(2394180231,1750603025),new l.init(3675008525,1694076839),new l.init(1203062813,3204075428)])},_doFinalize:function(){var y=h._doFinalize.call(this);return y.sigBytes-=16,y}});t.SHA384=h._createHelper(d),t.HmacSHA384=h._createHmacHelper(d)})(),o.SHA384})})(vt)),vt.exports}var kt={exports:{}},J0=kt.exports,Nh;function eq(){return Nh||(Nh=1,(function(a,r){(function(o,t,u){a.exports=t(He(),dl())})(J0,function(o){return(function(t){var u=o,l=u.lib,m=l.WordArray,c=l.Hasher,h=u.x64,d=h.Word,y=u.algo,g=[],f=[],x=[];(function(){for(var v=1,A=0,q=0;q<24;q++){g[v+5*A]=(q+1)*(q+2)/2%64;var k=A%5,C=(2*v+3*A)%5;v=k,A=C}for(var v=0;v<5;v++)for(var A=0;A<5;A++)f[v+5*A]=A+(2*v+3*A)%5*5;for(var S=1,D=0;D<24;D++){for(var T=0,F=0,O=0;O<7;O++){if(S&1){var N=(1<>>24)&16711935|(S<<24|S>>>8)&4278255360,D=(D<<8|D>>>24)&16711935|(D<<24|D>>>8)&4278255360;var T=q[C];T.high^=D,T.low^=S}for(var F=0;F<24;F++){for(var O=0;O<5;O++){for(var N=0,R=0,V=0;V<5;V++){var T=q[O+5*V];N^=T.high,R^=T.low}var H=w[O];H.high=N,H.low=R}for(var O=0;O<5;O++)for(var $=w[(O+4)%5],ae=w[(O+1)%5],J=ae.high,ie=ae.low,N=$.high^(J<<1|ie>>>31),R=$.low^(ie<<1|J>>>31),V=0;V<5;V++){var T=q[O+5*V];T.high^=N,T.low^=R}for(var W=1;W<25;W++){var N,R,T=q[W],oe=T.high,ee=T.low,z=g[W];z<32?(N=oe<>>32-z,R=ee<>>32-z):(N=ee<>>64-z,R=oe<>>64-z);var I=w[f[W]];I.high=N,I.low=R}var L=w[0],G=q[0];L.high=G.high,L.low=G.low;for(var O=0;O<5;O++)for(var V=0;V<5;V++){var W=O+5*V,T=q[W],ue=w[W],he=w[(O+1)%5+5*V],ge=w[(O+2)%5+5*V];T.high=ue.high^~he.high&ge.high,T.low=ue.low^~he.low&ge.low}var T=q[0],re=x[F];T.high^=re.high,T.low^=re.low}},_doFinalize:function(){var v=this._data,A=v.words;this._nDataBytes*8;var q=v.sigBytes*8,k=this.blockSize*32;A[q>>>5]|=1<<24-q%32,A[(t.ceil((q+1)/k)*k>>>5)-1]|=128,v.sigBytes=A.length*4,this._process();for(var C=this._state,S=this.cfg.outputLength/8,D=S/8,T=[],F=0;F>>24)&16711935|(N<<24|N>>>8)&4278255360,R=(R<<8|R>>>24)&16711935|(R<<24|R>>>8)&4278255360,T.push(R),T.push(N)}return new m.init(T,S)},clone:function(){for(var v=c.clone.call(this),A=v._state=this._state.slice(0),q=0;q<25;q++)A[q]=A[q].clone();return v}});u.SHA3=c._createHelper(j),u.HmacSHA3=c._createHmacHelper(j)})(Math),o.SHA3})})(kt)),kt.exports}var wt={exports:{}},iq=wt.exports,Ih;function aq(){return Ih||(Ih=1,(function(a,r){(function(o,t){a.exports=t(He())})(iq,function(o){/** @preserve (c) 2012 by Cédric Mesnil. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -126,17 +126,17 @@ For more information, see https://radix-ui.com/primitives/docs/components/${r.do - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */return(function(t){var u=o,l=u.lib,m=l.WordArray,c=l.Hasher,h=u.algo,d=m.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),y=m.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),g=m.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),f=m.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),x=m.create([0,1518500249,1859775393,2400959708,2840853838]),w=m.create([1352829926,1548603684,1836072691,2053994217,0]),j=h.RIPEMD160=c.extend({_doReset:function(){this._hash=m.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(D,T){for(var F=0;F<16;F++){var O=T+F,N=D[O];D[O]=(N<<8|N>>>24)&16711935|(N<<24|N>>>8)&4278255360}var R=this._hash.words,V=x.words,H=w.words,$=d.words,ae=y.words,J=g.words,ie=f.words,W,oe,ee,z,I,L,G,ue,he,ge;L=W=R[0],G=oe=R[1],ue=ee=R[2],he=z=R[3],ge=I=R[4];for(var re,F=0;F<80;F+=1)re=W+D[T+$[F]]|0,F<16?re+=v(oe,ee,z)+V[0]:F<32?re+=A(oe,ee,z)+V[1]:F<48?re+=q(oe,ee,z)+V[2]:F<64?re+=k(oe,ee,z)+V[3]:re+=C(oe,ee,z)+V[4],re=re|0,re=S(re,J[F]),re=re+I|0,W=I,I=z,z=S(ee,10),ee=oe,oe=re,re=L+D[T+ae[F]]|0,F<16?re+=C(G,ue,he)+H[0]:F<32?re+=k(G,ue,he)+H[1]:F<48?re+=q(G,ue,he)+H[2]:F<64?re+=A(G,ue,he)+H[3]:re+=v(G,ue,he)+H[4],re=re|0,re=S(re,ie[F]),re=re+ge|0,L=ge,ge=he,he=S(ue,10),ue=G,G=re;re=R[1]+ee+he|0,R[1]=R[2]+z+ge|0,R[2]=R[3]+I+L|0,R[3]=R[4]+W+G|0,R[4]=R[0]+oe+ue|0,R[0]=re},_doFinalize:function(){var D=this._data,T=D.words,F=this._nDataBytes*8,O=D.sigBytes*8;T[O>>>5]|=128<<24-O%32,T[(O+64>>>9<<4)+14]=(F<<8|F>>>24)&16711935|(F<<24|F>>>8)&4278255360,D.sigBytes=(T.length+1)*4,this._process();for(var N=this._hash,R=N.words,V=0;V<5;V++){var H=R[V];R[V]=(H<<8|H>>>24)&16711935|(H<<24|H>>>8)&4278255360}return N},clone:function(){var D=c.clone.call(this);return D._hash=this._hash.clone(),D}});function v(D,T,F){return D^T^F}function A(D,T,F){return D&T|~D&F}function q(D,T,F){return(D|~T)^F}function k(D,T,F){return D&F|T&~F}function C(D,T,F){return D^(T|~F)}function S(D,T){return D<>>32-T}u.RIPEMD160=c._createHelper(j),u.HmacRIPEMD160=c._createHmacHelper(j)})(),o.RIPEMD160})})(wt)),wt.exports}var xt={exports:{}},nq=xt.exports,Mh;function pl(){return Mh||(Mh=1,(function(a,r){(function(o,t){a.exports=t(Le())})(nq,function(o){(function(){var t=o,u=t.lib,l=u.Base,m=t.enc,c=m.Utf8,h=t.algo;h.HMAC=l.extend({init:function(d,y){d=this._hasher=new d.init,typeof y=="string"&&(y=c.parse(y));var g=d.blockSize,f=g*4;y.sigBytes>f&&(y=d.finalize(y)),y.clamp();for(var x=this._oKey=y.clone(),w=this._iKey=y.clone(),j=x.words,v=w.words,A=0;A>>2]&255;N.sigBytes-=R}};l.BlockCipher=x.extend({cfg:x.cfg.extend({mode:v,padding:q}),reset:function(){var N;x.reset.call(this);var R=this.cfg,V=R.iv,H=R.mode;this._xformMode==this._ENC_XFORM_MODE?N=H.createEncryptor:(N=H.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==N?this._mode.init(this,V&&V.words):(this._mode=N.call(H,this,V&&V.words),this._mode.__creator=N)},_doProcessBlock:function(N,R){this._mode.processBlock(N,R)},_doFinalize:function(){var N,R=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(R.pad(this._data,this.blockSize),N=this._process(!0)):(N=this._process(!0),R.unpad(N)),N},blockSize:128/32});var k=l.CipherParams=m.extend({init:function(N){this.mixIn(N)},toString:function(N){return(N||this.formatter).stringify(this)}}),C=u.format={},S=C.OpenSSL={stringify:function(N){var R,V=N.ciphertext,H=N.salt;return H?R=c.create([1398893684,1701076831]).concat(H).concat(V):R=V,R.toString(y)},parse:function(N){var R,V=y.parse(N),H=V.words;return H[0]==1398893684&&H[1]==1701076831&&(R=c.create(H.slice(2,4)),H.splice(0,4),V.sigBytes-=16),k.create({ciphertext:V,salt:R})}},D=l.SerializableCipher=m.extend({cfg:m.extend({format:S}),encrypt:function(N,R,V,H){H=this.cfg.extend(H);var $=N.createEncryptor(V,H),ae=$.finalize(R),J=$.cfg;return k.create({ciphertext:ae,key:V,iv:J.iv,algorithm:N,mode:J.mode,padding:J.padding,blockSize:N.blockSize,formatter:H.format})},decrypt:function(N,R,V,H){H=this.cfg.extend(H),R=this._parse(R,H.format);var $=N.createDecryptor(V,H).finalize(R.ciphertext);return $},_parse:function(N,R){return typeof N=="string"?R.parse(N,this):N}}),T=u.kdf={},F=T.OpenSSL={execute:function(N,R,V,H,$){if(H||(H=c.random(64/8)),$)var ae=f.create({keySize:R+V,hasher:$}).compute(N,H);else var ae=f.create({keySize:R+V}).compute(N,H);var J=c.create(ae.words.slice(R),V*4);return ae.sigBytes=R*4,k.create({key:ae,iv:J,salt:H})}},O=l.PasswordBasedCipher=D.extend({cfg:D.cfg.extend({kdf:F}),encrypt:function(N,R,V,H){H=this.cfg.extend(H);var $=H.kdf.execute(V,N.keySize,N.ivSize,H.salt,H.hasher);H.iv=$.iv;var ae=D.encrypt.call(this,N,R,$.key,H);return ae.mixIn($),ae},decrypt:function(N,R,V,H){H=this.cfg.extend(H),R=this._parse(R,H.format);var $=H.kdf.execute(V,N.keySize,N.ivSize,R.salt,H.hasher);H.iv=$.iv;var ae=D.decrypt.call(this,N,R,$.key,H);return ae}})})()})})(jt)),jt.exports}var At={exports:{}},lq=At.exports,Vh;function cq(){return Vh||(Vh=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),Ri())})(lq,function(o){return o.mode.CFB=(function(){var t=o.lib.BlockCipherMode.extend();t.Encryptor=t.extend({processBlock:function(l,m){var c=this._cipher,h=c.blockSize;u.call(this,l,m,h,c),this._prevBlock=l.slice(m,m+h)}}),t.Decryptor=t.extend({processBlock:function(l,m){var c=this._cipher,h=c.blockSize,d=l.slice(m,m+h);u.call(this,l,m,h,c),this._prevBlock=d}});function u(l,m,c,h){var d,y=this._iv;y?(d=y.slice(0),this._iv=void 0):d=this._prevBlock,h.encryptBlock(d,0);for(var g=0;g>>24)&16711935|(N<<24|N>>>8)&4278255360}var R=this._hash.words,V=x.words,H=w.words,$=d.words,ae=y.words,J=g.words,ie=f.words,W,oe,ee,z,I,L,G,ue,he,ge;L=W=R[0],G=oe=R[1],ue=ee=R[2],he=z=R[3],ge=I=R[4];for(var re,F=0;F<80;F+=1)re=W+D[T+$[F]]|0,F<16?re+=v(oe,ee,z)+V[0]:F<32?re+=A(oe,ee,z)+V[1]:F<48?re+=q(oe,ee,z)+V[2]:F<64?re+=k(oe,ee,z)+V[3]:re+=C(oe,ee,z)+V[4],re=re|0,re=S(re,J[F]),re=re+I|0,W=I,I=z,z=S(ee,10),ee=oe,oe=re,re=L+D[T+ae[F]]|0,F<16?re+=C(G,ue,he)+H[0]:F<32?re+=k(G,ue,he)+H[1]:F<48?re+=q(G,ue,he)+H[2]:F<64?re+=A(G,ue,he)+H[3]:re+=v(G,ue,he)+H[4],re=re|0,re=S(re,ie[F]),re=re+ge|0,L=ge,ge=he,he=S(ue,10),ue=G,G=re;re=R[1]+ee+he|0,R[1]=R[2]+z+ge|0,R[2]=R[3]+I+L|0,R[3]=R[4]+W+G|0,R[4]=R[0]+oe+ue|0,R[0]=re},_doFinalize:function(){var D=this._data,T=D.words,F=this._nDataBytes*8,O=D.sigBytes*8;T[O>>>5]|=128<<24-O%32,T[(O+64>>>9<<4)+14]=(F<<8|F>>>24)&16711935|(F<<24|F>>>8)&4278255360,D.sigBytes=(T.length+1)*4,this._process();for(var N=this._hash,R=N.words,V=0;V<5;V++){var H=R[V];R[V]=(H<<8|H>>>24)&16711935|(H<<24|H>>>8)&4278255360}return N},clone:function(){var D=c.clone.call(this);return D._hash=this._hash.clone(),D}});function v(D,T,F){return D^T^F}function A(D,T,F){return D&T|~D&F}function q(D,T,F){return(D|~T)^F}function k(D,T,F){return D&F|T&~F}function C(D,T,F){return D^(T|~F)}function S(D,T){return D<>>32-T}u.RIPEMD160=c._createHelper(j),u.HmacRIPEMD160=c._createHmacHelper(j)})(),o.RIPEMD160})})(wt)),wt.exports}var xt={exports:{}},nq=xt.exports,Mh;function pl(){return Mh||(Mh=1,(function(a,r){(function(o,t){a.exports=t(He())})(nq,function(o){(function(){var t=o,u=t.lib,l=u.Base,m=t.enc,c=m.Utf8,h=t.algo;h.HMAC=l.extend({init:function(d,y){d=this._hasher=new d.init,typeof y=="string"&&(y=c.parse(y));var g=d.blockSize,f=g*4;y.sigBytes>f&&(y=d.finalize(y)),y.clamp();for(var x=this._oKey=y.clone(),w=this._iKey=y.clone(),j=x.words,v=w.words,A=0;A>>2]&255;N.sigBytes-=R}};l.BlockCipher=x.extend({cfg:x.cfg.extend({mode:v,padding:q}),reset:function(){var N;x.reset.call(this);var R=this.cfg,V=R.iv,H=R.mode;this._xformMode==this._ENC_XFORM_MODE?N=H.createEncryptor:(N=H.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==N?this._mode.init(this,V&&V.words):(this._mode=N.call(H,this,V&&V.words),this._mode.__creator=N)},_doProcessBlock:function(N,R){this._mode.processBlock(N,R)},_doFinalize:function(){var N,R=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(R.pad(this._data,this.blockSize),N=this._process(!0)):(N=this._process(!0),R.unpad(N)),N},blockSize:128/32});var k=l.CipherParams=m.extend({init:function(N){this.mixIn(N)},toString:function(N){return(N||this.formatter).stringify(this)}}),C=u.format={},S=C.OpenSSL={stringify:function(N){var R,V=N.ciphertext,H=N.salt;return H?R=c.create([1398893684,1701076831]).concat(H).concat(V):R=V,R.toString(y)},parse:function(N){var R,V=y.parse(N),H=V.words;return H[0]==1398893684&&H[1]==1701076831&&(R=c.create(H.slice(2,4)),H.splice(0,4),V.sigBytes-=16),k.create({ciphertext:V,salt:R})}},D=l.SerializableCipher=m.extend({cfg:m.extend({format:S}),encrypt:function(N,R,V,H){H=this.cfg.extend(H);var $=N.createEncryptor(V,H),ae=$.finalize(R),J=$.cfg;return k.create({ciphertext:ae,key:V,iv:J.iv,algorithm:N,mode:J.mode,padding:J.padding,blockSize:N.blockSize,formatter:H.format})},decrypt:function(N,R,V,H){H=this.cfg.extend(H),R=this._parse(R,H.format);var $=N.createDecryptor(V,H).finalize(R.ciphertext);return $},_parse:function(N,R){return typeof N=="string"?R.parse(N,this):N}}),T=u.kdf={},F=T.OpenSSL={execute:function(N,R,V,H,$){if(H||(H=c.random(64/8)),$)var ae=f.create({keySize:R+V,hasher:$}).compute(N,H);else var ae=f.create({keySize:R+V}).compute(N,H);var J=c.create(ae.words.slice(R),V*4);return ae.sigBytes=R*4,k.create({key:ae,iv:J,salt:H})}},O=l.PasswordBasedCipher=D.extend({cfg:D.cfg.extend({kdf:F}),encrypt:function(N,R,V,H){H=this.cfg.extend(H);var $=H.kdf.execute(V,N.keySize,N.ivSize,H.salt,H.hasher);H.iv=$.iv;var ae=D.encrypt.call(this,N,R,$.key,H);return ae.mixIn($),ae},decrypt:function(N,R,V,H){H=this.cfg.extend(H),R=this._parse(R,H.format);var $=H.kdf.execute(V,N.keySize,N.ivSize,R.salt,H.hasher);H.iv=$.iv;var ae=D.decrypt.call(this,N,R,$.key,H);return ae}})})()})})(jt)),jt.exports}var At={exports:{}},lq=At.exports,Vh;function cq(){return Vh||(Vh=1,(function(a,r){(function(o,t,u){a.exports=t(He(),Ti())})(lq,function(o){return o.mode.CFB=(function(){var t=o.lib.BlockCipherMode.extend();t.Encryptor=t.extend({processBlock:function(l,m){var c=this._cipher,h=c.blockSize;u.call(this,l,m,h,c),this._prevBlock=l.slice(m,m+h)}}),t.Decryptor=t.extend({processBlock:function(l,m){var c=this._cipher,h=c.blockSize,d=l.slice(m,m+h);u.call(this,l,m,h,c),this._prevBlock=d}});function u(l,m,c,h){var d,y=this._iv;y?(d=y.slice(0),this._iv=void 0):d=this._prevBlock,h.encryptBlock(d,0);for(var g=0;g>24&255)===255){var h=c>>16&255,d=c>>8&255,y=c&255;h===255?(h=0,d===255?(d=0,y===255?y=0:++y):++d):++h,c=0,c+=h<<16,c+=d<<8,c+=y}else c+=1<<24;return c}function l(c){return(c[0]=u(c[0]))===0&&(c[1]=u(c[1])),c}var m=t.Encryptor=t.extend({processBlock:function(c,h){var d=this._cipher,y=d.blockSize,g=this._iv,f=this._counter;g&&(f=this._counter=g.slice(0),this._iv=void 0),l(f);var x=f.slice(0);d.encryptBlock(x,0);for(var w=0;w>>2]|=c<<24-h%4*8,t.sigBytes+=c},unpad:function(t){var u=t.words[t.sigBytes-1>>>2]&255;t.sigBytes-=u}},o.pad.Ansix923})})(_t)),_t.exports}var Dt={exports:{}},kq=Dt.exports,Kh;function wq(){return Kh||(Kh=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),Ri())})(kq,function(o){return o.pad.Iso10126={pad:function(t,u){var l=u*4,m=l-t.sigBytes%l;t.concat(o.lib.WordArray.random(m-1)).concat(o.lib.WordArray.create([m<<24],1))},unpad:function(t){var u=t.words[t.sigBytes-1>>>2]&255;t.sigBytes-=u}},o.pad.Iso10126})})(Dt)),Dt.exports}var Ft={exports:{}},xq=Ft.exports,Yh;function zq(){return Yh||(Yh=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),Ri())})(xq,function(o){return o.pad.Iso97971={pad:function(t,u){t.concat(o.lib.WordArray.create([2147483648],1)),o.pad.ZeroPadding.pad(t,u)},unpad:function(t){o.pad.ZeroPadding.unpad(t),t.sigBytes--}},o.pad.Iso97971})})(Ft)),Ft.exports}var Rt={exports:{}},qq=Rt.exports,Zh;function jq(){return Zh||(Zh=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),Ri())})(qq,function(o){return o.pad.ZeroPadding={pad:function(t,u){var l=u*4;t.clamp(),t.sigBytes+=l-(t.sigBytes%l||l)},unpad:function(t){for(var u=t.words,l=t.sigBytes-1,l=t.sigBytes-1;l>=0;l--)if(u[l>>>2]>>>24-l%4*8&255){t.sigBytes=l+1;break}}},o.pad.ZeroPadding})})(Rt)),Rt.exports}var Tt={exports:{}},Aq=Tt.exports,Xh;function Cq(){return Xh||(Xh=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),Ri())})(Aq,function(o){return o.pad.NoPadding={pad:function(){},unpad:function(){}},o.pad.NoPadding})})(Tt)),Tt.exports}var Pt={exports:{}},Eq=Pt.exports,Jh;function Sq(){return Jh||(Jh=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),Ri())})(Eq,function(o){return(function(t){var u=o,l=u.lib,m=l.CipherParams,c=u.enc,h=c.Hex,d=u.format;d.Hex={stringify:function(y){return y.ciphertext.toString(h)},parse:function(y){var g=h.parse(y);return m.create({ciphertext:g})}}})(),o.format.Hex})})(Pt)),Pt.exports}var Nt={exports:{}},Bq=Nt.exports,eg;function _q(){return eg||(eg=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),Xn(),Jn(),Cn(),Ri())})(Bq,function(o){return(function(){var t=o,u=t.lib,l=u.BlockCipher,m=t.algo,c=[],h=[],d=[],y=[],g=[],f=[],x=[],w=[],j=[],v=[];(function(){for(var k=[],C=0;C<256;C++)C<128?k[C]=C<<1:k[C]=C<<1^283;for(var S=0,D=0,C=0;C<256;C++){var T=D^D<<1^D<<2^D<<3^D<<4;T=T>>>8^T&255^99,c[S]=T,h[T]=S;var F=k[S],O=k[F],N=k[O],R=k[T]*257^T*16843008;d[S]=R<<24|R>>>8,y[S]=R<<16|R>>>16,g[S]=R<<8|R>>>24,f[S]=R;var R=N*16843009^O*65537^F*257^S*16843008;x[T]=R<<24|R>>>8,w[T]=R<<16|R>>>16,j[T]=R<<8|R>>>24,v[T]=R,S?(S=F^k[k[k[N^F]]],D^=k[k[D]]):S=D=1}})();var A=[0,1,2,4,8,16,32,64,128,27,54],q=m.AES=l.extend({_doReset:function(){var k;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var C=this._keyPriorReset=this._key,S=C.words,D=C.sigBytes/4,T=this._nRounds=D+6,F=(T+1)*4,O=this._keySchedule=[],N=0;N6&&N%D==4&&(k=c[k>>>24]<<24|c[k>>>16&255]<<16|c[k>>>8&255]<<8|c[k&255]):(k=k<<8|k>>>24,k=c[k>>>24]<<24|c[k>>>16&255]<<16|c[k>>>8&255]<<8|c[k&255],k^=A[N/D|0]<<24),O[N]=O[N-D]^k);for(var R=this._invKeySchedule=[],V=0;V>>24]]^w[c[k>>>16&255]]^j[c[k>>>8&255]]^v[c[k&255]]}}},encryptBlock:function(k,C){this._doCryptBlock(k,C,this._keySchedule,d,y,g,f,c)},decryptBlock:function(k,C){var S=k[C+1];k[C+1]=k[C+3],k[C+3]=S,this._doCryptBlock(k,C,this._invKeySchedule,x,w,j,v,h);var S=k[C+1];k[C+1]=k[C+3],k[C+3]=S},_doCryptBlock:function(k,C,S,D,T,F,O,N){for(var R=this._nRounds,V=k[C]^S[0],H=k[C+1]^S[1],$=k[C+2]^S[2],ae=k[C+3]^S[3],J=4,ie=1;ie>>24]^T[H>>>16&255]^F[$>>>8&255]^O[ae&255]^S[J++],oe=D[H>>>24]^T[$>>>16&255]^F[ae>>>8&255]^O[V&255]^S[J++],ee=D[$>>>24]^T[ae>>>16&255]^F[V>>>8&255]^O[H&255]^S[J++],z=D[ae>>>24]^T[V>>>16&255]^F[H>>>8&255]^O[$&255]^S[J++];V=W,H=oe,$=ee,ae=z}var W=(N[V>>>24]<<24|N[H>>>16&255]<<16|N[$>>>8&255]<<8|N[ae&255])^S[J++],oe=(N[H>>>24]<<24|N[$>>>16&255]<<16|N[ae>>>8&255]<<8|N[V&255])^S[J++],ee=(N[$>>>24]<<24|N[ae>>>16&255]<<16|N[V>>>8&255]<<8|N[H&255])^S[J++],z=(N[ae>>>24]<<24|N[V>>>16&255]<<16|N[H>>>8&255]<<8|N[$&255])^S[J++];k[C]=W,k[C+1]=oe,k[C+2]=ee,k[C+3]=z},keySize:256/32});t.AES=l._createHelper(q)})(),o.AES})})(Nt)),Nt.exports}var It={exports:{}},Dq=It.exports,ig;function Fq(){return ig||(ig=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),Xn(),Jn(),Cn(),Ri())})(Dq,function(o){return(function(){var t=o,u=t.lib,l=u.WordArray,m=u.BlockCipher,c=t.algo,h=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],d=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],y=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],g=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],f=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],x=c.DES=m.extend({_doReset:function(){for(var A=this._key,q=A.words,k=[],C=0;C<56;C++){var S=h[C]-1;k[C]=q[S>>>5]>>>31-S%32&1}for(var D=this._subKeys=[],T=0;T<16;T++){for(var F=D[T]=[],O=y[T],C=0;C<24;C++)F[C/6|0]|=k[(d[C]-1+O)%28]<<31-C%6,F[4+(C/6|0)]|=k[28+(d[C+24]-1+O)%28]<<31-C%6;F[0]=F[0]<<1|F[0]>>>31;for(var C=1;C<7;C++)F[C]=F[C]>>>(C-1)*4+3;F[7]=F[7]<<5|F[7]>>>27}for(var N=this._invSubKeys=[],C=0;C<16;C++)N[C]=D[15-C]},encryptBlock:function(A,q){this._doCryptBlock(A,q,this._subKeys)},decryptBlock:function(A,q){this._doCryptBlock(A,q,this._invSubKeys)},_doCryptBlock:function(A,q,k){this._lBlock=A[q],this._rBlock=A[q+1],w.call(this,4,252645135),w.call(this,16,65535),j.call(this,2,858993459),j.call(this,8,16711935),w.call(this,1,1431655765);for(var C=0;C<16;C++){for(var S=k[C],D=this._lBlock,T=this._rBlock,F=0,O=0;O<8;O++)F|=g[O][((T^S[O])&f[O])>>>0];this._lBlock=T,this._rBlock=D^F}var N=this._lBlock;this._lBlock=this._rBlock,this._rBlock=N,w.call(this,1,1431655765),j.call(this,8,16711935),j.call(this,2,858993459),w.call(this,16,65535),w.call(this,4,252645135),A[q]=this._lBlock,A[q+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function w(A,q){var k=(this._lBlock>>>A^this._rBlock)&q;this._rBlock^=k,this._lBlock^=k<>>A^this._lBlock)&q;this._lBlock^=k,this._rBlock^=k<192.");var k=q.slice(0,2),C=q.length<4?q.slice(0,2):q.slice(2,4),S=q.length<6?q.slice(0,2):q.slice(4,6);this._des1=x.createEncryptor(l.create(k)),this._des2=x.createEncryptor(l.create(C)),this._des3=x.createEncryptor(l.create(S))},encryptBlock:function(A,q){this._des1.encryptBlock(A,q),this._des2.decryptBlock(A,q),this._des3.encryptBlock(A,q)},decryptBlock:function(A,q){this._des3.decryptBlock(A,q),this._des2.encryptBlock(A,q),this._des1.decryptBlock(A,q)},keySize:192/32,ivSize:64/32,blockSize:64/32});t.TripleDES=m._createHelper(v)})(),o.TripleDES})})(It)),It.exports}var Mt={exports:{}},Rq=Mt.exports,ag;function Tq(){return ag||(ag=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),Xn(),Jn(),Cn(),Ri())})(Rq,function(o){return(function(){var t=o,u=t.lib,l=u.StreamCipher,m=t.algo,c=m.RC4=l.extend({_doReset:function(){for(var y=this._key,g=y.words,f=y.sigBytes,x=this._S=[],w=0;w<256;w++)x[w]=w;for(var w=0,j=0;w<256;w++){var v=w%f,A=g[v>>>2]>>>24-v%4*8&255;j=(j+x[w]+A)%256;var q=x[w];x[w]=x[j],x[j]=q}this._i=this._j=0},_doProcessBlock:function(y,g){y[g]^=h.call(this)},keySize:256/32,ivSize:0});function h(){for(var y=this._S,g=this._i,f=this._j,x=0,w=0;w<4;w++){g=(g+1)%256,f=(f+y[g])%256;var j=y[g];y[g]=y[f],y[f]=j,x|=y[(y[g]+y[f])%256]<<24-w*8}return this._i=g,this._j=f,x}t.RC4=l._createHelper(c);var d=m.RC4Drop=c.extend({cfg:c.cfg.extend({drop:192}),_doReset:function(){c._doReset.call(this);for(var y=this.cfg.drop;y>0;y--)h.call(this)}});t.RC4Drop=l._createHelper(d)})(),o.RC4})})(Mt)),Mt.exports}var Ot={exports:{}},Pq=Ot.exports,ng;function Nq(){return ng||(ng=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),Xn(),Jn(),Cn(),Ri())})(Pq,function(o){return(function(){var t=o,u=t.lib,l=u.StreamCipher,m=t.algo,c=[],h=[],d=[],y=m.Rabbit=l.extend({_doReset:function(){for(var f=this._key.words,x=this.cfg.iv,w=0;w<4;w++)f[w]=(f[w]<<8|f[w]>>>24)&16711935|(f[w]<<24|f[w]>>>8)&4278255360;var j=this._X=[f[0],f[3]<<16|f[2]>>>16,f[1],f[0]<<16|f[3]>>>16,f[2],f[1]<<16|f[0]>>>16,f[3],f[2]<<16|f[1]>>>16],v=this._C=[f[2]<<16|f[2]>>>16,f[0]&4294901760|f[1]&65535,f[3]<<16|f[3]>>>16,f[1]&4294901760|f[2]&65535,f[0]<<16|f[0]>>>16,f[2]&4294901760|f[3]&65535,f[1]<<16|f[1]>>>16,f[3]&4294901760|f[0]&65535];this._b=0;for(var w=0;w<4;w++)g.call(this);for(var w=0;w<8;w++)v[w]^=j[w+4&7];if(x){var A=x.words,q=A[0],k=A[1],C=(q<<8|q>>>24)&16711935|(q<<24|q>>>8)&4278255360,S=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360,D=C>>>16|S&4294901760,T=S<<16|C&65535;v[0]^=C,v[1]^=D,v[2]^=S,v[3]^=T,v[4]^=C,v[5]^=D,v[6]^=S,v[7]^=T;for(var w=0;w<4;w++)g.call(this)}},_doProcessBlock:function(f,x){var w=this._X;g.call(this),c[0]=w[0]^w[5]>>>16^w[3]<<16,c[1]=w[2]^w[7]>>>16^w[5]<<16,c[2]=w[4]^w[1]>>>16^w[7]<<16,c[3]=w[6]^w[3]>>>16^w[1]<<16;for(var j=0;j<4;j++)c[j]=(c[j]<<8|c[j]>>>24)&16711935|(c[j]<<24|c[j]>>>8)&4278255360,f[x+j]^=c[j]},blockSize:128/32,ivSize:64/32});function g(){for(var f=this._X,x=this._C,w=0;w<8;w++)h[w]=x[w];x[0]=x[0]+1295307597+this._b|0,x[1]=x[1]+3545052371+(x[0]>>>0>>0?1:0)|0,x[2]=x[2]+886263092+(x[1]>>>0>>0?1:0)|0,x[3]=x[3]+1295307597+(x[2]>>>0>>0?1:0)|0,x[4]=x[4]+3545052371+(x[3]>>>0>>0?1:0)|0,x[5]=x[5]+886263092+(x[4]>>>0>>0?1:0)|0,x[6]=x[6]+1295307597+(x[5]>>>0>>0?1:0)|0,x[7]=x[7]+3545052371+(x[6]>>>0>>0?1:0)|0,this._b=x[7]>>>0>>0?1:0;for(var w=0;w<8;w++){var j=f[w]+x[w],v=j&65535,A=j>>>16,q=((v*v>>>17)+v*A>>>15)+A*A,k=((j&4294901760)*j|0)+((j&65535)*j|0);d[w]=q^k}f[0]=d[0]+(d[7]<<16|d[7]>>>16)+(d[6]<<16|d[6]>>>16)|0,f[1]=d[1]+(d[0]<<8|d[0]>>>24)+d[7]|0,f[2]=d[2]+(d[1]<<16|d[1]>>>16)+(d[0]<<16|d[0]>>>16)|0,f[3]=d[3]+(d[2]<<8|d[2]>>>24)+d[1]|0,f[4]=d[4]+(d[3]<<16|d[3]>>>16)+(d[2]<<16|d[2]>>>16)|0,f[5]=d[5]+(d[4]<<8|d[4]>>>24)+d[3]|0,f[6]=d[6]+(d[5]<<16|d[5]>>>16)+(d[4]<<16|d[4]>>>16)|0,f[7]=d[7]+(d[6]<<8|d[6]>>>24)+d[5]|0}t.Rabbit=l._createHelper(y)})(),o.Rabbit})})(Ot)),Ot.exports}var Ht={exports:{}},Iq=Ht.exports,og;function Mq(){return og||(og=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),Xn(),Jn(),Cn(),Ri())})(Iq,function(o){return(function(){var t=o,u=t.lib,l=u.StreamCipher,m=t.algo,c=[],h=[],d=[],y=m.RabbitLegacy=l.extend({_doReset:function(){var f=this._key.words,x=this.cfg.iv,w=this._X=[f[0],f[3]<<16|f[2]>>>16,f[1],f[0]<<16|f[3]>>>16,f[2],f[1]<<16|f[0]>>>16,f[3],f[2]<<16|f[1]>>>16],j=this._C=[f[2]<<16|f[2]>>>16,f[0]&4294901760|f[1]&65535,f[3]<<16|f[3]>>>16,f[1]&4294901760|f[2]&65535,f[0]<<16|f[0]>>>16,f[2]&4294901760|f[3]&65535,f[1]<<16|f[1]>>>16,f[3]&4294901760|f[0]&65535];this._b=0;for(var v=0;v<4;v++)g.call(this);for(var v=0;v<8;v++)j[v]^=w[v+4&7];if(x){var A=x.words,q=A[0],k=A[1],C=(q<<8|q>>>24)&16711935|(q<<24|q>>>8)&4278255360,S=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360,D=C>>>16|S&4294901760,T=S<<16|C&65535;j[0]^=C,j[1]^=D,j[2]^=S,j[3]^=T,j[4]^=C,j[5]^=D,j[6]^=S,j[7]^=T;for(var v=0;v<4;v++)g.call(this)}},_doProcessBlock:function(f,x){var w=this._X;g.call(this),c[0]=w[0]^w[5]>>>16^w[3]<<16,c[1]=w[2]^w[7]>>>16^w[5]<<16,c[2]=w[4]^w[1]>>>16^w[7]<<16,c[3]=w[6]^w[3]>>>16^w[1]<<16;for(var j=0;j<4;j++)c[j]=(c[j]<<8|c[j]>>>24)&16711935|(c[j]<<24|c[j]>>>8)&4278255360,f[x+j]^=c[j]},blockSize:128/32,ivSize:64/32});function g(){for(var f=this._X,x=this._C,w=0;w<8;w++)h[w]=x[w];x[0]=x[0]+1295307597+this._b|0,x[1]=x[1]+3545052371+(x[0]>>>0>>0?1:0)|0,x[2]=x[2]+886263092+(x[1]>>>0>>0?1:0)|0,x[3]=x[3]+1295307597+(x[2]>>>0>>0?1:0)|0,x[4]=x[4]+3545052371+(x[3]>>>0>>0?1:0)|0,x[5]=x[5]+886263092+(x[4]>>>0>>0?1:0)|0,x[6]=x[6]+1295307597+(x[5]>>>0>>0?1:0)|0,x[7]=x[7]+3545052371+(x[6]>>>0>>0?1:0)|0,this._b=x[7]>>>0>>0?1:0;for(var w=0;w<8;w++){var j=f[w]+x[w],v=j&65535,A=j>>>16,q=((v*v>>>17)+v*A>>>15)+A*A,k=((j&4294901760)*j|0)+((j&65535)*j|0);d[w]=q^k}f[0]=d[0]+(d[7]<<16|d[7]>>>16)+(d[6]<<16|d[6]>>>16)|0,f[1]=d[1]+(d[0]<<8|d[0]>>>24)+d[7]|0,f[2]=d[2]+(d[1]<<16|d[1]>>>16)+(d[0]<<16|d[0]>>>16)|0,f[3]=d[3]+(d[2]<<8|d[2]>>>24)+d[1]|0,f[4]=d[4]+(d[3]<<16|d[3]>>>16)+(d[2]<<16|d[2]>>>16)|0,f[5]=d[5]+(d[4]<<8|d[4]>>>24)+d[3]|0,f[6]=d[6]+(d[5]<<16|d[5]>>>16)+(d[4]<<16|d[4]>>>16)|0,f[7]=d[7]+(d[6]<<8|d[6]>>>24)+d[5]|0}t.RabbitLegacy=l._createHelper(y)})(),o.RabbitLegacy})})(Ht)),Ht.exports}var Lt={exports:{}},Oq=Lt.exports,rg;function Hq(){return rg||(rg=1,(function(a,r){(function(o,t,u){a.exports=t(Le(),Xn(),Jn(),Cn(),Ri())})(Oq,function(o){return(function(){var t=o,u=t.lib,l=u.BlockCipher,m=t.algo;const c=16,h=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],d=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var y={pbox:[],sbox:[]};function g(v,A){let q=A>>24&255,k=A>>16&255,C=A>>8&255,S=A&255,D=v.sbox[0][q]+v.sbox[1][k];return D=D^v.sbox[2][C],D=D+v.sbox[3][S],D}function f(v,A,q){let k=A,C=q,S;for(let D=0;D1;--D)k=k^v.pbox[D],C=g(v,k)^C,S=k,k=C,C=S;return S=k,k=C,C=S,C=C^v.pbox[1],k=k^v.pbox[0],{left:k,right:C}}function w(v,A,q){for(let T=0;T<4;T++){v.sbox[T]=[];for(let F=0;F<256;F++)v.sbox[T][F]=d[T][F]}let k=0;for(let T=0;T=q&&(k=0);let C=0,S=0,D=0;for(let T=0;T=0&&(S=S.substring(0,D));const T=S.indexOf(": ");let F,O;if(T>0&&T<50){const N=S.substring(0,T);/[:\[\]]/.test(N)?O=S:(F=N,O=S.substring(T+2))}else O=S;return{success:!0,data:{timestamp:A,flags:q,sender:F,message:O}}}catch(c){return{success:!1,error:c instanceof Error?c.message:"Decryption failed"}}}static calculateChannelHash(u){const l=(0,a.SHA256)(a.enc.Hex.parse(u));return(0,r.hexToBytes)(l.toString(a.enc.Hex))[0].toString(16).padStart(2,"0")}}return wr.ChannelCrypto=o,wr}var lg;function _b(){if(lg)return kr;lg=1,Object.defineProperty(kr,"__esModule",{value:!0}),kr.MeshCoreKeyStore=void 0;const a=Ku();class r{constructor(t){this.nodeKeys=new Map,this.channelHashToKeys=new Map,t!=null&&t.channelSecrets&&this.addChannelSecrets(t.channelSecrets),t!=null&&t.nodeKeys&&Object.entries(t.nodeKeys).forEach(([u,l])=>{this.addNodeKey(u,l)})}addNodeKey(t,u){const l=t.toUpperCase();this.nodeKeys.set(l,u)}hasChannelKey(t){const u=t.toLowerCase();return this.channelHashToKeys.has(u)}hasNodeKey(t){const u=t.toUpperCase();return this.nodeKeys.has(u)}getChannelKeys(t){const u=t.toLowerCase();return this.channelHashToKeys.get(u)||[]}getNodeKey(t){const u=t.toUpperCase();return this.nodeKeys.get(u)}addChannelSecrets(t){for(const u of t){const l=a.ChannelCrypto.calculateChannelHash(u).toLowerCase();this.channelHashToKeys.has(l)||this.channelHashToKeys.set(l,[]),this.channelHashToKeys.get(l).push(u)}}}return kr.MeshCoreKeyStore=r,kr}var xr={},Sa={};/*! noble-ed25519 - MIT License (c) 2019 Paul Miller (paulmillr.com) */const Db={p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n},{p:Wi,n:Vt,Gx:cg,Gy:ug,a:hu,d:gu}=Db,Vq=8n,La=32,Ir=64,ca=(a="")=>{throw new Error(a)},Uq=a=>typeof a=="bigint",Fb=a=>typeof a=="string",Wq=a=>a instanceof Uint8Array||ArrayBuffer.isView(a)&&a.constructor.name==="Uint8Array",Zn=(a,r)=>!Wq(a)||typeof r=="number"&&r>0&&a.length!==r?ca("Uint8Array expected"):a,ml=a=>new Uint8Array(a),Yu=a=>Uint8Array.from(a),Rb=(a,r)=>a.toString(16).padStart(r,"0"),Zu=a=>Array.from(Zn(a)).map(r=>Rb(r,2)).join(""),en={_0:48,_9:57,A:65,F:70,a:97,f:102},dg=a=>{if(a>=en._0&&a<=en._9)return a-en._0;if(a>=en.A&&a<=en.F)return a-(en.A-10);if(a>=en.a&&a<=en.f)return a-(en.a-10)},Xu=a=>{const r="hex invalid";if(!Fb(a))return ca(r);const o=a.length,t=o/2;if(o%2)return ca(r);const u=ml(t);for(let l=0,m=0;lZn(Fb(a)?Xu(a):Yu(Zn(a)),r),Tb=()=>globalThis==null?void 0:globalThis.crypto,Gq=()=>{var a;return((a=Tb())==null?void 0:a.subtle)??ca("crypto.subtle must be defined")},Mr=(...a)=>{const r=ml(a.reduce((t,u)=>t+Zn(u).length,0));let o=0;return a.forEach(t=>{r.set(t,o),o+=t.length}),r},Pb=(a=La)=>Tb().getRandomValues(ml(a)),Zt=BigInt,Qn=(a,r,o,t="bad number: out of range")=>Uq(a)&&r<=a&&a{const o=a%r;return o>=0n?o:r+o},Nb=a=>xe(a,Vt),Ib=(a,r)=>{(a===0n||r<=0n)&&ca("no inverse n="+a+" mod="+r);let o=xe(a,r),t=r,u=0n,l=1n;for(;o!==0n;){const m=t/o,c=t%o,h=u-l*m;t=o,o=c,u=l,l=h}return t===1n?xe(u,r):ca("no inverse")},Qq=a=>{const r=rd[a];return typeof r!="function"&&ca("hashes."+a+" not set"),r},pg=a=>a instanceof Ba?a:ca("Point expected"),Eu=2n**256n,Ma=class Ma{constructor(r,o,t,u){Hn(this,"ex");Hn(this,"ey");Hn(this,"ez");Hn(this,"et");const l=Eu;this.ex=Qn(r,0n,l),this.ey=Qn(o,0n,l),this.ez=Qn(t,1n,l),this.et=Qn(u,0n,l),Object.freeze(this)}static fromAffine(r){return new Ma(r.x,r.y,1n,xe(r.x*r.y))}static fromBytes(r,o=!1){const t=gu,u=Yu(Zn(r,La)),l=r[31];u[31]=l&-129;const m=Ju(u);Qn(m,0n,o?Eu:Wi);const h=xe(m*m),d=xe(h-1n),y=xe(t*h+1n);let{isValid:g,value:f}=Kq(d,y);g||ca("bad point: y not sqrt");const x=(f&1n)===1n,w=(l&128)!==0;return!o&&f===0n&&w&&ca("bad point: x==0, isLastByteOdd"),w!==x&&(f=xe(-f)),new Ma(f,m,1n,xe(f*m))}assertValidity(){const r=hu,o=gu,t=this;if(t.is0())throw new Error("bad point: ZERO");const{ex:u,ey:l,ez:m,et:c}=t,h=xe(u*u),d=xe(l*l),y=xe(m*m),g=xe(y*y),f=xe(h*r),x=xe(y*xe(f+d)),w=xe(g+xe(o*xe(h*d)));if(x!==w)throw new Error("bad point: equation left != right (1)");const j=xe(u*l),v=xe(m*c);if(j!==v)throw new Error("bad point: equation left != right (2)");return this}equals(r){const{ex:o,ey:t,ez:u}=this,{ex:l,ey:m,ez:c}=pg(r),h=xe(o*c),d=xe(l*u),y=xe(t*c),g=xe(m*u);return h===d&&y===g}is0(){return this.equals(Co)}negate(){return new Ma(xe(-this.ex),this.ey,this.ez,xe(-this.et))}double(){const{ex:r,ey:o,ez:t}=this,u=hu,l=xe(r*r),m=xe(o*o),c=xe(2n*xe(t*t)),h=xe(u*l),d=r+o,y=xe(xe(d*d)-l-m),g=h+m,f=g-c,x=h-m,w=xe(y*f),j=xe(g*x),v=xe(y*x),A=xe(f*g);return new Ma(w,j,A,v)}add(r){const{ex:o,ey:t,ez:u,et:l}=this,{ex:m,ey:c,ez:h,et:d}=pg(r),y=hu,g=gu,f=xe(o*m),x=xe(t*c),w=xe(l*g*d),j=xe(u*h),v=xe((o+t)*(m+c)-f-x),A=xe(j-w),q=xe(j+w),k=xe(x-y*f),C=xe(v*A),S=xe(q*k),D=xe(v*k),T=xe(A*q);return new Ma(C,S,T,D)}multiply(r,o=!0){if(!o&&(r===0n||this.is0()))return Co;if(Qn(r,1n,Vt),r===1n)return this;if(this.equals(nn))return rj(r).p;let t=Co,u=nn;for(let l=this;r>0n;l=l.double(),r>>=1n)r&1n?t=t.add(l):o&&(u=u.add(l));return t}toAffine(){const{ex:r,ey:o,ez:t}=this;if(this.equals(Co))return{x:0n,y:1n};const u=Ib(t,Wi);return xe(t*u)!==1n&&ca("invalid inverse"),{x:xe(r*u),y:xe(o*u)}}toBytes(){const{x:r,y:o}=this.assertValidity().toAffine(),t=Mb(o);return t[31]|=r&1n?128:0,t}toHex(){return Zu(this.toBytes())}clearCofactor(){return this.multiply(Zt(Vq),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let r=this.multiply(Vt/2n,!1).double();return Vt%2n&&(r=r.add(this)),r.is0()}static fromHex(r,o){return Ma.fromBytes(An(r),o)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}toRawBytes(){return this.toBytes()}};Hn(Ma,"BASE"),Hn(Ma,"ZERO");let Ba=Ma;const nn=new Ba(cg,ug,1n,xe(cg*ug)),Co=new Ba(0n,1n,1n,0n);Ba.BASE=nn;Ba.ZERO=Co;const Mb=a=>Xu(Rb(Qn(a,0n,Eu),Ir)).reverse(),Ju=a=>Zt("0x"+Zu(Yu(Zn(a)).reverse())),Ia=(a,r)=>{let o=a;for(;r-- >0n;)o*=o,o%=Wi;return o},$q=a=>{const o=a*a%Wi*a%Wi,t=Ia(o,2n)*o%Wi,u=Ia(t,1n)*a%Wi,l=Ia(u,5n)*u%Wi,m=Ia(l,10n)*l%Wi,c=Ia(m,20n)*m%Wi,h=Ia(c,40n)*c%Wi,d=Ia(h,80n)*h%Wi,y=Ia(d,80n)*h%Wi,g=Ia(y,10n)*l%Wi;return{pow_p_5_8:Ia(g,2n)*a%Wi,b2:o}},mg=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,Kq=(a,r)=>{const o=xe(r*r*r),t=xe(o*o*r),u=$q(a*t).pow_p_5_8;let l=xe(a*o*u);const m=xe(r*l*l),c=l,h=xe(l*mg),d=m===a,y=m===xe(-a),g=m===xe(-a*mg);return d&&(l=c),(y||g)&&(l=h),(xe(l)&1n)===1n&&(l=xe(-l)),{isValid:d||y,value:l}},Xt=a=>Nb(Ju(a)),ed=(...a)=>rd.sha512Async(...a),id=(...a)=>Qq("sha512Sync")(...a),Ob=a=>{const r=a.slice(0,La);r[0]&=248,r[31]&=127,r[31]|=64;const o=a.slice(La,Ir),t=Xt(r),u=nn.multiply(t),l=u.toBytes();return{head:r,prefix:o,scalar:t,point:u,pointBytes:l}},ad=a=>ed(An(a,La)).then(Ob),nd=a=>Ob(id(An(a,La))),Yq=a=>ad(a).then(r=>r.pointBytes),Zq=a=>nd(a).pointBytes,Hb=a=>ed(a.hashable).then(a.finish),Lb=a=>a.finish(id(a.hashable)),Vb=(a,r,o)=>{const{pointBytes:t,scalar:u}=a,l=Xt(r),m=nn.multiply(l).toBytes();return{hashable:Mr(m,t,o),finish:d=>{const y=Nb(l+Xt(d)*u);return Zn(Mr(m,Mb(y)),Ir)}}},Xq=async(a,r)=>{const o=An(a),t=await ad(r),u=await ed(t.prefix,o);return Hb(Vb(t,u,o))},Jq=(a,r)=>{const o=An(a),t=nd(r),u=id(t.prefix,o);return Lb(Vb(t,u,o))},od={zip215:!0},Ub=(a,r,o,t=od)=>{a=An(a,Ir),r=An(r),o=An(o,La);const{zip215:u}=t;let l,m,c,h,d=Uint8Array.of();try{l=Ba.fromHex(o,u),m=Ba.fromHex(a.slice(0,La),u),c=Ju(a.slice(La,Ir)),h=nn.multiply(c,!1),d=Mr(m.toBytes(),l.toBytes(),r)}catch{}return{hashable:d,finish:g=>{if(h==null||!u&&l.isSmallOrder())return!1;const f=Xt(g);return m.add(l.multiply(f,!1)).add(h.negate()).clearCofactor().is0()}}},ej=async(a,r,o,t=od)=>Hb(Ub(a,r,o,t)),ij=(a,r,o,t=od)=>Lb(Ub(a,r,o,t)),rd={sha512Async:async(...a)=>{const r=Gq(),o=Mr(...a);return ml(await r.digest("SHA-512",o.buffer))},sha512Sync:void 0,bytesToHex:Zu,hexToBytes:Xu,concatBytes:Mr,mod:xe,invert:Ib,randomBytes:Pb},aj={getExtendedPublicKeyAsync:ad,getExtendedPublicKey:nd,randomPrivateKey:()=>Pb(La),precompute:(a=8,r=nn)=>(r.multiply(3n),r)},Jt=8,nj=256,Wb=Math.ceil(nj/Jt)+1,Su=2**(Jt-1),oj=()=>{const a=[];let r=nn,o=r;for(let t=0;t{const o=r.negate();return a?o:r},rj=a=>{const r=hg||(hg=oj());let o=Co,t=nn;const u=2**Jt,l=u,m=Zt(u-1),c=Zt(Jt);for(let h=0;h>=c,d>Su&&(d-=l,a+=1n);const y=h*Su,g=y,f=y+Math.abs(d)-1,x=h%2!==0,w=d<0;d===0?t=t.add(gg(x,r[g])):o=o.add(gg(w,r[f]))}return{p:o,f:t}},sj=Object.freeze(Object.defineProperty({__proto__:null,CURVE:Db,ExtendedPoint:Ba,Point:Ba,etc:rd,getPublicKey:Zq,getPublicKeyAsync:Yq,sign:Jq,signAsync:Xq,utils:aj,verify:ij,verifyAsync:ej},Symbol.toStringTag,{value:"Module"})),tj=Lg(sj);var Un={},yu={exports:{}},yg;function lj(){return yg||(yg=1,(function(a,r){var o=(()=>{var u;var t=typeof document<"u"?(u=document.currentScript)==null?void 0:u.src:void 0;return(async function(l={}){var ze;var m,c=l,h=typeof window=="object",d=typeof WorkerGlobalScope<"u",y=typeof process=="object"&&((ze=process.versions)==null?void 0:ze.node)&&process.type!="renderer";typeof __filename<"u"?t=__filename:d&&(t=self.location.href);var g="";function f(K){return c.locateFile?c.locateFile(K,g):g+K}var x,w;if(y){var j=Yt;g=__dirname+"/",w=K=>{K=k(K)?new URL(K):K;var ne=j.readFileSync(K);return ne},x=async(K,ne=!0)=>{K=k(K)?new URL(K):K;var ye=j.readFileSync(K,ne?void 0:"utf8");return ye},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2)}else if(h||d){try{g=new URL(".",t).href}catch{}d&&(w=K=>{var ne=new XMLHttpRequest;return ne.open("GET",K,!1),ne.responseType="arraybuffer",ne.send(null),new Uint8Array(ne.response)}),x=async K=>{if(k(K))return new Promise((ye,Fe)=>{var Be=new XMLHttpRequest;Be.open("GET",K,!0),Be.responseType="arraybuffer",Be.onload=()=>{if(Be.status==200||Be.status==0&&Be.response){ye(Be.response);return}Fe(Be.status)},Be.onerror=Fe,Be.send(null)});var ne=await fetch(K,{credentials:"same-origin"});if(ne.ok)return ne.arrayBuffer();throw new Error(ne.status+" : "+ne.url)}}console.log.bind(console);var v=console.error.bind(console),A,q=!1,k=K=>K.startsWith("file://"),C,S,D,T,F,O=!1;function N(){var K=D.buffer;c.HEAP8=T=new Int8Array(K),c.HEAPU8=F=new Uint8Array(K),c.HEAP32=new Int32Array(K),c.HEAPU32=new Uint32Array(K),new BigInt64Array(K),new BigUint64Array(K)}function R(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Pe(c.preRun.shift());ge(je)}function V(){O=!0,ci.b()}function H(){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)le(c.postRun.shift());ge(re)}var $=0,ae=null;function J(K){var ne;$++,(ne=c.monitorRunDependencies)==null||ne.call(c,$)}function ie(K){var ye;if($--,(ye=c.monitorRunDependencies)==null||ye.call(c,$),$==0&&ae){var ne=ae;ae=null,ne()}}function W(K){var ye;(ye=c.onAbort)==null||ye.call(c,K),K="Aborted("+K+")",v(K),q=!0,K+=". Build with -sASSERTIONS for more info.";var ne=new WebAssembly.RuntimeError(K);throw S==null||S(ne),ne}var oe;function ee(){return f("orlp-ed25519.wasm")}function z(K){if(K==oe&&A)return new Uint8Array(A);if(w)return w(K);throw"both async and sync fetching of the wasm failed"}async function I(K){if(!A)try{var ne=await x(K);return new Uint8Array(ne)}catch{}return z(K)}async function L(K,ne){try{var ye=await I(K),Fe=await WebAssembly.instantiate(ye,ne);return Fe}catch(Be){v(`failed to asynchronously prepare wasm: ${Be}`),W(Be)}}async function G(K,ne,ye){if(!K&&typeof WebAssembly.instantiateStreaming=="function"&&!k(ne)&&!y)try{var Fe=fetch(ne,{credentials:"same-origin"}),Be=await WebAssembly.instantiateStreaming(Fe,ye);return Be}catch(Ne){v(`wasm streaming compile failed: ${Ne}`),v("falling back to ArrayBuffer instantiation")}return L(ne,ye)}function ue(){return{a:qi}}async function he(){function K(Ne,Re){return ci=Ne.exports,D=ci.a,N(),oa(ci),ie(),ci}J();function ne(Ne){return K(Ne.instance)}var ye=ue();if(c.instantiateWasm)return new Promise((Ne,Re)=>{c.instantiateWasm(ye,(Te,ji)=>{Ne(K(Te))})});oe??(oe=ee());var Fe=await G(A,oe,ye),Be=ne(Fe);return Be}var ge=K=>{for(;K.length>0;)K.shift()(c)},re=[],le=K=>re.push(K),je=[],Pe=K=>je.push(K),Ze=K=>zi(K),Je=()=>Ki(),_e=K=>{var ne=c["_"+K];return ne},Ge=(K,ne)=>{T.set(K,ne)},ei=K=>{for(var ne=0,ye=0;ye=55296&&Fe<=57343?(ne+=4,++ye):ne+=3}return ne},Ve=(K,ne,ye,Fe)=>{if(!(Fe>0))return 0;for(var Be=ye,Ne=ye+Fe-1,Re=0;Re=Ne)break;ne[ye++]=Te}else if(Te<=2047){if(ye+1>=Ne)break;ne[ye++]=192|Te>>6,ne[ye++]=128|Te&63}else if(Te<=65535){if(ye+2>=Ne)break;ne[ye++]=224|Te>>12,ne[ye++]=128|Te>>6&63,ne[ye++]=128|Te&63}else{if(ye+3>=Ne)break;ne[ye++]=240|Te>>18,ne[ye++]=128|Te>>12&63,ne[ye++]=128|Te>>6&63,ne[ye++]=128|Te&63,Re++}}return ne[ye]=0,ye-Be},xi=(K,ne,ye)=>Ve(K,F,ne,ye),ai=K=>Oi(K),Ti=K=>{var ne=ei(K)+1,ye=ai(ne);return xi(K,ye,ne),ye},si=typeof TextDecoder<"u"?new TextDecoder:void 0,We=(K,ne=0,ye=NaN)=>{for(var Fe=ne+ye,Be=ne;K[Be]&&!(Be>=Fe);)++Be;if(Be-ne>16&&K.buffer&&si)return si.decode(K.subarray(ne,Be));for(var Ne="";ne>10,56320|Ae&1023)}}return Ne},mi=(K,ne)=>K?We(F,K,ne):"",$i=(K,ne,ye,Fe,Be)=>{var Ne={string:He=>{var ni=0;return He!=null&&He!==0&&(ni=Ti(He)),ni},array:He=>{var ni=ai(He.length);return Ge(He,ni),ni}};function Re(He){return ne==="string"?mi(He):ne==="boolean"?!!He:He}var Te=_e(K),ji=[],Ae=0;if(Fe)for(var Oe=0;Oe{var Be=!ye||ye.every(Re=>Re==="number"||Re==="boolean"),Ne=ne!=="string";return Ne&&Be&&!Fe?_e(K):(...Re)=>$i(K,ne,ye,Re)};c.noExitRuntime&&c.noExitRuntime,c.print&&c.print,c.printErr&&(v=c.printErr),c.wasmBinary&&(A=c.wasmBinary),c.arguments&&c.arguments,c.thisProgram&&c.thisProgram,c.ccall=$i,c.cwrap=va;var zi,Oi,Ki;function oa(K){c._orlp_derive_public_key=K.c,c._orlp_validate_keypair=K.d,c._orlp_sign=K.e,c._orlp_verify=K.f,zi=K.g,Oi=K.h,Ki=K.i}var qi={},ci=await he();function Z(){if($>0){ae=Z;return}if(R(),$>0){ae=Z;return}function K(){var ne;c.calledRun=!0,!q&&(V(),C==null||C(c),(ne=c.onRuntimeInitialized)==null||ne.call(c),H())}c.setStatus?(c.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>c.setStatus(""),1),K()},1)):K()}function de(){if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.shift()()}return de(),Z(),O?m=c:m=new Promise((K,ne)=>{C=K,S=ne}),m})})();a.exports=o,a.exports.default=o})(yu)),yu.exports}var bg;function sd(){if(bg)return Un;bg=1,Object.defineProperty(Un,"__esModule",{value:!0}),Un.derivePublicKey=t,Un.validateKeyPair=u,Un.sign=l,Un.verify=m;const a=Mi(),r=lj();async function o(){return await r()}async function t(c){const h=await o(),d=(0,a.hexToBytes)(c);if(d.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${d.length}`);const y=1024,g=1088;if(h.HEAPU8.set(d,y),h.ccall("orlp_derive_public_key","number",["number","number"],[g,y])!==0)throw new Error("orlp key derivation failed: invalid private key");const x=new Uint8Array(32);return x.set(h.HEAPU8.subarray(g,g+32)),(0,a.bytesToHex)(x)}async function u(c,h){try{const d=await o(),y=(0,a.hexToBytes)(c),g=(0,a.hexToBytes)(h);if(y.length!==64||g.length!==32)return!1;const f=2048,x=2112;return d.HEAPU8.set(y,f),d.HEAPU8.set(g,x),d.ccall("orlp_validate_keypair","number",["number","number"],[x,f])===1}catch{return!1}}async function l(c,h,d){const y=await o(),g=(0,a.hexToBytes)(c),f=(0,a.hexToBytes)(h),x=(0,a.hexToBytes)(d);if(f.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${f.length}`);if(x.length!==32)throw new Error(`Invalid public key length: expected 32 bytes, got ${x.length}`);const w=1e5,j=2e5,v=3e5,A=4e5;y.HEAPU8.set(g,w),y.HEAPU8.set(f,j),y.HEAPU8.set(x,v),y.ccall("orlp_sign","void",["number","number","number","number","number"],[A,w,g.length,v,j]);const q=new Uint8Array(64);return q.set(y.HEAPU8.subarray(A,A+64)),(0,a.bytesToHex)(q)}async function m(c,h,d){try{const y=await o(),g=(0,a.hexToBytes)(c),f=(0,a.hexToBytes)(h),x=(0,a.hexToBytes)(d);if(g.length!==64||x.length!==32)return!1;const w=5e5,j=6e5,v=7e5;return y.HEAPU8.set(g,j),y.HEAPU8.set(f,w),y.HEAPU8.set(x,v),y.ccall("orlp_verify","number",["number","number","number","number"],[j,w,f.length,v])===1}catch{return!1}}return Un}var fg;function Gb(){if(fg)return Sa;fg=1;var a=Sa&&Sa.__createBinding||(Object.create?(function(d,y,g,f){f===void 0&&(f=g);var x=Object.getOwnPropertyDescriptor(y,g);(!x||("get"in x?!y.__esModule:x.writable||x.configurable))&&(x={enumerable:!0,get:function(){return y[g]}}),Object.defineProperty(d,f,x)}):(function(d,y,g,f){f===void 0&&(f=g),d[f]=y[g]})),r=Sa&&Sa.__setModuleDefault||(Object.create?(function(d,y){Object.defineProperty(d,"default",{enumerable:!0,value:y})}):function(d,y){d.default=y}),o=Sa&&Sa.__importStar||(function(){var d=function(y){return d=Object.getOwnPropertyNames||function(g){var f=[];for(var x in g)Object.prototype.hasOwnProperty.call(g,x)&&(f[f.length]=x);return f},d(y)};return function(y){if(y&&y.__esModule)return y;var g={};if(y!=null)for(var f=d(y),x=0;x>>24&255,x[w*4+1]=j>>>16&255,x[w*4+2]=j>>>8&255,x[w*4+3]=j&255}return x}catch{throw new Error("No SHA-512 implementation available for synchronous operation")}}t.etc.sha512Async=m;try{t.etc.sha512Sync=c}catch(d){console.debug("Could not set up synchronous SHA-512:",d)}class h{static async verifyAdvertisementSignature(y,g,f,x){try{const w=(0,u.hexToBytes)(y),j=(0,u.hexToBytes)(g),v=(0,u.hexToBytes)(x),A=this.constructAdvertSignedMessage(y,f,v);return await t.verify(j,A,w)}catch(w){return console.error("Ed25519 signature verification failed:",w),!1}}static constructAdvertSignedMessage(y,g,f){const x=(0,u.hexToBytes)(y),w=new Uint8Array(4);w[0]=g&255,w[1]=g>>8&255,w[2]=g>>16&255,w[3]=g>>24&255;const j=new Uint8Array(36+f.length);return j.set(x,0),j.set(w,32),j.set(f,36),j}static getSignedMessageDescription(y,g,f){return`Public Key: ${y} + Timestamp: ${g} (${new Date(g*1e3).toISOString()}) + App Data: ${f}`}static getSignedMessageHex(y,g,f){const x=(0,u.hexToBytes)(f),w=this.constructAdvertSignedMessage(y,g,x);return(0,u.bytesToHex)(w)}static async derivePublicKey(y){try{const g=(0,u.hexToBytes)(y);if(g.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${g.length}`);return await(0,l.derivePublicKey)(y)}catch(g){throw new Error(`Failed to derive public key: ${g instanceof Error?g.message:"Unknown error"}`)}}static derivePublicKeySync(y){try{const g=(0,u.hexToBytes)(y);throw g.length!==64?new Error(`Invalid private key length: expected 64 bytes, got ${g.length}`):new Error("Synchronous key derivation not supported with WASM. Use derivePublicKey() instead.")}catch(g){throw new Error(`Failed to derive public key: ${g instanceof Error?g.message:"Unknown error"}`)}}static async validateKeyPair(y,g){try{return await(0,l.validateKeyPair)(y,g)}catch{return!1}}}return Sa.Ed25519SignatureVerifier=h,Sa}var vg;function cj(){if(vg)return xr;vg=1,Object.defineProperty(xr,"__esModule",{value:!0}),xr.AdvertPayloadDecoder=void 0;const a=ua(),r=Mi(),o=Nr(),t=Gb();class u{static decode(m,c){try{if(m.length<101){const A={type:a.PayloadType.Advert,version:a.PayloadVersion.Version1,isValid:!1,errors:["Advertisement payload too short"],publicKey:"",timestamp:0,signature:"",appData:{flags:0,deviceRole:a.DeviceRole.ChatNode,hasLocation:!1,hasName:!1}};return c!=null&&c.includeSegments&&(A.segments=[{name:"Invalid Advert Data",description:"Advert payload too short (minimum 101 bytes required)",startByte:c.segmentOffset||0,endByte:(c.segmentOffset||0)+m.length-1,value:(0,r.bytesToHex)(m)}]),A}const h=[],d=(c==null?void 0:c.segmentOffset)||0;let y=0;const g=(0,r.bytesToHex)(m.subarray(y,y+32));c!=null&&c.includeSegments&&h.push({name:"Public Key",description:"Ed25519 public key",startByte:d+y,endByte:d+y+31,value:g}),y+=32;const f=this.readUint32LE(m,y);if(c!=null&&c.includeSegments){const A=new Date(f*1e3);h.push({name:"Timestamp",description:`${f} (${A.toISOString().slice(0,19)}Z)`,startByte:d+y,endByte:d+y+3,value:(0,r.bytesToHex)(m.subarray(y,y+4))})}y+=4;const x=(0,r.bytesToHex)(m.subarray(y,y+64));c!=null&&c.includeSegments&&h.push({name:"Signature",description:"Ed25519 signature",startByte:d+y,endByte:d+y+63,value:x}),y+=64;const w=m[y];if(c!=null&&c.includeSegments){const A=w.toString(2).padStart(8,"0"),q=this.parseDeviceRole(w),C=` | Bits 0-3 (Role): ${(0,o.getDeviceRoleName)(q)} | Bit 4 (Location): ${w&a.AdvertFlags.HasLocation?"Yes":"No"} | Bit 7 (Name): ${w&a.AdvertFlags.HasName?"Yes":"No"}`;h.push({name:"App Flags",description:`Binary: ${A}${C}`,startByte:d+y,endByte:d+y,value:w.toString(16).padStart(2,"0").toUpperCase()})}y+=1;const j={type:a.PayloadType.Advert,version:a.PayloadVersion.Version1,isValid:!0,publicKey:g,timestamp:f,signature:x,appData:{flags:w,deviceRole:this.parseDeviceRole(w),hasLocation:!!(w&a.AdvertFlags.HasLocation),hasName:!!(w&a.AdvertFlags.HasName)}};let v=y;if(w&a.AdvertFlags.HasLocation&&m.length>=v+8){const A=this.readInt32LE(m,v)/1e6,q=this.readInt32LE(m,v+4)/1e6;j.appData.location={latitude:Math.round(A*1e6)/1e6,longitude:Math.round(q*1e6)/1e6},c!=null&&c.includeSegments&&(h.push({name:"Latitude",description:`${A}° (${A})`,startByte:d+v,endByte:d+v+3,value:(0,r.bytesToHex)(m.subarray(v,v+4))}),h.push({name:"Longitude",description:`${q}° (${q})`,startByte:d+v+4,endByte:d+v+7,value:(0,r.bytesToHex)(m.subarray(v+4,v+8))})),v+=8}if(w&a.AdvertFlags.HasFeature1&&(v+=2),w&a.AdvertFlags.HasFeature2&&(v+=2),w&a.AdvertFlags.HasName&&m.length>v){const A=m.subarray(v),q=new TextDecoder("utf-8").decode(A).replace(/\0.*$/,"");j.appData.name=this.sanitizeControlCharacters(q)||q,c!=null&&c.includeSegments&&h.push({name:"Node Name",description:`Node name: "${j.appData.name}"`,startByte:d+v,endByte:d+m.length-1,value:(0,r.bytesToHex)(A)})}return c!=null&&c.includeSegments&&(j.segments=h),j}catch(h){return{type:a.PayloadType.Advert,version:a.PayloadVersion.Version1,isValid:!1,errors:[h instanceof Error?h.message:"Failed to decode advertisement payload"],publicKey:"",timestamp:0,signature:"",appData:{flags:0,deviceRole:a.DeviceRole.ChatNode,hasLocation:!1,hasName:!1}}}}static async decodeWithVerification(m,c){const h=this.decode(m,c);if(!h||!h.isValid)return h;try{const y=m.subarray(100),g=(0,r.bytesToHex)(y),f=await t.Ed25519SignatureVerifier.verifyAdvertisementSignature(h.publicKey,h.signature,h.timestamp,g);h.signatureValid=f,f||(h.signatureError="Ed25519 signature verification failed",h.isValid=!1,h.errors||(h.errors=[]),h.errors.push("Invalid Ed25519 signature"))}catch(d){h.signatureValid=!1,h.signatureError=d instanceof Error?d.message:"Signature verification error",h.isValid=!1,h.errors||(h.errors=[]),h.errors.push("Signature verification failed: "+(d instanceof Error?d.message:"Unknown error"))}return h}static parseDeviceRole(m){switch(m&15){case 1:return a.DeviceRole.ChatNode;case 2:return a.DeviceRole.Repeater;case 3:return a.DeviceRole.RoomServer;case 4:return a.DeviceRole.Sensor;default:return a.DeviceRole.ChatNode}}static readUint32LE(m,c){return m[c]|m[c+1]<<8|m[c+2]<<16|m[c+3]<<24}static readInt32LE(m,c){const h=this.readUint32LE(m,c);return h>2147483647?h-4294967296:h}static sanitizeControlCharacters(m){return m&&m.trim().replace(/[\x00-\x1F\x7F]/g,"")||null}}return xr.AdvertPayloadDecoder=u,xr}var zr={},kg;function uj(){if(kg)return zr;kg=1,Object.defineProperty(zr,"__esModule",{value:!0}),zr.TracePayloadDecoder=void 0;const a=ua(),r=Mi();class o{static decode(u,l,m){try{if(u.length<9){const q={type:a.PayloadType.Trace,version:a.PayloadVersion.Version1,isValid:!1,errors:["Trace payload too short (need at least tag(4) + auth(4) + flags(1))"],traceTag:"00000000",authCode:0,flags:0,pathHashes:[]};return m!=null&&m.includeSegments&&(q.segments=[{name:"Invalid Trace Data",description:"Trace payload too short (minimum 9 bytes required)",startByte:m.segmentOffset||0,endByte:(m.segmentOffset||0)+u.length-1,value:(0,r.bytesToHex)(u)}]),q}let c=0;const h=[],d=(m==null?void 0:m.segmentOffset)||0,y=this.readUint32LE(u,c),g=(0,r.numberToHex)(y,8);m!=null&&m.includeSegments&&h.push({name:"Trace Tag",description:`Unique identifier for this trace: 0x${y.toString(16).padStart(8,"0")}`,startByte:d+c,endByte:d+c+3,value:(0,r.bytesToHex)(u.slice(c,c+4))}),c+=4;const f=this.readUint32LE(u,c);m!=null&&m.includeSegments&&h.push({name:"Auth Code",description:`Authentication/verification code: ${f}`,startByte:d+c,endByte:d+c+3,value:(0,r.bytesToHex)(u.slice(c,c+4))}),c+=4;const x=u[c];m!=null&&m.includeSegments&&h.push({name:"Flags",description:`Application-defined control flags: 0x${x.toString(16).padStart(2,"0")} (${x.toString(2).padStart(8,"0")}b)`,startByte:d+c,endByte:d+c,value:x.toString(16).padStart(2,"0").toUpperCase()}),c+=1;const w=[],j=c;for(;c0){const q=w.join(" ");h.push({name:"Path Hashes",description:`Node hashes in trace path: ${q}`,startByte:d+j,endByte:d+u.length-1,value:(0,r.bytesToHex)(u.slice(j))})}let v;l&&l.length>0&&(v=l.map(q=>{const k=parseInt(q,16);return(k>127?k-256:k)/4}));const A={type:a.PayloadType.Trace,version:a.PayloadVersion.Version1,isValid:!0,traceTag:g,authCode:f,flags:x,pathHashes:w,snrValues:v};return m!=null&&m.includeSegments&&(A.segments=h),A}catch(c){return{type:a.PayloadType.Trace,version:a.PayloadVersion.Version1,isValid:!1,errors:[c instanceof Error?c.message:"Failed to decode trace payload"],traceTag:"00000000",authCode:0,flags:0,pathHashes:[]}}}static readUint32LE(u,l){return u[l]|u[l+1]<<8|u[l+2]<<16|u[l+3]<<24}}return zr.TracePayloadDecoder=o,zr}var qr={},wg;function dj(){if(wg)return qr;wg=1,Object.defineProperty(qr,"__esModule",{value:!0}),qr.GroupTextPayloadDecoder=void 0;const a=ua(),r=Ku(),o=Mi();class t{static decode(l,m){try{if(l.length<3){const w={type:a.PayloadType.GroupText,version:a.PayloadVersion.Version1,isValid:!1,errors:["GroupText payload too short (need at least channel_hash(1) + MAC(2))"],channelHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return m!=null&&m.includeSegments&&(w.segments=[{name:"Invalid GroupText Data",description:"GroupText payload too short (minimum 3 bytes required)",startByte:m.segmentOffset||0,endByte:(m.segmentOffset||0)+l.length-1,value:(0,o.bytesToHex)(l)}]),w}const c=[],h=(m==null?void 0:m.segmentOffset)||0;let d=0;const y=(0,o.byteToHex)(l[d]);m!=null&&m.includeSegments&&c.push({name:"Channel Hash",description:"First byte of SHA256 of channel's shared key",startByte:h+d,endByte:h+d,value:y}),d+=1;const g=(0,o.bytesToHex)(l.subarray(d,d+2));m!=null&&m.includeSegments&&c.push({name:"Cipher MAC",description:"MAC for encrypted data",startByte:h+d,endByte:h+d+1,value:g}),d+=2;const f=(0,o.bytesToHex)(l.subarray(d));m!=null&&m.includeSegments&&l.length>d&&c.push({name:"Ciphertext",description:"Encrypted message content (timestamp + flags + message)",startByte:h+d,endByte:h+l.length-1,value:f});const x={type:a.PayloadType.GroupText,version:a.PayloadVersion.Version1,isValid:!0,channelHash:y,cipherMac:g,ciphertext:f,ciphertextLength:l.length-3};if(m!=null&&m.keyStore&&m.keyStore.hasChannelKey(y)){const w=m.keyStore.getChannelKeys(y);for(const j of w){const v=r.ChannelCrypto.decryptGroupTextMessage(f,g,j);if(v.success&&v.data){x.decrypted={timestamp:v.data.timestamp,flags:v.data.flags,sender:v.data.sender,message:v.data.message};break}}}return m!=null&&m.includeSegments&&(x.segments=c),x}catch(c){return{type:a.PayloadType.GroupText,version:a.PayloadVersion.Version1,isValid:!1,errors:[c instanceof Error?c.message:"Failed to decode GroupText payload"],channelHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return qr.GroupTextPayloadDecoder=t,qr}var jr={},xg;function pj(){if(xg)return jr;xg=1,Object.defineProperty(jr,"__esModule",{value:!0}),jr.RequestPayloadDecoder=void 0;const a=ua(),r=Mi();class o{static decode(u,l){try{if(u.length<4){const w={type:a.PayloadType.Request,version:a.PayloadVersion.Version1,isValid:!1,errors:["Request payload too short (minimum 4 bytes: dest hash + source hash + MAC)"],timestamp:0,requestType:a.RequestType.GetStats,requestData:"",destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:""};return l!=null&&l.includeSegments&&(w.segments=[{name:"Invalid Request Data",description:"Request payload too short (minimum 4 bytes required: 1 for dest hash + 1 for source hash + 2 for MAC)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,r.bytesToHex)(u)}]),w}const m=[],c=(l==null?void 0:l.segmentOffset)||0;let h=0;const d=(0,r.bytesToHex)(u.subarray(h,h+1));l!=null&&l.includeSegments&&m.push({name:"Destination Hash",description:`First byte of destination node public key: 0x${d}`,startByte:c+h,endByte:c+h,value:d}),h+=1;const y=(0,r.bytesToHex)(u.subarray(h,h+1));l!=null&&l.includeSegments&&m.push({name:"Source Hash",description:`First byte of source node public key: 0x${y}`,startByte:c+h,endByte:c+h,value:y}),h+=1;const g=(0,r.bytesToHex)(u.subarray(h,h+2));l!=null&&l.includeSegments&&m.push({name:"Cipher MAC",description:"MAC for encrypted data verification (2 bytes)",startByte:c+h,endByte:c+h+1,value:g}),h+=2;const f=(0,r.bytesToHex)(u.subarray(h));l!=null&&l.includeSegments&&u.length>h&&m.push({name:"Ciphertext",description:`Encrypted message data (${u.length-h} bytes). Contains encrypted plaintext with this structure: + */return o.mode.CTRGladman=(function(){var t=o.lib.BlockCipherMode.extend();function u(c){if((c>>24&255)===255){var h=c>>16&255,d=c>>8&255,y=c&255;h===255?(h=0,d===255?(d=0,y===255?y=0:++y):++d):++h,c=0,c+=h<<16,c+=d<<8,c+=y}else c+=1<<24;return c}function l(c){return(c[0]=u(c[0]))===0&&(c[1]=u(c[1])),c}var m=t.Encryptor=t.extend({processBlock:function(c,h){var d=this._cipher,y=d.blockSize,g=this._iv,f=this._counter;g&&(f=this._counter=g.slice(0),this._iv=void 0),l(f);var x=f.slice(0);d.encryptBlock(x,0);for(var w=0;w>>2]|=c<<24-h%4*8,t.sigBytes+=c},unpad:function(t){var u=t.words[t.sigBytes-1>>>2]&255;t.sigBytes-=u}},o.pad.Ansix923})})(_t)),_t.exports}var Dt={exports:{}},kq=Dt.exports,Kh;function wq(){return Kh||(Kh=1,(function(a,r){(function(o,t,u){a.exports=t(He(),Ti())})(kq,function(o){return o.pad.Iso10126={pad:function(t,u){var l=u*4,m=l-t.sigBytes%l;t.concat(o.lib.WordArray.random(m-1)).concat(o.lib.WordArray.create([m<<24],1))},unpad:function(t){var u=t.words[t.sigBytes-1>>>2]&255;t.sigBytes-=u}},o.pad.Iso10126})})(Dt)),Dt.exports}var Ft={exports:{}},xq=Ft.exports,Yh;function zq(){return Yh||(Yh=1,(function(a,r){(function(o,t,u){a.exports=t(He(),Ti())})(xq,function(o){return o.pad.Iso97971={pad:function(t,u){t.concat(o.lib.WordArray.create([2147483648],1)),o.pad.ZeroPadding.pad(t,u)},unpad:function(t){o.pad.ZeroPadding.unpad(t),t.sigBytes--}},o.pad.Iso97971})})(Ft)),Ft.exports}var Rt={exports:{}},qq=Rt.exports,Zh;function jq(){return Zh||(Zh=1,(function(a,r){(function(o,t,u){a.exports=t(He(),Ti())})(qq,function(o){return o.pad.ZeroPadding={pad:function(t,u){var l=u*4;t.clamp(),t.sigBytes+=l-(t.sigBytes%l||l)},unpad:function(t){for(var u=t.words,l=t.sigBytes-1,l=t.sigBytes-1;l>=0;l--)if(u[l>>>2]>>>24-l%4*8&255){t.sigBytes=l+1;break}}},o.pad.ZeroPadding})})(Rt)),Rt.exports}var Tt={exports:{}},Aq=Tt.exports,Xh;function Cq(){return Xh||(Xh=1,(function(a,r){(function(o,t,u){a.exports=t(He(),Ti())})(Aq,function(o){return o.pad.NoPadding={pad:function(){},unpad:function(){}},o.pad.NoPadding})})(Tt)),Tt.exports}var Pt={exports:{}},Eq=Pt.exports,Jh;function Sq(){return Jh||(Jh=1,(function(a,r){(function(o,t,u){a.exports=t(He(),Ti())})(Eq,function(o){return(function(t){var u=o,l=u.lib,m=l.CipherParams,c=u.enc,h=c.Hex,d=u.format;d.Hex={stringify:function(y){return y.ciphertext.toString(h)},parse:function(y){var g=h.parse(y);return m.create({ciphertext:g})}}})(),o.format.Hex})})(Pt)),Pt.exports}var Nt={exports:{}},Bq=Nt.exports,eg;function _q(){return eg||(eg=1,(function(a,r){(function(o,t,u){a.exports=t(He(),Xn(),Jn(),Cn(),Ti())})(Bq,function(o){return(function(){var t=o,u=t.lib,l=u.BlockCipher,m=t.algo,c=[],h=[],d=[],y=[],g=[],f=[],x=[],w=[],j=[],v=[];(function(){for(var k=[],C=0;C<256;C++)C<128?k[C]=C<<1:k[C]=C<<1^283;for(var S=0,D=0,C=0;C<256;C++){var T=D^D<<1^D<<2^D<<3^D<<4;T=T>>>8^T&255^99,c[S]=T,h[T]=S;var F=k[S],O=k[F],N=k[O],R=k[T]*257^T*16843008;d[S]=R<<24|R>>>8,y[S]=R<<16|R>>>16,g[S]=R<<8|R>>>24,f[S]=R;var R=N*16843009^O*65537^F*257^S*16843008;x[T]=R<<24|R>>>8,w[T]=R<<16|R>>>16,j[T]=R<<8|R>>>24,v[T]=R,S?(S=F^k[k[k[N^F]]],D^=k[k[D]]):S=D=1}})();var A=[0,1,2,4,8,16,32,64,128,27,54],q=m.AES=l.extend({_doReset:function(){var k;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var C=this._keyPriorReset=this._key,S=C.words,D=C.sigBytes/4,T=this._nRounds=D+6,F=(T+1)*4,O=this._keySchedule=[],N=0;N6&&N%D==4&&(k=c[k>>>24]<<24|c[k>>>16&255]<<16|c[k>>>8&255]<<8|c[k&255]):(k=k<<8|k>>>24,k=c[k>>>24]<<24|c[k>>>16&255]<<16|c[k>>>8&255]<<8|c[k&255],k^=A[N/D|0]<<24),O[N]=O[N-D]^k);for(var R=this._invKeySchedule=[],V=0;V>>24]]^w[c[k>>>16&255]]^j[c[k>>>8&255]]^v[c[k&255]]}}},encryptBlock:function(k,C){this._doCryptBlock(k,C,this._keySchedule,d,y,g,f,c)},decryptBlock:function(k,C){var S=k[C+1];k[C+1]=k[C+3],k[C+3]=S,this._doCryptBlock(k,C,this._invKeySchedule,x,w,j,v,h);var S=k[C+1];k[C+1]=k[C+3],k[C+3]=S},_doCryptBlock:function(k,C,S,D,T,F,O,N){for(var R=this._nRounds,V=k[C]^S[0],H=k[C+1]^S[1],$=k[C+2]^S[2],ae=k[C+3]^S[3],J=4,ie=1;ie>>24]^T[H>>>16&255]^F[$>>>8&255]^O[ae&255]^S[J++],oe=D[H>>>24]^T[$>>>16&255]^F[ae>>>8&255]^O[V&255]^S[J++],ee=D[$>>>24]^T[ae>>>16&255]^F[V>>>8&255]^O[H&255]^S[J++],z=D[ae>>>24]^T[V>>>16&255]^F[H>>>8&255]^O[$&255]^S[J++];V=W,H=oe,$=ee,ae=z}var W=(N[V>>>24]<<24|N[H>>>16&255]<<16|N[$>>>8&255]<<8|N[ae&255])^S[J++],oe=(N[H>>>24]<<24|N[$>>>16&255]<<16|N[ae>>>8&255]<<8|N[V&255])^S[J++],ee=(N[$>>>24]<<24|N[ae>>>16&255]<<16|N[V>>>8&255]<<8|N[H&255])^S[J++],z=(N[ae>>>24]<<24|N[V>>>16&255]<<16|N[H>>>8&255]<<8|N[$&255])^S[J++];k[C]=W,k[C+1]=oe,k[C+2]=ee,k[C+3]=z},keySize:256/32});t.AES=l._createHelper(q)})(),o.AES})})(Nt)),Nt.exports}var It={exports:{}},Dq=It.exports,ig;function Fq(){return ig||(ig=1,(function(a,r){(function(o,t,u){a.exports=t(He(),Xn(),Jn(),Cn(),Ti())})(Dq,function(o){return(function(){var t=o,u=t.lib,l=u.WordArray,m=u.BlockCipher,c=t.algo,h=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],d=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],y=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],g=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],f=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],x=c.DES=m.extend({_doReset:function(){for(var A=this._key,q=A.words,k=[],C=0;C<56;C++){var S=h[C]-1;k[C]=q[S>>>5]>>>31-S%32&1}for(var D=this._subKeys=[],T=0;T<16;T++){for(var F=D[T]=[],O=y[T],C=0;C<24;C++)F[C/6|0]|=k[(d[C]-1+O)%28]<<31-C%6,F[4+(C/6|0)]|=k[28+(d[C+24]-1+O)%28]<<31-C%6;F[0]=F[0]<<1|F[0]>>>31;for(var C=1;C<7;C++)F[C]=F[C]>>>(C-1)*4+3;F[7]=F[7]<<5|F[7]>>>27}for(var N=this._invSubKeys=[],C=0;C<16;C++)N[C]=D[15-C]},encryptBlock:function(A,q){this._doCryptBlock(A,q,this._subKeys)},decryptBlock:function(A,q){this._doCryptBlock(A,q,this._invSubKeys)},_doCryptBlock:function(A,q,k){this._lBlock=A[q],this._rBlock=A[q+1],w.call(this,4,252645135),w.call(this,16,65535),j.call(this,2,858993459),j.call(this,8,16711935),w.call(this,1,1431655765);for(var C=0;C<16;C++){for(var S=k[C],D=this._lBlock,T=this._rBlock,F=0,O=0;O<8;O++)F|=g[O][((T^S[O])&f[O])>>>0];this._lBlock=T,this._rBlock=D^F}var N=this._lBlock;this._lBlock=this._rBlock,this._rBlock=N,w.call(this,1,1431655765),j.call(this,8,16711935),j.call(this,2,858993459),w.call(this,16,65535),w.call(this,4,252645135),A[q]=this._lBlock,A[q+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function w(A,q){var k=(this._lBlock>>>A^this._rBlock)&q;this._rBlock^=k,this._lBlock^=k<>>A^this._lBlock)&q;this._lBlock^=k,this._rBlock^=k<192.");var k=q.slice(0,2),C=q.length<4?q.slice(0,2):q.slice(2,4),S=q.length<6?q.slice(0,2):q.slice(4,6);this._des1=x.createEncryptor(l.create(k)),this._des2=x.createEncryptor(l.create(C)),this._des3=x.createEncryptor(l.create(S))},encryptBlock:function(A,q){this._des1.encryptBlock(A,q),this._des2.decryptBlock(A,q),this._des3.encryptBlock(A,q)},decryptBlock:function(A,q){this._des3.decryptBlock(A,q),this._des2.encryptBlock(A,q),this._des1.decryptBlock(A,q)},keySize:192/32,ivSize:64/32,blockSize:64/32});t.TripleDES=m._createHelper(v)})(),o.TripleDES})})(It)),It.exports}var Mt={exports:{}},Rq=Mt.exports,ag;function Tq(){return ag||(ag=1,(function(a,r){(function(o,t,u){a.exports=t(He(),Xn(),Jn(),Cn(),Ti())})(Rq,function(o){return(function(){var t=o,u=t.lib,l=u.StreamCipher,m=t.algo,c=m.RC4=l.extend({_doReset:function(){for(var y=this._key,g=y.words,f=y.sigBytes,x=this._S=[],w=0;w<256;w++)x[w]=w;for(var w=0,j=0;w<256;w++){var v=w%f,A=g[v>>>2]>>>24-v%4*8&255;j=(j+x[w]+A)%256;var q=x[w];x[w]=x[j],x[j]=q}this._i=this._j=0},_doProcessBlock:function(y,g){y[g]^=h.call(this)},keySize:256/32,ivSize:0});function h(){for(var y=this._S,g=this._i,f=this._j,x=0,w=0;w<4;w++){g=(g+1)%256,f=(f+y[g])%256;var j=y[g];y[g]=y[f],y[f]=j,x|=y[(y[g]+y[f])%256]<<24-w*8}return this._i=g,this._j=f,x}t.RC4=l._createHelper(c);var d=m.RC4Drop=c.extend({cfg:c.cfg.extend({drop:192}),_doReset:function(){c._doReset.call(this);for(var y=this.cfg.drop;y>0;y--)h.call(this)}});t.RC4Drop=l._createHelper(d)})(),o.RC4})})(Mt)),Mt.exports}var Ot={exports:{}},Pq=Ot.exports,ng;function Nq(){return ng||(ng=1,(function(a,r){(function(o,t,u){a.exports=t(He(),Xn(),Jn(),Cn(),Ti())})(Pq,function(o){return(function(){var t=o,u=t.lib,l=u.StreamCipher,m=t.algo,c=[],h=[],d=[],y=m.Rabbit=l.extend({_doReset:function(){for(var f=this._key.words,x=this.cfg.iv,w=0;w<4;w++)f[w]=(f[w]<<8|f[w]>>>24)&16711935|(f[w]<<24|f[w]>>>8)&4278255360;var j=this._X=[f[0],f[3]<<16|f[2]>>>16,f[1],f[0]<<16|f[3]>>>16,f[2],f[1]<<16|f[0]>>>16,f[3],f[2]<<16|f[1]>>>16],v=this._C=[f[2]<<16|f[2]>>>16,f[0]&4294901760|f[1]&65535,f[3]<<16|f[3]>>>16,f[1]&4294901760|f[2]&65535,f[0]<<16|f[0]>>>16,f[2]&4294901760|f[3]&65535,f[1]<<16|f[1]>>>16,f[3]&4294901760|f[0]&65535];this._b=0;for(var w=0;w<4;w++)g.call(this);for(var w=0;w<8;w++)v[w]^=j[w+4&7];if(x){var A=x.words,q=A[0],k=A[1],C=(q<<8|q>>>24)&16711935|(q<<24|q>>>8)&4278255360,S=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360,D=C>>>16|S&4294901760,T=S<<16|C&65535;v[0]^=C,v[1]^=D,v[2]^=S,v[3]^=T,v[4]^=C,v[5]^=D,v[6]^=S,v[7]^=T;for(var w=0;w<4;w++)g.call(this)}},_doProcessBlock:function(f,x){var w=this._X;g.call(this),c[0]=w[0]^w[5]>>>16^w[3]<<16,c[1]=w[2]^w[7]>>>16^w[5]<<16,c[2]=w[4]^w[1]>>>16^w[7]<<16,c[3]=w[6]^w[3]>>>16^w[1]<<16;for(var j=0;j<4;j++)c[j]=(c[j]<<8|c[j]>>>24)&16711935|(c[j]<<24|c[j]>>>8)&4278255360,f[x+j]^=c[j]},blockSize:128/32,ivSize:64/32});function g(){for(var f=this._X,x=this._C,w=0;w<8;w++)h[w]=x[w];x[0]=x[0]+1295307597+this._b|0,x[1]=x[1]+3545052371+(x[0]>>>0>>0?1:0)|0,x[2]=x[2]+886263092+(x[1]>>>0>>0?1:0)|0,x[3]=x[3]+1295307597+(x[2]>>>0>>0?1:0)|0,x[4]=x[4]+3545052371+(x[3]>>>0>>0?1:0)|0,x[5]=x[5]+886263092+(x[4]>>>0>>0?1:0)|0,x[6]=x[6]+1295307597+(x[5]>>>0>>0?1:0)|0,x[7]=x[7]+3545052371+(x[6]>>>0>>0?1:0)|0,this._b=x[7]>>>0>>0?1:0;for(var w=0;w<8;w++){var j=f[w]+x[w],v=j&65535,A=j>>>16,q=((v*v>>>17)+v*A>>>15)+A*A,k=((j&4294901760)*j|0)+((j&65535)*j|0);d[w]=q^k}f[0]=d[0]+(d[7]<<16|d[7]>>>16)+(d[6]<<16|d[6]>>>16)|0,f[1]=d[1]+(d[0]<<8|d[0]>>>24)+d[7]|0,f[2]=d[2]+(d[1]<<16|d[1]>>>16)+(d[0]<<16|d[0]>>>16)|0,f[3]=d[3]+(d[2]<<8|d[2]>>>24)+d[1]|0,f[4]=d[4]+(d[3]<<16|d[3]>>>16)+(d[2]<<16|d[2]>>>16)|0,f[5]=d[5]+(d[4]<<8|d[4]>>>24)+d[3]|0,f[6]=d[6]+(d[5]<<16|d[5]>>>16)+(d[4]<<16|d[4]>>>16)|0,f[7]=d[7]+(d[6]<<8|d[6]>>>24)+d[5]|0}t.Rabbit=l._createHelper(y)})(),o.Rabbit})})(Ot)),Ot.exports}var Ht={exports:{}},Iq=Ht.exports,og;function Mq(){return og||(og=1,(function(a,r){(function(o,t,u){a.exports=t(He(),Xn(),Jn(),Cn(),Ti())})(Iq,function(o){return(function(){var t=o,u=t.lib,l=u.StreamCipher,m=t.algo,c=[],h=[],d=[],y=m.RabbitLegacy=l.extend({_doReset:function(){var f=this._key.words,x=this.cfg.iv,w=this._X=[f[0],f[3]<<16|f[2]>>>16,f[1],f[0]<<16|f[3]>>>16,f[2],f[1]<<16|f[0]>>>16,f[3],f[2]<<16|f[1]>>>16],j=this._C=[f[2]<<16|f[2]>>>16,f[0]&4294901760|f[1]&65535,f[3]<<16|f[3]>>>16,f[1]&4294901760|f[2]&65535,f[0]<<16|f[0]>>>16,f[2]&4294901760|f[3]&65535,f[1]<<16|f[1]>>>16,f[3]&4294901760|f[0]&65535];this._b=0;for(var v=0;v<4;v++)g.call(this);for(var v=0;v<8;v++)j[v]^=w[v+4&7];if(x){var A=x.words,q=A[0],k=A[1],C=(q<<8|q>>>24)&16711935|(q<<24|q>>>8)&4278255360,S=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360,D=C>>>16|S&4294901760,T=S<<16|C&65535;j[0]^=C,j[1]^=D,j[2]^=S,j[3]^=T,j[4]^=C,j[5]^=D,j[6]^=S,j[7]^=T;for(var v=0;v<4;v++)g.call(this)}},_doProcessBlock:function(f,x){var w=this._X;g.call(this),c[0]=w[0]^w[5]>>>16^w[3]<<16,c[1]=w[2]^w[7]>>>16^w[5]<<16,c[2]=w[4]^w[1]>>>16^w[7]<<16,c[3]=w[6]^w[3]>>>16^w[1]<<16;for(var j=0;j<4;j++)c[j]=(c[j]<<8|c[j]>>>24)&16711935|(c[j]<<24|c[j]>>>8)&4278255360,f[x+j]^=c[j]},blockSize:128/32,ivSize:64/32});function g(){for(var f=this._X,x=this._C,w=0;w<8;w++)h[w]=x[w];x[0]=x[0]+1295307597+this._b|0,x[1]=x[1]+3545052371+(x[0]>>>0>>0?1:0)|0,x[2]=x[2]+886263092+(x[1]>>>0>>0?1:0)|0,x[3]=x[3]+1295307597+(x[2]>>>0>>0?1:0)|0,x[4]=x[4]+3545052371+(x[3]>>>0>>0?1:0)|0,x[5]=x[5]+886263092+(x[4]>>>0>>0?1:0)|0,x[6]=x[6]+1295307597+(x[5]>>>0>>0?1:0)|0,x[7]=x[7]+3545052371+(x[6]>>>0>>0?1:0)|0,this._b=x[7]>>>0>>0?1:0;for(var w=0;w<8;w++){var j=f[w]+x[w],v=j&65535,A=j>>>16,q=((v*v>>>17)+v*A>>>15)+A*A,k=((j&4294901760)*j|0)+((j&65535)*j|0);d[w]=q^k}f[0]=d[0]+(d[7]<<16|d[7]>>>16)+(d[6]<<16|d[6]>>>16)|0,f[1]=d[1]+(d[0]<<8|d[0]>>>24)+d[7]|0,f[2]=d[2]+(d[1]<<16|d[1]>>>16)+(d[0]<<16|d[0]>>>16)|0,f[3]=d[3]+(d[2]<<8|d[2]>>>24)+d[1]|0,f[4]=d[4]+(d[3]<<16|d[3]>>>16)+(d[2]<<16|d[2]>>>16)|0,f[5]=d[5]+(d[4]<<8|d[4]>>>24)+d[3]|0,f[6]=d[6]+(d[5]<<16|d[5]>>>16)+(d[4]<<16|d[4]>>>16)|0,f[7]=d[7]+(d[6]<<8|d[6]>>>24)+d[5]|0}t.RabbitLegacy=l._createHelper(y)})(),o.RabbitLegacy})})(Ht)),Ht.exports}var Lt={exports:{}},Oq=Lt.exports,rg;function Hq(){return rg||(rg=1,(function(a,r){(function(o,t,u){a.exports=t(He(),Xn(),Jn(),Cn(),Ti())})(Oq,function(o){return(function(){var t=o,u=t.lib,l=u.BlockCipher,m=t.algo;const c=16,h=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],d=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var y={pbox:[],sbox:[]};function g(v,A){let q=A>>24&255,k=A>>16&255,C=A>>8&255,S=A&255,D=v.sbox[0][q]+v.sbox[1][k];return D=D^v.sbox[2][C],D=D+v.sbox[3][S],D}function f(v,A,q){let k=A,C=q,S;for(let D=0;D1;--D)k=k^v.pbox[D],C=g(v,k)^C,S=k,k=C,C=S;return S=k,k=C,C=S,C=C^v.pbox[1],k=k^v.pbox[0],{left:k,right:C}}function w(v,A,q){for(let T=0;T<4;T++){v.sbox[T]=[];for(let F=0;F<256;F++)v.sbox[T][F]=d[T][F]}let k=0;for(let T=0;T=q&&(k=0);let C=0,S=0,D=0;for(let T=0;T=0&&(S=S.substring(0,D));const T=S.indexOf(": ");let F,O;if(T>0&&T<50){const N=S.substring(0,T);/[:\[\]]/.test(N)?O=S:(F=N,O=S.substring(T+2))}else O=S;return{success:!0,data:{timestamp:A,flags:q,sender:F,message:O}}}catch(c){return{success:!1,error:c instanceof Error?c.message:"Decryption failed"}}}static calculateChannelHash(u){const l=(0,a.SHA256)(a.enc.Hex.parse(u));return(0,r.hexToBytes)(l.toString(a.enc.Hex))[0].toString(16).padStart(2,"0")}}return wr.ChannelCrypto=o,wr}var lg;function _b(){if(lg)return kr;lg=1,Object.defineProperty(kr,"__esModule",{value:!0}),kr.MeshCoreKeyStore=void 0;const a=Ku();class r{constructor(t){this.nodeKeys=new Map,this.channelHashToKeys=new Map,t!=null&&t.channelSecrets&&this.addChannelSecrets(t.channelSecrets),t!=null&&t.nodeKeys&&Object.entries(t.nodeKeys).forEach(([u,l])=>{this.addNodeKey(u,l)})}addNodeKey(t,u){const l=t.toUpperCase();this.nodeKeys.set(l,u)}hasChannelKey(t){const u=t.toLowerCase();return this.channelHashToKeys.has(u)}hasNodeKey(t){const u=t.toUpperCase();return this.nodeKeys.has(u)}getChannelKeys(t){const u=t.toLowerCase();return this.channelHashToKeys.get(u)||[]}getNodeKey(t){const u=t.toUpperCase();return this.nodeKeys.get(u)}addChannelSecrets(t){for(const u of t){const l=a.ChannelCrypto.calculateChannelHash(u).toLowerCase();this.channelHashToKeys.has(l)||this.channelHashToKeys.set(l,[]),this.channelHashToKeys.get(l).push(u)}}}return kr.MeshCoreKeyStore=r,kr}var xr={},Sa={};/*! noble-ed25519 - MIT License (c) 2019 Paul Miller (paulmillr.com) */const Db={p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n},{p:Wi,n:Vt,Gx:cg,Gy:ug,a:hu,d:gu}=Db,Vq=8n,La=32,Ir=64,ca=(a="")=>{throw new Error(a)},Uq=a=>typeof a=="bigint",Fb=a=>typeof a=="string",Wq=a=>a instanceof Uint8Array||ArrayBuffer.isView(a)&&a.constructor.name==="Uint8Array",Zn=(a,r)=>!Wq(a)||typeof r=="number"&&r>0&&a.length!==r?ca("Uint8Array expected"):a,ml=a=>new Uint8Array(a),Yu=a=>Uint8Array.from(a),Rb=(a,r)=>a.toString(16).padStart(r,"0"),Zu=a=>Array.from(Zn(a)).map(r=>Rb(r,2)).join(""),en={_0:48,_9:57,A:65,F:70,a:97,f:102},dg=a=>{if(a>=en._0&&a<=en._9)return a-en._0;if(a>=en.A&&a<=en.F)return a-(en.A-10);if(a>=en.a&&a<=en.f)return a-(en.a-10)},Xu=a=>{const r="hex invalid";if(!Fb(a))return ca(r);const o=a.length,t=o/2;if(o%2)return ca(r);const u=ml(t);for(let l=0,m=0;lZn(Fb(a)?Xu(a):Yu(Zn(a)),r),Tb=()=>globalThis==null?void 0:globalThis.crypto,Gq=()=>{var a;return((a=Tb())==null?void 0:a.subtle)??ca("crypto.subtle must be defined")},Mr=(...a)=>{const r=ml(a.reduce((t,u)=>t+Zn(u).length,0));let o=0;return a.forEach(t=>{r.set(t,o),o+=t.length}),r},Pb=(a=La)=>Tb().getRandomValues(ml(a)),Zt=BigInt,Qn=(a,r,o,t="bad number: out of range")=>Uq(a)&&r<=a&&a{const o=a%r;return o>=0n?o:r+o},Nb=a=>xe(a,Vt),Ib=(a,r)=>{(a===0n||r<=0n)&&ca("no inverse n="+a+" mod="+r);let o=xe(a,r),t=r,u=0n,l=1n;for(;o!==0n;){const m=t/o,c=t%o,h=u-l*m;t=o,o=c,u=l,l=h}return t===1n?xe(u,r):ca("no inverse")},Qq=a=>{const r=rd[a];return typeof r!="function"&&ca("hashes."+a+" not set"),r},pg=a=>a instanceof Ba?a:ca("Point expected"),Eu=2n**256n,Ma=class Ma{constructor(r,o,t,u){Hn(this,"ex");Hn(this,"ey");Hn(this,"ez");Hn(this,"et");const l=Eu;this.ex=Qn(r,0n,l),this.ey=Qn(o,0n,l),this.ez=Qn(t,1n,l),this.et=Qn(u,0n,l),Object.freeze(this)}static fromAffine(r){return new Ma(r.x,r.y,1n,xe(r.x*r.y))}static fromBytes(r,o=!1){const t=gu,u=Yu(Zn(r,La)),l=r[31];u[31]=l&-129;const m=Ju(u);Qn(m,0n,o?Eu:Wi);const h=xe(m*m),d=xe(h-1n),y=xe(t*h+1n);let{isValid:g,value:f}=Kq(d,y);g||ca("bad point: y not sqrt");const x=(f&1n)===1n,w=(l&128)!==0;return!o&&f===0n&&w&&ca("bad point: x==0, isLastByteOdd"),w!==x&&(f=xe(-f)),new Ma(f,m,1n,xe(f*m))}assertValidity(){const r=hu,o=gu,t=this;if(t.is0())throw new Error("bad point: ZERO");const{ex:u,ey:l,ez:m,et:c}=t,h=xe(u*u),d=xe(l*l),y=xe(m*m),g=xe(y*y),f=xe(h*r),x=xe(y*xe(f+d)),w=xe(g+xe(o*xe(h*d)));if(x!==w)throw new Error("bad point: equation left != right (1)");const j=xe(u*l),v=xe(m*c);if(j!==v)throw new Error("bad point: equation left != right (2)");return this}equals(r){const{ex:o,ey:t,ez:u}=this,{ex:l,ey:m,ez:c}=pg(r),h=xe(o*c),d=xe(l*u),y=xe(t*c),g=xe(m*u);return h===d&&y===g}is0(){return this.equals(Co)}negate(){return new Ma(xe(-this.ex),this.ey,this.ez,xe(-this.et))}double(){const{ex:r,ey:o,ez:t}=this,u=hu,l=xe(r*r),m=xe(o*o),c=xe(2n*xe(t*t)),h=xe(u*l),d=r+o,y=xe(xe(d*d)-l-m),g=h+m,f=g-c,x=h-m,w=xe(y*f),j=xe(g*x),v=xe(y*x),A=xe(f*g);return new Ma(w,j,A,v)}add(r){const{ex:o,ey:t,ez:u,et:l}=this,{ex:m,ey:c,ez:h,et:d}=pg(r),y=hu,g=gu,f=xe(o*m),x=xe(t*c),w=xe(l*g*d),j=xe(u*h),v=xe((o+t)*(m+c)-f-x),A=xe(j-w),q=xe(j+w),k=xe(x-y*f),C=xe(v*A),S=xe(q*k),D=xe(v*k),T=xe(A*q);return new Ma(C,S,T,D)}multiply(r,o=!0){if(!o&&(r===0n||this.is0()))return Co;if(Qn(r,1n,Vt),r===1n)return this;if(this.equals(nn))return rj(r).p;let t=Co,u=nn;for(let l=this;r>0n;l=l.double(),r>>=1n)r&1n?t=t.add(l):o&&(u=u.add(l));return t}toAffine(){const{ex:r,ey:o,ez:t}=this;if(this.equals(Co))return{x:0n,y:1n};const u=Ib(t,Wi);return xe(t*u)!==1n&&ca("invalid inverse"),{x:xe(r*u),y:xe(o*u)}}toBytes(){const{x:r,y:o}=this.assertValidity().toAffine(),t=Mb(o);return t[31]|=r&1n?128:0,t}toHex(){return Zu(this.toBytes())}clearCofactor(){return this.multiply(Zt(Vq),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let r=this.multiply(Vt/2n,!1).double();return Vt%2n&&(r=r.add(this)),r.is0()}static fromHex(r,o){return Ma.fromBytes(An(r),o)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}toRawBytes(){return this.toBytes()}};Hn(Ma,"BASE"),Hn(Ma,"ZERO");let Ba=Ma;const nn=new Ba(cg,ug,1n,xe(cg*ug)),Co=new Ba(0n,1n,1n,0n);Ba.BASE=nn;Ba.ZERO=Co;const Mb=a=>Xu(Rb(Qn(a,0n,Eu),Ir)).reverse(),Ju=a=>Zt("0x"+Zu(Yu(Zn(a)).reverse())),Ia=(a,r)=>{let o=a;for(;r-- >0n;)o*=o,o%=Wi;return o},$q=a=>{const o=a*a%Wi*a%Wi,t=Ia(o,2n)*o%Wi,u=Ia(t,1n)*a%Wi,l=Ia(u,5n)*u%Wi,m=Ia(l,10n)*l%Wi,c=Ia(m,20n)*m%Wi,h=Ia(c,40n)*c%Wi,d=Ia(h,80n)*h%Wi,y=Ia(d,80n)*h%Wi,g=Ia(y,10n)*l%Wi;return{pow_p_5_8:Ia(g,2n)*a%Wi,b2:o}},mg=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,Kq=(a,r)=>{const o=xe(r*r*r),t=xe(o*o*r),u=$q(a*t).pow_p_5_8;let l=xe(a*o*u);const m=xe(r*l*l),c=l,h=xe(l*mg),d=m===a,y=m===xe(-a),g=m===xe(-a*mg);return d&&(l=c),(y||g)&&(l=h),(xe(l)&1n)===1n&&(l=xe(-l)),{isValid:d||y,value:l}},Xt=a=>Nb(Ju(a)),ed=(...a)=>rd.sha512Async(...a),id=(...a)=>Qq("sha512Sync")(...a),Ob=a=>{const r=a.slice(0,La);r[0]&=248,r[31]&=127,r[31]|=64;const o=a.slice(La,Ir),t=Xt(r),u=nn.multiply(t),l=u.toBytes();return{head:r,prefix:o,scalar:t,point:u,pointBytes:l}},ad=a=>ed(An(a,La)).then(Ob),nd=a=>Ob(id(An(a,La))),Yq=a=>ad(a).then(r=>r.pointBytes),Zq=a=>nd(a).pointBytes,Hb=a=>ed(a.hashable).then(a.finish),Lb=a=>a.finish(id(a.hashable)),Vb=(a,r,o)=>{const{pointBytes:t,scalar:u}=a,l=Xt(r),m=nn.multiply(l).toBytes();return{hashable:Mr(m,t,o),finish:d=>{const y=Nb(l+Xt(d)*u);return Zn(Mr(m,Mb(y)),Ir)}}},Xq=async(a,r)=>{const o=An(a),t=await ad(r),u=await ed(t.prefix,o);return Hb(Vb(t,u,o))},Jq=(a,r)=>{const o=An(a),t=nd(r),u=id(t.prefix,o);return Lb(Vb(t,u,o))},od={zip215:!0},Ub=(a,r,o,t=od)=>{a=An(a,Ir),r=An(r),o=An(o,La);const{zip215:u}=t;let l,m,c,h,d=Uint8Array.of();try{l=Ba.fromHex(o,u),m=Ba.fromHex(a.slice(0,La),u),c=Ju(a.slice(La,Ir)),h=nn.multiply(c,!1),d=Mr(m.toBytes(),l.toBytes(),r)}catch{}return{hashable:d,finish:g=>{if(h==null||!u&&l.isSmallOrder())return!1;const f=Xt(g);return m.add(l.multiply(f,!1)).add(h.negate()).clearCofactor().is0()}}},ej=async(a,r,o,t=od)=>Hb(Ub(a,r,o,t)),ij=(a,r,o,t=od)=>Lb(Ub(a,r,o,t)),rd={sha512Async:async(...a)=>{const r=Gq(),o=Mr(...a);return ml(await r.digest("SHA-512",o.buffer))},sha512Sync:void 0,bytesToHex:Zu,hexToBytes:Xu,concatBytes:Mr,mod:xe,invert:Ib,randomBytes:Pb},aj={getExtendedPublicKeyAsync:ad,getExtendedPublicKey:nd,randomPrivateKey:()=>Pb(La),precompute:(a=8,r=nn)=>(r.multiply(3n),r)},Jt=8,nj=256,Wb=Math.ceil(nj/Jt)+1,Su=2**(Jt-1),oj=()=>{const a=[];let r=nn,o=r;for(let t=0;t{const o=r.negate();return a?o:r},rj=a=>{const r=hg||(hg=oj());let o=Co,t=nn;const u=2**Jt,l=u,m=Zt(u-1),c=Zt(Jt);for(let h=0;h>=c,d>Su&&(d-=l,a+=1n);const y=h*Su,g=y,f=y+Math.abs(d)-1,x=h%2!==0,w=d<0;d===0?t=t.add(gg(x,r[g])):o=o.add(gg(w,r[f]))}return{p:o,f:t}},sj=Object.freeze(Object.defineProperty({__proto__:null,CURVE:Db,ExtendedPoint:Ba,Point:Ba,etc:rd,getPublicKey:Zq,getPublicKeyAsync:Yq,sign:Jq,signAsync:Xq,utils:aj,verify:ij,verifyAsync:ej},Symbol.toStringTag,{value:"Module"})),tj=Lg(sj);var Un={},yu={exports:{}},yg;function lj(){return yg||(yg=1,(function(a,r){var o=(()=>{var u;var t=typeof document<"u"?(u=document.currentScript)==null?void 0:u.src:void 0;return(async function(l={}){var ze;var m,c=l,h=typeof window=="object",d=typeof WorkerGlobalScope<"u",y=typeof process=="object"&&((ze=process.versions)==null?void 0:ze.node)&&process.type!="renderer";typeof __filename<"u"?t=__filename:d&&(t=self.location.href);var g="";function f(K){return c.locateFile?c.locateFile(K,g):g+K}var x,w;if(y){var j=Yt;g=__dirname+"/",w=K=>{K=k(K)?new URL(K):K;var ne=j.readFileSync(K);return ne},x=async(K,ne=!0)=>{K=k(K)?new URL(K):K;var ye=j.readFileSync(K,ne?void 0:"utf8");return ye},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2)}else if(h||d){try{g=new URL(".",t).href}catch{}d&&(w=K=>{var ne=new XMLHttpRequest;return ne.open("GET",K,!1),ne.responseType="arraybuffer",ne.send(null),new Uint8Array(ne.response)}),x=async K=>{if(k(K))return new Promise((ye,De)=>{var Be=new XMLHttpRequest;Be.open("GET",K,!0),Be.responseType="arraybuffer",Be.onload=()=>{if(Be.status==200||Be.status==0&&Be.response){ye(Be.response);return}De(Be.status)},Be.onerror=De,Be.send(null)});var ne=await fetch(K,{credentials:"same-origin"});if(ne.ok)return ne.arrayBuffer();throw new Error(ne.status+" : "+ne.url)}}console.log.bind(console);var v=console.error.bind(console),A,q=!1,k=K=>K.startsWith("file://"),C,S,D,T,F,O=!1;function N(){var K=D.buffer;c.HEAP8=T=new Int8Array(K),c.HEAPU8=F=new Uint8Array(K),c.HEAP32=new Int32Array(K),c.HEAPU32=new Uint32Array(K),new BigInt64Array(K),new BigUint64Array(K)}function R(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Te(c.preRun.shift());ge(je)}function V(){O=!0,ui.b()}function H(){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)le(c.postRun.shift());ge(re)}var $=0,ae=null;function J(K){var ne;$++,(ne=c.monitorRunDependencies)==null||ne.call(c,$)}function ie(K){var ye;if($--,(ye=c.monitorRunDependencies)==null||ye.call(c,$),$==0&&ae){var ne=ae;ae=null,ne()}}function W(K){var ye;(ye=c.onAbort)==null||ye.call(c,K),K="Aborted("+K+")",v(K),q=!0,K+=". Build with -sASSERTIONS for more info.";var ne=new WebAssembly.RuntimeError(K);throw S==null||S(ne),ne}var oe;function ee(){return f("orlp-ed25519.wasm")}function z(K){if(K==oe&&A)return new Uint8Array(A);if(w)return w(K);throw"both async and sync fetching of the wasm failed"}async function I(K){if(!A)try{var ne=await x(K);return new Uint8Array(ne)}catch{}return z(K)}async function L(K,ne){try{var ye=await I(K),De=await WebAssembly.instantiate(ye,ne);return De}catch(Be){v(`failed to asynchronously prepare wasm: ${Be}`),W(Be)}}async function G(K,ne,ye){if(!K&&typeof WebAssembly.instantiateStreaming=="function"&&!k(ne)&&!y)try{var De=fetch(ne,{credentials:"same-origin"}),Be=await WebAssembly.instantiateStreaming(De,ye);return Be}catch(Pe){v(`wasm streaming compile failed: ${Pe}`),v("falling back to ArrayBuffer instantiation")}return L(ne,ye)}function ue(){return{a:ji}}async function he(){function K(Pe,Fe){return ui=Pe.exports,D=ui.a,N(),oa(ui),ie(),ui}J();function ne(Pe){return K(Pe.instance)}var ye=ue();if(c.instantiateWasm)return new Promise((Pe,Fe)=>{c.instantiateWasm(ye,(Re,Ai)=>{Pe(K(Re))})});oe??(oe=ee());var De=await G(A,oe,ye),Be=ne(De);return Be}var ge=K=>{for(;K.length>0;)K.shift()(c)},re=[],le=K=>re.push(K),je=[],Te=K=>je.push(K),Xe=K=>qi(K),ai=()=>Ki(),Ue=K=>{var ne=c["_"+K];return ne},We=(K,ne)=>{T.set(K,ne)},Le=K=>{for(var ne=0,ye=0;ye=55296&&De<=57343?(ne+=4,++ye):ne+=3}return ne},Je=(K,ne,ye,De)=>{if(!(De>0))return 0;for(var Be=ye,Pe=ye+De-1,Fe=0;Fe=Pe)break;ne[ye++]=Re}else if(Re<=2047){if(ye+1>=Pe)break;ne[ye++]=192|Re>>6,ne[ye++]=128|Re&63}else if(Re<=65535){if(ye+2>=Pe)break;ne[ye++]=224|Re>>12,ne[ye++]=128|Re>>6&63,ne[ye++]=128|Re&63}else{if(ye+3>=Pe)break;ne[ye++]=240|Re>>18,ne[ye++]=128|Re>>12&63,ne[ye++]=128|Re>>6&63,ne[ye++]=128|Re&63,Fe++}}return ne[ye]=0,ye-Be},$e=(K,ne,ye)=>Je(K,F,ne,ye),ni=K=>Oi(K),fi=K=>{var ne=Le(K)+1,ye=ni(ne);return $e(K,ye,ne),ye},ti=typeof TextDecoder<"u"?new TextDecoder:void 0,Ge=(K,ne=0,ye=NaN)=>{for(var De=ne+ye,Be=ne;K[Be]&&!(Be>=De);)++Be;if(Be-ne>16&&K.buffer&&ti)return ti.decode(K.subarray(ne,Be));for(var Pe="";ne>10,56320|Ae&1023)}}return Pe},hi=(K,ne)=>K?Ge(F,K,ne):"",$i=(K,ne,ye,De,Be)=>{var Pe={string:Oe=>{var oi=0;return Oe!=null&&Oe!==0&&(oi=fi(Oe)),oi},array:Oe=>{var oi=ni(Oe.length);return We(Oe,oi),oi}};function Fe(Oe){return ne==="string"?hi(Oe):ne==="boolean"?!!Oe:Oe}var Re=Ue(K),Ai=[],Ae=0;if(De)for(var Me=0;Me{var Be=!ye||ye.every(Fe=>Fe==="number"||Fe==="boolean"),Pe=ne!=="string";return Pe&&Be&&!De?Ue(K):(...Fe)=>$i(K,ne,ye,Fe)};c.noExitRuntime&&c.noExitRuntime,c.print&&c.print,c.printErr&&(v=c.printErr),c.wasmBinary&&(A=c.wasmBinary),c.arguments&&c.arguments,c.thisProgram&&c.thisProgram,c.ccall=$i,c.cwrap=va;var qi,Oi,Ki;function oa(K){c._orlp_derive_public_key=K.c,c._orlp_validate_keypair=K.d,c._orlp_sign=K.e,c._orlp_verify=K.f,qi=K.g,Oi=K.h,Ki=K.i}var ji={},ui=await he();function Z(){if($>0){ae=Z;return}if(R(),$>0){ae=Z;return}function K(){var ne;c.calledRun=!0,!q&&(V(),C==null||C(c),(ne=c.onRuntimeInitialized)==null||ne.call(c),H())}c.setStatus?(c.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>c.setStatus(""),1),K()},1)):K()}function de(){if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.shift()()}return de(),Z(),O?m=c:m=new Promise((K,ne)=>{C=K,S=ne}),m})})();a.exports=o,a.exports.default=o})(yu)),yu.exports}var bg;function sd(){if(bg)return Un;bg=1,Object.defineProperty(Un,"__esModule",{value:!0}),Un.derivePublicKey=t,Un.validateKeyPair=u,Un.sign=l,Un.verify=m;const a=Mi(),r=lj();async function o(){return await r()}async function t(c){const h=await o(),d=(0,a.hexToBytes)(c);if(d.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${d.length}`);const y=1024,g=1088;if(h.HEAPU8.set(d,y),h.ccall("orlp_derive_public_key","number",["number","number"],[g,y])!==0)throw new Error("orlp key derivation failed: invalid private key");const x=new Uint8Array(32);return x.set(h.HEAPU8.subarray(g,g+32)),(0,a.bytesToHex)(x)}async function u(c,h){try{const d=await o(),y=(0,a.hexToBytes)(c),g=(0,a.hexToBytes)(h);if(y.length!==64||g.length!==32)return!1;const f=2048,x=2112;return d.HEAPU8.set(y,f),d.HEAPU8.set(g,x),d.ccall("orlp_validate_keypair","number",["number","number"],[x,f])===1}catch{return!1}}async function l(c,h,d){const y=await o(),g=(0,a.hexToBytes)(c),f=(0,a.hexToBytes)(h),x=(0,a.hexToBytes)(d);if(f.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${f.length}`);if(x.length!==32)throw new Error(`Invalid public key length: expected 32 bytes, got ${x.length}`);const w=1e5,j=2e5,v=3e5,A=4e5;y.HEAPU8.set(g,w),y.HEAPU8.set(f,j),y.HEAPU8.set(x,v),y.ccall("orlp_sign","void",["number","number","number","number","number"],[A,w,g.length,v,j]);const q=new Uint8Array(64);return q.set(y.HEAPU8.subarray(A,A+64)),(0,a.bytesToHex)(q)}async function m(c,h,d){try{const y=await o(),g=(0,a.hexToBytes)(c),f=(0,a.hexToBytes)(h),x=(0,a.hexToBytes)(d);if(g.length!==64||x.length!==32)return!1;const w=5e5,j=6e5,v=7e5;return y.HEAPU8.set(g,j),y.HEAPU8.set(f,w),y.HEAPU8.set(x,v),y.ccall("orlp_verify","number",["number","number","number","number"],[j,w,f.length,v])===1}catch{return!1}}return Un}var fg;function Gb(){if(fg)return Sa;fg=1;var a=Sa&&Sa.__createBinding||(Object.create?(function(d,y,g,f){f===void 0&&(f=g);var x=Object.getOwnPropertyDescriptor(y,g);(!x||("get"in x?!y.__esModule:x.writable||x.configurable))&&(x={enumerable:!0,get:function(){return y[g]}}),Object.defineProperty(d,f,x)}):(function(d,y,g,f){f===void 0&&(f=g),d[f]=y[g]})),r=Sa&&Sa.__setModuleDefault||(Object.create?(function(d,y){Object.defineProperty(d,"default",{enumerable:!0,value:y})}):function(d,y){d.default=y}),o=Sa&&Sa.__importStar||(function(){var d=function(y){return d=Object.getOwnPropertyNames||function(g){var f=[];for(var x in g)Object.prototype.hasOwnProperty.call(g,x)&&(f[f.length]=x);return f},d(y)};return function(y){if(y&&y.__esModule)return y;var g={};if(y!=null)for(var f=d(y),x=0;x>>24&255,x[w*4+1]=j>>>16&255,x[w*4+2]=j>>>8&255,x[w*4+3]=j&255}return x}catch{throw new Error("No SHA-512 implementation available for synchronous operation")}}t.etc.sha512Async=m;try{t.etc.sha512Sync=c}catch(d){console.debug("Could not set up synchronous SHA-512:",d)}class h{static async verifyAdvertisementSignature(y,g,f,x){try{const w=(0,u.hexToBytes)(y),j=(0,u.hexToBytes)(g),v=(0,u.hexToBytes)(x),A=this.constructAdvertSignedMessage(y,f,v);return await t.verify(j,A,w)}catch(w){return console.error("Ed25519 signature verification failed:",w),!1}}static constructAdvertSignedMessage(y,g,f){const x=(0,u.hexToBytes)(y),w=new Uint8Array(4);w[0]=g&255,w[1]=g>>8&255,w[2]=g>>16&255,w[3]=g>>24&255;const j=new Uint8Array(36+f.length);return j.set(x,0),j.set(w,32),j.set(f,36),j}static getSignedMessageDescription(y,g,f){return`Public Key: ${y} + Timestamp: ${g} (${new Date(g*1e3).toISOString()}) + App Data: ${f}`}static getSignedMessageHex(y,g,f){const x=(0,u.hexToBytes)(f),w=this.constructAdvertSignedMessage(y,g,x);return(0,u.bytesToHex)(w)}static async derivePublicKey(y){try{const g=(0,u.hexToBytes)(y);if(g.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${g.length}`);return await(0,l.derivePublicKey)(y)}catch(g){throw new Error(`Failed to derive public key: ${g instanceof Error?g.message:"Unknown error"}`)}}static derivePublicKeySync(y){try{const g=(0,u.hexToBytes)(y);throw g.length!==64?new Error(`Invalid private key length: expected 64 bytes, got ${g.length}`):new Error("Synchronous key derivation not supported with WASM. Use derivePublicKey() instead.")}catch(g){throw new Error(`Failed to derive public key: ${g instanceof Error?g.message:"Unknown error"}`)}}static async validateKeyPair(y,g){try{return await(0,l.validateKeyPair)(y,g)}catch{return!1}}}return Sa.Ed25519SignatureVerifier=h,Sa}var vg;function cj(){if(vg)return xr;vg=1,Object.defineProperty(xr,"__esModule",{value:!0}),xr.AdvertPayloadDecoder=void 0;const a=ua(),r=Mi(),o=Nr(),t=Gb();class u{static decode(m,c){try{if(m.length<101){const A={type:a.PayloadType.Advert,version:a.PayloadVersion.Version1,isValid:!1,errors:["Advertisement payload too short"],publicKey:"",timestamp:0,signature:"",appData:{flags:0,deviceRole:a.DeviceRole.ChatNode,hasLocation:!1,hasName:!1}};return c!=null&&c.includeSegments&&(A.segments=[{name:"Invalid Advert Data",description:"Advert payload too short (minimum 101 bytes required)",startByte:c.segmentOffset||0,endByte:(c.segmentOffset||0)+m.length-1,value:(0,r.bytesToHex)(m)}]),A}const h=[],d=(c==null?void 0:c.segmentOffset)||0;let y=0;const g=(0,r.bytesToHex)(m.subarray(y,y+32));c!=null&&c.includeSegments&&h.push({name:"Public Key",description:"Ed25519 public key",startByte:d+y,endByte:d+y+31,value:g}),y+=32;const f=this.readUint32LE(m,y);if(c!=null&&c.includeSegments){const A=new Date(f*1e3);h.push({name:"Timestamp",description:`${f} (${A.toISOString().slice(0,19)}Z)`,startByte:d+y,endByte:d+y+3,value:(0,r.bytesToHex)(m.subarray(y,y+4))})}y+=4;const x=(0,r.bytesToHex)(m.subarray(y,y+64));c!=null&&c.includeSegments&&h.push({name:"Signature",description:"Ed25519 signature",startByte:d+y,endByte:d+y+63,value:x}),y+=64;const w=m[y];if(c!=null&&c.includeSegments){const A=w.toString(2).padStart(8,"0"),q=this.parseDeviceRole(w),C=` | Bits 0-3 (Role): ${(0,o.getDeviceRoleName)(q)} | Bit 4 (Location): ${w&a.AdvertFlags.HasLocation?"Yes":"No"} | Bit 7 (Name): ${w&a.AdvertFlags.HasName?"Yes":"No"}`;h.push({name:"App Flags",description:`Binary: ${A}${C}`,startByte:d+y,endByte:d+y,value:w.toString(16).padStart(2,"0").toUpperCase()})}y+=1;const j={type:a.PayloadType.Advert,version:a.PayloadVersion.Version1,isValid:!0,publicKey:g,timestamp:f,signature:x,appData:{flags:w,deviceRole:this.parseDeviceRole(w),hasLocation:!!(w&a.AdvertFlags.HasLocation),hasName:!!(w&a.AdvertFlags.HasName)}};let v=y;if(w&a.AdvertFlags.HasLocation&&m.length>=v+8){const A=this.readInt32LE(m,v)/1e6,q=this.readInt32LE(m,v+4)/1e6;j.appData.location={latitude:Math.round(A*1e6)/1e6,longitude:Math.round(q*1e6)/1e6},c!=null&&c.includeSegments&&(h.push({name:"Latitude",description:`${A}° (${A})`,startByte:d+v,endByte:d+v+3,value:(0,r.bytesToHex)(m.subarray(v,v+4))}),h.push({name:"Longitude",description:`${q}° (${q})`,startByte:d+v+4,endByte:d+v+7,value:(0,r.bytesToHex)(m.subarray(v+4,v+8))})),v+=8}if(w&a.AdvertFlags.HasFeature1&&(v+=2),w&a.AdvertFlags.HasFeature2&&(v+=2),w&a.AdvertFlags.HasName&&m.length>v){const A=m.subarray(v),q=new TextDecoder("utf-8").decode(A).replace(/\0.*$/,"");j.appData.name=this.sanitizeControlCharacters(q)||q,c!=null&&c.includeSegments&&h.push({name:"Node Name",description:`Node name: "${j.appData.name}"`,startByte:d+v,endByte:d+m.length-1,value:(0,r.bytesToHex)(A)})}return c!=null&&c.includeSegments&&(j.segments=h),j}catch(h){return{type:a.PayloadType.Advert,version:a.PayloadVersion.Version1,isValid:!1,errors:[h instanceof Error?h.message:"Failed to decode advertisement payload"],publicKey:"",timestamp:0,signature:"",appData:{flags:0,deviceRole:a.DeviceRole.ChatNode,hasLocation:!1,hasName:!1}}}}static async decodeWithVerification(m,c){const h=this.decode(m,c);if(!h||!h.isValid)return h;try{const y=m.subarray(100),g=(0,r.bytesToHex)(y),f=await t.Ed25519SignatureVerifier.verifyAdvertisementSignature(h.publicKey,h.signature,h.timestamp,g);h.signatureValid=f,f||(h.signatureError="Ed25519 signature verification failed",h.isValid=!1,h.errors||(h.errors=[]),h.errors.push("Invalid Ed25519 signature"))}catch(d){h.signatureValid=!1,h.signatureError=d instanceof Error?d.message:"Signature verification error",h.isValid=!1,h.errors||(h.errors=[]),h.errors.push("Signature verification failed: "+(d instanceof Error?d.message:"Unknown error"))}return h}static parseDeviceRole(m){switch(m&15){case 1:return a.DeviceRole.ChatNode;case 2:return a.DeviceRole.Repeater;case 3:return a.DeviceRole.RoomServer;case 4:return a.DeviceRole.Sensor;default:return a.DeviceRole.ChatNode}}static readUint32LE(m,c){return m[c]|m[c+1]<<8|m[c+2]<<16|m[c+3]<<24}static readInt32LE(m,c){const h=this.readUint32LE(m,c);return h>2147483647?h-4294967296:h}static sanitizeControlCharacters(m){return m&&m.trim().replace(/[\x00-\x1F\x7F]/g,"")||null}}return xr.AdvertPayloadDecoder=u,xr}var zr={},kg;function uj(){if(kg)return zr;kg=1,Object.defineProperty(zr,"__esModule",{value:!0}),zr.TracePayloadDecoder=void 0;const a=ua(),r=Mi();class o{static decode(u,l,m){try{if(u.length<9){const q={type:a.PayloadType.Trace,version:a.PayloadVersion.Version1,isValid:!1,errors:["Trace payload too short (need at least tag(4) + auth(4) + flags(1))"],traceTag:"00000000",authCode:0,flags:0,pathHashes:[]};return m!=null&&m.includeSegments&&(q.segments=[{name:"Invalid Trace Data",description:"Trace payload too short (minimum 9 bytes required)",startByte:m.segmentOffset||0,endByte:(m.segmentOffset||0)+u.length-1,value:(0,r.bytesToHex)(u)}]),q}let c=0;const h=[],d=(m==null?void 0:m.segmentOffset)||0,y=this.readUint32LE(u,c),g=(0,r.numberToHex)(y,8);m!=null&&m.includeSegments&&h.push({name:"Trace Tag",description:`Unique identifier for this trace: 0x${y.toString(16).padStart(8,"0")}`,startByte:d+c,endByte:d+c+3,value:(0,r.bytesToHex)(u.slice(c,c+4))}),c+=4;const f=this.readUint32LE(u,c);m!=null&&m.includeSegments&&h.push({name:"Auth Code",description:`Authentication/verification code: ${f}`,startByte:d+c,endByte:d+c+3,value:(0,r.bytesToHex)(u.slice(c,c+4))}),c+=4;const x=u[c];m!=null&&m.includeSegments&&h.push({name:"Flags",description:`Application-defined control flags: 0x${x.toString(16).padStart(2,"0")} (${x.toString(2).padStart(8,"0")}b)`,startByte:d+c,endByte:d+c,value:x.toString(16).padStart(2,"0").toUpperCase()}),c+=1;const w=[],j=c;for(;c0){const q=w.join(" ");h.push({name:"Path Hashes",description:`Node hashes in trace path: ${q}`,startByte:d+j,endByte:d+u.length-1,value:(0,r.bytesToHex)(u.slice(j))})}let v;l&&l.length>0&&(v=l.map(q=>{const k=parseInt(q,16);return(k>127?k-256:k)/4}));const A={type:a.PayloadType.Trace,version:a.PayloadVersion.Version1,isValid:!0,traceTag:g,authCode:f,flags:x,pathHashes:w,snrValues:v};return m!=null&&m.includeSegments&&(A.segments=h),A}catch(c){return{type:a.PayloadType.Trace,version:a.PayloadVersion.Version1,isValid:!1,errors:[c instanceof Error?c.message:"Failed to decode trace payload"],traceTag:"00000000",authCode:0,flags:0,pathHashes:[]}}}static readUint32LE(u,l){return u[l]|u[l+1]<<8|u[l+2]<<16|u[l+3]<<24}}return zr.TracePayloadDecoder=o,zr}var qr={},wg;function dj(){if(wg)return qr;wg=1,Object.defineProperty(qr,"__esModule",{value:!0}),qr.GroupTextPayloadDecoder=void 0;const a=ua(),r=Ku(),o=Mi();class t{static decode(l,m){try{if(l.length<3){const w={type:a.PayloadType.GroupText,version:a.PayloadVersion.Version1,isValid:!1,errors:["GroupText payload too short (need at least channel_hash(1) + MAC(2))"],channelHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return m!=null&&m.includeSegments&&(w.segments=[{name:"Invalid GroupText Data",description:"GroupText payload too short (minimum 3 bytes required)",startByte:m.segmentOffset||0,endByte:(m.segmentOffset||0)+l.length-1,value:(0,o.bytesToHex)(l)}]),w}const c=[],h=(m==null?void 0:m.segmentOffset)||0;let d=0;const y=(0,o.byteToHex)(l[d]);m!=null&&m.includeSegments&&c.push({name:"Channel Hash",description:"First byte of SHA256 of channel's shared key",startByte:h+d,endByte:h+d,value:y}),d+=1;const g=(0,o.bytesToHex)(l.subarray(d,d+2));m!=null&&m.includeSegments&&c.push({name:"Cipher MAC",description:"MAC for encrypted data",startByte:h+d,endByte:h+d+1,value:g}),d+=2;const f=(0,o.bytesToHex)(l.subarray(d));m!=null&&m.includeSegments&&l.length>d&&c.push({name:"Ciphertext",description:"Encrypted message content (timestamp + flags + message)",startByte:h+d,endByte:h+l.length-1,value:f});const x={type:a.PayloadType.GroupText,version:a.PayloadVersion.Version1,isValid:!0,channelHash:y,cipherMac:g,ciphertext:f,ciphertextLength:l.length-3};if(m!=null&&m.keyStore&&m.keyStore.hasChannelKey(y)){const w=m.keyStore.getChannelKeys(y);for(const j of w){const v=r.ChannelCrypto.decryptGroupTextMessage(f,g,j);if(v.success&&v.data){x.decrypted={timestamp:v.data.timestamp,flags:v.data.flags,sender:v.data.sender,message:v.data.message};break}}}return m!=null&&m.includeSegments&&(x.segments=c),x}catch(c){return{type:a.PayloadType.GroupText,version:a.PayloadVersion.Version1,isValid:!1,errors:[c instanceof Error?c.message:"Failed to decode GroupText payload"],channelHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return qr.GroupTextPayloadDecoder=t,qr}var jr={},xg;function pj(){if(xg)return jr;xg=1,Object.defineProperty(jr,"__esModule",{value:!0}),jr.RequestPayloadDecoder=void 0;const a=ua(),r=Mi();class o{static decode(u,l){try{if(u.length<4){const w={type:a.PayloadType.Request,version:a.PayloadVersion.Version1,isValid:!1,errors:["Request payload too short (minimum 4 bytes: dest hash + source hash + MAC)"],timestamp:0,requestType:a.RequestType.GetStats,requestData:"",destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:""};return l!=null&&l.includeSegments&&(w.segments=[{name:"Invalid Request Data",description:"Request payload too short (minimum 4 bytes required: 1 for dest hash + 1 for source hash + 2 for MAC)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,r.bytesToHex)(u)}]),w}const m=[],c=(l==null?void 0:l.segmentOffset)||0;let h=0;const d=(0,r.bytesToHex)(u.subarray(h,h+1));l!=null&&l.includeSegments&&m.push({name:"Destination Hash",description:`First byte of destination node public key: 0x${d}`,startByte:c+h,endByte:c+h,value:d}),h+=1;const y=(0,r.bytesToHex)(u.subarray(h,h+1));l!=null&&l.includeSegments&&m.push({name:"Source Hash",description:`First byte of source node public key: 0x${y}`,startByte:c+h,endByte:c+h,value:y}),h+=1;const g=(0,r.bytesToHex)(u.subarray(h,h+2));l!=null&&l.includeSegments&&m.push({name:"Cipher MAC",description:"MAC for encrypted data verification (2 bytes)",startByte:c+h,endByte:c+h+1,value:g}),h+=2;const f=(0,r.bytesToHex)(u.subarray(h));l!=null&&l.includeSegments&&u.length>h&&m.push({name:"Ciphertext",description:`Encrypted message data (${u.length-h} bytes). Contains encrypted plaintext with this structure: • Timestamp (4 bytes) - send time as unix timestamp • Request Type (1 byte) - type of request (GetStats, GetTelemetryData, etc.) • Request Data (remaining bytes) - additional request-specific data`,startByte:c+h,endByte:c+u.length-1,value:f});const x={type:a.PayloadType.Request,version:a.PayloadVersion.Version1,isValid:!0,timestamp:0,requestType:a.RequestType.GetStats,requestData:"",destinationHash:d,sourceHash:y,cipherMac:g,ciphertext:f};return l!=null&&l.includeSegments&&(x.segments=m),x}catch(m){return{type:a.PayloadType.Request,version:a.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode request payload"],timestamp:0,requestType:a.RequestType.GetStats,requestData:"",destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:""}}}}return jr.RequestPayloadDecoder=o,jr}var Ar={},zg;function mj(){if(zg)return Ar;zg=1,Object.defineProperty(Ar,"__esModule",{value:!0}),Ar.ResponsePayloadDecoder=void 0;const a=ua(),r=Mi();class o{static decode(u,l){try{if(u.length<4){const w={type:a.PayloadType.Response,version:a.PayloadVersion.Version1,isValid:!1,errors:["Response payload too short (minimum 4 bytes: dest + source + MAC)"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return l!=null&&l.includeSegments&&(w.segments=[{name:"Invalid Response Data",description:"Response payload too short (minimum 4 bytes required)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,r.bytesToHex)(u)}]),w}const m=[],c=(l==null?void 0:l.segmentOffset)||0;let h=0;const d=(0,r.byteToHex)(u[h]);l!=null&&l.includeSegments&&m.push({name:"Destination Hash",description:"First byte of destination node public key",startByte:c+h,endByte:c+h,value:d}),h+=1;const y=(0,r.byteToHex)(u[h]);l!=null&&l.includeSegments&&m.push({name:"Source Hash",description:"First byte of source node public key",startByte:c+h,endByte:c+h,value:y}),h+=1;const g=(0,r.bytesToHex)(u.subarray(h,h+2));l!=null&&l.includeSegments&&m.push({name:"Cipher MAC",description:"MAC for encrypted data in next field",startByte:c+h,endByte:c+h+1,value:g}),h+=2;const f=(0,r.bytesToHex)(u.subarray(h));l!=null&&l.includeSegments&&u.length>h&&m.push({name:"Ciphertext",description:"Encrypted response data (tag + content)",startByte:c+h,endByte:c+u.length-1,value:f});const x={type:a.PayloadType.Response,version:a.PayloadVersion.Version1,isValid:!0,destinationHash:d,sourceHash:y,cipherMac:g,ciphertext:f,ciphertextLength:u.length-4};return l!=null&&l.includeSegments&&(x.segments=m),x}catch(m){return{type:a.PayloadType.Response,version:a.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode response payload"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Ar.ResponsePayloadDecoder=o,Ar}var Cr={},qg;function hj(){if(qg)return Cr;qg=1,Object.defineProperty(Cr,"__esModule",{value:!0}),Cr.AnonRequestPayloadDecoder=void 0;const a=ua(),r=Mi();class o{static decode(u,l){try{if(u.length<35){const w={type:a.PayloadType.AnonRequest,version:a.PayloadVersion.Version1,isValid:!1,errors:["AnonRequest payload too short (minimum 35 bytes: dest + public key + MAC)"],destinationHash:"",senderPublicKey:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return l!=null&&l.includeSegments&&(w.segments=[{name:"Invalid AnonRequest Data",description:"AnonRequest payload too short (minimum 35 bytes required: 1 for dest hash + 32 for public key + 2 for MAC)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,r.bytesToHex)(u)}]),w}const m=[],c=(l==null?void 0:l.segmentOffset)||0;let h=0;const d=(0,r.byteToHex)(u[0]);l!=null&&l.includeSegments&&m.push({name:"Destination Hash",description:`First byte of destination node public key: 0x${d}`,startByte:c+h,endByte:c+h,value:d}),h+=1;const y=(0,r.bytesToHex)(u.subarray(1,33));l!=null&&l.includeSegments&&m.push({name:"Sender Public Key",description:"Ed25519 public key of the sender (32 bytes)",startByte:c+h,endByte:c+h+31,value:y}),h+=32;const g=(0,r.bytesToHex)(u.subarray(33,35));l!=null&&l.includeSegments&&m.push({name:"Cipher MAC",description:"MAC for encrypted data verification (2 bytes)",startByte:c+h,endByte:c+h+1,value:g}),h+=2;const f=(0,r.bytesToHex)(u.subarray(35));l!=null&&l.includeSegments&&u.length>35&&m.push({name:"Ciphertext",description:`Encrypted message data (${u.length-35} bytes). Contains encrypted plaintext with this structure: • Timestamp (4 bytes) - send time as unix timestamp • Sync Timestamp (4 bytes) - room server only, sender's "sync messages SINCE x" timestamp -• Password (remaining bytes) - password for repeater/room`,startByte:c+h,endByte:c+u.length-1,value:f});const x={type:a.PayloadType.AnonRequest,version:a.PayloadVersion.Version1,isValid:!0,destinationHash:d,senderPublicKey:y,cipherMac:g,ciphertext:f,ciphertextLength:u.length-35};return l!=null&&l.includeSegments&&(x.segments=m),x}catch(m){return{type:a.PayloadType.AnonRequest,version:a.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode AnonRequest payload"],destinationHash:"",senderPublicKey:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Cr.AnonRequestPayloadDecoder=o,Cr}var Er={},jg;function gj(){if(jg)return Er;jg=1,Object.defineProperty(Er,"__esModule",{value:!0}),Er.AckPayloadDecoder=void 0;const a=ua(),r=Mi();class o{static decode(u,l){try{if(u.length<4){const y={type:a.PayloadType.Ack,version:a.PayloadVersion.Version1,isValid:!1,errors:["Ack payload too short (minimum 4 bytes for checksum)"],checksum:""};return l!=null&&l.includeSegments&&(y.segments=[{name:"Invalid Ack Data",description:"Ack payload too short (minimum 4 bytes required for checksum)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,r.bytesToHex)(u)}]),y}const m=[],c=(l==null?void 0:l.segmentOffset)||0,h=(0,r.bytesToHex)(u.subarray(0,4));l!=null&&l.includeSegments&&m.push({name:"Checksum",description:`CRC checksum of message timestamp, text, and sender pubkey: 0x${h}`,startByte:c,endByte:c+3,value:h}),l!=null&&l.includeSegments&&u.length>4&&m.push({name:"Additional Data",description:"Extra data in Ack payload",startByte:c+4,endByte:c+u.length-1,value:(0,r.bytesToHex)(u.subarray(4))});const d={type:a.PayloadType.Ack,version:a.PayloadVersion.Version1,isValid:!0,checksum:h};return l!=null&&l.includeSegments&&(d.segments=m),d}catch(m){return{type:a.PayloadType.Ack,version:a.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode Ack payload"],checksum:""}}}}return Er.AckPayloadDecoder=o,Er}var Sr={},Ag;function yj(){if(Ag)return Sr;Ag=1,Object.defineProperty(Sr,"__esModule",{value:!0}),Sr.PathPayloadDecoder=void 0;const a=ua(),r=Mi();class o{static decode(u){try{if(u.length<2)return{type:a.PayloadType.Path,version:a.PayloadVersion.Version1,isValid:!1,errors:["Path payload too short (minimum 2 bytes: path length + extra type)"],pathLength:0,pathHashes:[],extraType:0,extraData:""};const l=u[0];if(u.length<1+l+1)return{type:a.PayloadType.Path,version:a.PayloadVersion.Version1,isValid:!1,errors:[`Path payload too short (need ${1+l+1} bytes for path length + path + extra type)`],pathLength:l,pathHashes:[],extraType:0,extraData:""};const m=[];for(let d=0;d1+l+1&&(h=(0,r.bytesToHex)(u.subarray(1+l+1))),{type:a.PayloadType.Path,version:a.PayloadVersion.Version1,isValid:!0,pathLength:l,pathHashes:m,extraType:c,extraData:h}}catch(l){return{type:a.PayloadType.Path,version:a.PayloadVersion.Version1,isValid:!1,errors:[l instanceof Error?l.message:"Failed to decode Path payload"],pathLength:0,pathHashes:[],extraType:0,extraData:""}}}}return Sr.PathPayloadDecoder=o,Sr}var Br={},Cg;function bj(){if(Cg)return Br;Cg=1,Object.defineProperty(Br,"__esModule",{value:!0}),Br.TextMessagePayloadDecoder=void 0;const a=ua(),r=Mi();class o{static decode(u,l){try{if(u.length<4){const w={type:a.PayloadType.TextMessage,version:a.PayloadVersion.Version1,isValid:!1,errors:["TextMessage payload too short (minimum 4 bytes: dest + source + MAC)"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return l!=null&&l.includeSegments&&(w.segments=[{name:"Invalid TextMessage Data",description:"TextMessage payload too short (minimum 4 bytes required)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,r.bytesToHex)(u)}]),w}const m=[],c=(l==null?void 0:l.segmentOffset)||0;let h=0;const d=(0,r.byteToHex)(u[h]);l!=null&&l.includeSegments&&m.push({name:"Destination Hash",description:"First byte of destination node public key",startByte:c+h,endByte:c+h,value:d}),h+=1;const y=(0,r.byteToHex)(u[h]);l!=null&&l.includeSegments&&m.push({name:"Source Hash",description:"First byte of source node public key",startByte:c+h,endByte:c+h,value:y}),h+=1;const g=(0,r.bytesToHex)(u.subarray(h,h+2));l!=null&&l.includeSegments&&m.push({name:"Cipher MAC",description:"MAC for encrypted data in next field",startByte:c+h,endByte:c+h+1,value:g}),h+=2;const f=(0,r.bytesToHex)(u.subarray(h));l!=null&&l.includeSegments&&u.length>h&&m.push({name:"Ciphertext",description:"Encrypted message data (timestamp + message text)",startByte:c+h,endByte:c+u.length-1,value:f});const x={type:a.PayloadType.TextMessage,version:a.PayloadVersion.Version1,isValid:!0,destinationHash:d,sourceHash:y,cipherMac:g,ciphertext:f,ciphertextLength:u.length-4};return l!=null&&l.includeSegments&&(x.segments=m),x}catch(m){return{type:a.PayloadType.TextMessage,version:a.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode TextMessage payload"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Br.TextMessagePayloadDecoder=o,Br}var _r={},Eg;function fj(){if(Eg)return _r;Eg=1,Object.defineProperty(_r,"__esModule",{value:!0}),_r.ControlPayloadDecoder=void 0;const a=ua(),r=Mi(),o=Nr();class t{static decode(l,m){try{if(l.length<1)return this.createErrorPayload("Control payload too short (minimum 1 byte required)",l,m);const h=l[0]&240;switch(h){case a.ControlSubType.NodeDiscoverReq:return this.decodeDiscoverReq(l,m);case a.ControlSubType.NodeDiscoverResp:return this.decodeDiscoverResp(l,m);default:return this.createErrorPayload(`Unknown control sub-type: 0x${h.toString(16).padStart(2,"0")}`,l,m)}}catch(c){return this.createErrorPayload(c instanceof Error?c.message:"Failed to decode control payload",l,m)}}static decodeDiscoverReq(l,m){const c=[],h=(m==null?void 0:m.segmentOffset)??0;if(l.length<6){const A={type:a.PayloadType.Control,version:a.PayloadVersion.Version1,isValid:!1,errors:["DISCOVER_REQ payload too short (minimum 6 bytes required)"],subType:a.ControlSubType.NodeDiscoverReq,rawFlags:l[0],prefixOnly:!1,typeFilter:0,typeFilterNames:[],tag:0,since:0};return m!=null&&m.includeSegments&&(A.segments=[{name:"Invalid DISCOVER_REQ Data",description:"DISCOVER_REQ payload too short (minimum 6 bytes required)",startByte:h,endByte:h+l.length-1,value:(0,r.bytesToHex)(l)}]),A}let d=0;const y=l[d],g=(y&1)!==0;m!=null&&m.includeSegments&&c.push({name:"Flags",description:`Sub-type: DISCOVER_REQ (0x8) | Prefix Only: ${g}`,startByte:h+d,endByte:h+d,value:y.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const f=l[d],x=this.parseTypeFilter(f);m!=null&&m.includeSegments&&c.push({name:"Type Filter",description:`Filter mask: 0b${f.toString(2).padStart(8,"0")} | Types: ${x.length>0?x.join(", "):"None"}`,startByte:h+d,endByte:h+d,value:f.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const w=this.readUint32LE(l,d);m!=null&&m.includeSegments&&c.push({name:"Tag",description:`Random tag for response matching: 0x${w.toString(16).padStart(8,"0")}`,startByte:h+d,endByte:h+d+3,value:(0,r.bytesToHex)(l.slice(d,d+4))}),d+=4;let j=0;if(l.length>=d+4&&(j=this.readUint32LE(l,d),m!=null&&m.includeSegments)){const A=j>0?new Date(j*1e3).toISOString().slice(0,19)+"Z":"N/A";c.push({name:"Since",description:`Filter timestamp: ${j} (${A})`,startByte:h+d,endByte:h+d+3,value:(0,r.bytesToHex)(l.slice(d,d+4))})}const v={type:a.PayloadType.Control,version:a.PayloadVersion.Version1,isValid:!0,subType:a.ControlSubType.NodeDiscoverReq,rawFlags:y,prefixOnly:g,typeFilter:f,typeFilterNames:x,tag:w,since:j};return m!=null&&m.includeSegments&&(v.segments=c),v}static decodeDiscoverResp(l,m){const c=[],h=(m==null?void 0:m.segmentOffset)??0;if(l.length<14){const D={type:a.PayloadType.Control,version:a.PayloadVersion.Version1,isValid:!1,errors:["DISCOVER_RESP payload too short (minimum 14 bytes required)"],subType:a.ControlSubType.NodeDiscoverResp,rawFlags:l.length>0?l[0]:0,nodeType:a.DeviceRole.Unknown,nodeTypeName:"Unknown",snr:0,tag:0,publicKey:"",publicKeyLength:0};return m!=null&&m.includeSegments&&(D.segments=[{name:"Invalid DISCOVER_RESP Data",description:"DISCOVER_RESP payload too short (minimum 14 bytes required)",startByte:h,endByte:h+l.length-1,value:(0,r.bytesToHex)(l)}]),D}let d=0;const y=l[d],g=y&15,f=(0,o.getDeviceRoleName)(g);m!=null&&m.includeSegments&&c.push({name:"Flags",description:`Sub-type: DISCOVER_RESP (0x9) | Node Type: ${f}`,startByte:h+d,endByte:h+d,value:y.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const x=l[d],w=x>127?x-256:x,j=w/4;m!=null&&m.includeSegments&&c.push({name:"SNR",description:`Inbound SNR: ${j.toFixed(2)} dB (raw: ${x}, signed: ${w})`,startByte:h+d,endByte:h+d,value:x.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const v=this.readUint32LE(l,d);m!=null&&m.includeSegments&&c.push({name:"Tag",description:`Reflected tag from request: 0x${v.toString(16).padStart(8,"0")}`,startByte:h+d,endByte:h+d+3,value:(0,r.bytesToHex)(l.slice(d,d+4))}),d+=4;const q=l.length-d,k=l.slice(d,d+q),C=(0,r.bytesToHex)(k);if(m!=null&&m.includeSegments){const D=q===32?"Full Public Key":"Public Key Prefix";c.push({name:D,description:`${D} (${q} bytes)`,startByte:h+d,endByte:h+d+q-1,value:C})}const S={type:a.PayloadType.Control,version:a.PayloadVersion.Version1,isValid:!0,subType:a.ControlSubType.NodeDiscoverResp,rawFlags:y,nodeType:g,nodeTypeName:f,snr:j,tag:v,publicKey:C,publicKeyLength:q};return m!=null&&m.includeSegments&&(S.segments=c),S}static parseTypeFilter(l){const m=[];return l&1<0?m[0]:0,prefixOnly:!1,typeFilter:0,typeFilterNames:[],tag:0,since:0};return c!=null&&c.includeSegments&&(h.segments=[{name:"Invalid Control Data",description:l,startByte:c.segmentOffset??0,endByte:(c.segmentOffset??0)+m.length-1,value:(0,r.bytesToHex)(m)}]),h}static readUint32LE(l,m){return(l[m]|l[m+1]<<8|l[m+2]<<16|l[m+3]<<24)>>>0}}return _r.ControlPayloadDecoder=t,_r}var Sg;function Bg(){if(Sg)return vr;Sg=1,Object.defineProperty(vr,"__esModule",{value:!0}),vr.MeshCorePacketDecoder=void 0;const a=ua(),r=Mi(),o=Nr(),t=_b(),u=cj(),l=uj(),m=dj(),c=pj(),h=mj(),d=hj(),y=gj(),g=yj(),f=bj(),x=fj();class w{static decode(v,A){return this.parseInternal(v,!1,A).packet}static async decodeWithVerification(v,A){return(await this.parseInternalAsync(v,!1,A)).packet}static analyzeStructure(v,A){return this.parseInternal(v,!0,A).structure}static async analyzeStructureWithVerification(v,A){return(await this.parseInternalAsync(v,!0,A)).structure}static parseInternal(v,A,q){const k=(0,r.hexToBytes)(v),C=[];if(k.length<2){const S={messageHash:"",routeType:a.RouteType.Flood,payloadType:a.PayloadType.RawCustom,payloadVersion:a.PayloadVersion.Version1,pathLength:0,path:null,payload:{raw:"",decoded:null},totalBytes:k.length,isValid:!1,errors:["Packet too short (minimum 2 bytes required)"]},D={segments:[],totalBytes:k.length,rawHex:v.toUpperCase(),messageHash:"",payload:{segments:[],hex:"",startByte:0,type:"Unknown"}};return{packet:S,structure:D}}try{let S=0;const D=k[0],T=D&3,F=D>>2&15,O=D>>6&3;A&&C.push({name:"Header",description:"Header byte breakdown",startByte:0,endByte:0,value:`0x${D.toString(16).padStart(2,"0")}`,headerBreakdown:{fullBinary:D.toString(2).padStart(8,"0"),fields:[{bits:"0-1",field:"Route Type",value:(0,o.getRouteTypeName)(T),binary:(D&3).toString(2).padStart(2,"0")},{bits:"2-5",field:"Payload Type",value:(0,o.getPayloadTypeName)(F),binary:(D>>2&15).toString(2).padStart(4,"0")},{bits:"6-7",field:"Version",value:O.toString(),binary:(D>>6&3).toString(2).padStart(2,"0")}]}}),S=1;let N;if(T===a.RouteType.TransportFlood||T===a.RouteType.TransportDirect){if(k.length0?Array.from(V).map(r.byteToHex):null;if(A&&R>0)if(F===a.PayloadType.Trace){const z=[];for(let I=0;I127?L-256:L)/4;z.push(`${ue.toFixed(2)}dB (0x${L.toString(16).padStart(2,"0")})`)}C.push({name:"Path SNR Data",description:`SNR values collected during trace: ${z.join(", ")}`,startByte:S,endByte:S+R-1,value:(0,r.bytesToHex)(k.slice(S,S+R))})}else{let z="Routing path information";T===a.RouteType.Direct||T===a.RouteType.TransportDirect?z="Routing instructions (bytes are stripped at each hop as packet travels to destination)":(T===a.RouteType.Flood||T===a.RouteType.TransportFlood)&&(z="Historical route taken (bytes are added as packet floods through network)"),C.push({name:"Path Data",description:z,startByte:S,endByte:S+R-1,value:(0,r.bytesToHex)(k.slice(S,S+R))})}S+=R;const $=k.subarray(S),ae=(0,r.bytesToHex)($);A&&k.length>S&&C.push({name:"Payload",description:`${(0,o.getPayloadTypeName)(F)} payload data`,startByte:S,endByte:k.length-1,value:(0,r.bytesToHex)(k.slice(S))});let J=null;const ie=[];if(F===a.PayloadType.Advert){const z=u.AdvertPayloadDecoder.decode($,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.Trace){const z=l.TracePayloadDecoder.decode($,H,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.GroupText){const z=m.GroupTextPayloadDecoder.decode($,{...q,includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.Request){const z=c.RequestPayloadDecoder.decode($,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.Response){const z=h.ResponsePayloadDecoder.decode($,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.AnonRequest){const z=d.AnonRequestPayloadDecoder.decode($,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.Ack){const z=y.AckPayloadDecoder.decode($,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.Path)J=g.PathPayloadDecoder.decode($);else if(F===a.PayloadType.TextMessage){const z=f.TextMessagePayloadDecoder.decode($,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.Control){const z=x.ControlPayloadDecoder.decode($,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}A&&ie.length===0&&k.length>S&&ie.push({name:`${(0,o.getPayloadTypeName)(F)} Payload`,description:`Raw ${(0,o.getPayloadTypeName)(F)} payload data (${$.length} bytes)`,startByte:0,endByte:$.length-1,value:(0,r.bytesToHex)($)});const W=this.calculateMessageHash(k,T,F,O),oe={messageHash:W,routeType:T,payloadType:F,payloadVersion:O,transportCodes:N,pathLength:R,path:H,payload:{raw:ae,decoded:J},totalBytes:k.length,isValid:!0},ee={segments:C,totalBytes:k.length,rawHex:v.toUpperCase(),messageHash:W,payload:{segments:ie,hex:ae,startByte:S,type:(0,o.getPayloadTypeName)(F)}};return{packet:oe,structure:ee}}catch(S){const D={messageHash:"",routeType:a.RouteType.Flood,payloadType:a.PayloadType.RawCustom,payloadVersion:a.PayloadVersion.Version1,pathLength:0,path:null,payload:{raw:"",decoded:null},totalBytes:k.length,isValid:!1,errors:[S instanceof Error?S.message:"Unknown decoding error"]},T={segments:[],totalBytes:k.length,rawHex:v.toUpperCase(),messageHash:"",payload:{segments:[],hex:"",startByte:0,type:"Unknown"}};return{packet:D,structure:T}}}static async parseInternalAsync(v,A,q){const k=this.parseInternal(v,A,q);if(k.packet.payloadType===a.PayloadType.Advert&&k.packet.payload.decoded)try{const C=k.packet.payload.decoded,S=await u.AdvertPayloadDecoder.decodeWithVerification((0,r.hexToBytes)(k.packet.payload.raw),{includeSegments:A,segmentOffset:0});S&&(k.packet.payload.decoded=S,S.isValid||(k.packet.isValid=!1,k.packet.errors=S.errors||["Invalid advertisement signature"]),A&&S.segments&&(k.structure.payload.segments=S.segments,delete S.segments))}catch(C){console.error("Signature verification failed:",C)}return k}static validate(v){const A=(0,r.hexToBytes)(v),q=[];if(A.length<2)return q.push("Packet too short (minimum 2 bytes required)"),{isValid:!1,errors:q};try{let k=1;const S=A[0]&3;if((S===a.RouteType.TransportFlood||S===a.RouteType.TransportDirect)&&(A.length=A.length&&q.push("No payload data found")}catch(k){q.push(k instanceof Error?k.message:"Validation error")}return{isValid:q.length===0,errors:q.length>0?q:void 0}}static calculateMessageHash(v,A,q,k){if(q===a.PayloadType.Trace&&v.length>=13){let O=1;if((A===a.RouteType.TransportFlood||A===a.RouteType.TransportDirect)&&(O+=4),v.length>O){const N=v[O];O+=1+N}if(v.length>=O+4){const N=v[O]|v[O+1]<<8|v[O+2]<<16|v[O+3]<<24;return(0,r.numberToHex)(N,8)}}const C=q<<2|k<<6;let S=1;if((A===a.RouteType.TransportFlood||A===a.RouteType.TransportDirect)&&(S+=4),v.length>S){const O=v[S];S+=1+O}const D=v.slice(S),T=[C,...Array.from(D)];let F=0;for(let O=0;Ok.exp)return null;const C=`${g}.${f}`,S=new TextEncoder().encode(C),D=(0,r.bytesToHex)(S);return await(0,a.verify)(x,D,k.publicKey)?k:null}catch{return null}}function m(h){try{const d=h.split(".");return d.length!==3?null:{header:d[0],payload:d[1],signature:d[2]}}catch{return null}}function c(h){try{const d=h.split(".");if(d.length!==3)return null;const y=t(d[1]),g=new TextDecoder().decode(y);return JSON.parse(g)}catch{return null}}return Wn}var Fg;function vj(){return Fg||(Fg=1,(function(a){var r=Xa&&Xa.__createBinding||(Object.create?(function(A,q,k,C){C===void 0&&(C=k);var S=Object.getOwnPropertyDescriptor(q,k);(!S||("get"in S?!q.__esModule:S.writable||S.configurable))&&(S={enumerable:!0,get:function(){return q[k]}}),Object.defineProperty(A,C,S)}):(function(A,q,k,C){C===void 0&&(C=k),A[C]=q[k]})),o=Xa&&Xa.__setModuleDefault||(Object.create?(function(A,q){Object.defineProperty(A,"default",{enumerable:!0,value:q})}):function(A,q){A.default=q}),t=Xa&&Xa.__importStar||(function(){var A=function(q){return A=Object.getOwnPropertyNames||function(k){var C=[];for(var S in k)Object.prototype.hasOwnProperty.call(k,S)&&(C[C.length]=S);return C},A(q)};return function(q){if(q&&q.__esModule)return q;var k={};if(q!=null)for(var C=A(q),S=0;S2?r+o:1;return Gn*t*Gn}function Sj(a,r=_u,o){const t=Math.floor(Date.now()/1e3);return a<=t&&a>=t-r}function Bj(a){return!a.includes("�")}class hl{constructor(){this.device=null,this.pipeline=null,this.bindGroupLayout=null,this.paramsBuffer=null,this.matchCountBuffer=null,this.matchIndicesBuffer=null,this.ciphertextBuffer=null,this.ciphertextBufferSize=0,this.matchCountReadBuffers=[null,null],this.matchIndicesReadBuffers=[null,null],this.currentReadBufferIndex=0,this.bindGroup=null,this.bindGroupDirty=!0,this.shaderCode=` +• Password (remaining bytes) - password for repeater/room`,startByte:c+h,endByte:c+u.length-1,value:f});const x={type:a.PayloadType.AnonRequest,version:a.PayloadVersion.Version1,isValid:!0,destinationHash:d,senderPublicKey:y,cipherMac:g,ciphertext:f,ciphertextLength:u.length-35};return l!=null&&l.includeSegments&&(x.segments=m),x}catch(m){return{type:a.PayloadType.AnonRequest,version:a.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode AnonRequest payload"],destinationHash:"",senderPublicKey:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Cr.AnonRequestPayloadDecoder=o,Cr}var Er={},jg;function gj(){if(jg)return Er;jg=1,Object.defineProperty(Er,"__esModule",{value:!0}),Er.AckPayloadDecoder=void 0;const a=ua(),r=Mi();class o{static decode(u,l){try{if(u.length<4){const y={type:a.PayloadType.Ack,version:a.PayloadVersion.Version1,isValid:!1,errors:["Ack payload too short (minimum 4 bytes for checksum)"],checksum:""};return l!=null&&l.includeSegments&&(y.segments=[{name:"Invalid Ack Data",description:"Ack payload too short (minimum 4 bytes required for checksum)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,r.bytesToHex)(u)}]),y}const m=[],c=(l==null?void 0:l.segmentOffset)||0,h=(0,r.bytesToHex)(u.subarray(0,4));l!=null&&l.includeSegments&&m.push({name:"Checksum",description:`CRC checksum of message timestamp, text, and sender pubkey: 0x${h}`,startByte:c,endByte:c+3,value:h}),l!=null&&l.includeSegments&&u.length>4&&m.push({name:"Additional Data",description:"Extra data in Ack payload",startByte:c+4,endByte:c+u.length-1,value:(0,r.bytesToHex)(u.subarray(4))});const d={type:a.PayloadType.Ack,version:a.PayloadVersion.Version1,isValid:!0,checksum:h};return l!=null&&l.includeSegments&&(d.segments=m),d}catch(m){return{type:a.PayloadType.Ack,version:a.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode Ack payload"],checksum:""}}}}return Er.AckPayloadDecoder=o,Er}var Sr={},Ag;function yj(){if(Ag)return Sr;Ag=1,Object.defineProperty(Sr,"__esModule",{value:!0}),Sr.PathPayloadDecoder=void 0;const a=ua(),r=Mi();class o{static decode(u){try{if(u.length<2)return{type:a.PayloadType.Path,version:a.PayloadVersion.Version1,isValid:!1,errors:["Path payload too short (minimum 2 bytes: path length + extra type)"],pathLength:0,pathHashes:[],extraType:0,extraData:""};const l=u[0];if(u.length<1+l+1)return{type:a.PayloadType.Path,version:a.PayloadVersion.Version1,isValid:!1,errors:[`Path payload too short (need ${1+l+1} bytes for path length + path + extra type)`],pathLength:l,pathHashes:[],extraType:0,extraData:""};const m=[];for(let d=0;d1+l+1&&(h=(0,r.bytesToHex)(u.subarray(1+l+1))),{type:a.PayloadType.Path,version:a.PayloadVersion.Version1,isValid:!0,pathLength:l,pathHashes:m,extraType:c,extraData:h}}catch(l){return{type:a.PayloadType.Path,version:a.PayloadVersion.Version1,isValid:!1,errors:[l instanceof Error?l.message:"Failed to decode Path payload"],pathLength:0,pathHashes:[],extraType:0,extraData:""}}}}return Sr.PathPayloadDecoder=o,Sr}var Br={},Cg;function bj(){if(Cg)return Br;Cg=1,Object.defineProperty(Br,"__esModule",{value:!0}),Br.TextMessagePayloadDecoder=void 0;const a=ua(),r=Mi();class o{static decode(u,l){try{if(u.length<4){const w={type:a.PayloadType.TextMessage,version:a.PayloadVersion.Version1,isValid:!1,errors:["TextMessage payload too short (minimum 4 bytes: dest + source + MAC)"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return l!=null&&l.includeSegments&&(w.segments=[{name:"Invalid TextMessage Data",description:"TextMessage payload too short (minimum 4 bytes required)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,r.bytesToHex)(u)}]),w}const m=[],c=(l==null?void 0:l.segmentOffset)||0;let h=0;const d=(0,r.byteToHex)(u[h]);l!=null&&l.includeSegments&&m.push({name:"Destination Hash",description:"First byte of destination node public key",startByte:c+h,endByte:c+h,value:d}),h+=1;const y=(0,r.byteToHex)(u[h]);l!=null&&l.includeSegments&&m.push({name:"Source Hash",description:"First byte of source node public key",startByte:c+h,endByte:c+h,value:y}),h+=1;const g=(0,r.bytesToHex)(u.subarray(h,h+2));l!=null&&l.includeSegments&&m.push({name:"Cipher MAC",description:"MAC for encrypted data in next field",startByte:c+h,endByte:c+h+1,value:g}),h+=2;const f=(0,r.bytesToHex)(u.subarray(h));l!=null&&l.includeSegments&&u.length>h&&m.push({name:"Ciphertext",description:"Encrypted message data (timestamp + message text)",startByte:c+h,endByte:c+u.length-1,value:f});const x={type:a.PayloadType.TextMessage,version:a.PayloadVersion.Version1,isValid:!0,destinationHash:d,sourceHash:y,cipherMac:g,ciphertext:f,ciphertextLength:u.length-4};return l!=null&&l.includeSegments&&(x.segments=m),x}catch(m){return{type:a.PayloadType.TextMessage,version:a.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode TextMessage payload"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Br.TextMessagePayloadDecoder=o,Br}var _r={},Eg;function fj(){if(Eg)return _r;Eg=1,Object.defineProperty(_r,"__esModule",{value:!0}),_r.ControlPayloadDecoder=void 0;const a=ua(),r=Mi(),o=Nr();class t{static decode(l,m){try{if(l.length<1)return this.createErrorPayload("Control payload too short (minimum 1 byte required)",l,m);const h=l[0]&240;switch(h){case a.ControlSubType.NodeDiscoverReq:return this.decodeDiscoverReq(l,m);case a.ControlSubType.NodeDiscoverResp:return this.decodeDiscoverResp(l,m);default:return this.createErrorPayload(`Unknown control sub-type: 0x${h.toString(16).padStart(2,"0")}`,l,m)}}catch(c){return this.createErrorPayload(c instanceof Error?c.message:"Failed to decode control payload",l,m)}}static decodeDiscoverReq(l,m){const c=[],h=(m==null?void 0:m.segmentOffset)??0;if(l.length<6){const A={type:a.PayloadType.Control,version:a.PayloadVersion.Version1,isValid:!1,errors:["DISCOVER_REQ payload too short (minimum 6 bytes required)"],subType:a.ControlSubType.NodeDiscoverReq,rawFlags:l[0],prefixOnly:!1,typeFilter:0,typeFilterNames:[],tag:0,since:0};return m!=null&&m.includeSegments&&(A.segments=[{name:"Invalid DISCOVER_REQ Data",description:"DISCOVER_REQ payload too short (minimum 6 bytes required)",startByte:h,endByte:h+l.length-1,value:(0,r.bytesToHex)(l)}]),A}let d=0;const y=l[d],g=(y&1)!==0;m!=null&&m.includeSegments&&c.push({name:"Flags",description:`Sub-type: DISCOVER_REQ (0x8) | Prefix Only: ${g}`,startByte:h+d,endByte:h+d,value:y.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const f=l[d],x=this.parseTypeFilter(f);m!=null&&m.includeSegments&&c.push({name:"Type Filter",description:`Filter mask: 0b${f.toString(2).padStart(8,"0")} | Types: ${x.length>0?x.join(", "):"None"}`,startByte:h+d,endByte:h+d,value:f.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const w=this.readUint32LE(l,d);m!=null&&m.includeSegments&&c.push({name:"Tag",description:`Random tag for response matching: 0x${w.toString(16).padStart(8,"0")}`,startByte:h+d,endByte:h+d+3,value:(0,r.bytesToHex)(l.slice(d,d+4))}),d+=4;let j=0;if(l.length>=d+4&&(j=this.readUint32LE(l,d),m!=null&&m.includeSegments)){const A=j>0?new Date(j*1e3).toISOString().slice(0,19)+"Z":"N/A";c.push({name:"Since",description:`Filter timestamp: ${j} (${A})`,startByte:h+d,endByte:h+d+3,value:(0,r.bytesToHex)(l.slice(d,d+4))})}const v={type:a.PayloadType.Control,version:a.PayloadVersion.Version1,isValid:!0,subType:a.ControlSubType.NodeDiscoverReq,rawFlags:y,prefixOnly:g,typeFilter:f,typeFilterNames:x,tag:w,since:j};return m!=null&&m.includeSegments&&(v.segments=c),v}static decodeDiscoverResp(l,m){const c=[],h=(m==null?void 0:m.segmentOffset)??0;if(l.length<14){const D={type:a.PayloadType.Control,version:a.PayloadVersion.Version1,isValid:!1,errors:["DISCOVER_RESP payload too short (minimum 14 bytes required)"],subType:a.ControlSubType.NodeDiscoverResp,rawFlags:l.length>0?l[0]:0,nodeType:a.DeviceRole.Unknown,nodeTypeName:"Unknown",snr:0,tag:0,publicKey:"",publicKeyLength:0};return m!=null&&m.includeSegments&&(D.segments=[{name:"Invalid DISCOVER_RESP Data",description:"DISCOVER_RESP payload too short (minimum 14 bytes required)",startByte:h,endByte:h+l.length-1,value:(0,r.bytesToHex)(l)}]),D}let d=0;const y=l[d],g=y&15,f=(0,o.getDeviceRoleName)(g);m!=null&&m.includeSegments&&c.push({name:"Flags",description:`Sub-type: DISCOVER_RESP (0x9) | Node Type: ${f}`,startByte:h+d,endByte:h+d,value:y.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const x=l[d],w=x>127?x-256:x,j=w/4;m!=null&&m.includeSegments&&c.push({name:"SNR",description:`Inbound SNR: ${j.toFixed(2)} dB (raw: ${x}, signed: ${w})`,startByte:h+d,endByte:h+d,value:x.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const v=this.readUint32LE(l,d);m!=null&&m.includeSegments&&c.push({name:"Tag",description:`Reflected tag from request: 0x${v.toString(16).padStart(8,"0")}`,startByte:h+d,endByte:h+d+3,value:(0,r.bytesToHex)(l.slice(d,d+4))}),d+=4;const q=l.length-d,k=l.slice(d,d+q),C=(0,r.bytesToHex)(k);if(m!=null&&m.includeSegments){const D=q===32?"Full Public Key":"Public Key Prefix";c.push({name:D,description:`${D} (${q} bytes)`,startByte:h+d,endByte:h+d+q-1,value:C})}const S={type:a.PayloadType.Control,version:a.PayloadVersion.Version1,isValid:!0,subType:a.ControlSubType.NodeDiscoverResp,rawFlags:y,nodeType:g,nodeTypeName:f,snr:j,tag:v,publicKey:C,publicKeyLength:q};return m!=null&&m.includeSegments&&(S.segments=c),S}static parseTypeFilter(l){const m=[];return l&1<0?m[0]:0,prefixOnly:!1,typeFilter:0,typeFilterNames:[],tag:0,since:0};return c!=null&&c.includeSegments&&(h.segments=[{name:"Invalid Control Data",description:l,startByte:c.segmentOffset??0,endByte:(c.segmentOffset??0)+m.length-1,value:(0,r.bytesToHex)(m)}]),h}static readUint32LE(l,m){return(l[m]|l[m+1]<<8|l[m+2]<<16|l[m+3]<<24)>>>0}}return _r.ControlPayloadDecoder=t,_r}var Sg;function Bg(){if(Sg)return vr;Sg=1,Object.defineProperty(vr,"__esModule",{value:!0}),vr.MeshCorePacketDecoder=void 0;const a=ua(),r=Mi(),o=Nr(),t=_b(),u=cj(),l=uj(),m=dj(),c=pj(),h=mj(),d=hj(),y=gj(),g=yj(),f=bj(),x=fj();class w{static decode(v,A){return this.parseInternal(v,!1,A).packet}static async decodeWithVerification(v,A){return(await this.parseInternalAsync(v,!1,A)).packet}static analyzeStructure(v,A){return this.parseInternal(v,!0,A).structure}static async analyzeStructureWithVerification(v,A){return(await this.parseInternalAsync(v,!0,A)).structure}static parseInternal(v,A,q){const k=(0,r.hexToBytes)(v),C=[];if(k.length<2){const S={messageHash:"",routeType:a.RouteType.Flood,payloadType:a.PayloadType.RawCustom,payloadVersion:a.PayloadVersion.Version1,pathLength:0,path:null,payload:{raw:"",decoded:null},totalBytes:k.length,isValid:!1,errors:["Packet too short (minimum 2 bytes required)"]},D={segments:[],totalBytes:k.length,rawHex:v.toUpperCase(),messageHash:"",payload:{segments:[],hex:"",startByte:0,type:"Unknown"}};return{packet:S,structure:D}}try{let S=0;const D=k[0],T=D&3,F=D>>2&15,O=D>>6&3;A&&C.push({name:"Header",description:"Header byte breakdown",startByte:0,endByte:0,value:`0x${D.toString(16).padStart(2,"0")}`,headerBreakdown:{fullBinary:D.toString(2).padStart(8,"0"),fields:[{bits:"0-1",field:"Route Type",value:(0,o.getRouteTypeName)(T),binary:(D&3).toString(2).padStart(2,"0")},{bits:"2-5",field:"Payload Type",value:(0,o.getPayloadTypeName)(F),binary:(D>>2&15).toString(2).padStart(4,"0")},{bits:"6-7",field:"Version",value:O.toString(),binary:(D>>6&3).toString(2).padStart(2,"0")}]}}),S=1;let N;if(T===a.RouteType.TransportFlood||T===a.RouteType.TransportDirect){if(k.length0?Array.from(V).map(r.byteToHex):null;if(A&&R>0)if(F===a.PayloadType.Trace){const z=[];for(let I=0;I127?L-256:L)/4;z.push(`${ue.toFixed(2)}dB (0x${L.toString(16).padStart(2,"0")})`)}C.push({name:"Path SNR Data",description:`SNR values collected during trace: ${z.join(", ")}`,startByte:S,endByte:S+R-1,value:(0,r.bytesToHex)(k.slice(S,S+R))})}else{let z="Routing path information";T===a.RouteType.Direct||T===a.RouteType.TransportDirect?z="Routing instructions (bytes are stripped at each hop as packet travels to destination)":(T===a.RouteType.Flood||T===a.RouteType.TransportFlood)&&(z="Historical route taken (bytes are added as packet floods through network)"),C.push({name:"Path Data",description:z,startByte:S,endByte:S+R-1,value:(0,r.bytesToHex)(k.slice(S,S+R))})}S+=R;const $=k.subarray(S),ae=(0,r.bytesToHex)($);A&&k.length>S&&C.push({name:"Payload",description:`${(0,o.getPayloadTypeName)(F)} payload data`,startByte:S,endByte:k.length-1,value:(0,r.bytesToHex)(k.slice(S))});let J=null;const ie=[];if(F===a.PayloadType.Advert){const z=u.AdvertPayloadDecoder.decode($,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.Trace){const z=l.TracePayloadDecoder.decode($,H,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.GroupText){const z=m.GroupTextPayloadDecoder.decode($,{...q,includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.Request){const z=c.RequestPayloadDecoder.decode($,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.Response){const z=h.ResponsePayloadDecoder.decode($,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.AnonRequest){const z=d.AnonRequestPayloadDecoder.decode($,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.Ack){const z=y.AckPayloadDecoder.decode($,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.Path)J=g.PathPayloadDecoder.decode($);else if(F===a.PayloadType.TextMessage){const z=f.TextMessagePayloadDecoder.decode($,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}else if(F===a.PayloadType.Control){const z=x.ControlPayloadDecoder.decode($,{includeSegments:A,segmentOffset:0});J=z,z!=null&&z.segments&&(ie.push(...z.segments),delete z.segments)}A&&ie.length===0&&k.length>S&&ie.push({name:`${(0,o.getPayloadTypeName)(F)} Payload`,description:`Raw ${(0,o.getPayloadTypeName)(F)} payload data (${$.length} bytes)`,startByte:0,endByte:$.length-1,value:(0,r.bytesToHex)($)});const W=this.calculateMessageHash(k,T,F,O),oe={messageHash:W,routeType:T,payloadType:F,payloadVersion:O,transportCodes:N,pathLength:R,path:H,payload:{raw:ae,decoded:J},totalBytes:k.length,isValid:!0},ee={segments:C,totalBytes:k.length,rawHex:v.toUpperCase(),messageHash:W,payload:{segments:ie,hex:ae,startByte:S,type:(0,o.getPayloadTypeName)(F)}};return{packet:oe,structure:ee}}catch(S){const D={messageHash:"",routeType:a.RouteType.Flood,payloadType:a.PayloadType.RawCustom,payloadVersion:a.PayloadVersion.Version1,pathLength:0,path:null,payload:{raw:"",decoded:null},totalBytes:k.length,isValid:!1,errors:[S instanceof Error?S.message:"Unknown decoding error"]},T={segments:[],totalBytes:k.length,rawHex:v.toUpperCase(),messageHash:"",payload:{segments:[],hex:"",startByte:0,type:"Unknown"}};return{packet:D,structure:T}}}static async parseInternalAsync(v,A,q){const k=this.parseInternal(v,A,q);if(k.packet.payloadType===a.PayloadType.Advert&&k.packet.payload.decoded)try{const C=k.packet.payload.decoded,S=await u.AdvertPayloadDecoder.decodeWithVerification((0,r.hexToBytes)(k.packet.payload.raw),{includeSegments:A,segmentOffset:0});S&&(k.packet.payload.decoded=S,S.isValid||(k.packet.isValid=!1,k.packet.errors=S.errors||["Invalid advertisement signature"]),A&&S.segments&&(k.structure.payload.segments=S.segments,delete S.segments))}catch(C){console.error("Signature verification failed:",C)}return k}static validate(v){const A=(0,r.hexToBytes)(v),q=[];if(A.length<2)return q.push("Packet too short (minimum 2 bytes required)"),{isValid:!1,errors:q};try{let k=1;const S=A[0]&3;if((S===a.RouteType.TransportFlood||S===a.RouteType.TransportDirect)&&(A.length=A.length&&q.push("No payload data found")}catch(k){q.push(k instanceof Error?k.message:"Validation error")}return{isValid:q.length===0,errors:q.length>0?q:void 0}}static calculateMessageHash(v,A,q,k){if(q===a.PayloadType.Trace&&v.length>=13){let O=1;if((A===a.RouteType.TransportFlood||A===a.RouteType.TransportDirect)&&(O+=4),v.length>O){const N=v[O];O+=1+N}if(v.length>=O+4){const N=v[O]|v[O+1]<<8|v[O+2]<<16|v[O+3]<<24;return(0,r.numberToHex)(N,8)}}const C=q<<2|k<<6;let S=1;if((A===a.RouteType.TransportFlood||A===a.RouteType.TransportDirect)&&(S+=4),v.length>S){const O=v[S];S+=1+O}const D=v.slice(S),T=[C,...Array.from(D)];let F=0;for(let O=0;Ok.exp)return null;const C=`${g}.${f}`,S=new TextEncoder().encode(C),D=(0,r.bytesToHex)(S);return await(0,a.verify)(x,D,k.publicKey)?k:null}catch{return null}}function m(h){try{const d=h.split(".");return d.length!==3?null:{header:d[0],payload:d[1],signature:d[2]}}catch{return null}}function c(h){try{const d=h.split(".");if(d.length!==3)return null;const y=t(d[1]),g=new TextDecoder().decode(y);return JSON.parse(g)}catch{return null}}return Wn}var Fg;function vj(){return Fg||(Fg=1,(function(a){var r=Xa&&Xa.__createBinding||(Object.create?(function(A,q,k,C){C===void 0&&(C=k);var S=Object.getOwnPropertyDescriptor(q,k);(!S||("get"in S?!q.__esModule:S.writable||S.configurable))&&(S={enumerable:!0,get:function(){return q[k]}}),Object.defineProperty(A,C,S)}):(function(A,q,k,C){C===void 0&&(C=k),A[C]=q[k]})),o=Xa&&Xa.__setModuleDefault||(Object.create?(function(A,q){Object.defineProperty(A,"default",{enumerable:!0,value:q})}):function(A,q){A.default=q}),t=Xa&&Xa.__importStar||(function(){var A=function(q){return A=Object.getOwnPropertyNames||function(k){var C=[];for(var S in k)Object.prototype.hasOwnProperty.call(k,S)&&(C[C.length]=S);return C},A(q)};return function(q){if(q&&q.__esModule)return q;var k={};if(q!=null)for(var C=A(q),S=0;S2?r+o:1;return Gn*t*Gn}function Sj(a,r=_u,o){const t=Math.floor(Date.now()/1e3);return a<=t&&a>=t-r}function Bj(a){return!a.includes("�")}class hl{constructor(){this.device=null,this.pipeline=null,this.bindGroupLayout=null,this.paramsBuffer=null,this.matchCountBuffer=null,this.matchIndicesBuffer=null,this.ciphertextBuffer=null,this.ciphertextBufferSize=0,this.matchCountReadBuffers=[null,null],this.matchIndicesReadBuffers=[null,null],this.currentReadBufferIndex=0,this.bindGroup=null,this.bindGroupDirty=!0,this.shaderCode=` // SHA256 round constants const K: array = array( 0x428a2f98u, 0x71374491u, 0xb5c0fbcfu, 0xe9b5dba5u, 0x3956c25bu, 0x59f111f1u, 0x923f82a4u, 0xab1c5ed5u, @@ -529,4 +529,4 @@ fn main(@builtin(global_invocation_id) global_id: vec3) { See https://github.com/richtr/NoSleep.js/issues/15 for more details. `),this.noSleepTimer=window.setInterval(()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(c=>(this.enabled=!0,c)).catch(c=>{throw this.enabled=!1,c})}disable(){t()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):o()?this.noSleepTimer&&(console.warn(` NoSleep now disabled for older iOS devices. - `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}}return fu=u,fu}var Mj=Ij();const Oj=Fo(Mj);function Hj({packets:a,channels:r,onChannelCreate:o,onRunningChange:t}){const[u,l]=B.useState(!1),[m,c]=B.useState(6),[h,d]=B.useState(!1),[y,g]=B.useState(!0),[f,x]=B.useState(!1),[w,j]=B.useState(null),[v,A]=B.useState(new Map),[q,k]=B.useState([]),[C,S]=B.useState(!1),[D,T]=B.useState(null),[F,O]=B.useState(null),N=B.useRef(null),R=B.useRef(null),V=B.useRef(!1),H=B.useRef(!1),$=B.useRef(!1),ae=B.useRef(new Map),J=B.useRef(!1),ie=B.useRef(6),W=B.useRef(!0),oe=B.useRef(!1),ee=B.useRef(new Set);B.useEffect(()=>{const le=new Tj;N.current=le,T(le.isGpuAvailable());const je=new Oj;return R.current=je,le.setWordlist(Pj),S(!0),()=>{le.destroy(),N.current=null,je.disable(),R.current=null}},[]),B.useEffect(()=>{const le=()=>{ii.getUndecryptedPacketCount().then(({count:Pe})=>O(Pe)).catch(()=>O(null))};le();const je=setInterval(le,3e4);return()=>clearInterval(je)},[]);const z=new Set(r.map(le=>le.key.toUpperCase())),I=a.filter(le=>le.payload_type==="GROUP_TEXT"&&!le.decrypted);B.useEffect(()=>{A(le=>{const je=new Map(le);let Pe=!1;for(const Ze of I)je.has(Ze.id)||(je.set(Ze.id,{packet:Ze,attempts:0,lastAttemptLength:0,status:"pending"}),Pe=!0);return Pe?(ae.current=je,je):le})},[I.length]),B.useEffect(()=>{ae.current=v},[v]),B.useEffect(()=>{J.current=h},[h]),B.useEffect(()=>{ie.current=m},[m]),B.useEffect(()=>{W.current=y},[y]),B.useEffect(()=>{oe.current=f},[f]),B.useEffect(()=>{ee.current=new Set(I.map(le=>le.id))},[I]),B.useEffect(()=>{t==null||t(u)},[u,t]);const L=Array.from(v.values()).filter(le=>le.status==="pending").length,G=Array.from(v.values()).filter(le=>le.status==="cracked").length,ue=Array.from(v.values()).filter(le=>le.status==="failed").length,he=B.useCallback(async()=>{if($.current||!N.current||!V.current)return;const le=ae.current;let je=null,Pe=null;for(const[_e,Ge]of le.entries())if(Ge.status==="pending"){je=Ge,Pe=_e;break}if(!je&&J.current){const _e=Array.from(le.entries()).filter(([,Ge])=>Ge.status==="failed"&&Ge.lastAttemptLength<10);_e.length>0&&(_e.sort((Ge,ei)=>Ge[1].lastAttemptLength-ei[1].lastAttemptLength),[Pe,je]=_e[0])}if(!je||Pe===null){V.current&&setTimeout(()=>he(),1e3);return}if(!ee.current.has(Pe)){A(_e=>{const Ge=new Map(_e);return Ge.delete(Pe),Ge}),V.current&&setTimeout(()=>he(),10);return}$.current=!0;const Ze=ie.current,Je=je.lastAttemptLength>0?je.lastAttemptLength+1:Ze;try{const _e=await N.current.crack(je.packet.data,{maxLength:Je,useTimestampFilter:!0,useUtf8Filter:!0,...oe.current&&{gpuDispatchMs:1e4}},Ge=>{j(Ge)});if(H.current){H.current=!1,$.current=!1,j(null);return}if(_e.found&&_e.roomName&&_e.key){A(Ve=>{const xi=new Map(Ve),ai=xi.get(Pe);return ai&&xi.set(Pe,{...ai,status:"cracked",attempts:ai.attempts+1,lastAttemptLength:Je}),xi});const Ge={roomName:_e.roomName,key:_e.key,packetId:Pe,message:_e.decryptedMessage||"",crackedAt:Date.now()};k(Ve=>[...Ve,Ge]);const ei=_e.key.toUpperCase();if(!z.has(ei))try{const Ve="#"+_e.roomName;await o(Ve,_e.key),W.current&&await ii.decryptHistoricalPackets({key_type:"channel",channel_name:Ve})}catch(Ve){console.error("Failed to create channel or decrypt historical:",Ve)}}else A(Ge=>{const ei=new Map(Ge),Ve=ei.get(Pe);return Ve&&ei.set(Pe,{...Ve,status:"failed",attempts:Ve.attempts+1,lastAttemptLength:Je}),ei})}catch(_e){console.error("Cracking error:",_e),A(Ge=>{const ei=new Map(Ge),Ve=ei.get(Pe);return Ve&&ei.set(Pe,{...Ve,status:"failed",attempts:Ve.attempts+1,lastAttemptLength:Je}),ei})}$.current=!1,j(null),V.current&&setTimeout(()=>he(),100)},[z,o]),ge=()=>{var le;if(!D){alert("WebGPU is not available in your browser. Please use Chrome 113+ or Edge 113+.");return}l(!0),V.current=!0,H.current=!1,(le=R.current)==null||le.enable(),he()},re=()=>{var le,je;l(!1),V.current=!1,H.current=!0,(le=N.current)==null||le.abort(),(je=R.current)==null||je.disable()};return _.jsxs("div",{className:"flex flex-col h-full p-3 gap-3 bg-background border-t border-border",children:[_.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[_.jsx("button",{onClick:u?re:ge,disabled:!C||D===!1,className:Ke("px-4 py-1.5 rounded text-sm font-medium",u?"bg-destructive text-destructive-foreground hover:bg-destructive/90":"bg-primary text-primary-foreground hover:bg-primary/90","disabled:opacity-50 disabled:cursor-not-allowed"),children:u?"Stop":"Start Cracking"}),_.jsxs("div",{className:"flex items-center gap-2",children:[_.jsx("label",{className:"text-sm text-muted-foreground",children:"Max Length:"}),_.jsx("input",{type:"number",min:1,max:10,value:m,onChange:le=>c(Math.min(10,Math.max(1,parseInt(le.target.value)||6))),className:"w-14 px-2 py-1 text-sm bg-muted border border-border rounded"})]}),_.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[_.jsx("input",{type:"checkbox",checked:h,onChange:le=>d(le.target.checked),className:"rounded"}),"Retry failed at n+1"]}),_.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[_.jsx("input",{type:"checkbox",checked:y,onChange:le=>g(le.target.checked),className:"rounded"}),"Decrypt historical"]}),y&&_.jsx("span",{className:"text-xs text-muted-foreground",children:F!==null&&F>0?`(${F.toLocaleString()} packets; messages stream in as decrypted)`:"(messages stream in as decrypted)"}),_.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[_.jsx("input",{type:"checkbox",checked:f,onChange:le=>x(le.target.checked),className:"rounded"}),"Turbo mode (experimental)"]})]}),_.jsxs("div",{className:"flex gap-4 text-sm",children:[_.jsxs("span",{className:"text-muted-foreground",children:["Pending: ",_.jsx("span",{className:"text-foreground font-medium",children:L})]}),_.jsxs("span",{className:"text-muted-foreground",children:["Cracked: ",_.jsx("span",{className:"text-green-500 font-medium",children:G})]}),_.jsxs("span",{className:"text-muted-foreground",children:["Failed: ",_.jsx("span",{className:"text-destructive font-medium",children:ue})]})]}),w&&_.jsxs("div",{className:"space-y-1",children:[_.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[_.jsxs("span",{children:[w.phase==="wordlist"?"Dictionary":w.phase==="bruteforce"?"Bruteforce":"Public Key",w.phase==="bruteforce"&&` - Length ${w.currentLength}`,": ",w.currentPosition]}),_.jsxs("span",{children:[w.rateKeysPerSec>=1e9?`${(w.rateKeysPerSec/1e9).toFixed(2)} Gkeys/s`:`${(w.rateKeysPerSec/1e6).toFixed(1)} Mkeys/s`," ","• ETA: ",w.etaSeconds<60?`${Math.round(w.etaSeconds)}s`:`${Math.round(w.etaSeconds/60)}m`]})]}),_.jsx("div",{className:"h-2 bg-muted rounded overflow-hidden",children:_.jsx("div",{className:"h-full bg-primary transition-all duration-200",style:{width:`${w.percent}%`}})})]}),D===!1&&_.jsx("div",{className:"text-sm text-destructive",children:"WebGPU not available. Cracking requires Chrome 113+ or Edge 113+."}),!C&&D!==!1&&_.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading wordlist..."}),q.length>0&&_.jsxs("div",{className:"flex-1 overflow-y-auto min-h-0",children:[_.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"Cracked Rooms:"}),_.jsx("div",{className:"space-y-1",children:q.map((le,je)=>_.jsxs("div",{className:"text-sm bg-green-950/30 border border-green-900/50 rounded px-2 py-1",children:[_.jsxs("span",{className:"text-green-400 font-medium",children:["#",le.roomName]}),_.jsxs("span",{className:"text-muted-foreground ml-2 text-xs",children:['"',le.message.slice(0,50),le.message.length>50?"...":"",'"']})]},je))})]})]})}const Lj=Ly,Vj=Vy,Zb=B.forwardRef(({className:a,...r},o)=>_.jsx(rl,{className:Ke("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...r,ref:o}));Zb.displayName=rl.displayName;const Uj=il("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),Xb=B.forwardRef(({side:a="right",className:r,children:o,hideCloseButton:t=!1,...u},l)=>_.jsxs(Vj,{children:[_.jsx(Zb,{}),_.jsxs(sl,{ref:l,className:Ke(Uj({side:a}),r),...u,children:[!t&&_.jsxs(Uy,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[_.jsx(Wg,{className:"h-4 w-4"}),_.jsx("span",{className:"sr-only",children:"Close"})]}),o]})]}));Xb.displayName=sl.displayName;const Jb=({className:a,...r})=>_.jsx("div",{className:Ke("flex flex-col space-y-2 text-center sm:text-left",a),...r});Jb.displayName="SheetHeader";const ef=B.forwardRef(({className:a,...r},o)=>_.jsx(tl,{ref:o,className:Ke("text-lg font-semibold text-foreground",a),...r}));ef.displayName=tl.displayName;const Wj=B.forwardRef(({className:a,...r},o)=>_.jsx(ll,{ref:o,className:Ke("text-sm text-muted-foreground",a),...r}));Wj.displayName=ll.displayName;const Hg=500;function Gj(a){return`${a.type}-${a.conversation_key}-${a.text}-${a.sender_timestamp}`}function Qj(){const a=window.location.hash.slice(1);if(!a)return null;if(a==="raw")return{type:"raw",name:"raw"};const r=a.indexOf("/");if(r===-1)return null;const o=a.slice(0,r),t=decodeURIComponent(a.slice(r+1));return(o==="channel"||o==="contact")&&t?{type:o,name:t}:null}function $j(a){if(!a)return"";if(a.type==="raw")return"#raw";const r=a.type==="channel"&&a.name.startsWith("#")?a.name.slice(1):a.name;return`#${a.type}/${encodeURIComponent(r)}`}function Kj(){const a=B.useRef(null),r=B.useRef(null),o=B.useRef(new Set),[t,u]=B.useState(null),[l,m]=B.useState(null),[c,h]=B.useState(null),[d,y]=B.useState([]),[g,f]=B.useState([]),[x,w]=B.useState([]),[j,v]=B.useState(!1),[A,q]=B.useState(!1),[k,C]=B.useState([]),[S,D]=B.useState(null),[T,F]=B.useState(!1),[O,N]=B.useState(!1),[R,V]=B.useState(!1),[H,$]=B.useState(!1),[ae,J]=B.useState(0),[ie,W]=B.useState(!1),[oe,ee]=B.useState(!1),[z,I]=B.useState(Ym),[L,G]=B.useState({}),ue=B.useRef(null),he=B.useMemo(()=>({onHealth:Z=>{const de=ue.current;ue.current=Z,u(Z),de!==null&&de.radio_connected!==Z.radio_connected&&(Z.radio_connected?Tr.success("Radio connected",{description:Z.serial_port?`Connected to ${Z.serial_port}`:void 0}):Tr.error("Radio disconnected",{description:"Check radio connection and power"}))},onError:Z=>{Tr.error(Z.message,{description:Z.details})},onContacts:Z=>y(Z),onChannels:Z=>f(Z),onMessage:Z=>{const de=r.current,ze=Gj(Z);if(o.current.has(ze)){console.debug("Duplicate message content ignored:",ze.slice(0,50));return}if(o.current.add(ze),o.current.size>1e3){const ye=Array.from(o.current);o.current=new Set(ye.slice(-500))}let K=null;Z.type==="CHAN"&&Z.conversation_key?K=an("channel",Z.conversation_key):Z.type==="PRIV"&&Z.conversation_key&&(K=an("contact",Z.conversation_key));const ne=de?Z.type==="CHAN"&&de.type==="channel"?Z.conversation_key===de.id:Z.type==="PRIV"&&de.type==="contact"?Z.conversation_key&&$g(de.id,Z.conversation_key):!1:!1;if(ne&&w(ye=>ye.some(Fe=>Fe.id===Z.id)?ye:[...ye,Z]),K){const ye=Z.received_at||Math.floor(Date.now()/1e3),Fe=au(K,ye);I(Fe),!Z.outgoing&&!ne&&G(Be=>({...Be,[K]:(Be[K]||0)+1}))}},onContact:Z=>{y(de=>{const ze=de.findIndex(K=>K.public_key===Z.public_key);if(ze>=0){const K=[...de],ne=de[ze];return K[ze]={...ne,...Z,name:Z.name??ne.name,last_path:Z.last_path??ne.last_path,lat:Z.lat??ne.lat,lon:Z.lon??ne.lon},K}return[...de,Z]})},onRawPacket:Z=>{C(de=>{if(de.some(K=>K.id===Z.id))return de;const ze=[...de,Z];return ze.length>Hg?ze.slice(-Hg):ze})},onMessageAcked:Z=>{w(de=>{const ze=de.findIndex(K=>K.id===Z);if(ze>=0){const K=[...de];return K[ze]={...de[ze],acked:!0},K}return de})}}),[]);tk(he);const ge=B.useCallback(async()=>{try{const Z=await ii.getRadioConfig();m(Z)}catch(Z){console.error("Failed to fetch config:",Z)}},[]),re=B.useCallback(async()=>{try{const Z=await ii.getSettings();h(Z)}catch(Z){console.error("Failed to fetch app settings:",Z)}},[]),le=B.useCallback(async()=>{try{const Z=await ii.getUndecryptedPacketCount();J(Z.count)}catch(Z){console.error("Failed to fetch undecrypted count:",Z)}},[]),je=200,Pe=B.useCallback(async(Z=!1)=>{if(!S){w([]),v(!1);return}Z&&F(!0);try{const de=await ii.getMessages({type:S.type==="channel"?"CHAN":"PRIV",conversation_key:S.id,limit:je});w(de),v(de.length>=je)}catch(de){console.error("Failed to fetch messages:",de)}finally{Z&&F(!1)}},[S]),Ze=B.useCallback(async()=>{if(!(!S||A||!j)){q(!0);try{const Z=await ii.getMessages({type:S.type==="channel"?"CHAN":"PRIV",conversation_key:S.id,limit:je,offset:x.length});Z.length>0&&w(de=>[...de,...Z]),v(Z.length>=je)}catch(Z){console.error("Failed to fetch older messages:",Z)}finally{q(!1)}}},[S,A,j,x.length]);B.useEffect(()=>{ge(),re(),le()},[ge,re,le]);const Je=B.useCallback(()=>{const Z=Qj();if(!Z)return null;if(Z.type==="raw")return{type:"raw",id:"raw",name:"Raw Packet Feed"};if(Z.type==="channel"){const de=g.find(ze=>ze.name===Z.name||ze.name===`#${Z.name}`);if(de)return{type:"channel",id:de.key,name:de.name}}if(Z.type==="contact"){const de=d.find(ze=>Kn(ze.name,ze.public_key)===Z.name);if(de)return{type:"contact",id:de.public_key,name:Kn(de.name,de.public_key)}}return null},[g,d]),_e=B.useRef(!1);B.useEffect(()=>{if(_e.current||S||g.length===0&&d.length===0)return;const Z=Je();if(Z){D(Z),_e.current=!0;return}const de=g.find(ze=>ze.name==="Public");de&&(D({type:"channel",id:de.key,name:de.name}),_e.current=!0)},[g,d,S,Je]);const Ge=B.useRef(new Set),ei=B.useRef(new Set);B.useEffect(()=>{const Z=g.filter(K=>!Ge.current.has(K.key)),de=d.filter(K=>K.public_key&&!ei.current.has(K.public_key));if(Z.length===0&&de.length===0)return;Z.forEach(K=>Ge.current.add(K.key)),de.forEach(K=>ei.current.add(K.public_key)),(async()=>{const K=[...Z.map(ne=>({type:"CHAN",conversation_key:ne.key})),...de.map(ne=>({type:"PRIV",conversation_key:ne.public_key}))];if(K.length!==0)try{const ne=await ii.getMessagesBulk(K,100),ye=$k(),Fe={},Be={};for(const Ne of Z){const Re=ne[`CHAN:${Ne.key}`]||[];if(Re.length>0){const Te=an("channel",Ne.key),ji=ye[Te]||0,Ae=Re.filter(Ue=>!Ue.outgoing&&Ue.received_at>ji).length;Ae>0&&(Fe[Te]=Ae);const Oe=Math.max(...Re.map(Ue=>Ue.received_at));Be[Te]=Oe,au(Te,Oe)}}for(const Ne of de){const Re=ne[`PRIV:${Ne.public_key}`]||[];if(Re.length>0){const Te=an("contact",Ne.public_key),ji=ye[Te]||0,Ae=Re.filter(Ue=>!Ue.outgoing&&Ue.received_at>ji).length;Ae>0&&(Fe[Te]=Ae);const Oe=Math.max(...Re.map(Ue=>Ue.received_at));Be[Te]=Oe,au(Te,Oe)}}Object.keys(Fe).length>0&&G(Ne=>({...Ne,...Fe})),I(Ym())}catch(ne){console.error("Failed to fetch messages bulk:",ne)}})()},[g,d]),B.useEffect(()=>{if(r.current=S,S&&S.type!=="raw"){const Z=an(S.type,S.id),de=Math.floor(Date.now()/1e3);nu(Z,de),G(ze=>{if(ze[Z]){const K={...ze};return delete K[Z],K}return ze})}if(S){const Z=$j(S);Z!==window.location.hash&&window.history.replaceState(null,"",Z)}},[S]),B.useEffect(()=>{Pe(!0)},[Pe]);const Ve=B.useCallback(async Z=>{S&&(S.type==="channel"?await ii.sendChannelMessage(S.id,Z):await ii.sendDirectMessage(S.id,Z),await Pe())},[S,Pe]),xi=B.useCallback(async Z=>{await ii.updateRadioConfig(Z),await ge()},[ge]),ai=B.useCallback(async Z=>{await ii.updateSettings(Z),await re()},[re]),Ti=B.useCallback(async Z=>{await ii.setPrivateKey(Z),await ge()},[ge]),si=B.useCallback(async()=>{await ii.rebootRadio(),u(de=>de&&{...de,radio_connected:!1}),(async()=>{for(let de=0;de<30;de++){await new Promise(ze=>setTimeout(ze,1e3));try{const ze=await ii.getHealth();if(u(ze),ze.radio_connected){ge();return}}catch{}}})()},[ge]),We=B.useCallback(async()=>{try{await ii.sendAdvertisement(!0)}catch(Z){console.error("Failed to send advertisement:",Z)}},[]),mi=B.useCallback(Z=>{var de;(de=a.current)==null||de.appendText(`@[${Z}] `)},[]),$i=B.useCallback(Z=>{D(Z),$(!1)},[]),va=B.useCallback(()=>{const Z=Math.floor(Date.now()/1e3);for(const de of g){const ze=an("channel",de.key);nu(ze,Z)}for(const de of d)if(de.public_key){const ze=an("contact",de.public_key);nu(ze,Z)}G({})},[g,d]),zi=B.useCallback(async Z=>{if(confirm("Delete this channel? Message history will be preserved."))try{await ii.deleteChannel(Z),f(de=>de.filter(ze=>ze.key!==Z)),D(null)}catch(de){console.error("Failed to delete channel:",de)}},[]),Oi=B.useCallback(async Z=>{if(confirm("Delete this contact? Message history will be preserved."))try{await ii.deleteContact(Z),y(de=>de.filter(ze=>ze.public_key!==Z)),D(null)}catch(de){console.error("Failed to delete contact:",de)}},[]),Ki=B.useCallback(async(Z,de,ze)=>{const K={public_key:de,name:Z,type:0,flags:0,last_path:null,last_path_len:-1,last_advert:null,lat:null,lon:null,last_seen:null,on_radio:!1};y(ne=>[...ne,K]),D({type:"contact",id:de,name:Kn(Z,de)}),ze&&console.log("Contact historical decryption not yet supported")},[]),oa=B.useCallback(async(Z,de,ze)=>{const K=await ii.createChannel(Z,de),ne=await ii.getChannels();f(ne),D({type:"channel",id:K.key,name:Z}),ze&&(await ii.decryptHistoricalPackets({key_type:"channel",channel_key:K.key}),le())},[le]),qi=B.useCallback(async(Z,de)=>{const ze=Z.startsWith("#")?Z:`#${Z}`,K=await ii.createChannel(ze),ne=await ii.getChannels();f(ne),D({type:"channel",id:K.key,name:ze}),de&&(await ii.decryptHistoricalPackets({key_type:"channel",channel_name:ze}),le())},[le]),ci=_.jsx(ex,{contacts:d,channels:g,activeConversation:S,onSelectConversation:$i,onNewMessage:()=>{N(!0),$(!1)},lastMessageTimes:z,unreadCounts:L,showCracker:ie,crackerRunning:oe,onToggleCracker:()=>W(Z=>!Z),onMarkAllRead:va});return _.jsxs("div",{className:"flex flex-col h-screen",children:[_.jsx(Gk,{health:t,config:l,onConfigClick:()=>V(!0),onAdvertise:We,onMenuClick:()=>$(!0)}),_.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[_.jsx("div",{className:"hidden md:block",children:ci}),_.jsx(Lj,{open:H,onOpenChange:$,children:_.jsxs(Xb,{side:"left",className:"w-[280px] p-0 flex flex-col",hideCloseButton:!0,children:[_.jsx(Jb,{className:"sr-only",children:_.jsx(ef,{children:"Navigation"})}),_.jsx("div",{className:"flex-1 overflow-hidden",children:ci})]})}),_.jsx("div",{className:"flex-1 flex flex-col bg-background",children:S?S.type==="raw"?_.jsxs(_.Fragment,{children:[_.jsx("div",{className:"flex justify-between items-center px-4 py-3 border-b border-border font-medium",children:"Raw Packet Feed"}),_.jsx("div",{className:"flex-1 overflow-hidden",children:_.jsx(F0,{packets:k})})]}):_.jsxs(_.Fragment,{children:[_.jsxs("div",{className:"flex justify-between items-center px-4 py-3 border-b border-border font-medium",children:[_.jsxs("span",{className:"flex flex-col sm:flex-row sm:items-center sm:gap-2",children:[_.jsxs("span",{children:[S.type==="channel"&&!S.name.startsWith("#")?"#":"",S.name]}),_.jsx("span",{className:"font-normal text-xs text-muted-foreground font-mono",children:S.id})]}),!(S.type==="channel"&&S.name==="Public")&&_.jsx("button",{className:"py-1 px-3 bg-destructive/20 border border-destructive/30 text-destructive rounded text-xs cursor-pointer hover:bg-destructive/30",onClick:()=>{S.type==="channel"?zi(S.id):Oi(S.id)},children:"Delete"})]}),_.jsx(ix,{messages:x,contacts:d,loading:T,loadingOlder:A,hasOlderMessages:j,onSenderClick:S.type==="channel"?mi:void 0,onLoadOlder:Ze}),_.jsx(ax,{ref:a,onSend:Ve,disabled:!(t!=null&&t.radio_connected),placeholder:t!=null&&t.radio_connected?`Message ${S.name}...`:"Radio not connected"})]}):_.jsx("div",{className:"flex-1 flex items-center justify-center text-muted-foreground",children:"Select a conversation or start a new one"})})]}),_.jsx("div",{className:Ke("border-t border-border bg-background transition-all duration-200 overflow-hidden",ie?"h-[275px]":"h-0"),children:_.jsx(Hj,{packets:k,channels:g,onChannelCreate:async(Z,de)=>{const ze=await ii.createChannel(Z,de),K=await ii.getChannels();f(K),await ii.decryptHistoricalPackets({key_type:"channel",channel_key:ze.key}),le()},onRunningChange:ee})}),_.jsx(w0,{open:O,contacts:d,undecryptedCount:ae,onClose:()=>N(!1),onSelectConversation:Z=>{D(Z),N(!1)},onCreateContact:Ki,onCreateChannel:oa,onCreateHashtagChannel:qi}),_.jsx(S0,{open:R,config:l,appSettings:c,onClose:()=>V(!1),onSave:xi,onSaveAppSettings:ai,onSetPrivateKey:Ti,onReboot:si}),_.jsx(Wk,{position:"top-right"})]})}rk.createRoot(document.getElementById("root")).render(_.jsx(B.StrictMode,{children:_.jsx(Kj,{})})); + `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}}return fu=u,fu}var Mj=Ij();const Oj=Fo(Mj);function Hj({packets:a,channels:r,onChannelCreate:o,onRunningChange:t}){const[u,l]=B.useState(!1),[m,c]=B.useState(6),[h,d]=B.useState(!1),[y,g]=B.useState(!0),[f,x]=B.useState(!1),[w,j]=B.useState(null),[v,A]=B.useState(new Map),[q,k]=B.useState([]),[C,S]=B.useState(!1),[D,T]=B.useState(null),[F,O]=B.useState(null),N=B.useRef(null),R=B.useRef(null),V=B.useRef(!1),H=B.useRef(!1),$=B.useRef(!1),ae=B.useRef(new Map),J=B.useRef(!1),ie=B.useRef(6),W=B.useRef(!0),oe=B.useRef(!1),ee=B.useRef(new Set);B.useEffect(()=>{const le=new Tj;N.current=le,T(le.isGpuAvailable());const je=new Oj;return R.current=je,le.setWordlist(Pj),S(!0),()=>{le.destroy(),N.current=null,je.disable(),R.current=null}},[]),B.useEffect(()=>{const le=()=>{ii.getUndecryptedPacketCount().then(({count:Te})=>O(Te)).catch(()=>O(null))};le();const je=setInterval(le,3e4);return()=>clearInterval(je)},[]);const z=new Set(r.map(le=>le.key.toUpperCase())),I=a.filter(le=>le.payload_type==="GROUP_TEXT"&&!le.decrypted);B.useEffect(()=>{A(le=>{const je=new Map(le);let Te=!1;for(const Xe of I)je.has(Xe.id)||(je.set(Xe.id,{packet:Xe,attempts:0,lastAttemptLength:0,status:"pending"}),Te=!0);return Te?(ae.current=je,je):le})},[I.length]),B.useEffect(()=>{ae.current=v},[v]),B.useEffect(()=>{J.current=h},[h]),B.useEffect(()=>{ie.current=m},[m]),B.useEffect(()=>{W.current=y},[y]),B.useEffect(()=>{oe.current=f},[f]),B.useEffect(()=>{ee.current=new Set(I.map(le=>le.id))},[I]),B.useEffect(()=>{t==null||t(u)},[u,t]);const L=Array.from(v.values()).filter(le=>le.status==="pending").length,G=Array.from(v.values()).filter(le=>le.status==="cracked").length,ue=Array.from(v.values()).filter(le=>le.status==="failed").length,he=B.useCallback(async()=>{if($.current||!N.current||!V.current)return;const le=ae.current;let je=null,Te=null;for(const[We,Le]of le.entries())if(Le.status==="pending"){je=Le,Te=We;break}if(!je&&J.current){const We=Array.from(le.entries()).filter(([,Le])=>Le.status==="failed"&&Le.lastAttemptLength<10);We.length>0&&(We.sort((Le,Je)=>Le[1].lastAttemptLength-Je[1].lastAttemptLength),[Te,je]=We[0])}if(!je||Te===null){V.current&&setTimeout(()=>he(),1e3);return}if(!ee.current.has(Te)){A(We=>{const Le=new Map(We);return Le.delete(Te),Le}),V.current&&setTimeout(()=>he(),10);return}$.current=!0;const Xe=ie.current,ai=je.lastAttemptLength>0,Ue=ai?je.lastAttemptLength+1:Xe;try{const We=await N.current.crack(je.packet.data,{maxLength:Ue,useTimestampFilter:!0,useUtf8Filter:!0,...oe.current&&{gpuDispatchMs:1e4},...ai&&{useDictionary:!1,startingLength:Ue}},Le=>{j(Le)});if(H.current){H.current=!1,$.current=!1,j(null);return}if(We.found&&We.roomName&&We.key){A($e=>{const ni=new Map($e),fi=ni.get(Te);return fi&&ni.set(Te,{...fi,status:"cracked",attempts:fi.attempts+1,lastAttemptLength:Ue}),ni});const Le={roomName:We.roomName,key:We.key,packetId:Te,message:We.decryptedMessage||"",crackedAt:Date.now()};k($e=>[...$e,Le]);const Je=We.key.toUpperCase();if(!z.has(Je))try{const $e="#"+We.roomName;await o($e,We.key),W.current&&await ii.decryptHistoricalPackets({key_type:"channel",channel_name:$e})}catch($e){console.error("Failed to create channel or decrypt historical:",$e)}}else A(Le=>{const Je=new Map(Le),$e=Je.get(Te);return $e&&Je.set(Te,{...$e,status:"failed",attempts:$e.attempts+1,lastAttemptLength:Ue}),Je})}catch(We){console.error("Cracking error:",We),A(Le=>{const Je=new Map(Le),$e=Je.get(Te);return $e&&Je.set(Te,{...$e,status:"failed",attempts:$e.attempts+1,lastAttemptLength:Ue}),Je})}$.current=!1,j(null),V.current&&setTimeout(()=>he(),100)},[z,o]),ge=()=>{var le;if(!D){alert("WebGPU is not available in your browser. Please use Chrome 113+ or Edge 113+.");return}l(!0),V.current=!0,H.current=!1,(le=R.current)==null||le.enable(),he()},re=()=>{var le,je;l(!1),V.current=!1,H.current=!0,(le=N.current)==null||le.abort(),(je=R.current)==null||je.disable()};return _.jsxs("div",{className:"flex flex-col h-full p-3 gap-3 bg-background border-t border-border",children:[_.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[_.jsx("button",{onClick:u?re:ge,disabled:!C||D===!1,className:Ye("px-4 py-1.5 rounded text-sm font-medium",u?"bg-destructive text-destructive-foreground hover:bg-destructive/90":"bg-primary text-primary-foreground hover:bg-primary/90","disabled:opacity-50 disabled:cursor-not-allowed"),children:u?"Stop":"Start Cracking"}),_.jsxs("div",{className:"flex items-center gap-2",children:[_.jsx("label",{className:"text-sm text-muted-foreground",children:"Max Length:"}),_.jsx("input",{type:"number",min:1,max:10,value:m,onChange:le=>c(Math.min(10,Math.max(1,parseInt(le.target.value)||6))),className:"w-14 px-2 py-1 text-sm bg-muted border border-border rounded"})]}),_.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[_.jsx("input",{type:"checkbox",checked:h,onChange:le=>d(le.target.checked),className:"rounded"}),"Retry failed at n+1"]}),_.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[_.jsx("input",{type:"checkbox",checked:y,onChange:le=>g(le.target.checked),className:"rounded"}),"Decrypt historical"]}),y&&_.jsx("span",{className:"text-xs text-muted-foreground",children:F!==null&&F>0?`(${F.toLocaleString()} packets; messages stream in as decrypted)`:"(messages stream in as decrypted)"}),_.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[_.jsx("input",{type:"checkbox",checked:f,onChange:le=>x(le.target.checked),className:"rounded"}),"Turbo mode (experimental)"]})]}),_.jsxs("div",{className:"flex gap-4 text-sm",children:[_.jsxs("span",{className:"text-muted-foreground",children:["Pending: ",_.jsx("span",{className:"text-foreground font-medium",children:L})]}),_.jsxs("span",{className:"text-muted-foreground",children:["Cracked: ",_.jsx("span",{className:"text-green-500 font-medium",children:G})]}),_.jsxs("span",{className:"text-muted-foreground",children:["Failed: ",_.jsx("span",{className:"text-destructive font-medium",children:ue})]})]}),w&&_.jsxs("div",{className:"space-y-1",children:[_.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[_.jsxs("span",{children:[w.phase==="wordlist"?"Dictionary":w.phase==="bruteforce"?"Bruteforce":"Public Key",w.phase==="bruteforce"&&` - Length ${w.currentLength}`,": ",w.currentPosition]}),_.jsxs("span",{children:[w.rateKeysPerSec>=1e9?`${(w.rateKeysPerSec/1e9).toFixed(2)} Gkeys/s`:`${(w.rateKeysPerSec/1e6).toFixed(1)} Mkeys/s`," ","• ETA: ",w.etaSeconds<60?`${Math.round(w.etaSeconds)}s`:`${Math.round(w.etaSeconds/60)}m`]})]}),_.jsx("div",{className:"h-2 bg-muted rounded overflow-hidden",children:_.jsx("div",{className:"h-full bg-primary transition-all duration-200",style:{width:`${w.percent}%`}})})]}),D===!1&&_.jsx("div",{className:"text-sm text-destructive",children:"WebGPU not available. Cracking requires Chrome 113+ or Edge 113+."}),!C&&D!==!1&&_.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading wordlist..."}),q.length>0&&_.jsxs("div",{className:"flex-1 overflow-y-auto min-h-0",children:[_.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"Cracked Rooms:"}),_.jsx("div",{className:"space-y-1",children:q.map((le,je)=>_.jsxs("div",{className:"text-sm bg-green-950/30 border border-green-900/50 rounded px-2 py-1",children:[_.jsxs("span",{className:"text-green-400 font-medium",children:["#",le.roomName]}),_.jsxs("span",{className:"text-muted-foreground ml-2 text-xs",children:['"',le.message.slice(0,50),le.message.length>50?"...":"",'"']})]},je))})]})]})}const Lj=Ly,Vj=Vy,Zb=B.forwardRef(({className:a,...r},o)=>_.jsx(rl,{className:Ye("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...r,ref:o}));Zb.displayName=rl.displayName;const Uj=il("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),Xb=B.forwardRef(({side:a="right",className:r,children:o,hideCloseButton:t=!1,...u},l)=>_.jsxs(Vj,{children:[_.jsx(Zb,{}),_.jsxs(sl,{ref:l,className:Ye(Uj({side:a}),r),...u,children:[!t&&_.jsxs(Uy,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[_.jsx(Wg,{className:"h-4 w-4"}),_.jsx("span",{className:"sr-only",children:"Close"})]}),o]})]}));Xb.displayName=sl.displayName;const Jb=({className:a,...r})=>_.jsx("div",{className:Ye("flex flex-col space-y-2 text-center sm:text-left",a),...r});Jb.displayName="SheetHeader";const ef=B.forwardRef(({className:a,...r},o)=>_.jsx(tl,{ref:o,className:Ye("text-lg font-semibold text-foreground",a),...r}));ef.displayName=tl.displayName;const Wj=B.forwardRef(({className:a,...r},o)=>_.jsx(ll,{ref:o,className:Ye("text-sm text-muted-foreground",a),...r}));Wj.displayName=ll.displayName;const Hg=500;function Gj(a){return`${a.type}-${a.conversation_key}-${a.text}-${a.sender_timestamp}`}function Qj(){const a=window.location.hash.slice(1);if(!a)return null;if(a==="raw")return{type:"raw",name:"raw"};const r=a.indexOf("/");if(r===-1)return null;const o=a.slice(0,r),t=decodeURIComponent(a.slice(r+1));return(o==="channel"||o==="contact")&&t?{type:o,name:t}:null}function $j(a){if(!a)return"";if(a.type==="raw")return"#raw";const r=a.type==="channel"&&a.name.startsWith("#")?a.name.slice(1):a.name;return`#${a.type}/${encodeURIComponent(r)}`}function Kj(){const a=B.useRef(null),r=B.useRef(null),o=B.useRef(new Set),[t,u]=B.useState(null),[l,m]=B.useState(null),[c,h]=B.useState(null),[d,y]=B.useState([]),[g,f]=B.useState([]),[x,w]=B.useState([]),[j,v]=B.useState(!1),[A,q]=B.useState(!1),[k,C]=B.useState([]),[S,D]=B.useState(null),[T,F]=B.useState(!1),[O,N]=B.useState(!1),[R,V]=B.useState(!1),[H,$]=B.useState(!1),[ae,J]=B.useState(0),[ie,W]=B.useState(!1),[oe,ee]=B.useState(!1),[z,I]=B.useState(Ym),[L,G]=B.useState({}),ue=B.useRef(null),he=B.useMemo(()=>({onHealth:Z=>{const de=ue.current;ue.current=Z,u(Z),de!==null&&de.radio_connected!==Z.radio_connected&&(Z.radio_connected?Tr.success("Radio connected",{description:Z.serial_port?`Connected to ${Z.serial_port}`:void 0}):Tr.error("Radio disconnected",{description:"Check radio connection and power"}))},onError:Z=>{Tr.error(Z.message,{description:Z.details})},onContacts:Z=>y(Z),onChannels:Z=>f(Z),onMessage:Z=>{const de=r.current,ze=Gj(Z);if(o.current.has(ze)){console.debug("Duplicate message content ignored:",ze.slice(0,50));return}if(o.current.add(ze),o.current.size>1e3){const ye=Array.from(o.current);o.current=new Set(ye.slice(-500))}let K=null;Z.type==="CHAN"&&Z.conversation_key?K=an("channel",Z.conversation_key):Z.type==="PRIV"&&Z.conversation_key&&(K=an("contact",Z.conversation_key));const ne=de?Z.type==="CHAN"&&de.type==="channel"?Z.conversation_key===de.id:Z.type==="PRIV"&&de.type==="contact"?Z.conversation_key&&$g(de.id,Z.conversation_key):!1:!1;if(ne&&w(ye=>ye.some(De=>De.id===Z.id)?ye:[...ye,Z]),K){const ye=Z.received_at||Math.floor(Date.now()/1e3),De=au(K,ye);I(De),!Z.outgoing&&!ne&&G(Be=>({...Be,[K]:(Be[K]||0)+1}))}},onContact:Z=>{y(de=>{const ze=de.findIndex(K=>K.public_key===Z.public_key);if(ze>=0){const K=[...de],ne=de[ze];return K[ze]={...ne,...Z,name:Z.name??ne.name,last_path:Z.last_path??ne.last_path,lat:Z.lat??ne.lat,lon:Z.lon??ne.lon},K}return[...de,Z]})},onRawPacket:Z=>{C(de=>{if(de.some(K=>K.id===Z.id))return de;const ze=[...de,Z];return ze.length>Hg?ze.slice(-Hg):ze})},onMessageAcked:Z=>{w(de=>{const ze=de.findIndex(K=>K.id===Z);if(ze>=0){const K=[...de];return K[ze]={...de[ze],acked:!0},K}return de})}}),[]);tk(he);const ge=B.useCallback(async()=>{try{const Z=await ii.getRadioConfig();m(Z)}catch(Z){console.error("Failed to fetch config:",Z)}},[]),re=B.useCallback(async()=>{try{const Z=await ii.getSettings();h(Z)}catch(Z){console.error("Failed to fetch app settings:",Z)}},[]),le=B.useCallback(async()=>{try{const Z=await ii.getUndecryptedPacketCount();J(Z.count)}catch(Z){console.error("Failed to fetch undecrypted count:",Z)}},[]),je=200,Te=B.useCallback(async(Z=!1)=>{if(!S){w([]),v(!1);return}Z&&F(!0);try{const de=await ii.getMessages({type:S.type==="channel"?"CHAN":"PRIV",conversation_key:S.id,limit:je});w(de),v(de.length>=je)}catch(de){console.error("Failed to fetch messages:",de)}finally{Z&&F(!1)}},[S]),Xe=B.useCallback(async()=>{if(!(!S||A||!j)){q(!0);try{const Z=await ii.getMessages({type:S.type==="channel"?"CHAN":"PRIV",conversation_key:S.id,limit:je,offset:x.length});Z.length>0&&w(de=>[...de,...Z]),v(Z.length>=je)}catch(Z){console.error("Failed to fetch older messages:",Z)}finally{q(!1)}}},[S,A,j,x.length]);B.useEffect(()=>{ge(),re(),le()},[ge,re,le]);const ai=B.useCallback(()=>{const Z=Qj();if(!Z)return null;if(Z.type==="raw")return{type:"raw",id:"raw",name:"Raw Packet Feed"};if(Z.type==="channel"){const de=g.find(ze=>ze.name===Z.name||ze.name===`#${Z.name}`);if(de)return{type:"channel",id:de.key,name:de.name}}if(Z.type==="contact"){const de=d.find(ze=>Kn(ze.name,ze.public_key)===Z.name);if(de)return{type:"contact",id:de.public_key,name:Kn(de.name,de.public_key)}}return null},[g,d]),Ue=B.useRef(!1);B.useEffect(()=>{if(Ue.current||S||g.length===0&&d.length===0)return;const Z=ai();if(Z){D(Z),Ue.current=!0;return}const de=g.find(ze=>ze.name==="Public");de&&(D({type:"channel",id:de.key,name:de.name}),Ue.current=!0)},[g,d,S,ai]);const We=B.useRef(new Set),Le=B.useRef(new Set);B.useEffect(()=>{const Z=g.filter(K=>!We.current.has(K.key)),de=d.filter(K=>K.public_key&&!Le.current.has(K.public_key));if(Z.length===0&&de.length===0)return;Z.forEach(K=>We.current.add(K.key)),de.forEach(K=>Le.current.add(K.public_key)),(async()=>{const K=[...Z.map(ne=>({type:"CHAN",conversation_key:ne.key})),...de.map(ne=>({type:"PRIV",conversation_key:ne.public_key}))];if(K.length!==0)try{const ne=await ii.getMessagesBulk(K,100),ye=$k(),De={},Be={};for(const Pe of Z){const Fe=ne[`CHAN:${Pe.key}`]||[];if(Fe.length>0){const Re=an("channel",Pe.key),Ai=ye[Re]||0,Ae=Fe.filter(Ve=>!Ve.outgoing&&Ve.received_at>Ai).length;Ae>0&&(De[Re]=Ae);const Me=Math.max(...Fe.map(Ve=>Ve.received_at));Be[Re]=Me,au(Re,Me)}}for(const Pe of de){const Fe=ne[`PRIV:${Pe.public_key}`]||[];if(Fe.length>0){const Re=an("contact",Pe.public_key),Ai=ye[Re]||0,Ae=Fe.filter(Ve=>!Ve.outgoing&&Ve.received_at>Ai).length;Ae>0&&(De[Re]=Ae);const Me=Math.max(...Fe.map(Ve=>Ve.received_at));Be[Re]=Me,au(Re,Me)}}Object.keys(De).length>0&&G(Pe=>({...Pe,...De})),I(Ym())}catch(ne){console.error("Failed to fetch messages bulk:",ne)}})()},[g,d]),B.useEffect(()=>{if(r.current=S,S&&S.type!=="raw"){const Z=an(S.type,S.id),de=Math.floor(Date.now()/1e3);nu(Z,de),G(ze=>{if(ze[Z]){const K={...ze};return delete K[Z],K}return ze})}if(S){const Z=$j(S);Z!==window.location.hash&&window.history.replaceState(null,"",Z)}},[S]),B.useEffect(()=>{Te(!0)},[Te]);const Je=B.useCallback(async Z=>{S&&(S.type==="channel"?await ii.sendChannelMessage(S.id,Z):await ii.sendDirectMessage(S.id,Z),await Te())},[S,Te]),$e=B.useCallback(async Z=>{await ii.updateRadioConfig(Z),await ge()},[ge]),ni=B.useCallback(async Z=>{await ii.updateSettings(Z),await re()},[re]),fi=B.useCallback(async Z=>{await ii.setPrivateKey(Z),await ge()},[ge]),ti=B.useCallback(async()=>{await ii.rebootRadio(),u(de=>de&&{...de,radio_connected:!1}),(async()=>{for(let de=0;de<30;de++){await new Promise(ze=>setTimeout(ze,1e3));try{const ze=await ii.getHealth();if(u(ze),ze.radio_connected){ge();return}}catch{}}})()},[ge]),Ge=B.useCallback(async()=>{try{await ii.sendAdvertisement(!0)}catch(Z){console.error("Failed to send advertisement:",Z)}},[]),hi=B.useCallback(Z=>{var de;(de=a.current)==null||de.appendText(`@[${Z}] `)},[]),$i=B.useCallback(Z=>{D(Z),$(!1)},[]),va=B.useCallback(()=>{const Z=Math.floor(Date.now()/1e3);for(const de of g){const ze=an("channel",de.key);nu(ze,Z)}for(const de of d)if(de.public_key){const ze=an("contact",de.public_key);nu(ze,Z)}G({})},[g,d]),qi=B.useCallback(async Z=>{if(confirm("Delete this channel? Message history will be preserved."))try{await ii.deleteChannel(Z),f(de=>de.filter(ze=>ze.key!==Z)),D(null)}catch(de){console.error("Failed to delete channel:",de)}},[]),Oi=B.useCallback(async Z=>{if(confirm("Delete this contact? Message history will be preserved."))try{await ii.deleteContact(Z),y(de=>de.filter(ze=>ze.public_key!==Z)),D(null)}catch(de){console.error("Failed to delete contact:",de)}},[]),Ki=B.useCallback(async(Z,de,ze)=>{const K={public_key:de,name:Z,type:0,flags:0,last_path:null,last_path_len:-1,last_advert:null,lat:null,lon:null,last_seen:null,on_radio:!1};y(ne=>[...ne,K]),D({type:"contact",id:de,name:Kn(Z,de)}),ze&&console.log("Contact historical decryption not yet supported")},[]),oa=B.useCallback(async(Z,de,ze)=>{const K=await ii.createChannel(Z,de),ne=await ii.getChannels();f(ne),D({type:"channel",id:K.key,name:Z}),ze&&(await ii.decryptHistoricalPackets({key_type:"channel",channel_key:K.key}),le())},[le]),ji=B.useCallback(async(Z,de)=>{const ze=Z.startsWith("#")?Z:`#${Z}`,K=await ii.createChannel(ze),ne=await ii.getChannels();f(ne),D({type:"channel",id:K.key,name:ze}),de&&(await ii.decryptHistoricalPackets({key_type:"channel",channel_name:ze}),le())},[le]),ui=_.jsx(ex,{contacts:d,channels:g,activeConversation:S,onSelectConversation:$i,onNewMessage:()=>{N(!0),$(!1)},lastMessageTimes:z,unreadCounts:L,showCracker:ie,crackerRunning:oe,onToggleCracker:()=>W(Z=>!Z),onMarkAllRead:va});return _.jsxs("div",{className:"flex flex-col h-screen",children:[_.jsx(Gk,{health:t,config:l,onConfigClick:()=>V(!0),onAdvertise:Ge,onMenuClick:()=>$(!0)}),_.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[_.jsx("div",{className:"hidden md:block",children:ui}),_.jsx(Lj,{open:H,onOpenChange:$,children:_.jsxs(Xb,{side:"left",className:"w-[280px] p-0 flex flex-col",hideCloseButton:!0,children:[_.jsx(Jb,{className:"sr-only",children:_.jsx(ef,{children:"Navigation"})}),_.jsx("div",{className:"flex-1 overflow-hidden",children:ui})]})}),_.jsx("div",{className:"flex-1 flex flex-col bg-background",children:S?S.type==="raw"?_.jsxs(_.Fragment,{children:[_.jsx("div",{className:"flex justify-between items-center px-4 py-3 border-b border-border font-medium",children:"Raw Packet Feed"}),_.jsx("div",{className:"flex-1 overflow-hidden",children:_.jsx(F0,{packets:k})})]}):_.jsxs(_.Fragment,{children:[_.jsxs("div",{className:"flex justify-between items-center px-4 py-3 border-b border-border font-medium",children:[_.jsxs("span",{className:"flex flex-col sm:flex-row sm:items-center sm:gap-2",children:[_.jsxs("span",{children:[S.type==="channel"&&!S.name.startsWith("#")?"#":"",S.name]}),_.jsx("span",{className:"font-normal text-xs text-muted-foreground font-mono",children:S.id})]}),!(S.type==="channel"&&S.name==="Public")&&_.jsx("button",{className:"py-1 px-3 bg-destructive/20 border border-destructive/30 text-destructive rounded text-xs cursor-pointer hover:bg-destructive/30",onClick:()=>{S.type==="channel"?qi(S.id):Oi(S.id)},children:"Delete"})]}),_.jsx(ix,{messages:x,contacts:d,loading:T,loadingOlder:A,hasOlderMessages:j,onSenderClick:S.type==="channel"?hi:void 0,onLoadOlder:Xe}),_.jsx(ax,{ref:a,onSend:Je,disabled:!(t!=null&&t.radio_connected),placeholder:t!=null&&t.radio_connected?`Message ${S.name}...`:"Radio not connected"})]}):_.jsx("div",{className:"flex-1 flex items-center justify-center text-muted-foreground",children:"Select a conversation or start a new one"})})]}),_.jsx("div",{className:Ye("border-t border-border bg-background transition-all duration-200 overflow-hidden",ie?"h-[275px]":"h-0"),children:_.jsx(Hj,{packets:k,channels:g,onChannelCreate:async(Z,de)=>{const ze=await ii.createChannel(Z,de),K=await ii.getChannels();f(K),await ii.decryptHistoricalPackets({key_type:"channel",channel_key:ze.key}),le()},onRunningChange:ee})}),_.jsx(w0,{open:O,contacts:d,undecryptedCount:ae,onClose:()=>N(!1),onSelectConversation:Z=>{D(Z),N(!1)},onCreateContact:Ki,onCreateChannel:oa,onCreateHashtagChannel:ji}),_.jsx(S0,{open:R,config:l,appSettings:c,onClose:()=>V(!1),onSave:$e,onSaveAppSettings:ni,onSetPrivateKey:fi,onReboot:ti}),_.jsx(Wk,{position:"top-right"})]})}rk.createRoot(document.getElementById("root")).render(_.jsx(B.StrictMode,{children:_.jsx(Kj,{})})); diff --git a/frontend/dist/index.html b/frontend/dist/index.html index 627b40b..0e0c25e 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -4,7 +4,7 @@ RemoteTerm for MeshCore - + diff --git a/frontend/src/components/CrackerPanel.tsx b/frontend/src/components/CrackerPanel.tsx index 08d05cf..ea4ac49 100644 --- a/frontend/src/components/CrackerPanel.tsx +++ b/frontend/src/components/CrackerPanel.tsx @@ -216,7 +216,8 @@ export function CrackerPanel({ packets, channels, onChannelCreate, onRunningChan isProcessingRef.current = true; const currentMaxLength = maxLengthRef.current; - const targetLength = nextItem.lastAttemptLength > 0 + const isRetry = nextItem.lastAttemptLength > 0; + const targetLength = isRetry ? nextItem.lastAttemptLength + 1 : currentMaxLength; @@ -228,6 +229,8 @@ export function CrackerPanel({ packets, channels, onChannelCreate, onRunningChan useTimestampFilter: true, useUtf8Filter: true, ...(turboModeRef.current && { gpuDispatchMs: 10000 }), + // For retries, skip dictionary and shorter lengths - we already checked those + ...(isRetry && { useDictionary: false, startingLength: targetLength }), }, (prog) => { setProgress(prog);