var e=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var t=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var ee=Array.isArray;function S(){}var C={H:null,A:null,T:null,S:null},w=Object.prototype.hasOwnProperty;function te(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function T(e,t){return te(e.type,t,e.props)}function E(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function ne(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var re=/\/+/g;function ie(e,t){return typeof e==`object`&&e&&e.key!=null?ne(``+e.key):t.toString(36)}function ae(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(S,S):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function oe(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,oe(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+ie(e,0):a,ee(o)?(i=``,c!=null&&(i=c.replace(re,`$&/`)+`/`),oe(o,r,i,``,function(e){return e})):o!=null&&(E(o)&&(o=T(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(re,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(ee(e))for(var u=0;u{n.exports=t()})),r=e((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,ee||(ee=!0,E());else{var t=n(l);t!==null&&ie(x,t.startTime-e)}}var ee=!1,S=-1,C=5,w=-1;function te(){return g?!0:!(e.unstable_now()-wt&&te());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&ie(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?E():ee=!1}}}var E;if(typeof y==`function`)E=function(){y(T)};else if(typeof MessageChannel<`u`){var ne=new MessageChannel,re=ne.port2;ne.port1.onmessage=T,E=function(){re.postMessage(null)}}else E=function(){_(T,0)};function ie(t,n){S=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(S),S=-1):h=!0,ie(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,ee||(ee=!0,E()))),r},e.unstable_shouldYield=te,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),i=e(((e,t)=>{t.exports=r()})),a=e((e=>{var t=n();function r(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=a()})),s=e((e=>{var t=i(),r=n(),a=o();function s(e){var t=`https://react.dev/errors/`+e;if(1de||(e.current=ue[de],ue[de]=null,de--)}function A(e,t){de++,ue[de]=e.current,e.current=t}var pe=fe(null),me=fe(null),he=fe(null),ge=fe(null);function _e(e,t){switch(A(he,t),A(me,e),A(pe,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}k(pe),A(pe,e)}function j(){k(pe),k(me),k(he)}function ve(e){e.memoizedState!==null&&A(ge,e);var t=pe.current,n=Hd(t,e.type);t!==n&&(A(me,e),A(pe,n))}function ye(e){me.current===e&&(k(pe),k(me)),ge.current===e&&(k(ge),Qf._currentValue=le)}var be,xe;function Se(e){if(be===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);be=t&&t[1]||``,xe=-1)`:-1i||c[r]!==l[i]){var u=` `+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{Ce=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Se(n):``}function Te(e,t){switch(e.tag){case 26:case 27:case 5:return Se(e.type);case 16:return Se(`Lazy`);case 13:return e.child!==t&&t!==null?Se(`Suspense Fallback`):Se(`Suspense`);case 19:return Se(`SuspenseList`);case 0:case 15:return we(e.type,!1);case 11:return we(e.type.render,!1);case 1:return we(e.type,!0);case 31:return Se(`Activity`);default:return``}}function Ee(e){try{var t=``,n=null;do t+=Te(e,n),n=e,e=e.return;while(e);return t}catch(e){return` Error generating stack: `+e.message+` `+e.stack}}var De=Object.prototype.hasOwnProperty,Oe=t.unstable_scheduleCallback,ke=t.unstable_cancelCallback,Ae=t.unstable_shouldYield,je=t.unstable_requestPaint,Me=t.unstable_now,Ne=t.unstable_getCurrentPriorityLevel,Pe=t.unstable_ImmediatePriority,Fe=t.unstable_UserBlockingPriority,Ie=t.unstable_NormalPriority,Le=t.unstable_LowPriority,Re=t.unstable_IdlePriority,ze=t.log,Be=t.unstable_setDisableYieldValue,Ve=null,He=null;function Ue(e){if(typeof ze==`function`&&Be(e),He&&typeof He.setStrictMode==`function`)try{He.setStrictMode(Ve,e)}catch{}}var We=Math.clz32?Math.clz32:qe,Ge=Math.log,Ke=Math.LN2;function qe(e){return e>>>=0,e===0?32:31-(Ge(e)/Ke|0)|0}var Je=256,Ye=262144,Xe=4194304;function Ze(e){var t=e&42;if(t!==0)return t;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:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Qe(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Ze(n))):i=Ze(o):i=Ze(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ze(n))):i=Ze(o)):i=Ze(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function $e(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function et(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32: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 t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function tt(){var e=Xe;return Xe<<=1,!(Xe&62914560)&&(Xe=4194304),e}function nt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function rt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function it(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),gn=!1;if(hn)try{var _n={};Object.defineProperty(_n,`passive`,{get:function(){gn=!0}}),window.addEventListener(`test`,_n,_n),window.removeEventListener(`test`,_n,_n)}catch{gn=!1}var vn=null,yn=null,bn=null;function xn(){if(bn)return bn;var e,t=yn,n=t.length,r,i=`value`in vn?vn.value:vn.textContent,a=i.length;for(e=0;e=$n),nr=` `,rr=!1;function ir(e,t){switch(e){case`keyup`:return Zn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function ar(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var or=!1;function sr(e,t){switch(e){case`compositionend`:return ar(t);case`keypress`:return t.which===32?(rr=!0,nr):null;case`textInput`:return e=t.data,e===nr&&rr?null:e;default:return null}}function cr(e,t){if(or)return e===`compositionend`||!Qn&&ir(e,t)?(e=xn(),bn=yn=vn=null,or=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Ar(n)}}function Mr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Mr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Nr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Ht(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ht(e.document)}return t}function Pr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Fr=hn&&`documentMode`in document&&11>=document.documentMode,Ir=null,Lr=null,Rr=null,zr=!1;function Br(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;zr||Ir==null||Ir!==Ht(r)||(r=Ir,`selectionStart`in r&&Pr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Rr&&kr(Rr,r)||(Rr=r,r=Ed(Lr,`onSelect`),0>=o,i-=o,Mi=1<<32-We(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),o=a(_,o,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),P&&Pi(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),o=a(y,o,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),P&&Pi(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(o=a(v,o,g),d===null?u=v:d.sibling=v,d=v);return P&&Pi(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),o=a(v,o,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),P&&Pi(i,g),u}function b(e,r,a,c){if(typeof a==`object`&&a&&a.type===y&&a.key===null&&(a=a.props.children),typeof a==`object`&&a){switch(a.$$typeof){case _:a:{for(var l=a.key;r!==null;){if(r.key===l){if(l=a.type,l===y){if(r.tag===7){n(e,r.sibling),c=i(r,a.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===E&&Ma(l)===r.type){n(e,r.sibling),c=i(r,a.props),za(c,a),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}a.type===y?(c=yi(a.props.children,e.mode,c,a.key),c.return=e,e=c):(c=vi(a.type,a.key,a.props,null,e.mode,c),za(c,a),c.return=e,e=c)}return o(e);case v:a:{for(l=a.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),c=i(r,a.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=Si(a,e.mode,c),c.return=e,e=c}return o(e);case E:return a=Ma(a),b(e,r,a,c)}if(ce(a))return h(e,r,a,c);if(ae(a)){if(l=ae(a),typeof l!=`function`)throw Error(s(150));return a=l.call(a),g(e,r,a,c)}if(typeof a.then==`function`)return b(e,r,Ra(a),c);if(a.$$typeof===S)return b(e,r,sa(e,a),c);Ba(e,a)}return typeof a==`string`&&a!==``||typeof a==`number`||typeof a==`bigint`?(a=``+a,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,a),c.return=e,e=c):(n(e,r),c=bi(a,e.mode,c),c.return=e,e=c),o(e)):n(e,r)}return function(e,t,n,r){try{La=0;var i=b(e,t,n,r);return Ia=null,i}catch(t){if(t===Ea||t===Oa)throw t;var a=mi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ha=Va(!0),Ua=Va(!1),Wa=!1;function Ga(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ka(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function qa(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ja(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,G&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=di(e),ui(e,null,n),t}return si(e,r,t,n),di(e)}function Ya(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ot(e,n)}}function Xa(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Za=!1;function Qa(){if(Za){var e=_a;if(e!==null)throw e}}function $a(e,t,n,r){Za=!1;var i=e.updateQueue;Wa=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(J&f)===f:(r&f)===f){f!==0&&f===ga&&(Za=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:Wa=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Gl|=o,e.lanes=o,e.memoizedState=d}}function eo(e,t){if(typeof e!=`function`)throw Error(s(191,e));e.call(t)}function to(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=D.T,s={};D.T=s,Is(e,!1,t,n);try{var c=i(),l=D.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Fs(e,t,ba(c,r),pu(e)):Fs(e,t,r,pu(e))}catch(n){Fs(e,t,{then:function(){},status:`rejected`,reason:n},pu())}finally{O.p=a,o!==null&&s.types!==null&&(o.types=s.types),D.T=o}}function Ts(){}function Es(e,t,n,r){if(e.tag!==5)throw Error(s(476));var i=Ds(e).queue;ws(e,i,t,le,n===null?Ts:function(){return Os(e),n(r)})}function Ds(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:le,baseState:le,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lo,lastRenderedState:le},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Os(e){var t=Ds(e);t.next===null&&(t=e.alternate.memoizedState),Fs(e,t.next.queue,{},pu())}function ks(){return oa(Qf)}function As(){return V().memoizedState}function js(){return V().memoizedState}function Ms(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=pu();e=qa(n);var r=Ja(t,e,n);r!==null&&(hu(r,t,n),Ya(r,t,n)),t={cache:fa()},e.payload=t;return}t=t.return}}function Ns(e,t,n){var r=pu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ls(e)?Rs(t,n):(n=ci(e,t,n,r),n!==null&&(hu(n,e,r),zs(n,t,r)))}function Ps(e,t,n){Fs(e,t,n,pu())}function Fs(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ls(e))Rs(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Or(s,o))return si(e,t,i,0),K===null&&oi(),!1}catch{}if(n=ci(e,t,i,r),n!==null)return hu(n,e,r),zs(n,t,r),!0}return!1}function Is(e,t,n,r){if(r={lane:2,revertLane:dd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Ls(e)){if(t)throw Error(s(479))}else t=ci(e,n,r,2),t!==null&&hu(t,e,2)}function Ls(e){var t=e.alternate;return e===L||t!==null&&t===L}function Rs(e,t){vo=_o=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function zs(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ot(e,n)}}var Bs={readContext:oa,use:Fo,useCallback:B,useContext:B,useEffect:B,useImperativeHandle:B,useLayoutEffect:B,useInsertionEffect:B,useMemo:B,useReducer:B,useRef:B,useState:B,useDebugValue:B,useDeferredValue:B,useTransition:B,useSyncExternalStore:B,useId:B,useHostTransitionStatus:B,useFormState:B,useActionState:B,useOptimistic:B,useMemoCache:B,useCacheRefresh:B};Bs.useEffectEvent=B;var Vs={readContext:oa,use:Fo,useCallback:function(e,t){return Mo().memoizedState=[e,t===void 0?null:t],e},useContext:oa,useEffect:ds,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),ls(4194308,4,_s.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ls(4194308,4,e,t)},useInsertionEffect:function(e,t){ls(4,2,e,t)},useMemo:function(e,t){var n=Mo();t=t===void 0?null:t;var r=e();if(yo){Ue(!0);try{e()}finally{Ue(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Mo();if(n!==void 0){var i=n(t);if(yo){Ue(!0);try{n(t)}finally{Ue(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ns.bind(null,L,e),[r.memoizedState,e]},useRef:function(e){var t=Mo();return e={current:e},t.memoizedState=e},useState:function(e){e=qo(e);var t=e.queue,n=Ps.bind(null,L,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ys,useDeferredValue:function(e,t){return Ss(Mo(),e,t)},useTransition:function(){var e=qo(!1);return e=ws.bind(null,L,e.queue,!0,!1),Mo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=L,i=Mo();if(P){if(n===void 0)throw Error(s(407));n=n()}else{if(n=t(),K===null)throw Error(s(349));J&127||Ho(r,t,n)}i.memoizedState=n;var a={value:n,getSnapshot:t};return i.queue=a,ds(Wo.bind(null,r,a,e),[e]),r.flags|=2048,ss(9,{destroy:void 0},Uo.bind(null,r,a,n,t),null),n},useId:function(){var e=Mo(),t=K.identifierPrefix;if(P){var n=Ni,r=Mi;n=(r&~(1<<32-We(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=bo++,0<\/script>`,a=a.removeChild(a.firstChild);break;case`select`:a=typeof r.is==`string`?o.createElement(`select`,{is:r.is}):o.createElement(`select`),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a=typeof r.is==`string`?o.createElement(i,{is:r.is}):o.createElement(i)}}a[pt]=t,a[mt]=r;a:for(o=t.child;o!==null;){if(o.tag===5||o.tag===6)a.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===t)break a;for(;o.sibling===null;){if(o.return===null||o.return===t)break a;o=o.return}o.sibling.return=o.return,o=o.sibling}t.stateNode=a;a:switch(Pd(a,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Pc(t)}}return U(t),Fc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Pc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(s(166));if(e=he.current,Ki(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=zi,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[pt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Md(e.nodeValue,n)),e||Ui(t,!0)}else e=Bd(e).createTextNode(r),e[pt]=t,t.stateNode=e}return U(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Ki(t),n!==null){if(e===null){if(!r)throw Error(s(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(s(557));e[pt]=t}else qi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;U(t),e=!1}else n=Ji(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(mo(t),t):(mo(t),null);if(t.flags&128)throw Error(s(558))}return U(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=Ki(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(s(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(s(317));i[pt]=t}else qi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;U(t),i=!1}else i=Ji(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(mo(t),t):(mo(t),null)}return mo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),a=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(a=r.memoizedState.cachePool.pool),a!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Lc(t,t.updateQueue),U(t),null);case 4:return j(),e===null&&Sd(t.stateNode.containerInfo),U(t),null;case 10:return ea(t.type),U(t),null;case 19:if(k(I),r=t.memoizedState,r===null)return U(t),null;if(i=(t.flags&128)!=0,a=r.rendering,a===null)if(i)Rc(r,!1);else{if(X!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(a=ho(e),a!==null){for(t.flags|=128,Rc(r,!1),e=a.updateQueue,t.updateQueue=e,Lc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)_i(n,e),n=n.sibling;return A(I,I.current&1|2),P&&Pi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Me()>tu&&(t.flags|=128,i=!0,Rc(r,!1),t.lanes=4194304)}else{if(!i)if(e=ho(a),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Lc(t,e),Rc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!a.alternate&&!P)return U(t),null}else 2*Me()-r.renderingStartTime>tu&&n!==536870912&&(t.flags|=128,i=!0,Rc(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(e=r.last,e===null?t.child=a:e.sibling=a,r.last=a)}return r.tail===null?(U(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Me(),e.sibling=null,n=I.current,A(I,i?n&1|2:n&1),P&&Pi(t,r.treeForkCount),e);case 22:case 23:return mo(t),oo(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(U(t),t.subtreeFlags&6&&(t.flags|=8192)):U(t),n=t.updateQueue,n!==null&&Lc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&k(Sa),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ea(F),U(t),null;case 25:return null;case 30:return null}throw Error(s(156,t.tag))}function Bc(e,t){switch(Li(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ea(F),j(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return ye(t),null;case 31:if(t.memoizedState!==null){if(mo(t),t.alternate===null)throw Error(s(340));qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(mo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(s(340));qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return k(I),null;case 4:return j(),null;case 10:return ea(t.type),null;case 22:case 23:return mo(t),oo(),e!==null&&k(Sa),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ea(F),null;case 25:return null;default:return null}}function Vc(e,t){switch(Li(t),t.tag){case 3:ea(F),j();break;case 26:case 27:case 5:ye(t);break;case 4:j();break;case 31:t.memoizedState!==null&&mo(t);break;case 13:mo(t);break;case 19:k(I);break;case 10:ea(t.type);break;case 22:case 23:mo(t),oo(),e!==null&&k(Sa);break;case 24:ea(F)}}function Hc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Z(t,t.return,e)}}function Uc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Z(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Z(t,t.return,e)}}function Wc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{to(t,n)}catch(t){Z(e,e.return,t)}}}function Gc(e,t,n){n.props=Js(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function Kc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Z(e,t,n)}}function qc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Z(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Z(e,t,n)}else n.current=null}function Jc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Z(e,e.return,t)}}function Yc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[mt]=t}catch(t){Z(e,e.return,t)}}function Xc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function Zc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Xc(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.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Qc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=on));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Qc(e,t,n),e=e.sibling;e!==null;)Qc(e,t,n),e=e.sibling}function $c(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for($c(e,t,n),e=e.sibling;e!==null;)$c(e,t,n),e=e.sibling}function el(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[pt]=e,t[mt]=n}catch(t){Z(e,e.return,t)}}var tl=!1,nl=!1,rl=!1,il=typeof WeakSet==`function`?WeakSet:Set,al=null;function ol(e,t){if(e=e.containerInfo,Rd=sp,e=Nr(e),Pr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break a}var o=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=o+i),f!==a||r!==0&&f.nodeType!==3||(l=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=o),p===a&&++d===r&&(l=o),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,al=t;al!==null;)if(t=al,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,al=e;else for(;al!==null;){switch(t=al,a=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Pd(a,r,n),a[pt]=e,M(a),r=a;break a;case`link`:var o=Vf(`link`,`href`,i).get(r+(n.href||``));if(o){for(var c=0;cg&&(o=g,g=h,h=o);var _=jr(s,h),v=jr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,D.T=null,n=lu,lu=null;var a=au,o=su;if(iu=0,ou=au=null,su=0,G&6)throw Error(s(331));var c=G;if(G|=4,Fl(a.current),Dl(a,a.current,o,n),G=c,id(0,!1),He&&typeof He.onPostCommitFiberRoot==`function`)try{He.onPostCommitFiberRoot(Ve,a)}catch{}return!0}finally{O.p=i,D.T=r,Vu(e,t)}}function Wu(e,t,n){t=wi(n,t),t=ec(e.stateNode,t,2),e=Ja(e,t,2),e!==null&&(rt(e,2),rd(e))}function Z(e,t,n){if(e.tag===3)Wu(e,e,n);else for(;t!==null;){if(t.tag===3){Wu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(ru===null||!ru.has(r))){e=wi(n,e),n=tc(2),r=Ja(t,n,2),r!==null&&(nc(n,r,t,e),rt(r,2),rd(r));break}}t=t.return}}function Gu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new zl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Ul=!0,i.add(n),e=Ku.bind(null,e,t,n),t.then(e,e))}function Ku(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,K===e&&(J&n)===n&&(X===4||X===3&&(J&62914560)===J&&300>Me()-$l?!(G&2)&&Su(e,0):ql|=n,Yl===J&&(Yl=0)),rd(e)}function qu(e,t){t===0&&(t=tt()),e=li(e,t),e!==null&&(rt(e,t),rd(e))}function Ju(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),qu(e,n)}function Yu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(s(314))}r!==null&&r.delete(t),qu(e,n)}function Xu(e,t){return Oe(e,t)}var Zu=null,Qu=null,$u=!1,ed=!1,td=!1,nd=0;function rd(e){e!==Qu&&e.next===null&&(Qu===null?Zu=Qu=e:Qu=Qu.next=e),ed=!0,$u||($u=!0,ud())}function id(e,t){if(!td&&ed){td=!0;do for(var n=!1,r=Zu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-We(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ld(r,a))}else a=J,a=Qe(r,r===K?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||$e(r,a)||(n=!0,ld(r,a));r=r.next}while(n);td=!1}}function ad(){od()}function od(){ed=$u=!1;var e=0;nd!==0&&Gd()&&(e=nd);for(var t=Me(),n=null,r=Zu;r!==null;){var i=r.next,a=sd(r,t);a===0?(r.next=null,n===null?Zu=i:n.next=i,i===null&&(Qu=n)):(n=r,(e!==0||a&3)&&(ed=!0)),r=i}iu!==0&&iu!==5||id(e,!1),nd!==0&&(nd=0)}function sd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=Wt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),M(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Wt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Wt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Wt(n.imageSizes)+`"]`)):i+=`[href="`+Wt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),M(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Wt(r)+`"][href="`+Wt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),M(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=Tt(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);M(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=Tt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),M(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=Tt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),M(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var i=(i=he.current)?gf(i):null;if(!i)throw Error(s(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=Tt(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var a=Tt(i).hoistableStyles,o=a.get(e);if(o||(i=i.ownerDocument||i,o={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},a.set(e,o),(a=i.querySelector(jf(e)))&&!a._p&&(o.instance=a,o.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),a||Nf(i,e,n,o.state))),t&&r===null)throw Error(s(528,``));return o}if(t&&r!==null)throw Error(s(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=Tt(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(s(444,e))}}function Af(e){return`href="`+Wt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),M(t),e.head.appendChild(t))}function Pf(e){return`[src="`+Wt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Wt(n.href)+`"]`);if(r)return t.instance=r,M(r),r;var i=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),M(r),Pd(r,`style`,i),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Af(n.href);var a=e.querySelector(jf(i));if(a)return t.state.loading|=4,t.instance=a,M(a),a;r=Mf(n),(i=mf.get(i))&&Rf(r,i),a=(e.ownerDocument||e).createElement(`link`),M(a);var o=a;return o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),t.state.loading|=4,Lf(a,n.precedence,e),t.instance=a;case`script`:return a=Pf(n.src),(i=e.querySelector(Ff(a)))?(t.instance=i,M(i),i):(r=n,(i=mf.get(a))&&(r=h({},n),zf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),M(i),Pd(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(s(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,M(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),M(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=s()}))(),l=n(),u=class{mt=new Uint32Array(624);idx=625;gaussNext=null;constructor(e=42){this.seed(e)}seed(e){let t=(e,t)=>Math.imul(e,t)>>>0,n=[];for(let t=e||0;t>0;t=Math.floor(t/4294967296))n.push(t&4294967295);for(n.length===0&&n.push(0),this.mt[0]=19650218,this.idx=1;this.idx<624;++this.idx)this.mt[this.idx]=t(1812433253,this.mt[this.idx-1]^this.mt[this.idx-1]>>>30)+this.idx>>>0;let r=1,i=0;for(let e=Math.max(624,n.length);e>0;--e,++r,++i)r>=624&&(this.mt[0]=this.mt[623],r=1),i>=n.length&&(i=0),this.mt[r]=(this.mt[r]^t(this.mt[r-1]^this.mt[r-1]>>>30,1664525))+n[i]+i>>>0;for(let e=623;e>0;--e,++r)r>=624&&(this.mt[0]=this.mt[623],r=1),this.mt[r]=(this.mt[r]^t(this.mt[r-1]^this.mt[r-1]>>>30,1566083941))-r>>>0;this.mt[0]=2147483648,this.idx=624,this.gaussNext=null}int32(){if(this.idx>=624){for(let e=0;e<624;++e){let t=this.mt[e]&2147483648|this.mt[(e+1)%624]&2147483647;this.mt[e]=(this.mt[(e+397)%624]^t>>>1^(t&1?2567483615:0))>>>0}this.idx=0}let e=this.mt[this.idx++];return e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0}next(){return((this.int32()>>>5)*67108864+(this.int32()>>>6))/9007199254740992}gauss(e=0,t=1){let n=this.gaussNext;if(this.gaussNext=null,n===null){let e=this.next()*2*Math.PI,t=Math.sqrt(-2*Math.log(1-this.next()));n=Math.cos(e)*t,this.gaussNext=Math.sin(e)*t}return e+n*t}shuffle(e){for(let t=e.length-1;t>0;--t){let n=32-Math.clz32(t+1),r=this.int32()>>>32-n;for(;r>t;)r=this.int32()>>>32-n;[e[t],e[r]]=[e[r],e[t]]}}choices(e,t){let n=new Float64Array(t.length);n[0]=t[0];for(let e=1;e>1;r0)])}neg(){return new e(-this.data,[this],[-1])}sub(t){return this.add(t instanceof e?t.neg():-t)}div(t){return this.mul(t instanceof e?t.pow(-1):1/t)}backward(){let t=++e._globalGen,n=[],r=e=>{e._gen!==t&&(e._gen=t,e._nch>=1&&e._c0&&r(e._c0),e._nch===2&&e._c1&&r(e._c1),n.push(e))};r(this),this.grad=1;for(let e=n.length-1;e>=0;--e){let t=n[e],r=t.grad;t._nch>=1&&t._c0&&(t._c0.grad+=t._lg0*r),t._nch===2&&t._c1&&(t._c1.grad+=t._lg1*r)}}},f={attention:{nodes:[{id:`sub-node-1`,kind:`linear_q`},{id:`sub-node-2`,kind:`linear_k`},{id:`sub-node-3`,kind:`attn_transpose`},{id:`sub-node-4`,kind:`attn_matmul`},{id:`sub-node-5`,kind:`attn_scale`},{id:`sub-node-6`,kind:`attn_softmax`},{id:`sub-node-7`,kind:`linear_v`},{id:`sub-node-8`,kind:`attn_weighted_sum`},{id:`sub-node-9`,kind:`linear_o`}],connections:[{id:`sub-conn-1`,fromNodeId:`sub-node-2`,fromPortId:`out`,toNodeId:`sub-node-3`,toPortId:`k`},{id:`sub-conn-2`,fromNodeId:`sub-node-1`,fromPortId:`out`,toNodeId:`sub-node-4`,toPortId:`q`},{id:`sub-conn-3`,fromNodeId:`sub-node-3`,fromPortId:`out`,toNodeId:`sub-node-4`,toPortId:`k_t`},{id:`sub-conn-4`,fromNodeId:`sub-node-4`,fromPortId:`out`,toNodeId:`sub-node-5`,toPortId:`in`},{id:`sub-conn-5`,fromNodeId:`sub-node-5`,fromPortId:`out`,toNodeId:`sub-node-6`,toPortId:`in`},{id:`sub-conn-6`,fromNodeId:`sub-node-6`,fromPortId:`out`,toNodeId:`sub-node-8`,toPortId:`weights`},{id:`sub-conn-7`,fromNodeId:`sub-node-7`,fromPortId:`out`,toNodeId:`sub-node-8`,toPortId:`v`},{id:`sub-conn-8`,fromNodeId:`sub-node-8`,fromPortId:`out`,toNodeId:`sub-node-9`,toPortId:`in`}]},mlp:{nodes:[{id:`sub-node-1`,kind:`linear_up`},{id:`sub-node-2`,kind:`relu`},{id:`sub-node-3`,kind:`linear_down`}],connections:[{id:`sub-conn-1`,fromNodeId:`sub-node-1`,fromPortId:`out`,toNodeId:`sub-node-2`,toPortId:`in`},{id:`sub-conn-2`,fromNodeId:`sub-node-2`,fromPortId:`out`,toNodeId:`sub-node-3`,toPortId:`in`}]},decoder_layers:{nodes:[{id:`sub-node-1`,kind:`rmsnorm`},{id:`sub-node-2`,kind:`attention`},{id:`sub-node-3`,kind:`add`},{id:`sub-node-4`,kind:`rmsnorm`},{id:`sub-node-5`,kind:`mlp`},{id:`sub-node-6`,kind:`add`}],connections:[{id:`sub-conn-1`,fromNodeId:`sub-node-1`,fromPortId:`out`,toNodeId:`sub-node-2`,toPortId:`in`},{id:`sub-conn-3`,fromNodeId:`sub-node-2`,fromPortId:`out`,toNodeId:`sub-node-3`,toPortId:`a`},{id:`sub-conn-4`,fromNodeId:`sub-node-3`,fromPortId:`out`,toNodeId:`sub-node-4`,toPortId:`in`},{id:`sub-conn-5`,fromNodeId:`sub-node-4`,fromPortId:`out`,toNodeId:`sub-node-5`,toPortId:`in`},{id:`sub-conn-6`,fromNodeId:`sub-node-3`,fromPortId:`out`,toNodeId:`sub-node-6`,toPortId:`b`},{id:`sub-conn-7`,fromNodeId:`sub-node-5`,fromPortId:`out`,toNodeId:`sub-node-6`,toPortId:`a`}]}};function p(e){return{nodes:e.nodes.map(e=>({...e})),connections:e.connections.map(e=>({...e}))}}function m(e,t){return p(t[e.id]??f[e.kind])}var h=new Set([`attention`,`mlp`,`decoder_layers`]),g={embedding:[`index_in`],add:[`a`,`b`],linear_up:[`in`],relu:[`in`],linear_down:[`in`],linear_q:[`in`],linear_k:[`in`],linear_v:[`in`],attn_transpose:[`k`],attn_matmul:[`q`,`k_t`],attn_scale:[`in`],attn_softmax:[`in`],attn_weighted_sum:[`weights`,`v`],linear_o:[`in`],rmsnorm:[`in`],attention:[`in`],mlp:[`in`],decoder_layers:[`in`],lm_head:[`in`]},_={attention:{inputs:[`in`],outputs:[`out`]},mlp:{inputs:[`in`],outputs:[`out`]},decoder_layers:{inputs:[`in`],outputs:[`out`]}};function v(e){return e.split(` `).map(e=>e.trim()).filter(e=>e.length>0)}function y(e){let t=[...new Set(e.join(``))].sort();return{uchars:t,charToId:new Map(t.map((e,t)=>[e,t])),bos:t.length,vocabSize:t.length+1}}function b(e,t){let n=new Set,r=[...e],i=0;for(;i`${e}โ†${S(t)}`).join(`, `)}`}function te(e,t){let n=e.nodesById.get(t)?.kind,r=n?g[n]:[];return r.length>0?`expected inputs: ${r.join(`, `)}`:`expected inputs: unknown`}function T(e,t,n,r){let i=r?` (${r})`:``;return`Node ${C(e,t)} is missing input '${n}'${i}. ${te(e,t)}; ${w(e,t)}. Please connect this port and retry.`}function E(e,t){return new Map([[e,[t]]])}function ne(e,t,n,r){let i=new Map(t.map(e=>[e,[]]));for(let a of e){let e=t.includes(a.portId)?a.portId:t.length===1?t[0]:null;if(!e)throw Error(`Composite node ${n} has ambiguous ${r} port mapping for '${a.portId}'.`);i.get(e).push(a)}for(let e of t)if((i.get(e)?.length??0)===0)throw Error(`Composite node ${n} has no exposed ${r} endpoint for port '${e}'.`);return i}function re(e,t,n,r,i){if(!x(e.kind)){let t=`${n}${e.id}`;return{nodes:[{id:t,kind:e.kind}],connections:[],inputMap:new Map(g[e.kind].map(e=>[e,[{nodeId:t,portId:e}]])),outputMap:E(`out`,{nodeId:t,portId:`out`})}}let a=m(e,t),o=_[e.kind],s=e.kind===`decoder_layers`?Math.max(1,i):1,c=[],l=[],u=null,d=null;for(let f=0;f[e.id,e])),a=new Map,o=new Map,s=new Map;for(let e of r.connections){let t=a.get(e.fromNodeId);t?t.push(e.toNodeId):a.set(e.fromNodeId,[e.toNodeId]);let n=o.get(e.toNodeId);n?n.push(e.fromNodeId):o.set(e.toNodeId,[e.fromNodeId]);let r=s.get(e.toNodeId)??new Map;if(r.has(e.toPortId)){let t=r.get(e.toPortId);throw Error(`Invalid graph: input port ${S(e.toNodeId)}:${e.toPortId} has multiple sources (${S(t??`unknown`)}, ${S(e.fromNodeId)}).`)}r.set(e.toPortId,e.fromNodeId),s.set(e.toNodeId,r)}let c=r.nodes.filter(e=>e.kind===`embedding`).map(e=>e.id);if(c.length===0)throw Error(`Build graph must contain at least one embedding node.`);let l=r.nodes.filter(e=>e.kind===`lm_head`).map(e=>e.id);if(l.length===0)throw Error(`Build graph must contain at least one lm_head node.`);let u=b(c,a),d=b(l,o),f=r.nodes.map(e=>e.id).filter(e=>u.has(e)&&d.has(e));if(f.length===0)throw Error(`No path from embeddings to lm_head in Build graph.`);for(let e of f){let t=i.get(e)?.kind;if(t&&x(t))throw Error(`Active graph still contains composite node ${e} (${t}). Only primitive ops are supported.`)}let p=new Set(f),m=new Map(f.map(e=>[e,0]));for(let e of r.connections)!p.has(e.fromNodeId)||!p.has(e.toNodeId)||m.set(e.toNodeId,(m.get(e.toNodeId)??0)+1);let h=f.filter(e=>(m.get(e)??0)===0),g=0,_=[];for(;gi.get(e)?.kind===`lm_head`),y=v[v.length-1];if(!y)throw Error(`No active lm_head found on path from embeddings.`);let ee=_.filter(e=>i.get(e)?.kind===`embedding`),C=new Map,w=new Set;for(let e of ee){let t=i.get(e),n=`${t?.title??``} ${t?.description??``}`.toLowerCase();/\bpos\b|position/.test(n)&&w.add(e)}if(w.size>0)for(let e of ee)C.set(e,w.has(e)?`position`:`token`);else for(let e=0;ee.length===0?new d(0):e.reduce((e,t)=>e.add(t));function ce(e,t){return t.map(t=>se(t.map((t,n)=>t.mul(e[n]))))}function D(e){let t=Math.max(...e.map(e=>e.data)),n=e.map(e=>e.sub(t).exp()),r=se(n);return n.map(e=>e.div(r))}function O(e,t){if(t<=0||e.length%t!==0)throw Error(`Invalid segmented softmax shape in attention.`);let n=[];for(let r=0;re.mul(e))).mul(1/e.length).add(1e-5).pow(-.5);return e.map(e=>e.mul(t))}function ue(e,t,n,r=.08){return Array.from({length:t},()=>Array.from({length:n},()=>new d(e.gauss(0,r))))}function de(e,t,n){let r={},i=[],a=(e,t,n)=>{r[e]={...r[e]??{},[t]:n},i.push(...n.flat())},o=e=>t.topoNodeIds.filter(n=>t.nodesById.get(n)?.kind===e),s=o(`embedding`).filter(e=>(t.embeddingRole.get(e)??`token`)===`token`),c=o(`embedding`).filter(e=>(t.embeddingRole.get(e)??`token`)===`position`),l=r=>{a(r,`table`,ue(e,(t.embeddingRole.get(r)??`token`)===`position`?n.block_size:n.vocab_size,n.n_embd))},u=t=>{a(t,`w`,ue(e,n.n_embd,n.n_embd))};for(let e of s)l(e);for(let e of c)l(e);for(let t of o(`lm_head`))a(t,`w`,ue(e,n.vocab_size,n.n_embd));for(let e of o(`linear_q`))u(e);for(let e of o(`linear_k`))u(e);for(let e of o(`linear_v`))u(e);for(let e of o(`linear_o`))u(e);for(let t of o(`linear_up`))a(t,`w`,ue(e,n.intermediate_size,n.n_embd));for(let t of o(`linear_down`))a(t,`w`,ue(e,n.n_embd,n.intermediate_size));let d=Math.max(1,Math.floor(n.n_embd/n.n_head));return{params:i,nodeParams:r,scale:1/Math.sqrt(d),nHead:n.n_head,headDim:d}}function fe(e){let t={attnMatmul:{},attnWeightedSum:{}};for(let n of e.topoNodeIds){let r=e.nodesById.get(n)?.kind;r===`attn_matmul`&&(t.attnMatmul[n]={keys:[]}),r===`attn_weighted_sum`&&(t.attnWeightedSum[n]={values:[]})}return t}function k(e,t){if(e.length!==t.length)throw Error(`Dot product dimension mismatch in graph execution.`);return se(e.map((e,n)=>e.mul(t[n])))}function A(e){let t=[],n=new Map(e.topoNodeIds.map((e,t)=>[e,t])),r=e=>{let t=n.get(e);if(t===void 0)throw Error(`Node ${e} not found in topo sort.`);return t},i=r(e.lmHeadNodeId),a=(t,n=`in`)=>{let i=e.incomingByPort.get(t)?.get(n);if(i===void 0){let n=e.incomingAny.get(t);if(!n||n.length===0)throw Error(`Node ${C(e,t)} has no available upstream value.`);i=n[0]}return r(i)},o=(t,n)=>{let i=e.incomingByPort.get(t)?.get(n);return i===void 0?void 0:r(i)};for(let n=0;n{let c=i.nodeParams[r].table;e[s]=c[n===`position`?Math.min(o,c.length-1):Math.min(a,c.length-1)]});break}case`add`:{let n=a(r,`a`),i=o(r,`b`);if(i===void 0)throw Error(T(e,r,`b`,`second addend`));t.push(e=>{let t=e[n],a=e[i];if(t.length!==a.length)throw Error(`Add node ${S(r)} got mismatched input sizes.`);e[s]=t.map((e,t)=>e.add(a[t]))});break}case`relu`:{let e=a(r);t.push(t=>{t[s]=t[e].map(e=>e.relu())});break}case`rmsnorm`:{let e=a(r);t.push(t=>{t[s]=le(t[e])});break}case`linear_up`:case`linear_down`:case`linear_q`:case`linear_k`:case`linear_v`:case`linear_o`:case`lm_head`:{let e=a(r);t.push((t,n,i)=>{let a=i.nodeParams[r].w;t[s]=ce(t[e],a)});break}case`attn_transpose`:{let e=a(r,`k`);t.push(t=>{t[s]=t[e]});break}case`attn_matmul`:{let n=a(r,`q`),i=o(r,`k_t`);if(i===void 0)throw Error(T(e,r,`k_t`,`transposed keys`));t.push((e,t,a)=>{let o=e[n],c=e[i],l=t.attnMatmul[r];l.keys.push(c);let{nHead:u,headDim:d}=a,f=[];for(let e=0;e{t[s]=t[e].map(e=>e.mul(r.scale))});break}case`attn_softmax`:{let e=a(r);t.push((t,n,i)=>{let a=t[e];if(a.length%i.nHead!==0)throw Error(`Attention softmax shape mismatch at ${S(r)}.`);t[s]=O(a,a.length/i.nHead)});break}case`attn_weighted_sum`:{let n=a(r,`weights`),i=o(r,`v`);if(i===void 0)throw Error(T(e,r,`v`,`values`));t.push((e,t,a)=>{let o=e[n],c=e[i],l=t.attnWeightedSum[r];l.values.push(c);let u=l.values.length,d=u*a.nHead;if(o.length!==d)throw Error(`Attention mismatch at ${S(r)}: weights length (${o.length}) != expected (${d}).`);let f=a.nHead*a.headDim;if(c.length!==f)throw Error(`Attention value width mismatch at ${S(r)}: got ${c.length}, expected ${f}.`);let p=l.values,m=[];for(let e=0;et[i].mul(r[n+e]))))}e[s]=m});break}default:if(x(i.kind))throw Error(`Composite node ${S(r)} (${i.kind}) reached runtime.`);break}}return{ops:t,lmHeadIdx:i,allocSize:e.topoNodeIds.length}}function pe(e,t,n,r,i){let a=Array(e.allocSize);for(let o=0;ot),p=[];for(let r=0;re.div(Math.max(s,1e-4))));if(a=d.choices(f,c.map(e=>e.data)),a===i.bos)break;o.push(i.uchars[a]??``)}p.push(o.join(``))}return p}async function ge(e){let t=v(e.corpus);if(t.length===0)throw Error(`Training corpus is empty. Add at least one non-empty line.`);let n=ae(e.rootGraph,e.subgraphs,e.config),r=oe(n,e.config),i=y(t);r.vocab_size=Math.max(r.vocab_size,i.vocabSize);let a=new u(e.seed??42);a.shuffle(t),a.seed(e.seed??42);let o=de(a,n,r),s=A(n);a.seed(e.seed??42);let c=e.learningRate??.01,l=e.beta1??.85,d=e.beta2??.99,f=e.epsAdam??1e-8,p=Math.max(1,Math.floor(e.numSteps)),m=new Float64Array(o.params.length),h=new Float64Array(o.params.length),g=[];for(let a=0;ai.charToId.get(e)??i.bos),i.bos],v=Math.min(r.block_size,_.length-1),y=fe(n),b=[];for(let e=0;ewindow.setTimeout(e,0))}return{architecture:r,docs:t.length,vocabSize:i.vocabSize,numParams:o.params.length,finalLoss:g[g.length-1],losses:g,samples:[],runtime:{generate:(e={})=>he(o,n,s,r,i,a,{temperature:e.temperature,samplesToGenerate:e.samplesToGenerate,maxTokens:e.maxTokens??r.block_size,seed:e.seed})}}}var _e=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),j=e(((e,t)=>{t.exports=_e()}))(),ve=[`alice`,`bob`,`carol`,`dave`,`eve`,`mallory`,`trent`,`peggy`,`victor`,`wendy`].join(` `),ye={n_embd:16,intermediate_size:64,n_head:4,n_layer:1,vocab_size:27,block_size:16},be=[`embedding`,`add`,`linear_up`,`relu`,`linear_down`,`linear_q`,`linear_k`,`linear_v`,`attn_transpose`,`attn_matmul`,`attn_scale`,`attn_softmax`,`attn_weighted_sum`,`linear_o`,`rmsnorm`,`attention`,`mlp`,`decoder_layers`,`lm_head`],xe={embedding:{kind:`embedding`,label:`Embedding`,description:`Lookup table: index โ†’ vector.`,opType:`Embedding`,icon:`๐Ÿ”ค`,color:`#ffd117`,accentColor:`#d1ac13`,ports:e=>[{id:`index_in`,type:`input`,label:`index`,shape:[1]},{id:`out`,type:`output`,label:`x`,shape:[e.n_embd]}]},add:{kind:`add`,label:`Add`,description:`Element-wise addition: a + b.`,opType:`Elementwise`,icon:`โž•`,color:`#ffa93a`,accentColor:`#d68a2f`,ports:e=>[{id:`a`,type:`input`,label:`a`,shape:[e.n_embd]},{id:`b`,type:`input`,label:`b`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`sum`,shape:[e.n_embd]}]},linear_up:{kind:`linear_up`,label:`Up Projection`,description:`Linear projection: n_embd โ†’ intermediate_size.`,opType:`Linear`,icon:`๐Ÿ“ˆ`,color:`#8f7bff`,accentColor:`#7363cc`,ports:e=>[{id:`in`,type:`input`,label:`x`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`h`,shape:[e.intermediate_size]}]},relu:{kind:`relu`,label:`ReLU`,description:`Element-wise nonlinearity: max(0, x).`,opType:`Activation`,icon:`๐Ÿ”บ`,color:`#ff7a59`,accentColor:`#d1644a`,ports:e=>[{id:`in`,type:`input`,label:`h`,shape:[e.intermediate_size]},{id:`out`,type:`output`,label:`relu(h)`,shape:[e.intermediate_size]}]},linear_down:{kind:`linear_down`,label:`Down Projection`,description:`Linear projection: intermediate_size โ†’ n_embd.`,opType:`Linear`,icon:`๐Ÿ“‰`,color:`#8f7bff`,accentColor:`#7363cc`,ports:e=>[{id:`in`,type:`input`,label:`h`,shape:[e.intermediate_size]},{id:`out`,type:`output`,label:`x`,shape:[e.n_embd]}]},linear_q:{kind:`linear_q`,label:`Query Projection`,description:`Project x to query vector q.`,opType:`Linear`,icon:`๐ŸŸฃ`,color:`#8f7bff`,accentColor:`#7363cc`,ports:e=>[{id:`in`,type:`input`,label:`x`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`q`,shape:[e.n_embd]}]},linear_k:{kind:`linear_k`,label:`Key Projection`,description:`Project x to key vector k.`,opType:`Linear`,icon:`๐Ÿ”ต`,color:`#8f7bff`,accentColor:`#7363cc`,ports:e=>[{id:`in`,type:`input`,label:`x`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`k`,shape:[e.n_embd]}]},linear_v:{kind:`linear_v`,label:`Value Projection`,description:`Project x to value vector v.`,opType:`Linear`,icon:`๐ŸŸข`,color:`#8f7bff`,accentColor:`#7363cc`,ports:e=>[{id:`in`,type:`input`,label:`x`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`v`,shape:[e.n_embd]}]},attn_transpose:{kind:`attn_transpose`,label:`Transpose`,description:`Transpose K to Kแต€ for attention score matmul.`,opType:`Tensor`,icon:`โ†”๏ธ`,color:`#5cb8ff`,accentColor:`#4a95d1`,ports:e=>[{id:`k`,type:`input`,label:`k`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`kแต€`,shape:[e.n_embd]}]},attn_matmul:{kind:`attn_matmul`,label:`MatMul`,description:`Compute attention logits: q ยท kแต€.`,opType:`Tensor`,icon:`๐Ÿงฎ`,color:`#5cb8ff`,accentColor:`#4a95d1`,ports:e=>[{id:`q`,type:`input`,label:`q`,shape:[e.n_embd]},{id:`k_t`,type:`input`,label:`kแต€`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`logits`,shape:[e.n_embd]}]},attn_scale:{kind:`attn_scale`,label:`Scale`,description:`Scale logits by 1/sqrt(head_dim).`,opType:`Tensor`,icon:`๐Ÿ“`,color:`#5cb8ff`,accentColor:`#4a95d1`,ports:e=>[{id:`in`,type:`input`,label:`logits`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`scaled`,shape:[e.n_embd]}]},attn_softmax:{kind:`attn_softmax`,label:`Softmax`,description:`Normalize attention logits into weights.`,opType:`Activation`,icon:`๐Ÿ’ง`,color:`#ff7a59`,accentColor:`#d1644a`,ports:e=>[{id:`in`,type:`input`,label:`scaled`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`weights`,shape:[e.n_embd]}]},attn_weighted_sum:{kind:`attn_weighted_sum`,label:`Weighted Sum`,description:`Apply attention weights to V and combine heads.`,opType:`Tensor`,icon:`โˆ‘`,color:`#5cb8ff`,accentColor:`#4a95d1`,ports:e=>[{id:`weights`,type:`input`,label:`weights`,shape:[e.n_embd]},{id:`v`,type:`input`,label:`v`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`attn`,shape:[e.n_embd]}]},linear_o:{kind:`linear_o`,label:`Output Projection`,description:`Output projection after attention.`,opType:`Linear`,icon:`๐ŸŸช`,color:`#8f7bff`,accentColor:`#7363cc`,ports:e=>[{id:`in`,type:`input`,label:`attn`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`x`,shape:[e.n_embd]}]},rmsnorm:{kind:`rmsnorm`,label:`RMS Norm`,description:`Root Mean Square normalization. Stabilizes activations.`,opType:`Normalization`,icon:`๐Ÿ“`,color:`#4ee4c4`,accentColor:`#40bba1`,ports:e=>[{id:`in`,type:`input`,label:`x`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`x_norm`,shape:[e.n_embd]}]},attention:{kind:`attention`,label:`Attention`,description:`Q/K/V projections + scaled dot-product attention + output projection.`,opType:`Attention`,icon:`๐Ÿ‘๏ธ`,color:`#b762ff`,accentColor:`#9651d1`,isComposite:!0,children:[`linear_q`,`linear_k`,`attn_transpose`,`attn_matmul`,`attn_scale`,`attn_softmax`,`linear_v`,`attn_weighted_sum`,`linear_o`],ports:e=>[{id:`in`,type:`input`,label:`x`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`attn_out`,shape:[e.n_embd]}]},mlp:{kind:`mlp`,label:`MLP`,description:`Linear(fc1) โ†’ ReLU โ†’ Linear(fc2).`,opType:`MLP`,icon:`โšก`,color:`#ff576f`,accentColor:`#d1485b`,isComposite:!0,children:[`linear_up`,`relu`,`linear_down`],ports:e=>[{id:`in`,type:`input`,label:`x`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`mlp_out`,shape:[e.n_embd]}]},decoder_layers:{kind:`decoder_layers`,label:`Decoder Layers`,description:`Transformer block: RMSNorm โ†’ Attention โ†’ Add(residual) โ†’ RMSNorm โ†’ MLP โ†’ Add(residual)`,opType:`Decoder`,icon:`๐Ÿงฑ`,color:`#0079ff`,accentColor:`#0064d1`,isComposite:!0,children:[`rmsnorm`,`attention`,`add`,`rmsnorm`,`mlp`,`add`],ports:e=>[{id:`in`,type:`input`,label:`x`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`x_out`,shape:[e.n_embd]}]},lm_head:{kind:`lm_head`,label:`LM Head`,description:`Language model head. Projects embeddings to vocabulary logits.`,opType:`Linear`,icon:`๐ŸŽฏ`,color:`#8f7bff`,accentColor:`#7363cc`,ports:e=>[{id:`in`,type:`input`,label:`x`,shape:[e.n_embd]},{id:`out`,type:`output`,label:`logits`,shape:[e.vocab_size]}]}};function Se(e,t){return e.length===t.length?e.every((e,n)=>e===t[n]):!1}function Ce(e,t){let n=0;for(let r of e)switch(r.kind){case`embedding`:n+=t.vocab_size*t.n_embd,n+=t.block_size*t.n_embd;break;case`add`:break;case`linear_up`:n+=t.intermediate_size*t.n_embd;break;case`relu`:break;case`linear_down`:n+=t.intermediate_size*t.n_embd;break;case`linear_q`:case`linear_k`:case`linear_v`:case`linear_o`:n+=t.n_embd*t.n_embd;break;case`attn_transpose`:case`attn_matmul`:case`attn_scale`:case`attn_softmax`:case`attn_weighted_sum`:break;case`rmsnorm`:break;case`attention`:n+=4*t.n_embd*t.n_embd;break;case`mlp`:n+=t.intermediate_size*t.n_embd,n+=t.intermediate_size*t.n_embd;break;case`decoder_layers`:n+=4*t.n_embd*t.n_embd,n+=t.intermediate_size*t.n_embd,n+=t.intermediate_size*t.n_embd;break;case`lm_head`:n+=t.vocab_size*t.n_embd;break}return n}function we(){return[{id:`node-1`,kind:`embedding`,x:60,y:200,title:`Token Embedding`,description:`Token lookup: token_id โ†’ token vector.`},{id:`node-2`,kind:`embedding`,x:60,y:500,title:`Position Embedding`,description:`Position lookup: pos_id โ†’ position vector.`},{id:`node-3`,kind:`add`,x:320,y:350,description:`Combine token and position vectors via element-wise add.`},{id:`node-4`,kind:`rmsnorm`,x:580,y:350},{id:`node-5`,kind:`decoder_layers`,x:840,y:250},{id:`node-6`,kind:`lm_head`,x:1160,y:350}]}function Te(){return[{id:`conn-1`,fromNodeId:`node-1`,fromPortId:`out`,toNodeId:`node-3`,toPortId:`a`},{id:`conn-2`,fromNodeId:`node-2`,fromPortId:`out`,toNodeId:`node-3`,toPortId:`b`},{id:`conn-3`,fromNodeId:`node-3`,fromPortId:`out`,toNodeId:`node-4`,toPortId:`in`},{id:`conn-4`,fromNodeId:`node-4`,fromPortId:`out`,toNodeId:`node-5`,toPortId:`in`},{id:`conn-5`,fromNodeId:`node-5`,fromPortId:`out`,toNodeId:`node-6`,toPortId:`in`}]}function Ee(e){return e.kind===`decoder_layers`?{nodes:[{id:`sub-node-1`,kind:`rmsnorm`,x:60,y:520,title:`RMS Norm 1`},{id:`sub-node-2`,kind:`attention`,x:320,y:100,title:`Self Attention`},{id:`sub-node-3`,kind:`add`,x:630,y:530,title:`Residual Add 1`},{id:`sub-node-4`,kind:`rmsnorm`,x:890,y:350,title:`RMS Norm 2`},{id:`sub-node-5`,kind:`mlp`,x:1160,y:280,title:`MLP`},{id:`sub-node-6`,kind:`add`,x:1480,y:520,title:`Residual Add 2`}],connections:[{id:`sub-conn-1`,fromNodeId:`sub-node-1`,fromPortId:`out`,toNodeId:`sub-node-2`,toPortId:`in`},{id:`sub-conn-3`,fromNodeId:`sub-node-2`,fromPortId:`out`,toNodeId:`sub-node-3`,toPortId:`a`},{id:`sub-conn-4`,fromNodeId:`sub-node-3`,fromPortId:`out`,toNodeId:`sub-node-4`,toPortId:`in`},{id:`sub-conn-5`,fromNodeId:`sub-node-4`,fromPortId:`out`,toNodeId:`sub-node-5`,toPortId:`in`},{id:`sub-conn-6`,fromNodeId:`sub-node-3`,fromPortId:`out`,toNodeId:`sub-node-6`,toPortId:`b`},{id:`sub-conn-7`,fromNodeId:`sub-node-5`,fromPortId:`out`,toNodeId:`sub-node-6`,toPortId:`a`}]}:e.kind===`attention`?{nodes:[{id:`sub-node-1`,kind:`linear_q`,x:120,y:150,title:`Query Projection`},{id:`sub-node-2`,kind:`linear_k`,x:120,y:320,title:`Key Projection`},{id:`sub-node-3`,kind:`attn_transpose`,x:380,y:320,title:`Transpose`},{id:`sub-node-4`,kind:`attn_matmul`,x:640,y:200,title:`MatMul (QยทKแต€)`},{id:`sub-node-5`,kind:`attn_scale`,x:900,y:320,title:`Scale`},{id:`sub-node-6`,kind:`attn_softmax`,x:1160,y:450,title:`Softmax`},{id:`sub-node-7`,kind:`linear_v`,x:120,y:490,title:`Value Projection`},{id:`sub-node-8`,kind:`attn_weighted_sum`,x:1420,y:580,title:`Weighted Sum`},{id:`sub-node-9`,kind:`linear_o`,x:1680,y:600,title:`Output Projection`}],connections:[{id:`sub-conn-1`,fromNodeId:`sub-node-2`,fromPortId:`out`,toNodeId:`sub-node-3`,toPortId:`k`},{id:`sub-conn-2`,fromNodeId:`sub-node-1`,fromPortId:`out`,toNodeId:`sub-node-4`,toPortId:`q`},{id:`sub-conn-3`,fromNodeId:`sub-node-3`,fromPortId:`out`,toNodeId:`sub-node-4`,toPortId:`k_t`},{id:`sub-conn-4`,fromNodeId:`sub-node-4`,fromPortId:`out`,toNodeId:`sub-node-5`,toPortId:`in`},{id:`sub-conn-5`,fromNodeId:`sub-node-5`,fromPortId:`out`,toNodeId:`sub-node-6`,toPortId:`in`},{id:`sub-conn-6`,fromNodeId:`sub-node-6`,fromPortId:`out`,toNodeId:`sub-node-8`,toPortId:`weights`},{id:`sub-conn-7`,fromNodeId:`sub-node-7`,fromPortId:`out`,toNodeId:`sub-node-8`,toPortId:`v`},{id:`sub-conn-8`,fromNodeId:`sub-node-8`,fromPortId:`out`,toNodeId:`sub-node-9`,toPortId:`in`}]}:e.kind===`mlp`?{nodes:[{id:`sub-node-1`,kind:`linear_up`,x:160,y:170,title:`Up Projection`},{id:`sub-node-2`,kind:`relu`,x:460,y:170,title:`ReLU`},{id:`sub-node-3`,kind:`linear_down`,x:760,y:170,title:`Down Projection`}],connections:[{id:`sub-conn-1`,fromNodeId:`sub-node-1`,fromPortId:`out`,toNodeId:`sub-node-2`,toPortId:`in`},{id:`sub-conn-2`,fromNodeId:`sub-node-2`,fromPortId:`out`,toNodeId:`sub-node-3`,toPortId:`in`}]}:{nodes:[],connections:[]}}var De=100;function Oe(e=`id`){return`${e}-${++De}`}function ke({port:e,nodeId:t,side:n,color:r,onStartConnect:i,onEndConnect:a,onValidHover:o,onValidHoverLeave:s,isConnecting:c,isCompatible:l}){let u=e.type===`input`;return(0,j.jsxs)(`div`,{className:`flex items-center gap-2 group/port relative`,style:{flexDirection:u?`row`:`row-reverse`},children:[(0,j.jsx)(`div`,{"data-port-id":e.id,"data-node-id":t,"data-port-type":e.type,className:`port-handle`,style:{width:16,height:16,borderRadius:`50%`,border:`3px solid #000`,backgroundColor:c&&l?`#44ed93`:c&&!l&&u?`#666`:r,cursor:`crosshair`,transition:`transform 0.15s cubic-bezier(.18,.67,.6,1.22), background-color 0.15s`,position:`relative`,zIndex:30,flexShrink:0,...n===`left`?{marginLeft:-8}:{marginRight:-8}},onMouseDown:n=>{e.type===`output`&&(n.stopPropagation(),i(t,e.id,n))},onMouseUp:()=>{e.type===`input`&&a(t,e.id)},onMouseEnter:n=>{let r=n.currentTarget;r.style.transform=`scale(1.4)`,u&&c&&l&&o?.(t,e.id)},onMouseLeave:n=>{let r=n.currentTarget;r.style.transform=`scale(1)`,u&&c&&l&&s?.(t,e.id)}}),(0,j.jsx)(`span`,{className:`text-[10px] font-bold tracking-wide uppercase opacity-70 select-none`,children:e.label}),(0,j.jsxs)(`span`,{className:`text-[9px] font-mono opacity-40 select-none`,children:[`[`,e.shape.join(`ร—`),`]`]})]})}function Ae({node:e,def:t,config:n,isSelected:r,onStartConnect:i,onEndConnect:a,onValidConnectionHover:o,onValidConnectionHoverLeave:s,isConnecting:c,pendingConnection:l,connections:u,allNodes:d,nLayer:f,internalChildKinds:p}){let m=t.ports(n),h=m.filter(e=>e.type===`input`),g=m.filter(e=>e.type===`output`),_=t=>{if(!l||t.type!==`input`)return!1;let r=d.find(e=>e.id===l.fromNodeId);if(!r)return!1;let i=xe[r.kind].ports(n).find(e=>e.id===l.fromPortId);return!i||l.fromNodeId===e.id||u.some(n=>n.toNodeId===e.id&&n.toPortId===t.id)?!1:Se(i.shape,t.shape)},v=t.isComposite?280:220,y=p??t.children??[];return(0,j.jsx)(`div`,{"data-node-id":e.id,className:`canvas-node`,style:{position:`absolute`,left:0,top:0,transform:`translate(${e.x}px, ${e.y}px)`,zIndex:r?50:10,width:v,backfaceVisibility:`hidden`,WebkitFontSmoothing:`antialiased`},children:(0,j.jsxs)(`div`,{"data-node-shell-id":e.id,style:{transformOrigin:`50% 50%`,willChange:`transform`},children:[(0,j.jsx)(`div`,{className:`absolute inset-0`,style:{backgroundColor:`#000`,transform:`translate(6px, 6px)`,zIndex:-1,borderRadius:6}}),(0,j.jsxs)(`div`,{className:`relative`,style:{backgroundColor:t.color,border:`3px solid #000`,borderRadius:6,overflow:`visible`,boxShadow:r?`0 0 0 3px ${t.accentColor}, 0 0 24px ${t.color}66`:`none`,transition:`box-shadow 0.2s`},children:[(0,j.jsxs)(`div`,{className:`node-drag-handle flex items-center gap-2 px-3 py-2 select-none`,style:{borderBottom:`3px solid #000`,background:`linear-gradient(135deg, ${t.color}, ${t.accentColor})`,cursor:`grab`},children:[(0,j.jsx)(`span`,{className:`text-lg`,children:t.icon}),(0,j.jsx)(`span`,{className:`font-black text-sm tracking-tight text-black`,children:e.title??t.label}),(0,j.jsxs)(`div`,{className:`ml-auto flex items-center gap-1`,children:[e.kind===`decoder_layers`&&(0,j.jsxs)(`span`,{className:`text-[11px] font-black px-2 py-0.5`,style:{backgroundColor:`rgba(0,0,0,0.2)`,borderRadius:4,color:`#fff`,letterSpacing:`0.02em`},children:[f,`ร—`]}),(0,j.jsx)(`span`,{className:`text-[9px] font-black uppercase tracking-widest px-1.5 py-0.5`,style:{backgroundColor:`rgba(0,0,0,0.16)`,borderRadius:3,color:`rgba(0,0,0,0.72)`},children:t.isComposite?`Composite`:`Primitive`})]})]}),(0,j.jsx)(`div`,{className:`px-3 py-2 text-[11px] font-semibold leading-tight`,style:{color:`rgba(0,0,0,0.6)`,borderBottom:`2px solid rgba(0,0,0,0.1)`},children:e.description??t.description}),t.isComposite&&y.length>0&&(0,j.jsxs)(`div`,{className:`px-3 py-2`,style:{borderBottom:`2px solid rgba(0,0,0,0.1)`},children:[(0,j.jsx)(`div`,{className:`text-[9px] font-bold uppercase tracking-widest mb-1.5`,style:{color:`rgba(0,0,0,0.4)`},children:`Internal Components`}),(0,j.jsx)(`div`,{className:`flex flex-col gap-1`,children:y.map((e,t)=>{let n=xe[e];return(0,j.jsxs)(`div`,{className:`flex items-center gap-1.5 px-2 py-1`,style:{backgroundColor:`${n.color}44`,border:`2px solid ${n.color}88`,borderRadius:4},children:[(0,j.jsx)(`span`,{className:`text-xs`,children:n.icon}),(0,j.jsx)(`span`,{className:`text-[10px] font-bold`,style:{color:`rgba(0,0,0,0.7)`},children:n.label}),t(0,j.jsx)(ke,{port:n,nodeId:e.id,side:`left`,color:t.accentColor,onStartConnect:i,onEndConnect:a,onValidHover:o,onValidHoverLeave:s,isConnecting:c,isCompatible:_(n)},n.id))}),(0,j.jsx)(`div`,{className:`flex flex-col gap-2`,children:g.map(n=>(0,j.jsx)(ke,{port:n,nodeId:e.id,side:`right`,color:t.accentColor,onStartConnect:i,onEndConnect:a,onValidHover:o,onValidHoverLeave:s,isConnecting:c,isCompatible:!1},n.id))})]})]})]})})}function je({x1:e,y1:t,x2:n,y2:r,color:i,dashed:a=!1,zoom:o=1}){let s=e+(n-e)*.5;return(0,j.jsx)(`path`,{d:`M ${e} ${t} C ${s} ${t}, ${s} ${r}, ${n} ${r}`,fill:`none`,stroke:i,strokeWidth:3/o,strokeDasharray:a?`8 4`:void 0,vectorEffect:`non-scaling-stroke`,strokeLinecap:`round`,strokeLinejoin:`round`,shapeRendering:`geometricPrecision`})}function Me({def:e,onDragStart:t}){return(0,j.jsxs)(`div`,{className:`relative select-none group`,style:{cursor:`grab`},onMouseDown:n=>t(e.kind,n),children:[(0,j.jsx)(`div`,{className:`absolute inset-0`,style:{backgroundColor:`#000`,transform:`translate(4px, 4px)`,borderRadius:6,transition:`transform 0.15s`}}),(0,j.jsx)(`div`,{className:`relative px-3 py-2.5`,style:{backgroundColor:e.color,border:`3px solid #000`,borderRadius:6,transition:`transform 0.15s`},children:(0,j.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,j.jsx)(`span`,{className:`text-lg inline-flex items-center justify-center w-6 h-6 flex-shrink-0`,children:e.icon}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`font-black text-xs text-black tracking-tight`,children:e.label}),(0,j.jsx)(`div`,{className:`text-[9px] font-bold`,style:{color:`rgba(0,0,0,0.5)`},children:e.opType})]})]})})]})}function Ne({label:e,value:t,min:n,max:r,step:i,onChange:a,onInteract:o}){return(0,j.jsxs)(`div`,{className:`mb-3`,children:[(0,j.jsxs)(`div`,{className:`flex justify-between items-baseline mb-1`,children:[(0,j.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-widest`,style:{color:`rgba(255,255,255,0.6)`},children:e}),(0,j.jsx)(`span`,{className:`text-sm font-black text-white font-mono`,children:t})]}),(0,j.jsx)(`input`,{type:`range`,min:n,max:r,step:i,value:t,onChange:e=>{o?.(),a(Number(e.target.value))},className:`config-slider w-full`})]})}function Pe(){return(0,j.jsxs)(`svg`,{className:`absolute inset-0 w-full h-full pointer-events-none`,style:{zIndex:0},children:[(0,j.jsxs)(`defs`,{children:[(0,j.jsx)(`pattern`,{id:`grid-small`,width:`20`,height:`20`,patternUnits:`userSpaceOnUse`,children:(0,j.jsx)(`path`,{d:`M 20 0 L 0 0 0 20`,fill:`none`,stroke:`rgba(255,255,255,0.03)`,strokeWidth:`0.5`})}),(0,j.jsxs)(`pattern`,{id:`grid-large`,width:`100`,height:`100`,patternUnits:`userSpaceOnUse`,children:[(0,j.jsx)(`rect`,{width:`100`,height:`100`,fill:`url(#grid-small)`}),(0,j.jsx)(`path`,{d:`M 100 0 L 0 0 0 100`,fill:`none`,stroke:`rgba(255,255,255,0.06)`,strokeWidth:`1`})]})]}),(0,j.jsx)(`rect`,{width:`100%`,height:`100%`,fill:`url(#grid-large)`})]})}function Fe({color:e,label:t,value:n}){return(0,j.jsxs)(`div`,{className:`flex items-center gap-2 px-2.5 py-1 select-none`,style:{backgroundColor:`${e}11`,border:`2px solid ${e}33`,borderRadius:6},children:[(0,j.jsx)(`div`,{className:`w-1.5 h-1.5 rounded-full`,style:{backgroundColor:e}}),(0,j.jsx)(`span`,{className:`text-[9px] font-bold uppercase tracking-widest`,style:{color:`${e}88`},children:t}),(0,j.jsx)(`span`,{className:`text-[11px] font-black font-mono`,style:{color:e},children:n})]})}function Ie({losses:e}){if(e.length<2)return(0,j.jsx)(`div`,{className:`w-full h-[120px] flex items-center justify-center text-[10px] font-semibold`,style:{color:`rgba(255,255,255,0.35)`,border:`2px solid rgba(255,255,255,0.08)`,borderRadius:8},children:`Train to see live loss curve`});let t=Math.min(...e),n=Math.max(...e),r=Math.max(n-t,1e-9),i=e.map((n,i)=>`${i/(e.length-1)*520},${120-(n-t)/r*112-4}`).join(` `);return(0,j.jsxs)(`div`,{className:`w-full`,style:{border:`2px solid rgba(255,255,255,0.08)`,borderRadius:8,padding:8,backgroundColor:`rgba(0,0,0,0.25)`},children:[(0,j.jsx)(`svg`,{viewBox:`0 0 520 120`,className:`w-full h-[120px]`,children:(0,j.jsx)(`polyline`,{points:i,fill:`none`,stroke:`#ffd117`,strokeWidth:3,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,j.jsxs)(`div`,{className:`flex justify-between text-[9px] font-mono`,style:{color:`rgba(255,255,255,0.45)`},children:[(0,j.jsxs)(`span`,{children:[`start: `,e[0].toFixed(4)]}),(0,j.jsxs)(`span`,{children:[`end: `,e[e.length-1].toFixed(4)]})]})]})}function Le(){let e=(0,l.useRef)({}),t=(0,l.useRef)(null),n=(0,l.useRef)(0),r=(0,l.useRef)(null),i=(0,l.useRef)(!1),[a,o]=(0,l.useState)(0),s=(0,l.useCallback)(t=>{let n=e.current[t];n&&(n.currentTime=0,n.play().catch(()=>{}))},[]),c=(0,l.useCallback)(()=>{s(`connecting`)},[s]);(0,l.useEffect)(()=>{e.current={up:new Audio(`/up.mp3`),down:new Audio(`/down.mp3`),connect:new Audio(`/connect.mp3`),connecting:new Audio(`/connect.mp3`),secondary:new Audio(`/secondary.mp3`)};for(let t of Object.values(e.current))t&&(t.preload=`auto`);return()=>{for(let t of Object.values(e.current))t&&t.pause()}},[]);let u=(0,l.useCallback)((e,t)=>{let i=document.querySelector(`[data-node-shell-id="${e}"]`);i&&(n.current+=1,(()=>{if(r.current!==null)return;let e=()=>{o(e=>e+1),n.current>0?r.current=window.requestAnimationFrame(e):r.current=null};r.current=window.requestAnimationFrame(e)})(),i.animate(t===`lift`?[{transform:`translateZ(0) scaleX(1) scaleY(1)`},{transform:`translateZ(0) scaleX(0.96) scaleY(0.94)`,offset:.12},{transform:`translateZ(0) scaleX(1.10) scaleY(1.15)`,offset:.34},{transform:`translateZ(0) scaleX(1.04) scaleY(1.06)`,offset:.57},{transform:`translateZ(0) scaleX(1.11) scaleY(1.08)`,offset:.78},{transform:`translateZ(0) scaleX(1.08) scaleY(1.08)`,offset:1}]:[{transform:`translateZ(0) scaleX(1.08) scaleY(1.08)`},{transform:`translateZ(0) scaleX(1.12) scaleY(1.10)`,offset:.2},{transform:`translateZ(0) scaleX(1.04) scaleY(1.05)`,offset:.42},{transform:`translateZ(0) scaleX(1.15) scaleY(1.13)`,offset:.63},{transform:`translateZ(0) scaleX(0.97) scaleY(0.98)`,offset:.84},{transform:`translateZ(0) scaleX(1) scaleY(1)`,offset:1}],{duration:420,easing:`cubic-bezier(.2,.7,.2,1)`,fill:`forwards`}).addEventListener(`finish`,()=>{n.current=Math.max(0,n.current-1)},{once:!0}))},[]);(0,l.useEffect)(()=>()=>{r.current!==null&&window.cancelAnimationFrame(r.current)},[]);let[d,f]=(0,l.useState)(`build`),[p,m]=(0,l.useState)(()=>({...ye})),[h,g]=(0,l.useState)({nodes:we(),connections:Te()}),[_,v]=(0,l.useState)({}),[y,b]=(0,l.useState)([]),x=y.length>0?y[y.length-1].nodeId:null,ee=x?_[x]??{nodes:[],connections:[]}:h,S=ee.nodes,C=ee.connections,[w,te]=(0,l.useState)(null),[T,E]=(0,l.useState)({x:0,y:0}),[ne,re]=(0,l.useState)(1),[ie,ae]=(0,l.useState)(!1),oe=(0,l.useRef)({x:0,y:0,panX:0,panY:0}),se=(0,l.useRef)({x:0,y:0}),ce=(0,l.useRef)(1),D=(0,l.useRef)(null),[O,le]=(0,l.useState)(null),ue=(0,l.useRef)(null),[de,fe]=(0,l.useState)(null),[k,A]=(0,l.useState)(null),[pe,me]=(0,l.useState)(``),[he,_e]=(0,l.useState)(ve),[De,ke]=(0,l.useState)(null),[Le,Re]=(0,l.useState)(1e3),[ze,Be]=(0,l.useState)(.01),[Ve,He]=(0,l.useState)(.85),[Ue,We]=(0,l.useState)(.99),[Ge,Ke]=(0,l.useState)(42),[qe,Je]=(0,l.useState)(.5),[Ye,Xe]=(0,l.useState)(!1),[Ze,Qe]=(0,l.useState)(`Idle`),[$e,et]=(0,l.useState)(null),[tt,nt]=(0,l.useState)(null),[rt,it]=(0,l.useState)(null),[at,ot]=(0,l.useState)([]),st=(0,l.useRef)(null),[ct,lt]=(0,l.useState)(.5),[ut,dt]=(0,l.useState)(20),[ft,pt]=(0,l.useState)(ye.block_size),[mt,ht]=(0,l.useState)(42),[gt,_t]=(0,l.useState)([]),[vt,yt]=(0,l.useState)(null),bt=(0,l.useRef)(null),[xt,St]=(0,l.useState)(!1),[Ct,wt]=(0,l.useState)({}),Tt=(0,l.useRef)(null),M=(0,l.useCallback)((e,t)=>`${e}:${t}`,[]),Et=(0,l.useCallback)((e,t)=>{if(!Tt.current)return{x:0,y:0};let n=Tt.current.getBoundingClientRect(),r=e-n.left,i=t-n.top;return{x:(r-T.x)/ne,y:(i-T.y)/ne}},[T,ne]);(0,l.useEffect)(()=>{se.current=T},[T]),(0,l.useEffect)(()=>{ce.current=ne},[ne]);let Dt=(0,l.useCallback)(e=>{if(x){v(t=>{let n=t[x]??{nodes:[],connections:[]},r=typeof e==`function`?e(n.nodes):e;return{...t,[x]:{...n,nodes:r}}});return}g(t=>({...t,nodes:typeof e==`function`?e(t.nodes):e}))},[x]),Ot=(0,l.useCallback)(e=>{if(x){v(t=>{let n=t[x]??{nodes:[],connections:[]},r=typeof e==`function`?e(n.connections):e;return{...t,[x]:{...n,connections:r}}});return}g(t=>({...t,connections:typeof e==`function`?e(t.connections):e}))},[x]),kt=(0,l.useCallback)((e,t)=>{let n=document.querySelector(`[data-node-id="${e}"][data-port-id="${t}"]`);if(!n)return null;let r=n.getBoundingClientRect();return Et(r.left+r.width/2,r.top+r.height/2)},[Et]);(0,l.useLayoutEffect)(()=>{if(!Tt.current)return;let e=Tt.current.querySelectorAll(`.port-handle[data-node-id][data-port-id]`),t={};e.forEach(e=>{let n=e.dataset.nodeId,r=e.dataset.portId;if(!n||!r)return;let i=e.getBoundingClientRect();t[M(n,r)]=Et(i.left+i.width/2,i.top+i.height/2)}),wt(t)},[S,p,T,ne,a,M,Et]);let At=(0,l.useCallback)((e,t)=>{if(d!==`build`||t.button!==0||t.target.closest(`.port-handle`))return;t.stopPropagation();let n=S.find(t=>t.id===e);if(!n)return;let r=Et(t.clientX,t.clientY);D.current={nodeId:e,offsetX:r.x-n.x,offsetY:r.y-n.y},te(e),s(`up`),u(e,`lift`)},[S,s,u,Et,d]),jt=(0,l.useCallback)((e,n,r)=>{if(d!==`build`||r.button!==0)return;let i=kt(e,n);if(!i)return;let a=Et(r.clientX,r.clientY);le({fromNodeId:e,fromPortId:n,fromX:i.x,fromY:i.y,mouseX:a.x,mouseY:a.y}),t.current=null,s(`up`)},[kt,s,Et,d]),Mt=(0,l.useCallback)((e,n)=>{if(!O)return;let r=`${e}:${n}`;t.current!==r&&(t.current=r,s(`connect`))},[O,s]),Nt=(0,l.useCallback)((e,n)=>{let r=`${e}:${n}`;t.current===r&&(t.current=null)},[]);(0,l.useEffect)(()=>{O||(t.current=null)},[O]);let Pt=(0,l.useCallback)((e,t)=>{if(d!==`build`||!O)return;let{fromNodeId:n,fromPortId:r}=O,a=S.find(e=>e.id===n),o=S.find(t=>t.id===e);if(!a||!o)return;let c=xe[a.kind],l=xe[o.kind],u=c.ports(p).find(e=>e.id===r),f=l.ports(p).find(e=>e.id===t);!u||!f||n!==e&&Se(u.shape,f.shape)&&(C.some(n=>n.toNodeId===e&&n.toPortId===t)||(Ot(i=>[...i,{id:Oe(`conn`),fromNodeId:n,fromPortId:r,toNodeId:e,toPortId:t}]),i.current=!0,s(`down`),le(null)))},[O,S,p,C,Ot,s,d]);(0,l.useEffect)(()=>{let e=e=>{if(D.current){let{nodeId:t,offsetX:n,offsetY:r}=D.current,i=Et(e.clientX,e.clientY);Dt(e=>e.map(e=>e.id===t?{...e,x:i.x-n,y:i.y-r}:e))}if(O&&Tt.current){let t=Et(e.clientX,e.clientY);le(e=>e?{...e,mouseX:t.x,mouseY:t.y}:null)}if(ie){let t=e.clientX-oe.current.x,n=e.clientY-oe.current.y;E({x:oe.current.panX+t,y:oe.current.panY+n})}ue.current&&fe({x:e.clientX,y:e.clientY,kind:ue.current.kind})},t=e=>{let t=D.current!==null,n=O!==null,r=D.current?.nodeId??null;if(ue.current&&Tt.current){let t=Tt.current.getBoundingClientRect(),n=Et(e.clientX,e.clientY),r=n.x-ue.current.offsetX,i=n.y-ue.current.offsetY;if(e.clientX>=t.left&&e.clientX<=t.right&&e.clientY>=t.top&&e.clientY<=t.bottom){let e=ue.current.kind;Dt(t=>[...t,{id:Oe(`node`),kind:e,x:r,y:i}]),s(`down`)}ue.current=null,fe(null)}D.current=null,le(null),ae(!1),(t||n&&!i.current)&&s(`down`),i.current=!1,r&&u(r,`drop`)},n=()=>{A(null)};return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),window.addEventListener(`mousedown`,n),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t),window.removeEventListener(`mousedown`,n)}},[ie,O,s,u,Et,Dt]);let Ft=(0,l.useCallback)(e=>{(e.button===1||e.target===e.currentTarget||e.target.closest(`[data-canvas-bg]`))&&(ae(!0),oe.current={x:e.clientX,y:e.clientY,panX:T.x,panY:T.y},te(null))},[T]),It=(0,l.useCallback)((e,t)=>{d===`build`&&t.button===0&&(ue.current={kind:e,offsetX:100,offsetY:30},fe({x:t.clientX,y:t.clientY,kind:e}),s(`up`),t.preventDefault())},[s,d]),Lt=(0,l.useCallback)(e=>{Dt(t=>t.filter(t=>t.id!==e)),Ot(t=>t.filter(t=>t.fromNodeId!==e&&t.toNodeId!==e)),te(t=>t===e?null:t)},[Dt,Ot]),Rt=(0,l.useCallback)(()=>{w&&Lt(w)},[w,Lt]),zt=(0,l.useCallback)(e=>{Ot(t=>t.filter(t=>t.toNodeId!==e))},[Ot]),Bt=(0,l.useCallback)(e=>{Ot(t=>t.filter(t=>t.fromNodeId!==e))},[Ot]),Vt=(0,l.useCallback)((e,t)=>{Dt(n=>n.map(n=>n.id===e?{...n,description:t}:n))},[Dt]),Ht=(0,l.useCallback)((e,t)=>{Dt(n=>n.map(n=>n.id===e?{...n,title:t}:n))},[Dt]),Ut=(0,l.useCallback)(e=>{let t=S.find(t=>t.id===e);if(!t||!xe[t.kind].isComposite)return;let n=t.title??xe[t.kind].label;v(n=>n[e]?n:{...n,[e]:Ee(t)}),b(t=>[...t,{nodeId:e,title:n}]),te(null),A(null),le(null),E({x:0,y:0}),re(1)},[S]),Wt=(0,l.useCallback)(()=>{b(e=>e.slice(0,-1)),te(null),A(null),le(null),E({x:0,y:0}),re(1)},[]),Gt=(0,l.useCallback)((e,t)=>{d===`build`&&(t.preventDefault(),t.stopPropagation(),s(`secondary`),A({x:t.clientX,y:t.clientY,nodeId:e}),te(e))},[s,d]);(0,l.useEffect)(()=>{let e=Tt.current;if(!e)return;let t=t=>{t.preventDefault();let n=e.getBoundingClientRect(),r=t.clientX-n.left,i=t.clientY-n.top,a=t.deltaY>0?.92:1.08,o=ce.current,s=se.current,c=Math.min(3,Math.max(.2,o*a));if(c===o)return;let l=(r-s.x)/o,u=(i-s.y)/o,d={x:r-l*c,y:i-u*c};re(c),E(d)};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[]);let Kt=(0,l.useCallback)(()=>{g({nodes:we(),connections:Te()}),v({}),b([]),te(null),E({x:0,y:0}),re(1),A(null),m({...ye}),f(`build`),Qe(`Idle`),et(null),nt(null),it(null),ot([]),Re(1e3),Be(.01),He(.85),We(.99),Ke(42),Je(.5),_t([]),yt(null),ht(42),pt(ye.block_size)},[]),qt=(0,l.useCallback)(async()=>{try{ke(`Loading Default...`);let e=await fetch(`/input.txt`,{cache:`no-store`});if(!e.ok)throw Error(`HTTP ${e.status}`);let t=(await e.text()).trim();if(!t)throw Error(`Dataset file is empty.`);_e(t),ke(`Loaded Default`)}catch{ke(`Could not load Default. Using current text.`)}},[]);(0,l.useEffect)(()=>{qt()},[qt]);let Jt=(0,l.useCallback)(async()=>{if(Ye)return;let e=new AbortController;st.current=e,Xe(!0),nt(null),it(null),et(null),ot([]),_t([]),yt(null),Qe(`Compiling architecture...`);try{it(await ge({rootGraph:h,subgraphs:_,config:p,corpus:he,numSteps:Le,learningRate:ze,beta1:Ve,beta2:Ue,seed:Ge,temperature:qe,signal:e.signal,onStep:({step:e,totalSteps:t,loss:n})=>{et({step:e,total:t,loss:n}),ot(e=>[...e,n]),Qe(`Training ${e}/${t}`)}})),Qe(`Done`)}catch(t){e.signal.aborted?Qe(`Cancelled`):(nt(t instanceof Error?t.message:`Unknown training error.`),Qe(`Failed`))}finally{Xe(!1),st.current===e&&(st.current=null)}},[Ye,h,_,p,he,Le,ze,Ve,Ue,Ge,qe]),Yt=(0,l.useCallback)(()=>{st.current?.abort()},[]),Xt=(0,l.useCallback)(()=>{if(!rt){yt(`Train a model first.`);return}try{_t(rt.runtime.generate({temperature:ct,samplesToGenerate:ut,maxTokens:ft,seed:mt})),yt(null)}catch(e){yt(e instanceof Error?e.message:`Inference failed.`)}},[rt,ct,ut,ft,mt]);(0,l.useEffect)(()=>()=>{st.current?.abort()},[]),(0,l.useEffect)(()=>{A(null),le(null),d!==`build`&&(ue.current=null,fe(null))},[d]),(0,l.useEffect)(()=>{let e=bt.current;if(!e){St(!1);return}let t=()=>{St(e.scrollTop+e.clientHeighte.removeEventListener(`scroll`,t)},[d,pe]),(0,l.useEffect)(()=>{let e=e=>{if((e.key===`Delete`||e.key===`Backspace`)&&w){if(d!==`build`||e.target.tagName===`INPUT`)return;Rt()}e.key===`Escape`&&(te(null),le(null),A(null))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[w,Rt,d]);let Zt=(0,l.useMemo)(()=>Ce(S,p),[S,p]),Qt=(0,l.useMemo)(()=>w?S.find(e=>e.id===w):null,[w,S]),$t=Qt?xe[Qt.kind]:null,en=$e?Math.round($e.step/$e.total*100):0,tn=!!rt,nn=d===`build`?296:16,rn=e=>({backgroundColor:d===e?`#ffd117`:`#1a1a1a`,color:d===e?`#000`:`rgba(255,255,255,0.75)`,border:`3px solid #000`,borderRadius:8,boxShadow:`4px 4px 0 #000`}),an=(0,l.useMemo)(()=>{let e=pe.trim().toLowerCase();return e?be.filter(t=>{let n=xe[t];return n.label.toLowerCase().includes(e)||n.opType.toLowerCase().includes(e)||n.description.toLowerCase().includes(e)}):be},[pe]);return(0,j.jsxs)(`div`,{className:`h-screen w-screen flex overflow-hidden`,style:{backgroundColor:`#0a0a0a`},children:[(0,j.jsxs)(`div`,{ref:Tt,className:`flex-1 relative overflow-hidden`,style:{cursor:ie?`grabbing`:`default`},onMouseDown:Ft,children:[(0,j.jsx)(Pe,{}),(0,j.jsx)(`div`,{className:`absolute inset-0 pointer-events-none`,style:{boxShadow:`inset 0 0 80px rgba(0,0,0,0.8)`,zIndex:50}}),(0,j.jsxs)(`div`,{className:`absolute top-5 left-5 pointer-events-none select-none`,style:{zIndex:40},children:[y.length>0&&(0,j.jsx)(`button`,{className:`pointer-events-auto mb-2 px-2.5 py-1 font-black text-[10px] tracking-widest uppercase`,style:{border:`2px solid #000`,backgroundColor:`#ffd117`,color:`#000`,borderRadius:4,boxShadow:`3px 3px 0 #000`,cursor:`pointer`},onClick:Wt,children:`โ† Back`}),(0,j.jsx)(`h1`,{className:`text-2xl font-black text-white tracking-tight`,style:{textShadow:`0 2px 12px rgba(0,0,0,0.5)`},children:y.length>0?(0,j.jsx)(j.Fragment,{children:y[y.length-1].title}):(0,j.jsxs)(j.Fragment,{children:[`microgpt`,(0,j.jsx)(`span`,{style:{color:`#ffd117`},children:`.js`})]})}),(0,j.jsx)(`p`,{className:`text-[11px] font-bold tracking-wide mt-0.5`,style:{color:`rgba(255,255,255,0.3)`},children:`BUILD, TRAIN, AND RUN LLMS IN THE BROWSER`})]}),(0,j.jsxs)(`div`,{className:`absolute bottom-4 left-4 flex items-center gap-3 pointer-events-none`,style:{zIndex:40},children:[(0,j.jsx)(Fe,{color:`#ffd117`,label:`Params`,value:Zt.toLocaleString()}),(0,j.jsx)(Fe,{color:`#4ee4c4`,label:`Nodes`,value:String(S.length)}),(0,j.jsx)(Fe,{color:`#b762ff`,label:`Connections`,value:String(C.length)})]}),(0,j.jsxs)(`div`,{"data-canvas-bg":!0,className:`absolute inset-0`,style:{transform:`translate(${T.x}px, ${T.y}px) scale(${ne})`,transformOrigin:`0 0`,backfaceVisibility:`hidden`,WebkitFontSmoothing:`antialiased`},children:[(0,j.jsxs)(`svg`,{className:`absolute inset-0 pointer-events-none`,style:{width:`200%`,height:`200%`,overflow:`visible`,zIndex:80},children:[C.map(e=>{let t=Ct[M(e.fromNodeId,e.fromPortId)],n=Ct[M(e.toNodeId,e.toPortId)];if(!t||!n)return null;let r=S.find(t=>t.id===e.fromNodeId),i=r?xe[r.kind].color:`#fff`;return(0,j.jsx)(je,{x1:t.x,y1:t.y,x2:n.x,y2:n.y,color:i,zoom:ne},e.id)}),O&&(0,j.jsx)(je,{x1:O.fromX,y1:O.fromY,x2:O.mouseX,y2:O.mouseY,color:`#fff`,dashed:!0,zoom:ne})]}),S.map(e=>{let t=xe[e.kind],n=_[e.id]?.nodes?.length?_[e.id].nodes.map(e=>e.kind):void 0;return(0,j.jsx)(`div`,{onMouseDown:t=>At(e.id,t),onContextMenu:t=>Gt(e.id,t),children:(0,j.jsx)(Ae,{node:e,def:t,config:p,isSelected:w===e.id,onStartConnect:jt,onEndConnect:Pt,onValidConnectionHover:Mt,onValidConnectionHoverLeave:Nt,isConnecting:!!O,pendingConnection:O,connections:C,allNodes:S,nLayer:p.n_layer,internalChildKinds:n})},e.id)})]})]}),d===`build`&&(0,j.jsxs)(`div`,{className:`flex flex-col w-[280px] overflow-y-auto`,style:{borderLeft:`3px solid #000`,background:`linear-gradient(180deg, #111 0%, #0a0a0a 100%)`,scrollbarWidth:`thin`,scrollbarColor:`#333 transparent`},children:[(0,j.jsxs)(`div`,{className:`px-4 py-4`,style:{borderBottom:`3px solid #000`,backgroundColor:`#1a1a1a`},children:[(0,j.jsx)(`h2`,{className:`font-black text-sm text-white tracking-tight`,children:`๐Ÿง  Neural Components`}),(0,j.jsx)(`p`,{className:`text-[10px] font-bold mt-0.5`,style:{color:`rgba(255,255,255,0.5)`},children:`Drag onto canvas to build`})]}),(0,j.jsxs)(`div`,{className:`p-3`,style:{borderBottom:`3px solid rgba(0,0,0,0.5)`},children:[(0,j.jsx)(`div`,{className:`mb-2`,children:(0,j.jsx)(`input`,{value:pe,onChange:e=>me(e.target.value),placeholder:`Search ops...`,className:`w-full px-2.5 py-1.5 text-[11px] font-semibold`,style:{backgroundColor:`rgba(255,255,255,0.04)`,border:`2px solid rgba(255,255,255,0.1)`,borderRadius:6,color:`rgba(255,255,255,0.8)`,outline:`none`}})}),(0,j.jsxs)(`div`,{className:`relative`,children:[(0,j.jsx)(`div`,{ref:bt,className:`flex flex-col gap-2 overflow-y-auto pr-1`,style:{height:218},children:an.map(e=>(0,j.jsx)(Me,{def:xe[e],onDragStart:It},e))}),xt&&(0,j.jsx)(`div`,{className:`pointer-events-none absolute left-0 right-0 bottom-0 flex justify-center items-end`,style:{height:34,background:`linear-gradient(180deg, rgba(10,10,10,0) 0%, rgba(10,10,10,0.9) 100%)`},children:(0,j.jsx)(`span`,{className:`text-[12px] font-black`,style:{color:`rgba(255,255,255,0.65)`,marginBottom:3},children:`โ†“`})})]})]}),(0,j.jsxs)(`div`,{className:`p-4`,style:{borderBottom:`3px solid rgba(0,0,0,0.5)`},children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,j.jsx)(`span`,{className:`text-sm`,children:`โš™๏ธ`}),(0,j.jsx)(`h3`,{className:`font-black text-xs uppercase tracking-tight`,style:{color:`rgba(255,255,255,0.8)`},children:`Model Config`})]}),(0,j.jsx)(Ne,{label:`Embedding Dim`,value:p.n_embd,min:4,max:128,step:4,onInteract:c,onChange:e=>m(t=>({...t,n_embd:e,intermediate_size:t.intermediate_size===t.n_embd*4?e*4:t.intermediate_size}))}),(0,j.jsx)(Ne,{label:`Intermediate Size`,value:p.intermediate_size,min:4,max:1024,step:4,onInteract:c,onChange:e=>m(t=>({...t,intermediate_size:e}))}),(0,j.jsx)(Ne,{label:`Attention Heads`,value:p.n_head,min:1,max:16,step:1,onInteract:c,onChange:e=>m(t=>({...t,n_head:e}))}),(0,j.jsx)(Ne,{label:`Layers`,value:p.n_layer,min:1,max:12,step:1,onInteract:c,onChange:e=>m(t=>({...t,n_layer:e}))}),(0,j.jsx)(Ne,{label:`Vocab Size`,value:p.vocab_size,min:10,max:256,step:1,onInteract:c,onChange:e=>m(t=>({...t,vocab_size:e}))}),(0,j.jsx)(Ne,{label:`Block Size`,value:p.block_size,min:4,max:128,step:4,onInteract:c,onChange:e=>m(t=>({...t,block_size:e}))})]}),Qt&&$t&&(0,j.jsxs)(`div`,{className:`p-4`,style:{borderBottom:`3px solid rgba(0,0,0,0.5)`},children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,j.jsx)(`span`,{className:`text-sm`,children:$t.icon}),(0,j.jsx)(`h3`,{className:`font-black text-xs tracking-tight`,style:{color:`rgba(255,255,255,0.8)`},children:Qt.title??$t.label})]}),(0,j.jsx)(`p`,{className:`text-[11px] font-semibold leading-relaxed mb-3`,style:{color:`rgba(255,255,255,0.4)`},children:Qt.description??$t.description}),(0,j.jsxs)(`div`,{className:`text-[10px] font-mono mb-3`,style:{color:`rgba(255,255,255,0.3)`},children:[(0,j.jsx)(`div`,{children:`Ports:`}),$t.ports(p).map(e=>(0,j.jsxs)(`div`,{className:`ml-2`,children:[e.type===`input`?`โ†’`:`โ†`,` `,e.label,` [`,e.shape.join(`ร—`),`]`]},e.id))]}),(0,j.jsx)(`button`,{onClick:()=>{s(`up`),Rt()},className:`w-full py-1.5 font-bold text-xs tracking-wide`,style:{backgroundColor:`#ff576f`,border:`2px solid #000`,borderRadius:4,color:`#000`,cursor:`pointer`,transition:`transform 0.15s`},onMouseEnter:e=>{e.currentTarget.style.transform=`translateY(-1px)`},onMouseLeave:e=>{e.currentTarget.style.transform=`translateY(0)`},children:`Delete Node`})]}),(0,j.jsxs)(`div`,{className:`p-4`,style:{borderBottom:`3px solid rgba(0,0,0,0.5)`},children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,j.jsx)(`span`,{className:`text-sm`,children:`๐Ÿ“Š`}),(0,j.jsx)(`h3`,{className:`font-black text-xs uppercase tracking-tight`,style:{color:`rgba(255,255,255,0.8)`},children:`Architecture`})]}),(0,j.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:S.map((e,t)=>{let n=xe[e.kind];return(0,j.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1`,style:{backgroundColor:w===e.id?`${n.color}22`:`transparent`,border:w===e.id?`1px solid ${n.color}44`:`1px solid transparent`,borderRadius:4,cursor:`pointer`,transition:`background-color 0.15s`},onClick:()=>te(e.id),children:[(0,j.jsx)(`span`,{className:`text-xs inline-flex items-center justify-center w-5 h-5 flex-shrink-0`,children:n.icon}),(0,j.jsx)(`span`,{className:`text-[10px] font-bold`,style:{color:`rgba(255,255,255,0.6)`},children:e.title??n.label}),t{s(`up`),Kt()},className:`w-full py-2 font-black text-xs tracking-widest uppercase mb-2`,style:{backgroundColor:`#ffd117`,border:`3px solid #000`,borderRadius:6,color:`#000`,boxShadow:`4px 4px 0 #000`,cursor:`pointer`,transition:`transform 0.15s`},onMouseEnter:e=>{e.currentTarget.style.transform=`translateY(-1px)`},onMouseLeave:e=>{e.currentTarget.style.transform=`translateY(0)`},children:`Reset to Default`}),(0,j.jsxs)(`p`,{className:`text-[9px] font-semibold text-center mt-3 leading-relaxed`,style:{color:`rgba(255,255,255,0.2)`},children:[`Based on`,` `,(0,j.jsx)(`a`,{href:`https://github.com/xenova/microgpt.js`,target:`_blank`,rel:`noopener`,className:`underline`,style:{color:`rgba(255,209,23,0.5)`,transition:`color 0.15s`},onMouseEnter:e=>{e.currentTarget.style.color=`#ffd117`},onMouseLeave:e=>{e.currentTarget.style.color=`rgba(255,209,23,0.5)`},children:`microgpt.js`}),` `,`by @xenova`,(0,j.jsx)(`br`,{}),`Inspired by @karpathy's microgpt.py`]})]})]}),d===`train`&&(0,j.jsxs)(`div`,{className:`fixed right-4 top-4 w-[460px] max-h-[78vh] overflow-y-auto`,style:{zIndex:80,backgroundColor:`#101010`,border:`3px solid #000`,borderRadius:10,boxShadow:`8px 8px 0 #000`,padding:12},children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,j.jsx)(`h3`,{className:`font-black text-sm`,style:{color:`#ffd117`},children:`Train`}),(0,j.jsx)(`span`,{className:`text-[10px] font-mono`,style:{color:`rgba(255,255,255,0.45)`},children:`dataset: Default`})]}),(0,j.jsx)(`textarea`,{value:he,onChange:e=>_e(e.target.value),className:`w-full mb-2 px-2 py-1.5 text-[10px] font-mono`,rows:7,style:{backgroundColor:`rgba(255,255,255,0.04)`,border:`2px solid rgba(255,255,255,0.1)`,borderRadius:6,color:`rgba(255,255,255,0.82)`,resize:`vertical`},placeholder:`One training document per line`}),(0,j.jsxs)(`div`,{className:`mb-2`,children:[(0,j.jsx)(`button`,{onClick:()=>{s(`up`),qt()},className:`px-2.5 py-1 text-[10px] font-black uppercase tracking-wide`,style:{backgroundColor:`#1c1c1c`,border:`2px solid #000`,borderRadius:6,color:`rgba(255,255,255,0.75)`,cursor:`pointer`},children:`Reload Default`}),De&&(0,j.jsx)(`div`,{className:`mt-1 text-[10px] font-semibold`,style:{color:`rgba(255,255,255,0.45)`},children:De})]}),(0,j.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 mb-2`,children:[(0,j.jsxs)(`label`,{className:`text-[9px] font-bold uppercase tracking-widest`,style:{color:`rgba(255,255,255,0.45)`},children:[`Steps`,(0,j.jsx)(`input`,{type:`number`,min:1,max:1e4,value:Le,onChange:e=>Re(Math.max(1,Number(e.target.value)||1)),className:`w-full mt-1 px-2 py-1 text-[10px] font-mono`,style:{backgroundColor:`rgba(255,255,255,0.04)`,border:`2px solid rgba(255,255,255,0.1)`,borderRadius:6,color:`rgba(255,255,255,0.82)`}})]}),(0,j.jsxs)(`label`,{className:`text-[9px] font-bold uppercase tracking-widest`,style:{color:`rgba(255,255,255,0.45)`},children:[`Learning Rate`,(0,j.jsx)(`input`,{type:`number`,min:1e-5,max:1,step:1e-5,value:ze,onChange:e=>Be(Math.max(1e-5,Number(e.target.value)||1e-5)),className:`w-full mt-1 px-2 py-1 text-[10px] font-mono`,style:{backgroundColor:`rgba(255,255,255,0.04)`,border:`2px solid rgba(255,255,255,0.1)`,borderRadius:6,color:`rgba(255,255,255,0.82)`}})]}),(0,j.jsxs)(`label`,{className:`text-[9px] font-bold uppercase tracking-widest`,style:{color:`rgba(255,255,255,0.45)`},children:[`Beta1`,(0,j.jsx)(`input`,{type:`number`,min:0,max:.9999,step:1e-4,value:Ve,onChange:e=>He(Math.min(.9999,Math.max(0,Number(e.target.value)||0))),className:`w-full mt-1 px-2 py-1 text-[10px] font-mono`,style:{backgroundColor:`rgba(255,255,255,0.04)`,border:`2px solid rgba(255,255,255,0.1)`,borderRadius:6,color:`rgba(255,255,255,0.82)`}})]}),(0,j.jsxs)(`label`,{className:`text-[9px] font-bold uppercase tracking-widest`,style:{color:`rgba(255,255,255,0.45)`},children:[`Beta2`,(0,j.jsx)(`input`,{type:`number`,min:0,max:.99999,step:1e-5,value:Ue,onChange:e=>We(Math.min(.99999,Math.max(0,Number(e.target.value)||0))),className:`w-full mt-1 px-2 py-1 text-[10px] font-mono`,style:{backgroundColor:`rgba(255,255,255,0.04)`,border:`2px solid rgba(255,255,255,0.1)`,borderRadius:6,color:`rgba(255,255,255,0.82)`}})]}),(0,j.jsxs)(`label`,{className:`text-[9px] font-bold uppercase tracking-widest`,style:{color:`rgba(255,255,255,0.45)`},children:[`Seed`,(0,j.jsx)(`input`,{type:`number`,value:Ge,onChange:e=>Ke(Number(e.target.value)||0),className:`w-full mt-1 px-2 py-1 text-[10px] font-mono`,style:{backgroundColor:`rgba(255,255,255,0.04)`,border:`2px solid rgba(255,255,255,0.1)`,borderRadius:6,color:`rgba(255,255,255,0.82)`}})]})]}),(0,j.jsxs)(`label`,{className:`block text-[9px] font-bold uppercase tracking-widest mb-1`,style:{color:`rgba(255,255,255,0.45)`},children:[`Train-time sampling temperature (`,qe.toFixed(2),`)`]}),(0,j.jsx)(`input`,{type:`range`,min:.1,max:1,step:.05,value:qe,onChange:e=>{c(),Je(Number(e.target.value))},className:`config-slider w-full mb-2`}),(0,j.jsx)(Ie,{losses:at}),(0,j.jsxs)(`div`,{className:`mt-2 mb-2 px-2 py-1.5`,style:{borderRadius:6,backgroundColor:`rgba(0,0,0,0.35)`,border:`1px solid rgba(255,255,255,0.08)`},children:[(0,j.jsx)(`div`,{className:`text-[9px] font-bold uppercase tracking-widest`,style:{color:`rgba(255,255,255,0.45)`},children:`Status`}),(0,j.jsx)(`div`,{className:`text-[11px] font-bold`,style:{color:`rgba(255,255,255,0.8)`},children:Ze}),$e&&(0,j.jsxs)(`div`,{className:`mt-1 text-[10px] font-mono`,style:{color:`rgba(255,255,255,0.65)`},children:[`step `,$e.step,`/`,$e.total,` โ€ข loss `,$e.loss.toFixed(4),` โ€ข `,en,`%`]})]}),tt&&(0,j.jsx)(`div`,{className:`mb-2 px-2 py-1.5 text-[10px] font-semibold`,style:{borderRadius:6,backgroundColor:`rgba(255,87,111,0.12)`,border:`1px solid rgba(255,87,111,0.4)`,color:`#ff8d9f`},children:tt}),Ye?(0,j.jsx)(`button`,{onClick:Yt,className:`w-full py-2 font-black text-xs tracking-widest uppercase`,style:{backgroundColor:`#ff576f`,border:`3px solid #000`,borderRadius:6,color:`#000`,boxShadow:`4px 4px 0 #000`,cursor:`pointer`},children:`Stop Training`}):(0,j.jsx)(`button`,{onClick:()=>{s(`up`),Jt()},className:`w-full py-2 font-black text-xs tracking-widest uppercase`,style:{backgroundColor:`#44ed93`,border:`3px solid #000`,borderRadius:6,color:`#000`,boxShadow:`4px 4px 0 #000`,cursor:`pointer`},children:`๐Ÿš€ Train Model`})]}),d===`run`&&(0,j.jsxs)(`div`,{className:`fixed right-4 top-4 w-[420px] max-h-[78vh] overflow-y-auto`,style:{zIndex:80,backgroundColor:`#101010`,border:`3px solid #000`,borderRadius:10,boxShadow:`8px 8px 0 #000`,padding:12},children:[(0,j.jsx)(`h3`,{className:`font-black text-sm mb-2`,style:{color:`#ffd117`},children:`Run Inference`}),!tn&&(0,j.jsx)(`div`,{className:`mb-2 px-2 py-1.5 text-[10px] font-semibold`,style:{borderRadius:6,backgroundColor:`rgba(255,87,111,0.12)`,border:`1px solid rgba(255,87,111,0.4)`,color:`#ff8d9f`},children:`No trained model found. Go to Train and run training first.`}),(0,j.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 mb-2`,children:[(0,j.jsxs)(`label`,{className:`text-[9px] font-bold uppercase tracking-widest`,style:{color:`rgba(255,255,255,0.45)`},children:[`Samples`,(0,j.jsx)(`input`,{type:`number`,min:1,max:20,value:ut,onChange:e=>dt(Math.max(1,Number(e.target.value)||1)),className:`w-full mt-1 px-2 py-1 text-[10px] font-mono`,style:{backgroundColor:`rgba(255,255,255,0.04)`,border:`2px solid rgba(255,255,255,0.1)`,borderRadius:6,color:`rgba(255,255,255,0.82)`}})]}),(0,j.jsxs)(`label`,{className:`text-[9px] font-bold uppercase tracking-widest`,style:{color:`rgba(255,255,255,0.45)`},children:[`Max Tokens`,(0,j.jsx)(`input`,{type:`number`,min:1,max:256,value:ft,onChange:e=>pt(Math.max(1,Number(e.target.value)||1)),className:`w-full mt-1 px-2 py-1 text-[10px] font-mono`,style:{backgroundColor:`rgba(255,255,255,0.04)`,border:`2px solid rgba(255,255,255,0.1)`,borderRadius:6,color:`rgba(255,255,255,0.82)`}})]})]}),(0,j.jsxs)(`label`,{className:`block text-[9px] font-bold uppercase tracking-widest mb-1`,style:{color:`rgba(255,255,255,0.45)`},children:[`Temperature (`,ct.toFixed(2),`)`]}),(0,j.jsx)(`input`,{type:`range`,min:.01,max:1.5,step:.01,value:ct,onChange:e=>{c(),lt(Number(e.target.value))},className:`config-slider w-full mb-2`}),(0,j.jsx)(`label`,{className:`block text-[9px] font-bold uppercase tracking-widest mb-1`,style:{color:`rgba(255,255,255,0.45)`},children:`Seed`}),(0,j.jsx)(`input`,{type:`number`,value:mt??``,onChange:e=>{let t=e.target.value.trim();ht(t===``?void 0:Number(t)||0)},className:`w-full mb-2 px-2 py-1 text-[10px] font-mono`,style:{backgroundColor:`rgba(255,255,255,0.04)`,border:`2px solid rgba(255,255,255,0.1)`,borderRadius:6,color:`rgba(255,255,255,0.82)`}}),(0,j.jsx)(`button`,{onClick:()=>{s(`up`),Xt()},disabled:!tn,className:`w-full py-2 font-black text-xs tracking-widest uppercase mb-2`,style:{backgroundColor:tn?`#44ed93`:`#555`,border:`3px solid #000`,borderRadius:6,color:`#000`,boxShadow:`4px 4px 0 #000`,cursor:tn?`pointer`:`not-allowed`,opacity:tn?1:.6},children:`โ–ถ Run Sampling`}),vt&&(0,j.jsx)(`div`,{className:`mb-2 px-2 py-1.5 text-[10px] font-semibold`,style:{borderRadius:6,backgroundColor:`rgba(255,87,111,0.12)`,border:`1px solid rgba(255,87,111,0.4)`,color:`#ff8d9f`},children:vt}),(0,j.jsxs)(`div`,{className:`px-2 py-2 text-[10px]`,style:{borderRadius:6,backgroundColor:`rgba(255,255,255,0.03)`,border:`1px solid rgba(255,255,255,0.08)`,color:`rgba(255,255,255,0.78)`},children:[(0,j.jsx)(`div`,{className:`font-bold mb-1`,style:{color:`rgba(255,255,255,0.65)`},children:`Samples`}),gt.length===0?(0,j.jsx)(`div`,{style:{color:`rgba(255,255,255,0.4)`},children:`No samples yet.`}):gt.map((e,t)=>(0,j.jsxs)(`div`,{className:`font-mono mb-1`,children:[t+1,`. `,e||`โˆ…`]},`${e}-${t}`))]})]}),(0,j.jsxs)(`div`,{className:`fixed bottom-4 left-1/2 -translate-x-1/2 flex items-center gap-2`,style:{zIndex:120},children:[(0,j.jsx)(`button`,{onClick:()=>{s(`up`),f(`build`)},className:`px-4 py-2 font-black text-xs uppercase tracking-widest`,style:rn(`build`),children:`Build`}),(0,j.jsx)(`button`,{onClick:()=>{s(`up`),f(`train`)},className:`px-4 py-2 font-black text-xs uppercase tracking-widest`,style:rn(`train`),children:`Train`}),(0,j.jsx)(`button`,{onClick:()=>{s(`up`),f(`run`)},className:`px-4 py-2 font-black text-xs uppercase tracking-widest`,style:rn(`run`),children:`Run`})]}),d===`build`&&k&&(()=>{let e=S.find(e=>e.id===k.nodeId),t=e?xe[e.kind]:null,n=C.some(e=>e.toNodeId===k.nodeId),r=C.some(e=>e.fromNodeId===k.nodeId);return(0,j.jsxs)(`div`,{className:`fixed select-none`,style:{left:k.x,top:k.y,zIndex:9999},onMouseDown:e=>e.stopPropagation(),children:[(0,j.jsx)(`div`,{className:`absolute inset-0`,style:{backgroundColor:`#000`,transform:`translate(4px, 4px)`,borderRadius:6,zIndex:-1}}),(0,j.jsxs)(`div`,{style:{backgroundColor:`#1a1a1a`,border:`3px solid #000`,borderRadius:6,overflow:`hidden`,minWidth:180},children:[(0,j.jsxs)(`div`,{className:`px-3 py-2 flex items-center gap-2`,style:{borderBottom:`2px solid #333`},children:[(0,j.jsx)(`span`,{className:`text-xs`,children:t?.icon}),(0,j.jsx)(`span`,{className:`text-[11px] font-bold`,style:{color:`rgba(255,255,255,0.7)`},children:e?.title??t?.label})]}),(0,j.jsxs)(`div`,{className:`px-3 py-2 flex items-center gap-2 cursor-pointer`,style:{transition:`background-color 0.1s`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#2a2a2a`,s(`connecting`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`},onMouseDown:t=>{t.stopPropagation(),s(`up`),e&&Dt(t=>[...t,{id:Oe(`node`),kind:e.kind,x:e.x+30,y:e.y+30,title:e.title,description:e.description}]),A(null)},children:[(0,j.jsx)(`span`,{className:`text-xs`,children:`๐Ÿ“‹`}),(0,j.jsx)(`span`,{className:`text-[11px] font-semibold`,style:{color:`rgba(255,255,255,0.6)`},children:`Duplicate`})]}),t?.isComposite&&(0,j.jsxs)(`div`,{className:`px-3 py-2 flex items-center gap-2 cursor-pointer`,style:{transition:`background-color 0.1s`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#1f2a3a`,s(`connecting`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`},onMouseDown:e=>{e.stopPropagation(),s(`up`),Ut(k.nodeId)},children:[(0,j.jsx)(`span`,{className:`text-xs`,children:`๐Ÿ“‚`}),(0,j.jsx)(`span`,{className:`text-[11px] font-semibold`,style:{color:`rgba(255,255,255,0.6)`},children:`Open`})]}),(0,j.jsxs)(`div`,{className:`px-3 py-2 flex items-center gap-2 cursor-pointer`,style:{transition:`background-color 0.1s`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#263322`,s(`connecting`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`},onMouseDown:n=>{if(n.stopPropagation(),s(`up`),!e||!t)return;let r=window.prompt(`Node title`,e.title??t.label);r!==null&&(Ht(e.id,r.trim()),A(null))},children:[(0,j.jsx)(`span`,{className:`text-xs`,children:`๐Ÿท๏ธ`}),(0,j.jsx)(`span`,{className:`text-[11px] font-semibold`,style:{color:`rgba(255,255,255,0.6)`},children:`Edit Title`})]}),(0,j.jsxs)(`div`,{className:`px-3 py-2 flex items-center gap-2 cursor-pointer`,style:{transition:`background-color 0.1s`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#263322`,s(`connecting`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`},onMouseDown:n=>{if(n.stopPropagation(),s(`up`),!e||!t)return;let r=window.prompt(`Node description`,e.description??t.description);r!==null&&(Vt(e.id,r.trim()),A(null))},children:[(0,j.jsx)(`span`,{className:`text-xs`,children:`โœ๏ธ`}),(0,j.jsx)(`span`,{className:`text-[11px] font-semibold`,style:{color:`rgba(255,255,255,0.6)`},children:`Edit Description`})]}),(0,j.jsxs)(`div`,{className:`px-3 py-2 flex items-center gap-2`,style:{transition:`background-color 0.1s`,cursor:n?`pointer`:`not-allowed`,opacity:n?1:.45},onMouseEnter:e=>{n&&(e.currentTarget.style.backgroundColor=`#1f2a3a`),s(`connecting`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`},onMouseDown:e=>{e.stopPropagation(),n&&(s(`up`),zt(k.nodeId),A(null))},children:[(0,j.jsx)(`span`,{className:`text-xs`,children:`โ†™`}),(0,j.jsx)(`span`,{className:`text-[11px] font-semibold`,style:{color:`rgba(255,255,255,0.6)`},children:`Clear Input Connections`})]}),(0,j.jsxs)(`div`,{className:`px-3 py-2 flex items-center gap-2`,style:{transition:`background-color 0.1s`,cursor:r?`pointer`:`not-allowed`,opacity:r?1:.45},onMouseEnter:e=>{r&&(e.currentTarget.style.backgroundColor=`#1f2a3a`),s(`connecting`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`},onMouseDown:e=>{e.stopPropagation(),r&&(s(`up`),Bt(k.nodeId),A(null))},children:[(0,j.jsx)(`span`,{className:`text-xs`,children:`โ†˜`}),(0,j.jsx)(`span`,{className:`text-[11px] font-semibold`,style:{color:`rgba(255,255,255,0.6)`},children:`Clear Output Connections`})]}),(0,j.jsxs)(`div`,{className:`px-3 py-2 flex items-center gap-2 cursor-pointer`,style:{transition:`background-color 0.1s`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#3a1520`,s(`connecting`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`},onMouseDown:e=>{e.stopPropagation(),s(`up`),Lt(k.nodeId),A(null)},children:[(0,j.jsx)(`span`,{className:`text-xs`,children:`๐Ÿ—‘๏ธ`}),(0,j.jsx)(`span`,{className:`text-[11px] font-semibold`,style:{color:`#ff576f`},children:`Delete`}),(0,j.jsx)(`span`,{className:`ml-auto text-[9px] font-mono`,style:{color:`rgba(255,255,255,0.2)`},children:`โŒซ`})]})]})]})})(),d===`build`&&de&&(()=>{let e=xe[de.kind];return(0,j.jsxs)(`div`,{className:`pointer-events-none fixed select-none`,style:{left:de.x-100,top:de.y-30,zIndex:99999,opacity:.85,width:e.isComposite?280:220},children:[(0,j.jsx)(`div`,{className:`absolute inset-0`,style:{backgroundColor:`#000`,transform:`translate(6px, 6px)`,borderRadius:6,zIndex:-1}}),(0,j.jsxs)(`div`,{style:{backgroundColor:e.color,border:`3px solid #000`,borderRadius:6,overflow:`hidden`},children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,style:{borderBottom:`3px solid #000`,background:`linear-gradient(135deg, ${e.color}, ${e.accentColor})`},children:[(0,j.jsx)(`span`,{className:`text-lg`,children:e.icon}),(0,j.jsx)(`span`,{className:`font-black text-sm tracking-tight text-black`,children:e.label})]}),(0,j.jsx)(`div`,{className:`px-3 py-2 text-[11px] font-semibold leading-tight`,style:{color:`rgba(0,0,0,0.6)`},children:e.description})]})]})})(),(0,j.jsxs)(`div`,{className:`fixed bottom-4 flex items-center gap-1 select-none pointer-events-auto`,style:{zIndex:60,right:nn},children:[(0,j.jsx)(`button`,{onClick:()=>{re(e=>Math.max(.2,e-.15))},className:`w-7 h-7 flex items-center justify-center font-black text-sm`,style:{backgroundColor:`#1a1a1a`,border:`2px solid #333`,borderRadius:4,color:`rgba(255,255,255,0.6)`,cursor:`pointer`},children:`โˆ’`}),(0,j.jsxs)(`div`,{className:`px-2 py-1 text-[10px] font-bold font-mono`,style:{backgroundColor:`#1a1a1a`,border:`2px solid #333`,borderRadius:4,color:`rgba(255,255,255,0.5)`,minWidth:48,textAlign:`center`,cursor:`pointer`},onClick:()=>{re(1)},children:[Math.round(ne*100),`%`]}),(0,j.jsx)(`button`,{onClick:()=>{re(e=>Math.min(3,e+.15))},className:`w-7 h-7 flex items-center justify-center font-black text-sm`,style:{backgroundColor:`#1a1a1a`,border:`2px solid #333`,borderRadius:4,color:`rgba(255,255,255,0.6)`,cursor:`pointer`},children:`+`})]})]})}(0,c.createRoot)(document.getElementById(`root`)).render((0,j.jsx)(l.StrictMode,{children:(0,j.jsx)(Le,{})}));