vendor: 30,877 bytes, lines 1-9
1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["_w/dist-D14n-vGg.js","_w/jsx-runtime-CZcjcDnw.js","_w/react-GAJeVq40.js","_w/react-dom-Clgt-QEt.js","_w/route-Dr0pe71u.js","_w/route-PRZxtGPR.js","_w/routes-DoTAFzF9.js","_w/HomePage-OkdQYIwa.js","_w/link-CrnIQ76O.js","_w/useStore-BQmmH1IT.js","_w/createLucideIcon-CCLSdoPR.js","_w/push-to-searchable-KNPBJuvy.js","_w/usePrefersReducedMotion-Cd-J9oXk.js","_w/push-to-searchable-DpYawme7.css","_w/date-hgSb-cNn.js","_w/CliInstallSection-CSBL9ohl.js","_w/InstallCommand-Bt0E21VN.js","_w/ResponsiveImage-5JWfowTW.js","_w/terminalUi-C-luW2V4.js","_w/Badge-BiV2KZww.js","_w/Checkbox-CdrhpheT.js","_w/SiteRebellionSignup-CAzgZ5ww.js","_w/RotatingWord-CHRO5d7a.js","_w/HomePage-DFU3lLCq.css","_w/about-DWn0OVTy.js","_w/vision-CCcQMTVQ.js","_w/SiteContentColumn-B9CypEur.js","_w/projects-DzFvQA_8.js","_w/india-wpWCj3AS.js","_w/index.esm-USIrgYZB.js","_w/terminalVariants-D5f1aPIj.js","_w/company-B1IT_AfJ.js","_w/cli-pTnj6CVI.js","_w/terms-BzRrqzDA.js","_w/legal-version-page-BeyyFk7J.js","_w/prose-BO_2XaxV.js","_w/prose-DTTqD547.css","_w/subprocessors-DEMnPrdO.js","_w/rebellion-rfMR3PIU.js","_w/privacy-DTUXS_uc.js","_w/news--_XN8-sk.js","_w/dpa-iFDuymBN.js","_w/cookies-BIhGLH8L.js","_w/brand-C4JmcLZO.js","_w/blog-CW-pkNTv.js","_w/BlogPostParts-UWycGPK0.js","_w/_date-BtwKduV9.js","_w/_date-BiThKJHC.js","_w/thanks-BxB80haF.js","_w/_date-mLWr0fYo.js","_w/_slug-2YMd5EzK.js","_w/_date-BHSnpOSs.js","_w/_date-D0YmY0kI.js","_w/_slug-B3AfaOTc.js","_w/checkpoints-B0MILPHB.js"])))=>i.map(i=>d[i]); 2import{i as e,n as t,o as n,t as r}from"./jsx-runtime-CZcjcDnw.js";import{t as i}from"./react-GAJeVq40.js";import{t as a}from"./react-dom-Clgt-QEt.js";import{A as o,B as s,C as c,D as l,E as u,F as d,H as f,I as p,L as m,M as h,N as g,O as _,P as v,R as y,S as b,T as x,V as S,_ as C,a as w,b as E,d as ee,f as D,h as O,i as k,j as A,k as j,l as te,m as M,n as N,o as P,r as F,t as I,u as ne,v as L,w as re,x as R,y as ie,z as ae}from"./useStore-BQmmH1IT.js";import{n as oe,t as z}from"./not-found-i5RsCZif.js";import{a as se,i as ce,n as le,o as ue,r as de,t as fe}from"./matchContext-DTC_SYDw.js";import{t as pe}from"./link-CrnIQ76O.js";import{t as me}from"./createLucideIcon-CCLSdoPR.js";import{n as he,t as ge}from"./date-hgSb-cNn.js";var _e=t((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(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,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}var S=!1,C=-1,w=5,E=-1;function ee(){return g?!0:!(e.unstable_now()-E<w)}function D(){if(g=!1,S){var t=e.unstable_now();E=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&ee());){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&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(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||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=ee,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),ve=t(((e,t)=>{t.exports=_e()})),ye=t((e=>{var t=ve(),n=i(),r=a();function o(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function s(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function c(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function l(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function u(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function d(e){if(c(e)!==e)throw Error(o(188))}function f(e){var t=e.alternate;if(!t){if(t=c(e),t===null)throw Error(o(188));return t===e?e:null}for(var n=e,r=t;;){var i=n.return;if(i===null)break;var a=i.alternate;if(a===null){if(r=i.return,r!==null){n=r;continue}break}if(i.child===a.child){for(a=i.child;a;){if(a===n)return d(i),e;if(a===r)return d(i),t;a=a.sibling}throw Error(o(188))}if(n.return!==r.return)n=i,r=a;else{for(var s=!1,l=i.child;l;){if(l===n){s=!0,n=i,r=a;break}if(l===r){s=!0,r=i,n=a;break}l=l.sibling}if(!s){for(l=a.child;l;){if(l===n){s=!0,n=a,r=i;break}if(l===r){s=!0,r=a,n=i;break}l=l.sibling}if(!s)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(n.tag!==3)throw Error(o(188));return n.stateNode.current===n?e:t}function p(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=p(e),t!==null)return t;e=e.sibling}return null}var m=Object.assign,h=Symbol.for(`react.element`),g=Symbol.for(`react.transitional.element`),_=Symbol.for(`react.portal`),v=Symbol.for(`react.fragment`),y=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),x=Symbol.for(`react.consumer`),S=Symbol.for(`react.context`),C=Symbol.for(`react.forward_ref`),w=Symbol.for(`react.suspense`),E=Symbol.for(`react.suspense_list`),ee=Symbol.for(`react.memo`),D=Symbol.for(`react.lazy`),O=Symbol.for(`react.activity`),k=Symbol.for(`react.memo_cache_sentinel`),A=Symbol.iterator;function j(e){return typeof e!=`object`||!e?null:(e=A&&e[A]||e[`@@iterator`],typeof e==`function`?e:null)}var te=Symbol.for(`react.client.reference`);function M(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===te?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case v:return`Fragment`;case b:return`Profiler`;case y:return`StrictMode`;case w:return`Suspense`;case E:return`SuspenseList`;case O:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case _:return`Portal`;case S:return e.displayName||`Context`;case x:return(e._context.displayName||`Context`)+`.Consumer`;case C:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case ee:return t=e.displayName||null,t===null?M(e.type)||`Memo`:t;case D:t=e._payload,e=e._init;try{return M(e(t))}catch{}}return null}var N=Array.isArray,P=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,F=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,I={pending:!1,data:null,method:null,action:null},ne=[],L=-1;function re(e){return{current:e}}function R(e){0>L||(e.current=ne[L],ne[L]=null,L--)}function ie(e,t){L++,ne[L]=e.current,e.current=t}var ae=re(null),oe=re(null),z=re(null),se=re(null);function ce(e,t){switch(ie(z,t),ie(oe,e),ie(ae,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Wd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Wd(t),e=Gd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}R(ae),ie(ae,e)}function le(){R(ae),R(oe),R(z)}function ue(e){e.memoizedState!==null&&ie(se,e);var t=ae.current,n=Gd(t,e.type);t!==n&&(ie(oe,e),ie(ae,n))}function de(e){oe.current===e&&(R(ae),R(oe)),se.current===e&&(R(se),tp._currentValue=I)}var fe,pe;function me(e){if(fe===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);fe=t&&t[1]||``,pe=-1<e.stack.indexOf(` 3 at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return` 4`+fe+e+pe}var he=!1;function ge(e,t){if(!e||he)return``;he=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(` 5`),l=s.split(` 6`);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=` 7`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{he=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?me(n):``}function _e(e,t){switch(e.tag){case 26:case 27:case 5:return me(e.type);case 16:return me(`Lazy`);case 13:return e.child!==t&&t!==null?me(`Suspense Fallback`):me(`Suspense`);case 19:return me(`SuspenseList`);case 0:case 15:return ge(e.type,!1);case 11:return ge(e.type.render,!1);case 1:return ge(e.type,!0);case 31:return me(`Activity`);default:return``}}function ye(e){try{var t=``,n=null;do t+=_e(e,n),n=e,e=e.return;while(e);return t}catch(e){return` 8Error generating stack: `+e.message+` 9`+e.stack}}var be=Object.prototype.hasOwnProperty,xe=t.unstable_scheduleCallback,Se=t.unstable_cancelCallback,Ce=t.unstable_shouldYield,we=t.unstable_requestPaint,Te=t.unstable_now,Ee=t.unstable_getCurrentPriorityLevel,De=t.unstable_ImmediatePriority,Oe=t.unstable_UserBlockingPriority,ke=t.unstable_NormalPriority,Ae=t.unstable_LowPriority,je=t.unstable_IdlePriority,Me=t.log,Ne=t.unstable_setDisableYieldValue,Pe=null,Fe=null;function Ie(e){if(typeof Me==`function`&&Ne(e),Fe&&typeof Fe.setStrictMode==`function`)try{Fe.setStrictMode(Pe,e)}catch{}}var Le=Math.clz32?Math.clz32:Be,Re=Math.log,ze=Math.LN2;function Be(e){return e>>>=0,e===0?32:31-(Re(e)/ze|0)|0}var Ve=256,He=262144,Ue=4194304;function We(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 Ge(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=We(n))):i=We(o):i=We(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=We(n))):i=We(o)):i=We(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 Ke(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function qe(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 Je(){var e=Ue;return Ue<<=1,!(Ue&62914560)&&(Ue=4194304),e}function Ye(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Xe(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ze(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<n;){var u=31-Le(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&Qe(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function Qe(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Le(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function $e(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Le(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function et(e,t){var n=t&-t;return n=n&42?1:tt(n),(n&(e.suspendedLanes|t))===0?n:0}function tt(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function nt(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function rt(){var e=F.p;return e===0?(e=window.event,e===void 0?32:_p(e.type)):e}function it(e,t){var n=F.p;try{return F.p=e,t()}finally{F.p=n}}var at=Math.random().toString(36).slice(2),ot=`__reactFiber$`+at,st=`__reactProps$`+at,ct=`__reactContainer$`+at,lt=`__reactEvents$`+at,ut=`__reactListeners$`+at,dt=`__reactHandles$`+at,ft=`__reactResources$`+at,pt=`__reactMarker$`+at;function mt(e){delete e[ot],delete e[st],delete e[lt],delete e[ut],delete e[dt]}function ht(e){var t=e[ot];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ct]||n[ot]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=mf(e);e!==null;){if(n=e[ot])return n;e=mf(e)}return t}e=n,n=e.parentNode}return null}function gt(e){if(e=e[ot]||e[ct]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function _t(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(o(33))}function vt(e){var t=e[ft];return t||=e[ft]={hoistableStyles:new Map,hoistableScripts:new Map},t}function yt(e){e[pt]=!0}var bt=new Set,xt={};function St(e,t){Ct(e,t),Ct(e+`Capture`,t)}function Ct(e,t){for(xt[e]=t,e=0;e<t.length;e++)bt.add(t[e])}var wt=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`),Tt={},Et={};function Dt(e){return be.call(Et,e)?!0:be.call(Tt,e)?!1:wt.test(e)?Et[e]=!0:(Tt[e]=!0,!1)}function Ot(e,t,n){if(Dt(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}function kt(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function At(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function jt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function Mt(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function Nt(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Pt(e){if(!e._valueTracker){var t=Mt(e)?`checked`:`value`;e._valueTracker=Nt(e,t,``+e[t])}}function Ft(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=Mt(e)?e.checked?`true`:`false`:e.value),e=r,e===n?!1:(t.setValue(e),!0)}function It(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var Lt=/[\n"\\]/g;function Rt(e){return e.replace(Lt,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function zt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+jt(t)):e.value!==``+jt(t)&&(e.value=``+jt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Vt(e,o,jt(n)):Vt(e,o,jt(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+jt(s):e.removeAttribute(`name`)}function Bt(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){Pt(e);return}n=n==null?``:``+jt(n),t=t==null?n:``+jt(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),Pt(e)}function Vt(e,t,n){t===`number`&&It(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Ht(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+jt(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Ut(e,t,n){if(t!=null&&(t=``+jt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+jt(n)}function Wt(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(o(92));if(N(r)){if(1<r.length)throw Error(o(93));r=r[0]}n=r}n??=``,t=n}n=jt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Pt(e)}function Gt(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Kt=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function qt(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||Kt.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function Jt(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(o(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var i in t)r=t[i],t.hasOwnProperty(i)&&n[i]!==r&&qt(e,i,r)}else for(var a in t)t.hasOwnProperty(a)&&qt(e,a,t[a])}function Yt(e){if(e.indexOf(`-`)===-1)return!1;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var Xt=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),Zt=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Qt(e){return Zt.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function $t(){}var en=null;function tn(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var nn=null,rn=null;function an(e){var t=gt(e);if(t&&(e=t.stateNode)){var n=e[st]||null;a:switch(e=t.stateNode,t.type){case`input`:if(zt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+Rt(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var i=r[st]||null;if(!i)throw Error(o(90));zt(r,i.value,i.defaultValue,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&Ft(r)}break a;case`textarea`:Ut(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Ht(e,!!n.multiple,t,!1)}}}var on=!1;function sn(e,t,n){if(on)return e(t,n);on=!0;try{return e(t)}finally{if(on=!1,(nn!==null||rn!==null)&&(Su(),nn&&(t=nn,e=rn,rn=nn=null,an(t),e)))for(t=0;t<e.length;t++)an(e[t])}}function cn(e,t){var n=e.stateNode;if(n===null)return null;var r=n[st]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=!(e===`button`||e===`input`||e===`select`||e===`textarea`)),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(o(231,t,typeof n));return n}var ln=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),un=!1;if(ln)try{var dn={};Object.defineProperty(dn,"passive",{get:function(){un=!0}}),window.addEventListener(`test`,dn,dn),window.removeEventListener(`test`,dn,dn)}catch{un=!1}var fn=null,pn=null,B=null;function mn(){if(B)return B;var e,t=pn,n=t.length,r,i=`value`in fn?fn.value:fn.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return B=i.slice(e,1<r?1-r:void 0)}function hn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function gn(){return!0}function _n(){return!1}function vn(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?gn:_n,this.isPropagationStopped=_n,this}return m(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=gn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=gn)},persist:function(){},isPersistent:gn}),t}var yn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},bn=vn(yn),xn=m({},yn,{view:0,detail:0}),Sn=vn(xn),Cn,wn,Tn,En=m({},xn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ln,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==Tn&&(Tn&&e.type===`mousemove`?(Cn=e.screenX-Tn.screenX,wn=e.screenY-Tn.screenY):wn=Cn=0,Tn=e),Cn)},movementY:function(e){return`movementY`in e?e.movementY:wn}}),Dn=vn(En),On=vn(m({},En,{dataTransfer:0})),kn=vn(m({},xn,{relatedTarget:0})),An=vn(m({},yn,{animationName:0,elapsedTime:0,pseudoElement:0})),jn=vn(m({},yn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Mn=vn(m({},yn,{data:0})),Nn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Pn={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F
95`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},Fn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function In(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Fn[e])?!!t[e]:!1}function Ln(){return In}var Rn=vn(m({},xn,{key:function(e){if(e.key){var t=Nn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=hn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Pn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ln,charCode:function(e){return e.type===`keypress`?hn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?hn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),zn=vn(m({},En,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Bn=vn(m({},xn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ln})),Vn=vn(m({},yn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Hn=vn(m({},En,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Un=vn(m({},yn,{newState:0,oldState:0})),Wn=[9,13,27,32],Gn=ln&&`CompositionEvent`in window,Kn=null;ln&&`documentMode`in document&&(Kn=document.documentMode);var qn=ln&&`TextEvent`in window&&!Kn,Jn=ln&&(!Gn||Kn&&8<Kn&&11>=Kn),Yn=` `,Xn=!1;function Zn(e,t){switch(e){case`keyup`:return Wn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Qn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var $n=!1;function er(e,t){switch(e){case`compositionend`:return Qn(t);case`keypress`:return t.which===32?(Xn=!0,Yn):null;case`textInput`:return e=t.data,e===Yn&&Xn?null:e;default:return null}}function tr(e,t){if($n)return e===`compositionend`||!Gn&&Zn(e,t)?(e=mn(),B=pn=fn=null,$n=!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.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return Jn&&t.locale!==`ko`?null:t.data;default:return null}}var nr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function rr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!nr[e.type]:t===`textarea`}function ir(e,t,n,r){nn?rn?rn.push(r):rn=[r]:nn=r,t=Od(t,`onChange`),0<t.length&&(n=new bn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var ar=null,or=null;function sr(e){bd(e,0)}function cr(e){if(Ft(_t(e)))return e}function lr(e,t){if(e===`change`)return t}var ur=!1;if(ln){var dr;if(ln){var fr=`oninput`in document;if(!fr){var pr=document.createElement(`div`);pr.setAttribute(`oninput`,`return;`),fr=typeof pr.oninput==`function`}dr=fr}else dr=!1;ur=dr&&(!document.documentMode||9<document.documentMode)}function mr(){ar&&(ar.detachEvent(`onpropertychange`,hr),or=ar=null)}function hr(e){if(e.propertyName===`value`&&cr(or)){var t=[];ir(t,or,e,tn(e)),sn(sr,t)}}function gr(e,t,n){e===`focusin`?(mr(),ar=t,or=n,ar.attachEvent(`onpropertychange`,hr)):e===`focusout`&&mr()}function _r(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return cr(or)}function vr(e,t){if(e===`click`)return cr(t)}function yr(e,t){if(e===`input`||e===`change`)return cr(t)}function br(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var xr=typeof Object.is==`function`?Object.is:br;function Sr(e,t){if(xr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!be.call(t,i)||!xr(e[i],t[i]))return!1}return!0}function Cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function wr(e,t){var n=Cr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=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=Cr(n)}}function Tr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Tr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Er(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=It(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=It(e.document)}return t}function Dr(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 Or=ln&&`documentMode`in document&&11>=document.documentMode,kr=null,Ar=null,jr=null,Mr=!1;function Nr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Mr||kr==null||kr!==It(r)||(r=kr,`selectionStart`in r&&Dr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focu
vendor: 118,458 bytes, lines 9-10
9sNode:r.focusNode,focusOffset:r.focusOffset}),jr&&Sr(jr,r)||(jr=r,r=Od(Ar,`onSelect`),0<r.length&&(t=new bn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=kr)))}function Pr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Fr={animationend:Pr(`Animation`,`AnimationEnd`),animationiteration:Pr(`Animation`,`AnimationIteration`),animationstart:Pr(`Animation`,`AnimationStart`),transitionrun:Pr(`Transition`,`TransitionRun`),transitionstart:Pr(`Transition`,`TransitionStart`),transitioncancel:Pr(`Transition`,`TransitionCancel`),transitionend:Pr(`Transition`,`TransitionEnd`)},Ir={},Lr={};ln&&(Lr=document.createElement(`div`).style,`AnimationEvent`in window||(delete Fr.animationend.animation,delete Fr.animationiteration.animation,delete Fr.animationstart.animation),`TransitionEvent`in window||delete Fr.transitionend.transition);function Rr(e){if(Ir[e])return Ir[e];if(!Fr[e])return e;var t=Fr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Lr)return Ir[e]=t[n];return e}var zr=Rr(`animationend`),Br=Rr(`animationiteration`),Vr=Rr(`animationstart`),Hr=Rr(`transitionrun`),Ur=Rr(`transitionstart`),Wr=Rr(`transitioncancel`),Gr=Rr(`transitionend`),Kr=new Map,qr=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);qr.push(`scrollEnd`);function Jr(e,t){Kr.set(e,t),St(t,[e])}var Yr=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},Xr=[],Zr=0,Qr=0;function $r(){for(var e=Zr,t=Qr=Zr=0;t<e;){var n=Xr[t];Xr[t++]=null;var r=Xr[t];Xr[t++]=null;var i=Xr[t];Xr[t++]=null;var a=Xr[t];if(Xr[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&ri(n,i,a)}}function ei(e,t,n,r){Xr[Zr++]=e,Xr[Zr++]=t,Xr[Zr++]=n,Xr[Zr++]=r,Qr|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function ti(e,t,n,r){return ei(e,t,n,r),ii(e)}function ni(e,t){return ei(e,null,null,t),ii(e)}function ri(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Le(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function ii(e){if(50<pu)throw pu=0,mu=null,Error(o(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var ai={};function oi(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function si(e,t,n,r){return new oi(e,t,n,r)}function ci(e){return e=e.prototype,!(!e||!e.isReactComponent)}function li(e,t){var n=e.alternate;return n===null?(n=si(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function ui(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function di(e,t,n,r,i,a){var s=0;if(r=e,typeof e==`function`)ci(e)&&(s=1);else if(typeof e==`string`)s=Kf(e,n,ae.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case O:return e=si(31,n,t,i),e.elementType=O,e.lanes=a,e;case v:return fi(n.children,i,a,t);case y:s=8,i|=24;break;case b:return e=si(12,n,t,i|2),e.elementType=b,e.lanes=a,e;case w:return e=si(13,n,t,i),e.elementType=w,e.lanes=a,e;case E:return e=si(19,n,t,i),e.elementType=E,e.lanes=a,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case S:s=10;break a;case x:s=9;break a;case C:s=11;break a;case ee:s=14;break a;case D:s=16,r=null;break a}s=29,n=Error(o(130,e===null?`null`:typeof e,``)),r=null}return t=si(s,n,t,i),t.elementType=e,t.type=r,t.lanes=a,t}function fi(e,t,n,r){return e=si(7,e,r,t),e.lanes=n,e}function pi(e,t,n){return e=si(6,e,null,t),e.lanes=n,e}function mi(e){var t=si(18,null,null,0);return t.stateNode=e,t}function hi(e,t,n){return t=si(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var gi=new WeakMap;function _i(e,t){if(typeof e==`object`&&e){var n=gi.get(e);return n===void 0?(t={value:e,source:t,stack:ye(t)},gi.set(e,t),t):n}return{value:e,source:t,stack:ye(t)}}var vi=[],yi=0,bi=null,xi=0,Si=[],Ci=0,wi=null,Ti=1,Ei=``;function Di(e,t){vi[yi++]=xi,vi[yi++]=bi,bi=e,xi=t}function Oi(e,t,n){Si[Ci++]=Ti,Si[Ci++]=Ei,Si[Ci++]=wi,wi=e;var r=Ti;e=Ei;var i=32-Le(r)-1;r&=~(1<<i),n+=1;var a=32-Le(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,Ti=1<<32-Le(t)+i|n<<i|r,Ei=a+e}else Ti=1<<a|n<<i|r,Ei=e}function ki(e){e.return!==null&&(Di(e,1),Oi(e,1,0))}function Ai(e){for(;e===bi;)bi=vi[--yi],vi[yi]=null,xi=vi[--yi],vi[yi]=null;for(;e===wi;)wi=Si[--Ci],Si[Ci]=null,Ei=Si[--Ci],Si[Ci]=null,Ti=Si[--Ci],Si[Ci]=null}function ji(e,t){Si[Ci++]=Ti,Si[Ci++]=Ei,Si[Ci++]=wi,Ti=t.id,Ei=t.overflow,wi=e}var Mi=null,Ni=null,Pi=!1,Fi=null,Ii=!1,Li=Error(o(519));function Ri(e){throw Wi(_i(Error(o(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Li}function zi(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[ot]=e,t[st]=r,n){case`dialog`:xd(`cancel`,t),xd(`close`,t);break;case`iframe`:case`object`:case`embed`:xd(`load`,t);break;case`video`:case`audio`:for(n=0;n<vd.length;n++)xd(vd[n],t);break;case`source`:xd(`error`,t);break;case`img`:case`image`:case`link`:xd(`error`,t),xd(`load`,t);break;case`details`:xd(`toggle`,t);break;case`input`:xd(`invalid`,t),Bt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:xd(`invalid`,t);break;case`textarea`:xd(`invalid`,t),Wt(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||Pd(t.textContent,n)?(r.popover!=null&&(xd(`beforetoggle`,t),xd(`toggle`,t)),r.onScroll!=null&&xd(`scroll`,t),r.onScrollEnd!=null&&xd(`scrollend`,t),r.onClick!=null&&(t.onclick=$t),t=!0):t=!1,t||Ri(e,!0)}function Bi(e){for(Mi=e.return;Mi;)switch(Mi.tag){case 5:case 31:case 13:Ii=!1;return;case 27:case 3:Ii=!0;return;default:Mi=Mi.return}}function Vi(e){if(e!==Mi)return!1;if(!Pi)return Bi(e),Pi=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!==`form`&&n!==`button`)||Kd(e.type,e.memoizedProps)),n=!n),n&&Ni&&Ri(e),Bi(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(o(317));Ni=pf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(o(317));Ni=pf(e)}else t===27?(t=Ni,ef(e.type)?(e=ff,ff=null,Ni=e):Ni=t):Ni=Mi?df(e.stateNode.nextSibling):null;return!0}function Hi(){Ni=Mi=null,Pi=!1}function Ui(){var e=Fi;return e!==null&&($l===null?$l=e:$l.push.apply($l,e),Fi=null),e}function Wi(e){Fi===null?Fi=[e]:Fi.push(e)}var Gi=re(null),Ki=null,qi=null;function Ji(e,t,n){ie(Gi,t._currentValue),t._currentValue=n}function Yi(e){e._currentValue=Gi.current,R(Gi)}function Xi(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function Zi(e,t,n,r){var i=e.child;for(i!==null&&(i.return=e);i!==null;){var a=i.dependencies;if(a!==null){var s=i.child;a=a.firstContext;a:for(;a!==null;){var c=a;a=i;for(var l=0;l<t.length;l++)if(c.context===t[l]){a.lanes|=n,c=a.alternate,c!==null&&(c.lanes|=n),Xi(a.return,n,e),r||(s=null);break a}a=c.next}}else if(i.tag===18){if(s=i.return,s===null)throw Error(o(341));s.lanes|=n,a=s.alternate,a!==null&&(a.lanes|=n),Xi(s,n,e),s=null}else s=i.child;if(s!==null)s.return=i;else for(s=i;s!==null;){if(s===e){s=null;break}if(i=s.sibling,i!==null){i.return=s.return,s=i;break}s=s.return}i=s}}function Qi(e,t,n,r){e=null;for(var i=t,a=!1;i!==null;){if(!a){if(i.flags&524288)a=!0;else if(i.flags&262144)break}if(i.tag===10){var s=i.alternate;if(s===null)throw Error(o(387));if(s=s.memoizedProps,s!==null){var c=i.type;xr(i.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(i===se.current){if(s=i.alternate,s===null)throw Error(o(387));s.memoizedState.memoizedState!==i.memoizedState.memoizedState&&(e===null?e=[tp]:e.push(tp))}i=i.return}e!==null&&Zi(t,e,n,r),t.flags|=262144}function $i(e){for(e=e.firstContext;e!==null;){if(!xr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ea(e){Ki=e,qi=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function ta(e){return ra(Ki,e)}function na(e,t){return Ki===null&&ea(e),ra(e,t)}function ra(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},qi===null){if(e===null)throw Error(o(308));qi=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else qi=qi.next=t;return n}var ia=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},aa=t.unstable_scheduleCallback,oa=t.unstable_NormalPriority,sa={$$typeof:S,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ca(){return{controller:new ia,data:new Map,refCount:0}}function la(e){e.refCount--,e.refCount===0&&aa(oa,function(){e.controller.abort()})}var ua=null,da=0,fa=0,pa=null;function ma(e,t){if(ua===null){var n=ua=[];da=0,fa=fd(),pa={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return da++,t.then(ha,ha),t}function ha(){if(--da===0&&ua!==null){pa!==null&&(pa.status=`fulfilled`);var e=ua;ua=null,fa=0,pa=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function ga(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var _a=P.S;P.S=function(e,t){nu=Te(),typeof t==`object`&&t&&typeof t.then==`function`&&ma(e,t),_a!==null&&_a(e,t)};var va=re(null);function ya(){var e=va.current;return e===null?Ll.pooledCache:e}function ba(e,t){t===null?ie(va,va.current):ie(va,t.pool)}function xa(){var e=ya();return e===null?null:{parent:sa._currentValue,pool:e}}var Sa=Error(o(460)),Ca=Error(o(474)),wa=Error(o(542)),Ta={then:function(){}};function Ea(e){return e=e.status,e===`fulfilled`||e===`rejected`}function Da(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then($t,$t),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,ja(e),e;default:if(typeof t.status==`string`)t.then($t,$t);else{if(e=Ll,e!==null&&100<e.shellSuspendCounter)throw Error(o(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,ja(e),e}throw ka=t,Sa}}function Oa(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(ka=e,Sa):e}}var ka=null;function Aa(){if(ka===null)throw Error(o(459));var e=ka;return ka=null,e}function ja(e){if(e===Sa||e===wa)throw Error(o(483))}var Ma=null,Na=0;function Pa(e){var t=Na;return Na+=1,Ma===null&&(Ma=[]),Da(Ma,e,t)}function Fa(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Ia(e,t){throw t.$$typeof===h?Error(o(525)):(e=Object.prototype.toString.call(t),Error(o(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function La(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function i(e,t){return e=li(e,t),e.index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=pi(n,e.mode,r),t.return=e,t):(t=i(t,n),t.return=e,t)}function l(e,t,n,r){var a=n.type;return a===v?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===a||typeof a==`object`&&a&&a.$$typeof===D&&Oa(a)===t.type)?(t=i(t,n.props),Fa(t,n),t.return=e,t):(t=di(n.type,n.key,n.props,null,e.mode,r),Fa(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=hi(n,e.mode,r),t.return=e,t):(t=i(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,a){return t===null||t.tag!==7?(t=fi(n,e.mode,r,a),t.return=e,t):(t=i(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=pi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case g:return n=di(t.type,t.key,t.props,null,e.mode,n),Fa(n,t),n.return=e,n;case _:return t=hi(t,e.mode,n),t.return=e,t;case D:return t=Oa(t),f(e,t,n)}if(N(t)||j(t))return t=fi(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,Pa(t),n);if(t.$$typeof===S)return f(e,na(e,t),n);Ia(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case g:return n.key===i?l(e,t,n,r):null;case _:return n.key===i?u(e,t,n,r):null;case D:return n=Oa(n),p(e,t,n,r)}if(N(n)||j(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,Pa(n),r);if(n.$$typeof===S)return p(e,t,na(e,n),r);Ia(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case g:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case _:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case D:return r=Oa(r),m(e,t,n,r,i)}if(N(r)||j(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,Pa(r),i);if(r.$$typeof===S)return m(e,t,n,na(t,r),i);Ia(t,r)}return null}function h(i,o,s,c){for(var l=null,u=null,d=o,h=o=0,g=null;d!==null&&h<s.length;h++){d.index>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),Pi&&Di(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(o=a(d,o,h),u===null?l=d:u.sibling=d,u=d);return Pi&&Di(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),o=a(g,o,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),Pi&&Di(i,h),l}function y(i,s,c,l){if(c==null)throw Error(o(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=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),s=a(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),Pi&&Di(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=a(v,s,g),d===null?u=v:d.sibling=v,d=v);return Pi&&Di(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),s=a(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),Pi&&Di(i,g),u}function b(e,r,a,c){if(typeof a==`object`&&a&&a.type===v&&a.key===null&&(a=a.props.children),typeof a==`object`&&a){switch(a.$$typeof){case g:a:{for(var l=a.key;r!==null;){if(r.key===l){if(l=a.type,l===v){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===D&&Oa(l)===r.type){n(e,r.sibling),c=i(r,a.props),Fa(c,a),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}a.type===v?(c=fi(a.props.children,e.mode,c,a.key),c.return=e,e=c):(c=di(a.type,a.key,a.props,null,e.mode,c),Fa(c,a),c.return=e,e=c)}return s(e);case _: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=hi(a,e.mode,c),c.return=e,e=c}return s(e);case D:return a=Oa(a),b(e,r,a,c)}if(N(a))return h(e,r,a,c);if(j(a)){if(l=j(a),typeof l!=`function`)throw Error(o(150));return a=l.call(a),y(e,r,a,c)}if(typeof a.then==`function`)return b(e,r,Pa(a),c);if(a.$$typeof===S)return b(e,r,na(e,a),c);Ia(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=pi(a,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Na=0;var i=b(e,t,n,r);return Ma=null,i}catch(t){if(t===Sa||t===wa)throw t;var a=si(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ra=La(!0),za=La(!1),Ba=!1;function Va(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ha(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 Ua(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Wa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Y&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ii(e),ri(e,null,n),t}return ei(e,r,t,n),ii(e)}function Ga(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,$e(e,n)}}function Ka(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 qa=!1;function Ja(){if(qa){var e=pa;if(e!==null)throw e}}function Ya(e,t,n,r){qa=!1;var i=e.updateQueue;Ba=!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?(zl&f)===f:(r&f)===f){f!==0&&f===fa&&(qa=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=m({},d,f);break a;case 2:Ba=!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),ql|=o,e.lanes=o,e.memoizedState=d}}function Xa(e,t){if(typeof e!=`function`)throw Error(o(191,e));e.call(t)}function Za(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)Xa(n[e],t)}var Qa=re(null),$a=re(0);function eo(e,t){e=Gl,ie($a,e),ie(Qa,t),Gl=e|t.baseLanes}function to(){ie($a,Gl),ie(Qa,Qa.current)}function no(){Gl=$a.current,R(Qa),R($a)}var ro=re(null),io=null;function ao(e){var t=e.alternate;ie(uo,uo.current&1),ie(ro,e),io===null&&(t===null||Qa.current!==null||t.memoizedState!==null)&&(io=e)}function oo(e){ie(uo,uo.current),ie(ro,e),io===null&&(io=e)}function so(e){e.tag===22?(ie(uo,uo.current),ie(ro,e),io===null&&(io=e)):co(e)}function co(){ie(uo,uo.current),ie(ro,ro.current)}function lo(e){R(ro),io===e&&(io=null),R(uo)}var uo=re(0);function fo(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||cf(n)||lf(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var po=0,mo=null,ho=null,go=null,_o=!1,vo=!1,yo=!1,bo=0,xo=0,So=null,Co=0;function wo(){throw Error(o(321))}function To(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!xr(e[n],t[n]))return!1;return!0}function V(e,t,n,r,i,a){return po=a,mo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,P.H=e===null||e.memoizedState===null?Bs:W,yo=!1,a=n(r,i),yo=!1,vo&&(a=Eo(t,n,r,i)),H(e),a}function H(e){P.H=zs;var t=ho!==null&&ho.next!==null;if(po=0,go=ho=mo=null,_o=!1,xo=0,So=null,t)throw Error(o(300));e===null||tc||(e=e.dependencies,e!==null&&$i(e)&&(tc=!0))}function Eo(e,t,n,r){mo=e;var i=0;do{if(vo&&(So=null),xo=0,vo=!1,25<=i)throw Error(o(301));if(i+=1,go=ho=null,e.updateQueue!=null){var a=e.updateQueue;a.lastEffect=null,a.events=null,a.stores=null,a.memoCache!=null&&(a.memoCache.index=0)}P.H=Vs,a=t(n,r)}while(vo);return a}function Do(){var e=P.H,t=e.useState()[0];return t=typeof t.then==`function`?Po(t):t,e=e.useState()[0],(ho===null?null:ho.memoizedState)!==e&&(mo.flags|=1024),t}function Oo(){var e=bo!==0;return bo=0,e}function ko(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Ao(e){if(_o){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}_o=!1}po=0,go=ho=mo=null,vo=!1,xo=bo=0,So=null}function jo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return go===null?mo.memoizedState=go=e:go=go.next=e,go}function Mo(){if(ho===null){var e=mo.alternate;e=e===null?null:e.memoizedState}else e=ho.next;var t=go===null?mo.memoizedState:go.next;if(t!==null)go=t,ho=e;else{if(e===null)throw mo.alternate===null?Error(o(467)):Error(o(310));ho=e,e={memoizedState:ho.memoizedState,baseState:ho.baseState,baseQueue:ho.baseQueue,queue:ho.queue,next:null},go===null?mo.memoizedState=go=e:go=go.next=e}return go}function No(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Po(e){var t=xo;return xo+=1,So===null&&(So=[]),e=Da(So,e,t),t=mo,(go===null?t.memoizedState:go.next)===null&&(t=t.alternate,P.H=t===null||t.memoizedState===null?Bs:W),e}function Fo(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return Po(e);if(e.$$typeof===S)return ta(e)}throw Error(o(438,String(e)))}function Io(e){var t=null,n=mo.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=mo.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=No(),mo.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=k;return t.index++,n}function Lo(e,t){return typeof t==`function`?t(e):t}function Ro(e){return zo(Mo(),ho,e)}function zo(e,t,n){var r=e.queue;if(r===null)throw Error(o(311));r.lastRenderedReducer=n;var i=e.baseQueue,a=r.pending;if(a!==null){if(i!==null){var s=i.next;i.next=a.next,a.next=s}t.baseQueue=i=a,r.pending=null}if(a=e.baseState,i===null)e.memoizedState=a;else{t=i.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(po&f)===f:(zl&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===fa&&(d=!0);else if((po&p)===p){u=u.next,p===fa&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=a):l=l.next=f,mo.lanes|=p,ql|=p;f=u.action,yo&&n(a,f),a=u.hasEagerState?u.eagerState:n(a,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=a):l=l.next=p,mo.lanes|=f,ql|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=a:l.next=c,!xr(a,e.memoizedState)&&(tc=!0,d&&(n=pa,n!==null)))throw n;e.memoizedState=a,e.baseState=s,e.baseQueue=l,r.lastRenderedState=a}return i===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Bo(e){var t=Mo(),n=t.queue;if(n===null)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,a=t.memoizedState;if(i!==null){n.pending=null;var s=i=i.next;do a=e(a,s.action),s=s.next;while(s!==i);xr(a,t.memoizedState)||(tc=!0),t.memoizedState=a,t.baseQueue===null&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function Vo(e,t,n){var r=mo,i=Mo(),a=Pi;if(a){if(n===void 0)throw Error(o(407));n=n()}else n=t();var s=!xr((ho||i).memoizedState,n);if(s&&(i.memoizedState=n,tc=!0),i=i.queue,fs(Wo.bind(null,r,i,e),[e]),i.getSnapshot!==t||s||go!==null&&go.memoizedState.tag&1){if(r.flags|=2048,ss(9,{destroy:void 0},Uo.bind(null,r,i,n,t),null),Ll===null)throw Error(o(349));a||po&127||Ho(r,t,n)}return n}function Ho(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=mo.updateQueue,t===null?(t=No(),mo.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Uo(e,t,n,r){t.value=n,t.getSnapshot=r,Go(t)&&Ko(e)}function Wo(e,t,n){return n(function(){Go(t)&&Ko(e)})}function Go(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!xr(e,n)}catch{return!0}}function Ko(e){var t=ni(e,2);t!==null&&_u(t,e,2)}function qo(e){var t=jo();if(typeof e==`function`){var n=e;if(e=n(),yo){Ie(!0);try{n()}finally{Ie(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lo,lastRenderedState:e},t}function Jo(e,t,n,r){return e.baseState=n,zo(e,ho,typeof r==`function`?r:Lo)}function Yo(e,t,n,r,i){if(Ls(e))throw Error(o(485));if(e=t.action,e!==null){var a={payload:i,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){a.listeners.push(e)}};P.T===null?a.isTransition=!1:n(!0),r(a),n=t.pending,n===null?(a.next=t.pending=a,Xo(t,a)):(a.next=n.next,t.pending=n.next=a)}}function Xo(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=P.T,o={};P.T=o;try{var s=n(i,r),c=P.S;c!==null&&c(o,s),Zo(e,t,s)}catch(n){$o(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),P.T=a}}else try{a=n(i,r),Zo(e,t,a)}catch(n){$o(e,t,n)}}function Zo(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){Qo(e,t,n)},function(n){return $o(e,t,n)}):Qo(e,t,n)}function Qo(e,t,n){t.status=`fulfilled`,t.value=n,es(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Xo(e,n)))}function $o(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,es(t),t=t.next;while(t!==r)}e.action=null}function es(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function ts(e,t){return t}function ns(e,t){if(Pi){var n=Ll.formState;if(n!==null){a:{var r=mo;if(Pi){if(Ni){b:{for(var i=Ni,a=Ii;i.nodeType!==8;){if(!a){i=null;break b}if(i=df(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Ni=df(i.nextSibling),r=i.data===`F!`;break a}}Ri(r)}r=!1}r&&(t=n[0])}}return n=jo(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ts,lastRenderedState:t},n.queue=r,n=Ps.bind(null,mo,r),r.dispatch=n,r=qo(!1),a=Is.bind(null,mo,!1,r.queue),r=jo(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Yo.bind(null,mo,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function rs(e){return is(Mo(),ho,e)}function is(e,t,n){if(t=zo(e,t,ts)[0],e=Ro(Lo)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=Po(t)}catch(e){throw e===Sa?wa:e}else r=t;t=Mo();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(mo.flags|=2048,ss(9,{destroy:void 0},as.bind(null,i,n),null)),[r,a,e]}function as(e,t){e.action=t}function os(e){var t=Mo(),n=ho;if(n!==null)return is(t,n,e);Mo(),t=t.memoizedState,n=Mo();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function ss(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=mo.updateQueue,t===null&&(t=No(),mo.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function cs(){return Mo().memoizedState}function ls(e,t,n,r){var i=jo();mo.flags|=e,i.memoizedState=ss(1|t,{destroy:void 0},n,r===void 0?null:r)}function us(e,t,n,r){var i=Mo();r=r===void 0?null:r;var a=i.memoizedState.inst;ho!==null&&r!==null&&To(r,ho.memoizedState.deps)?i.memoizedState=ss(t,a,n,r):(mo.flags|=e,i.memoizedState=ss(1|t,a,n,r))}function ds(e,t){ls(8390656,8,e,t)}function fs(e,t){us(2048,8,e,t)}function ps(e){mo.flags|=4;var t=mo.updateQueue;if(t===null)t=No(),mo.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function ms(e){var t=Mo().memoizedState;return ps({ref:t,nextImpl:e}),function(){if(Y&2)throw Error(o(440));return t.impl.apply(void 0,arguments)}}function hs(e,t){return us(4,2,e,t)}function gs(e,t){return us(4,4,e,t)}function _s(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function vs(e,t,n){n=n==null?null:n.concat([e]),us(4,4,_s.bind(null,t,e),n)}function ys(){}function bs(e,t){var n=Mo();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&To(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function xs(e,t){var n=Mo();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&To(t,r[1]))return r[0];if(r=e(),yo){Ie(!0);try{e()}finally{Ie(!1)}}return n.memoizedState=[r,t],r}function Ss(e,t,n){return n===void 0||po&1073741824&&!(zl&261930)?e.memoizedState=t:(e.memoizedState=n,e=gu(),mo.lanes|=e,ql|=e,n)}function Cs(e,t,n,r){return xr(n,t)?n:Qa.current===null?!(po&42)||po&1073741824&&!(zl&261930)?(tc=!0,e.memoizedState=n):(e=gu(),mo.lanes|=e,ql|=e,t):(e=Ss(e,n,r),xr(e,t)||(tc=!0),e)}function ws(e,t,n,r,i){var a=F.p;F.p=a!==0&&8>a?a:8;var o=P.T,s={};P.T=s,Is(e,!1,t,n);try{var c=i(),l=P.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Fs(e,t,ga(c,r),hu(e)):Fs(e,t,r,hu(e))}catch(n){Fs(e,t,{then:function(){},status:`rejected`,reason:n},hu())}finally{F.p=a,o!==null&&s.types!==null&&(o.types=s.types),P.T=o}}function Ts(){}function Es(e,t,n,r){if(e.tag!==5)throw Error(o(476));var i=Ds(e).queue;ws(e,i,t,I,n===null?Ts:function(){return Os(e),n(r)})}function Ds(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:I,baseState:I,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lo,lastRenderedState:I},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,{},hu())}function ks(){return ta(tp)}function As(){return Mo().memoizedState}function js(){return Mo().memoizedState}function Ms(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=hu();e=Ua(n);var r=Wa(t,e,n);r!==null&&(_u(r,t,n),Ga(r,t,n)),t={cache:ca()},e.payload=t;return}t=t.return}}function Ns(e,t,n){var r=hu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ls(e)?Rs(t,n):(n=ti(e,t,n,r),n!==null&&(_u(n,e,r),U(n,t,r)))}function Ps(e,t,n){Fs(e,t,n,hu())}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,xr(s,o))return ei(e,t,i,0),Ll===null&&$r(),!1}catch{}if(n=ti(e,t,i,r),n!==null)return _u(n,e,r),U(n,t,r),!0}return!1}function Is(e,t,n,r){if(r={lane:2,revertLane:fd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Ls(e)){if(t)throw Error(o(479))}else t=ti(e,n,r,2),t!==null&&_u(t,e,2)}function Ls(e){var t=e.alternate;return e===mo||t!==null&&t===mo}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 U(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,$e(e,n)}}var zs={readContext:ta,use:Fo,useCallback:wo,useContext:wo,useEffect:wo,useImperativeHandle:wo,useLayoutEffect:wo,useInsertionEffect:wo,useMemo:wo,useReducer:wo,useRef:wo,useState:wo,useDebugValue:wo,useDeferredValue:wo,useTransition:wo,useSyncExternalStore:wo,useId:wo,useHostTransitionStatus:wo,useFormState:wo,useActionState:wo,useOptimistic:wo,useMemoCache:wo,useCacheRefresh:wo};zs.useEffectEvent=wo;var Bs={readContext:ta,use:Fo,useCallback:function(e,t){return jo().memoizedState=[e,t===void 0?null:t],e},useContext:ta,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=jo();t=t===void 0?null:t;var r=e();if(yo){Ie(!0);try{e()}finally{Ie(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=jo();if(n!==void 0){var i=n(t);if(yo){Ie(!0);try{n(t)}finally{Ie(!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,mo,e),[r.memoizedState,e]},useRef:function(e){var t=jo();return e={current:e},t.memoizedState=e},useState:function(e){e=qo(e);var t=e.queue,n=Ps.bind(null,mo,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ys,useDeferredValue:function(e,t){return Ss(jo(),e,t)},useTransition:function(){var e=qo(!1);return e=ws.bind(null,mo,e.queue,!0,!1),jo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=mo,i=jo();if(Pi){if(n===void 0)throw Error(o(407));n=n()}else{if(n=t(),Ll===null)throw Error(o(349));zl&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=jo(),t=Ll.identifierPrefix;if(Pi){var n=Ei,r=Ti;n=(r&~(1<<32-Le(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=bo++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=Co++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:ks,useFormState:ns,useActionState:ns,useOptimistic:function(e){var t=jo();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Is.bind(null,mo,!0,n),n.dispatch=t,[e,t]},useMemoCache:Io,useCacheRefresh:function(){return jo().memoizedState=Ms.bind(null,mo)},useEffectEvent:function(e){var t=jo(),n={impl:e};return t.memoizedState=n,function(){if(Y&2)throw Error(o(440));return n.impl.apply(void 0,arguments)}}},W={readContext:ta,use:Fo,useCallback:bs,useContext:ta,useEffect:fs,useImperativeHandle:vs,useInsertionEffect:hs,useLayoutEffect:gs,useMemo:xs,useReducer:Ro,useRef:cs,useState:function(){return Ro(Lo)},useDebugValue:ys,useDeferredValue:function(e,t){return Cs(Mo(),ho.memoizedState,e,t)},useTransition:function(){var e=Ro(Lo)[0],t=Mo().memoizedState;return[typeof e==`boolean`?e:Po(e),t]},useSyncExternalStore:Vo,useId:As,useHostTransitionStatus:ks,useFormState:rs,useActionState:rs,useOptimistic:function(e,t){return Jo(Mo(),ho,e,t)},useMemoCache:Io,useCacheRefresh:js};W.useEffectEvent=ms;var Vs={readContext:ta,use:Fo,useCallback:bs,useContext:ta,useEffect:fs,useImperativeHandle:vs,useInsertionEffect:hs,useLayoutEffect:gs,useMemo:xs,useReducer:Bo,useRef:cs,useState:function(){return Bo(Lo)},useDebugValue:ys,useDeferredValue:function(e,t){var n=Mo();return ho===null?Ss(n,e,t):Cs(n,ho.memoizedState,e,t)},useTransition:function(){var e=Bo(Lo)[0],t=Mo().memoizedState;return[typeof e==`boolean`?e:Po(e),t]},useSyncExternalStore:Vo,useId:As,useHostTransitionStatus:ks,useFormState:os,useActionState:os,useOptimistic:function(e,t){var n=Mo();return ho===null?(n.baseState=e,[e,n.queue.dispatch]):Jo(n,ho,e,t)},useMemoCache:Io,useCacheRefresh:js};Vs.useEffectEvent=ms;function Hs(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:m({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Us={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=hu(),i=Ua(r);i.payload=t,n!=null&&(i.callback=n),t=Wa(e,i,r),t!==null&&(_u(t,e,r),Ga(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=hu(),i=Ua(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Wa(e,i,r),t!==null&&(_u(t,e,r),Ga(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=hu(),r=Ua(n);r.tag=2,t!=null&&(r.callback=t),t=Wa(e,r,n),t!==null&&(_u(t,e,n),Ga(t,e,n))}};function Ws(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!Sr(n,r)||!Sr(i,a):!0}function Gs(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Us.enqueueReplaceState(t,t.state,null)}function Ks(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=m({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function qs(e){Yr(e)}function Js(e){console.error(e)}function G(e){Yr(e)}function Ys(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function Xs(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Zs(e,t,n){return n=Ua(n),n.tag=3,n.payload={element:null},n.callback=function(){Ys(e,t)},n}function K(e){return e=Ua(e),e.tag=3,e}function Qs(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){Xs(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){Xs(t,n,r),typeof i!=`function`&&(au===null?au=new Set([this]):au.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function $s(e,t,n,r,i){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&Qi(t,n,i,!0),n=ro.current,n!==null){switch(n.tag){case 31:case 13:return io===null?ku():n.alternate===null&&Kl===0&&(Kl=3),n.flags&=-257,n.flags|=65536,n.lanes=i,r===Ta?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),Ku(e,r,i)),!1;case 22:return n.flags|=65536,r===Ta?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),Ku(e,r,i)),!1}throw Error(o(435,n.tag))}return Ku(e,r,i),ku(),!1}if(Pi)return t=ro.current,t===null?(r!==Li&&(t=Error(o(423),{cause:r}),Wi(_i(t,n))),e=e.current.alternate,e.flags|=65536,i&=-i,e.lanes|=i,r=_i(r,n),i=Zs(e.stateNode,r,i),Ka(e,i),Kl!==4&&(Kl=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=i,r!==Li&&(e=Error(o(422),{cause:r}),Wi(_i(e,n)))),!1;var a=Error(o(520),{cause:r});if(a=_i(a,n),Ql===null?Ql=[a]:Ql.push(a),Kl!==4&&(Kl=2),t===null)return!0;r=_i(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=i&-i,n.lanes|=e,e=Zs(n.stateNode,r,e),Ka(n,e),!1;case 1:if(t=n.type,a=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||a!==null&&typeof a.componentDidCatch==`function`&&(au===null||!au.has(a))))return n.flags|=65536,i&=-i,n.lanes|=i,i=K(i),Qs(i,e,n,r),Ka(n,i),!1}n=n.return}while(n!==null);return!1}var ec=Error(o(461)),tc=!1;function nc(e,t,n,r){t.child=e===null?za(t,null,n,r):Ra(t,e.child,n,r)}function rc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return ea(t),r=V(e,t,n,o,a,i),s=Oo(),e!==null&&!tc?(ko(e,t,i),Ec(e,t,i)):(Pi&&s&&ki(t),t.flags|=1,nc(e,t,r,i),t.child)}function ic(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!ci(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,ac(e,t,a,r,i)):(e=di(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!J(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?Sr:n,n(o,r)&&e.ref===t.ref)return Ec(e,t,i)}return t.flags|=1,e=li(a,r),e.ref=t.ref,e.return=t,t.child=e}function ac(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(Sr(a,r)&&e.ref===t.ref)if(tc=!1,t.pendingProps=r=a,J(e,i))e.flags&131072&&(tc=!0);else return t.lanes=e.lanes,Ec(e,t,i)}return pc(e,t,n,r,i)}function oc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return cc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&ba(t,a===null?null:a.cachePool),a===null?to():eo(t,a),so(t);else return r=t.lanes=536870912,cc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&ba(t,null),to(),co(t)):(ba(t,a.cachePool),eo(t,a),co(t),t.memoizedState=null);return nc(e,t,i,n),t.child}function sc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function cc(e,t,n,r,i){var a=ya();return a=a===null?null:{parent:sa._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&ba(t,null),to(),so(t),e!==null&&Qi(e,t,r,!0),t.childLanes=i,null}function lc(e,t){return t=xc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function uc(e,t,n){return Ra(t,e.child,null,n),e=lc(t,t.pendingProps),e.flags|=2,lo(t),t.memoizedState=null,e}function dc(e,t,n){var r=t.pendingProps,i=(t.flags&128)!=0;if(t.flags&=-129,e===null){if(Pi){if(r.mode===`hidden`)return e=lc(t,r),t.lanes=536870912,sc(null,e);if(oo(t),(e=Ni)?(e=sf(e,Ii),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:wi===null?null:{id:Ti,overflow:Ei},retryLane:536870912,hydrationErrors:null},n=mi(e),n.return=t,t.child=n,Mi=t,Ni=null)):e=null,e===null)throw Ri(t);return t.lanes=536870912,null}return lc(t,r)}var a=e.memoizedState;if(a!==null){var s=a.dehydrated;if(oo(t),i)if(t.flags&256)t.flags&=-257,t=uc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(o(558));else if(tc||Qi(e,t,n,!1),i=(n&e.childLanes)!==0,tc||i){if(r=Ll,r!==null&&(s=et(r,n),s!==0&&s!==a.retryLane))throw a.retryLane=s,ni(e,s),_u(r,e,s),ec;ku(),t=uc(e,t,n)}else e=a.treeContext,Ni=df(s.nextSibling),Mi=t,Pi=!0,Fi=null,Ii=!1,e!==null&&ji(t,e),t=lc(t,r),t.flags|=4096;return t}return e=li(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function fc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(o(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function pc(e,t,n,r,i){return ea(t),n=V(e,t,n,r,void 0,i),r=Oo(),e!==null&&!tc?(ko(e,t,i),Ec(e,t,i)):(Pi&&r&&ki(t),t.flags|=1,nc(e,t,n,i),t.child)}function mc(e,t,n,r,i,a){return ea(t),t.updateQueue=null,n=Eo(t,r,n,i),H(e),r=Oo(),e!==null&&!tc?(ko(e,t,a),Ec(e,t,a)):(Pi&&r&&ki(t),t.flags|=1,nc(e,t,n,a),t.child)}function hc(e,t,n,r,i){if(ea(t),t.stateNode===null){var a=ai,o=n.contextType;typeof o==`object`&&o&&(a=ta(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Us,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Va(t),o=n.contextType,a.context=typeof o==`object`&&o?ta(o):ai,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Hs(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&Us.enqueueReplaceState(a,a.state,null),Ya(t,r,a,i),Ja(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=Ks(n,s);a.props=c;var l=a.context,u=n.contextType;o=ai,typeof u==`object`&&u&&(o=ta(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Gs(t,a,r,o),Ba=!1;var f=t.memoizedState;a.state=f,Ya(t,r,a,i),Ja(),l=t.memoizedState,s||f!==l||Ba?(typeof d==`function`&&(Hs(t,n,d,r),l=t.memoizedState),(c=Ba||Ws(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Ha(e,t),o=t.memoizedProps,u=Ks(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=ai,typeof l==`object`&&l&&(c=ta(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Gs(t,a,r,c),Ba=!1,f=t.memoizedState,a.state=f,Ya(t,r,a,i),Ja();var p=t.memoizedState;o!==d||f!==p||Ba||e!==null&&e.dependencies!==null&&$i(e.dependencies)?(typeof s==`function`&&(Hs(t,n,s,r),p=t.memoizedState),(u=Ba||Ws(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&$i(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,fc(e,t),r=(t.flags&128)!=0,a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Ra(t,e.child,null,i),t.child=Ra(t,null,n,i)):nc(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Ec(e,t,i),e}function gc(e,t,n,r){return Hi(),t.flags|=256,nc(e,t,n,r),t.child}var q={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function _c(e){return{baseLanes:e,cachePool:xa()}}function vc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=Xl),e}function yc(e,t,n){var r=t.pendingProps,i=!1,a=(t.flags&128)!=0,s;if((s=a)||(s=e!==null&&e.memoizedState===null?!1:(uo.current&2)!=0),s&&(i=!0,t.flags&=-129),s=(t.flags&32)!=0,t.flags&=-33,e===null){if(Pi){if(i?ao(t):co(t),(e=Ni)?(e=sf(e,Ii),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:wi===null?null:{id:Ti,overflow:Ei},retryLane:536870912,hydrationErrors:null},n=mi(e),n.return=t,t.child=n,Mi=t,Ni=null)):e=null,e===null)throw Ri(t);return lf(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,i?(co(t),i=t.mode,c=xc({mode:`hidden`,children:c},i),r=fi(r,i,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=_c(n),r.childLanes=vc(e,s,n),t.memoizedState=q,sc(null,r)):(ao(t),bc(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(a)t.flags&256?(ao(t),t.flags&=-257,t=Sc(e,t,n)):t.memoizedState===null?(co(t),c=r.fallback,i=t.mode,r=xc({mode:`visible`,children:r.children},i),c=fi(c,i,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,Ra(t,e.child,null,n),r=t.child,r.memoizedState=_c(n),r.childLanes=vc(e,s,n),t.memoizedState=q,t=sc(null,r)):(co(t),t.child=e.child,t.flags|=128,t=null);else if(ao(t),lf(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(o(419)),r.stack=``,r.digest=s,Wi({value:r,source:null,stack:null}),t=Sc(e,t,n)}else if(tc||Qi(e,t,n,!1),s=(n&e.childLanes)!==0,tc||s){if(s=Ll,s!==null&&(r=et(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,ni(e,r),_u(s,e,r),ec;cf(c)||ku(),t=Sc(e,t,n)}else cf(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Ni=df(c.nextSibling),Mi=t,Pi=!0,Fi=null,Ii=!1,e!==null&&ji(t,e),t=bc(t,r.children),t.flags|=4096);return t}return i?(co(t),c=r.fallback,i=t.mode,l=e.child,u=l.sibling,r=li(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=fi(c,i,n,null),c.flags|=2):c=li(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,sc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=_c(n):(i=c.cachePool,i===null?i=xa():(l=sa._currentValue,i=i.parent===l?i:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:i}),r.memoizedState=c,r.childLanes=vc(e,s,n),t.memoizedState=q,sc(e.child,r)):(ao(t),n=e.child,e=n.sibling,n=li(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function bc(e,t){return t=xc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function xc(e,t){return e=si(22,e,null,t),e.lanes=0,e}function Sc(e,t,n){return Ra(t,e.child,null,n),e=bc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Cc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Xi(e.return,t,n)}function wc(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function Tc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=uo.current,s=(o&2)!=0;if(s?(o=o&1|2,t.flags|=128):o&=1,ie(uo,o),nc(e,t,r,n),r=Pi?xi:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Cc(e,n,t);else if(e.tag===19)Cc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&fo(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),wc(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&fo(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}wc(t,!0,n,null,a,r);break;case`together`:wc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Ec(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),ql|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(Qi(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(o(153));if(t.child!==null){for(e=t.child,n=li(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=li(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function J(e,t){return(e.lanes&t)===0?(e=e.dependencies,!!(e!==null&&$i(e))):!0}function Dc(e,t,n){switch(t.tag){case 3:ce(t,t.stateNode.containerInfo),Ji(t,sa,e.memoizedState.cache),Hi();break;case 27:case 5:ue(t);break;case 4:ce(t,t.stateNode.containerInfo);break;case 10:Ji(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,oo(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(ao(t),e=Ec(e,t,n),e===null?null:e.sibling):yc(e,t,n):(ao(t),t.flags|=128,null);ao(t);break;case 19:var i=(e.flags&128)!=0;if(r=(n&t.childLanes)!==0,r||=(Qi(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return Tc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),ie(uo,uo.current),r)break;return null;case 22:return t.lanes=0,oc(e,t,n,t.pendingProps);case 24:Ji(t,sa,e.memoizedState.cache)}return Ec(e,t,n)}function Oc(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)tc=!0;else{if(!J(e,n)&&!(t.flags&128))return tc=!1,Dc(e,t,n);tc=!!(e.flags&131072)}else tc=!1,Pi&&t.flags&1048576&&Oi(t,xi,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=Oa(t.elementType),t.type=e,typeof e==`function`)ci(e)?(r=Ks(e,r),t.tag=1,t=hc(null,t,e,r,n)):(t.tag=0,t=pc(null,t,e,r,n));else{if(e!=null){var i=e.$$typeof;if(i===C){t.tag=11,t=rc(null,t,e,r,n);break a}else if(i===ee){t.tag=14,t=ic(null,t,e,r,n);break a}}throw t=M(e)||e,Error(o(306,t,``))}}return t;case 0:return pc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,i=Ks(r,t.pendingProps),hc(e,t,r,i,n);case 3:a:{if(ce(t,t.stateNode.containerInfo),e===null)throw Error(o(387));r=t.pendingProps;var a=t.memoizedState;i=a.element,Ha(e,t),Ya(t,r,null,n);var s=t.memoizedState;if(r=s.cache,Ji(t,sa,r),r!==a.cache&&Zi(t,[sa],n,!0),Ja(),r=s.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){t=gc(e,t,r,n);break a}else if(r!==i){i=_i(Error(o(424)),t),Wi(i),t=gc(e,t,r,n);break a}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(Ni=df(e.firstChild),Mi=t,Pi=!0,Fi=null,Ii=!0,n=za(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Hi(),r===i){t=Ec(e,t,n);break a}nc(e,t,r,n)}t=t.child}return t;case 26:return fc(e,t),e===null?(n=Mf(t.type,null,t.pendingProps,null))?t.memoizedState=n:Pi||(n=t.type,e=t.pendingProps,r=Ud(z.current).createElement(n),r[ot]=t,r[st]=e,Ld(r,n,e),yt(r),t.stateNode=r):t.memoizedState=Mf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return ue(t),e===null&&Pi&&(r=t.stateNode=hf(t.type,t.pendingProps,z.current),Mi=t,Ii=!0,i=Ni,ef(t.type)?(ff=i,Ni=df(r.firstChild)):Ni=i),nc(e,t,t.pendingProps.children,n),fc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Pi&&((i=r=Ni)&&(r=af(r,t.type,t.pendingProps,Ii),r===null?i=!1:(t.stateNode=r,Mi=t,Ni=df(r.firstChild),Ii=!1,i=!0)),i||Ri(t)),ue(t),i=t.type,a=t.pendingProps,s=e===null?null:e.memoizedProps,r=a.children,Kd(i,a)?r=null:s!==null&&Kd(i,s)&&(t.flags|=32),t.memoizedState!==null&&(i=V(e,t,Do,null,null,n),tp._currentValue=i),fc(e,t),nc(e,t,r,n),t.child;case 6:return e===null&&Pi&&((e=n=Ni)&&(n=of(n,t.pendingProps,Ii),n===null?e=!1:(t.stateNode=n,Mi=t,Ni=null,e=!0)),e||Ri(t)),null;case 13:return yc(e,t,n);case 4:return ce(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ra(t,null,r,n):nc(e,t,r,n),t.child;case 11:return rc(e,t,t.type,t.pendingProps,n);case 7:return nc(e,t,t.pendingProps,n),t.child;case 8:return nc(e,t,t.pendingProps.children,n),t.child;case 12:return nc(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,Ji(t,t.type,r.value),nc(e,t,r.children,n),t.child;case 9:return i=t.type._context,r=t.pendingProps.children,ea(t),i=ta(i),r=r(i),t.flags|=1,nc(e,t,r,n),t.child;case 14:return ic(e,t,t.type,t.pendingProps,n);case 15:return ac(e,t,t.type,t.pendingProps,n);case 19:return Tc(e,t,n);case 31:return dc(e,t,n);case 22:return oc(e,t,n,t.pendingProps);case 24:return ea(t),r=ta(sa),e===null?(i=ya(),i===null&&(i=Ll,a=ca(),i.pooledCache=a,a.refCount++,a!==null&&(i.pooledCacheLanes|=n),i=a),t.memoizedState={parent:r,cache:i},Va(t),Ji(t,sa,i)):((e.lanes&n)!==0&&(Ha(e,t),Ya(t,null,null,n),Ja()),i=e.memoizedState,a=t.memoizedState,i.parent===r?(r=a.cache,Ji(t,sa,r),r!==i.cache&&Zi(t,[sa],n,!0)):(i={parent:r,cache:r},t.memoizedState=i,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=i),Ji(t,sa,r))),nc(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(o(156,t.tag))}function kc(e){e.flags|=4}function Ac(e,t,n,r,i){if((t=(e.mode&32)!=0)&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i)if(e.stateNode.complete)e.flags|=8192;else if(Eu())e.flags|=8192;else throw ka=Ta,Ca}else e.flags&=-16777217}function jc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!qf(t))if(Eu())e.flags|=8192;else throw ka=Ta,Ca}function Mc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:Je(),e.lanes|=t,Zl|=t)}function Nc(e,t){if(!Pi)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Pc(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Fc(e,t,n){var r=t.pendingProps;switch(Ai(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Pc(t),null;case 1:return Pc(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Yi(sa),le(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Vi(t)?kc(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ui())),Pc(t),null;case 26:var i=t.type,a=t.memoizedState;return e===null?(kc(t),a===null?(Pc(t),Ac(t,i,null,r,n)):(Pc(t),jc(t,a))):a?a===e.memoizedState?(Pc(t),t.flags&=-16777217):(kc(t),Pc(t),jc(t,a)):(e=e.memoizedProps,e!==r&&kc(t),Pc(t),Ac(t,i,e,r,n)),null;case 27:if(de(t),n=z.current,i=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&kc(t);else{if(!r){if(t.stateNode===null)throw Error(o(166));return Pc(t),null}e=ae.current,Vi(t)?zi(t,e):(e=hf(i,r,n),t.stateNode=e,kc(t))}return Pc(t),null;case 5:if(de(t),i=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&kc(t);else{if(!r){if(t.stateNode===null)throw Error(o(166));return Pc(t),null}if(a=ae.current,Vi(t))zi(t,a);else{var s=Ud(z.current);switch(a){case 1:a=s.createElementNS(`http://www.w3.org/2000/svg`,i);break;case 2:a=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,i);break;default:switch(i){case`svg`:a=s.createElementNS(`http://www.w3.org/2000/svg`,i);break;case`math`:a=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,i);break;case`script`:a=s.createElement(`div`),a.innerHTML=`<script><\/script>`,a=a.removeChild(a.firstChild);break;case`select`:a=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}a[ot]=t,a[st]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)a.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=a;a:switch(Ld(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&&kc(t)}}return Pc(t),Ac(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&kc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(o(166));if(e=z.current,Vi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=Mi,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[ot]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Pd(e.nodeValue,n)),e||Ri(t,!0)}else e=Ud(e).createTextNode(r),e[ot]=t,t.stateNode=e}return Pc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Vi(t),n!==null){if(e===null){if(!r)throw Error(o(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(o(557));e[ot]=t}else Hi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Pc(t),e=!1}else n=Ui(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(lo(t),t):(lo(t),null);if(t.flags&128)throw Error(o(558))}return Pc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=Vi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(o(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(o(317));i[ot]=t}else Hi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Pc(t),i=!1}else i=Ui(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(lo(t),t):(lo(t),null)}return lo(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),Mc(t,t.updateQueue),Pc(t),null);case 4:return le(),e===null&&wd(t.stateNode.containerInfo),Pc(t),null;case 10:return Yi(t.type),Pc(t),null;case 19:if(R(uo),r=t.memoizedState,r===null)return Pc(t),null;if(i=(t.flags&128)!=0,a=r.rendering,a===null)if(i)Nc(r,!1);else{if(Kl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(a=fo(e),a!==null){for(t.flags|=128,Nc(r,!1),e=a.updateQueue,t.updateQueue=e,Mc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ui(n,e),n=n.sibling;return ie(uo,uo.current&1|2),Pi&&Di(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Te()>ru&&(t.flags|=128,i=!0,Nc(r,!1),t.lanes=4194304)}else{if(!i)if(e=fo(a),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Mc(t,e),Nc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!a.alternate&&!Pi)return Pc(t),null}else 2*Te()-r.renderingStartTime>ru&&n!==536870912&&(t.flags|=128,i=!0,Nc(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?(Pc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Te(),e.sibling=null,n=uo.current,ie(uo,i?n&1|2:n&1),Pi&&Di(t,r.treeForkCount),e);case 22:case 23:return lo(t),no(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Pc(t),t.subtreeFlags&6&&(t.flags|=8192)):Pc(t),n=t.updateQueue,n!==null&&Mc(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&&R(va),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Yi(sa),Pc(t),null;case 25:return null;case 30:return null}throw Error(o(156,t.tag))}function Ic(e,t){switch(Ai(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Yi(sa),le(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return de(t),null;case 31:if(t.memoizedState!==null){if(lo(t),t.alternate===null)throw Error(o(340));Hi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(lo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));Hi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return R(uo),null;case 4:return le(),null;case 10:return Yi(t.type),null;case 22:case 23:return lo(t),no(),e!==null&&R(va),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Yi(sa),null;case 25:return null;default:return null}}function Lc(e,t){switch(Ai(t),t.tag){case 3:Yi(sa),le();break;case 26:case 27:case 5:de(t);break;case 4:le();break;case 31:t.memoizedState!==null&&lo(t);break;case 13:lo(t);break;case 19:R(uo);break;case 10:Yi(t.type);break;case 22:case 23:lo(t),no(),e!==null&&R(va);break;case 24:Yi(sa)}}function Rc(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 zc(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 Bc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Za(t,n)}catch(t){Z(e,e.return,t)}}}function Vc(e,t,n){n.props=Ks(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function Hc(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 Uc(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 Wc(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 Gc(e,t,n){try{var r=e.stateNode;Rd(r,e.type,n,t),r[st]=t}catch(t){Z(e,e.return,t)}}function Kc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&ef(e.type)||e.tag===4}function qc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Kc(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&&ef(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 Jc(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=$t));else if(r!==4&&(r===27&&ef(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Jc(e,t,n),e=e.sibling;e!==null;)Jc(e,t,n),e=e.sibling}function Yc(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&&ef(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Yc(e,t,n),e=e.sibling;e!==null;)Yc(e,t,n),e=e.sibling}function Xc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Ld(t,r,n),t[ot]=e,t[st]=n}catch(t){Z(e,e.return,t)}}var Zc=!1,Qc=!1,$c=!1,el=typeof WeakSet==`function`?WeakSet:Set,tl=null;function nl(e,t){if(e=e.containerInfo,Vd=up,e=Er(e),Dr(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 s=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=s+i),f!==a||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=s),p===a&&++d===r&&(l=s),(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(Hd={focusedElem:e,selectionRange:n},up=!1,tl=t;tl!==null;)if(t=tl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,tl=e;else for(;tl!==null;){switch(t=tl,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<e.length;n++)i=e[n],i.ref.impl=i.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&a!==null){e=void 0,n=t,i=a.memoizedProps,a=a.memoizedState,r=n.stateNode;try{var h=Ks(n.type,i);e=r.getSnapshotBeforeUpdate(h,a),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){Z(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)rf(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:rf(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(o(163))}if(e=t.sibling,e!==null){e.return=t.return,tl=e;break}tl=t.return}}function rl(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:vl(e,n),r&4&&Rc(5,n);break;case 1:if(vl(e,n),r&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){Z(n,n.return,e)}else{var i=Ks(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Z(n,n.return,e)}}r&64&&Bc(n),r&512&&Hc(n,n.return);break;case 3:if(vl(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{Za(e,t)}catch(e){Z(n,n.return,e)}}break;case 27:t===null&&r&4&&Xc(n);case 26:case 5:vl(e,n),t===null&&r&4&&Wc(n),r&512&&Hc(n,n.return);break;case 12:vl(e,n);break;case 31:vl(e,n),r&4&&ll(e,n);break;case 13:vl(e,n),r&4&&ul(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Yu.bind(null,n),uf(e,n))));break;case 22:if(r=n.memoizedState!==null||Zc,!r){t=t!==null&&t.memoizedState!==null||Qc,i=Zc;var a=Qc;Zc=r,(Qc=t)&&!a?bl(e,n,(n.subtreeFlags&8772)!=0):vl(e,n),Zc=i,Qc=a}break;case 30:break;default:vl(e,n)}}function il(e){var t=e.alternate;t!==null&&(e.alternate=null,il(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&mt(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var al=null,ol=!1;function sl(e,t,n){for(n=n.child;n!==null;)cl(e,t,n),n=n.sibling}function cl(e,t,n){if(Fe&&typeof Fe.onCommitFiberUnmount==`function`)try{Fe.onCommitFiberUnmount(Pe,n)}catch{}switch(n.tag){case 26:Qc||Uc(n,t),sl(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:Qc||Uc(n,t);var r=al,i=ol;ef(n.type)&&(al=n.stateNode,ol=!1),sl(e,t,n),gf(n.stateNode),al=r,ol=i;break;case 5:Qc||Uc(n,t);case 6:if(r=al,i=ol,al=null,sl(e,t,n),al=r,ol=i,al!==null)if(ol)try{(al.nodeType===9?al.body:al.nodeName===`HTML`?al.ownerDocument.body:al).removeChild(n.stateNode)}catch(e){Z(n,t,e)}else try{al.removeChild(n.stateNode)}catch(e){Z(n,t,e)}break;case 18:al!==null&&(ol?(e=al,tf(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Ip(e)):tf(al,n.stateNode));break;case 4:r=al,i=ol,al=n.stateNode.containerInfo,ol=!0,sl(e,t,n),al=r,ol=i;break;case 0:case 11:case 14:case 15:zc(2,n,t),Qc||zc(4,n,t),sl(e,t,n);break;case 1:Qc||(Uc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Vc(n,t,r)),sl(e,t,n);break;case 21:sl(e,t,n);break;case 22:Qc=(r=Qc)||n.memoizedState!==null,sl(e,t,n),Qc=r;break;default:sl(e,t,n)}}function ll(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Ip(e)}catch(e){Z(t,t.return,e)}}}function ul(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Ip(e)}catch(e){Z(t,t.return,e)}}function dl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new el),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new el),t;default:throw Error(o(435,e.tag))}}function fl(e,t){var n=dl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Xu.bind(null,e,t);t.then(r,r)}})}function pl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var i=n[r],a=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(ef(c.type)){al=c.stateNode,ol=!1;break a}break;case 5:al=c.stateNode,ol=!1;break a;case 3:case 4:al=c.stateNode.containerInfo,ol=!0;break a}c=c.return}if(al===null)throw Error(o(160));cl(a,s,i),al=null,ol=!1,a=i.alternate,a!==null&&(a.return=null),i.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)hl(t,e),t=t.sibling}var ml=null;function hl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:pl(t,e),gl(e),r&4&&(zc(3,e,e.return),Rc(3,e),zc(5,e,e.return));break;case 1:pl(t,e),gl(e),r&512&&(Qc||n===null||Uc(n,n.return)),r&64&&Zc&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var i=ml;if(pl(t,e),gl(e),r&512&&(Qc||n===null||Uc(n,n.return)),r&4){var a=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null)if(r===null)if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,i=i.ownerDocument||i;b:switch(r){case`title`:a=i.getElementsByTagName(`title`)[0],(!a||a[pt]||a[ot]||a.namespaceURI===`http://www.w3.org/2000/svg`||a.hasAttribute(`itemprop`))&&(a=i.createElement(r),i.head.insertBefore(a,i.querySelector(`head > title`))),Ld(a,r,n),a[ot]=e,yt(a),r=a;break a;case`link`:var s=Wf(`link`,`href`,i).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(a=s[c],a.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&a.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&a.getAttribute(`title`)===(n.title==null?null:n.title)&&a.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}a=i.createElement(r),Ld(a,r,n),i.head.appendChild(a);break;case`meta`:if(s=Wf(`meta`,`content`,i).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(a=s[c],a.getAttribute(`content`)===(n.content==null?null:``+n.content)&&a.getAttribute(`name`)===(n.name==null?null:n.name)&&a.getAttribute(`property`)===(n.property==null?null:n.property)&&a.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&a.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}a=i.createElement(r),Ld(a,r,n),i.head.appendChild(a);break;default:throw Error(o(468,r))}a[ot]=e,yt(a),r=a}e.stateNode=r}else Gf(i,e.type,e.stateNode);else e.stateNode=zf(i,r,e.memoizedProps);else a===r?r===null&&e.stateNode!==null&&Gc(e,e.memoizedProps,n.memoizedProps):(a===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):a.count--,r===null?Gf(i,e.type,e.stateNode):zf(i,r,e.memoizedProps))}break;case 27:pl(t,e),gl(e),r&512&&(Qc||n===null||Uc(n,n.return)),n!==null&&r&4&&Gc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(pl(t,e),gl(e),r&512&&(Qc||n===null||Uc(n,n.return)),e.flags&32){i=e.stateNode;try{Gt(i,``)}catch(t){Z(e,e.return,t)}}r&4&&e.stateNode!=null&&(i=e.memoizedProps,Gc(e,i,n===null?i:n.memoizedProps)),r&1024&&($c=!0);break;case 6:if(pl(t,e),gl(e),r&4){if(e.stateNode===null)throw Error(o(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){Z(e,e.return,t)}}break;case 3:if(Uf=null,i=ml,ml=yf(t.containerInfo),pl(t,e),ml=i,gl(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Ip(t.containerInfo)}catch(t){Z(e,e.return,t)}$c&&($c=!1,_l(e));break;case 4:r=ml,ml=yf(e.stateNode.containerInfo),pl(t,e),gl(e),ml=r;break;case 12:pl(t,e),gl(e);break;case 31:pl(t,e),gl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,fl(e,r)));break;case 13:pl(t,e),gl(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(tu=Te()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,fl(e,r)));break;case 22:i=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=Zc,d=Qc;if(Zc=u||i,Qc=d||l,pl(t,e),Qc=d,Zc=u,gl(e),r&8192)a:for(t=e.stateNode,t._visibility=i?t._visibility&-2:t._visibility|1,i&&(n===null||l||Zc||Qc||yl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(a=l.stateNode,i)s=a.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){Z(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=i?``:l.memoizedProps}catch(e){Z(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;i?nf(m,!0):nf(l.stateNode,!1)}catch(e){Z(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,fl(e,n))));break;case 19:pl(t,e),gl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,fl(e,r)));break;case 30:break;case 21:break;default:pl(t,e),gl(e)}}function gl(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(Kc(r)){n=r;break}r=r.return}if(n==null)throw Error(o(160));switch(n.tag){case 27:var i=n.stateNode;Yc(e,qc(e),i);break;case 5:var a=n.stateNode;n.flags&32&&(Gt(a,``),n.flags&=-33),Yc(e,qc(e),a);break;case 3:case 4:var s=n.stateNode.containerInfo;Jc(e,qc(e),s);break;default:throw Error(o(161))}}catch(t){Z(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function _l(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;_l(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function vl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)rl(e,t.alternate,t),t=t.sibling}function yl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:zc(4,t,t.return),yl(t);break;case 1:Uc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&Vc(t,t.return,n),yl(t);break;case 27:gf(t.stateNode);case 26:case 5:Uc(t,t.return),yl(t);break;case 22:t.memoizedState===null&&yl(t);break;case 30:yl(t);break;default:yl(t)}e=e.sibling}}function bl(e,t,n){for(n&&=(t.subtreeFlags&8772)!=0,t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:bl(i,a,n),Rc(4,a);break;case 1:if(bl(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){Z(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)Xa(c[i],s)}catch(e){Z(r,r.return,e)}}n&&o&64&&Bc(a),Hc(a,a.return);break;case 27:Xc(a);case 26:case 5:bl(i,a,n),n&&r===null&&o&4&&Wc(a),Hc(a,a.return);break;case 12:bl(i,a,n);break;case 31:bl(i,a,n),n&&o&4&&ll(i,a);break;case 13:bl(i,a,n),n&&o&4&&ul(i,a);break;case 22:a.memoizedState===null&&bl(i,a,n),Hc(a,a.return);break;case 30:break;default:bl(i,a,n)}t=t.sibling}}function xl(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&la(n))}function Sl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&la(e))}function Cl(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)wl(e,t,n,r),t=t.sibling}function wl(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:Cl(e,t,n,r),i&2048&&Rc(9,t);break;case 1:Cl(e,t,n,r);break;case 3:Cl(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&la(e)));break;case 12:if(i&2048){Cl(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){Z(t,t.return,e)}}else Cl(e,t,n,r);break;case 31:Cl(e,t,n,r);break;case 13:Cl(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?Cl(e,t,n,r):(a._visibility|=2,Tl(e,t,n,r,(t.subtreeFlags&10256)!=0||!1)):a._visibility&2?Cl(e,t,n,r):El(e,t),i&2048&&xl(o,t);break;case 24:Cl(e,t,n,r),i&2048&&Sl(t.alternate,t);break;default:Cl(e,t,n,r)}}function Tl(e,t,n,r,i){for(i&&=(t.subtreeFlags&10256)!=0||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Tl(a,o,s,c,i),Rc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Tl(a,o,s,c,i)):u._visibility&2?Tl(a,o,s,c,i):El(a,o),i&&l&2048&&xl(o.alternate,o);break;case 24:Tl(a,o,s,c,i),i&&l&2048&&Sl(o.alternate,o);break;default:Tl(a,o,s,c,i)}t=t.sibling}}function El(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:El(n,r),i&2048&&xl(r.alternate,r);break;case 24:El(n,r),i&2048&&Sl(r.alternate,r);break;default:El(n,r)}t=t.sibling}}var Dl=8192;function Ol(e,t,n){if(e.subtreeFlags&Dl)for(e=e.child;e!==null;)kl(e,t,n),e=e.sibling}function kl(e,t,n){switch(e.tag){case 26:Ol(e,t,n),e.flags&Dl&&e.memoizedState!==null&&Jf(n,ml,e.memoizedState,e.memoizedProps);break;case 5:Ol(e,t,n);break;case 3:case 4:var r=ml;ml=yf(e.stateNode.containerInfo),Ol(e,t,n),ml=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Dl,Dl=16777216,Ol(e,t,n),Dl=r):Ol(e,t,n));break;default:Ol(e,t,n)}}function Al(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function jl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];tl=r,Pl(r,e)}Al(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Ml(e),e=e.sibling}function Ml(e){switch(e.tag){case 0:case 11:case 15:jl(e),e.flags&2048&&zc(9,e,e.return);break;case 3:jl(e);break;case 12:jl(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Nl(e)):jl(e);break;default:jl(e)}}function Nl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];tl=r,Pl(r,e)}Al(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:zc(8,t,t.return),Nl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Nl(t));break;default:Nl(t)}e=e.sibling}}function Pl(e,t){for(;tl!==null;){var n=tl;switch(n.tag){case 0:case 11:case 15:zc(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:la(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,tl=r;else a:for(n=e;tl!==null;){r=tl;var i=r.sibling,a=r.return;if(il(r),r===n){tl=null;break a}if(i!==null){i.return=a,tl=i;break a}tl=a}}}var Fl={getCacheForType:function(e){var t=ta(sa),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return ta(sa).controller.signal}},Il=typeof WeakMap==`function`?WeakMap:Map,Y=0,Ll=null,Rl=null,zl=0,Bl=0,Vl=null,Hl=!1,Ul=!1,Wl=!1,Gl=0,Kl=0,ql=0,Jl=0,Yl=0,Xl=0,Zl=0,Ql=null,$l=null,eu=!1,tu=0,nu=0,ru=1/0,iu=null,au=null,ou=0,su=null,cu=null,lu=0,uu=0,du=null,fu=null,pu=0,mu=null;function hu(){return Y&2&&zl!==0?zl&-zl:P.T===null?rt():fd()}function gu(){if(Xl===0)if(!(zl&536870912)||Pi){var e=He;He<<=1,!(He&3932160)&&(He=262144),Xl=e}else Xl=536870912;return e=ro.current,e!==null&&(e.flags|=32),Xl}function _u(e,t,n){(e===Ll&&(Bl===2||Bl===9)||e.cancelPendingCommit!==null)&&(wu(e,0),xu(e,zl,Xl,!1)),Xe(e,n),(!(Y&2)||e!==Ll)&&(e===Ll&&(!(Y&2)&&(Jl|=n),Kl===4&&xu(e,zl,Xl,!1)),id(e))}function vu(e,t,n){if(Y&6)throw Error(o(327));var r=!n&&(t&127)==0&&(t&e.expiredLanes)===0||Ke(e,t),i=r?Mu(e,t):Au(e,t,!0),a=r;do{if(i===0){Ul&&!r&&xu(e,t,0,!1);break}else{if(n=e.current.alternate,a&&!bu(n)){i=Au(e,t,!1),a=!1;continue}if(i===2){if(a=t,e.errorRecoveryDisabledLanes&a)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;i=Ql;var l=c.current.memoizedState.isDehydrated;if(l&&(wu(c,s).flags|=256),s=Au(c,s,!1),s!==2){if(Wl&&!l){c.errorRecoveryDisabledLanes|=a,Jl|=a,i=4;break a}a=$l,$l=i,a!==null&&($l===null?$l=a:$l.push.apply($l,a))}i=s}if(a=!1,i!==2)continue}}if(i===1){wu(e,0),xu(e,t,0,!0);break}a:{switch(r=e,a=i,a){case 0:case 1:throw Error(o(345));case 4:if((t&4194048)!==t)break;case 6:xu(r,t,Xl,!Hl);break a;case 2:$l=null;break;case 3:case 5:break;default:throw Error(o(329))}if((t&62914560)===t&&(i=tu+300-Te(),10<i)){if(xu(r,t,Xl,!Hl),Ge(r,0,!0)!==0)break a;lu=t,r.timeoutHandle=Yd(yu.bind(null,r,n,$l,iu,eu,t,Xl,Jl,Zl,Hl,a,`Throttled`,-0,0),i);break a}yu(r,n,$l,iu,eu,t,Xl,Jl,Zl,Hl,a,null,-0,0)}}break}while(1);id(e)}function yu(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:$t},kl(t,a,d);var m=(a&62914560)===a?tu-Te():(a&4194048)===a?nu-Te():0;if(m=Xf(d,m),m!==null){lu=a,e.cancelPendingCommit=m(zu.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),xu(e,a,o,!l);return}}zu(e,t,a,n,r,i,o,s,c)}function bu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!xr(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function xu(e,t,n,r){t&=~Yl,t&=~Jl,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Le(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&Qe(e,n,t)}function Su(){return Y&6?!0:(ad(0,!1),!1)}function Cu(){if(Rl!==null){if(Bl===0)var e=Rl.return;else e=Rl,qi=Ki=null,Ao(e),Ma=null,Na=0,e=Rl;for(;e!==null;)Lc(e.alternate,e),e=e.return;Rl=null}}function wu(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,Xd(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),lu=0,Cu(),Ll=e,Rl=n=li(e.current,null),zl=t,Bl=0,Vl=null,Hl=!1,Ul=Ke(e,t),Wl=!1,Zl=Xl=Yl=Jl=ql=Kl=0,$l=Ql=null,eu=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Le(r),a=1<<i;t|=e[i],r&=~a}return Gl=t,$r(),n}function Tu(e,t){mo=null,P.H=zs,t===Sa||t===wa?(t=Aa(),Bl=3):t===Ca?(t=Aa(),Bl=4):Bl=t===ec?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,Vl=t,Rl===null&&(Kl=1,Ys(e,_i(t,e.current)))}function Eu(){var e=ro.current;return e===null?!0:(zl&4194048)===zl?io===null:(zl&62914560)===zl||zl&536870912?e===io:!1}function Du(){var e=P.H;return P.H=zs,e===null?zs:e}function Ou(){var e=P.A;return P.A=Fl,e}function ku(){Kl=4,Hl||(zl&4194048)!==zl&&ro.current!==null||(Ul=!0),!(ql&134217727)&&!(Jl&134217727)||Ll===null||xu(Ll,zl,Xl,!1)}function Au(e,t,n){var r=Y;Y|=2;var i=Du(),a=Ou();(Ll!==e||zl!==t)&&(iu=null,wu(e,t)),t=!1;var o=Kl;a:do try{if(Bl!==0&&Rl!==null){var s=Rl,c=Vl;switch(Bl){case 8:Cu(),o=6;break a;case 3:case 2:case 9:case 6:ro.current===null&&(t=!0);var l=Bl;if(Bl=0,Vl=null,Iu(e,s,c,l),n&&Ul){o=0;break a}break;default:l=Bl,Bl=0,Vl=null,Iu(e,s,c,l)}}ju(),o=Kl;break}catch(t){Tu(e,t)}while(1);return t&&e.shellSuspendCounter++,qi=Ki=null,Y=r,P.H=i,P.A=a,Rl===null&&(Ll=null,zl=0,$r()),o}function ju(){for(;Rl!==null;)Pu(Rl)}function Mu(e,t){var n=Y;Y|=2;var r=Du(),i=Ou();Ll!==e||zl!==t?(iu=null,ru=Te()+500,wu(e,t)):Ul=Ke(e,t);a:do try{if(Bl!==0&&Rl!==null){t=Rl;var a=Vl;b:switch(Bl){case 1:Bl=0,Vl=null,Iu(e,t,a,1);break;case 2:case 9:if(Ea(a)){Bl=0,Vl=null,Fu(t);break}t=function(){Bl!==2&&Bl!==9||Ll!==e||(Bl=7),id(e)},a.then(t,t);break a;case 3:Bl=7;break a;case 4:Bl=5;break a;case 7:Ea(a)?(Bl=0,Vl=null,Fu(t)):(Bl=0,Vl=null,Iu(e,t,a,7));break;case 5:var s=null;switch(Rl.tag){case 26:s=Rl.memoizedState;case 5:case 27:var c=Rl;if(s?qf(s):c.stateNode.complete){Bl=0,Vl=null;var l=c.sibling;if(l!==null)Rl=l;else{var u=c.return;u===null?Rl=null:(Rl=u,Lu(u))}break b}}Bl=0,Vl=null,Iu(e,t,a,5);break;case 6:Bl=0,Vl=null,Iu(e,t,a,6);break;case 8:Cu(),Kl=6;break a;default:throw Error(o(462))}}Nu();break}catch(t){Tu(e,t)}while(1);return qi=Ki=null,P.H=r,P.A=i,Y=n,Rl===null?(Ll=null,zl=0,$r(),Kl):0}function Nu(){for(;Rl!==null&&!Ce();)Pu(Rl)}function Pu(e){var t=Oc(e.alternate,e,Gl);e.memoizedProps=e.pendingProps,t===null?Lu(e):Rl=t}function Fu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=mc(n,t,t.pendingProps,t.type,void 0,zl);break;case 11:t=mc(n,t,t.pendingProps,t.type.render,t.ref,zl);break;case 5:Ao(t);default:Lc(n,t),t=Rl=ui(t,Gl),t=Oc(n,t,Gl)}e.memoizedProps=e.pendingProps,t===null?Lu(e):Rl=t}function Iu(e,t,n,r){qi=Ki=null,Ao(t),Ma=null,Na=0;var i=t.return;try{if($s(e,i,t,n,zl)){Kl=1,Ys(e,_i(n,e.current)),Rl=null;return}}catch(t){if(i!==null)throw Rl=i,t;Kl=1,Ys(e,_i(n,e.current)),Rl=null;return}t.flags&32768?(Pi||r===1?e=!0:Ul||zl&536870912?e=!1:(Hl=e=!0,(r===2||r===9||r===3||r===6)&&(r=ro.current,r!==null&&r.tag===13&&(r.flags|=16384))),Ru(t,e)):Lu(t)}function Lu(e){var t=e;do{if(t.flags&32768){Ru(t,Hl);return}e=t.return;var n=Fc(t.alternate,t,Gl);if(n!==null){Rl=n;return}if(t=t.sibling,t!==null){Rl=t;return}Rl=t=e}while(t!==null);Kl===0&&(Kl=5)}function Ru(e,t){do{var n=Ic(e.alternate,e);if(n!==null){n.flags&=32767,Rl=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){Rl=e;return}Rl=e=n}while(e!==null);Kl=6,Rl=null}function zu(e,t,n,r,i,a,s,c,l){e.cancelPendingCommit=null;do Wu();while(ou!==0);if(Y&6)throw Error(o(327));if(t!==null){if(t===e.current)throw Error(o(177));if(a=t.lanes|t.childLanes,a|=Qr,Ze(e,n,a,s,c,l),e===Ll&&(Rl=Ll=null,zl=0),cu=t,su=e,lu=n,uu=a,du=i,fu=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,Zu(ke,function(){return Gu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=(t.flags&13878)!=0,t.subtreeFlags&13878||r){r=P.T,P.T=null,i=F.p,F.p=2,s=Y,Y|=4;try{nl(e,t,n)}finally{Y=s,F.p=i,P.T=r}}ou=1,Bu(),Vu(),Hu()}}function Bu(){if(ou===1){ou=0;var e=su,t=cu,n=(t.flags&13878)!=0;if(t.subtreeFlags&13878||n){n=P.T,P.T=null;var r=F.p;F.p=2;var i=Y;Y|=4;try{hl(t,e);var a=Hd,o=Er(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&Tr(s.ownerDocument.documentElement,s)){if(c!==null&&Dr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=wr(s,h),v=wr(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;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}up=!!Vd,Hd=Vd=null}finally{Y=i,F.p=r,P.T=n}}e.current=t,ou=2}}function Vu(){if(ou===2){ou=0;var e=su,t=cu,n=(t.flags&8772)!=0;if(t.subtreeFlags&8772||n){n=P.T,P.T=null;var r=F.p;F.p=2;var i=Y;Y|=4;try{rl(e,t.alternate,t)}finally{Y=i,F.p=r,P.T=n}}ou=3}}function Hu(){if(ou===4||ou===3){ou=0,we();var e=su,t=cu,n=lu,r=fu;t.subtreeFlags&10256||t.flags&10256?ou=5:(ou=0,cu=su=null,Uu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(au=null),nt(n),t=t.stateNode,Fe&&typeof Fe.onCommitFiberRoot==`function`)try{Fe.onCommitFiberRoot(Pe,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=P.T,i=F.p,F.p=2,P.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{P.T=t,F.p=i}}lu&3&&Wu(),id(e),i=e.pendingLanes,n&261930&&i&42?e===mu?pu++:(pu=0,mu=e):pu=0,ad(0,!1)}}function Uu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,la(t)))}function Wu(){return Bu(),Vu(),Hu(),Gu()}function Gu(){if(ou!==5)return!1;var e=su,t=uu;uu=0;var n=nt(lu),r=P.T,i=F.p;try{F.p=32>n?32:n,P.T=null,n=du,du=null;var a=su,s=lu;if(ou=0,cu=su=null,lu=0,Y&6)throw Error(o(331));var c=Y;if(Y|=4,Ml(a.current),wl(a,a.current,s,n),Y=c,ad(0,!1),Fe&&typeof Fe.onPostCommitFiberRoot==`function`)try{Fe.onPostCommitFiberRoot(Pe,a)}catch{}return!0}finally{F.p=i,P.T=r,Uu(e,t)}}function X(e,t,n){t=_i(n,t),t=Zs(e.stateNode,t,2),e=Wa(e,t,2),e!==null&&(Xe(e,2),id(e))}function Z(e,t,n){if(e.tag===3)X(e,e,n);else for(;t!==null;){if(t.tag===3){X(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(au===null||!au.has(r))){e=_i(n,e),n=K(2),r=Wa(t,n,2),r!==null&&(Qs(n,r,t,e),Xe(r,2),id(r));break}}t=t.return}}function Ku(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Il;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)||(Wl=!0,i.add(n),e=qu.bind(null,e,t,n),t.then(e,e))}function qu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Ll===e&&(zl&n)===n&&(Kl===4||Kl===3&&(zl&62914560)===zl&&300>Te()-tu?!(Y&2)&&wu(e,0):Yl|=n,Zl===zl&&(Zl=0)),id(e)}function Ju(e,t){t===0&&(t=Je()),e=ni(e,t),e!==null&&(Xe(e,t),id(e))}function Yu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ju(e,n)}function Xu(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(o(314))}r!==null&&r.delete(t),Ju(e,n)}function Zu(e,t){return xe(e,t)}var Qu=null,$u=null,ed=!1,td=!1,nd=!1,rd=0;function id(e){e!==$u&&e.next===null&&($u===null?Qu=$u=e:$u=$u.next=e),td=!0,ed||(ed=!0,dd())}function ad(e,t){if(!nd&&td){nd=!0;do for(var n=!1,r=Qu;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-Le(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ud(r,a))}else a=zl,a=Ge(r,r===Ll?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ke(r,a)||(n=!0,ud(r,a));r=r.next}while(n);nd=!1}}function od(){sd()}function sd(){td=ed=!1;var e=0;rd!==0&&Jd()&&(e=rd);for(var t=Te(),n=null,r=Qu;r!==null;){var i=r.next,a=cd(r,t);a===0?(r.next=null,n===null?Qu=i:n.next=i,i===null&&($u=n)):(n=r,(e!==0||a&3)&&(td=!0)),r=i}ou!==0&&ou!==5||ad(e,!1),rd!==0&&(rd=0)}function cd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Le(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=qe(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Ll,n=zl,n=Ge(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(Bl===2||Bl===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&Se(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||Ke(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&Se(r),nt(n)){case 2:case 8:n=Oe;break;case 32:n=ke;break;case 268435456:n=je;break;default:n=ke}return r=ld.bind(null,e),n=xe(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&Se(r),e.callbackPriority=2,e.callbackNode=null,2}function ld(e,t){if(ou!==0&&ou!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Wu()&&e.callbackNode!==n)return null;var r=zl;return r=Ge(e,e===Ll?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(vu(e,r,t),cd(e,Te()),e.callbackNode!=null&&e.callbackNode===n?ld.bind(null,e):null)}function ud(e,t){if(Wu())return null;vu(e,t,!0)}function dd(){Qd(function(){Y&6?xe(De,od):sd()})}function fd(){if(rd===0){var e=fa;e===0&&(e=Ve,Ve<<=1,!(Ve&261888)&&(Ve=256)),rd=e}return rd}function pd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:Qt(``+e)}function md(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function hd(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=pd((i[st]||null).action),o=r.submitter;o&&(t=(t=o[st]||null)?pd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new bn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(rd!==0){var e=o?md(i,o):new FormData(i);Es(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?md(i,o):new FormData(i),Es(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var gd=0;gd<qr.length;gd++){var _d=qr[gd];Jr(_d.toLowerCase(),`on`+(_d[0].toUpperCase()+_d.slice(1)))}Jr(zr,`onAnimationEnd`),Jr(Br,`onAnimationIteration`),Jr(Vr,`onAnimationStart`),Jr(`dblclick`,`onDoubleClick`),Jr(`focusin`,`onFocus`),Jr(`focusout`,`onBlur`),Jr(Hr,`onTransitionRun`),Jr(Ur,`onTransitionStart`),Jr(Wr,`onTransitionCancel`),Jr(Gr,`onTransitionEnd`),Ct(`onMouseEnter`,[`mouseout`,`mouseover`]),Ct(`onMouseLeave`,[`mouseout`,`mouseover`]),Ct(`onPointerEnter`,[`pointerout`,`pointerover`]),Ct(`onPointerLeave`,[`pointerout`,`pointerover`]),St(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),St(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),St(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),St(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),St(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),St(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var vd=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),yd=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(vd));function bd(e,t){t=(t&4)!=0;for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Yr(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Yr(e)}i.currentTarget=null,a=c}}}}function xd(e,t){var n=t[lt];n===void 0&&(n=t[lt]=new Set);var r=e+`__bubble`;n.has(r)||(Td(t,e,2,!1),n.add(r))}function Sd(e,t,n){var r=0;t&&(r|=4),Td(n,e,r,t)}var Cd=`_reactListening`+Math.random().toString(36).slice(2);function wd(e){if(!e[Cd]){e[Cd]=!0,bt.forEach(function(t){t!==`selectionchange`&&(yd.has(t)||Sd(t,!1,e),Sd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Cd]||(t[Cd]=!0,Sd(`selectionchange`,!1,t))}}function Td(e,t,n,r){switch(_p(t)){case 2:var i=dp;break;case 8:i=fp;break;default:i=pp}n=i.bind(null,t,n,e),i=void 0,!un||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Ed(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var o=r.tag;if(o===3||o===4){var s=r.stateNode.containerInfo;if(s===i)break;if(o===4)for(o=r.return;o!==null;){var l=o.tag;if((l===3||l===4)&&o.stateNode.containerInfo===i)return;o=o.return}for(;s!==null;){if(o=ht(s),o===null)return;if(l=o.tag,l===5||l===6||l===26||l===27){r=a=o;continue a}s=s.parentNode}}r=r.return}sn(function(){var r=a,i=tn(n),o=[];a:{var s=Kr.get(e);if(s!==void 0){var l=bn,u=e;switch(e){case`keypress`:if(hn(n)===0)break a;case`keydown`:case`keyup`:l=Rn;break;case`focusin`:u=`focus`,l=kn;break;case`focusout`:u=`blur`,l=kn;break;case`beforeblur`:case`afterblur`:l=kn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=Dn;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=On;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=Bn;break;case zr:case Br:case Vr:l=An;break;case Gr:l=Vn;break;case`scroll`:case`scrollend`:l=Sn;break;case`wheel`:l=Hn;break;case`copy`:case`cut`:case`paste`:l=jn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=zn;break;case`toggle`:case`beforetoggle`:l=Un}var d=(t&4)!=0,f=!d&&(e===`scroll`||e===`scrollend`),p=d?s===null?null:s+`Capture`:s;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=cn(m,p),g!=null&&d.push(Dd(m,g,h))),f)break;m=m.return}0<d.length&&(s=new l(s,u,null,n,i),o.push({event:s,listeners:d}))}}if(!(t&7)){a:{if(s=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,s&&n!==en&&(u=n.relatedTarget||n.fromElement)&&(ht(u)||u[ct]))break a;if((l||s)&&(s=i.window===i?i:(s=i.ownerDocument)?s.defaultView||s.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?ht(u):null,u!==null&&(f=c(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=Dn,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=zn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?s:_t(l),h=u==null?s:_t(u),s=new d(g,m+`leave`,l,n,i),s.target=f,s.relatedTarget=h,g=null,ht(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=kd,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&Ad(o,s,l,d,!1),u!==null&&f!==null&&Ad(o,f,u,d,!0)}}a:{if(s=r?_t(r):window,l=s.nodeName&&s.nodeName.toLowerCase(),l===`select`||l===`input`&&s.type===`file`)var v=lr;else if(rr(s))if(ur)v=yr;else{v=_r;var y=gr}else l=s.nodeName,!l||l.toLowerCase()!==`input`||s.type!==`checkbox`&&s.type!==`radio`?r&&Yt(r.elementType)&&(v=lr):v=vr;if(v&&=v(e,r)){ir(o,v,n,i);break a}y&&y(e,s,r),e===`focusout`&&r&&s.type===`number`&&r.memoizedProps.value!=null&&Vt(s,`number`,s.value)}switch(y=r?_t(r):window,e){case`focusin`:(rr(y)||y.contentEditable===`true`)&&(kr=y,Ar=r,jr=null);break;case`focusout`:jr=Ar=kr=null;break;case`mousedown`:Mr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Mr=!1,Nr(o,n,i);break;case`selectionchange`:if(Or)break;case`keydown`:case`keyup`:Nr(o,n,i)}var b;if(Gn)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else $n?Zn(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(Jn&&n.locale!==`ko`&&($n||x!==`onCompositionStart`?x===`onCompositionEnd`&&$n&&(b=mn()):(fn=i,pn=`value`in fn?fn.value:fn.textContent,$n=!0)),y=Od(r,x),0<y.length&&(x=new Mn(x,e,null,n,i),o.push({event:x,listeners:y}),b?x.data=b:(b=Qn(n),b!==null&&(x.data=b)))),(b=qn?er(e,n):tr(e,n))&&(x=Od(r,`onBeforeInput`),0<x.length&&(y=new Mn(`onBeforeInput`,`beforeinput`,null,n,i),o.push({event:y,listeners:x}),y.data=b)),hd(o,e,r,n,i)}bd(o,t)})}function Dd(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Od(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=cn(e,n),i!=null&&r.unshift(Dd(e,i,a)),i=cn(e,t),i!=null&&r.push(Dd(e,i,a))),e.tag===3)return r;e=e.return}return[]}function kd(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Ad(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=cn(n,a),l!=null&&o.unshift(Dd(n,l,c))):i||(l=cn(n,a),l!=null&&o.push(Dd(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var jd=/\r\n?/g,Md=/\u0000|\uFFFD/g;function Nd(e){return(typeof e==`string`?e:``+e).replace(jd,` 10`).replace(Md,``)}function Pd(e,t){return t=Nd(t),Nd(e)===t}function Fd(e,t,n,r,i,a){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Gt(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Gt(e,``+r);break;case`className`:kt(e,`class`,r);break;case`tabIndex`:kt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:kt(e,n,r);break;case`style`:Jt(e,r,a);break;case`data`:if(t!==`object`){kt(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Qt(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}else typeof a==`function`&&(n===`formAction`?(t!==`input`&&Fd(e,t,`name`,i.name,i,null),Fd(e,t,`formEncType`,i.formEncType,i,null),Fd(e,t,`formMethod`,i.formMethod,i,null),Fd(e,t,`formTarget`,i.formTarget,i,null)):(Fd(e,t,`encType`,i.encType,i,null),Fd(e,t,`method`,i.method,i,null),Fd(e,t,`target`,i.target,i,null)));if(r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Qt(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=$t);break;case`onScroll`:r!=null&&xd(`scroll`,e);break;case`onScrollEnd`:r!=null&&xd(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(o(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(o(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=Qt(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:xd(`beforetoggle`,e),xd(`toggle`,e),Ot(e,`popover`,r);break;case`xlinkActuate`:At(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:At(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:At(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:At(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:At(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:At(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:At(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:At(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:At(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:Ot(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=Xt.get(n)||n,Ot(e,n,r))}}function Id(e,t,n,r,i,a){switch(n){case`style`:Jt(e,r,a);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(o(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(o(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?Gt(e,r):(typeof r==`number`||typeof r==`bigint`)&&Gt(e,``+r);break;case`onScroll`:r!=null&&xd(`scroll`,e);break;case`onScrollEnd`:r!=null&&xd(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=$t);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!xt.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(i=n.endsWith(`Capture`),t=n.slice(2,i?n.length-7:void 0),a=e[st]||null,a=a==null?null:a[n],typeof a==`function`&&e.removeEventListener(t,a,i),typeof r==`function`)){typeof a!=`function`&&a!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,i);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):Ot(e,n,r)}}}function Ld(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:xd(`error`,e),xd(`load`,e);var r=!1,i=!1,a;for(a in n)if(n.hasOwnProperty(a)){var s=n[a];if(s!=null)switch(a){case`src`:r=!0;break;case`srcSet`:i=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(o(137,t));default:Fd(e,t,a,s,n,null)}}i&&Fd(e,t,`srcSet`,n.srcSet,n,null),r&&Fd(e,t,`src`,n.src,n,null);return;case`input`:xd(`invalid`,e);var c=a=s=i=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:i=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:a=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(o(137,t));break;default:Fd(e,t,r,d,n,null)}}Bt(e,a,c,l,u,s,i,!1);return;case`select`:for(i in xd(`invalid`,e),r=s=a=null,n)if(n.hasOwnProperty(i)&&(c=n[i],c!=null))switch(i){case`value`:a=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:Fd(e,t,i,c,n,null)}t=a,n=s,e.multiple=!!r,t==null?n!=null&&Ht(e,!!r,n,!0):Ht(e,!!r,t,!1);return;case`textarea`:for(s in xd(`invalid`,e),a=i=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:i=c;break;case`children`:a=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(o(91));break;default:Fd(e,t,s,c,n,null)}Wt(e,r,i,a);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:Fd(e,t,l,r,n,null)}return;case`dialog`:xd(`beforetoggle`,e),xd(`toggle`,e),xd(`cancel`,e),xd(`close`,e);break;case`iframe`:case`object`:xd(`load`,e);break;case`video`:case`audio`:for(r=0;r<vd.length;r++)xd(vd[r],e);break;case`image`:xd(`error`,e),xd(`load`,e);break;case`details`:xd(`toggle`,e);break;case`embed`:case`source`:case`link`:xd(`error`,e),xd(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(o(137,t));default:Fd(e,t,u,r,n,null)}return;default:if(Yt(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Id(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Fd(e,t,c,r,n,null))}function Rd(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var i=null,a=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||Fd(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:a=m;break;case`name`:i=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(o(137,t));break;default:m!==f&&Fd(e,t,p,m,r,f)}}zt(e,s,c,l,u,d,a,i);return;case`select`:for(a in m=s=c=p=null,n)if(l=n[a],n.hasOwnProperty(a)&&l!=null)switch(a){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(a)||Fd(e,t,a,null,r,l)}for(i in r)if(a=r[i],l=n[i],r.hasOwnProperty(i)&&(a!=null||l!=null))switch(i){case`value`:p=a;break;case`defaultValue`:c=a;break;case`multiple`:s=a;default:a!==l&&Fd(e,t,i,a,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Ht(e,!!n,n?[]:``,!1):Ht(e,!!n,t,!0)):Ht(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(i=n[c],n.hasOwnProperty(c)&&i!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:Fd(e,t,c,null,r,i)}for(s in r)if(i=r[s],a=n[s],r.hasOwnProperty(s)&&(i!=null||a!=null))switch(s){case`value`:p=i;break;case`defaultValue`:m=i;break;case`children`:break;case`dangerouslySetInnerHTML`:if(i!=null)throw Error(o(91));break;default:i!==a&&Fd(e,t,s,i,r,a)}Ut(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:Fd(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:Fd(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&Fd(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(o(137,t));break;default:Fd(e,t,u,p,r,m)}return;default:if(Yt(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Id(e,t,_,void 0,r,p);
vendor: 4,463 bytes, line 10
10for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Id(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Fd(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||Fd(e,t,f,p,r,m)}function zd(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Bd(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&zd(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&zd(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var Vd=null,Hd=null;function Ud(e){return e.nodeType===9?e:e.ownerDocument}function Wd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function Gd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function Kd(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var qd=null;function Jd(){var e=window.event;return e&&e.type===`popstate`?e===qd?!1:(qd=e,!0):(qd=null,!1)}var Yd=typeof setTimeout==`function`?setTimeout:void 0,Xd=typeof clearTimeout==`function`?clearTimeout:void 0,Zd=typeof Promise==`function`?Promise:void 0,Qd=typeof queueMicrotask==`function`?queueMicrotask:Zd===void 0?Yd:function(e){return Zd.resolve(null).then(e).catch($d)};function $d(e){setTimeout(function(){throw e})}function ef(e){return e===`head`}function tf(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Ip(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)gf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,gf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[pt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&gf(e.ownerDocument.body);n=i}while(n);Ip(t)}function nf(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8)if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++;n=r}while(n)}function rf(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:rf(n),mt(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function af(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r)if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e;else if(!e[pt])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=df(e.nextSibling),e===null)break}return null}function of(e,t,n){if(t===``)return null;for(;
vendor: 17,785 bytes, line 10
10e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=df(e.nextSibling),e===null))return null;return e}function sf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=df(e.nextSibling),e===null))return null;return e}function cf(e){return e.data===`$?`||e.data===`$~`}function lf(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function uf(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function df(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var ff=null;function pf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return df(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function mf(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function hf(e,t,n){switch(t=Ud(n),e){case`html`:if(e=t.documentElement,!e)throw Error(o(452));return e;case`head`:if(e=t.head,!e)throw Error(o(453));return e;case`body`:if(e=t.body,!e)throw Error(o(454));return e;default:throw Error(o(451))}}function gf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);mt(e)}var _f=new Map,vf=new Set;function yf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var bf=F.d;F.d={f:xf,r:Sf,D:Tf,C:Ef,L:Df,m:Of,X:Af,S:kf,M:jf};function xf(){var e=bf.f(),t=Su();return e||t}function Sf(e){var t=gt(e);t!==null&&t.tag===5&&t.type===`form`?Os(t):bf.r(e)}var Cf=typeof document>`u`?null:document;function wf(e,t,n){var r=Cf;if(r&&typeof t==`string`&&t){var i=Rt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),vf.has(i)||(vf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Ld(t,`link`,e),yt(t),r.head.appendChild(t)))}}function Tf(e){bf.D(e),wf(`dns-prefetch`,e,null)}function Ef(e,t){bf.C(e,t),wf(`preconnect`,e,t)}function Df(e,t,n){bf.L(e,t,n);var r=Cf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Rt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Rt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Rt(n.imageSizes)+`"]`)):i+=`[href="`+Rt(e)+`"]`;var a=i;switch(t){case`style`:a=Nf(e);break;case`script`:a=Lf(e)}_f.has(a)||(e=m({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),_f.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Pf(a))||t===`script`&&r.querySelector(Rf(a))||(t=r.createElement(`link`),Ld(t,`link`,e),yt(t),r.head.appendChild(t)))}}function Of(e,t){bf.m(e,t);var n=Cf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Rt(r)+`"][href="`+Rt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Lf(e)}if(!_f.has(a)&&(e=m({rel:`modulepreload`,href:e},t),_f.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Rf(a)))return}r=n.createElement(`link`),Ld(r,`link`,e),yt(r),n.head.appendChild(r)}}}function kf(e,t,n){bf.S(e,t,n);var r=Cf;if(r&&e){var i=vt(r).hoistableStyles,a=Nf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Pf(a)))s.loading=5;else{e=m({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=_f.get(a))&&Vf(e,n);var c=o=r.createElement(`link`);yt(c),Ld(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,Bf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Af(e,t){bf.X(e,t);var n=Cf;if(n&&e){var r=vt(n).hoistableScripts,i=Lf(e),a=r.get(i);a||(a=n.querySelector(Rf(i)),a||(e=m({src:e,async:!0},t),(t=_f.get(i))&&Hf(e,t),a=n.createElement(`script`),yt(a),Ld(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function jf(e,t){bf.M(e,t);var n=Cf;if(n&&e){var r=vt(n).hoistableScripts,i=Lf(e),a=r.get(i);a||(a=n.querySelector(Rf(i)),a||(e=m({src:e,async:!0,type:`module`},t),(t=_f.get(i))&&Hf(e,t),a=n.createElement(`script`),yt(a),Ld(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mf(e,t,n,r){var i=(i=z.current)?yf(i):null;if(!i)throw Error(o(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Nf(n.href),n=vt(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=Nf(n.href);var a=vt(i).hoistableStyles,s=a.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},a.set(e,s),(a=i.querySelector(Pf(e)))&&!a._p&&(s.instance=a,s.state.loading=5),_f.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},_f.set(e,n),a||If(i,e,n,s.state))),t&&r===null)throw Error(o(528,``));return s}if(t&&r!==null)throw Error(o(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Lf(n),n=vt(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(o(444,e))}}function Nf(e){return`href="`+Rt(e)+`"`}function Pf(e){return`link[rel="stylesheet"][`+e+`]`}function Ff(e){return m({},e,{"data-precedence":e.precedence,precedence:null})}function If(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}),Ld(t,`link`,n),yt(t),e.head.appendChild(t))}function Lf(e){return`[src="`+Rt(e)+`"]`}function Rf(e){return`script[async]`+e}function zf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Rt(n.href)+`"]`);if(r)return t.instance=r,yt(r),r;var i=m({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),yt(r),Ld(r,`style`,i),Bf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Nf(n.href);var a=e.querySelector(Pf(i));if(a)return t.state.loading|=4,t.instance=a,yt(a),a;r=Ff(n),(i=_f.get(i))&&Vf(r,i),a=(e.ownerDocument||e).createElement(`link`),yt(a);var s=a;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Ld(a,`link`,r),t.state.loading|=4,Bf(a,n.precedence,e),t.instance=a;case`script`:return a=Lf(n.src),(i=e.querySelector(Rf(a)))?(t.instance=i,yt(i),i):(r=n,(i=_f.get(a))&&(r=m({},n),Hf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),yt(i),Ld(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(o(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Bf(r,n.precedence,e));return t.instance}function Bf(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<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Vf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function Hf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Uf=null;function Wf(e,t,n){if(Uf===null){var r=new Map,i=Uf=new Map;i.set(n,r)}else i=Uf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[pt]||a[ot]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Gf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Kf(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 qf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Jf(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=Nf(r.href),a=t.querySelector(Pf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Zf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,yt(a);return}a=t.ownerDocument||t,r=Ff(r),(i=_f.get(i))&&Vf(r,i),a=a.createElement(`link`),yt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Ld(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=Zf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Yf=0;function Xf(e,t){return e.stylesheets&&e.count===0&&$f(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&$f(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&Yf===0&&(Yf=62500*Bd());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&$f(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>Yf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Zf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)$f(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Qf=null;function $f(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Qf=new Map,t.forEach(ep,e),Qf=null,Zf.call(e))}function ep(e,t){if(!(t.state.loading&4)){var n=Qf.get(e);if(n)var r=n.get(null);else{n=new Map,Qf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=Zf.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var tp={$$typeof:S,Provider:null,Consumer:null,_currentValue:I,_currentValue2:I,_threadCount:0};function np(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Ye(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ye(0),this.hiddenUpdates=Ye(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function rp(e,t,n,r,i,a,o,s,c,l,u,d){return e=new np(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=si(3,null,null,t),e.current=a,a.stateNode=e,t=ca(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Va(a),e}function ip(e){return e?(e=ai,e):ai}function ap(e,t,n,r,i,a){i=ip(i),r.context===null?r.context=i:r.pendingContext=i,r=Ua(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Wa(e,r,t),n!==null&&(_u(n,e,t),Ga(n,e,t))}function op(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function sp(e,t){op(e,t),(e=e.alternate)&&op(e,t)}function cp(e){if(e.tag===13||e.tag===31){var t=ni(e,67108864);t!==null&&_u(t,e,67108864),sp(e,67108864)}}function lp(e){if(e.tag===13||e.tag===31){var t=hu();t=tt(t);var n=ni(e,t);n!==null&&_u(n,e,t),sp(e,t)}}var up=!0;function dp(e,t,n,r){var i=P.T;P.T=null;var a=F.p;try{F.p=2,pp(e,t,n,r)}finally{F.p=a,P.T=i}}function fp(e,t,n,r){var i=P.T;P.T=null;var a=F.p;try{F.p=8,pp(e,t,n,r)}finally{F.p=a,P.T=i}}function pp(e,t,n,r){if(up){var i=mp(r);if(i===null)Ed(e,t,r,hp,n),Ep(e,r);else if(Op(i,e,t,n,r))r.stopPropagation();else if(Ep(e,r),t&4&&-1<Tp.indexOf(e)){for(;i!==null;){var a=gt(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=We(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Le(o);s.entanglements[1]|=c,o&=~c}id(a),!(Y&6)&&(ru=Te()+500,ad(0,!1))}}break;case 31:case 13:s=ni(a,2),s!==null&&_u(s,a,2),Su(),sp(a,2)}if(a=mp(r),a===null&&Ed(e,t,r,hp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Ed(e,t,r,null,n)}}function mp(e){return e=tn(e),gp(e)}var hp=null;function gp(e){if(hp=null,e=ht(e),e!==null){var t=c(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=l(t),e!==null)return e;e=null}else if(n===31){if(e=u(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return hp=e,null}function _p(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(Ee()){case De:return 2;case Oe:return 8;case ke:case Ae:return 32;case je:return 268435456;default:return 32}default:return 32}}var vp=!1,yp=null,bp=null,xp=null,Sp=new Map,Cp=new Map,wp=[],Tp=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Ep(e,t){switch(e){case`focusin`:case`focusout`:yp=null;break;case`dragenter`:case`dragleave`:bp=null;break;case`mouseover`:case`mouseout`:xp=null;break;case`pointerover`:case`pointerout`:Sp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:Cp.delete(t.pointerId)}}function Dp(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=gt(t),t!==null&&cp(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Op(e,t,n,r,i){switch(t){case`focusin`:return yp=Dp(yp,e,t,n,r,i),!0;case`dragenter`:return bp=Dp(bp,e,t,n,r,i),!0;case`mouseover`:return xp=Dp(xp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return Sp.set(a,Dp(Sp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,Cp.set(a,Dp(Cp.get(a)||null,e,t,n,r,i)),!0}return!1}function kp(e){var t=ht(e.target);if(t!==null){var n=c(t);if(n!==null){if(t=n.tag,t===13){if(t=l(n),t!==null){e.blockedOn=t,it(e.priority,function(){lp(n)});return}}else if(t===31){if(t=u(n),t!==null){e.blockedOn=t,it(e.priority,function(){lp(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Ap(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=mp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);en=r,n.target.dispatchEvent(r),en=null}else return t=gt(n),t!==null&&cp(t),e.blockedOn=n,!1;t.shift()}return!0}
10function jp(e,t,n){Ap(e)&&n.delete(t)}function Mp(){vp=!1,yp!==null&&Ap(yp)&&(yp=null),bp!==null&&Ap(bp)&&(bp=null),xp!==null&&Ap(xp)&&(xp=null),Sp.forEach(jp),Cp.forEach(jp)}function Np(e,n){e.blockedOn===n&&(e.blockedOn=null,vp||(vp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Mp)))}var Pp=null;function Fp(e){Pp!==e&&(Pp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Pp===e&&(Pp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(gp(r||n)===null)continue;break}var a=gt(n);a!==null&&(e.splice(t,3),t-=3,Es(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Ip(e){function t(t){return Np(t,e)}yp!==null&&Np(yp,e),bp!==null&&Np(bp,e),xp!==null&&Np(xp,e),Sp.forEach(t),Cp.forEach(t);for(var n=0;n<wp.length;n++){var r=wp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<wp.length&&(n=wp[0],n.blockedOn===null);)kp(n),n.blockedOn===null&&wp.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[st]||null;if(typeof a==`function`)o||Fp(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[st]||null)s=o.formAction;else if(gp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Fp(n)}}}function Lp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Rp(e){this._internalRoot=e}zp.prototype.render=Rp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(o(409));var n=t.current;ap(n,hu(),e,t,null,null)},zp.prototype.unmount=Rp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;ap(e.current,2,null,e,null,null),Su(),t[ct]=null}};function zp(e){this._internalRoot=e}zp.prototype.unstable_scheduleHydration=function(e){if(e){var t=rt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<wp.length&&t!==0&&t<wp[n].priority;n++);wp.splice(n,0,e),n===0&&kp(e)}};var Bp=n.version;if(Bp!==`19.2.5`)throw Error(o(527,Bp,`19.2.5`));F.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(o(188)):(e=Object.keys(e).join(`,`),Error(o(268,e)));return e=f(t),e=e===null?null:p(e),e=e===null?null:e.stateNode,e};var Vp={bundleType:0,version:`19.2.5`,rendererPackageName:`react-dom`,currentDispatcherRef:P,reconcilerVersion:`19.2.5`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Hp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Hp.isDisabled&&Hp.supportsFiber)try{Pe=Hp.inject(Vp),Fe=Hp}catch{}}e.hydrateRoot=function(e,t,n){if(!s(e))throw Error(o(299));var r=!1,i=``,a=qs,c=Js,l=G,u=null;return n!=null&&(!0===n.unstable_strictMode&&(r=!0),n.identifierPrefix!==void 0&&(i=n.identifierPrefix),n.onUncaughtError!==void 0&&(a=n.onUncaughtError),n.onCaughtError!==void 0&&(c=n.onCaughtError),n.onRecoverableError!==void 0&&(l=n.onRecoverableError),n.formState!==void 0&&(u=n.formState)),t=rp(e,1,!0,t,n??null,r,i,u,a,c,l,Lp),t.context=ip(null),n=t.current,r=hu(),r=tt(r),i=Ua(r),i.callback=null,Wa(n,i,r),n=r,t.current.lanes=n,Xe(t,n),id(t),e[ct]=t.current,wd(e),new zp(t)}})),be=t(((e,t)=>{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=ye()})),xe=`__TSS_CONTEXT`,Se=Symbol.for(`TSS_SERVER_FUNCTION`),Ce=`application/x-tss-framed`,we={JSON:0,CHUNK:1,END:2,ERROR:3};`${Ce}`;var Te=/;\s*v=(\d+)/;function Ee(e){let t=e.match(Te);return t?parseInt(t[1],10):void 0}function De(e){let t=Ee(e);if(t!==void 0&&t!==1)throw Error(`Incompatible framed protocol version: server=${t}, client=1. Please ensure client and server are using compatible versions.`)}var Oe=()=>window.__TSS_START_OPTIONS__;function ke(){try{return typeof window<`u`&&typeof window.sessionStorage==`object`?window.sessionStorage:void 0}catch{return}}var Ae=`tsr-scroll-restoration-v1_3`;function je(){let e=ke();if(!e)return null;let t={};try{let n=JSON.parse(e.getItem(`tsr-scroll-restoration-v1_3`)||`{}`);y(n)&&(t=n)}catch{}return{get state(){return t},set:e=>{t=d(e,t)||t},persist:()=>{try{e.setItem(Ae,JSON.stringify(t))}catch{}}}}var Me=je(),Ne=e=>e.state.__TSR_key||e.href;function Pe(e){let t=[],n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(` > `)}`.toLowerCase()}var Fe=!1,Ie=`window`,Le=`data-scroll-restoration-id`;function Re(e,t){if(!Me)return;let n=Me;if((t??e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isScrollRestorationSetup||!n)return;e.isScrollRestorationSetup=!0,Fe=!1;let r=e.options.getScrollRestorationKey||Ne,i=new Map;window.history.scrollRestoration=`manual`;let a=t=>{if(!(Fe||!e.isScrollRestoring))if(t.target===document||t.target===window)i.set(Ie,{scrollX:window.scrollX||0,scrollY:window.scrollY||0});else{let e=t.target;i.set(e,{scrollX:e.scrollLeft||0,scrollY:e.scrollTop||0})}},o=t=>{if(!e.isScrollRestoring||!t||i.size===0||!n)return;let r=n.state[t]||={};for(let[e,t]of i){let n;if(e===Ie)n=Ie;else if(e.isConnected){let t=e.getAttribute(Le);n=t?`[${Le}="${t}"]`:Pe(e)}n&&(r[n]=t)}};document.addEventListener(`scroll`,a,!0),e.subscribe(`onBeforeLoad`,e=>{o(e.fromLocation?r(e.fromLocation):void 0),i.clear()}),window.addEventListener(`pagehide`,()=>{o(r(e.stores.resolvedLocation.get()??e.stores.location.get())),n.persist()}),e.subscribe(`onRendered`,t=>{let a=r(t.toLocation),o=e.options.scrollRestorationBehavior,s=e.options.scrollToTopSelectors;if(i.clear(),!e.resetNextScroll){e.resetNextScroll=!0;return}
10if(!(typeof e.options.scrollRestoration==`function`&&!e.options.scrollRestoration({location:e.latestLocation}))){Fe=!0;try{let t=e.isScrollRestoring?n.state[a]:void 0,r=!1;if(t)for(let e in t){let n=t[e];if(!y(n))continue;let{scrollX:i,scrollY:a}=n;if(!(!Number.isFinite(i)||!Number.isFinite(a))){if(e===Ie)window.scrollTo({top:a,left:i,behavior:o}),r=!0;else if(e){let t;try{t=document.querySelector(e)}catch{continue}t&&(t.scrollLeft=i,t.scrollTop=a,r=!0)}}}if(!r){let t=e.history.location.hash.slice(1);if(t){let e=window.history.state?.__hashScrollIntoViewOptions??!0;if(e){let n=document.getElementById(t);n&&n.scrollIntoView(e)}}else{let e={top:0,left:0,behavior:o};if(window.scrollTo(e),s)for(let t of s){if(t===Ie)continue;let n=typeof t==`function`?t():document.querySelector(t);n&&n.scrollTo(e)}}}}finally{Fe=!1}e.isScrollRestoring&&n.set(e=>(e[a]||={},e))}})}function ze(e,t=String){let n=new URLSearchParams;for(let r in e){let i=e[r];i!==void 0&&n.set(r,t(i))}return n.toString()}function Be(e){return e?e===`false`?!1:e===`true`?!0:e*0==0&&+e+``===e?+e:e:``}function Ve(e){let t=new URLSearchParams(e),n=Object.create(null);for(let[e,r]of t.entries()){let t=n[e];t==null?n[e]=Be(r):Array.isArray(t)?t.push(Be(r)):n[e]=[t,Be(r)]}return n}var He=We(JSON.parse),Ue=Ge(JSON.stringify,JSON.parse);function We(e){return t=>{t[0]===`?`&&(t=t.substring(1));let n=Ve(t);for(let t in n){let r=n[t];if(typeof r==`string`)try{n[t]=e(r)}catch{}}return n}}function Ge(e,t){let n=typeof t==`function`;function r(r){if(typeof r==`object`&&r)try{return e(r)}catch{}else if(n&&typeof r==`string`)try{return t(r),e(r)}catch{}return r}return e=>{let t=ze(e,r);return t?`?${t}`:``}}function Ke(e){return{input:({url:t})=>{for(let n of e)t=Je(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=Ye(e[n],t);return t}}}function qe(e){let t=L(e.basepath),n=`/${t}`,r=`${n}/`,i=e.caseSensitive?n:n.toLowerCase(),a=e.caseSensitive?r:r.toLowerCase();return{input:({url:t})=>{let r=e.caseSensitive?t.pathname:t.pathname.toLowerCase();return r===i?t.pathname=`/`:r.startsWith(a)&&(t.pathname=t.pathname.slice(n.length)),t},output:({url:e})=>(e.pathname=O([`/`,t,e.pathname]),e)}}function Je(e,t){let n=e?.input?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function Ye(e,t){let n=e?.output?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function Xe(e,t){let{createMutableStore:n,createReadonlyStore:r,batch:i,init:a}=t,o=new Map,s=new Map,c=new Map,l=n(e.status),d=n(e.loadedAt),f=n(e.isLoading),p=n(e.isTransitioning),m=n(e.location),h=n(e.resolvedLocation),g=n(e.statusCode),_=n(e.redirect),v=n([]),y=n([]),b=n([]),x=r(()=>Ze(o,v.get())),S=r(()=>Ze(s,y.get())),C=r(()=>Ze(c,b.get())),w=r(()=>v.get()[0]),E=r(()=>v.get().some(e=>o.get(e)?.get().status===`pending`)),ee=r(()=>({locationHref:m.get().href,resolvedLocationHref:h.get()?.href,status:l.get()})),D=r(()=>({status:l.get(),loadedAt:d.get(),isLoading:f.get(),isTransitioning:p.get(),matches:x.get(),location:m.get(),resolvedLocation:h.get(),statusCode:g.get(),redirect:_.get()})),O=u(64);function k(e){let t=O.get(e);return t||(t=r(()=>{let t=v.get();for(let n of t){let t=o.get(n);if(t&&t.routeId===e)return t.get()}}),O.set(e,t)),t}let A={status:l,loadedAt:d,isLoading:f,isTransitioning:p,location:m,resolvedLocation:h,statusCode:g,redirect:_,matchesId:v,pendingIds:y,cachedIds:b,matches:x,pendingMatches:S,cachedMatches:C,firstId:w,hasPending:E,matchRouteDeps:ee,matchStores:o,pendingMatchStores:s,cachedMatchStores:c,__store:D,getRouteMatchStore:k,setMatches:j,setPending:te,setCached:M};j(e.matches),a?.(A);function j(e){Qe(e,o,v,n,i)}function te(e){Qe(e,s,y,n,i)}function M(e){Qe(e,c,b,n,i)}return A}function Ze(e,t){let n=[];for(let r of t){let t=e.get(r);t&&n.push(t.get())}return n}function Qe(e,t,n,r,i){let a=e.map(e=>e.id),o=new Set(a);i(()=>{for(let e of t.keys())o.has(e)||t.delete(e);for(let n of e){let e=t.get(n.id);if(!e){let e=r(n);e.routeId=n.routeId,t.set(n.id,e);continue}e.routeId=n.routeId,e.get()!==n&&e.set(n)}j(n.get(),a)||n.set(a)})}var $e=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},et=e=>e.stores.matchesId.get().some(t=>e.stores.matchStores.get(t)?.get()._forcePending),tt=(e,t)=>!!(e.preload&&!e.router.stores.matchStores.has(t)),nt=(e,t,n=!0)=>{let r={...e.router.options.context??{}},i=n?t:t-1;for(let t=0;t<=i;t++){let n=e.matches[t];if(!n)continue;let i=e.router.getMatch(n.id);
10i&&Object.assign(r,i.__routeContext,i.__beforeLoadContext)}return r},rt=(e,t)=>{if(!e.matches.length)return;let n=t.routeId,r=e.matches.findIndex(t=>t.routeId===e.router.routeTree.id),i=r>=0?r:0,a=n?e.matches.findIndex(e=>e.routeId===n):e.firstBadMatchIndex??e.matches.length-1;a<0&&(a=i);for(let t=a;t>=0;t--){let n=e.matches[t];if(e.router.looseRoutesById[n.routeId].options.notFoundComponent)return t}return n?a:i},it=(e,t,n)=>{if(!(!de(n)&&!z(n)))throw de(n)&&n.redirectHandled&&!n.options.reloadDocument?n:(t&&(t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0,t._nonReactive.error=n,e.updateMatch(t.id,r=>({...r,status:de(n)?`redirected`:z(n)?`notFound`:r.status===`pending`?`success`:r.status,context:nt(e,t.index),isFetching:!1,error:n})),z(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()),de(n)&&(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n)),n)},at=(e,t)=>{let n=e.router.getMatch(t);return!!(!n||n._nonReactive.dehydrated)},ot=(e,t,n)=>{let r=nt(e,n);e.updateMatch(t,e=>({...e,context:r}))},st=(e,t,n,r)=>{let{id:i,routeId:a}=e.matches[t],o=e.router.looseRoutesById[a];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??=t,it(e,e.router.getMatch(i),n);try{o.options.onError?.(n)}catch(t){n=t,it(e,e.router.getMatch(i),n)}e.updateMatch(i,e=>(e._nonReactive.beforeLoadPromise?.resolve(),e._nonReactive.beforeLoadPromise=void 0,e._nonReactive.loadPromise?.resolve(),{...e,error:n,status:`error`,isFetching:!1,updatedAt:Date.now(),abortController:new AbortController})),!e.preload&&!de(n)&&!z(n)&&(e.serialError??=n)},ct=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;let i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!tt(e,t)&&(n.options.loader||n.options.beforeLoad||yt(n))&&typeof i==`number`&&i!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent)){let t=setTimeout(()=>{$e(e)},i);r._nonReactive.pendingTimeout=t}},lt=(e,t,n)=>{let r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;ct(e,t,n,r);let i=()=>{let n=e.router.getMatch(t);n.preload&&(n.status===`redirected`||n.status===`notFound`)&&it(e,n,n.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},ut=(e,t,n,r)=>{let i=e.router.getMatch(t),a=i._nonReactive.loadPromise;i._nonReactive.loadPromise=o(()=>{a?.resolve(),a=void 0});let{paramsError:s,searchError:c}=i;s&&st(e,n,s,`PARSE_PARAMS`),c&&st(e,n,c,`VALIDATE_SEARCH`),ct(e,t,r,i);let l=new AbortController,u=!1,d=()=>{u||(u=!0,e.updateMatch(t,e=>({...e,isFetching:`beforeLoad`,fetchCount:e.fetchCount+1,abortController:l})))},f=()=>{i._nonReactive.beforeLoadPromise?.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,e=>({...e,isFetching:!1}))};if(!r.options.beforeLoad){e.router.batch(()=>{d(),f()});return}i._nonReactive.beforeLoadPromise=o();let p={...nt(e,n,!1),...i.__routeContext},{search:m,params:h,cause:g}=i,_=tt(e,t),v={search:m,abortController:l,params:h,preload:_,context:p,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:_?`preload`:g,matches:e.matches,routeId:r.id,...e.router.options.additionalContext},y=r=>{if(r===void 0){e.router.batch(()=>{d(),f()});return}(de(r)||z(r))&&(d(),st(e,n,r,`BEFORE_LOAD`)),e.router.batch(()=>{d(),e.updateMatch(t,e=>({...e,__beforeLoadContext:r})),f()})},b;try{if(b=r.options.beforeLoad(v),ae(b))return d(),b.catch(t=>{st(e,n,t,`BEFORE_LOAD`)}).then(y)}catch(t){d(),st(e,n,t,`BEFORE_LOAD`)}y(b)},dt=(e,t)=>{let{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],a=()=>s(),o=()=>ut(e,n,t,i),s=()=>{if(at(e,n))return;let t=lt(e,n,i);return ae(t)?t.then(o):o()};return a()},ft=(e,t,n)=>{let r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;let i={ssr:e.router.options.ssr,matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(i),n.options.scripts?.(i),n.options.headers?.(i)]).then(([e,t,n])=>({meta:e?.meta,links:e?.links,headScripts:e?.scripts,headers:n,scripts:t,styles:e?.styles}))},pt=(e,t,n,r,i)=>{let a=t[r-1],{params:o,loaderDeps:s,abortController:c,cause:l}=e.router.getMatch(n),u=nt(e,r),d=tt(e,n);return{params:o,deps:s,preload:!!d,parentMatchPromise:a,abortController:c,context:u,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),cause:d?`preload`:l,route:i,...e.router.options.additionalContext}},mt=async(e,t,n,r,i)=>{try{let a=e.router.getMatch(n);try{vt(i);let o=i.options.loader,s=typeof o==`function`?o:o?.handler,c=s?.(pt(e,t,n,r,i)),l=!!s&&ae(c);if((l||i._lazyPromise||i._componentsPromise||i.options.head||i.options.scripts||i.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(n,e=>({...e,isFetching:`loader`})),s){let t=l?await c:c;it(e,e.router.getMatch(n),t),t!==void 0&&e.updateMatch(n,e=>({...e,loaderData:t}))}i._lazyPromise&&await i._lazyPromise;let u=a._nonReactive.minPendingPromise;u&&await u,i._componentsPromise&&await i._componentsPromise,e.updateMatch(n,t=>({...t,error:void 0,context:nt(e,r),status:`success`,isFetching:!1,updatedAt:Date.now()}))}catch(t){let o=t;if(o?.name===`AbortError`){if(a.abortController.signal.aborted){a._nonReactive.loaderPromise?.resolve(),a._nonReactive.loaderPromise=void 0;return}e.updateMatch(n,t=>
10({...t,status:t.status===`pending`?`success`:t.status,isFetching:!1,context:nt(e,r)}));return}let s=a._nonReactive.minPendingPromise;s&&await s,z(t)&&await i.options.notFoundComponent?.preload?.(),it(e,e.router.getMatch(n),t);try{i.options.onError?.(t)}catch(t){o=t,it(e,e.router.getMatch(n),t)}!de(o)&&!z(o)&&await vt(i,[`errorComponent`]),e.updateMatch(n,t=>({...t,error:o,context:nt(e,r),status:`error`,isFetching:!1}))}}catch(t){let r=e.router.getMatch(n);r&&(r._nonReactive.loaderPromise=void 0),it(e,r,t)}},ht=async(e,t,n)=>{async function r(r,a,o,l,u){let f=Date.now()-a.updatedAt,p=r?u.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:u.options.staleTime??e.router.options.defaultStaleTime??0,m=u.options.shouldReload,h=typeof m==`function`?m(pt(e,t,i,n,u)):m,{status:g,invalid:_}=l,v=f>=p&&(!!e.forceStaleReload||l.cause===`enter`||o!==void 0&&o!==l.id);s=g===`success`&&(_||(h??v)),r&&u.options.preload===!1||(s&&!e.sync&&d?(c=!0,(async()=>{try{await mt(e,t,i,n,u);let r=e.router.getMatch(i);r._nonReactive.loaderPromise?.resolve(),r._nonReactive.loadPromise?.resolve(),r._nonReactive.loaderPromise=void 0,r._nonReactive.loadPromise=void 0}catch(t){de(t)&&await e.router.navigate(t.options)}})()):g!==`success`||s?await mt(e,t,i,n,u):ot(e,i,n))}let{id:i,routeId:a}=e.matches[n],s=!1,c=!1,l=e.router.looseRoutesById[a],u=l.options.loader,d=((typeof u==`function`?void 0:u?.staleReloadMode)??e.router.options.defaultStaleReloadMode)!==`blocking`;if(at(e,i)){if(!e.router.getMatch(i))return e.matches[n];ot(e,i,n)}else{let t=e.router.getMatch(i),s=e.router.stores.matchesId.get()[n],c=(s&&e.router.stores.matchStores.get(s)||null)?.routeId===a?s:e.router.stores.matches.get().find(e=>e.routeId===a)?.id,u=tt(e,i);if(t._nonReactive.loaderPromise){if(t.status===`success`&&!e.sync&&!t.preload&&d)return t;await t._nonReactive.loaderPromise;let n=e.router.getMatch(i),a=n._nonReactive.error||n.error;a&&it(e,n,a),n.status===`pending`&&await r(u,t,c,n,l)}else{let n=u&&!e.router.stores.matchStores.has(i),a=e.router.getMatch(i);a._nonReactive.loaderPromise=o(),n!==a.preload&&e.updateMatch(i,e=>({...e,preload:n})),await r(u,t,c,a,l)}}let f=e.router.getMatch(i);c||(f._nonReactive.loaderPromise?.resolve(),f._nonReactive.loadPromise?.resolve(),f._nonReactive.loadPromise=void 0),clearTimeout(f._nonReactive.pendingTimeout),f._nonReactive.pendingTimeout=void 0,c||(f._nonReactive.loaderPromise=void 0),f._nonReactive.dehydrated=void 0;let p=c?f.isFetching:!1;return p!==f.isFetching||f.invalid!==!1?(e.updateMatch(i,e=>({...e,isFetching:p,invalid:!1})),e.router.getMatch(i)):f};async function gt(e){let t=e,n=[];et(t.router)&&$e(t);let r;for(let e=0;e<t.matches.length;e++){try{let n=dt(t,e);ae(n)&&await n}catch(e){if(de(e))throw e;if(z(e))r=e;else if(!t.preload)throw e;break}if(t.serialError||t.firstBadMatchIndex!=null)break}let i=t.firstBadMatchIndex??t.matches.length,a=r&&!t.preload?rt(t,r):void 0,o=r&&t.preload?0:a===void 0?i:Math.min(a+1,i),s,c;for(let e=0;e<o;e++)n.push(ht(t,n,e));try{await Promise.all(n)}catch{let e=await Promise.allSettled(n);for(let t of e){if(t.status!==`rejected`)continue;let e=t.reason;if(de(e))throw e;z(e)?s??=e:c??=e}if(c!==void 0)throw c}let u=s??(r&&!t.preload?r:void 0),d=t.firstBadMatchIndex===void 0?t.matches.length-1:t.firstBadMatchIndex;if(!u&&r&&t.preload)return t.matches;if(u){let e=rt(t,u);e===void 0&&l();let n=t.matches[e],r=t.router.looseRoutesById[n.routeId],i=t.router.options?.defaultNotFoundComponent;!r.options.notFoundComponent&&i&&(r.options.notFoundComponent=i),u.routeId=n.routeId;let a=n.routeId===t.router.routeTree.id;t.updateMatch(n.id,e=>({...e,...a?{status:`success`,globalNotFound:!0,error:void 0}:{status:`notFound`,error:u},isFetching:!1})),d=e,await vt(r,[`notFoundComponent`])}else if(!t.preload){let e=t.matches[0];e.globalNotFound||t.router.getMatch(e.id)?.globalNotFound&&t.updateMatch(e.id,e=>({...e,globalNotFound:!1,error:void 0}))}if(t.serialError&&t.firstBadMatchIndex!==void 0){let e=t.router.looseRoutesById[t.matches[t.firstBadMatchIndex].routeId];await vt(e,[`errorComponent`])}for(let e=0;e<=d;e++){let{id:n,routeId:r}=t.matches[e],i=t.router.looseRoutesById[r];try{let e=ft(t,n,i);if(e){let r=await e;t.updateMatch(n,e=>({...e,...r}))}}catch(e){console.error(`Error executing head for route ${r}:`,e)}}let f=$e(t);if(ae(f)&&await f,u)throw u;if(t.serialError&&!t.preload&&!t.onReady)throw t.serialError;return t.matches}function _t(e,t){let n=t.map(t=>
10e.options[t]?.preload?.()).filter(Boolean);if(n.length!==0)return Promise.all(n)}function vt(e,t=bt){!e._lazyLoaded&&e._lazyPromise===void 0&&(e.lazyFn?e._lazyPromise=e.lazyFn().then(t=>{let{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0);let n=()=>e._componentsLoaded?void 0:t===bt?(()=>{if(e._componentsPromise===void 0){let t=_t(e,bt);t?e._componentsPromise=t.then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0}):e._componentsLoaded=!0}return e._componentsPromise})():_t(e,t);return e._lazyPromise?e._lazyPromise.then(n):n()}function yt(e){for(let t of bt)if(e.options[t]?.preload)return!0;return!1}var bt=[`component`,`errorComponent`,`pendingComponent`,`notFoundComponent`],xt=`__TSR_index`,St=`popstate`,Ct=`beforeunload`;function wt(e){let t=e.getLocation(),n=new Set,r=r=>{t=e.getLocation(),n.forEach(e=>e({location:t,action:r}))},i=n=>{e.notifyOnIndexChange??!0?r(n):t=e.getLocation()},a=async({task:n,navigateOpts:r,...i})=>{if(r?.ignoreBlocker??!1){n();return}let a=e.getBlockers?.()??[],o=i.type===`PUSH`||i.type===`REPLACE`;if(typeof document<`u`&&a.length&&o)for(let n of a){let r=Ot(i.path,i.state);if(await n.blockerFn({currentLocation:t,nextLocation:r,action:i.type})){e.onBlocked?.();return}}n()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:e=>(n.add(e),()=>{n.delete(e)}),push:(n,i,o)=>{let s=t.state[xt];i=Tt(s+1,i),a({task:()=>{e.pushState(n,i),r({type:`PUSH`})},navigateOpts:o,type:`PUSH`,path:n,state:i})},replace:(n,i,o)=>{let s=t.state[xt];i=Tt(s,i),a({task:()=>{e.replaceState(n,i),r({type:`REPLACE`})},navigateOpts:o,type:`REPLACE`,path:n,state:i})},go:(t,n)=>{a({task:()=>{e.go(t),i({type:`GO`,index:t})},navigateOpts:n,type:`GO`})},back:t=>{a({task:()=>{e.back(t?.ignoreBlocker??!1),i({type:`BACK`})},navigateOpts:t,type:`BACK`})},forward:t=>{a({task:()=>{e.forward(t?.ignoreBlocker??!1),i({type:`FORWARD`})},navigateOpts:t,type:`FORWARD`})},canGoBack:()=>t.state[xt]!==0,createHref:t=>e.createHref(t),block:t=>{if(!e.setBlockers)return()=>{};let n=e.getBlockers?.()??[];return e.setBlockers([...n,t]),()=>{let n=e.getBlockers?.()??[];e.setBlockers?.(n.filter(e=>e!==t))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function Tt(e,t){t||={};let n=kt();return{...t,key:n,__TSR_key:n,[xt]:e}}function Et(e){let t=e?.window??(typeof document<`u`?window:void 0),n=t.history.pushState,r=t.history.replaceState,i=[],a=()=>i,o=e=>i=e,s=e?.createHref??(e=>e),c=e?.parseLocation??(()=>Ot(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){let e=kt();t.history.replaceState({[xt]:0,key:e,__TSR_key:e},``)}let l=c(),u,d=!1,f=!1,p=!1,m=!1,h=()=>l,g,_,v=()=>{g&&(C._ignoreSubscribers=!0,(g.isPush?t.history.pushState:t.history.replaceState)(g.state,``,g.href),C._ignoreSubscribers=!1,g=void 0,_=void 0,u=void 0)},y=(e,t,n)=>{let r=s(t);_||(u=l),l=Ot(t,n),g={href:r,state:n,isPush:g?.isPush||e===`push`},_||=Promise.resolve().then(()=>v())},b=e=>{l=c(),C.notify({type:e})},x=async()=>{if(f){f=!1;return}let e=c(),n=e.state[xt]-l.state[xt],r=n===1,i=n===-1,o=!r&&!i||d;d=!1;let s=o?`GO`:i?`BACK`:`FORWARD`,u=o?{type:`GO`,index:n}:{type:i?`BACK`:`FORWARD`};if(p)p=!1;else{let n=a();if(typeof document<`u`&&n.length){for(let r of n)if(await r.blockerFn({currentLocation:l,nextLocation:e,action:s})){f=!0,t.history.go(1),C.notify(u);return}}}l=c(),C.notify(u)},S=e=>{if(m){m=!1;return}let t=!1,n=a();if(typeof document<`u`&&n.length)for(let e of n){let n=e.enableBeforeUnload??!0;if(n===!0){t=!0;break}if(typeof n==`function`&&n()===!0){t=!0;break}}if(t)return e.preventDefault(),e.returnValue=``},C=wt({getLocation:h,getLength:()=>t.history.length,pushState:(e,t)=>y(`push`,e,t),replaceState:(e,t)=>y(`replace`,e,t),back:e=>(e&&(p=!0),m=!0,t.history.back()),forward:e=>{e&&(p=!0),m=!0,t.history.forward()},go:e=>{d=!0,t.history.go(e)},createHref:e=>s(e),flush:v,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(Ct,S,{capture:!0}),t.removeEventListener(St,x)},onBlocked:()=>{u&&l!==u&&(l=u)},getBlockers:a,setBlockers:o,notifyOnIndexChange:!1});return t.addEventListener(Ct,S,{capture:!0}),t.addEventListener(St,x),t.history.pushState=function(...e){let r=n.apply(t.history,e);return C._ignoreSubscribers||b(`PUSH`),r},t.history.replaceState=function(...e){let n=r.apply(t.history,e);return C._ignoreSubscribers||b(`REPLACE`),n},C}function Dt(e){let t=e.replace(/[\x00-\x1f\x7f]/g,``);return t.startsWith(`//`)&&(t=`/`+t.replace(/^\/+/,``)),t}function Ot(e,t){let n=Dt(e),r=n.indexOf(`#`),i=n.indexOf(`?`),a=kt();return{href:n,pathname:n.substring(0,r>0?i>0?Math.min(r,i):r:i>0?i:n.length),hash:r>-1?n.substring(r):``,search:i>-1?n.slice(i,r===-1?void 0:r):``,state:t||{[xt]:0,key:a,__TSR_key:a}}}function kt(){return(Math.random()+1).toString(36).substring(7)}function At(e){return e instanceof Error?{name:e.name,message:e.message}:{data:e}}function jt(e,t){let n=t,r=e;return{fromLocation:n,toLocation:r,pathChanged:n?.pathname!==r.pathname,hrefChanged:n?.href!==r.href,hashChanged:n?.hash!==r.hash}}var Mt=class{constructor(e,t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=e=>e(),this.update=e=>{let t=this.options,n=this.basepath??t?.basepath??`/`,r=this.basepath===void 0,i=t?.rewrite;if(this.options={...t,...e},this.isServer=this.options.isServer??typeof document>`u`,this.protocolAllowlist=new Set(this.options.protocolAllowlist),this.options.pathParamsAllowedCharacters&&(this.pathParamsDecoder=D(this.options.pathParamsAllowedCharacters)),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.history=Et()),this.origin=this.options.origin,this.origin||(window?.origin&&window.origin!==`null`?this.origin=window.origin:this.origin=`http://localhost`),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){this.routeTree=this.options.routeTree;let e;this.resolvePathCache=u(1e3),e=this.buildRouteTree(),this.setRoutes(e)}if(!this.stores&&this.latestLocation){let e=this.getStoreConfig(this);this.batch=e.batch,this.stores=Xe(Ft(this.latestLocation),e),Re(this)}let a=!1,o=this.options.basepath??`/`,s=this.options.rewrite;if(r||n!==o||i!==s){this.basepath=o;let e=[],t=L(o);t&&t!==`/`&&e.push(qe({basepath:o})),s&&e.push(s),this.rewrite=e.length===0?void 0:e.length===1?e[0]:Ke(e),this.history&&this.updateLatestLocation(),a=!0}a&&this.stores&&this.stores.location.set(this.latestLocation),typeof window<`u`&&`CSS`in window&&typeof window.CSS?.supports==`function`&&(this.isViewTransitionTypesSupported=window.CSS.supports(`selector(:active-view-transition-type(a)`))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{let e=x(this.routeTree,this.options.caseSensitive,(e,t)=>{e.init({originalIndex:t})});return this.options.routeMasks&&re(this.options.routeMasks,e.processedTree),e},this.subscribe=(e,t)=>
10{let n={eventType:e,fn:t};return this.subscribers.add(n),()=>{this.subscribers.delete(n)}},this.emit=e=>{this.subscribers.forEach(t=>{t.eventType===e.type&&t.fn(e)})},this.parseLocation=(e,t)=>{let n=({pathname:e,search:n,hash:r,href:i,state:a})=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(e)){let i=this.options.parseSearch(n),o=this.options.stringifySearch(i);return{href:e+o+r,publicHref:e+o+r,pathname:A(e).path,external:!1,searchStr:o,search:S(t?.search,i),hash:A(r.slice(1)).path,state:f(t?.state,a)}}let o=new URL(i,this.origin),s=Je(this.rewrite,o),c=this.options.parseSearch(s.search),l=this.options.stringifySearch(c);return s.search=l,{href:s.href.replace(s.origin,``),publicHref:i,pathname:A(s.pathname).path,external:!!this.rewrite&&s.origin!==this.origin,searchStr:l,search:S(t?.search,c),hash:A(s.hash.slice(1)).path,state:f(t?.state,a)}},r=n(e),{__tempLocation:i,__tempKey:a}=r.state;if(i&&(!a||a===this.tempLocationKey)){let e=n(i);return e.state.key=r.state.key,e.state.__TSR_key=r.state.__TSR_key,delete e.state.__tempLocation,{...e,maskedLocation:r}}return r},this.resolvePathWithBase=(e,t)=>C({base:e,to:ee(t),trailingSlash:this.options.trailingSlash,cache:this.resolvePathCache}),this.matchRoutes=(e,t,n)=>typeof e==`string`?this.matchRoutesInternal({pathname:e,search:t},n):this.matchRoutesInternal(e,t),this.getMatchedRoutes=e=>Lt({pathname:e,routesById:this.routesById,processedTree:this.processedTree}),this.cancelMatch=e=>{let t=this.getMatch(e);t&&(t.abortController.abort(),clearTimeout(t._nonReactive.pendingTimeout),t._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{this.stores.pendingIds.get().forEach(e=>{this.cancelMatch(e)}),this.stores.matchesId.get().forEach(e=>{if(this.stores.pendingMatchStores.has(e))return;let t=this.stores.matchStores.get(e)?.get();t&&(t.status===`pending`||t.isFetching===`loader`)&&this.cancelMatch(e)})},this.buildLocation=e=>{let t=(t={})=>{let n=t._fromLocation||this.pendingBuiltLocation||this.latestLocation,r=this.matchRoutesLightweight(n);t.from;let i=t.unsafeRelative===`path`?n.pathname:t.from??r.fullPath,a=this.resolvePathWithBase(i,`.`),o=r.search,s=Object.assign(Object.create(null),r.params),c=t.to?this.resolvePathWithBase(a,`${t.to}`):this.resolvePathWithBase(a,`.`),l=t.params===!1||t.params===null?Object.create(null):(t.params??!0)===!0?s:Object.assign(s,d(t.params,s)),u=this.getMatchedRoutes(c),p=u.matchedRoutes;if((!u.foundRoute||u.foundRoute.path!==`/`&&u.routeParams[`**`])&&this.options.notFoundRoute&&(p=[...p,this.options.notFoundRoute]),Object.keys(l).length>0)for(let e of p){let t=e.options.params?.stringify??e.options.stringifyParams;if(t)try{Object.assign(l,t(l))}catch{}}let m=e.leaveParams?c:A(M({path:c,params:l,decoder:this.pathParamsDecoder,server:this.isServer}).interpolatedPath).path,h=o;if(e._includeValidateSearch&&this.options.search?.strict){let e={};p.forEach(t=>{if(t.options.validateSearch)try{Object.assign(e,It(t.options.validateSearch,{...e,...h}))}catch{}}),h=e}h=Rt({search:h,dest:t,destRoutes:p,_includeValidateSearch:e._includeValidateSearch}),h=S(o,h);let _=this.options.stringifySearch(h),v=t.hash===!0?n.hash:t.hash?d(t.hash,n.hash):void 0,y=v?`#${v}`:``,b=t.state===!0?n.state:t.state?d(t.state,n.state):{};b=f(n.state,b);let x=`${m}${_}${y}`,C,w,E=!1;if(this.rewrite){let e=new URL(x,this.origin),t=Ye(this.rewrite,e);C=e.href.replace(e.origin,``),t.origin===this.origin?w=t.pathname+t.search+t.hash:(w=t.href,E=!0)}else C=g(x),w=C;return{publicHref:w,href:C,pathname:m,search:h,searchStr:_,state:b,hash:v??``,external:E,unmaskOnReload:t.unmaskOnReload}},n=(n={},r)=>{let i=t(n),a=r?t(r):void 0;if(!a){let n=Object.create(null);if(this.options.routeMasks){let o=R(i.pathname,this.processedTree);if(o){Object.assign(n,o.rawParams);let{from:i,params:s,...c}=o.route,l=s===!1||s===null?Object.create(null):(s??!0)===!0?n:Object.assign(n,d(s,n));r={from:e.from,...c,params:l},a=t(r)}}}return a&&(i.maskedLocation=a),i};return e.mask?n(e,{from:e.from,...e.mask}):n(e)},this.commitLocation=async({viewTransition:e,ignoreBlocker:t,...n})=>{let r=()=>{let e=[`key`,`__TSR_key`,`__TSR_index`,`__hashScrollIntoViewOptions`];
10e.forEach(e=>{n.state[e]=this.latestLocation.state[e]});let t=h(n.state,this.latestLocation.state);return e.forEach(e=>{delete n.state[e]}),t},i=E(this.latestLocation.href)===E(n.href),a=this.commitLocationPromise;if(this.commitLocationPromise=o(()=>{a?.resolve(),a=void 0}),i&&r())this.load();else{let{maskedLocation:r,hashScrollIntoView:i,...a}=n;r&&(a={...r,state:{...r.state,__tempKey:void 0,__tempLocation:{...a,search:a.searchStr,state:{...a.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(a.unmaskOnReload??this.options.unmaskOnReload??!1)&&(a.state.__tempKey=this.tempLocationKey)),a.state.__hashScrollIntoViewOptions=i??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=e,this.history[n.replace?`replace`:`push`](a.publicHref,a.state,{ignoreBlocker:t})}return this.resetNextScroll=n.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:e,resetScroll:t,hashScrollIntoView:n,viewTransition:r,ignoreBlocker:i,href:a,...o}={})=>{if(a){let t=this.history.location.state.__TSR_index,n=Ot(a,{__TSR_index:e?t:t+1}),r=new URL(n.pathname,this.origin);o.to=Je(this.rewrite,r).pathname,o.search=this.options.parseSearch(n.search),o.hash=n.hash.slice(1)}let s=this.buildLocation({...o,_includeValidateSearch:!0});this.pendingBuiltLocation=s;let c=this.commitLocation({...s,viewTransition:r,replace:e,resetScroll:t,hashScrollIntoView:n,ignoreBlocker:i});return Promise.resolve().then(()=>{this.pendingBuiltLocation===s&&(this.pendingBuiltLocation=void 0)}),c},this.navigate=async({to:e,reloadDocument:t,href:n,publicHref:r,...i})=>{let a=!1;if(n)try{new URL(`${n}`),a=!0}catch{}if(a&&!t&&(t=!0),t){if(e!==void 0||!n){let t=this.buildLocation({to:e,...i});n??=t.publicHref,r??=t.publicHref}let t=!a&&r?r:n;if(p(t,this.protocolAllowlist))return Promise.resolve();if(!i.ignoreBlocker){let e=this.history.getBlockers?.()??[];for(let t of e)if(t?.blockerFn&&await t.blockerFn({currentLocation:this.latestLocation,nextLocation:this.latestLocation,action:`PUSH`}))return Promise.resolve()}return i.replace?window.location.replace(t):window.location.href=t,Promise.resolve()}return this.buildAndCommitLocation({...i,href:n,to:e,_isNavigate:!0})},this.beforeLoad=()=>{this.cancelMatches(),this.updateLatestLocation();let e=this.matchRoutes(this.latestLocation),t=this.stores.cachedMatches.get().filter(t=>!e.some(e=>e.id===t.id));this.batch(()=>{this.stores.status.set(`pending`),this.stores.statusCode.set(200),this.stores.isLoading.set(!0),this.stores.location.set(this.latestLocation),this.stores.setPending(e),this.stores.setCached(t)})},this.load=async e=>{let t,n,r,i=this.stores.resolvedLocation.get()??this.stores.location.get();for(r=new Promise(a=>{this.startTransition(async()=>{try{this.beforeLoad();let t=this.latestLocation,n=jt(t,this.stores.resolvedLocation.get());this.stores.redirect.get()||this.emit({type:`onBeforeNavigate`,...n}),this.emit({type:`onBeforeLoad`,...n}),await gt({router:this,sync:e?.sync,forceStaleReload:i.href===t.href,matches:this.stores.pendingMatches.get(),location:t,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let e=null,t=null,n=null,r=null;this.batch(()=>{let i=this.stores.pendingMatches.get(),a=i.length,o=this.stores.matches.get();e=a?o.filter(e=>!this.stores.pendingMatchStores.has(e.id)):null;let s=new Set;for(let e of this.stores.pendingMatchStores.values())e.routeId&&s.add(e.routeId);let c=new Set;for(let e of this.stores.matchStores.values())e.routeId&&c.add(e.routeId);t=a?o.filter(e=>!s.has(e.routeId)):null,n=a?i.filter(e=>!c.has(e.routeId)):null,r=a?i.filter(e=>c.has(e.routeId)):o,this.stores.isLoading.set(!1),this.stores.loadedAt.set(Date.now()),a&&(this.stores.setMatches(i),this.stores.setPending([]),this.stores.setCached([...this.stores.cachedMatches.get(),...e.filter(e=>e.status!==`error`&&e.status!==`notFound`&&e.status!==`redirected`)]),this.clearExpiredCache())});for(let[e,i]of[[t,`onLeave`],[n,`onEnter`],[r,`onStay`]])if(e)for(let t of e)this.looseRoutesById[t.routeId].options[i]?.(t)})})}})}catch(e){de(e)?(t=e,this.navigate({...t.options,replace:!0,ignoreBlocker:!0})):z(e)&&(n=e);let r=t?t.status:n?404:this.stores.matches.get().some(e=>e.status===`error`)?500:200;this.batch(()=>{this.stores.statusCode.set(r),this.stores.redirect.set(t)})}this.latestLoadPromise===r&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),a()})}),this.latestLoadPromise=r,await r;this.latestLoadPromise&&r!==this.latestLoadPromise;)await this.latestLoadPromise;let a;this.hasNotFoundMatch()?a=404:this.stores.matches.get().some(e=>e.status===`error`)&&(a=500),a!==void 0&&this.stores.statusCode.set(a)},this.startViewTransition=e=>{let t=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,t&&typeof document<`u`&&`startViewTransition`in document&&typeof document.startViewTransition==`function`){let n;if(typeof t==`object`&&this.isViewTransitionTypesSupported){let r=this.latestLocation,i=this.stores.resolvedLocation.get(),a=typeof t.types==`function`?t.types(jt(r,i)):t.types;if(a===!1){e();return}n={update:e,types:a}}else n=e;document.startViewTransition(n)}else e()},this.updateMatch=(e,t)=>{this.startTransition(()=>
10{let n=this.stores.pendingMatchStores.get(e);if(n){n.set(t);return}let r=this.stores.matchStores.get(e);if(r){r.set(t);return}let i=this.stores.cachedMatchStores.get(e);if(i){let n=t(i.get());n.status===`redirected`?this.stores.cachedMatchStores.delete(e)&&this.stores.cachedIds.set(t=>t.filter(t=>t!==e)):i.set(n)}})},this.getMatch=e=>this.stores.cachedMatchStores.get(e)?.get()??this.stores.pendingMatchStores.get(e)?.get()??this.stores.matchStores.get(e)?.get(),this.invalidate=e=>{let t=t=>e?.filter?.(t)??!0?{...t,invalid:!0,...e?.forcePending||t.status===`error`||t.status===`notFound`?{status:`pending`,error:void 0}:void 0}:t;return this.batch(()=>{this.stores.setMatches(this.stores.matches.get().map(t)),this.stores.setCached(this.stores.cachedMatches.get().map(t)),this.stores.setPending(this.stores.pendingMatches.get().map(t))}),this.shouldViewTransition=!1,this.load({sync:e?.sync})},this.getParsedLocationHref=e=>e.publicHref||`/`,this.resolveRedirect=e=>{let t=e.headers.get(`Location`);if(!e.options.href||e.options._builtLocation){let t=e.options._builtLocation??this.buildLocation(e.options),n=this.getParsedLocationHref(t);e.options.href=n,e.headers.set(`Location`,n)}else if(t)try{let n=new URL(t);if(this.origin&&n.origin===this.origin){let t=n.pathname+n.search+n.hash;e.options.href=t,e.headers.set(`Location`,t)}}catch{}if(e.options.href&&!e.options._builtLocation&&p(e.options.href,this.protocolAllowlist))throw Error(`Redirect blocked: unsafe protocol`);return e.headers.get(`Location`)||e.headers.set(`Location`,e.options.href),e},this.clearCache=e=>{let t=e?.filter;t===void 0?this.stores.setCached([]):this.stores.setCached(this.stores.cachedMatches.get().filter(e=>!t(e)))},this.clearExpiredCache=()=>{let e=Date.now();this.clearCache({filter:t=>{let n=this.looseRoutesById[t.routeId];if(!n.options.loader)return!0;let r=(t.preload?n.options.preloadGcTime??this.options.defaultPreloadGcTime:n.options.gcTime??this.options.defaultGcTime)??300*1e3;return t.status===`error`||e-t.updatedAt>=r}})},this.loadRouteChunk=vt,this.preloadRoute=async e=>{let t=e._builtLocation??this.buildLocation(e),n=this.matchRoutes(t,{throwOnError:!0,preload:!0,dest:e}),r=new Set([...this.stores.matchesId.get(),...this.stores.pendingIds.get()]),i=new Set([...r,...this.stores.cachedIds.get()]),a=n.filter(e=>!i.has(e.id));if(a.length){let e=this.stores.cachedMatches.get();this.stores.setCached([...e,...a])}try{return n=await gt({router:this,matches:n,location:t,preload:!0,updateMatch:(e,t)=>{r.has(e)?n=n.map(n=>n.id===e?t(n):n):this.updateMatch(e,t)}}),n}catch(e){if(de(e))return e.options.reloadDocument?void 0:await this.preloadRoute({...e.options,_fromLocation:t});z(e)||console.error(e);return}},this.matchRoute=(e,t)=>{let n={...e,to:e.to?this.resolvePathWithBase(e.from||``,e.to):void 0,params:e.params||{},leaveParams:!0},r=this.buildLocation(n);if(t?.pending&&this.stores.status.get()!==`pending`)return!1;let i=(t?.pending===void 0?!this.stores.isLoading.get():t.pending)?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),a=c(r.pathname,t?.caseSensitive??!1,t?.fuzzy??!1,i.pathname,this.processedTree);return!a||e.params&&!h(a.rawParams,e.params,{partial:!0})?!1:t?.includeSearch??!0?h(i.search,r.search,{partial:!0})?a.rawParams:!1:a.rawParams},this.hasNotFoundMatch=()=>this.stores.matches.get().some(e=>e.status===`notFound`||e.globalNotFound),this.getStoreConfig=t,this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??`fuzzy`,stringifySearch:e.stringifySearch??Ue,parseSearch:e.parseSearch??He,protocolAllowlist:e.protocolAllowlist??_}),typeof document<`u`&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.stores.__store.get()}setRoutes({routesById:e,routesByPath:t,processedTree:n}){this.routesById=e,this.routesByPath=t,this.processedTree=n;let r=this.options.notFoundRoute;r&&(r.init({originalIndex:99999999999}),this.routesById[r.id]=r)}get looseRoutesById(){return this.routesById}getParentContext(e){return e?.id?e.context??this.options.context??void 0:this.options.context??void 0}matchRoutesInternal(e,t){let n=this.getMatchedRoutes(e.pathname),{foundRoute:r,routeParam
10s:i,parsedParams:a}=n,{matchedRoutes:s}=n,c=!1;(r?r.path!==`/`&&i[`**`]:E(e.pathname))&&(this.options.notFoundRoute?s=[...s,this.options.notFoundRoute]:c=!0);let l=c?Bt(this.options.notFoundMode,s):void 0,u=Array(s.length),d=new Map;for(let e of this.stores.matchStores.values())e.routeId&&d.set(e.routeId,e.get());for(let n=0;n<s.length;n++){let r=s[n],c=u[n-1],p,m,h;{let n=c?.search??e.search,i=c?._strictSearch??void 0;try{let e=It(r.options.validateSearch,{...n})??void 0;p={...n,...e},m={...i,...e},h=void 0}catch(e){let r=e;if(e instanceof Nt||(r=new Nt(e.message,{cause:e})),t?.throwOnError)throw r;p=n,m={},h=r}}let g=r.options.loaderDeps?.({search:p})??``,_=g?JSON.stringify(g):``,{interpolatedPath:v,usedParams:y}=M({path:r.fullPath,params:i,decoder:this.pathParamsDecoder,server:this.isServer}),b=r.id+v+_,x=this.getMatch(b),C=d.get(r.id),w=x?._strictParams??y,E;if(!x)try{Vt(r,y,a,w)}catch(e){if(E=z(e)||de(e)?e:new Pt(e.message,{cause:e}),t?.throwOnError)throw E}Object.assign(i,w);let ee=C?`stay`:`enter`,D;if(x)D={...x,cause:ee,params:C?.params??i,_strictParams:w,search:S(C?C.search:x.search,p),_strictSearch:m};else{let e=r.options.loader||r.options.beforeLoad||r.lazyFn||yt(r)?`pending`:`success`;D={id:b,ssr:r.options.ssr,index:n,routeId:r.id,params:C?.params??i,_strictParams:w,pathname:v,updatedAt:Date.now(),search:C?S(C.search,p):p,_strictSearch:m,searchError:void 0,status:e,isFetching:!1,error:void 0,paramsError:E,__routeContext:void 0,_nonReactive:{loadPromise:o()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:ee,loaderDeps:C?f(C.loaderDeps,g):g,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:r.options.staticData||{},fullPath:r.fullPath}}t?.preload||(D.globalNotFound=l===r.id),D.searchError=h;let O=this.getParentContext(c);D.context={...O,...D.__routeContext,...D.__beforeLoadContext},u[n]=D}for(let t=0;t<u.length;t++){let n=u[t],r=this.looseRoutesById[n.routeId],a=this.getMatch(n.id),o=d.get(n.routeId);if(n.params=o?S(o.params,i):i,!a){let i=u[t-1],a=this.getParentContext(i);if(r.options.context){let t={deps:n.loaderDeps,params:n.params,context:a??{},location:e,navigate:t=>this.navigate({...t,_fromLocation:e}),buildLocation:this.buildLocation,cause:n.cause,abortController:n.abortController,preload:!!n.preload,matches:u,routeId:r.id};n.__routeContext=r.options.context(t)??void 0}n.context={...a,...n.__routeContext,...n.__beforeLoadContext}}}return u}matchRoutesLightweight(e){let{matchedRoutes:t,routeParams:n,parsedParams:r}=this.getMatchedRoutes(e.pathname),i=s(t),a={...e.search};for(let e of t)try{Object.assign(a,It(e.options.validateSearch,a))}catch{}let o=s(this.stores.matchesId.get()),c=o&&this.stores.matchStores.get(o)?.get(),l=c&&c.routeId===i.id&&c.pathname===e.pathname,u;if(l)u=c.params;else{let e=Object.assign(Object.create(null),n);for(let i of t)try{Vt(i,n,r??{},e)}catch{}u=e}return{matchedRoutes:t,fullPath:i.fullPath,search:a,params:u}}},Nt=class extends Error{},Pt=class extends Error{};function Ft(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:`idle`,resolvedLocation:void 0,location:e,matches:[],statusCode:200}}function It(e,t){if(e==null)return{};if(`~standard`in e){let n=e[`~standard`].validate(t);if(n instanceof Promise)throw new Nt(`Async validation not supported`);if(n.issues)throw new Nt(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return`parse`in e?e.parse(t):typeof e==`function`?e(t):{}}function Lt({pathname:e,routesById:t,processedTree:n}){let r=Object.create(null),i=E(e),a,o,s=b(i,n,!0);return s&&(a=s.route,Object.assign(r,s.rawParams),o=Object.assign(Object.create(null),s.parsedParams)),{matchedRoutes:s?.branch||[t.__root__],routeParams:r,foundRoute:a,parsedParams:o}}function Rt({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){return zt(n)(e,t,r??!1)}function zt(e){let t={dest:null,_includeValidateSearch:!1,middlewares:[]};for(let n of e)`search`in n.options?n.options.search?.middlewares&&t.middlewares.push(...n.options.search.middlewares):(n.options.preSearchFilters||n.options.postSearchFilters)&&t.middlewares.push(({search:e,next:t})=>{let r=e;
10`preSearchFilters`in n.options&&n.options.preSearchFilters&&(r=n.options.preSearchFilters.reduce((e,t)=>t(e),e));let i=t(r);return`postSearchFilters`in n.options&&n.options.postSearchFilters?n.options.postSearchFilters.reduce((e,t)=>t(e),i):i}),n.options.validateSearch&&t.middlewares.push(({search:e,next:r})=>{let i=r(e);if(!t._includeValidateSearch)return i;try{return{...i,...It(n.options.validateSearch,i)??void 0}}catch{return i}});t.middlewares.push(({search:e})=>{let n=t.dest;return n.search?n.search===!0?e:d(n.search,e):{}});let n=(e,t,r)=>{if(e>=r.length)return t;let i=r[e];return i({search:t,next:t=>n(e+1,t,r)})};return function(e,r,i){return t.dest=r,t._includeValidateSearch=i,n(0,e,t.middlewares)}}function Bt(e,t){if(e!==`root`)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.children)return n.id}return ue}function Vt(e,t,n,r){let i=e.options.params?.parse??e.options.parseParams;if(i)if(e.options.skipRouteOnParseError)for(let e in t)e in n&&(r[e]=n[e]);else{let e=i(r);Object.assign(r,e)}}var Ht=Symbol.for(`TSR_DEFERRED_PROMISE`);function Ut(e,t){let n=e;return n[Ht]?n:(n[Ht]={status:`pending`},n.then(e=>{n[Ht].status=`success`,n[Ht].data=e}).catch(e=>{n[Ht].status=`error`,n[Ht].error={data:(t?.serializeError??At)(e),__isServerError:!0}}),n)}function Wt(e,t){if(e)return typeof e==`string`?e:e[t]}function Gt(e){return typeof e==`string`?{href:e,crossOrigin:void 0}:e}function Kt(e){if(e.tag!==`link`)return;let t=e.attrs?.rel,n=e.attrs?.href;if(typeof n==`string`&&(typeof t==`string`?t.split(/\s+/):[]).includes(`stylesheet`))return n}function qt(e,t){let n=Kt(t);return!!n&&e?.inlineCss?.styles[n]!==void 0}var Jt=class{get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}constructor(e){if(this.init=e=>{this.originalIndex=e.originalIndex;let t=this.options,n=!t?.path&&!t?.id;this.parentRoute=this.options.getParentRoute?.(),n?this._path=ue:this.parentRoute||l();let r=n?ue:t?.path;r&&r!==`/`&&(r=ie(r));let i=t?.id||r,a=n?ue:O([this.parentRoute.id===`__root__`?``:this.parentRoute.id,i]);r===`__root__`&&(r=`/`),a!==`__root__`&&(a=O([`/`,a]));let o=a===`__root__`?`/`:O([this.parentRoute.fullPath,r]);this._path=r,this._id=a,this._fullPath=o,this._to=E(o)},this.addChildren=e=>this._addFileChildren(e),this._addFileChildren=e=>(Array.isArray(e)&&(this.children=e),typeof e==`object`&&e&&(this.children=Object.values(e)),this),this._addFileTypes=()=>this,this.updateLoader=e=>(Object.assign(this.options,e),this),this.update=e=>(Object.assign(this.options,e),this),this.lazy=e=>(this.lazyFn=e,this),this.redirect=e=>se({from:this.fullPath,...e}),this.options=e||{},this.isRoot=!e?.getParentRoute,e?.id&&e?.path)throw Error(`Route cannot have both an 'id' and a 'path' option.`)}},Yt=class extends Jt{constructor(e){super(e)}};function Xt(e){if(typeof document<`u`&&document.querySelector){let t=e.stores.location.get(),n=t.state.__hashScrollIntoViewOptions??!0;if(n&&t.hash!==``){let e=document.getElementById(t.hash);e&&e.scrollIntoView(n)}}}var Zt=(e=>(e[e.AggregateError=1]=`AggregateError`,e[e.ArrowFunction=2]=`ArrowFunction`,e[e.ErrorPrototypeStack=4]=`ErrorPrototypeStack`,e[e.ObjectAssign=8]=`ObjectAssign`,e[e.BigIntTypedArray=16]=`BigIntTypedArray`,e[e.RegExp=32]=`RegExp`,e))(Zt||{}),Qt=Symbol.asyncIterator,$t=Symbol.hasInstance,en=Symbol.isConcatSpreadable,tn=Symbol.iterator,nn=Symbol.match,rn=Symbol.matchAll,an=Symbol.replace,on=Symbol.search,sn=Symbol.species,cn=Symbol.split,ln=Symbol.toPrimitive,un=Symbol.toStringTag,dn=Symbol.unscopables,fn={[Qt]:0,[$t]:1,[en]:2,[tn]:3,[nn]:4,[rn]:5,[an]:6,[on]:7,[sn]:8,[cn]:9,[ln]:10,[un]:11,[dn]:12},pn={0:Qt,1:$t,2:en,3:tn,4:nn,5:rn,6:an,7:on,8:sn,9:cn,10:ln,11:un,12:dn},B=void 0,mn={2:!0,3:!1,1:B,0:null,4:-0,5:1/0,6:-1/0,7:NaN},hn={0:`Error`,1:`EvalError`,2:`RangeError`,3:`ReferenceError`,4:`SyntaxError`,5:`TypeError`,6:`URIError`},gn={0:Error,1:EvalError,2:RangeError,3:ReferenceError,4:SyntaxError,5:TypeError,6:URIError};function _n(e,t,n,r,i,a,o,s,c,l,u,d){return{t:e,i:t,s:n,c:r,m:i,p:a,e:o,a:s,f:c,b:l,o:u,l:d}}function vn(e){return _n(2,B,e,B,B,B,B,B,B,B,B,B)}var yn=vn(2),bn=vn(3),xn=vn(1),Sn=vn(0),Cn=vn(4),wn=vn(5),Tn=vn(6),En=vn(7);function Dn(e){switch(e){case`"`:return`\\"`;case`\\`:return`\\\\`;case` 11`:return`\\n`;case`\r`:return`\\r`;case`\b`:return`\\b`;case` `:return`\\t`;case`\f`:return`\\f`;case`<`:return`\\x3C`;case`\u2028`:return`\\u2028`;case`\u2029`:return`\\u2029`;default:return B}}function On(e){let t=``,n=0,r;for(let i=0,a=e.length;i<a;i++)r=Dn(e[i]),r&&(t+=e.slice(n,i)+r,n=i+1);return n===0?t=e:t+=e.slice(n),t}function kn(e){switch(e){case`\\\\`:return`\\`;case`\\"`:return`"`;case`\\n`:return` 12`;case`\\r`:return`\r`;case`\\b`:return`\b`;case`\\t`:return` `;case`\\f`:return`\f`;case`\\x3C`:return`<`;case`\\u2028`:return`\u2028`;case`\\u2029`:return`\u2029`;default:return e}}function An(e){return e.replace(/(\\\\|\\"|\\n|\\r|\\b|\\t|\\f|\\u2028|\\u2029|\\x3C)/g,kn)}var jn=`__SEROVAL_REFS__`,Mn=new Map,Nn=new Map;function Pn(e){return Mn.has(e)}function Fn(e){return Nn.has(e)}function In(e){if(Pn(e))return Mn.get(e);throw new wr(e)}function Ln(e){if(Fn(e))return Nn.get(e);throw new Tr(e)}typeof globalThis<`u`?Object.defineProperty(globalThis,jn,{value:Nn,configurable:!0,writable:!1,enumerable:!1}):typeof window<`u`?Object.defineProperty(window,jn,{value:Nn,configurable:!0,writable:!1,enumerable:!1}):typeof self<`u`?Object.defineProperty(self,jn,{value:Nn,configurable:!0,writable:!1,enumerable:!1}):typeof global<`u`&&Object.defineProperty(global,jn,{value:Nn,configurable:!0,writable:!1,enumerable:!1});function Rn(e){return e instanceof EvalError?1:e instanceof RangeError?2:e instanceof ReferenceError?3:e instanceof SyntaxError?4:e instanceof TypeError?5:e instanceof URIError?6:0}function zn(e){let t=hn[Rn(e)];return e.name===t?e.constructor.name===t?{}:{name:e.constructor.name}:{name:e.name}}function Bn(e,t){let n=zn(e),r=Object.getOwnPropertyNames(e);for(let i=0,a=r.length,o;i<a;i++)o=r[i],o!==`name`&&o!==`message`&&(o===`stack`?t&4&&(n||={},n[o]=e[o]):(n||={},n[o]=e[o]));return n}function Vn(e){return Object.isFrozen(e)?3:Object.isSealed(e)?2:+!Object.isExtensible(e)}function Hn(e){switch(e){case 1/0:return wn;case-1/0:return Tn}return e===e?Object.is(e,-0)?Cn:_n(0,B,e,B,B,B,B,B,B,B,B,B):En}function Un(e){return _n(1,B,On(e),B,B,B,B,B,B,B,B,B)}function Wn(e){return _n(3,B,``+e,B,B,B,B,B,B,B,B,B)}function Gn(e){return _n(4,e,B,B,B,B,B,B,B,B,B,B)}function Kn(e,t){let n=t.valueOf();return _n(5,e,n===n?t.toISOString():``,B,B,B,B,B,B,B,B,B)}function qn(e,t){return _n(6,e,B,On(t.source),t.flags,B,B,B,B,B,B,B)}function Jn(e,t){return _n(17,e,fn[t],B,B,B,B,B,B,B,B,B)}function Yn(e,t){return _n(18,e,On(In(t)),B,B,B,B,B,B,B,B,B)}function Xn(e,t,n){return _n(25,e,n,On(t),B,B,B,B,B,B,B,B)}function Zn(e,t,n){return _n(9,e,B,B,B,B,B,n,B,B,Vn(t),B)}function Qn(e,t){return _n(21,e,B,B,B,B,B,B,t,B,B,B)}function $n(e,t,n){return _n(15,e,B,t.constructor.name,B,B,B,B,n,t.byteOffset,B,t.length)}function er(e,t,n){return _n(16,e,B,t.constructor.name,B,B,B,B,n,t.byteOffset,B,t.byteLength)}function tr(e,t,n){return _n(20,e,B,B,B,B,B,B,n,t.byteOffset,B,t.byteLength)}function nr(e,t,n){return _n(13,e,Rn(t),B,On(t.message),n,B,B,B,B,B,B)}function rr(e,t,n){return _n(14,e,Rn(t),B,On(t.message),n,B,B,B,B,B,B)}function ir(e,t){return _n(7,e,B,B,B,B,B,t,B,B,B,B)}function ar(e,t){return _n(28,B,B,B,B,B,B,[e,t],B,B,B,B)}function or(e,t){return _n(30,B,B,B,B,B,B,[e,t],B,B,B,B)}function sr(e,t,n){return _n(31,e,B,B,B,B,B,n,t,B,B,B)}function cr(e,t){return _n(32,e,B,B,B,B,B,B,t,B,B,B)}function lr(e,t){return _n(33,e,B,B,B,B,B,B,t,B,B,B)}function ur(e,t){return _n(34,e,B,B,B,B,B,B,t,B,B,B)}function dr(e,t,n,r){return _n(35,e,n,B,B,B,B,t,B,B,B,r)}var{toString:fr}
12=Object.prototype,pr={parsing:1,serialization:2,deserialization:3};function mr(e){return`Seroval Error (step: ${pr[e]})`}var hr=(e,t)=>mr(e),gr=class extends Error{constructor(e,t){super(hr(e,t)),this.cause=t}},_r=class extends gr{constructor(e){super(`parsing`,e)}},vr=class extends gr{constructor(e){super(`deserialization`,e)}};function yr(e){return`Seroval Error (specific: ${e})`}var br=class extends Error{constructor(e){super(yr(1)),this.value=e}},xr=class extends Error{constructor(e){super(yr(2))}},Sr=class extends Error{constructor(e){super(yr(3))}},Cr=class extends Error{constructor(e){super(yr(4))}},wr=class extends Error{constructor(e){super(yr(5)),this.value=e}},Tr=class extends Error{constructor(e){super(yr(6))}},Er=class extends Error{constructor(e){super(yr(7))}},Dr=class extends Error{constructor(e){super(yr(8))}},Or=class extends Error{constructor(e){super(yr(9))}},kr=class{constructor(e,t){this.value=e,this.replacement=t}},Ar=()=>{let e={p:0,s:0,f:0};return e.p=new Promise((t,n)=>{e.s=t,e.f=n}),e};Ar.toString(),((e,t)=>{e.s(t),e.p.s=1,e.p.v=t}).toString(),((e,t)=>{e.f(t),e.p.s=2,e.p.v=t}).toString();var jr=()=>{let e=[],t=[],n=!0,r=!1,i=0,a=(e,n,r)=>{for(r=0;r<i;r++)t[r]&&t[r][n](e)},o=(t,i,a,o)=>{for(i=0,a=e.length;i<a;i++)o=e[i],!n&&i===a-1?t[r?`return`:`throw`](o):t.next(o)},s=(e,r)=>(n&&(r=i++,t[r]=e),o(e),()=>{n&&(t[r]=t[i],t[i--]=void 0)});return{__SEROVAL_STREAM__:!0,on:e=>s(e),next:t=>{n&&(e.push(t),a(t,`next`))},throw:i=>{n&&(e.push(i),a(i,`throw`),n=!1,r=!1,t.length=0)},return:i=>{n&&(e.push(i),a(i,`return`),n=!1,r=!0,t.length=0)}}};jr.toString();var Mr=e=>t=>()=>{let n=0,r={[e]:()=>r,next:()=>{if(n>t.d)return{done:!0,value:void 0};let e=n++,r=t.v[e];if(e===t.t)throw r;return{done:e===t.d,value:r}}};return r};Mr.toString();var Nr=(e,t)=>n=>()=>{let r=0,i=-1,a=!1,o=[],s=[],c=(e=0,t=s.length)=>{for(;e<t;e++)s[e].s({done:!0,value:void 0})};n.on({next:e=>{let t=s.shift();t&&t.s({done:!1,value:e}),o.push(e)},throw:e=>{let t=s.shift();t&&t.f(e),c(),i=o.length,a=!0,o.push(e)},return:e=>{let t=s.shift();t&&t.s({done:!0,value:e}),c(),i=o.length,o.push(e)}});let l={[e]:()=>l,next:()=>{if(i===-1){let e=r++;if(e>=o.length){let e=t();return s.push(e),e.p}return{done:!1,value:o[e]}}if(r>i)return{done:!0,value:void 0};let e=r++,n=o[e];if(e!==i)return{done:!1,value:n};if(a)throw n;return{done:!0,value:n}}};return l};Nr.toString();var Pr=e=>{let t=atob(e),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.charCodeAt(e);return r.buffer};Pr.toString();function Fr(e){return`__SEROVAL_SEQUENCE__`in e}function Ir(e,t,n){return{__SEROVAL_SEQUENCE__:!0,v:e,t,d:n}}function Lr(e){let t=[],n=-1,r=-1,i=e[tn]();for(;;)try{let e=i.next();if(t.push(e.value),e.done){r=t.length-1;break}}catch(e){n=t.length,t.push(e)}return Ir(t,n,r)}var Rr=Mr(tn);function zr(e){return Rr(e)}var Br={},Vr={},Hr={0:{},1:{},2:{},3:{},4:{},5:{}};function Ur(e){return`__SEROVAL_STREAM__`in e}function Wr(){return jr()}function Gr(e){let t=Wr(),n=e[Qt]();async function r(){try{let e=await n.next();e.done?t.return(e.value):(t.next(e.value),await r())}catch(e){t.throw(e)}}return r().catch(()=>{}),t}var Kr=Nr(Qt,Ar);function qr(e){return Kr(e)}async function Jr(e){try{return[1,await e]}catch(e){return[0,e]}}function Yr(e,t){return{plugins:t.plugins,mode:e,marked:new Set,features:63^(t.disabledFeatures||0),refs:t.refs||new Map,depthLimit:t.depthLimit||1e3}}function Xr(e,t){e.marked.add(t)}function Zr(e,t){let n=e.refs.size;return e.refs.set(t,n),n}function Qr(e,t){let n=e.refs.get(t);return n==null?{type:0,value:Zr(e,t)}:(Xr(e,n),{type:1,value:Gn(n)})}function $r(e,t){let n=Qr(e,t);return n.type===1?n:Pn(t)?{type:2,value:Yn(n.value,t)}:n}function ei(e,t){let n=$r(e,t);if(n.type!==0)return n.value;if(t in fn)return Jn(n.value,t);throw new br(t)}function ti(e,t){let n=Qr(e,Hr[t]);return n.type===1?n.value:_n(26,n.value,t,B,B,B,B,B,B,B,B,B)}function ni(e){let t=Qr(e,Br);return t.type===1?t.value:_n(27,t.value,B,B,B,B,B,B,ei(e,tn),B,B,B)}function ri(e){let t=Qr(e,Vr);return t.type===1?t.value:_n(29,t.value,B,B,B,B,B,[ti(e,1),ei(e,Qt)],B,B,B,B)}function ii(e,t,n,r){return _n(n?11:10,e,B,B,B,r,B,B,B,B,Vn(t),B)}function ai(e,t,n,r){return _n(8,t,B,B,B,B,{k:n,v:r},B,ti(e,0),B,B,B)}function oi(e,t,n){let r=new Uint8Array(n),i=``;for(let e=0,t=r.length;e<t;e++)i+=String.fromCharCode(r[e]);return _n(19,t,On(btoa(i)),B,B,B,B,B,ti(e,5),B,B,B)}function si(e,t){return{base:Yr(e,t),child:void 0}}var ci=class{constructor(e,t){this._p=e,this.depth=t}parse(e){return Oi(this._p,this.depth,e)}};
12async function li(e,t,n){let r=[];for(let i=0,a=n.length;i<a;i++)i in n?r[i]=await Oi(e,t,n[i]):r[i]=0;return r}async function ui(e,t,n,r){return Zn(n,r,await li(e,t,r))}async function di(e,t,n){let r=Object.entries(n),i=[],a=[];for(let n=0,o=r.length;n<o;n++)i.push(On(r[n][0])),a.push(await Oi(e,t,r[n][1]));return tn in n&&(i.push(ei(e.base,tn)),a.push(ar(ni(e.base),await Oi(e,t,Lr(n))))),Qt in n&&(i.push(ei(e.base,Qt)),a.push(or(ri(e.base),await Oi(e,t,Gr(n))))),un in n&&(i.push(ei(e.base,un)),a.push(Un(n[un]))),en in n&&(i.push(ei(e.base,en)),a.push(n[en]?yn:bn)),{k:i,v:a}}async function fi(e,t,n,r,i){return ii(n,r,i,await di(e,t,r))}async function pi(e,t,n,r){return Qn(n,await Oi(e,t,r.valueOf()))}async function mi(e,t,n,r){return $n(n,r,await Oi(e,t,r.buffer))}async function hi(e,t,n,r){return er(n,r,await Oi(e,t,r.buffer))}async function gi(e,t,n,r){return tr(n,r,await Oi(e,t,r.buffer))}async function _i(e,t,n,r){let i=Bn(r,e.base.features);return nr(n,r,i?await di(e,t,i):B)}async function vi(e,t,n,r){let i=Bn(r,e.base.features);return rr(n,r,i?await di(e,t,i):B)}async function yi(e,t,n,r){let i=[],a=[];for(let[n,o]of r.entries())i.push(await Oi(e,t,n)),a.push(await Oi(e,t,o));return ai(e.base,n,i,a)}async function bi(e,t,n,r){let i=[];for(let n of r.keys())i.push(await Oi(e,t,n));return ir(n,i)}async function xi(e,t,n,r){let i=e.base.plugins;if(i)for(let a=0,o=i.length;a<o;a++){let o=i[a];if(o.parse.async&&o.test(r))return Xn(n,o.tag,await o.parse.async(r,new ci(e,t),{id:n}))}return B}async function Si(e,t,n,r){let[i,a]=await Jr(r);return _n(12,n,i,B,B,B,B,B,await Oi(e,t,a),B,B,B)}function Ci(e,t,n,r,i){let a=[],o=n.on({next:n=>{Xr(this.base,t),Oi(this,e,n).then(e=>{a.push(cr(t,e))},e=>{i(e),o()})},throw:n=>{Xr(this.base,t),Oi(this,e,n).then(e=>{a.push(lr(t,e)),r(a),o()},e=>{i(e),o()})},return:n=>{Xr(this.base,t),Oi(this,e,n).then(e=>{a.push(ur(t,e)),r(a),o()},e=>{i(e),o()})}})}async function wi(e,t,n,r){return sr(n,ti(e.base,4),await new Promise(Ci.bind(e,t,n,r)))}async function Ti(e,t,n,r){let i=[];for(let n=0,a=r.v.length;n<a;n++)i[n]=await Oi(e,t,r.v[n]);return dr(n,i,r.t,r.d)}async function Ei(e,t,n,r){if(Array.isArray(r))return ui(e,t,n,r);if(Ur(r))return wi(e,t,n,r);if(Fr(r))return Ti(e,t,n,r);let i=r.constructor;if(i===kr)return Oi(e,t,r.replacement);let a=await xi(e,t,n,r);if(a)return a;switch(i){case Object:return fi(e,t,n,r,!1);case B:return fi(e,t,n,r,!0);case Date:return Kn(n,r);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return _i(e,t,n,r);case Number:case Boolean:case String:case BigInt:return pi(e,t,n,r);case ArrayBuffer:return oi(e.base,n,r);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return mi(e,t,n,r);case DataView:return gi(e,t,n,r);case Map:return yi(e,t,n,r);case Set:return bi(e,t,n,r);default:break}if(i===Promise||r instanceof Promise)return Si(e,t,n,r);let o=e.base.features;if(o&32&&i===RegExp)return qn(n,r);if(o&16)switch(i){case BigInt64Array:case BigUint64Array:return hi(e,t,n,r);default:break}if(o&1&&typeof AggregateError<`u`&&(i===AggregateError||r instanceof AggregateError))return vi(e,t,n,r);if(r instanceof Error)return _i(e,t,n,r);if(tn in r||Qt in r)return fi(e,t,n,r,!!i);throw new br(r)}async function Di(e,t,n){let r=$r(e.base,n);if(r.type!==0)return r.value;let i=await xi(e,t,r.value,n);if(i)return i;throw new br(n)}async function Oi(e,t,n){switch(typeof n){case`boolean`:return n?yn:bn;case`undefined`:return xn;case`string`:return Un(n);case`number`:return Hn(n);case`bigint`:return Wn(n);case`object`:if(n){let r=$r(e.base,n);return r.type===0?await Ei(e,t+1,r.value,n):r.value}return Sn;case`symbol`:return ei(e.base,n);case`function`:return Di(e,t,n);default:throw new br(n)}}async function ki(e,t){try{return await Oi(e,0,t)}catch(e){throw e instanceof _r?e:new _r(e)}}var Ai=(e=>(e[e.Vanilla=1]=`Vanilla`,e[e.Cross=2]=`Cross`,e))(Ai||{});function ji(e){return e}function Mi(e,t){for(let n=0,r=t.length;n<r;n++){let r=t[n];e.has(r)||(e.add(r),r.extends&&Mi(e,r.extends))}}function Ni(e){if(e){let t=new Set;return Mi(t,e),[...t]}}function Pi(e){switch(e){case`Int8Array`:return Int8Array;case`Int16Array`:return Int16Array;case`Int32Array`:return Int32Array;case`Uint8Array`:return Uint8Array;case`Uint16Array`:return Uint16Array;case`Uint32Array`:return Uint32Array;case`Uint8ClampedArray`:return Uint8ClampedArray;case`Float32Array`:return Float32Array;case`Float64Array`:return Float64Array;case`BigInt64Array`:return BigInt64Array;case`BigUint64Array`:return BigUint64Array;default:throw new Er(e)}}var Fi=1e6,Ii=1e4,Li=2e4;function Ri(e,t){switch(t){case 3:return Object.freeze(e);case 1:return Object.preventExtensions(e);case 2:return Object.seal(e);default:return e}}var zi=1e3;function Bi(e,t){return{mode:e,plugins:t.plugins,refs:t.refs||new Map,features:t.features??63^(t.disabledFeatures||0),depthLimit:t.depthLimit||zi}}
12function Vi(e){return{mode:2,base:Bi(2,e),child:B}}var Hi=class{constructor(e,t){this._p=e,this.depth=t}deserialize(e){return Da(this._p,this.depth,e)}};function Ui(e,t){if(t<0||!Number.isFinite(t)||!Number.isInteger(t))throw new Dr({t:4,i:t});if(e.refs.has(t))throw Error(`Conflicted ref id: `+t)}function Wi(e,t,n){return Ui(e.base,t),e.state.marked.has(t)&&e.base.refs.set(t,n),n}function Gi(e,t,n){return Ui(e.base,t),e.base.refs.set(t,n),n}function Ki(e,t,n){return e.mode===1?Wi(e,t,n):Gi(e,t,n)}function qi(e,t,n){if(Object.hasOwn(t,n))return t[n];throw new Dr(e)}function Ji(e,t){return Ki(e,t.i,Ln(An(t.s)))}function Yi(e,t,n){let r=n.a,i=r.length,a=Ki(e,n.i,Array(i));for(let n=0,o;n<i;n++)o=r[n],o&&(a[n]=Da(e,t,o));return Ri(a,n.o),a}function Xi(e){switch(e){case`constructor`:case`__proto__`:case`prototype`:case`__defineGetter__`:case`__defineSetter__`:case`__lookupGetter__`:case`__lookupSetter__`:return!1;default:return!0}}function Zi(e){switch(e){case Qt:case en:case un:case tn:return!0;default:return!1}}function Qi(e,t,n){Xi(t)?e[t]=n:Object.defineProperty(e,t,{value:n,configurable:!0,enumerable:!0,writable:!0})}function $i(e,t,n,r,i){if(typeof r==`string`)Qi(n,An(r),Da(e,t,i));else{let a=Da(e,t,r);switch(typeof a){case`string`:Qi(n,a,Da(e,t,i));break;case`symbol`:Zi(a)&&(n[a]=Da(e,t,i));break;default:throw new Dr(r)}}}function ea(e,t,n,r){let i=n.k;if(i.length>0)for(let a=0,o=n.v,s=i.length;a<s;a++)$i(e,t,r,i[a],o[a]);return r}function ta(e,t,n){let r=Ki(e,n.i,n.t===10?{}:Object.create(null));return ea(e,t,n.p,r),Ri(r,n.o),r}function na(e,t){return Ki(e,t.i,new Date(t.s))}function ra(e,t){if(e.base.features&32){let n=An(t.c);if(n.length>Li)throw new Dr(t);return Ki(e,t.i,new RegExp(n,t.m))}throw new xr(t)}function ia(e,t,n){let r=Ki(e,n.i,new Set);for(let i=0,a=n.a,o=a.length;i<o;i++)r.add(Da(e,t,a[i]));return r}function aa(e,t,n){let r=Ki(e,n.i,new Map);for(let i=0,a=n.e.k,o=n.e.v,s=a.length;i<s;i++)r.set(Da(e,t,a[i]),Da(e,t,o[i]));return r}function oa(e,t){if(t.s.length>Fi)throw new Dr(t);return Ki(e,t.i,Pr(An(t.s)))}function sa(e,t,n){let r=Pi(n.c),i=Da(e,t,n.f),a=n.b??0;if(a<0||a>i.byteLength)throw new Dr(n);return Ki(e,n.i,new r(i,a,n.l))}function ca(e,t,n){let r=Da(e,t,n.f),i=n.b??0;if(i<0||i>r.byteLength)throw new Dr(n);return Ki(e,n.i,new DataView(r,i,n.l))}function la(e,t,n,r){if(n.p){let i=ea(e,t,n.p,{});Object.defineProperties(r,Object.getOwnPropertyDescriptors(i))}return r}function ua(e,t,n){return la(e,t,n,Ki(e,n.i,AggregateError([],An(n.m))))}function da(e,t,n){let r=qi(n,gn,n.s);return la(e,t,n,Ki(e,n.i,new r(An(n.m))))}function fa(e,t,n){let r=Ar(),i=Ki(e,n.i,r.p),a=Da(e,t,n.f);return n.s?r.s(a):r.f(a),i}function pa(e,t,n){return Ki(e,n.i,Object(Da(e,t,n.f)))}function ma(e,t,n){let r=e.base.plugins;if(r){let i=An(n.c);for(let a=0,o=r.length;a<o;a++){let o=r[a];if(o.tag===i)return Ki(e,n.i,o.deserialize(n.s,new Hi(e,t),{id:n.i}))}}throw new Sr(n.c)}function ha(e,t){return Ki(e,t.i,Ki(e,t.s,Ar()).p)}function ga(e,t,n){let r=e.base.refs.get(n.i);if(r)return r.s(Da(e,t,n.a[1])),B;throw new Cr(`Promise`)}function _a(e,t,n){let r=e.base.refs.get(n.i);if(r)return r.f(Da(e,t,n.a[1])),B;throw new Cr(`Promise`)}function va(e,t,n){return Da(e,t,n.a[0]),zr(Da(e,t,n.a[1]))}function ya(e,t,n){return Da(e,t,n.a[0]),qr(Da(e,t,n.a[1]))}function ba(e,t,n){let r=Ki(e,n.i,Wr()),i=n.a,a=i.length;if(a)for(let n=0;n<a;n++)Da(e,t,i[n]);return r}function xa(e,t,n){let r=e.base.refs.get(n.i);if(r&&Ur(r))return r.next(Da(e,t,n.f)),B;throw new Cr(`Stream`)}function Sa(e,t,n){let r=e.base.refs.get(n.i);if(r&&Ur(r))return r.throw(Da(e,t,n.f)),B;throw new Cr(`Stream`)}function Ca(e,t,n){let r=e.base.refs.get(n.i);if(r&&Ur(r))return r.return(Da(e,t,n.f)),B;throw new Cr(`Stream`)}function wa(e,t,n){return Da(e,t,n.f),B}function Ta(e,t,n){return Da(e,t,n.a[1]),B}function Ea(e,t,n){let r=Ki(e,n.i,Ir([],n.s,n.l));for(let i=0,a=n.a.length;i<a;i++)r.v[i]=Da(e,t,n.a[i]);return r}function Da(e,t,n){if(t>e.base.depthLimit)throw new Or(e.base.depthLimit);switch(t+=1,n.t){case 2:return qi(n,mn,n.s);case 0:return Number(n.s);case 1:return An(String(n.s));case 3:if(String(n.s).length>Ii)throw new Dr(n);return BigInt(n.s);case 4:return e.base.refs.get(n.i);case 18:return Ji(e,n);
12case 9:return Yi(e,t,n);case 10:case 11:return ta(e,t,n);case 5:return na(e,n);case 6:return ra(e,n);case 7:return ia(e,t,n);case 8:return aa(e,t,n);case 19:return oa(e,n);case 16:case 15:return sa(e,t,n);case 20:return ca(e,t,n);case 14:return ua(e,t,n);case 13:return da(e,t,n);case 12:return fa(e,t,n);case 17:return qi(n,pn,n.s);case 21:return pa(e,t,n);case 25:return ma(e,t,n);case 22:return ha(e,n);case 23:return ga(e,t,n);case 24:return _a(e,t,n);case 28:return va(e,t,n);case 30:return ya(e,t,n);case 31:return ba(e,t,n);case 32:return xa(e,t,n);case 33:return Sa(e,t,n);case 34:return Ca(e,t,n);case 27:return wa(e,t,n);case 29:return Ta(e,t,n);case 35:return Ea(e,t,n);default:throw new xr(n)}}function Oa(e,t){try{return Da(e,0,t)}catch(e){throw new vr(e)}}var ka=(()=>T).toString();/=>/.test(ka);function Aa(e,t){return Oa(Vi({plugins:Ni(t.plugins),refs:t.refs,features:t.features,disabledFeatures:t.disabledFeatures,depthLimit:t.depthLimit}),e)}async function ja(e,t={}){let n=si(1,{plugins:Ni(t.plugins),disabledFeatures:t.disabledFeatures});return{t:await ki(n,e),f:n.base.features,m:Array.from(n.base.marked)}}function Ma(e){return e}function Na(e){return ji({tag:`$TSR/t/`+e.key,test:e.test,parse:{sync(t,n,r){return{v:n.parse(e.toSerializable(t))}},async async(t,n,r){return{v:await n.parse(e.toSerializable(t))}},stream(t,n,r){return{v:n.parse(e.toSerializable(t))}}},serialize:void 0,deserialize(t,n,r){return e.fromSerializable(n.deserialize(t.v))}})}var Pa=class{constructor(e,t){this.stream=e,this.hint=t?.hint??`binary`}},Fa=globalThis.Buffer,Ia=!!Fa&&typeof Fa.from==`function`;function La(e){if(e.length===0)return``;if(Ia)return Fa.from(e).toString(`base64`);let t=32768,n=[];for(let r=0;r<e.length;r+=t){let i=e.subarray(r,r+t);n.push(String.fromCharCode.apply(null,i))}return btoa(n.join(``))}function Ra(e){if(e.length===0)return new Uint8Array;
12if(Ia){let t=Fa.from(e,`base64`);return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var za=Object.create(null),Ba=Object.create(null),Va=e=>new ReadableStream({start(t){e.on({next(e){try{t.enqueue(Ra(e))}catch{}},throw(e){t.error(e)},return(){try{t.close()}catch{}}})}}),Ha=new TextEncoder,Ua=e=>new ReadableStream({start(t){e.on({next(e){try{typeof e==`string`?t.enqueue(Ha.encode(e)):t.enqueue(Ra(e.$b64))}catch{}},throw(e){t.error(e)},return(){try{t.close()}catch{}}})}}),Wa=`(s=>new ReadableStream({start(c){s.on({next(b){try{const d=atob(b),a=new Uint8Array(d.length);for(let i=0;i<d.length;i++)a[i]=d.charCodeAt(i);c.enqueue(a)}catch(_){}},throw(e){c.error(e)},return(){try{c.close()}catch(_){}}})}}))`,Ga=`(s=>{const e=new TextEncoder();return new ReadableStream({start(c){s.on({next(v){try{if(typeof v==='string'){c.enqueue(e.encode(v))}else{const d=atob(v.$b64),a=new Uint8Array(d.length);for(let i=0;i<d.length;i++)a[i]=d.charCodeAt(i);c.enqueue(a)}}catch(_){}},throw(x){c.error(x)},return(){try{c.close()}catch(_){}}})}})})`;function Ka(e){let t=Wr(),n=e.getReader();return(async()=>{try{for(;;){let{done:e,value:r}=await n.read();if(e){t.return(void 0);break}t.next(La(r))}}catch(e){t.throw(e)}finally{n.releaseLock()}})(),t}function qa(e){let t=Wr(),n=e.getReader(),r=new TextDecoder(`utf-8`,{fatal:!0});return(async()=>{try{for(;;){let{done:e,value:i}=await n.read();if(e){try{let e=r.decode();e.length>0&&t.next(e)}catch{}t.return(void 0);break}try{let e=r.decode(i,{stream:!0});e.length>0&&t.next(e)}catch{t.next({$b64:La(i)})}}}catch(e){t.throw(e)}finally{n.releaseLock()}})(),t}var Ja=ji({tag:`tss/RawStream`,extends:[ji({tag:`tss/RawStreamFactory`,test(e){return e===za},parse:{sync(e,t,n){return{}},async async(e,t,n){return{}},stream(e,t,n){return{}}},serialize(e,t,n){return Wa},deserialize(e,t,n){return za}}),ji({tag:`tss/RawStreamFactoryText`,test(e){return e===Ba},parse:{sync(e,t,n){return{}},async async(e,t,n){return{}},stream(e,t,n){return{}}},serialize(e,t,n){return Ga},deserialize(e,t,n){return Ba}})],test(e){return e instanceof Pa},parse:{sync(e,t,n){let r=e.hint===`text`?Ba:za;return{hint:t.parse(e.hint),factory:t.parse(r),stream:t.parse(Wr())}},async async(e,t,n){let r=e.hint===`text`?Ba:za,i=e.hint===`text`?qa(e.stream):Ka(e.stream);return{hint:await t.parse(e.hint),factory:await t.parse(r),stream:await t.parse(i)}},stream(e,t,n){let r=e.hint===`text`?Ba:za,i=e.hint===`text`?qa(e.stream):Ka(e.stream);return{hint:t.parse(e.hint),factory:t.parse(r),stream:t.parse(i)}}},serialize(e,t,n){return`(`+t.serialize(e.factory)+`)(`+t.serialize(e.stream)+`)`},deserialize(e,t,n){let r=t.deserialize(e.stream);return t.deserialize(e.hint)===`text`?Ua(r):Va(r)}});function Ya(e){return ji({tag:`tss/RawStream`,test:()=>!1,parse:{},serialize(){throw Error(`RawStreamDeserializePlugin.serialize should not be called. Client only deserializes.`)},deserialize(t,n,r){return e(typeof n?.deserialize==`function`?n.deserialize(t.streamId):t.streamId)}})}var Xa=ji({tag:`$TSR/Error`,test(e){return e instanceof Error},parse:{sync(e,t){return{message:t.parse(e.message)}},async async(e,t){return{message:await t.parse(e.message)}},stream(e,t){return{message:t.parse(e.message)}}},serialize(e,t){return`new Error(`+t.serialize(e.message)+`)`},deserialize(e,t){return Error(t.deserialize(e.message))}}),Za={},Qa=e=>new ReadableStream({start:t=>{e.on({next:e=>{try{t.enqueue(e)}catch{}},throw:e=>{t.error(e)},return:()=>{try{t.close()}catch{}}})}}),$a=ji({tag:`seroval-plugins/web/ReadableStreamFactory`,test(e){return e===Za},parse:{sync(){return Za},async async(){return await Promise.resolve(Za)},stream(){return Za}},serialize(){return Qa.toString()},deserialize(){return Za}});function eo(e){let t=Wr(),n=e.getReader();async function r(){try{let e=await n.read();e.done?t.return(e.value):(t.next(e.value),await r())}catch(e){t.throw(e)}}return r().catch(()=>{}),t}var to=[Xa,Ja,ji({tag:`seroval/plugins/web/ReadableStream`,extends:[$a],test(e){return typeof ReadableStream>`u`?!1:e instanceof ReadableStream},parse:{sync(e,t){return{factory:t.parse(Za),stream:t.parse(Wr())}},async async(e,t){return{factory:await t.parse(Za),stream:await t.parse(eo(e))}},stream(e,t){return{factory:t.parse(Za),stream:t.parse(eo(e))}}},serialize(e,t){return`(`+t.serialize(e.factory)+`)(`+t.serialize(e.stream)+`)`},deserialize(e,t){return Qa(t.deserialize(e.stream))}})];function no(){return[...(Oe()?.serializationAdapters)?.map(Na)??[],...to]}var ro=new TextDecoder,io=new Uint8Array,ao=16*1024*1024,oo=32*1024*1024,so=1024,co=1e5;function lo(e){let t=new Map,n=new Map,r=new Set,i=!1,a=null,o=0,s,c=new ReadableStream({start(e){s=e},cancel(){i=!0;try{a?.cancel()}catch{}
12t.forEach(e=>{try{e.error(Error(`Framed response cancelled`))}catch{}}),t.clear(),n.clear(),r.clear()}});function l(e){let i=n.get(e);if(i)return i;if(r.has(e))return new ReadableStream({start(e){e.close()}});if(n.size>=so)throw Error(`Too many raw streams in framed response (max ${so})`);let a=new ReadableStream({start(n){t.set(e,n)},cancel(){r.add(e),t.delete(e),n.delete(e)}});return n.set(e,a),a}function u(e){return l(e),t.get(e)}return(async()=>{let n=e.getReader();a=n;let c=[],l=0;function d(){if(l<9)return null;let e=c[0];if(e.length>=9)return{type:e[0],streamId:(e[1]<<24|e[2]<<16|e[3]<<8|e[4])>>>0,length:(e[5]<<24|e[6]<<16|e[7]<<8|e[8])>>>0};let t=new Uint8Array(9),n=0,r=9;for(let e=0;e<c.length&&r>0;e++){let i=c[e],a=Math.min(i.length,r);t.set(i.subarray(0,a),n),n+=a,r-=a}return{type:t[0],streamId:(t[1]<<24|t[2]<<16|t[3]<<8|t[4])>>>0,length:(t[5]<<24|t[6]<<16|t[7]<<8|t[8])>>>0}}function f(e){if(e===0)return io;let t=new Uint8Array(e),n=0,r=e;for(;r>0&&c.length>0;){let e=c[0];if(!e)break;let i=Math.min(e.length,r);t.set(e.subarray(0,i),n),n+=i,r-=i,i===e.length?c.shift():c[0]=e.subarray(i)}return l-=e,t}try{for(;;){let{done:e,value:a}=await n.read();if(i||e)break;if(a){if(l+a.length>oo)throw Error(`Framed response buffer exceeded ${oo} bytes`);for(c.push(a),l+=a.length;;){let e=d();if(!e)break;let{type:n,streamId:i,length:a}=e;if(n!==we.JSON&&n!==we.CHUNK&&n!==we.END&&n!==we.ERROR)throw Error(`Unknown frame type: ${n}`);if(n===we.JSON){if(i!==0)throw Error(`Invalid JSON frame streamId (expected 0)`)}else if(i===0)throw Error(`Invalid raw frame streamId (expected non-zero)`);if(a>ao)throw Error(`Frame payload too large: ${a} bytes (max ${ao})`);let c=9+a;if(l<c)break;if(++o>co)throw Error(`Too many frames in framed response (max ${co})`);f(9);let p=f(a);switch(n){case we.JSON:try{s.enqueue(ro.decode(p))}catch{}break;case we.CHUNK:{let e=u(i);e&&e.enqueue(p);break}case we.END:{let e=u(i);if(r.add(i),e){try{e.close()}catch{}t.delete(i)}break}case we.ERROR:{let e=u(i);if(r.add(i),e){let n=ro.decode(p);e.error(Error(n)),t.delete(i)}break}}}}}if(l!==0)throw Error(`Incomplete frame at end of framed response`);try{s.close()}catch{}t.forEach(e=>{try{e.close()}catch{}}),t.clear()}catch(e){try{s.error(e)}catch{}t.forEach(t=>{try{t.error(e)}catch{}}),t.clear()}finally{try{n.releaseLock()}catch{}a=null}})(),{getOrCreateStream:l,jsonChunks:c}}var uo=null;async function fo(e){e.length>0&&await Promise.allSettled(e)}var po=Object.prototype.hasOwnProperty;function mo(e){for(let t in e)if(po.call(e,t))return!0;return!1}async function ho(e,t,n){uo||=no();let r=t[0],i=r.fetch??n,a=r.data instanceof FormData?`formData`:`payload`,o=r.headers?new Headers(r.headers):new Headers;if(o.set(`x-tsr-serverFn`,`true`),a===`payload`&&o.set(`accept`,`${Ce}, application/x-ndjson, application/json`),r.method===`GET`){if(a===`formData`)throw Error(`FormData is not supported with GET requests`);let t=await go(r);if(t!==void 0){let n=ze({payload:t});e.includes(`?`)?e+=`&${n}`:e+=`?${n}`}}let s;if(r.method===`POST`){let e=await vo(r);e?.contentType&&o.set(`content-type`,e.contentType),s=e?.body}return await yo(async()=>i(e,{method:r.method,headers:o,signal:r.signal,body:s}))}async function go(e){let t=!1,n={};if(e.data!==void 0&&(t=!0,n.data=e.data),e.context&&mo(e.context)&&(t=!0,n.context=e.context),t)return _o(n)}async function _o(e){return JSON.stringify(await Promise.resolve(ja(e,{plugins:uo})))}async function vo(e){if(e.data instanceof FormData){let t;return e.context&&mo(e.context)&&(t=await _o(e.context)),t!==void 0&&e.data.set(xe,t),{body:e.data}}let t=await go(e);if(t)return{body:t,contentType:`application/json`}}async function yo(e){let t;try{t=await e()}catch(e){if(e instanceof Response)t=e;else throw console.log(e),e}if(t.headers.get(`x-tss-raw`)===`true`)return t;let n=t.headers.get(`content-type`);if(n||l(),t.headers.get(`x-tss-serialized`)){let e;if(n.includes(`application/x-tss-framed`)){if(De(n),!t.body)throw Error(`No response body for framed response`);
12let{getOrCreateStream:r,jsonChunks:i}=lo(t.body),a=[Ya(r),...uo||[]],o=new Map;e=await bo({jsonStream:i,onMessage:e=>Aa(e,{refs:o,plugins:a}),onError(e,t){console.error(e,t)}})}else if(n.includes(`application/json`)){let n=await t.json(),r=[];try{e=Aa(n,{plugins:uo})}finally{}await fo(r)}if(e||l(),e instanceof Error)throw e;return e}if(n.includes(`application/json`)){let e=await t.json(),n=ce(e);if(n)throw n;if(z(e))throw e;return e}if(!t.ok)throw Error(await t.text());return t}async function bo({jsonStream:e,onMessage:t,onError:n}){let r=e.getReader(),{value:i,done:a}=await r.read();if(a||!i)throw Error(`Stream ended before first object`);let o=JSON.parse(i),s=!1,c=(async()=>{try{for(;;){let{value:e,done:i}=await r.read();if(i)break;if(e)try{let n=[];try{t(JSON.parse(e))}finally{}await fo(n)}catch(t){n?.(`Invalid JSON: ${e}`,t)}}}catch(e){s||n?.(`Stream processing error:`,e)}})(),l,u=[];try{l=t(o)}catch(e){throw s=!0,r.cancel().catch(()=>{}),e}return await fo(u),Promise.resolve(l).catch(()=>{s=!0,r.cancel().catch(()=>{})}),c.finally(()=>{try{r.releaseLock()}catch{}}),l}function xo(e){let t=`/_serverFn/`+e;return Object.assign((...e)=>
12{let n=Oe()?.serverFns?.fetch;return ho(t,e,n??fetch)},{url:t,serverFnMeta:{id:e},[Se]:!0})}var So=Ma({key:`$TSS/serverfn`,test:e=>typeof e!=`function`||!(Se in e)?!1:!!e[Se],toSerializable:({serverFnMeta:e})=>({functionId:e.id}),fromSerializable:({functionId:e})=>xo(e)});function Co(e){return e.replaceAll(`\0`,`/`).replaceAll(`�`,`/`)}function wo(e,t){e.id=t.i,e.__beforeLoadContext=t.b,e.loaderData=t.l,e.status=t.s,e.ssr=t.ssr,e.updatedAt=t.u,e.error=t.e,t.g!==void 0&&(e.globalNotFound=t.g)}async function To(e){window.$_TSR||l();let t=e.options.serializationAdapters;if(t?.length){let e=new Map;t.forEach(t=>{e.set(t.key,t.fromSerializable)}),window.$_TSR.t=e,window.$_TSR.buffer.forEach(e=>e())}window.$_TSR.initialized=!0,window.$_TSR.router||l();let n=window.$_TSR.router;n.matches.forEach(e=>{e.i=Co(e.i)}),n.lastMatchId&&=Co(n.lastMatchId);let{manifest:r,dehydratedData:i,lastMatchId:a}=n;e.ssr={manifest:r};let s=document.querySelector(`meta[property="csp-nonce"]`)?.content;e.options.ssr={nonce:s};let c=e.matchRoutes(e.stores.location.get()),u=Promise.all(c.map(t=>e.loadRouteChunk(e.looseRoutesById[t.routeId])));function d(t){let n=e.looseRoutesById[t.routeId].options.pendingMinMs??e.options.defaultPendingMinMs;if(n){let r=o();t._nonReactive.minPendingPromise=r,t._forcePending=!0,setTimeout(()=>{r.resolve(),e.updateMatch(t.id,e=>(e._nonReactive.minPendingPromise=void 0,{...e,_forcePending:void 0}))},n)}}function f(t){let n=e.looseRoutesById[t.routeId];n&&(n.options.ssr=t.ssr)}let p;c.forEach(e=>{let t=n.matches.find(t=>t.i===e.id);if(!t){e._nonReactive.dehydrated=!1,e.ssr=!1,f(e);return}wo(e,t),f(e),e._nonReactive.dehydrated=e.ssr!==!1,(e.ssr===`data-only`||e.ssr===!1)&&p===void 0&&(p=e.index,d(e))}),e.stores.setMatches(c),await e.options.hydrate?.(i);let m=e.stores.matches.get(),h=e.stores.location.get();await Promise.all(m.map(async t=>{try{let n=e.looseRoutesById[t.routeId],r=m[t.index-1]?.context??e.options.context;if(n.options.context){let i={deps:t.loaderDeps,params:t.params,context:r??{},location:h,navigate:t=>e.navigate({...t,_fromLocation:h}),buildLocation:e.buildLocation,cause:t.cause,abortController:t.abortController,preload:!1,matches:c,routeId:n.id};t.__routeContext=n.options.context(i)??void 0}t.context={...r,...t.__routeContext,...t.__beforeLoadContext};let i={ssr:e.options.ssr,matches:m,match:t,params:t.params,loaderData:t.loaderData},a=await n.options.head?.(i),o=await n.options.scripts?.(i);t.meta=a?.meta,t.links=a?.links,t.headScripts=a?.scripts,t.styles=a?.styles,t.scripts=o}catch(e){if(z(e))t.error={isNotFound:!0},console.error(`NotFound error during hydration for routeId: ${t.routeId}`,e);else throw t.error=e,console.error(`Error during hydration for route ${t.routeId}:`,e),e}}));let g=c[c.length-1].id!==a;if(!c.some(e=>e.ssr===!1)&&!g)return c.forEach(e=>{e._nonReactive.dehydrated=void 0}),e.stores.resolvedLocation.set(e.stores.location.get()),u;let _=Promise.resolve().then(()=>e.load()).catch(e=>{console.error(`Error during router hydration:`,e)});if(g){let t=c[1];t||l(),d(t),t._displayPending=!0,t._nonReactive.displayPendingPromise=_,_.then(()=>{e.batch(()=>{e.stores.status.get()===`pending`&&(e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())),e.updateMatch(t.id,e=>({...e,_displayPending:void 0,displayPendingPromise:void 0}))})})}return u}var V=n(i(),1),H=r();function Eo({promise:e}){if(P)return P(e);let t=Ut(e);if(t[Ht].status===`pending`)throw t;if(t[Ht].status===`error`)throw t[Ht].error;return t[Ht].data}function Do(e){let t=(0,H.jsx)(Oo,{...e});return e.fallback?(0,H.jsx)(V.Suspense,{fallback:e.fallback,children:t}):t}function Oo(e){let t=Eo(e);return e.children(t)}function ko(e){let t=e.errorComponent??jo;return(0,H.jsx)(Ao,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?V.createElement(t,{error:n,reset:r}):e.children})}var Ao=class extends V.Component{constructor(...e){super(...e),this.state={error:null}}static getDerivedStateFromProps(e,t){let n=e.getResetKey();return t.error&&t.resetKey!==n?{resetKey:n,error:null}:{resetKey:n}}static getDerivedStateFromError(e){return{error:e}}reset(){this.setState({error:null})}componentDidCatch(e,t){this.props.onCatch&&this.props.onCatch(e,t)}render(){return this.props.children({error:this.state.error,reset:()=>{this.reset()}})}};function jo({error:e}){let[t,n]=V.useState(!1);return(0,H.jsxs)(`div`,{style:{padding:`.5rem`,maxWidth:`100%`},children:[(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`.5rem`},children:[(0,H.jsx)(`strong`,{style:{fontSize:`1rem`},children:`Something went wrong!`}),(0,H.jsx)(`button`,{style:{appearance:`none`,fontSize:`.6em`,border:`1px solid currentColor`,padding:`.1rem .2rem`,fontWeight:`bold`,borderRadius:`.25rem`},onClick:()=>n(e=>!e),children:t?`Hide Error`:`Show Error`})]}),(0,H.jsx)(`div`,{style:{height:`.25rem`}}),t?(0,H.jsx)(`div`,{children:(0,H.jsx)(`pre`,{style:{fontSize:`.7em`,border:`1px solid red`,borderRadius:`.25rem`,padding:`.3rem`,color:`red`,overflow:`auto`}
12,children:e.message?(0,H.jsx)(`code`,{children:e.message}):null})}):null]})}var Mo=(e=>(e[e.None=0]=`None`,e[e.Mutable=1]=`Mutable`,e[e.Watching=2]=`Watching`,e[e.RecursedCheck=4]=`RecursedCheck`,e[e.Recursed=8]=`Recursed`,e[e.Dirty=16]=`Dirty`,e[e.Pending=32]=`Pending`,e))(Mo||{});function No({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(!0)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(!0)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function Po(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var Fo=[],Io=0,{link:Lo,unlink:Ro,propagate:zo,checkDirty:Bo,shallowPropagate:Vo}=No({update(e){return e._update()},notify(e){Fo[Uo++]=e,e.flags&=~Mo.Watching},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=Mo.Mutable|Mo.Dirty,qo(e))}}),Ho=0,Uo=0,Wo,Go=0;function Ko(e){try{++Go,e()}finally{--Go||Jo()}}function qo(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=Ro(n,e)}function Jo(){if(!(Go>0)){for(;Ho<Uo;){let e=Fo[Ho];Fo[Ho++]=void 0,e.notify()}Ho=0,Uo=0}}function Yo(e,t){let n=typeof e==`function`,r=e,i={_snapshot:n?void 0:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:n?Mo.None:Mo.Mutable,get(){return Wo!==void 0&&Lo(i,Wo,Io),i._snapshot},subscribe(e){let t=Po(e),n={current:!1},r=Xo(()=>{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=Wo,o=t?.compare??Object.is;if(n)Wo=i,++Io,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=Mo.Mutable|Mo.RecursedCheck);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{Wo=a,n&&(i.flags&=~Mo.RecursedCheck),qo(i)}}};return n?(i.flags=Mo.Mutable|Mo.Dirty,i.get=function(){let e=i.flags;if(e&Mo.Dirty||e&Mo.Pending&&Bo(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&Vo(e)}}else e&Mo.Pending&&(i.flags=e&~Mo.Pending);return Wo!==void 0&&Lo(i,Wo,Io),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(zo(e),Vo(e),Jo())}},i}function Xo(e){let t=()=>{let t=Wo;Wo=n,++Io,n.depsTail=void 0,n.flags=Mo.Watching|Mo.RecursedCheck;try{return e()}finally{Wo=t,n.flags&=~Mo.RecursedCheck,qo(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:Mo.Watching|Mo.RecursedCheck,notify(){let e=this.flags;e&Mo.Dirty||e&Mo.Pending&&Bo(this.deps,this)?t():this.flags=Mo.Watching},stop(){this.flags=Mo.None,this.depsTail=void 0,qo(this)}};return t(),n}var Zo={get:()=>void 0,subscribe:()=>({unsubscribe:()=>{}})};function Qo(e){let t=N(),n=V.useContext(e.from?fe:le),r=e.from??n,i=r?e.from?t.stores.getRouteMatchStore(r):t.stores.matchStores.get(r):void 0,a=V.useRef(void 0);return I(i??Zo,n=>
12{if((e.shouldThrow??!0)&&!n&&l(),n===void 0)return;let r=e.select?e.select(n):n;if(e.structuralSharing??t.options.defaultStructuralSharing){let e=f(a.current,r);return a.current=e,e}return r})}function $o(e){return Qo({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function es(e){let{select:t,...n}=e;return Qo({...n,select:e=>t?t(e.loaderDeps):e.loaderDeps})}function ts(e){return Qo({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{let n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function ns(e){return Qo({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function rs(e){let t=N();return V.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}function is(e){return Qo({...e,select:t=>e.select?e.select(t.context):t.context})}var as=class extends Jt{constructor(e){super(e),this.useMatch=e=>Qo({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>is({...e,from:this.id}),this.useSearch=e=>ns({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>ts({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>es({...e,from:this.id}),this.useLoaderData=e=>$o({...e,from:this.id}),this.useNavigate=()=>rs({from:this.fullPath}),this.Link=V.forwardRef((e,t)=>(0,H.jsx)(pe,{ref:t,from:this.fullPath,...e}))}};function os(e){return new as(e)}var ss=class extends Yt{constructor(e){super(e),this.useMatch=e=>Qo({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>is({...e,from:this.id}),this.useSearch=e=>ns({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>ts({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>es({...e,from:this.id}),this.useLoaderData=e=>$o({...e,from:this.id}),this.useNavigate=()=>rs({from:this.fullPath}),this.Link=V.forwardRef((e,t)=>(0,H.jsx)(pe,{ref:t,from:this.fullPath,...e}))}};function cs(e){return new ss(e)}function ls(e){return new us(e,{silent:!0}).createRoute}var us=class{constructor(e,t){this.path=e,this.createRoute=e=>{let t=os(e);return t.isRoot=!1,t},this.silent=t?.silent}};function ds(e,t){let n,r,i,a,o=()=>(n||=e().then(e=>{n=void 0,r=e[t??`default`]}).catch(e=>{if(i=e,m(i)&&i instanceof Error&&typeof window<`u`&&typeof sessionStorage<`u`){let e=`tanstack_router_reload:${i.message}`;sessionStorage.getItem(e)||(sessionStorage.setItem(e,`1`),a=!0)}}),n),s=function(e){if(a)throw window.location.reload(),new Promise(()=>{});if(i)throw i;if(!r)if(P)P(o());else throw o();return V.createElement(r,e)};return s.preload=o,s}function fs(e){let t=N(),n=`not-found-${I(t.stores.location,e=>e.pathname)}-${I(t.stores.status,e=>e)}`;return(0,H.jsx)(ko,{getResetKey:()=>n,onCatch:(t,n)=>{if(z(t))e.onCatch?.(t,n);else throw t},errorComponent:({error:t})=>{if(z(t))return e.fallback?.(t);throw t},children:e.children})}function ps(){return(0,H.jsx)(`p`,{children:`Not Found`})}function ms(e){return(0,H.jsx)(H.Fragment,{children:e.children})}function hs(e,t,n){return t.options.notFoundComponent?(0,H.jsx)(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?(0,H.jsx)(e.options.defaultNotFoundComponent,{...n}):(0,H.jsx)(ps,{})}var gs=V.memo(function({matchId:e}){let t=N(),n=t.stores.matchStores.get(e);n||l();let r=I(t.stores.loadedAt,e=>e),i=I(n,e=>e);return(0,H.jsx)(_s,{router:t,matchId:e,resetKey:r,matchState:V.useMemo(()=>{let e=i.routeId,n=t.routesById[e].parentRoute?.id;return{routeId:e,ssr:i.ssr,_displayPending:i._displayPending,parentRouteId:n}},[i._displayPending,i.routeId,i.ssr,t.routesById])})});function _s({router:e,matchId:t,resetKey:n,matchState:r}){let i=e.routesById[r.routeId],a=i.options.pendingComponent??e.options.defaultPendingComponent,o=a?(0,H.jsx)(a,{}):null,s=i.options.errorComponent??e.options.defaultErrorComponent,c=i.options.onCatch??e.options.defaultOnCatch,l=i.isRoot?i.options.notFoundComponent??e.options.notFoundRoute?.options.component:i.options.notFoundComponent,u=r.ssr===!1||r.ssr===`data-only`,d=(!i.isRoot||i.options.wrapInSuspense||u)&&(i.options.wrapInSuspense??a??(i.options.errorComponent?.preload||u))?V.Suspense:ms,f=s?ko:ms,p=l?fs:ms;return(0,H.jsxs)(i.isRoot?i.options.shellComponent??ms:ms,{children:[(0,H.jsx)(le.Provider,{value:t,children:(0,H.jsx)(d,{fallback:o,children:(0,H.jsx)(f,{getResetKey:()=>n,errorComponent:s||jo,onCatch:(e,t)=>{if(z(e))throw e.routeId??=r.routeId,e;c?.(e,t)},children:(0,H.jsx)(p,{fallback:e=>{if(e.routeId??=r.routeId,!l||e.routeId&&e.routeId!==r.routeId||!e.routeId&&
12!i.isRoot)throw e;return V.createElement(l,e)},children:u||r._displayPending?(0,H.jsx)(k,{fallback:o,children:(0,H.jsx)(ys,{matchId:t})}):(0,H.jsx)(ys,{matchId:t})})})})}),r.parentRouteId===`__root__`?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(vs,{resetKey:n}),(e.options.scrollRestoration,null)]}):null]})}function vs({resetKey:e}){let t=N(),n=V.useRef(void 0);return te(()=>{let e=t.latestLocation.href;(n.current===void 0||n.current!==e)&&(t.emit({type:`onRendered`,...jt(t.stores.location.get(),t.stores.resolvedLocation.get())}),n.current=e)},[t.latestLocation.state.__TSR_key,e,t]),null}var ys=V.memo(function({matchId:e}){let t=N(),n=(e,n)=>t.getMatch(e.id)?._nonReactive[n]??e._nonReactive[n],r=t.stores.matchStores.get(e);r||l();let i=I(r,e=>e),a=i.routeId,s=t.routesById[a],c=V.useMemo(()=>{let e=(t.routesById[a].options.remountDeps??t.options.defaultRemountDeps)?.({routeId:a,loaderDeps:i.loaderDeps,params:i._strictParams,search:i._strictSearch});return e?JSON.stringify(e):void 0},[a,i.loaderDeps,i._strictParams,i._strictSearch,t.options.defaultRemountDeps,t.routesById]),u=V.useMemo(()=>{let e=s.options.component??t.options.defaultComponent;return e?(0,H.jsx)(e,{},c):(0,H.jsx)(bs,{})},[c,s.options.component,t.options.defaultComponent]);if(i._displayPending)throw n(i,`displayPendingPromise`);if(i._forcePending)throw n(i,`minPendingPromise`);if(i.status===`pending`){let e=s.options.pendingMinMs??t.options.defaultPendingMinMs;if(e){let n=t.getMatch(i.id);if(n&&!n._nonReactive.minPendingPromise){let t=o();n._nonReactive.minPendingPromise=t,setTimeout(()=>{t.resolve(),n._nonReactive.minPendingPromise=void 0},e)}}throw n(i,`loadPromise`)}if(i.status===`notFound`)return z(i.error)||l(),hs(t,s,i.error);if(i.status===`redirected`)throw de(i.error)||l(),n(i,`loadPromise`);if(i.status===`error`)throw i.error;return u}),bs=V.memo(function(){let e=N(),t=V.useContext(le),n,r=!1,i;{let a=t?e.stores.matchStores.get(t):void 0;[n,r]=I(a,e=>[e?.routeId,e?.globalNotFound??!1]),i=I(e.stores.matchesId,e=>e[e.findIndex(e=>e===t)+1])}let a=n?e.routesById[n]:void 0,o=e.options.defaultPendingComponent?(0,H.jsx)(e.options.defaultPendingComponent,{}):null;if(r)return a||l(),hs(e,a,void 0);if(!i)return null;let s=(0,H.jsx)(gs,{matchId:i});return n===`__root__`?(0,H.jsx)(V.Suspense,{fallback:o,children:s}):s});function xs(){let e=N(),t=V.useRef({router:e,mounted:!1}),[n,r]=V.useState(!1),i=I(e.stores.isLoading,e=>e),a=I(e.stores.hasPending,e=>e),o=ne(i),s=i||n||a,c=ne(s),l=i||a,u=ne(l);return e.startTransition=e=>{r(!0),V.startTransition(()=>{e(),r(!1)})},V.useEffect(()=>{let t=e.history.subscribe(e.load),n=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return E(e.latestLocation.publicHref)!==E(n.publicHref)&&e.commitLocation({...n,replace:!0}),()=>{t()}},[e,e.history]),te(()=>{typeof window<`u`&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(e){console.error(e)}})())},[e]),te(()=>{o&&!i&&e.emit({type:`onLoad`,...jt(e.stores.location.get(),e.stores.resolvedLocation.get())})},[o,e,i]),te(()=>{u&&!l&&e.emit({type:`onBeforeRouteMount`,...jt(e.stores.location.get(),e.stores.resolvedLocation.get())})},[l,u,e]),te(()=>{if(c&&!s){let t=jt(e.stores.location.get(),e.stores.resolvedLocation.get());e.emit({type:`onResolved`,...t}),Ko(()=>{e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())}),t.hrefChanged&&Xt(e)}},[s,c,e]),null}function Ss(){let e=N(),t=e.routesById.__root__.options.pendingComponent??e.options.defaultPendingComponent,n=t?(0,H.jsx)(t,{}):null,r=(0,H.jsxs)(typeof document<`u`&&e.ssr?ms:V.Suspense,{fallback:n,children:[(0,H.jsx)(xs,{}),(0,H.jsx)(Cs,{})]});return e.options.InnerWrap?(0,H.jsx)(e.options.InnerWrap,{children:r}):r}function Cs(){let e=N(),t=I(e.stores.firstId,e=>e),n=I(e.stores.loadedAt,e=>e),r=t?(0,H.jsx)(gs,{matchId:t}):null;return(0,H.jsx)(le.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:(0,H.jsx)(ko,{getResetKey:()=>n,errorComponent:jo,onCatch:void 0,children:r})})}function ws(e){let t=N(),n=V.useRef(void 0);
12return I(t.stores.matches,r=>{let i=e?.select?e.select(r):r;if(e?.structuralSharing??t.options.defaultStructuralSharing){let e=f(n.current,i);return n.current=e,e}return i})}var Ts=e=>({createMutableStore:Yo,createReadonlyStore:Yo,batch:Ko}),Es=e=>new Ds(e),Ds=class extends Mt{constructor(e){super(e,Ts)}};function Os({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,H.jsx)(F.Provider,{value:e,children:t});return e.options.Wrap?(0,H.jsx)(e.options.Wrap,{children:r}):r}function ks({router:e,...t}){return(0,H.jsx)(Os,{router:e,...t,children:(0,H.jsx)(Ss,{})})}function As(e){let t=N({warn:e?.router===void 0}),n=e?.router||t,r=(0,V.useRef)(void 0);return I(n.stores.__store,t=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){let n=f(r.current,e.select(t));return r.current=n,n}return e.select(t)}return t})}function js(e){let t=N(),n=(0,V.useRef)(void 0);return I(t.stores.location,r=>{let i=e?.select?e.select(r):r;if(e?.structuralSharing??t.options.defaultStructuralSharing){let e=f(n.current,i);return n.current=e,e}return i})}function Ms(e){let{attrs:t,children:n,nonce:r}=e;switch(e.tag){case`title`:return(0,H.jsx)(`title`,{...t,suppressHydrationWarning:!0,children:n});case`meta`:return(0,H.jsx)(`meta`,{...t,suppressHydrationWarning:!0});case`link`:return(0,H.jsx)(`link`,{...t,precedence:t?.precedence??(t?.rel===`stylesheet`?`default`:void 0),nonce:r,suppressHydrationWarning:!0});case`style`:return e.inlineCss,(0,H.jsx)(`style`,{...t,dangerouslySetInnerHTML:{__html:n},nonce:r});case`script`:return(0,H.jsx)(Ns,{attrs:t,children:n});default:return null}}function Ns({attrs:e,children:t}){N();let n=w(),r=typeof e?.type==`string`&&e.type!==``&&e.type!==`text/javascript`&&e.type!==`module`;if(V.useEffect(()=>{if(!r){if(e?.src){let t=(()=>{try{let t=document.baseURI||window.location.href;return new URL(e.src,t).href}catch{return e.src}})();if(Array.from(document.querySelectorAll(`script[src]`)).find(e=>e.src===t))return;let n=document.createElement(`script`);
12for(let[t,r]of Object.entries(e))t!==`suppressHydrationWarning`&&r!==void 0&&r!==!1&&n.setAttribute(t,typeof r==`boolean`?``:String(r));return document.head.appendChild(n),()=>{n.parentNode&&n.parentNode.removeChild(n)}}if(typeof t==`string`){let n=typeof e?.type==`string`?e.type:`text/javascript`,r=typeof e?.nonce==`string`?e.nonce:void 0;if(Array.from(document.querySelectorAll(`script:not([src])`)).find(e=>{if(!(e instanceof HTMLScriptElement))return!1;let i=e.getAttribute(`type`)??`text/javascript`,a=e.getAttribute(`nonce`)??void 0;return e.textContent===t&&i===n&&a===r}))return;let i=document.createElement(`script`);if(i.textContent=t,e)for(let[t,n]of Object.entries(e))t!==`suppressHydrationWarning`&&n!==void 0&&n!==!1&&i.setAttribute(t,typeof n==`boolean`?``:String(n));return document.head.appendChild(i),()=>{i.parentNode&&i.parentNode.removeChild(i)}}}},[e,t,r]),r&&typeof t==`string`)return(0,H.jsx)(`script`,{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:t}});if(!n){if(e?.src)return(0,H.jsx)(`script`,{...e,suppressHydrationWarning:!0});if(typeof t==`string`)return(0,H.jsx)(`script`,{...e,dangerouslySetInnerHTML:{__html:t},suppressHydrationWarning:!0})}return null}var Ps=e=>{let t=N(),n=t.options.ssr?.nonce,r=I(t.stores.matches,e=>e.map(e=>e.meta).filter(Boolean),h),i=V.useMemo(()=>{let e=[],t={},i;for(let a=r.length-1;a>=0;a--){let o=r[a];for(let r=o.length-1;r>=0;r--){let a=o[r];if(a)if(a.title)i||={tag:`title`,children:a.title};else if(`script:ld+json`in a)try{let t=JSON.stringify(a[`script:ld+json`]);e.push({tag:`script`,attrs:{type:`application/ld+json`},children:v(t)})}catch{}else{let r=a.name??a.property;if(r){if(t[r])continue;t[r]=!0}e.push({tag:`meta`,attrs:{...a,nonce:n}})}}}return i&&e.push(i),n&&e.push({tag:`meta`,attrs:{property:`csp-nonce`,content:n}}),e.reverse(),e},[r,n]),a=I(t.stores.matches,r=>{let i=r.map(e=>e.links).filter(Boolean).flat(1).map(e=>({tag:`link`,attrs:{...e,nonce:n}})),a=t.ssr?.manifest,o=r.map(e=>a?.routes[e.routeId]?.assets??[]).filter(Boolean).flat(1).flatMap(t=>t.tag===`link`?qt(a,t)?[]:[{tag:`link`,attrs:{...t.attrs,crossOrigin:Wt(e,`stylesheet`)??t.attrs?.crossOrigin,suppressHydrationWarning:!0,nonce:n}}]:t.tag===`style`?[{tag:`style`,attrs:{...t.attrs,nonce:n},children:t.children,...t.inlineCss?{inlineCss:!0}:{}}]:[]);return[...i,...o]},h),o=I(t.stores.matches,r=>{let i=[];return r.map(e=>t.looseRoutesById[e.routeId]).forEach(r=>t.ssr?.manifest?.routes[r.id]?.preloads?.filter(Boolean).forEach(t=>{let r=Gt(t);i.push({tag:`link`,attrs:{rel:`modulepreload`,href:r.href,crossOrigin:Wt(e,`modulepreload`)??r.crossOrigin,nonce:n}})})),i},h),s=I(t.stores.matches,e=>e.map(e=>e.styles).flat(1).filter(Boolean).map(({children:e,...t})=>({tag:`style`,attrs:{...t,nonce:n},children:e})),h),c=I(t.stores.matches,e=>e.map(e=>e.headScripts).flat(1).filter(Boolean).map(({children:e,...t})=>({tag:`script`,attrs:{...t,nonce:n},children:e})),h);return Fs([...i,...o,...a,...s,...c],e=>JSON.stringify(e))};function Fs(e,t){let n=new Set;return e.filter(e=>{let r=t(e);return n.has(r)?!1:(n.add(r),!0)})}function Is(e){let t=Ps(e.assetCrossOrigin),n=N().options.ssr?.nonce;return(0,H.jsx)(H.Fragment,{children:t.map(e=>(0,V.createElement)(Ms,{...e,key:`tsr-meta-${JSON.stringify(e)}`,nonce:n}))})}var Ls=()=>{let e=N(),t=e.options.ssr?.nonce,n=n=>{let r=[],i=e.ssr?.manifest;return i?(n.map(t=>e.looseRoutesById[t.routeId]).forEach(e=>i.routes[e.id]?.assets?.filter(e=>e.tag===`script`).forEach(e=>{r.push({tag:`script`,attrs:{...e.attrs,nonce:t},children:e.children})})),r):[]},r=e=>e.map(e=>e.scripts).flat(1).filter(Boolean).map(({children:e,...n})=>({tag:`script`,attrs:{...n,suppressHydrationWarning:!0,nonce:t},children:e})),i=I(e.stores.matches,n,h);return Rs(e,I(e.stores.matches,r,h),i)};function Rs(e,t,n){let r;e.serverSsr&&(r=e.serverSsr.takeBufferedScripts());let i=[...t,...n];return r&&i.unshift(r),(0,H.jsx)(H.Fragment,{children:i.map((e,t)=>(0,V.createElement)(Ms,{...e,key:`tsr-scripts-${e.tag}-${t}`}))})}var U=typeof window<`u`?window:void 0,zs=typeof globalThis<`u`?globalThis:U,Bs=zs?.navigator,W=zs?.document,Vs=zs?.location,Hs=zs?.fetch,Us=zs!=null&&zs.XMLHttpRequest&&`withCredentials`in new zs.XMLHttpRequest?zs.XMLHttpRequest:void 0,Ws=zs?.AbortController,Gs=zs?.CompressionStream,Ks=Bs?.userAgent;function qs(){return!(!U||!1===U.navigator.onLine)}var Js=typeof globalThis<`u`?globalThis:U;Js&&typeof self>`u`&&(Js.self=Js),Js&&typeof File>`u`&&(Js.File=function(){});var G=U??{},Ys={DEBUG:!1,LIB_VERSION:`0.2.4`,LIB_NAME:`browser-common`};function Xs(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}function Zs(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){Xs(a,r,i,o,s,`next`,e)}function s(e){Xs(a,r,i,o,s,`throw`,e)}o(void 0)}))}}function K(){return K=Object.assign?Object.assign.bind():function(e){for(var t=1;arguments.length>t;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},K.apply(null,arguments)}function Qs(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var $s=e=>{if(typeof e!=`string`)return e;try{return JSON.parse(e)}catch{return e}};function ec(e){return typeof e==`string`||e}function tc(e){return typeof e==`string`?e:void 0}var nc,rc=[`$feature_flag`,`$feature_flag_response`,`$feature_flag_has_experiment`,`$feature_flag_id`,`$feature_flag_version`,`$feature_flag_reason`,`$feature_flag_request_id`,`$feature_flag_evaluated_at`,`$feature_flag_error`,`locally_evaluated`,`$groups`,`$process_person_profile`,`$geoip_disable`,`$current_url`,`$pathname`,`$session_id`,`$window_id`,`$lib`,`$lib_version`,`$device_id`,`$is_server`],ic=function(e){return e.AnonymousId=`anonymous_id`,e.DistinctId=`distinct_id`,e.Props=`props`,e.EnablePersonProcessing=`enable_person_processing`,e.PersonMode=`person_mode`,e.FeatureFlagDetails=`feature_flag_details`,e.FeatureFlags=`feature_flags`,e.FeatureFlagPayloads=`feature_flag_payloads`,e.BootstrapFeatureFlagDetails=`bootstrap_feature_flag_details`,e.BootstrapFeatureFlags=`bootstrap_feature_flags`,e.BootstrapFeatureFlagPayloads=`bootstrap_feature_flag_payloads`,e.OverrideFeatureFlags=`override_feature_flags`,e.Queue=`queue`,e.AiQueue=`ai_queue`,e.LogsQueue=`logs_queue`,e.OptedOut=`opted_out`,e.SessionId=`session_id`,e.SessionStartTimestamp=`session_start_timestamp`,e.SessionLastTimestamp=`session_timestamp`,e.PersonProperties=`person_properties`,e.GroupProperties=`group_properties`,e.InstalledAppBuild=`installed_app_build`,e.InstalledAppVersion=`installed_app_version`,e.SessionReplay=`session_replay`,e.SessionReplayEventTriggerActivatedSession=`session_replay_event_trigger_activated_session`,e.SurveyLastSeenDate=`survey_last_seen_date`,e.SurveysSeen=`surveys_seen`,e.Surveys=`surveys`,e.RemoteConfig=`remote_config`,e.FlagsEndpointWasHit=`flags_endpoint_was_hit`,e.DeviceId=`device_id`,e}({}),ac=function(e){return e.GZipJS=`gzip-js`,e.Base64=`base64`,e}({}),oc=[`$snapshot`,`$pageview`,`$pageleave`,`$set`,`survey dismissed`,`survey sent`,`survey shown`,`$identify`,`$groupidentify`,`$create_alias`,`$$client_ingestion_warning`,`$web_experiment_applied`,`$feature_enrollment_update`,`$feature_flag_called`],sc=[`token`],cc=`NativeGzipValidationError`,lc=e=>e.length>=2&&e[0]===31&&e[1]===139,uc=(e,t)=>e===ac.GZipJS||t===ac.GZipJS||t===`gzip`,dc=e=>!(!e||typeof e!=`object`)&&(`name`in e?String(e.name):``)===`NotReadableError`,fc=e=>
12{var t=Error(`Native gzip produced invalid output: `+e);throw t.name=cc,t},pc=function(){var e=Zs((function*(e,t){18>e.size&&fc(`too-short`);var n=new Uint8Array(yield e.slice(0,10).arrayBuffer());lc(n)&&n[2]===8||fc(`invalid-header`);var r=new DataView(yield e.slice(e.size-8).arrayBuffer());r.getUint32(0,!0)!==(e=>{for(var t=(()=>{if(nc)return nc;nc=[];for(var e=0;256>e;e++){for(var t=e,n=0;8>n;n++)t=1&t?3988292384^t>>>1:t>>>1;nc[e]=t>>>0}return nc})(),n=4294967295,r=0;e.length>r;r++)n=t[255&(n^e[r])]^n>>>8;return(4294967295^n)>>>0})(t)&&fc(`invalid-crc`);var i=t.length>>>0;r.getUint32(4,!0)!==i&&fc(`invalid-size`)}));return function(t,n){return e.apply(this,arguments)}}();function mc(){return mc=Zs((function*(e,t,n){t===void 0&&(t=!0);try{var r=new TextEncoder().encode(e),i=new globalThis.CompressionStream(`gzip`),a=i.writable.getWriter(),o=a.write(r).then((()=>a.close())).catch(function(){var e=Zs((function*(e){try{yield a.abort(e)}catch{}throw e}));return function(t){return e.apply(this,arguments)}}()),s=new Response(i.readable).blob(),c=(yield Promise.all([s,o]))[0];return yield pc(c,r),c}catch(e){if(n!=null&&n.rethrow)throw e;return t&&console.error(`Failed to gzip compress data`,e),null}})),mc.apply(this,arguments)}var hc=`amazonbot,amazonproductbot,app.hypefactors.com,applebot,archive.org_bot,awariobot,backlinksextendedbot,baiduspider,bingbot,bingpreview,chrome-lighthouse,dataforseobot,deepscan,duckduckbot,facebookexternal,facebookcatalog,http://yandex.com/bots,hubspot,ia_archiver,leikibot,linkedinbot,meta-externalagent,mj12bot,msnbot,nessus,petalbot,pinterest,prerender,rogerbot,screaming frog,sebot-wa,sitebulb,slackbot,slurp,trendictionbot,turnitin,twitterbot,vercel-screenshot,vercelbot,yahoo! slurp,yandexbot,zoombot,bot.htm,bot.php,(bot;,bot/,crawler,ahrefsbot,ahrefssiteaudit,semrushbot,siteauditbot,splitsignalbot,gptbot,oai-searchbot,chatgpt-user,perplexitybot,better uptime bot,sentryuptimebot,uptimerobot,headlesschrome,cypress,google-hoteladsverifier,adsbot-google,apis-google,duplexweb-google,feedfetcher-google,google favicon,google web preview,google-read-aloud,googlebot,googleother,google-cloudvertexbot,googleweblight,mediapartners-google,storebot-google,google-inspectiontool,bytespider`.split(`,`),gc=function(e,t){if(t===void 0&&(t=[]),!e)return!1;var n=e.toLowerCase();return hc.concat(t).some((e=>{var t=e.toLowerCase();return n.indexOf(t)!==-1}))};function q(e,t){return e.indexOf(t)!==-1}var _c=function(e){return e.trim()},vc=function(e){return e.replace(/^\$/,``)};function yc(e){var t=[];return JSON.stringify(e,(function(e,n){if(typeof n==`bigint`)return n.toString();if(typeof n!=`function`&&typeof n!=`symbol`){if(n instanceof Error)return{name:n.name,message:n.message,stack:n.stack};if(n&&typeof n==`object`){for(;t.length>0&&t[t.length-1]!==this;)t.pop();if(t.includes(n))return`[Circular]`;t.push(n)}return n}}))??`null`}var bc=Object.prototype,xc=bc.hasOwnProperty,Sc=bc.toString,Cc=Array.isArray||function(e){return Sc.call(e)===`[object Array]`},wc=e=>typeof e==`function`,Tc=e=>e===Object(e)&&!Cc(e),Ec=e=>{if(Tc(e)){for(var t in e)if(xc.call(e,t))return!1;return!0}return!1},J=e=>e===void 0,Dc=e=>Sc.call(e)==`[object String]`,Oc=e=>Dc(e)&&e.trim().length===0,kc=e=>e===null,Ac=e=>J(e)||kc(e),jc=e=>Sc.call(e)==`[object Number]`&&e==e,Mc=e=>jc(e)&&e>0,Nc=e=>Sc.call(e)===`[object Boolean]`,Pc=e=>e instanceof FormData,Fc=e=>q(oc,e),Ic=e=>q(sc,e);function Lc(e){return typeof e!=`object`||!e}function Rc(e,t){return{}.toString.call(e)===`[object `+t+`]`}function zc(e){return typeof Event<`u`&&function(e,t){try{return e instanceof t}catch{return!1}}(e,Event)}var Bc=[!0,`true`,1,`1`,`yes`],Vc=e=>q(Bc,e),Hc=[!1,`false`,0,`0`,`no`];function Uc(e,t,n,r,i){return t>n&&(r.warn(`min cannot be greater than max.`),t=n),jc(e)?e>n?(r.warn(` cannot be greater than max: `+n+`. Using max value instead.`),n):t>e?(r.warn(` cannot be less than min: `+t+`. Using min value instead.`),t):e:(r.warn(` must be a number. using max or fallback. max: `+n+`, fallback: `+i),Uc(i||n,t,n,r))}var Wc=class{constructor(e){this.$e={},this.ze=e.ze,this.Ze=Uc(e.bucketSize,0,100,e.Ge),this.Qe=Uc(e.refillRate,0,this.Ze,e.Ge),this.Je=Uc(e.refillInterval,0,864e5,e.Ge)}Ke(e,t){var n=Math.floor((t-e.lastAccess)/this.Je);n>0&&(e.tokens=Math.min(e.tokens+n*this.Qe,this.Ze),e.lastAccess+=n*this.Je)}consumeRateLimit(e){var t,n=Date.now(),r=String(e),i=this.$e[r];return i?this.Ke(i,n):this.$e[r]=i={tokens:this.Ze,lastAccess:n},i.tokens===0||(i.tokens--,i.tokens===0&&((t=this.ze)==null||t.call(this,e)),i.tokens===0)}stop(){this.$e={}}},Gc=`Mobile`,Kc=`iOS`,qc=`Android`,Jc=`Tablet`,Yc=qc+` `+Jc,Xc=`iPad`,Zc=`Apple`,Qc=Zc+` Watch`,$c=`Safari`,el=`BlackBerry`,tl=`Samsung`,nl=tl+`Browser`,rl=tl+` Internet`,il=`Chrome`,al
12=il+` OS`,ol=il+` `+Kc,sl=`Internet Explorer`,cl=sl+` `+Gc,ll=`Opera`,ul=ll+` Mini`,dl=`Edge`,fl=`Microsoft `+dl,pl=`Firefox`,ml=pl+` `+Kc,hl=`Nintendo`,gl=`PlayStation`,_l=`Xbox`,vl=qc+` `+Gc,yl=Gc+` `+$c,bl=`Windows`,xl=bl+` Phone`,Sl=`Nokia`,Cl=`Ouya`,wl=`Generic`,Tl=wl+` `+Gc.toLowerCase(),El=wl+` `+Jc.toLowerCase(),Dl=`Konqueror`,Ol=`Oculus Browser`,kl=`Vivaldi`,Al=`Yandex`,jl=`Whale`,Ml=`DuckDuckGo`,Nl=`Pale Moon`,Pl=`Waterfox`,Fl=`Brave`,Il=`Google Search App`,Y=`(\\d+(\\.\\d+)?)`,Ll=RegExp(`Version/`+Y),Rl=new RegExp(_l,`i`),zl=RegExp(gl+` \\w+`,`i`),Bl=RegExp(hl+` \\w+`,`i`),Vl=RegExp(el+`|PlayBook|BB10`,`i`),Hl={"NT3.51":`NT 3.11`,"NT4.0":`NT 4.0`,"5.0":`2000`,5.1:`XP`,5.2:`XP`,"6.0":`Vista`,6.1:`7`,6.2:`8`,6.3:`8.1`,6.4:`10`,"10.0":`10`},Ul=function(e,t,n,r){return t||=``,function(e){return e!=null&&e.brave?Fl:null}(n)||(r!=null&&r.detectGoogleSearchApp&&q(e,`GSA/`)?Il:q(e,` OPR/`)&&q(e,`Mini`)?ul:q(e,` OPR/`)?ll:Vl.test(e)?el:q(e,`IE`+Gc)||q(e,`WPDesktop`)?cl:q(e,`OculusBrowser`)?Ol:q(e,nl)?rl:q(e,dl)||q(e,`Edg/`)?fl:q(e,kl+`/`)?kl:q(e,`YaBrowser/`)?Al:q(e,jl+`/`)?jl:q(e,Ml+`/`)||q(e,`Ddg/`)?Ml:q(e,`FBIOS`)?`Facebook `+Gc:q(e,`UCWEB`)||q(e,`UCBrowser`)?`UC Browser`:q(e,`CriOS`)?ol:q(e,`CrMo`)||q(e,il)?il:q(e,qc)&&q(e,$c)?vl:q(e,`FxiOS`)?ml:q(e.toLowerCase(),Dl.toLowerCase())?Dl:q(e,Fl+`/`)?Fl:((e,t)=>t&&q(t,Zc)||function(e){return q(e,$c)&&!q(e,il)&&!q(e,qc)}(e))(e,t)?q(e,Gc)?yl:$c:q(e,`PaleMoon/`)?Nl:q(e,Pl+`/`)?Pl:q(e,pl)?pl:q(e,`MSIE`)||q(e,`Trident/`)?sl:q(e,`Gecko`)?pl:``)},Wl={[cl]:[RegExp(`rv:`+Y)],[fl]:[RegExp(dl+`?\\/`+Y)],[il]:[RegExp(`(`+il+`|CrMo)\\/`+Y)],[ol]:[RegExp(`CriOS\\/`+Y)],"UC Browser":[RegExp(`(UCBrowser|UCWEB)\\/`+Y)],[$c]:[Ll],[yl]:[Ll],[ll]:[RegExp(`(Opera|OPR)\\/`+Y)],[pl]:[RegExp(pl+`\\/`+Y)],[ml]:[RegExp(`FxiOS\\/`+Y)],[Dl]:[RegExp(`Konqueror[:/]?`+Y,`i`)],[el]:[RegExp(el+` `+Y),Ll],[vl]:[RegExp(`android\\s`+Y,`i`)],[rl]:[RegExp(nl+`\\/`+Y)],[Ol]:[RegExp(`OculusBrowser\\/`+Y)],[kl]:[RegExp(kl+`\\/`+Y)],[Al]:[RegExp(`YaBrowser\\/`+Y)],[jl]:[RegExp(jl+`\\/`+Y)],[Fl]:[RegExp(Fl+`\\/`+Y)],[Ml]:[RegExp(`(DuckDuckGo|Ddg)\\/`+Y)],[Nl]:[RegExp(`PaleMoon\\/`+Y)],[Pl]:[RegExp(Pl+`\\/`+Y)],[Il]:[RegExp(`GSA\\/`+Y)],[sl]:[RegExp(`(rv:|MSIE )`+Y)],Mozilla:[RegExp(`rv:`+Y)]},Gl=function(e,t,n,r){var i=Wl[Ul(e,t,n,r)];if(J(i))return null;for(var a=0;i.length>a;a++){var o=e.match(i[a]);if(o)return parseFloat(o[o.length-2])}return null},Kl=[[RegExp(_l+`; `+_l+` (.*?)[);]`,`i`),e=>[_l,e&&e[1]||``]],[new RegExp(hl,`i`),[hl,``]],[new RegExp(gl,`i`),[gl,``]],[Vl,[el,``]],[new RegExp(bl,`i`),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[xl,``];if(new RegExp(Gc).test(t)&&!/IEMobile\b/.test(t))return[bl+` `+Gc,``];var n=/Windows NT ([0-9.]+)/i.exec(t);if(n&&n[1]){var r=Hl[n[1]]||``;return/arm/i.test(t)&&(r=`RT`),[bl,r]}return[bl,``]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>e&&e[3]?[Kc,[e[3],e[4],e[5]||`0`].join(`.`)]:[Kc,``]],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{var t=``;return e&&e.length>=3&&(t=J(e[2])?e[3]:e[2]),[`watchOS`,t]}],[RegExp(`(`+qc+` (\\d+)\\.(\\d+)\\.?(\\d+)?|`+qc+`)`,`i`),e=>e&&e[2]?[qc,[e[2],e[3],e[4]||`0`].join(`.`)]:[qc,``]],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,e=>{var t=[`Mac OS X`,``];return e&&e[1]&&(t[1]=[e[1],e[2],e[3]||`0`].join(`.`)),t}],[/Mac/i,[`Mac OS X`,``]],[/CrOS/,[al,``]],[/Linux|debian/i,[`Linux`,``]]],ql=function(e){return Bl.test(e)?hl:zl.test(e)?gl:Rl.test(e)?_l:new RegExp(Cl,`i`).test(e)?Cl:RegExp(`(`+xl+`|WPDesktop)`,`i`).test(e)?xl:/iPad/.test(e)?Xc:/iPod/.test(e)?`iPod Touch`:/iPhone/.test(e)?`iPhone`:/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i.test(e)?Qc:Vl.test(e)?el:/(kobo)\s(ereader|touch)/i.test(e)?`Kobo`:new RegExp(Sl,`i`).test(e)?Sl:/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i.test(e)||/(kf[a-z]+)( bui|\)).+silk\//i.test(e)?`Kindle Fire`:/(Android|ZTE)/i.test(e)?new RegExp(Gc).test(e)&&!/(9138B|TB782B|Nexus [97]|pixel c|HUAWEISHT|BTV|noble nook|smart ultra 6)/i.test(e)||/pixel[\daxl ]{1,6}/i.test(e)&&!/pixel c/i.test(e)||/(huaweimed-al00|tah-|APA|SM-G92|i980|zte|U304AA)/i.test(e)||/lmy47v/i.test(e)&&!/QTAQZ3/i.test(e)?qc:Yc:RegExp(`(pda|`+Gc+`)`,`i`).test(e)?Tl:new RegExp(Jc,`i`).test(e)&&!RegExp(Jc+` pc`,`i`).test(e)?El:``},Jl=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Yl(e,t){return typeof(n=e)==`string`&&Jl.test(n)?e:t();var n}function Xl(e){return e&&e.split(`#`)[0]}function Zl(e,t){var n=setTimeout(e,t);return n!=null&&n.unref&&n?.unref(),n}var Ql=e=>e instanceof Error,$l={trace:{text:`TRACE`,number:1},debug:{text:`DEBUG`,number:5},info:{text:`INFO`,number:9},warn:{text:`WARN`,number:13},error:{text:`ERROR`,number:17},fatal:{text:`FATAL`,number:21}},eu=$l.info;function tu(e){if(Nc(e))return{boolValue:e};if(typeof e==`number`)return Number.isFinite(e)?Number.isInteger(e)?{intValue:e}:{doubleValue:e}:{stringValue:String(e)};if(typeof e==`string`)return{stringValue:e};if(Cc(e))return{arrayValue:{values:e.map((e=>tu(e)))}};try{return{stringValue:JSON.stringify(e)}}catch{return{stringValue:String(e)}}}function nu(e){var t=[];for(var n in e){var r=e[n];kc(r)||J(r)||t.push({key:n,value:tu(r)})}return t}function ru(e,t){var n=$l[e.level||`info`]||eu,r=n.text,i=n.number,a=String(Date.now())+`000000`,o={};t.distinctId&&(o.posthogDistinctId=t.distinctId),t.sessionId&&(o.sessionId=t.sessionId),t.windowId&&(o[`window.id`]=t.windowId),Ac(t.sessionStartTimestamp)||(o.sessionStartTimestamp=String(t.sessionStartTimestamp)),Ac(t.lastActivityTimestamp)||(o.lastActivityTimestamp=String(t.lastActivityTimestamp)),t.currentUrl&&(o[`url.full`]=t.currentUrl),t.screenName&&(o[`screen.name`]=t.screenName),t.appState&&(o[`app.state`]=t.appState),t.activeFeatureFlags&&t.activeFeatureFlags.length>0&&(o.feature_flags=t.activeFeatureFlags);var s=K({},o,e.attributes||{}),c={timeUnixNano:a,observedTimeUnixNano:a,severityNumber:i,severityText:r,body:{stringValue:e.body},attributes:nu(s)};return e.trace_id&&(c.traceId=e.trace_id),e.span_id&&(c.spanId=e.span_id),J(e.trace_flags)||(c.flags=e.trace_flags),c}function iu(e,t,n){return K({},e.resourceAttributes,{"service.name":e.serviceName||`unknown_service`},e.environment&&{"deployment.environment":e.environment},e.serviceVersion&&{"service.version":e.serviceVersion},{"telemetry.sdk.name":t,"telemetry.sdk.version":n})}function au(e,t,n,r){return{resourceLogs:[{resource:{attributes:nu(t)},scopeLogs:[{scope:{name:n,version:r},logRecords:e}]}]}}var ou=class{constructor(e,t,n,r,i,a,o){a===void 0&&(a=()=>Promise.resolve()),this._instance=e,this.Te=t,this.Ge=n,this.Ye=r,this.Xe=i,this.et=a,this.tt
12=o,this.rt=null,this.it=0,this.nt=0,this.st=0,this.ot=0,this.ut=!1,this.ht=t.maxBufferSize,this.dt=Math.max(t.maxQueueSize??t.maxBufferSize,t.maxBufferSize),this.ct=t.flushIntervalMs,this.vt=t.maxBatchRecordsPerPost,this.ft=t.rateCapWindowMs,this.yt=t.maxLogsPerInterval}reset(){this.bt(),this.rt=null,this.st=0,this.ot=0,this.ut=!1,this.it=0,this.nt=0,this.vt=this.Te.maxBatchRecordsPerPost}onReconnect(){this.nt=0,this._t()}captureLog(e){if(!this._instance.isDisabled&&!this._instance.optedOut&&e!=null&&e.body){var t=this.wt(e);if(t!==null)if(t.body){if(this.xt()){var n={record:ru(t,this.Ye())};this.Xe((()=>this.kt(n)))}}else this.Ge.info(`Log was rejected in beforeSend function`)}}wt(e){var t=this.Te.beforeSend;if(!t)return e;var n=Cc(t)?t:[t],r=e;for(var i of n)try{var a=i(r);if(!a)return this.Ge.info(`Log was rejected in beforeSend function`),null;r=a}catch(e){return this.Ge.error(`Error in beforeSend function for log:`,e),null}return r}xt(){if(this.yt===void 0)return!0;var e=Date.now(),t=e-this.st;return this.ft>t&&t>=0||(this.st=e,this.ot=0,this.ut=!1),this.yt>this.ot?(this.ot++,!0):(this.ut||=(this.Ge.warn(`captureLog dropping logs: exceeded `+this.yt+` logs per `+this.ft+`ms`),!0),!1)}flush(){var e=this;return Zs((function*(){if(!e._instance.isDisabled)return e.rt||=e.St().finally((()=>{e.rt=null})),e.rt}))()}St(){var e=this;return Zs((function*(){e.bt();var t=e._instance.getPersistedProperty(ic.LogsQueue)??[];if(t.length!==0)for(var n=t.length,r=0;t.length>0&&n>r;){e.it=0;var i=Math.min(t.length,e.vt),a=t.slice(0,i),o=au(a.map((e=>e.record)),e.Ct(),e.tt??e._instance.getLibraryId(),e._instance.getLibraryVersion()),s=yield e._instance.Mt(o);if(s.kind===`too-large`&&a.length>1)e.vt=Math.max(1,Math.floor(a.length/2)),e.Ge.warn(`Received 413 when sending logs batch of size `+a.length+`, reducing batch size to `+e.vt);else if(s.kind===`retry-later`||(s.kind===`too-large`?e.Ge.warn(`Dropping a single log record after 413 with batch size 1 â the record is larger than the server cap and cannot be split further.`):s.kind===`ok`&&e.Te.maxBatchRecordsPerPost>e.vt&&(e.vt=Math.min(e.Te.maxBatchRecordsPerPost,e.vt+1)),yield e.It(a.length),t=e._instance.getPersistedProperty(ic.LogsQueue)??[],r+=a.length,s.kind===`fatal`))throw s.error}}))()}It(e){var t=this;return Zs((function*(){var n=Math.max(0,e-t.it),r=t._instance.getPersistedProperty(ic.LogsQueue)??[];t._instance.setPersistedProperty(ic.LogsQueue,r.slice(n)),yield t.et()}))()}Ct(){return iu(this.Te,this._instance.getLibraryId(),this._instance.getLibraryVersion())}kt(e){if(!this._instance.optedOut){var t=this._instance.getPersistedProperty(ic.LogsQueue)??[];this.dt>t.length||(t.shift(),this.it++,this.Ge.info(`Logs queue is full, dropping oldest record.`)),t.push(e),this._instance.setPersistedProperty(ic.LogsQueue,t),this.ht>t.length?this.Tt():this._t()}}Tt(e){e===void 0&&(e=this.ct),this.Et||=Zl((()=>{this.Et=void 0,this._t()}),e)}Rt(){var e=Math.min(Math.max(0,this.nt-1),6);return this.ct*2**e}Pt(){var e=this._instance.getPersistedProperty(ic.LogsQueue);return!!e&&e.length>0}shutdown(e){var t=this;return Zs((function*(){t.bt();var n=t.flush().catch((()=>{}));e===void 0?yield n:yield Promise.race([n,new Promise((t=>Zl(t,e)))])}))()}flushWithTimeout(e){var t=this;return Zs((function*(){var n=!1,r=t.flush(),i=new Promise((t=>Zl((()=>{n=!0,t()}),e)));try{yield Promise.race([r,i])}finally{n&&r.catch((()=>{}))}}))()}_t(){this.flush().then((()=>{this.nt=0}),(e=>{this.nt++,this.Ge.error(`PostHog logs flush failed:`,e)})).finally((()=>{!this._instance.isDisabled&&this.Pt()&&this.Tt(this.Rt())}))}bt(){this.Et&&=(clearTimeout(this.Et),void 0)}},su=[0,5,10,25,50,75,100,250,500,750,1e3,2500,5e3,7500,1e4];function cu(e){return String(e)+`000000`}function lu(e,t,n,r){var i=``;return r&&(i=Object.keys(r).sort().map((e=>JSON.stringify(e)+`:`+JSON.stringify(r[e]))).join(`,`)),e+`\0`+t+`\0`+(n??``)+`\0`+i}var uu=class{constructor(e,t,n){this._instance=e,this.Te=t,this.Ge=n,this.Ot=new Map,this.rt=null,this.Ft=!1,this.At=new Map,this.Lt=new Set,this.$t=0}
12count(e,t,n){t===void 0&&(t=1),this.Nt({name:e,type:`count`,value:t,unit:n?.unit,attributes:n?.attributes})}gauge(e,t,n){this.Nt({name:e,type:`gauge`,value:t,unit:n?.unit,attributes:n?.attributes})}histogram(e,t,n){this.Nt({name:e,type:`histogram`,value:t,unit:n?.unit,attributes:n?.attributes})}flush(){var e=this,t=this.rt,n=function(){var n=Zs((function*(){t&&(yield t.catch((()=>{}))),yield e.Dt()}));return function(){return n.apply(this,arguments)}}()().finally((()=>{this.rt===n&&(this.rt=null)}));return this.rt=n,n}drainWindow(){if(this.Ot.size===0)return null;var e=this.Ot;return this.Ot=new Map,this.Ft=!1,this.At=new Map,this.Lt=new Set,this.qt(e)}reset(){this.$t++,this.bt(),this.Ot=new Map,this.rt=null,this.Ft=!1,this.At=new Map,this.Lt=new Set}Nt(e){if(!this._instance.isDisabled&&!this._instance.optedOut){var t=this.wt(e);if(t!==null)if(t.name&&typeof t.name==`string`)if(typeof t.value==`number`&&Number.isFinite(t.value))if(t.type===`count`&&0>t.value)this.Ge.warn(`Dropping count '`+t.name+`': counters are monotonic, value must be >= 0`);else{var n,r;try{n=t.attributes?K({},t.attributes):void 0,r=lu(t.type,t.name,t.unit,n)}catch(e){this.Ge.warn(`Dropping metric '`+t.name+`': attributes could not be serialized`,e);return}var i=this.Ot.get(r);if(!i){if(!this.jt())return;i={name:t.name,type:t.type,unit:t.unit,attributes:n,windowStartMs:Date.now()},this.Ot.set(r,i)}var a=this.At.get(t.name);a===void 0?this.At.set(t.name,t.type):a===t.type||this.Lt.has(t.name)||(this.Lt.add(t.name),this.Ge.warn(`Metric name '`+t.name+`' is already used as a `+a+`; recording it as a `+t.type+` too will blend both series in charts. Use a distinct name.`)),this.Ht(i,t.value),this.Tt()}else this.Ge.warn(`Dropping metric '`+t.name+`': value must be a finite number`);else this.Ge.warn(`Dropping metric with empty name`)}}jt(){return this.Te.maxSeriesPerFlush>this.Ot.size||(this.Ft||(this.Ft=!0,this.Ge.warn(`Metric series cap reached (`+this.Te.maxSeriesPerFlush+` per flush window); dropping new series until the next flush. Reduce attribute cardinality.`)),!1)}Ht(e,t){switch(e.type){case`count`:e.total=(e.total??0)+t;break;case`gauge`:e.last=t;break;case`histogram`:e.hist||={count:0,sum:0,min:t,max:t,bucketCounts:Array(su.length+1).fill(0)};var n=e.hist;n.count+=1,n.sum+=t,n.min=Math.min(n.min,t),n.max=Math.max(n.max,t),n.bucketCounts[function(e,t){for(var n=0;t.length>n;n++)if(t[n]>=e)return n;return t.length}(t,su)]+=1}}wt(e){var t=this.Te.beforeSend;if(!t)return e;var n=Cc(t)?t:[t],r=e;for(var i of n)try{var a=i(r);if(!a)return this.Ge.info(`Metric was rejected in beforeSend function`),null;r=a}catch(e){return this.Ge.error(`Error in beforeSend function for metric:`,e),null}return r}Tt(){this.Et||=Zl((()=>{this.Et=void 0,this.flush().catch((e=>{this.Ge.error(`Metrics flush failed:`,e)}))}),this.Te.flushIntervalMs)}bt(){this.Et&&=(clearTimeout(this.Et),void 0)}Dt(){var e=this;return Zs((function*(){if(e.Ot.size!==0){var t=e.Ot;e.Ot=new Map,e.Ft=!1,e.At=new Map,e.Lt=new Set;var n=e.$t,r=yield e._instance.Bt(e.qt(t));if(n===e.$t)switch(r.kind){case`ok`:return;case`retry-later`:e.Ut(t),e.Tt();return;case`too-large`:e.Ge.warn(`Metrics batch exceeded the server size limit and was dropped`);return;case`fatal`:e.Ge.error(`Failed to send metrics batch:`,r.error);return}}}))()}qt(e){return t=this.zt(e),n=function(e,t,n){return K({},e.resourceAttributes,{"service.name":e.serviceName||`unknown_service`},e.environment&&{"deployment.environment":e.environment},e.serviceVersion&&{"service.version":e.serviceVersion},{"telemetry.sdk.name":t,"telemetry.sdk.version":n})}(this.Te,this._instance.getLibraryId(),this._instance.getLibraryVersion()),r=this._instance.getLibraryId(),i=this._instance.getLibraryVersion(),{resourceMetrics:[{resource:{attributes:nu(n)},scopeMetrics:[{scope:{name:r,version:i},metrics:t}]}]};var t,n,r,i}zt(e){var t=cu(Date.now()),n=new Map;for(var r of e.values()){var i=lu(r.type,r.name,r.unit,void 0),a=n.get(i);a||(a=K({name:r.name},r.unit&&{unit:r.unit}),r.type===`count`?a.sum={aggregationTemporality:1,isMonotonic:!0,dataPoints:[]}:r.type===`gauge`?a.gauge={dataPoints:[]}:a.histogram={aggregationTemporality:1,dataPoints:[]},n.set(i,a));var o=nu(r.attributes??{}),s=cu(r.windowStartMs);if(r.type===`count`){var c={attributes:o,startTimeUnixNano:s,timeUnixNano:t,asDouble:r.total??0};a.sum.dataPoints.push(c)}else if(r.type===`gauge`){var l={attributes:o,timeUnixNano:t,asDouble:r.last??0};a.gauge.dataPoints.push(l)}else r.hist&&a.histogram.dataPoints.push({attributes:o,startTimeUnixNano:s,timeUnixNano:t,count:r.hist.count,sum:r.hist.sum,min:r.hist.min,max:r.hist.max,bucketCounts:r.hist.bucketCounts,explicitBounds:su})}return Array.from(n.values())}Ut(e){for(var t of e){var n=t[0],r=t[1],i=this.Ot.get(n);if(i)switch(i.windowStartMs=Math.min(i.windowStartMs,r.windowStartMs),i.type){case`count`:i.total=(i.total??0)+(r.total??0);break;case`gauge`:break;case`histogram`:if(r.hist)if(i.hist){i.hist.count+=r.hist.count,i.hist.sum+=r.hist.sum,i.hist.min=Math.min(i.hist.min,r.hist.min),i.hist.max=Math.max(i.hist.max,r.hist.max);for(var a=0;i.hist.bucketCounts.length>a;a++)i.hist.bucketCounts[a]+=r.hist.bucketCounts[a]}else i.hist=r.hist}else this.jt()&&this.Ot.set(n,r)}}},du,fu,pu;function mu(e){var t=globalThis._posthogChunkIds;if(t){var n=Object.keys(t);return pu&&n.length===fu||(fu=n.length,pu=n.reduce(((n,r)=>{du||={};var i=du[r];if(i)n[i[0]]=i[1];else for(var a=e(r),o=a.length-1;o>=0;o--){var s=a[o]?.filename,c=t[r];
12if(s&&c){n[s]=c,du[r]=[s,c];break}}return n}),{})),pu}}var hu=class{constructor(e,t,n){n===void 0&&(n=[]),this.coercers=e,this.stackParser=t,this.modifiers=n}buildFromUnknown(e,t){t===void 0&&(t={});var n=t&&t.mechanism||{handled:!0,type:`generic`},r=this.buildCoercingContext(n,t,0).apply(e),i=this.buildParsingContext(t),a=this.parseStacktrace(r,i);return{$exception_list:this.convertToExceptionList(a,n),$exception_level:`error`}}modifyFrames(e){var t=this;return Zs((function*(){for(var n of e)n.stacktrace&&n.stacktrace.frames&&Cc(n.stacktrace.frames)&&(n.stacktrace.frames=yield t.applyModifiers(n.stacktrace.frames));return e}))()}coerceFallback(e){return{type:`Error`,value:`Unknown error`,stack:e.syntheticException?.stack,synthetic:!0}}parseStacktrace(e,t){var n,r;return e.cause!=null&&(n=this.parseStacktrace(e.cause,t)),e.stack!=``&&e.stack!=null&&(r=this.applyChunkIds(this.stackParser(e.stack,e.synthetic?t.skipFirstLines:0),t.chunkIdMap)),K({},e,{cause:n,stack:r})}applyChunkIds(e,t){return e.map((e=>(e.filename&&t&&(e.chunk_id=t[e.filename]),e)))}applyCoercers(e,t){for(var n of this.coercers)if(n.match(e))return n.coerce(e,t);return this.coerceFallback(t)}applyModifiers(e){var t=this;return Zs((function*(){var n=e;for(var r of t.modifiers)n=yield r(n);return n}))()}convertToExceptionList(e,t){var n,r,i={type:e.type,value:e.value,mechanism:{type:t.type??`generic`,handled:(n=t.handled)==null||n,synthetic:(r=e.synthetic)!=null&&r}};e.stack&&(i.stacktrace={type:`raw`,frames:e.stack});var a=[i];return e.cause!=null&&a.push(...this.convertToExceptionList(e.cause,K({},t,{handled:!0}))),a}buildParsingContext(e){return{chunkIdMap:mu(this.stackParser),skipFirstLines:e.skipFirstLines??1}}buildCoercingContext(e,t,n){n===void 0&&(n=0);var r=(n,r)=>{if(4>=r){var i=this.buildCoercingContext(e,t,r);return this.applyCoercers(n,i)}};return K({},t,{syntheticException:n==0?t.syntheticException:void 0,mechanism:e,apply:e=>r(e,n),next:e=>r(e,n+1)})}},gu=`?`;function _u(e,t,n,r,i){var a={platform:e,filename:t,function:n===`<anonymous>`?gu:n,in_app:!0};return J(r)||(a.lineno=r),J(i)||(a.colno=i),a}var vu=(e,t)=>{var n=e.indexOf(`safari-extension`)!==-1,r=e.indexOf(`safari-web-extension`)!==-1;return n||r?[e.indexOf(`@`)===-1?gu:e.split(`@`)[0],n?`safari-extension:`+t:`safari-web-extension:`+t]:[e,t]},yu=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,bu=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,xu=/\((\S*)(?::(\d+))(?::(\d+))\)/,Su=(e,t)=>{var n=yu.exec(e);if(n)return _u(t,n[1],gu,+n[2],+n[3]);var r=bu.exec(e);if(r){if(r[2]&&r[2].indexOf(`eval`)===0){var i=xu.exec(r[2]);i&&(r[2]=i[1],r[3]=i[2],r[4]=i[3])}var a=vu(r[1]||gu,r[2]);return _u(t,a[1],a[0],r[3]?+r[3]:void 0,r[4]?+r[4]:void 0)}},Cu=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,wu=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,Tu=(e,t)=>{var n=Cu.exec(e);if(n){if(n[3]&&n[3].indexOf(` > eval`)>-1){var r=wu.exec(n[3]);r&&(n[1]=n[1]||`eval`,n[3]=r[1],n[4]=r[2],n[5]=``)}var i=n[3],a=n[1]||gu,o=vu(a,i);return _u(t,i=o[1],a=o[0],n[4]?+n[4]:void 0,n[5]?+n[5]:void 0)}},Eu=/\(error: (.*)\)/,Du=class{match(e){return this.isDOMException(e)||this.isDOMError(e)}coerce(e,t){var n=Dc(e.stack);return{type:this.getType(e),value:this.getValue(e),stack:n?e.stack:void 0,cause:e.cause?t.next(e.cause):void 0,synthetic:!1}}getType(e){return this.isDOMError(e)?`DOMError`:`DOMException`}getValue(e){var t=e.name||(this.isDOMError(e)?`DOMError`:`DOMException`);return e.message?t+`: `+e.message:t}isDOMException(e){return Rc(e,`DOMException`)}isDOMError(e){return Rc(e,`DOMError`)}},Ou=class{match(e){return(e=>e instanceof Error)(e)}coerce(e,t){return{type:this.getType(e),value:this.getMessage(e,t),stack:this.getStack(e),cause:e.cause?t.next(e.cause):void 0,synthetic:!1}}getType(e){return e.name||e.constructor.name}getMessage(e,t){var n=e.message;return String(n.error&&typeof n.error.message==`string`?n.error.message:n)}getStack(e){return e.stacktrace||e.stack||void 0}},ku=class{constructor(){}match(e){return Rc(e,`ErrorEvent`)&&e.error!=null}coerce(e,t){return t.apply(e.error)||{type:`ErrorEvent`,value:e.message,stack:t.syntheticException?.stack,synthetic:!0}}},Au=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,ju=class{match(e){return typeof e==`string`}coerce(e,t){var n=this.getInfos(e),r=n[0],i=n[1];return{type:r??`Error`,value:i??e,stack:t.syntheticException?.stack,synthetic:!0}}getInfos(e){var t=`Error`,n=e,r=e.match(Au);return r&&(t=r[1],n=r[2]),[t,n]}},Mu=[`fatal`,`error`,`warning`,`log`,`info`,`debug`];function Nu(e,t){t===void 0&&(t=40);var n=Object.keys(e);if(n.sort(),!n.length)return`[object has no keys]`;for(var r=n.length;r>0;r--){var i=n.slice(0,r).join(`, `);if(t>=i.length)return r===n.length?i:i.length>t?i.slice(0,t)+`...`:i}return``}var Pu=class{match(e){return typeof e==`object`&&!!e}coerce(e,t){var n=this.getErrorPropertyFromObject(e);return n?t.apply(n):{type:this.getType(e),value:this.getValue(e),stack:t.syntheticException?.stack,level:this.isSeverityLevel(e.level)?e.level:`error`,synthetic:!0}}getType(e){return zc(e)?e.constructor.name:`Error`}getValue(e){if(`name`in e&&typeof e.name==`string`){var t=`'`+e.name+`' captured as exception`;return`message`in e&&typeof e.message==`string`&&(t+=` with message: '`+e.message+`'`),t}if(`message`in e&&typeof e.message==`string`)return e.message;var n=this.getObjectClassName(e);return(n&&n!==`Object`?`'`+n+`'`:`Object`)+` captured as exception with keys: `+Nu(e)}isSeverityLevel(e){return Dc(e)&&!Oc(e)&&Mu.indexOf(e)>=0}getErrorPropertyFromObject(e){for(var t in e)if({}.hasOwnProperty.call(e,t)){var n=e[t];if(Ql(n))return n}}getObjectClassName(e){try{var t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{return}}},Fu=class{match(e){return zc(e)}coerce(e,t){var n=e.constructor.name;return{type:n,value:n+` captured as exception with keys: `+Nu(e),stack:t.syntheticException?.stack,synthetic:!0}}},Iu=class{match(e){return Lc(e)}coerce(e,t){return{type:`Error`,value:`Primitive value captured as exception: `+String(e),stack:t.syntheticException?.stack,synthetic:!0}}},Lu=class{match(e){return Rc(e,`PromiseRejectionEvent`)||this.isCu
12stomEventWrappingRejection(e)}isCustomEventWrappingRejection(e){if(!zc(e))return!1;try{var t=e.detail;return typeof t==`object`&&!!t&&`reason`in t}catch{return!1}}coerce(e,t){var n=this.getUnhandledRejectionReason(e);return Lc(n)?{type:`UnhandledRejection`,value:`Non-Error promise rejection captured with value: `+String(n),stack:t.syntheticException?.stack,synthetic:!0}:t.apply(n)}getUnhandledRejectionReason(e){try{if(`reason`in e)return e.reason;if(`detail`in e&&e.detail!=null&&typeof e.detail==`object`&&`reason`in e.detail)return e.detail.reason}catch{}return e}},Ru=`$message`,zu=`$timestamp`,Bu=new Set([Ru,zu]),Vu={enabled:!0,max_bytes:32768};function Hu(e){return e?{enabled:e.enabled??Vu.enabled,max_bytes:Wu(e.max_bytes,Vu.max_bytes)}:K({},Vu)}var Uu=class{constructor(e){this.Vt=[],this.Wt=0,this.Te=Hu(e)}setConfig(e){this.Te=Hu(e),this.Zt()}add(e){var t=function(e){var t;try{t=yc(e)}catch{return}try{var n=JSON.parse(t);if(!Tc(n))return;var r=n,i=r[Ru],a=r[zu];return!Dc(i)||i.trim().length===0||!Dc(a)&&!jc(a)?void 0:{step:r,json:t}}catch{return}}(e);if(t){var n=function(e){if(typeof TextEncoder<`u`)return new TextEncoder().encode(e).length;for(var t=encodeURIComponent(e),n=0,r=0;t.length>r;r++)t[r]===`%`?(n+=1,r+=2):n+=1;return n}(t.json);n>this.Te.max_bytes||(this.Vt.push({step:t.step,bytes:n}),this.Wt+=n,this.Zt())}}getAttachable(){return this.Vt.map((e=>e.step))}clear(){this.Vt=[],this.Wt=0}size(){return this.Vt.length}Zt(){for(;this.Wt>this.Te.max_bytes&&this.Vt.length>0;){var e=this.Vt.shift();e&&(this.Wt-=e.bytes)}}};function Wu(e,t){if(!jc(e)||e===1/0||e===-1/0)return t;var n=Math.floor(e);return 0>n?t:n}var Gu=function(e,t){var n=(t===void 0?{}:t).debugEnabled,r={k(t){if(U&&(Ys.DEBUG||U.POSTHOG_DEBUG||n)&&!J(U.console)&&U.console){for(var r=(`__rrweb_original__`in U.console[t])?U.console[t].__rrweb_original__:U.console[t],i=arguments.length,a=Array(i>1?i-1:0),o=1;i>o;o++)a[o-1]=arguments[o];r(e,...a)}},debug(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];r.k(`debug`,...t)},info(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];r.k(`log`,...t)},warn(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];r.k(`warn`,...t)},error(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];r.k(`error`,...t)},critical(){for(var t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];console.error(e,...n)},uninitializedWarning(e){r.error(`You must initialize PostHog before calling `+e)},createLogger:(t,n)=>Gu(e+` `+t,n)};return r},X=Gu(`[PostHog.js]`),Z=X.createLogger,Ku=Z(`[ExternalScriptsLoader]`),qu=(e,t,n)=>{if(e.config.disable_external_dependency_loading)return Ku.warn(t+` was requested but loading of external scripts is disabled.`),n(`Loading of external scripts is disabled`);var r=W?.querySelectorAll(`script`);if(r){for(var i,a=function(){if(r[o].src===t){var e=r[o];return e.__posthog_loading_callback_fired?{v:n()}:(e.addEventListener(`load`,(t=>{e.__posthog_loading_callback_fired=!0,n(void 0,t)})),e.onerror=e=>n(e),{v:void 0})}},o=0;r.length>o;o++)if(i=a())return i.v}var s=()=>{if(!W)return n(`document not found`);var r=W.createElement(`script`);if(r.type=`text/javascript`,r.crossOrigin=`anonymous`,r.src=t,r.onload=e=>{r.__posthog_loading_callback_fired=!0,n(void 0,e)},r.onerror=e=>n(e),e.config.prepare_external_dependency_script&&(r=e.config.prepare_external_dependency_script(r)),!r)return n(`prepare_external_dependency_script returned null`);if(e.config.external_scripts_inject_target===`head`)W.head.appendChild(r);else{var i,a=W.querySelectorAll(`body > script`);a.length>0?(i=a[0].parentNode)==null||i.insertBefore(r,a[0]):W.body.appendChild(r)}};W!=null&&W.body?s():W?.addEventListener(`DOMContentLoaded`,s)};G.__PosthogExtensions__=G.__PosthogExtensions__||{},G.__PosthogExtensions__.loadExternalDependency=(e,t,n)=>{if(t!==`remote-config`){var r;if(e.config.strict_script_versioning)r=e.requestRouter.endpointFor(`assets`,`/static/`+e.version+`/`+t+`.js`);else{var i=`/static/`+t+`.js?v=`+e.version;if(t===`toolbar`){var a=3e5;i=i+`&t=`+Math.floor(Date.now()/a)*a}r=e.requestRouter.endpointFor(`assets`,i)}qu(e,r,n)}else qu(e,e.requestRouter.endpointFor(`assets`,`/array/`+e.config.token+`/config.js`),n)},G.__PosthogExtensions__.loadSiteApp=(e,t,n)=>{qu(e,e.requestRouter.endpointFor(`api`,t),n)},Ys.DEBUG=!1,Ys.LIB_VERSION=`1.408.1`,Ys.LIB_NAME=`web`;var Ju=`$people_distinct_id`,Yu=`$device_id`,Xu=`$device_model`,Zu=`__alias`,Qu=`__timers`,$u=`$autocapture_disabled_server_side`,ed=`$heatmaps_enabled_server_side`,td=`$exception_capture_enabled_server_side`,nd=`$error_tracking_suppression_rules`,rd=`$error_tracking_capture_extension_exceptions`,id=`$web_vitals_enabled_server_side`,ad=`$dead_clicks_enabled_server_side`,od=`$product_tours_enabled_server_side`,sd=`$web_vitals_allowed_metrics`,cd=`$session_recording_remote_config`,ld=`$replay_sample_rate`,ud=`$replay_override_sampling`,dd=`$replay_override_linked_flag`,fd=`$replay_override_url_trigger`,pd=`$replay_override_event_trigger`,md=`$sesid`,hd=`$session_is_sampled`,gd=`$enabled_feature_flags`,_d=`$active_feature_flags`,vd=`$early_access_features`,yd=`$feature_flag_details`,bd=`$feature_flag_payloads`,xd=`$feature_flag_request_id`,Sd=`$minimal_flag_called_events`,Cd=`$override_feature_flags`,wd=`$override_feature_flag_payloads`,Td=`$stored_person_properties`,Ed=`$stored_group_properties`,Dd=`$surveys`,Od=`$surveys_loaded_at`,kd=`$surveys_activated`,Ad=`$surveys_activated_session`,jd=`ph_product_tours`,Md=`$flag_call_reported`,Nd=`$flag_call_reported_session_id`,Pd=`$feature_flag_errors`,Fd=`$feature_flag_evaluated_at`,Id=`$user_state`,Ld=`$client_session_props`,Rd=`$capture_rate_limit`,zd=`$initial_campaign_params`,Bd=`$initial_referrer_info`,Vd=`$
12initial_person_info`,Hd=`$epp`,Ud=`$posthog_cookieless`,Wd=`$cookieless_mode`,Gd=`$sdk_debug_extensions_init_method`,Kd=`$sdk_debug_extensions_init_time_ms`,qd=`$sdk_debug_recording_script_not_loaded`,Jd=`PostHog loadExternalDependency extension not found.`,Yd=`on_reject`,Xd=`always`,Zd=`anonymous`,Qd=`identified`,$d=`identified_only`,ef=`visibilitychange`,tf=`beforeunload`,nf=`$pageview`,rf=`$pageleave`,af=`$identify`,of=`$groupidentify`;function sf(e,t){Cc(e)&&e.forEach(t)}function cf(e,t){if(!Ac(e))if(Cc(e))e.forEach(t);else if(Pc(e))e.forEach(((e,n)=>t(e,n)));else for(var n in e)xc.call(e,n)&&t(e[n],n)}var lf=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;t>r;r++)n[r-1]=arguments[r];for(var i of n)for(var a in i)i[a]!==void 0&&(e[a]=i[a]);return e};function uf(e){for(var t=Object.keys(e),n=t.length,r=Array(n);n--;)r[n]=[t[n],e[t[n]]];return r}var df=function(e){try{return e()}catch{return}},ff=function(e){return function(){try{for(var t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];return e.apply(this,n)}catch(e){X.critical(`Implementation error. Please turn on debug mode and open a ticket on https://app.posthog.com/home#panel=support%3Asupport%3A.`),X.critical(e)}}},pf=function(e){var t={};return cf(e,(function(e,n){(Dc(e)&&e.length>0||jc(e))&&(t[n]=e)})),t},mf=[`herokuapp.com`,`vercel.app`,`netlify.app`];function hf(e){var t=e?.hostname;if(!Dc(t))return!1;var n=t.split(`.`).slice(-2).join(`.`);for(var r of mf)if(n===r)return!1;return!0}function gf(e,t,n,r){var i=r??{},a=i.capture,o=i.passive;e?.addEventListener(t,n,{capture:a!==void 0&&a,passive:o===void 0||o})}function _f(e){return e.name===`ph_toolbar_internal`}var vf=e=>{if(W){try{for(var t=e+`=`,n=W.cookie.split(`;`).filter((e=>e.length)),r=0;n.length>r;r++){for(var i=n[r];i.charAt(0)==` `;)i=i.substring(1,i.length);if(i.indexOf(t)===0)return decodeURIComponent(i.substring(t.length,i.length))}}catch{}return null}};Math.trunc||(Math.trunc=function(e){return 0>e?Math.ceil(e):Math.floor(e)}),Number.isInteger||(Number.isInteger=function(e){return jc(e)&&isFinite(e)&&Math.floor(e)===e});var yf=class e{constructor(e){if(this.bytes=e,e.length!==16)throw TypeError(`not 128-bit length`)}static fromFieldsV7(t,n,r,i){if(!Number.isInteger(t)||!Number.isInteger(n)||!Number.isInteger(r)||!Number.isInteger(i)||0>t||0>n||0>r||0>i||t>0xffffffffffff||n>4095||r>1073741823||i>4294967295)throw RangeError(`invalid field value`);var a=new Uint8Array(16);return a[0]=t/2**40,a[1]=t/2**32,a[2]=t/2**24,a[3]=t/2**16,a[4]=t/256,a[5]=t,a[6]=112|n>>>8,a[7]=n,a[8]=128|r>>>24,a[9]=r>>>16,a[10]=r>>>8,a[11]=r,a[12]=i>>>24,a[13]=i>>>16,a[14]=i>>>8,a[15]=i,new e(a)}toString(){for(var e=``,t=0;this.bytes.length>t;t++)e=e+(this.bytes[t]>>>4).toString(16)+(15&this.bytes[t]).toString(16),t!==3&&t!==5&&t!==7&&t!==9||(e+=`-`);if(e.length!==36)throw Error(`Invalid UUIDv7 was generated`);return e}clone(){return new e(this.bytes.slice(0))}equals(e){return this.compareTo(e)===0}compareTo(e){for(var t=0;16>t;t++){var n=this.bytes[t]-e.bytes[t];if(n!==0)return Math.sign(n)}return 0}},bf=class{generate(){var e=this.generateOrAbort();if(!J(e))return e;this.S=0;var t=this.generateOrAbort();if(J(t))throw Error(`Could not generate UUID after timestamp reset`);return t}generateOrAbort(){var e=Date.now();if(e>this.S)this.S=e,this.C();else{if(this.S>=e+1e4)return;this.M++,this.M>4398046511103&&(this.S++,this.C())}return yf.fromFieldsV7(this.S,Math.trunc(this.M/2**30),this.M&2**30-1,this.I.nextUint32())}C(){this.M=1024*this.I.nextUint32()+(1023&this.I.nextUint32())}constructor(){this.S=0,this.M=0,this.I=new Cf}},xf,Sf=e=>{if(typeof UUIDV7_DENY_WEAK_RNG<`u`&&UUIDV7_DENY_WEAK_RNG)throw Error(`no cryptographically strong RNG available`);for(var t=0;e.length>t;t++)e[t]=65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random());return e};U&&!J(U.crypto)&&crypto.getRandomValues&&(Sf=e=>crypto.getRandomValues(e));var Cf=class{nextUint32(){return this.R.length>this.O||(Sf(this.R),this.O=0),this.R[this.O++]}constructor(){this.R=new Uint32Array(8),this.O=1/0}},wf=()=>Tf().toString(),Tf=()=>(xf||=new bf).generate(),Ef=``,Df=/[a-z0-9][a-z0-9-]+\.[a-z]{2,}$/i,Of={N:()=>!!W,D(e){X.error(`cookieStore error: `+e)},A:vf,F(e){var t;try{t=JSON.parse(Of.A(e))||{}}catch{}return t},q(e,t,n,r,i){if(!W)return!1;try{var a=``,o=``,s=function(e,t){if(t){var n=function(e,t){if(t===void 0&&(t=W),Ef)return Ef;if(!t||[`localhost`,`127.0.0.1`].includes(e))return``;for(var n=e.split(`.`),r=Math.min(n.length,8),i=`dmn_chk_`+wf();!Ef&&r--;){var a=n.slice(r).join(`.`),o=i+`=1;domain=.`+a+`;path=/`;
12t.cookie=o+`;max-age=3`,t.cookie.includes(i)&&(t.cookie=o+`;max-age=0`,Ef=a)}return Ef}(e);if(!n){var r=(e=>{var t=e.match(Df);return t?t[0]:``})(e);r!==n&&X.info(`Warning: cookie subdomain discovery mismatch`,r,n),n=r}return n?`; domain=.`+n:``}return``}(W.location.hostname,r);if(n){var c=new Date;c.setTime(c.getTime()+864e5*n),a=`; expires=`+c.toUTCString()}i&&(o=`; secure`);var l=e+`=`+encodeURIComponent(JSON.stringify(t))+a+`; SameSite=Lax; path=/`+s+o;return l.length>3686.4&&X.warn(`cookieStore warning: large cookie, len=`+l.length),W.cookie=l,!0}catch{return!1}},P(e,t){if(W!=null&&W.cookie)try{Of.q(e,``,-1,t)}catch{return}}},kf=null,Af={N(){if(!kc(kf))return kf;var e=!0;if(J(U))e=!1;else try{var t=`__mplssupport__`;Af.q(t,`xyz`),Af.A(t)!==`"xyz"`&&(e=!1),Af.P(t)}catch{e=!1}return e||X.error(`localStorage unsupported; falling back to cookie store`),kf=e,e},D(e){X.error(`localStorage error: `+e)},A(e){try{return U?.localStorage.getItem(e)}catch(e){Af.D(e)}return null},F(e){try{return JSON.parse(Af.A(e))||{}}catch{}return null},q(e,t){try{return U?.localStorage.setItem(e,JSON.stringify(t)),!0}catch(e){Af.D(e)}return!1},P(e){try{U?.localStorage.removeItem(e)}catch(e){Af.D(e)}}},jf=[Yu,`distinct_id`,md,hd,Hd,Vd,Id],Mf={},Nf={N:()=>!0,D(e){X.error(`memoryStorage error: `+e)},A:e=>Mf[e]||null,F:e=>Mf[e]||null,q:(e,t)=>(Mf[e]=t,!0),P(e){delete Mf[e]}},Pf=null,Ff={N(){if(!kc(Pf))return Pf;if(Pf=!0,J(U))Pf=!1;else try{var e=`__support__`;Ff.q(e,`xyz`),Ff.A(e)!==`"xyz"`&&(Pf=!1),Ff.P(e)}catch{Pf=!1}return Pf},D(e){X.error(`sessionStorage error: `,e)},A(e){try{return U?.sessionStorage.getItem(e)}catch(e){Ff.D(e)}return null},F(e){try{return JSON.parse(Ff.A(e))||null}catch{}return null},q(e,t){try{return U?.sessionStorage.setItem(e,JSON.stringify(t)),!0}catch(e){Ff.D(e)}return!1},P(e){try{U?.sessionStorage.removeItem(e)}catch(e){Ff.D(e)}}},If=class{constructor(e){this._instance=e}get Te(){return this._instance.config}get consent(){return this.Gt()?0:this.Qt}isOptedOut(){return this.Te.cookieless_mode===Xd||this.isRejected()||this.consent===-1&&this.Te.cookieless_mode===Yd}isOptedIn(){return!this.isOptedOut()}isExplicitlyOptedOut(){return this.consent===0}isRejected(){return this.consent===0||this.consent===-1&&this.Te.opt_out_capturing_by_default}optInOut(e){this.Jt.q(this.Kt,+!!e,this.Te.cookie_expiration,this.Te.cross_subdomain_cookie,this.Te.secure_cookie)}reset(){this.Jt.P(this.Kt,this.Te.cross_subdomain_cookie)}get Kt(){var e=this._instance.config,t=e.token,n=e.opt_out_capturing_cookie_prefix;return e.consent_persistence_name||(n?n+t:`__ph_opt_in_out_`+t)}get Qt(){var e=this.Jt.A(this.Kt);return Vc(e)?1:q(Hc,e)?0:-1}get Jt(){var e=this.Te.opt_out_capturing_persistence_type,t=e===`localStorage`?Af:Of;if(!this.Yt||this.Yt!==t){this.Yt=t;var n=e===`localStorage`?Of:Af;n.A(this.Kt)&&(this.Yt.A(this.Kt)||this.optInOut(Vc(n.A(this.Kt))),n.P(this.Kt,this.Te.cross_subdomain_cookie))}return this.Yt}Gt(){return!!this.Te.respect_dnt&&[Bs?.doNotTrack,Bs?.msDoNotTrack,G.doNotTrack].some((e=>Vc(e)))}};function Lf(e,t){var n,r=e==null||(n=e.config)==null?void 0:n.get_current_url;if(!wc(r))return t;try{var i=r(t);return Dc(i)&&i?i:t}catch(e){return X.error(`Error in get_current_url, falling back to window.location.href`,e),t}}var Rf=`__POSTHOG_TOOLBAR__`,zf=1,Bf=3,Vf=11;function Hf(e){return e instanceof Element&&(e.id===Rf||!(e.closest==null||!e.closest(`.toolbar-global-fade-container`)))}function Uf(e){return!!e&&e.nodeType===zf}function Wf(e,t){return!!e&&!!e.tagName&&e.tagName.toLowerCase()===t.toLowerCase()}function Gf(e){return!!e&&e.nodeType===Bf}function Kf(e){return!!e&&e.nodeType===Vf&&Uf(e.host)}var qf=1e3;function Jf(e){return e?_c(e).split(/\s+/):[]}function Yf(e,t){var n=function(e){var t,n=U==null||(t=U.location)==null?void 0:t.href;return J(n)?void 0:Lf(e,n)}(t);return!!(n&&e&&e.some((e=>n.match(e))))}function Xf(e){var t=``;switch(typeof e.className){case`string`:t=e.className;break;case`object`:t=(e.className&&`baseVal`in e.className?e.className.baseVal:null)||e.getAttribute(`class`)||``;break;default:t=``}return Jf(t)}function Zf(e){return Ac(e)?null:_c(e).split(/(\s+)/).filter((e=>bp(e))).join(``).replace(/[\r\n]/g,` `).replace(/[ ]+/g,` `).substring(0,255)}function Qf(e){var t=``;return fp(e)&&!pp(e)&&e.childNodes&&e.childNodes.length&&cf(e.childNodes,(function(e){Gf(e)&&e.textContent&&(t+=Zf(e.textContent)??``)})),_c(t)}function $f(e){var t;return J(e.target)?e.srcElement||null:(t=e.target)!=null&&t.shadowRoot?e.composedPath()[0]||null:e.target||null}var ep=[`a`,`button`,`form`,`input`,`select`,`textarea`,`label`];function tp(e,t){if(J(t))return!0;var n,r=function(e){if(t.some((t=>function(e,t){var n=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector;try{return!!n&&n.call(e,t)}catch{return!1}}(e,t))))return{v:!0}};for(var i of e)if(n=r(i))return n.v;return!1}function np(e){var t=e.parentNode;return!(!t||!Uf(t))&&t}var rp=[`.ph-no-autocapture`,`[data-ph-no-autocapture]`],ip=[`next`,`previous`,`prev`,`>`,`<`],ap=[...ip,`+`,`-`,`â`,`â`],op=(e,t)=>/[a-z0-9]/i.test(t)?e.includes(t):e===t,sp=[`.ph-no-rageclick`,`.ph-no-capture`],cp=[``,`text`,`search`,`email`,`password`,`url`,`tel`,`number`];function lp(e,t){if(!U||up(e))return!1;var n,r,i,a;if(Nc(t)?(n=!!t&&sp,r=void 0,i=!1):(n=t?.css_selector_ignorelist??sp,r=t?.content_ignorelist,i=(a=t?.ignore_text_selection)!=null&&a),!1===n||i&&function(e){return!(!e||!Uf(e))&&(!!Wf(e,`textarea`)||(Wf(e,`input`)?q(cp,(e.getAttribute(`type`)||``).toLowerCase()):function(e){if(e.isContentEditable)return!0;var t=e.getAttribute==null?void 0:e.getAttribute(`contenteditable`);return t===`true`||t===``}(e)))}(e))return!1;var o=dp(e,!1).targetElementList;return!function(e,t){if(!1===e||J(e))return!1;var n;if(!0===e)n=ip;else{if(!Cc(e))return!1;if(e.length>10)return X.error(`[PostHog] content_ignorelist array cannot exceed 10 items. Use css_selector_ignorelist for more complex matching.`),!1;n=e.map((e=>e.toLowerCase()))}return t.some((e=>{var t=e.safeText,r=e.ariaLabel;return n.some((e=>op(t,e)||op(r,e)))}))}(r,o.map((e=>({safeText:Qf(e).toLowerCase(),ariaLabel:e.getAttribute(`aria-label`)?.toLowerCase().trim()||``}))))&&!tp(o,n)}var up=e=>!e||Wf(e,`html`)||!Uf(e),dp=(e,t)=>{if(!U||up(e))return{parentIsUsefulElement:!1,targetElementList:[]};for(var n=!1,r=[e],i=e;i.parentNode&&!Wf(i,`body`);)if(Kf(i.parentNode))r.push(i.parentNode.host),i=i.parentNode.host;else{var a=np(i);if(!a)break;if(t||ep.indexOf(a.tagName.toLowerCase())>-1)n=!0;else try{var o=U.getComputedStyle(a);o&&o.getPropertyValue(`cursor`)===`pointer`&&(n=!0)}catch{}r.push(a),i=a}return{parentIsUsefulElement:n,targetElementList:r}};function fp(e){for(var t=new Set,n=0,r=e;r.parentNode&&!Wf(r,`body`);r=r.parentNode){if(n++>=qf||t.has(r))return!1;t.add(r);var i=Xf(r);if(q(i,`ph-sensitive`)||q(i,`ph-no-capture`))return!1}if(q(Xf(e),`ph-include`))return!0;var a=e.type||``;if(Dc(a))switch(a.toLowerCase()){case`hidden`:case`password`:return!1}
12var o=e.name||e.id||``;return!Dc(o)||!/^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(o.replace(/[^a-zA-Z0-9]/g,``))}function pp(e){return!!(Wf(e,`input`)&&![`button`,`checkbox`,`submit`,`reset`].includes(e.type)||Wf(e,`select`)||Wf(e,`textarea`)||e.getAttribute(`contenteditable`)===`true`)}var mp=`(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})`,hp=RegExp(`^(?:`+mp+`)$`),gp=new RegExp(mp),_p=`\\d{3}-?\\d{2}-?\\d{4}`,vp=RegExp(`^(`+_p+`)$`),yp=RegExp(`(`+_p+`)`);function bp(e,t){return t===void 0&&(t=!0),!(Ac(e)||Dc(e)&&(e=_c(e),(t?hp:gp).test((e||``).replace(/[- ]/g,``))||(t?vp:yp).test(e)))}function xp(e){var t=Qf(e);return bp(t=(t+` `+Sp(e)).trim())?t:``}function Sp(e){var t=``;return e&&e.childNodes&&e.childNodes.length&&cf(e.childNodes,(function(e){if(e&&e.tagName?.toLowerCase()===`span`)try{var n=Qf(e);t=(t+` `+n).trim(),e.childNodes&&e.childNodes.length&&(t=(t+` `+Sp(e)).trim())}catch(e){X.error(`[AutoCapture]`,e)}})),t}function Cp(e){return e.replace(/"|\\"/g,`\\"`)}function wp(e){var t=e.attr__class;if(t)return Cc(t)?t:Jf(t)}var Tp=Z(`[Dead Clicks]`),Ep=()=>!0,Dp=e=>{var t,n=!((t=e.instance.persistence)==null||!t.get_property(ad)),r=e.instance.config.capture_dead_clicks;return Nc(r)?r:!!Tc(r)||n},Op=class{get lazyLoadedDeadClicksAutocapture(){return this.Xt}constructor(e,t,n){this.instance=e,this.isEnabled=t,this.onCapture=n,this.startIfEnabledOrStop()}onRemoteConfig(e){if(e.ok){var t=e.config;`captureDeadClicks`in t&&(this.instance.persistence&&this.instance.persistence.register({[ad]:t.captureDeadClicks}),this.startIfEnabledOrStop())}}startIfEnabledOrStop(){this.isEnabled(this)?this.er((()=>{this.tr()})):this.stop()}er(e){var t,n;(t=G.__PosthogExtensions__)!=null&&t.initDeadClicksAutocapture?e():(n=G.__PosthogExtensions__)==null||n.loadExternalDependency==null||n.loadExternalDependency(this.instance,`dead-clicks-autocapture`,(t=>{t?Tp.error(`failed to load script`,t):e()}))}tr(){var e;if(W){if(!this.Xt&&(e=G.__PosthogExtensions__)!=null&&e.initDeadClicksAutocapture){var t=Tc(this.instance.config.capture_dead_clicks)?K({},this.instance.config.capture_dead_clicks):{};t.__onCapture=this.onCapture,this.onCapture&&(t.capture_dead_swipes=!1),this.Xt=G.__PosthogExtensions__.initDeadClicksAutocapture(this.instance,t),this.Xt.start(W),Tp.info(`starting...`)}}else Tp.error("`document` not found. Cannot start.")}stop(){this.Xt&&(this.Xt.stop(),this.Xt=void 0,Tp.info(`stopping...`))}},kp=Z(`[SegmentIntegration]`),Ap=`posthog-js`;function jp(e,t){var n=t===void 0?{}:t,r=n.organization,i=n.projectId,a=n.prefix,o=n.severityAllowList,s=o===void 0?[`error`]:o,c=n.sendExceptionsToPostHog,l=c===void 0||c;return t=>{if(s!==`*`&&!s.includes(t.level)||!e.__loaded)return t;t.tags||={};var n=e.requestRouter.endpointFor(`ui`,`/project/`+e.config.token+`/person/`+e.get_distinct_id());t.tags[`PostHog Person URL`]=n,e.sessionRecordingStarted()&&(t.tags[`PostHog Recording URL`]=e.get_session_replay_url({withTimestamp:!0}));var o,c=t.exception?.values||[],u=c.map((e=>K({},e,{stacktrace:e.stacktrace?K({},e.stacktrace,{type:`raw`,frames:(e.stacktrace.frames||[]).map((e=>K({},e,{platform:`web:javascript`})))}):void 0}))),d={$exception_message:c[0]?.value||t.message,$exception_type:c[0]?.type,$exception_level:t.level,$exception_list:u,$sentry_event_id:t.event_id,$sentry_exception:t.exception,$sentry_exception_message:c[0]?.value||t.message,$sentry_exception_type:c[0]?.type,$sentry_tags:t.tags};return r&&i&&(d.$sentry_url=(a||`https://sentry.io/organizations/`)+r+`/issues/?project=`+i+`&query=`+t.event_id),l&&((o=e.exceptions)==null||o.sendExceptionEvent(d)),t}}var Mp=class{constructor(e,t,n,r,i,a){this.name=Ap,this.setupOnce=function(o){o(jp(e,{organization:t,projectId:n,prefix:r,severityAllowList:i,sendExceptionsToPostHog:a==null||a}))}}},Np=class{constructor(e){this.rr=(e,t,n)=>{n&&(n.noSessionId||n.activityTimeout||n.sessionPastMaximumLength||n.crossTabAdoption)&&(X.info(`[PageViewManager] Session rotated, clearing pageview state`,{sessionId:e,changeReason:n}),this.ir=void 0,this._instance.scrollManager.resetContext())},this._instance=e,this.nr()}nr(){this.sr=this._instance.sessionManager?.onSessionId(this.rr)}destroy(){var e;(e=this.sr)==null||e.call(this),this.sr=void 0}doPageView(e,t){var n=this.ar(e,t);return this.ir={pathname:U?.location.pathname??``,pageViewId:t,timestamp:e},this._instance.scrollManager.resetContext(),n}doPageLeave(e){return this.ar(e,this.ir?.pageViewId)}doEvent(){return{$pageview_id:this.ir?.pageViewId}}ar(e,t){var n=this.ir;if(!n)return{$pageview_id:t};var r={$pageview_id:t,$prev_pageview_id:n.pageViewId},i=this._instance.scrollManager.getContext();if(i&&!this._instance.config.disable_scroll_properties){var a=i.maxScrollHeight,o=i.lastScrollY,s=i.maxScrollY,c=i.maxContentHeight,l=i.lastContentY,u=i.maxContentY;
12if(!(J(a)||J(o)||J(s)||J(c)||J(l)||J(u))){a=Math.ceil(a),o=Math.ceil(o),s=Math.ceil(s),c=Math.ceil(c),l=Math.ceil(l),u=Math.ceil(u);var d=a>1?Uc(o/a,0,1,X):1,f=a>1?Uc(s/a,0,1,X):1,p=c>1?Uc(l/c,0,1,X):1,m=c>1?Uc(u/c,0,1,X):1;r=lf(r,{$prev_pageview_last_scroll:o,$prev_pageview_last_scroll_percentage:d,$prev_pageview_max_scroll:s,$prev_pageview_max_scroll_percentage:f,$prev_pageview_last_content:l,$prev_pageview_last_content_percentage:p,$prev_pageview_max_content:u,$prev_pageview_max_content_percentage:m})}}return n.pathname&&(r.$prev_pageview_pathname=n.pathname),n.timestamp&&(r.$prev_pageview_duration=(e.getTime()-n.timestamp.getTime())/1e3),r}},Pp=[`flags`,`surveys`],Fp={[Ju]:{exposure:`hidden`},[Zu]:{exposure:`hidden`},__cmpns:{exposure:`hidden`},[Qu]:{exposure:`hidden`},[$u]:{exposure:`event`},[ed]:{exposure:`hidden`},[td]:{exposure:`event`},[nd]:{exposure:`hidden`},[rd]:{exposure:`event`},[id]:{exposure:`event`},[ad]:{exposure:`event`},[od]:{exposure:`hidden`},[sd]:{exposure:`event`},[cd]:{exposure:`hidden`},$session_recording_enabled_server_side:{exposure:`hidden`},[md]:{exposure:`hidden`},[hd]:{exposure:`event`},[ld]:{exposure:`event`,shouldSkipFromEventProperties:e=>kc(e)},$session_past_minimum_duration:{exposure:`event`},$session_recording_url_trigger_activated_session:{exposure:`event`},$session_recording_event_trigger_activated_session:{exposure:`event`},$debug_first_full_snapshot_timestamp:{exposure:`event`},$sess_rec_flush_size:{exposure:`hidden`},[gd]:{exposure:`derived`,storageGroup:`flags`,shouldSkipFromEventProperties:(e,t)=>t(),transformToEventProperties(e){if(!Tc(e))return{};for(var t={},n=Object.keys(e),r=0;n.length>r;r++)t[`$feature/`+n[r]]=e[n[r]];return t}},[_d]:{exposure:`event`,storageGroup:`flags`},[vd]:{exposure:`hidden`},[yd]:{exposure:`hidden`,storageGroup:`flags`},[bd]:{exposure:`event`,storageGroup:`flags`},[xd]:{exposure:`event`,storageGroup:`flags`,volatile:!0},[Sd]:{exposure:`hidden`,storageGroup:`flags`},[Cd]:{exposure:`event`},[wd]:{exposure:`hidden`},[Td]:{exposure:`hidden`},[Ed]:{exposure:`hidden`},[Dd]:{exposure:`hidden`,storageGroup:`surveys`},[Od]:{exposure:`hidden`,storageGroup:`surveys`,volatile:!0},[kd]:{exposure:`event`},[Ad]:{exposure:`hidden`},[jd]:{exposure:`hidden`},$product_tours_activated:{exposure:`hidden`},$product_tours_activated_session:{exposure:`hidden`},$conversations_widget_session_id:{exposure:`event`},$conversations_ticket_id:{exposure:`event`},$conversations_widget_state:{exposure:`event`},$conversations_user_traits:{exposure:`event`},[Md]:{exposure:`hidden`},[Nd]:{exposure:`hidden`},[Pd]:{exposure:`hidden`},[Fd]:{exposure:`hidden`,storageGroup:`flags`,volatile:!0},[Id]:{exposure:`hidden`},[Ld]:{exposure:`hidden`}
12,[Rd]:{exposure:`hidden`},[zd]:{exposure:`hidden`},[Bd]:{exposure:`hidden`},[Vd]:{exposure:`hidden`},[Hd]:{exposure:`hidden`},[ud]:{exposure:`event`},[dd]:{exposure:`event`},[fd]:{exposure:`event`},[pd]:{exposure:`event`},[Gd]:{exposure:`event`},[Kd]:{exposure:`event`},[qd]:{exposure:`event`},$sdk_debug_replay_event_trigger_status:{exposure:`event`},$sdk_debug_replay_linked_flag_trigger_status:{exposure:`event`},$sdk_debug_replay_matched_recording_trigger_groups:{exposure:`event`},$sdk_debug_replay_remote_trigger_matching_config:{exposure:`event`},$sdk_debug_replay_trigger_groups_count:{exposure:`event`},$sdk_debug_replay_url_trigger_status:{exposure:`event`},$session_recording_start_reason:{exposure:`event`}},Ip=[[`$posthog_sr_group_event_trigger_`,{exposure:`hidden`}],[`$posthog_sr_group_url_trigger_`,{exposure:`hidden`}],[`$posthog_sr_group_sampling_`,{exposure:`hidden`}]],Lp=e=>{var t=Fp[e];if(t)return t;for(var n of Ip){var r=n[1];if(e.indexOf(n[0])===0)return r}},Rp=(e,t)=>{try{return JSON.stringify(e,((e,t)=>typeof t==`bigint`?t.toString():t),t)}catch{return yc(e)}},zp=e=>{var t=W?.createElement(`a`);return J(t)?null:(t.href=e,t)},Bp=function(e,t){for(var n,r=((e.split(`#`)[0]||``).split(/\?(.*)/)[1]||``).replace(/^\?+/g,``).split(`&`),i=0;r.length>i;i++){var a=r[i].split(`=`);
12if(a[0]===t){n=a;break}}if(!Cc(n)||2>n.length)return``;var o=n[1];try{o=decodeURIComponent(o)}catch{X.error(`Skipping decoding for malformed query param: `+o)}return o.replace(/\+/g,` `)},Vp=function(e,t,n){if(!e||!t||!t.length)return e;for(var r=e.split(`#`),i=r[1],a=(r[0]||``).split(`?`),o=a[1],s=a[0],c=(o||``).split(`&`),l=[],u=0;c.length>u;u++){var d=c[u].split(`=`);Cc(d)&&(t.includes(d[0])?l.push(d[0]+`=`+n):l.push(c[u]))}var f=s;return o!=null&&(f+=`?`+l.join(`&`)),i!=null&&(f+=`#`+i),f},Hp=function(e,t){var n=e.match(RegExp(t+`=([^&]*)`));return n?n[1]:null},Up=(e,t)=>e>=t&&qs(),Wp=(e,t,n,r)=>{if(e===0){if(qs()){var i=t+1;return i===n&&r(),i}return t}return 0},Gp=`https?://(.*)`,Kp=[`gclid`,`gclsrc`,`dclid`,`gbraid`,`wbraid`,`fbclid`,`msclkid`,`twclid`,`li_fat_id`,`igshid`,`ttclid`,`rdt_cid`,`epik`,`qclid`,`sccid`,`irclid`,`_kx`],qp=[`utm_source`,`utm_medium`,`utm_campaign`,`utm_content`,`utm_term`,`gad_source`,`mc_cid`,...Kp],Jp=`<masked>`,Yp=[`li_fat_id`];function Xp(e,t,n){if(!W)return{};var r,i=t?[...Kp,...n||[]]:[],a=Zp(Vp(W.URL,i,Jp),e);return lf((r={},cf(Yp,(function(e){var t=vf(e);r[e]=t||null})),r),a)}function Zp(e,t){var n=qp.concat(t||[]),r={};return cf(n,(function(t){r[t]=Bp(e,t)||null})),r}function Qp(e){var t=function(e){return e?e.search(Gp+`google.([^/?]*)`)===0?`google`:e.search(Gp+`bing.com`)===0?`bing`:e.search(Gp+`yahoo.com`)===0?`yahoo`:e.search(Gp+`duckduckgo.com`)===0?`duckduckgo`:null:null}(e),n=t==`yahoo`?`p`:`q`,r={};if(!kc(t)){r.$search_engine=t;var i=W?Bp(W.referrer,n):``;i.length&&(r.ph_keyword=i)}return r}function $p(){return navigator.language||navigator.userLanguage}var em=`$direct`;function tm(){return W?.referrer||em}function nm(e,t,n){n===void 0&&(n=!1);var r=e?[...Kp,...t||[]]:[],i=(n?Xl(Vs?.href):Vs?.href)?.substring(0,1e3);return{r:tm().substring(0,1e3),u:i?Vp(i,r,Jp):void 0}}function rm(e,t){t===void 0&&(t=!1);var n=e.r,r=e.u,i=t?Xl(r):r,a={$referrer:n,$referring_domain:n==null?void 0:n==em?em:zp(n)?.host};if(i){a.$current_url=i;var o=zp(i);a.$host=o?.host,a.$pathname=o?.pathname,lf(a,Zp(i))}return n&&lf(a,Qp(n)),a}function im(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function am(){try{return new Date().getTimezoneOffset()}catch{return}}var om={flags:Fd,surveys:Od},sm=[`cookie`,`localstorage`,`localstorage+cookie`,`sessionstorage`,`memory`],cm=`main`,lm=class{constructor(e,t,n){if(n===void 0&&(n=!0),this.lr={},this.ur=!1,this.hr=!1,this.Te=e,this.dr=n,this.props={},this.cr=!1,this.vr=(e=>{var t=``;return e.token&&(t=e.token.replace(/\+/g,`PL`).replace(/\//g,`SL`).replace(/=/g,`EQ`)),e.persistence_name?`ph_`+e.persistence_name:`ph_`+t+`_posthog`})(e),this.Jt=this.pr(e),this.hr=this.gr(e),this.load(),e.debug&&X.info(`Persistence loaded`,e.persistence,K({},this.props)),this.update_config(e,e,t),this.save(),U){var r=()=>this.flush();gf(U,`beforeunload`,r,{capture:!1}),gf(U,`pagehide`,r,{capture:!1})}}mr(){var e=this.Te?.persistence_save_debounce_ms;return jc(e)&&e>0?e:0}isDisabled(){return!!this.yr}pr(e){sm.indexOf(e.persistence.toLowerCase())===-1&&(X.critical(`Unknown persistence type `+e.persistence+`; falling back to localStorage+cookie`),e.persistence=`localStorage+cookie`);var t,n=function(e,t){e===void 0&&(e=[]),t===void 0&&(t=!1);var n=[...jf,...e];return K({},Af,{F(e){try{var n={};try{n=Of.F(e)||{}}catch{}var r,i=JSON.parse(Af.A(e)||`{}`);if(t){var a={};for(var o in n){var s=n[o];kc(s)||s===``||(a[o]=s)}r=lf(i,a)}else r=lf(n,i);return Af.q(e,r),r}catch{}return null},q(e,t,r,i,a,o){var s=Af.q(e,t,void 0,void 0,o);try{var c={};n.forEach((e=>{t[e]&&(c[e]=t[e])})),Object.keys(c).length&&Of.q(e,c,r,i,a,o)}catch(e){Af.D(e)}return s},P(e,t){try{U?.localStorage.removeItem(e),Of.P(e,t)}catch(e){Af.D(e)}}})}(e.cookie_persisted_properties||[],e.__preview_cookie_wins_on_conflict||!1),r=!1,i=e.persistence.toLowerCase();return i===`localstorage`&&Af.N()?(t=Af,r=!0):i===`localstorage+cookie`&&n.N()?(t=n,r=!0):i===`sessionstorage`&&Ff.N()?t=Ff:i===`memory`?t=Nf:i===`cookie`?t=Of:n.N()?(t=n,r=!0):t=Of,this.ur=r,t}br(e){return this.vr+`__`+e}gr(e){return this.ur&&!!e.split_storage}_r(e){var t=e??this.Te.feature_flag_cache_ttl_ms;if(!t||0>=t)return!1;var n=this.props[Fd];return!n||typeof n!=`number`||Date.now()-n>t}properties(){var e={};return cf(this.props,((t,n)=>{var r=Lp(n);if(r?.exposure===`derived`){if(r.shouldSkipFromEventProperties!=null&&r.shouldSkipFromEventProperties(t,n===gd?()=>this._r():()=>!1))return;r.transformToEventProperties&&lf(e,r.transformToEventProperties(t))}else if(!r||r.exposure===`event`){if(r!=null&&r.shouldSkipFromEventProperties!=null&&r.shouldSkipFromEventProperties(t,(()=>!1)))return;e[n]=t}})),e}load(){if(!this.yr){var e=this.Jt.F(this.vr);e&&(this.props=lf({},e)),this.hr&&this.wr()}}wr(){for(var e of Pp){var t=Af.F(this.br(e));if(t&&!Ec(t)){var n=this.kr(e);n.persisted=!0,this.Sr(e)||(n.fingerprint=this.Cr(t,e)),this.Mr(e,t)||lf(this.props,t)}}}Sr(e){return Object.keys(this.props).some((t=>Lp(t)?.storageGroup===e))}Mr(e,t){var n=om[e];if(!n)return!1;var r=t[n],i=this.props[n];return jc(r)&&jc(i)&&i>r}refreshKey(e){if(!this.yr){var t=this.hr?Lp(e)?.storageGroup:void 0,n=t?Af.F(this.br(t)):this.Jt.F(this.vr);if(n&&e in n)this.Ir(e,n[e]);else{if(t){var r=this.Jt.F(this.vr);if(r&&e in r)return void this.Ir(e,r[e])}this.Tr(e)}}}save(){if(!this.yr){var e=this.mr();e>0?J(this.Er)&&(this.Er=setTimeout((()=>{this.Er=void 0,this.Rr()}),e)):this.Rr()}}flush(){J(this.Er)||(clearTimeout(this.Er),this.Er=void 0,this.Rr())}Rr(){this.yr||(this.hr?this.Pr():this.Or(this.Jt,this.vr,this.props,cm))}Pr(){var e=this.Fr(),t=e.main,n=e.groups;for(var r of(this.Or(this.Jt,this.vr,t,cm),Pp)){var i,a=n[r];(!Ec(a)||(i=this.lr[r])!=null&&i.persisted)&&this.Or(Af,this.br(r),a,r)}}Fr(){var e={},t={flags:{},surveys:{}};return cf(this.props,((n,r)=>{var i=Lp(r)?.storageGroup;i?t[i][r]=n:e[r]=n})),{main:e,groups:t}}Cr(e,t){if(t===cm)return JSON.stringify(e)+`|`+this.Ar+`|`+this.Lr+`|`+this.$r;var n={};return cf(e,((e,t)=>
12{var r;n[t]=(r=Lp(t))!=null&&r.volatile?`__volatile__`:e})),JSON.stringify(n)}Or(e,t,n,r){var i=this.kr(r);if(r===cm||i.dirty||J(i.fingerprint)){var a;try{if((a=this.Cr(n,r))===i.fingerprint)return void(i.dirty=!1)}catch{a=void 0}e.q(t,n,this.Ar,this.Lr,this.$r,this.Te.debug)?(i.dirty=!1,r!==cm&&(i.persisted=!0),J(a)||(i.fingerprint=a)):this.Te.debug&&X.warn(`failed to persist storage entry "`+t+`"; will retry on next save`)}}remove(e){var t=(e===void 0?{}:e).keepGroupEntries,n=t!==void 0&&t;if(J(this.Er)||(clearTimeout(this.Er),this.Er=void 0),this.Jt.P(this.vr,!1),this.Jt.P(this.vr,!0),!n&&this.dr)for(var r of Pp)Af.P(this.br(r));n?delete this.lr[cm]:this.lr={}}clear(){this.remove(),this.props={}}register_once(e,t,n){if(Tc(e)){J(t)&&(t=`None`),this.Ar=J(n)?this.Nr:n;var r=!1;if(cf(e,((e,n)=>{this.props.hasOwnProperty(n)&&this.props[n]!==t||(this.Ir(n,e),r=!0)})),r)return this.save(),!0}return!1}register(e,t){if(Tc(e)){this.Ar=J(t)?this.Nr:t;var n=!1;if(cf(e,((t,r)=>{e.hasOwnProperty(r)&&this.props[r]!==t&&(this.Ir(r,t),n=!0)})),n)return this.save(),!0}return!1}unregister(e){e in this.props&&(this.Tr(e),this.save())}update_campaign_params(){if(!this.cr){var e=Xp(this.Te.custom_campaign_params,this.Te.mask_personal_data_properties,this.Te.custom_personal_data_properties);Ec(pf(e))||this.register(e),this.cr=!0}}update_search_keyword(){var e;this.register((e=W?.referrer)?Qp(e):{})}update_referrer_info(){this.register_once({$referrer:tm(),$referring_domain:W!=null&&W.referrer&&zp(W.referrer)?.host||em},void 0)}set_initial_person_info(){this.props[zd]||this.props[Bd]||this.register_once({[Vd]:nm(this.Te.mask_personal_data_properties,this.Te.custom_personal_data_properties,this.Te.disable_capture_url_hashes)},void 0)}get_initial_props(){var e={};cf([Bd,zd],(t=>{var n=this.props[t];n&&cf(n,(function(t,n){e[`$initial_`+vc(n)]=t}))}));var t=this.props[Vd];return t&&lf(e,function(e,t){t===void 0&&(t=!1);var n=rm(e,t),r={};return cf(n,(function(e,t){r[`$initial_`+vc(t)]=e})),r}(t,this.Te.disable_capture_url_hashes)),e}safe_merge(e){return cf(this.props,(function(t,n){n in e||(e[n]=t)})),e}update_config(e,t,n){this.Nr=this.Ar=e.cookie_expiration,this.set_disabled(e.disable_persistence||!!n),this.set_cross_subdomain(e.cross_subdomain_cookie),this.set_secure(e.secure_cookie);var r=e.persistence!==t.persistence||!((e,t)=>{if(e.length!==t.length)return!1;var n=[...e].sort(),r=[...t].sort();return n.every(((e,t)=>e===r[t]))})(e.cookie_persisted_properties||[],t.cookie_persisted_properties||[]),i=r?this.pr(e):this.Jt,a=this.gr(e);if(r||a!==this.hr){var o=this.props;this.clear(),this.Jt=i,this.hr=a,this.props=o,this.save()}}set_disabled(e){this.yr=e,this.yr?this.remove():this.save()}set_cross_subdomain(e){e!==this.Lr&&(this.Lr=e,this.remove({keepGroupEntries:!0}),this.save())}set_secure(e){e!==this.$r&&(this.$r=e,this.remove({keepGroupEntries:!0}),this.save())}set_event_timer(e,t){var n=this.props[Qu]||{};n[e]=t,this.Ir(Qu,n),this.save()}remove_event_timer(e){var t=this.props[Qu]||{},n=t[e];return J(n)||(delete t[e],this.Ir(Qu,t),this.save()),n}get_property(e){return this.props[e]}set_property(e,t){this.Ir(e,t),this.save()}Ir(e,t){var n;this.props[e]=t,(n=Lp(e))!=null&&n.volatile||this.Dr(e)}Tr(e){delete this.props[e],this.Dr(e)}Dr(e){var t=Lp(e)?.storageGroup;t&&(this.kr(t).dirty=!0)}kr(e){return this.lr[e]||(this.lr[e]={})}},um={GZipJS:`gzip-js`,Base64:`base64`},dm={Activation:`events`,Cancellation:`cancelEvents`},fm={Popover:`popover`,API:`api`,Widget:`widget`,ExternalSurvey:`external_survey`},pm={SHOWN:`survey shown`,DISMISSED:`survey dismissed`,SENT:`survey sent`,ABANDONED:`survey abandoned`},mm={SURVEY_ID:`$survey_id`,SURVEY_NAME:`$survey_name`,SURVEY_RESPONSE:`$survey_response`,SURVEY_ITERATION:`$survey_iteration`,SURVEY_ITERATION_START_DATE:`$survey_iteration_start_date`,SURVEY_PARTIALLY_COMPLETED:`$survey_partially_completed`,SURVEY_SUBMISSION_ID:`$survey_submission_id`,SURVEY_QUESTIONS:`$survey_questions`,SURVEY_COMPLETED:`$survey_completed`,PRODUCT_TOUR_ID:`$product_tour_id`,SURVEY_LAST_SEEN_DATE:`$survey_last_seen_date`,SURVEY_LANGUAGE:`$survey_language`},hm={Popover:`popover`,Inline:`inline`},gm={SHOWN:`product tour shown`,DISMISSED:`product tour dismissed`,COMPLETED:`product tour completed`,STEP_SHOWN:`product tour step shown`,STEP_COMPLETED:`product tour step completed`,BUTTON_CLICKED:`product tour button clicked`,STEP_SELECTOR_FAILED:`product tour step selector failed`,BANNER_CONTAINER_SELECTOR_FAILED:`product tour banner container selector failed`,BANNER_ACTION_CLICKED:`product tour banner action clicked`},_m={TOUR_ID:`$product_tour_id`,TOUR_NAME:`$product_tour_name`,TOUR_ITERATION:`$product_tour_iteration`,TOUR_RENDER_REASON:`$product_tour_render_reason`,TOUR_STEP_ID:`$product_tour_step_id`,TOUR_STEP_ORDER:`$product_tour_step_order`,TOUR_STEP_TYPE:`$product_tour_step_type`,TOUR_DISMISS_REASON:`$product_tour_dismiss_reason`,TOUR_BUTTON_TEXT:`$product_tour_button_text`,TOUR_BUTTON_ACTION:`$product_tour_button_action`,TOUR_BUTTON_LINK:`$product_tour_button_link`,TOUR_BUTTON_TOUR_ID:`$product_tour_button_tour_id`,TOUR_STEPS_COUNT:`$product_tour_steps_count`,TOUR_STEP_SELECTOR:`$product_tour_step_selector`,TOUR_STEP_SELECTOR_FOUND:`$product_tour_step_selector_found`,TOUR_STEP_ELEMENT_TAG:`$product_tour_step_element_tag`,TOUR_STEP_ELEMENT_ID:`$product_tour_step_element_id`,TOUR_STEP_ELEMENT_CLASSES:`$product_tour_step_element_classes`,TOUR_STEP_ELEMENT_TEXT:`$product_tour_step_element_text`,TOUR_ERROR:`$product_tour_error`,TOUR_MATCHES_COUNT:`$product_tour_matches_count`,TOUR_FAILURE_PHASE:`$product_tour_failure_phase`,TOUR_WAITED_FOR_ELEMENT:`$product_tour_waited_for_element`,TOUR_WAIT_DURATION_MS:`$product_tour_wait_duration_ms`,TOUR_BANNER_SELECTOR:`$product_tour_banner_selector`,TOUR_LINKED_SURVEY_ID:`$product_tour_linked_survey_id`,USE_MANUAL_SELECTOR:`$use_manual_selector`,INFERENCE_DATA_PRESENT:`$inference_data_present`,TOUR_LAST_SEEN_DATE:`$product_tour_last_seen_date`,TOUR_TYPE:`$product_tour_type`},vm=Z(`[RateLimiter]`),ym=class{constructor(e){this.serverLimits={},this.lastEventRateLimited=!1,this.checkForLimiting=e=>{var t=e.text;
12if(t&&t.length)try{(JSON.parse(t).quota_limited||[]).forEach((e=>{vm.info((e||`events`)+` is quota limited.`),this.serverLimits[e]=new Date().getTime()+6e4}))}catch(e){vm.warn(`could not rate limit - continuing. Error: "`+e?.message+`"`,{text:t});return}},this.instance=e,this.lastEventRateLimited=this.clientRateLimitContext(!0).isRateLimited}get captureEventsPerSecond(){return this.instance.config.rate_limiting?.events_per_second||10}get captureEventsBurstLimit(){return Math.max(this.instance.config.rate_limiting?.events_burst_limit||10*this.captureEventsPerSecond,this.captureEventsPerSecond)}clientRateLimitContext(e){var t;e===void 0&&(e=!1);var n=this.captureEventsBurstLimit,r=this.captureEventsPerSecond,i=new Date().getTime(),a=this.instance.persistence?.get_property(Rd)??{tokens:n,last:i};a.tokens+=(i-a.last)/1e3*r,a.last=i,a.tokens>n&&(a.tokens=n);var o=1>a.tokens;return o||e||(a.tokens=Math.max(0,a.tokens-1)),!o||this.lastEventRateLimited||e||this.instance.capture(`$$client_ingestion_warning`,{$$client_ingestion_warning_message:`posthog-js client rate limited. Config is set to `+r+` events per second and `+n+` events burst limit.`},{skip_client_rate_limiting:!0}),this.lastEventRateLimited=o,(t=this.instance.persistence)==null||t.set_property(Rd,a),{isRateLimited:o,remainingTokens:a.tokens}}isServerRateLimited(e){var t=this.serverLimits[e||`events`]||!1;return!1!==t&&new Date().getTime()<t}},bm=Z(`[RemoteConfig]`),xm=class{constructor(e){this._instance=e}get remoteConfig(){var e;return(e=G._POSTHOG_REMOTE_CONFIG)==null||(e=e[this._instance.config.token])==null?void 0:e.config}qr(e){var t,n;(t=G.__PosthogExtensions__)!=null&&t.loadExternalDependency?(n=G.__PosthogExtensions__)==null||n.loadExternalDependency==null||n.loadExternalDependency(this._instance,`remote-config`,(()=>e(this.remoteConfig))):e()}jr(e){this._instance._send_request({method:`GET`,url:this._instance.requestRouter.endpointFor(`assets`,`/array/`+this._instance.config.token+`/config`),callback(t){e(t.json)}})}load(){try{if(this.remoteConfig)return bm.info(`Using preloaded remote config`,this.remoteConfig),this.Hr(this.remoteConfig),void this.Br();if(this._instance.Ur())return void bm.warn(`Remote config is disabled. Falling back to local config.`);this.qr((e=>{if(!e)return bm.info(`No config found after loading remote JS config. Falling back to JSON.`),void this.jr((e=>{this.Hr(e),this.Br()}));this.Hr(e),this.Br()}))}catch(e){bm.error(`Error loading remote config`,e)}}stop(){this.zr&&=(clearInterval(this.zr),void 0)}refresh(){!this._instance.Ur()&&W&&W.visibilityState!==`hidden`&&this._instance.reloadFeatureFlags()}Br(){if(!this.zr){var e=this._instance.config.remote_config_refresh_interval_ms??3e5;e!==0&&(this.zr=setInterval((()=>{this.refresh()}),e))}}Hr(e){var t;e||bm.error(`Failed to fetch remote config from PostHog.`),this._instance.Hr(e?{ok:!0,config:e}:{ok:!1}),!1!==e?.hasFeatureFlags&&(this._instance.config.advanced_disable_feature_flags_on_first_load||(t=this._instance.featureFlags)==null||t.ensureFlagsLoaded())}},Sm=Uint8Array,Cm=Uint16Array,wm=Uint32Array,Tm=new Sm([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Em=new Sm([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Dm=new Sm([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Om=function(e,t){for(var n=new Cm(31),r=0;31>r;++r)n[r]=t+=1<<e[r-1];var i=new wm(n[30]);for(r=1;30>r;++r)for(var a=n[r];n[r+1]>a;++a)i[a]=a-n[r]<<5|r;return[n,i]},km=Om(Tm,2),Am=km[1];km[0][28]=258,Am[258]=28;for(var jm=Om(Em,0)[1],Mm=new Cm(32768),Nm=0;32768>Nm;++Nm){var Pm=(43690&Nm)>>>1|(21845&Nm)<<1;Mm[Nm]=((65280&(Pm=(61680&(Pm=(52428&Pm)>>>2|(13107&Pm)<<2))>>>4|(3855&Pm)<<4))>>>8|(255&Pm)<<8)>>>1}var Fm=function(e,t,n){for(var r=e.length,i=0,a=new Cm(t);r>i;++i)++a[e[i]-1];var o,s=new Cm(t);for(i=0;t>i;++i)s[i]=s[i-1]+a[i-1]<<1;if(n){o=new Cm(1<<t);var c=15-t;for(i=0;r>i;++i)if(e[i])for(var l=i<<4|e[i],u=t-e[i],d=s[e[i]-1]++<<u,f=d|(1<<u)-1;f>=d;++d)o[Mm[d]>>>c]=l}else for(o=new Cm(r),i=0;r>i;++i)o[i]=Mm[s[e[i]-1]++]>>>15-e[i];return o},Im=new Sm(288);for(Nm=0;144>Nm;++Nm)Im[Nm]=8;for(Nm=144;256>Nm;++Nm)Im[Nm]=9;for(Nm=256;280>Nm;++Nm)Im[Nm]=7;for(Nm=280;288>Nm;++Nm)Im[Nm]=8;var Lm=new Sm(32);for(Nm=0;32>Nm;++Nm)Lm[Nm]=5;
vendor: 6,543 bytes, line 12
12var Rm=Fm(Im,9,0),zm=Fm(Lm,5,0),Bm=function(e){return(e/8>>0)+(7&e&&1)},Vm=function(e,t,n){(n==null||n>e.length)&&(n=e.length);var r=new(e instanceof Cm?Cm:e instanceof wm?wm:Sm)(n-t);return r.set(e.subarray(t,n)),r},Hm=function(e,t,n){var r=t/8>>0;e[r]|=n<<=7&t,e[r+1]|=n>>>8},Um=function(e,t,n){var r=t/8>>0;e[r]|=n<<=7&t,e[r+1]|=n>>>8,e[r+2]|=n>>>16},Wm=function(e,t){for(var n=[],r=0;e.length>r;++r)e[r]&&n.push({s:r,f:e[r]});var i=n.length,a=n.slice();if(!i)return[new Sm(0),0];if(i==1){var o=new Sm(n[0].s+1);return o[n[0].s]=1,[o,1]}n.sort((function(e,t){return e.f-t.f})),n.push({s:-1,f:25001});var s=n[0],c=n[1],l=0,u=1,d=2;for(n[0]={s:-1,f:s.f+c.f,l:s,r:c};u!=i-1;)s=n[n[d].f>n[l].f?l++:d++],c=n[l!=u&&n[d].f>n[l].f?l++:d++],n[u++]={s:-1,f:s.f+c.f,l:s,r:c};var f=a[0].s;for(r=1;i>r;++r)a[r].s>f&&(f=a[r].s);var p=new Cm(f+1),m=Gm(n[u-1],p,0);if(m>t){r=0;var h=0,g=m-t,_=1<<g;for(a.sort((function(e,t){return p[t.s]-p[e.s]||e.f-t.f}));i>r;++r){var v=a[r].s;if(t>=p[v])break;h+=_-(1<<m-p[v]),p[v]=t}for(h>>>=g;h>0;){var y=a[r].s;t>p[y]?h-=1<<t-p[y]++-1:++r}for(;r>=0&&h;--r){var b=a[r].s;p[b]==t&&(--p[b],++h)}m=t}return[new Sm(p),m]},Gm=function(e,t,n){return e.s==-1?Math.max(Gm(e.l,t,n+1),Gm(e.r,t,n+1)):t[e.s]=n},Km=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new Cm(++t),r=0,i=e[0],a=1,o=function(e){n[r++]=e},s=1;t>=s;++s)if(e[s]==i&&s!=t)++a;else{if(!i&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(i),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(i);a=1,i=e[s]}return[n.subarray(0,r),t]},qm=function(e,t){for(var n=0,r=0;t.length>r;++r)n+=e[r]*t[r];return n},Jm=function(e,t,n){var r=n.length,i=Bm(t+2);e[i]=255&r,e[i+1]=r>>>8,e[i+2]=255^e[i],e[i+3]=255^e[i+1];for(var a=0;r>a;++a)e[i+a+4]=n[a];return 8*(i+4+r)},Ym=function(e,t,n,r,i,a,o,s,c,l,u){Hm(t,u++,n),++i[256];for(var d=Wm(i,15),f=d[0],p=d[1],m=Wm(a,15),h=m[0],g=m[1],_=Km(f),v=_[0],y=_[1],b=Km(h),x=b[0],S=b[1],C=new Cm(19),w=0;v.length>w;++w)C[31&v[w]]++;for(w=0;x.length>w;++w)C[31&x[w]]++;for(var E=Wm(C,7),ee=E[0],D=E[1],O=19;O>4&&!ee[Dm[O-1]];--O);var k,A,j,te,M=l+5<<3,N=qm(i,Im)+qm(a,Lm)+o,P=qm(i,f)+qm(a,h)+o+14+3*O+qm(C,ee)+(2*C[16]+3*C[17]+7*C[18]);if(N>=M&&P>=M)return Jm(t,u,e.subarray(c,c+l));if(Hm(t,u,1+(N>P)),u+=2,N>P){k=Fm(f,p,0),A=f,j=Fm(h,g,0),te=h;var F=Fm(ee,D,0);for(Hm(t,u,y-257),Hm(t,u+5,S-1),Hm(t,u+10,O-4),u+=14,w=0;O>w;++w)Hm(t,u+3*w,ee[Dm[w]]);u+=3*O;for(var I=[v,x],ne=0;2>ne;++ne){var L=I[ne];for(w=0;L.length>w;++w)Hm(t,u,F[re=31&L[w]]),u+=ee[re],re>15&&(Hm(t,u,L[w]>>>5&127),u+=L[w]>>>12)}}else k=Rm,A=Im,j=zm,te=Lm;for(w=0;s>w;++w)if(r[w]>255){var re;Um(t,u,k[257+(re=r[w]>>>18&31)]),u+=A[re+257],re>7&&(Hm(t,u,r[w]>>>23&31),u+=Tm[re]);var R=31&r[w];Um(t,u,j[R]),u+=te[R],R>3&&(Um(t,u,r[w]>>>5&8191),u+=Em[R])}else Um(t,u,k[r[w]]),u+=A[r[w]];return Um(t,u,k[256]),u+A[256]},Xm=new wm([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Zm=function(){for(var e=new wm(256),t=0;256>t;++t){for(var n=t,r=9;--r;)n=(1&n&&3988292384)^n>>>1;e[t]=n}return e}(),Qm=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8};function $m(e,t){t===void 0&&(t={});var n=function(){var e=4294967295;return{p(t){for(var n=e,r=0;t.length>r;++r)n=Zm[255&n^t[r]]^n>>>8;e=n},d(){return 4294967295^e}}}(),r=e.length;n.p(e);var i,a,o,s,c,l=(s=10+((i=t).filename&&i.filename.length+1||0),c=8,function(e,t,n,r,i,a){var o=e.length,s=new Sm(r+o+5*(1+Math.floor(o/7e3))+i),c=s.subarray(r,s.length-i),l=0;if(!t||8>o)for(var u=0;o>=u;u+=65535){var d=u+65535;o>d?l=Jm(c,l,e.subarray(u,d)):(c[u]=!0,l=Jm(c,l,e.subarray(u,o)))}else{for(var f=Xm[t-1],p=f>>>13,m=8191&f,h=(1<<n)-1,g=new Cm(32768),_=new Cm(h+1),v=Math.ceil(n/3),y=2*v,b=function(t){return(e[t]^e[t+1]<<v^e[t+2]<<y)&h},x=new wm(25e3),S=new Cm(288),C=new Cm(32),w=0,E=0,ee=(u=0,0),D=0,O=0;o>u;++u){var k=b(u),A=32767&u,j=_[k];if(g[A]=j,_[k]=A,u>=D){var te=o-u;if((w>7e3||ee>24576)&&te>423){l=Ym(e,c,0,x,S,C,E,ee,O,u-O,l),ee=w=E=0,O=u;for(var M=0;286>M;++M)S[M]=0;for(M=0;30>M;++M)C[M]=0}var N=2,P=0,F=m,I=A-j&32767;if(te>2&&k==b(u-I))for(var ne=Math.min(p,te)-1,L=Math.min(32767,u),re=Math.min(258,te);L>=I&&--F&&A!=j;){if(e[u+N]==e[u+N-I]){for(var R=0;re>R&&e[u+R]==e[u+R-I];++R);if(R>N){if(N=R,P=I,R>ne)break;var ie=Math.min(I,R-2),ae=0;for(M=0;ie>M;++M){var oe=u-I+M+32768&32767,z=oe-g[oe]+32768&32767;z>ae&&(ae=z,j=oe)}}}I+=(A=j)-(j=g[A])+32768&32767}if(P){x[ee++]=268435456|Am[N]<<18|jm[P];var se=31&Am[N],ce=31&jm[P];E+=Tm[se]+Em[ce],++S[257+se],++C[ce],D=u+N,++w}else x[ee++]=e[u],++S[e[u]]}}l=Ym(e,c,!0,x,S,C,E,ee,O,u-O,l)}return Vm(s,0,r+Bm(l)+i)}(a=e,(o=t).level==null?6:o.level,o.mem==null?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(a.length)))):12+o.mem,s,c)),u=l.length;return function(e,t){var n=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=2>t.level?4:t.level==9?2:0,e[9]=3,t.mtime!=0&&Qm(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),n){e[3]=8;for(var r=0;n.length>=r;++r)e[r+10]=n.charCodeAt(r)}}(l,t),Qm(l,u-8,n.d()),Qm(l,u-4,r),l}var eh=!!Us||!!Hs,th=`text/plain`,nh=!1,rh=(e,t)=>{var n=e.split(`#`),r=n[1],i=n[0].split(`?`),a=i[0],o=i[1];if(!o)return e;var s=o.split(`&`).filter((e=>e.split(`=`)[0]!==t)).join(`&`);return a+(s?`?`+s:``)+(r?`#`+r:``)},ih=function(e,t,n){n===void 0&&(n=!0);var r=e.split(`?`),i=r[0],a=r[1],o=K({},t),s=a?.split(`&`).map((e=>{var t,r=e.split(`=`),i=r[0],a=n&&(t=o[i])!=null?t:r[1];return delete o[i],i+`=`+a}))??[],c=function(e,t){var n,r;t===void 0&&(t=`&`);var i=[];return cf(e,(function(e,t){J(e)||J(t)||t===`undefined`||(n=encodeURIComponent((e=>e instanceof File)(e)?e.name:e.toString()),r=encodeURIComponent(t),i[i.length]=r+`=`+n)})),i.join(t)}(o);return c&&s.push(c),s.length>0?i+`?`+s.join(`&`):i},ah=e=>{if(e.Vr)return e.Vr;var t=e.data,n=e.compression;if(t){if(n===um.GZipJS){var r=$m(function(e,t){var n=e.length;if(typeof TextEncoder<`u`)return new TextEncoder().encode(e);for(var r=new Sm(e.length+(e.length>>>1)),i=0,a=function(e){r[i++]=e},o=0;n>o;++o){if(i+5>r.length){var s=new Sm(i+8+(n-o<<1));s.set(r),r=s}var c=e.charCodeAt(o);128>c?a(c):2048>c?(a(192|c>>>6),a(128|63&c)):c>55295&&57344>c?(a(240|(c=65536+(1047552&c)|1023&e.charCodeAt(++o))>>>18),a(128|c>>>12&63),a(128|c>>>6&63),a(128|63&c)):(a(224|c>>>12),a(128|c>>>6&63),a(128|63&c))}return Vm(r,0,i)}(Rp(t)),{mtime:0});return{contentType:th,body:r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength),estimatedSize:r.byteLength}}if(n===um.Base64){var i=(e=>`data=`+encodeURIComponent(typeof e==`string`?e:Rp(e)))(function(e){return e&&btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,((e,t)=>
12String.fromCharCode(parseInt(t,16)))))}(Rp(t)));return{contentType:`application/x-www-form-urlencoded`,body:i,estimatedSize:new Blob([i]).size}}var a=Rp(t);return{contentType:`application/json`,body:a,estimatedSize:new Blob([a]).size}}},oh=e=>{var t,n,r=()=>e.transport===`sendBeacon`?{url:ih(e.url,{compression:um.Base64}),encodedBody:ah(K({},e,{compression:um.Base64,Vr:void 0}))}:{url:rh(e.url,`compression`),encodedBody:ah(K({},e,{compression:void 0,Vr:void 0}))};try{t=ah(e)}catch(t){if(uc(e.compression,Bp(e.url,`compression`)))return X.error(`Failed to gzip request body, sending uncompressed payload`,t),r();throw t}return t&&uc(e.compression,Bp(e.url,`compression`))&&!((n=t.body)instanceof ArrayBuffer?lc(new Uint8Array(n)):ArrayBuffer.isView(n)&&lc(new Uint8Array(n.buffer,n.byteOffset,n.byteLength)))?(nh=!0,r()):{url:e.url,encodedBody:t}},sh=e=>{try{return oh(e)}catch(t){X.error(t),e.callback==null||e.callback({statusCode:0,error:t});return}},ch=function(){var e=Zs((function*(e){var t=yield function(e,t,n){return mc.apply(this,arguments)}(Rp(e.data),Ys.DEBUG,{rethrow:!0});if(!t)return e;var n=yield t.arrayBuffer();return K({},e,{Vr:{contentType:th,body:n,estimatedSize:n.byteLength}})}));return function(t){return e.apply(this,arguments)}}(),lh=/Failed to fetch|NetworkError|Load failed/i,uh=e=>{var t=sh(e);if(t){var n=t.url,r=t.encodedBody??{},i=r.contentType,a=r.body,o=r.estimatedSize,s=new Headers;cf(e.headers,(function(e,t){s.append(t,e)})),i&&s.append(`Content-Type`,i);var c=null,l=!1;if(Ws){var u=new Ws;c={signal:u.signal,timeout:setTimeout((()=>{var t,n;l=!0,u.abort((t=e.timeout,(n=Error(`PostHog request timed out`+(t?` after `+t+`ms`:``))).name=`AbortError`,n))}),e.timeout)}}var d=t=>{l&&t?.name===`AbortError`||(e=>e?.name===`TypeError`&&lh.test(e?.message||``))(t)?X.warn(t):X.error(t),e.callback==null||e.callback({statusCode:0,error:t})};try{Hs(n,K({method:e?.method||`GET`,headers:s,keepalive:e.method===`POST`&&!e.Wr&&52428.8>(o||0),body:a,signal:c?.signal},e.fetchOptions)).then((t=>t.text().then((n=>{var r={statusCode:t.status,text:n};if(t.status===200)try{r.json=JSON.parse(n)}catch(e){X.error(e)}e.callback==null||e.callback(r)})))).catch(d).finally((()=>c?clearTimeout(c.timeout):null))}catch(e){c&&clearTimeout(c.timeout),d(e)}}},dh=e=>{try{var t=oh(e),n=t.url,r=t.encodedBody??{},i=r.body,a=r.estimatedSize;if(!i)return;var o=i instanceof Blob?i:new Blob([i],{type:r.contentType});if(Bs.sendBeacon(n,o))return;var s=Cc(e.data)?e.data:e.data?.batch;if(Cc(s)&&s.length>1&&(a??0)>16384){var c=Math.ceil(s.length/2),l=t=>Cc(e.data)?t:K({},e.data,{batch:t});dh(K({},e,{data:l(s.slice(0,c))})),dh(K({},e,{data:l(s.slice(c))}));return}X.warn(`Beacon of ~`+(a??0)+` bytes was rejected by the browser, falling back to fetch`),uh(K({},e,{Wr:!0}))}catch(e){X.warn(`Beacon send failed`,e)}},fh=(e,t,n,r)=>{var i=r===`query`?t===`POST`?`sent_at`:`_`:void 0;return ih(n===um.GZipJS?rh(e,`compression`):e,K({},i?{[i]:Date.now().toString()}:{},n===um.GZipJS?{}:{compression:n}))},ph=[];Hs&&ph.push({transport:`fetch`,method:uh}),Us&&ph.push({transport:`XHR`,method(e){var t=sh(e);if(t){var n=new Us,r=t.encodedBody;n.open(e.method||`GET`,t.url,!0);var i=r??{},a=i.contentType,o=i.body;cf(e.headers,(function(e,t){n.setRequestHeader(t,e)})),a&&n.setRequestHeader(`Content-Type`,a),e.timeout&&(n.timeout=e.timeout),n.onreadystatechange=()=>{if(n.readyState===4){var t={statusCode:n.status,text:n.responseText};if(n.status===200)try{t.json=JSON.parse(n.responseText)}catch{}e.callback==null||e.callback(t)}},n.send(o)}}}),Bs!=null&&Bs.sendBeacon&&ph.push({transport:`sendBeacon`,method:dh});var mh=3e3,hh=class{constructor(e,t){this.Zr=!0,this.Gr=[],this.Qr=Uc(t?.flush_interval_ms||mh,250,5e3,X.createLogger(`flush interval`),mh),this.Jr=e}enqueue(e){this.Gr.push(e),this.Kr||this.Yr()}unload(){this.Xr();var e=this.Gr.length>0?this.ei():{},t=Object.values(e);[...t.filter((e=>e.url.indexOf(`/e`)===0)),...t.filter((e=>e.url.indexOf(`/e`)!==0))].map((e=>{this.ti(K({},e,{transport:`sendBeacon`}))}))}enable(){this.Zr=!1,this.Yr()}Yr(){var e=this;this.Zr||(this.Kr=setTimeout((()=>
12{if(this.Xr(),this.Gr.length>0){var t=this.ei(),n=function(){var n=t[r],i=new Date().getTime();n.data&&Cc(n.data)&&cf(n.data,(e=>{e.offset=Math.abs(e.timestamp-i),delete e.timestamp})),e.ti(n)};for(var r in t)n()}}),this.Qr))}ti(e){try{this.Jr(e)}catch(e){X.error(e)}}Xr(){clearTimeout(this.Kr),this.Kr=void 0}ei(){var e={};return cf(this.Gr,(t=>{var n,r=t,i=(r?r.batchKey:null)||r.url;J(e[i])&&(e[i]=K({},r,{data:[]})),(n=e[i].data)==null||n.push(r.data)})),this.Gr=[],e}},gh=[`retriesPerformedSoFar`],_h=class{constructor(e){this.ri=!1,this.ii=3e3,this.Gr=[],this._instance=e,this.Gr=[],this.ni=!0,!J(U)&&`onLine`in U.navigator&&(this.ni=U.navigator.onLine,this.si=()=>{this.ni=!0,this.oi()},this.ai=()=>{this.ni=!1},gf(U,`online`,this.si),gf(U,`offline`,this.ai))}get length(){return this.Gr.length}retriableRequest(e){var t=e.retriesPerformedSoFar,n=Qs(e,gh);Mc(t)&&(n.url=ih(n.url,{retry_count:t})),this._instance._send_request(K({},n,{callback:e=>{if(e.statusCode!==200&&(400>e.statusCode||e.statusCode>=500)){if((e.statusCode===0?3:10)>(t??0))return void this.kt(K({retriesPerformedSoFar:t},n));e.statusCode===0&&X.warn(`Request failed before receiving an HTTP response; this can happen due to network issues, CORS, browser blocking, or ad blockers. Stopped retrying after `+(t??0)+` retries.`)}n.callback==null||n.callback(e)}}))}kt(e){var t=e.retriesPerformedSoFar||0;e.retriesPerformedSoFar=t+1;var n=function(e){var t=3e3*2**e,n=t/2,r=Math.min(18e5,t),i=Math.random()-.5;return Math.ceil(r+i*(r-n))}(t),r=Date.now()+n;this.Gr.push({retryAt:r,requestOptions:e});var i=`Enqueued failed request for retry in `+n;navigator.onLine||(i+=` (Browser is offline)`),X.warn(i),this.ri||(this.ri=!0,this.li())}li(){if(this.ui&&clearTimeout(this.ui),this.Gr.length===0)return this.ri=!1,void(this.ui=void 0);this.ui=setTimeout((()=>{this.ni&&this.Gr.length>0&&this.oi(),this.li()}),this.ii)}oi(){var e=Date.now(),t=[],n=this.Gr.filter((n=>e>n.retryAt||(t.push(n),!1)));if(this.Gr=t,n.length>0)for(var r of n)this.retriableRequest(r.requestOptions)}unload(){for(var e of(this.ui&&=(clearTimeout(this.ui),void 0),this.ri=!1,J(U)||(this.si&&=(U.removeEventListener(`online`,this.si),void 0),this.ai&&=(U.removeEventListener(`offline`,this.ai),void 0)),this.Gr)){var t=e.requestOptions;try{this._instance._send_request(K({},t,{transport:`sendBeacon`}))}catch(e){X.error(e)}}this.Gr=[]}},vh=class{constructor(e){this.hi=()=>{this.di||={};var e=this.scrollElement(),t=this.scrollY(),n=e?Math.max(0,e.scrollHeight-e.clientHeight):0,r=t+(e?.clientHeight||0),i=e?.scrollHeight||0;this.di.lastScrollY=Math.ceil(t),this.di.maxScrollY=Math.max(t,this.di.maxScrollY??0),this.di.maxScrollHeight=Math.max(n,this.di.maxScrollHeight??0),this.di.lastContentY=r,this.di.maxContentY=Math.max(r,this.di.maxContentY??0),this.di.maxContentHeight=Math.max(i,this.di.maxContentHeight??0)},this._instance=e}get ci(){return this._instance.config.scroll_root_selector}getContext(){return this.di}resetContext(){var e=this.di;return setTimeout(this.hi,0),e}startMeasuringScrollPosition(){gf(U,`scroll`,this.hi,{capture:!0}),gf(U,`scrollend`,this.hi,{capture:!0}),gf(U,`resize`,this.hi)}scrollElement(){if(!this.ci)return U?.document.documentElement;for(var e of Cc(this.ci)?this.ci:[this.ci]){var t=U?.document.querySelector(e);if(t)return t}}vi(e){var t=e===`y`?`scrollTop`:`scrollLeft`;if(this.ci){var n=this.scrollElement();return n&&n[t]||0}return U?e===`y`?U.scrollY||U.pageYOffset||U.document.documentElement.scrollTop||0:U.scrollX||U.pageXOffset||U.document.documentElement.scrollLeft||0:0}scrollY(){return this.vi(`y`)}scrollX(){return this.vi(`x`)}},yh=e=>nm(e?.config.mask_personal_data_properties,e?.config.custom_personal_data_properties,e?.config.disable_capture_url_hashes),bh=class{constructor(e,t,n,r){this.fi=e=>{var t=this.pi();if(!t||t.sessionId!==e){var n={sessionId:e,props:this.gi(this._instance)};this.mi.register({[Ld]:n})}},this._instance=e,this.yi=t,this.mi=n,this.gi=r||yh,this.yi.onSessionId(this.fi)}pi(){return this.mi.props[Ld]}getSetOnceProps(){var e=this.pi()?.props;return e?`r`in e?rm(e,this._instance.config.disable_capture_url_hashes
12):{$referring_domain:e.referringDomain,$pathname:e.initialPathName,utm_source:e.utm_source,utm_campaign:e.utm_campaign,utm_medium:e.utm_medium,utm_content:e.utm_content,utm_term:e.utm_term}:{}}getSessionProps(){var e={};return cf(pf(this.getSetOnceProps()),((t,n)=>{n===`$current_url`&&(n=`url`),e[`$session_entry_`+vc(n)]=t})),e}},xh=class{on(e,t){return this.bi[e]||(this.bi[e]=[]),this.bi[e].push(t),()=>{this.bi[e]=this.bi[e].filter((e=>e!==t))}}emit(e,t){for(var n of this.bi[e]||[])n(t);for(var r of this.bi[`*`]||[])r(e,t)}constructor(){this.bi={}}},Sh=Z(`[SessionId]`),Ch=class{on(e,t){return this.wi.on(e,t)}constructor(e,t,n){var r;if(this.xi=null,this.ki=[],this.Si=void 0,this.Ci=!1,this.wi=new xh,this.Mi=(e,t)=>!(!Mc(e)||!Mc(t))&&Math.abs(e-t)>this.sessionTimeoutMs,!e.persistence)throw Error(`SessionIdManager requires a PostHogPersistence instance`);if(e.config.cookieless_mode===Xd)throw Error(`SessionIdManager cannot be used with cookieless_mode="always"`);this.Te=e.config,this.mi=e.persistence,this.Ii=void 0,this.Ti=void 0,this._sessionStartTimestamp=null,this._sessionActivityTimestamp=null,this.Ei=t||wf,this.Ri=n||wf;var i=this.Te.persistence_name||this.Te.token;if(this._sessionTimeoutMs=1e3*Uc(this.Te.session_idle_timeout_seconds||1800,60,36e3,Sh.createLogger(`session_idle_timeout_seconds`),1800),e.register({$configured_session_timeout_ms:this._sessionTimeoutMs}),this.Pi(),this.Oi=`ph_`+i+`_window_id`,this.Fi=`ph_`+i+`_primary_window_exists`,this.Ai()){var a=Ff.F(this.Oi),o=Ff.F(this.Fi);a&&!o?this.Ii=a:Ff.P(this.Oi),Ff.q(this.Fi,!0)}if((r=this.Te.bootstrap)!=null&&r.sessionID)try{var s=(e=>{var t=this.Te.bootstrap.sessionID.replace(/-/g,``);if(t.length!==32)throw Error(`Not a valid UUID`);if(t[12]!==`7`)throw Error(`Not a UUIDv7`);return parseInt(t.substring(0,12),16)})();this.Li(this.Te.bootstrap.sessionID,new Date().getTime(),s)}catch(e){Sh.error(`Invalid sessionID in bootstrap`,e)}this.$i()}get sessionTimeoutMs(){return this._sessionTimeoutMs}onSessionId(e){return J(this.ki)&&(this.ki=[]),this.ki.push(e),this.Ti&&e(this.Ti,this.Ii),()=>{this.ki=this.ki.filter((t=>t!==e))}}Ai(){return this.Te.persistence!==`memory`&&!this.mi.yr&&Ff.N()}Ni(e){e!==this.Ii&&(this.Ii=e,this.Ai()&&Ff.q(this.Oi,e))}Di(){return this.Ii?this.Ii:this.Ai()?Ff.F(this.Oi):null}qi(e){var t=this.xi;return!kc(t)&&!kc(e)&&5e3>Math.abs(e-t)}Li(e,t,n){var r=t!==this._sessionActivityTimestamp,i=!(e!==this.Ti||n!==this._sessionStartTimestamp);this._sessionStartTimestamp=n,this._sessionActivityTimestamp=t,this.Ti=e,i&&!r||i&&this.qi(t)||(this.xi=t,this.mi.register({[md]:[t,e,n]}))}ji(){var e=this.Te?.persistence_save_debounce_ms;return Mc(e)&&e>0}Hi(){this.ji()?this.mi.refreshKey(md):(this.mi.flush(),this.mi.load())}Bi(){if(!kc(this._sessionActivityTimestamp)&&this._sessionActivityTimestamp!==this.xi){this.Hi();var e=this.Ui();e[1]===this.Ti&&e[2]===this._sessionStartTimestamp&&(this.xi=this._sessionActivityTimestamp,this.mi.register({[md]:[this._sessionActivityTimestamp,this.Ti??null,this._sessionStartTimestamp]}),this.mi.flush())}}zi(){var e=this.Ui()[0],t=Mc(e)?e:0,n=Mc(this._sessionActivityTimestamp)?this._sessionActivityTimestamp:0;return Math.max(t,n)}Vi(e){return this.Hi(),this.Mi(e,this.zi())}Ui(){var e=this.mi.props[md];return Cc(e)&&e.length===2&&e.push(e[0]),e||[0,null,0]}resetSessionId(){this.xi=null,clearTimeout(this.Wi),this.Wi=void 0,this.Li(null,null,null)}destroy(){this.Ci=!0,this.Bi(),clearTimeout(this.Wi),this.Wi=void 0,this.Si&&U&&(U.removeEventListener(tf,this.Si,{capture:!1}),this.Si=void 0),this.ki=[]}$i(){this.Si=()=>{this.Bi(),this.Ai()&&Ff.P(this.Fi)},gf(U,tf,this.Si,{capture:!1})}checkAndGetSessionAndWindowId(e,t){if(e===void 0&&(e=!1),t===void 0&&(t=null),this.Te.cookieless_mode===Xd)throw Error(`checkAndGetSessionAndWindowId should not be called with cookieless_mode="always"`);var n=t||new Date().getTime(),r=this.Ui(),i=r[1],a=r[2],o=this.zi(),s=this.Di(),c=Mc(a)&&Math.abs(n-a)>864e5,l=!1,u=!1,d=!i,f=i,p=!d&&!e&&this.Mi(n,o);if(p){(p=this.Vi(n))||Sh.info(`cross-tab refresh kept the session alive`,{sessionId:i});var m=this.Ui();i=m[1],a=m[2]}d||p||c?(i=this.Ei(),s=this.Ri(),Sh.info(`new session ID generated`,{sessionId:i,windowId:s,changeReason:{noSessionId:d,activityTimeout:p,sessionPastMaximumLength:c}}),a=n,l=!0):(s||(s=this.Ri(),l=!0),(u=i!==f)&&(Sh.info(`adopted cross-tab session id`,{sessionId:i,windowId:s}),l=!0));var h=Mc(o)&&e&&!c?o:n,g=Mc(a)?a:new Date().getTime();this.Ni(s),this.Li(i,h,g),e||this.Pi();var _={noSessionId:d,activityTimeout:p,sessionPastMaximumLength:c,crossTabAdoption:u};return l&&this.ki.forEach((e=>e(i,s,_))),{sessionId:i,windowId:s,sessionStartTimestamp:g,changeReason:l?_:void 0,lastActivityTimestamp:o}}Pi(){this.Ci||(clearTimeout(this.Wi),this.Wi=setTimeout((()=>
12{if(!this.Ci)if(this.Vi(new Date().getTime())){var e=this.Ti;this.resetSessionId(),this.wi.emit(`forcedIdleReset`,{idleSessionId:e})}else this.Pi()}),1.1*this.sessionTimeoutMs))}},wh=function(e,t){if(!e)return!1;var n=e.userAgent;if(n&&gc(n,t))return!0;try{var r=e?.userAgentData;if(r!=null&&r.brands&&r.brands.some((e=>gc(e?.brand,t))))return!0}catch{}return!!e.webdriver};function Th(){return(Th=Zs((function*(){var e=Bs?.userAgentData;if(e!=null&&e.getHighEntropyValues)try{var t=(yield e.getHighEntropyValues([`model`]))?.model;return Dc(t)&&t.length>0?t:void 0}catch(e){X.info(`Unable to resolve $device_model from userAgentData.getHighEntropyValues`,e);return}}))).apply(this,arguments)}var Eh=function(e,t){if(!function(e){try{new RegExp(e)}catch{return!1}return!0}(t))return!1;try{return new RegExp(t).test(e)}catch{return!1}};function Dh(e,t,n){return Rp({distinct_id:e,userPropertiesToSet:t,userPropertiesToSetOnce:n})}var Oh={exact:(e,t)=>t.some((t=>e.some((e=>t===e)))),is_not:(e,t)=>t.every((t=>e.every((e=>t!==e)))),regex:(e,t)=>t.some((t=>e.some((e=>Eh(t,e))))),not_regex:(e,t)=>t.every((t=>e.every((e=>!Eh(t,e))))),icontains:(e,t)=>t.map(kh).some((t=>e.map(kh).some((e=>t.includes(e))))),not_icontains:(e,t)=>t.map(kh).every((t=>e.map(kh).every((e=>!t.includes(e))))),gt:(e,t)=>t.some((t=>{var n=parseFloat(t);return!isNaN(n)&&e.some((e=>n>parseFloat(e)))})),lt:(e,t)=>t.some((t=>{var n=parseFloat(t);return!isNaN(n)&&e.some((e=>n<parseFloat(e)))}))},kh=e=>e.toLowerCase();function Ah(e,t){return!e||Object.entries(e).every((e=>{var n=e[1],r=t?.[e[0]];if(J(r)||kc(r))return!1;var i=[String(r)],a=Oh[n.operator];return!!a&&a(n.values,i)}))}var jh=`custom`,Mh=`i.posthog.com`,Nh=/^\/static\//,Ph=class{constructor(e){this.Zi={},this.instance=e}get apiHost(){var e=this.instance.config.api_host.trim().replace(/\/$/,``);return e===`https://app.posthog.com`?`https://us.i.posthog.com`:e}get flagsApiHost(){var e=this.instance.config.flags_api_host;return e?e.trim().replace(/\/$/,``):this.apiHost}get uiHost(){var e=this.instance.config.ui_host?.replace(/\/$/,``);return e||=this.apiHost.replace(`.`+Mh,`.posthog.com`),e===`https://app.posthog.com`?`https://us.posthog.com`:e}get region(){return this.Zi[this.apiHost]||(this.Zi[this.apiHost]=/https:\/\/(app|us|us-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?`us`:/https:\/\/(eu|eu-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?`eu`:jh),this.Zi[this.apiHost]}Gi(e){if(Nh.test(e)){var t=this.instance.config.asset_host;if(typeof t==`string`)return t.trim().replace(/\/$/,``)||void 0}}endpointFor(e,t){if(t===void 0&&(t=``),t&&=t[0]===`/`?t:`/`+t,e===`ui`)return this.uiHost+t;if(e===`flags`)return this.flagsApiHost+t;if(e===`assets`){var n=this.Gi(t);if(n)return``+n+t}if(this.region===jh)return this.apiHost+t;var r=Mh+t;switch(e){case`assets`:return`https://`+this.region+`-assets.`+r;case`api`:return`https://`+this.region+`.`+r}}};function Fh(e){var t;return!((t=e.conditions)==null||(t=t.events)==null||(t=t.values)==null||!t.length)}var Ih=Z(`[Surveys]`),Lh=`seenSurvey_`,Rh=e=>{try{var t=(e=>((e,t)=>``+Lh+function(e){return e.current_iteration&&e.current_iteration>0?e.id+`_`+e.current_iteration:e.id}(t))(0,e))(e);if(localStorage.getItem(t))return;localStorage.setItem(t,`true`)}catch(e){Ih.error(`Failed to persist survey seen state`,e)}},zh=[fm.Popover,fm.Widget,fm.API],Bh={ignoreConditions:!1,ignoreDelay:!1,displayType:hm.Popover},Vh=Z(`[PostHog ExternalIntegrations]`),Hh={intercom:`intercom-integration`,crispChat:`crisp-chat-integration`},Uh=class{constructor(e){this._instance=e}er(e,t){var n;(n=G.__PosthogExtensions__)==null||n.loadExternalDependency==null||n.loadExternalDependency(this._instance,e,(e=>{if(e)return Vh.error(`failed to load script`,e);t()}))}startIfEnabledOrStop(){var e=this,t=function(){var t,r,i,a=n[0],o=n[1];!o||(t=G.__PosthogExtensions__)!=null&&(t=t.integrations)!=null&&t[a]||e.er(Hh[a],(()=>{var t;(t=G.__PosthogExtensions__)==null||(t=t.integrations)==null||(t=t[a])==null||t.start(e._instance)})),!o&&(r=G.__PosthogExtensions__)!=null&&(r=r.integrations)!=null&&r[a]&&((i=G.__PosthogExtensions__)==null||(i=i.integrations)==null||(i=i[a])==null||i.stop())};for(var n of Object.entries((r=this._instance.config.integrations)??{})){var r;t()}}},Wh={},Gh=0,Kh=()=>{}
12,qh=`Consent opt in/out is not valid with cookieless_mode="always" and will be ignored`,Jh=`Surveys module not available`,Yh=`sanitize_properties is deprecated. Use before_send instead`,Xh=`Invalid value for property_denylist config: `,Zh=[`token`,`distinct_id`,Wd],Qh=`posthog`,$h=!eh&&Ks?.indexOf(`MSIE`)===-1&&Ks?.indexOf(`Mozilla`)===-1,eg=e=>{var t;return K({api_host:`https://us.i.posthog.com`,flags_api_host:null,ui_host:null,asset_host:null,token:``,autocapture:!0,cross_subdomain_cookie:hf(W?.location),persistence:`localStorage+cookie`,persistence_name:``,cookie_persisted_properties:[],loaded:Kh,save_campaign_params:!0,custom_campaign_params:[],custom_blocked_useragents:[],save_referrer:!0,capture_pageleave:`if_capture_pageview`,defaults:e??`unset`,__preview_deferred_init_extensions:!1,__preview_external_dependency_versioned_paths:!1,__preview_cookie_wins_on_conflict:!1,debug:Vs&&Dc(Vs?.search)&&Vs.search.indexOf(`__posthog_debug=true`)!==-1||!1,cookie_expiration:365,upgrade:!1,disable_session_recording:!1,disable_persistence:!1,disable_web_experiments:!0,disable_surveys:!1,disable_surveys_automatic_display:!1,disable_conversations:!1,disable_product_tours:!1,disableDeviceModel:!1,disable_external_dependency_loading:!1,strict_script_versioning:!1,enable_recording_console_log:void 0,secure_cookie:(U==null||(t=U.location)==null?void 0:t.protocol)===`https:`,ip:!1,opt_out_capturing_by_default:!1,opt_out_persistence_by_default:!1,opt_out_useragent_filter:!1,opt_out_capturing_persistence_type:`localStorage`,consent_persistence_name:null,opt_out_capturing_cookie_prefix:null,opt_in_site_apps:!1,property_denylist:[],respect_dnt:!1,sanitize_properties:null,request_headers:{},request_batching:!0,properties_string_max_length:65535,mask_all_element_attributes:!1,mask_all_text:!1,mask_personal_data_properties:!1,custom_personal_data_properties:[],advanced_disable_flags:!1,advanced_disable_decide:!1,advanced_disable_feature_flags:!1,advanced_disable_feature_flags_on_first_load:!1,advanced_only_evaluate_survey_feature_flags:!1,advanced_feature_flags_dedup_per_session:!1,advanced_enable_surveys:!1,advanced_disable_toolbar_metrics:!1,feature_flag_request_timeout_ms:3e3,surveys_request_timeout_ms:1e4,on_request_error(e){X.error(`Bad HTTP status: `+e.statusCode+` `+e.text)},get_device_id:e=>e,capture_performance:void 0,name:`posthog`,bootstrap:{},disable_compression:!1,session_idle_timeout_seconds:1800,person_profiles:$d,before_send:void 0,get_current_url:void 0,request_queue_config:{flush_interval_ms:mh},error_tracking:{},_onCapture:Kh},(e=>({rageclick:e&&e>=`2026-05-30`?{content_ignorelist:ap,ignore_text_selection:!0}
12:!e||`2025-11-30`>e||{content_ignorelist:!0},capture_pageview:!e||`2025-05-24`>e||`history_change`,session_recording:e&&e>=`2026-06-25`?{strictMinimumDuration:!0,canvasCapture:{resolutionScale:.6},streamNetworkBody:!0}:e&&e>=`2026-05-30`?{strictMinimumDuration:!0,canvasCapture:{resolutionScale:.6}}:e&&e>=`2025-11-30`?{strictMinimumDuration:!0}:{},external_scripts_inject_target:e&&e>=`2026-01-30`?`head`:`body`,internal_or_test_user_hostname:e&&e>=`2026-01-30`?/^(localhost|127\.0\.0\.1)$/:void 0,persistence_save_debounce_ms:e&&e>=`2026-05-30`?250:0,split_storage:!(!e||`2026-05-30`>e),detect_google_search_app:!(!e||`2026-05-30`>e),disable_capture_url_hashes:!(!e||`2026-06-25`>e)}))(e))},tg=[[`process_person`,`person_profiles`],[`xhr_headers`,`request_headers`],[`cookie_name`,`persistence_name`],[`disable_cookie`,`disable_persistence`],[`__preview_disable_beacon`,`disable_beacon`],[`store_google`,`save_campaign_params`],[`verbose`,`debug`]],ng=e=>{var t={};for(var n of tg){var r=n[0],i=n[1];J(e[r])||(t[i]=e[r])}var a=lf({},t,e),o=e.__preview_external_dependency_versioned_paths;return J(o)||(J(e.strict_script_versioning)&&(a.strict_script_versioning=!!o),Dc(o)&&J(e.asset_host)&&(a.asset_host=o)),Cc(e.property_blacklist)&&(J(e.property_denylist)?a.property_denylist=e.property_blacklist:Cc(e.property_denylist)?a.property_denylist=[...e.property_blacklist,...e.property_denylist]:X.error(Xh+e.property_denylist)),a},rg=class{constructor(){this.__forceAllowLocalhost=!1}get Qi(){return this.__forceAllowLocalhost}set Qi(e){X.error("WebPerformanceObserver is deprecated and has no impact on network capture. Use `_forceAllowLocalhostNetworkCapture` on `posthog.sessionRecording`"),this.__forceAllowLocalhost=e}},ig=class e{Ji(e,t){if(e){var n=this.Ki.indexOf(e);n!==-1&&this.Ki.splice(n,1)}return this.Ki.push(t),t.initialize==null||t.initialize(),t}Yi(){return this.config.cookieless_mode===Xd||this.config.cookieless_mode===Yd&&this.consent.isRejected()}get decideEndpointWasHit(){var e;return(e=this.featureFlags?.hasLoadedFlags)!=null&&e}get flagsEndpointWasHit(){var e;return(e=this.featureFlags?.hasLoadedFlags)!=null&&e}constructor(){this.webPerformance=new rg,this.Xi=!1,this.version=Ys.LIB_VERSION,this.en=new xh,this.Ki=[],this._calculate_event_properties=this.calculateEventProperties.bind(this),this.config=eg(),this.SentryIntegration=Mp,this.sentryIntegration=e=>function(e,t){var n=jp(e,t);return{name:Ap,processEvent:e=>n(e)}}(this,e),this.__request_queue=[],this.__loaded=!1,this.analyticsDefaultEndpoint=`/e/`,this.tn=!1,this.rn=null,this.nn=null,this.sn=null,this.scrollManager=new vh(this),this.pageViewManager=new Np(this),this.rateLimiter=new ym(this),this.requestRouter=new Ph(this),this.consent=new If(this),this.externalIntegrations=new Uh(this);var t=e.__defaultExtensionClasses??{};this.featureFlags=t.featureFlags&&new t.featureFlags(this),this.toolbar=t.toolbar&&new t.toolbar(this),this.surveys=t.surveys&&new t.surveys(this),this.conversations=t.conversations&&new t.conversations(this),this.logs=t.logs&&new t.logs(this),this.metrics=t.metrics&&new t.metrics(this),this.experiments=t.experiments&&new t.experiments(this),this.exceptions=t.exceptions&&new t.exceptions(this),this.people={set:(e,t,n)=>{var r=Dc(e)?{[e]:t}:e;this.setPersonProperties(r),n?.({})},set_once:(e,t,n)=>{var r=Dc(e)?{[e]:t}:e;this.setPersonProperties(void 0,r),n?.({})}},this.on(`eventCaptured`,(e=>X.info(`send "`+e?.event+`"`,e)))}init(t,n,r){if(r&&r!==Qh){var i=Wh[r]??new e;return i._init(t,n,r),Wh[r]=i,Wh[Qh][r]=i,i}return this._init(t,n,r)}_init(e,t,n){var r;t===void 0&&(t={});var i=Dc(e)?e.trim():``;if(!i)return X.critical(`PostHog was initialized without a token. This likely indicates a misconfiguration. Please check the first argument passed to posthog.init()`),this;if(this.__loaded)return console.warn(`[PostHog.js]`,`You have already initialized PostHog! Re-initializing is a no-op`),this;this.__loaded=!0,this.config=eg(t.defaults),t.debug=this.an(t.debug),this.ln=t,this.un=[],t.person_profiles?this.nn=t.person_profiles:t.process_person&&(this.nn=t.process_person);var a=eg(t.defaults),o=ng(t),s=lf({},a,o,{name:n,token:i});Tc(a.rageclick)&&Tc(o.rageclick)&&(s.rageclick=lf({},a.rageclick,o.rageclick)),Tc(a.session_recording)&&Tc(o.session_recording)&&(s.session_recording=lf({},a.session_recording,o.session_recording)),this.set_config(s),this.config.on_xhr_error&&X.error(`on_xhr_error is deprecated. Use on_request_error instead`),this.compression=t.disable_compression?void 0:um.GZipJS;var c=this.hn();this.persistence=new lm(this.config,c),this.sessionPersistence=this.config.persistence===`
12sessionStorage`||this.config.persistence===`memory`?this.persistence:new lm(K({},this.config,{persistence:`sessionStorage`}),c,!1);var l=K({},this.persistence.props),u=K({},this.sessionPersistence.props);this.register({$initialization_time:new Date().toISOString()}),this.dn=new hh((e=>this.cn(e)),this.config.request_queue_config),this.vn=new _h(this),this.__request_queue=[];var d=this.Yi();if(d||(this.sessionManager=new Ch(this),this.sessionPropsManager=new bh(this,this.sessionManager,this.persistence)),this.config.__preview_deferred_init_extensions?(X.info(`Deferring extension initialization to improve startup performance`),setTimeout((()=>{this.fn(d)}),0)):(X.info(`Initializing extensions synchronously`),this.fn(d)),Ys.DEBUG=Ys.DEBUG||this.config.debug,Ys.DEBUG&&X.info(`Starting in debug mode`,{this:this,config:t,thisC:K({},this.config),p:l,s:u}),!this.config.identity_distinct_id||(r=t.bootstrap)!=null&&r.distinctID||(t.bootstrap=K({},t.bootstrap,{distinctID:this.config.identity_distinct_id,isIdentifiedID:!0})),t.bootstrap?.distinctID!==void 0){var f=t.bootstrap.distinctID,p=this.get_distinct_id(),m=this.persistence.get_property(Id);if(t.bootstrap.isIdentifiedID&&p!=null&&p!==f&&m===Zd)this.identify(f);else if(t.bootstrap.isIdentifiedID&&p!=null&&p!==f&&m===Qd)X.warn(`Bootstrap distinctID differs from an already-identified user. The existing identity is preserved. Call reset() before reinitializing if you intend to switch users.`);else{var h=this.config.get_device_id(wf()),g=t.bootstrap.isIdentifiedID?h:f;this.persistence.set_property(Id,t.bootstrap.isIdentifiedID?Qd:Zd),this.register({distinct_id:f,$device_id:g})}}if(d)this.register_once({distinct_id:Ud,$device_id:null},``);else if(!this.get_distinct_id()){var _=this.config.get_device_id(wf());this.register_once({distinct_id:_,$device_id:_},``),this.persistence.set_property(Id,Zd)}return gf(U,`onpagehide`in self?`pagehide`:`unload`,this._handle_unload.bind(this),{passive:!1}),t.segment?function(e,t){var n=e.config.segment;if(!n)return t();(function(e,t){var n=e.config.segment;if(!n)return t();var r=n=>{var r=()=>n.anonymousId()||wf();e.config.get_device_id=r,n.id()&&(e.register({distinct_id:n.id(),$device_id:r()}),e.persistence.set_property(Id,Qd)),t()},i=n.user();`then`in i&&wc(i.then)?i.then(r):r(i)})(e,(()=>{n.register((e=>{typeof Promise<`u`&&Promise.resolve||kp.warn(`This browser does not have Promise support, and can not use the segment integration`);var t=(t,n)=>{if(!n)return t;t.event.userId||t.event.anonymousId===e.get_distinct_id()||(kp.info(`No userId set, resetting PostHog`),e.reset()),t.event.userId&&t.event.userId!==e.get_distinct_id()&&(kp.info(`UserId set, identifying with PostHog`),e.identify(t.event.userId));var r=e.calculateEventProperties(n,t.event.properties);return t.event.properties=Object.assign({},r,t.event.properties),t};return{name:`PostHog JS`,type:`enrichment`,version:`1.0.0`,isLoaded:()=>!0,load:()=>Promise.resolve(),track:e=>t(e,e.event.event),page:e=>t(e,nf),identify:e=>t(e,af),screen:e=>t(e,`$screen`)}})(e)).then((()=>{t()}))}))}(this,(()=>this.pn())):this.pn(),wc(this.config._onCapture)&&this.config._onCapture!==Kh&&(X.warn("onCapture is deprecated. Please use `before_send` instead"),this.on(`eventCaptured`,(e=>this.config._onCapture(e.event,e)))),this.config.ip&&X.warn('The `ip` config option has NO EFFECT AT ALL and has been deprecated. Use a custom transformation or "Discard IP data" project setting instead. See https://posthog.com/tutorials/web-redact-properties#hiding-customer-ip-address for more information.'),this.config.disableDeviceModel||function(){return Th.apply(this,arguments)}().then((e=>{e&&this.register({[Xu]:e})})).catch(Kh),this}fn(t){var n=performance.now(),r=K({},e.__defaultExtensionClasses,this.config.__extensionClasses),i=[];r.featureFlags&&this.Ki.push(this.featureFlags=this.featureFlags??new r.featureFlags(this)),r.exceptions&&this.Ki.push(this.exceptions=this.exceptions??new r.exceptions(this)),r.historyAutocapture&&this.Ki.push(this.historyAutocapture=new r.historyAutocapture(this)),r.tracingHeaders&&this.Ki.push(this.tracingHeaders=new r.tracingHeaders(this)),r.siteApps&&this.Ki.push(this.siteApps=new r.siteApps(this)),r.sessionRecording&&!t&&this.Ki.push(this.sessionRecording=new r.sessionRecording(this)),this.config.disable_scroll_properties||i.push((()=>{this.scrollManager.startMeasuringScrollPosition()})),r.autocapture&&this.Ki.push(this.autocapture=new r.autocapture(this)),r.surveys&&this.Ki.push(this.surveys=this.surveys??new r.surveys(this)),r.logs&&this.Ki.push(this.logs=this.logs??new r.logs(this)),r.metrics&&this.Ki.push(this.metrics=this.metrics??new r.metrics(this)),r.conversations&&this.Ki.push(this.conversations=this.conversations??new r.conversations(this)),r.productTours&&this.Ki.push(this.productTours=new r.productTours(this)),r.heatmaps&&this.Ki.push(this.heatmaps=new r.heatmaps(this)),r.webVitalsAutocapture&&this.Ki.push(this.webVitalsAutocapture=new r.webVitalsAutocapture(this)),r.exceptionObserver&&this.Ki.push(this.exceptionObserver=new r.exceptionObserver(this)),r.deadClicksAutocapture&&this.Ki.push(this.deadClicksAutocapture=new r.deadClicksAutocapture(this,Dp)),r.toolbar&&this.Ki.push(this.toolbar=this.toolbar??new r.toolbar(this)),r.experiments&&this.Ki.push(this.experiments=this.experiments??new r.experiments(this)),this.Ki.forEach((e=>{e.initialize&&i.push((()=>{e.initialize==null||e.initialize()}))})),i.push((()=>
12{if(this.gn){var e=this.gn;this.gn=void 0,this.Hr(e)}})),this.mn(i,n)}mn(e,t){for(;e.length>0;){if(this.config.__preview_deferred_init_extensions&&performance.now()-t>=30&&e.length>0)return void setTimeout((()=>{this.mn(e,t)}),0);var n=e.shift();if(n)try{n()}catch(e){X.error(`Error initializing extension:`,e)}}var r=Math.round(performance.now()-t);this.register_for_session({[Gd]:this.config.__preview_deferred_init_extensions?`deferred`:`synchronous`,[Kd]:r}),this.config.__preview_deferred_init_extensions&&X.info(`PostHog extensions initialized (`+r+`ms)`)}Hr(e){if(!W||!W.body)return X.info(`document not ready yet, trying again in 500 milliseconds...`),void setTimeout((()=>{this.Hr(e)}),500);if(this.config.__preview_deferred_init_extensions&&(this.gn=e),this.yn=e,this.compression=void 0,e.ok){var t,n=e.config;n.supportedCompression&&!this.config.disable_compression&&(this.compression=q(n.supportedCompression,um.GZipJS)?um.GZipJS:q(n.supportedCompression,um.Base64)?um.Base64:void 0),(t=n.analytics)!=null&&t.endpoint&&(this.analyticsDefaultEndpoint=n.analytics.endpoint)}this.set_config({person_profiles:this.nn?this.nn:$d}),this.Ki.forEach((t=>t.onRemoteConfig==null?void 0:t.onRemoteConfig(e)))}pn(){try{this.config.loaded(this)}catch(e){X.critical("`loaded` function failed",e)}if(this.bn(),this.config.internal_or_test_user_hostname&&Vs!=null&&Vs.hostname){var e=Vs.hostname,t=this.config.internal_or_test_user_hostname;(typeof t==`string`?e===t:t.test(e))&&this.setInternalOrTestUser()}this.config.capture_pageview&&setTimeout((()=>{(this.consent.isOptedIn()||this.Yi())&&this._n()}),1),this.wn=new xm(this),this.wn.load()}bn(){var e;this.is_capturing()&&this.config.request_batching&&((e=this.dn)==null||e.enable())}_dom_loaded(){this.is_capturing()&&sf(this.__request_queue,(e=>this.cn(e))),this.__request_queue=[],this.bn()}_handle_unload(){var e,t,n,r,i;(e=this.surveys)==null||e.handlePageUnload==null||e.handlePageUnload(),(t=this.metrics)==null||t.flush(`sendBeacon`),this.config.request_batching?(this.xn()&&this.capture(rf),(n=this.logs)==null||n.flushLogs(`sendBeacon`),(r=this.dn)==null||r.unload(),(i=this.vn)==null||i.unload()):this.xn()&&this.capture(rf,null,{transport:`sendBeacon`})}_send_request(e){this.__loaded?$h?this.__request_queue.push(e):this.rateLimiter.isServerRateLimited(e.batchKey)?e.fireCallbackOnDrop&&(e.callback==null||e.callback({statusCode:429})):(e.transport=e.transport||this.config.api_transport,e.headers=K({},this.config.request_headers,e.headers),e.compression=e.compression===`best-available`?this.compression:e.compression,(J(this.config.disable_beacon)?this.config.__preview_disable_beacon:this.config.disable_beacon)&&(e.disableTransport=[`sendBeacon`]),e.fetchOptions=e.fetchOptions||this.config.fetch_options,(e=>{var t=K({},e);t.timeout=t.timeout||6e4;var n,r,i,a,o=t.transport??`fetch`;o===`sendBeacon`&&J(t.compression)&&t.data&&(t.compression=um.Base64),t.method===`POST`&&t.data&&(t.timestampMode===`capture-body`?t.data={api_key:((a=(i=Cc(n=t.data)?n:[n])[0])==null||(r=a.properties)==null?void 0:r.token)??a?.token,batch:i,sent_at:new Date().toISOString()}:t.timestampMode===`body`&&(t.data=function(e,t){return t===void 0&&(t=new Date().toISOString()),Cc(e)?e.map((e=>K({},e,{sent_at:t}))):K({},e,{sent_at:t})}(t.data))),t.url=fh(t.url,t.method,t.compression,t.timestampMode);var s=ph.filter((e=>!t.disableTransport||!e.transport||!t.disableTransport.includes(e.transport))),c=function(e,t){for(var n=0;e.length>n;n++)if(e[n].transport===o)return e[n]}(s)?.method??s[0].method;if(!c)throw Error(`No available transport method`);o!==`sendBeacon`&&t.data&&t.compression===um.GZipJS&&Gs&&typeof Promise<`u`&&!nh?ch(t).then((e=>{c(e)})).catch((n=>{if(dc(n))return nh=!0,void c(K({},t,{compression:void 0,url:fh(e.url,e.method,void 0,e.timestampMode)}));(e=>{if(!e||typeof e!=`object`)return!1;var t=`name`in e?String(e.name):``;return dc(e)||t===cc})(n)&&(nh=!0),c(t)})):c(t)})(K({},e,{callback:t=>{var n,r;this.rateLimiter.checkForLimiting(t),400>t.statusCode||(n=(r=this.config).on_request_error)==null||n.call(r,t),e.callback==null||e.callback(t)}}))):e.fireCallbackOnDrop&&(e.callback==null||e.callback({statusCode:0}))}
12cn(e){this.vn?this.vn.retriableRequest(e):this._send_request(e)}_execute_array(e){Gh++;try{var t,n=[],r=[],i=[];sf(e,(e=>{if(e)if(Cc(t=e[0]))i.push(e);else if(wc(e))try{e.call(this)}catch(t){X.error(`Error executing queued PostHog call`,e,t)}else Cc(e)&&t===`alias`?n.push(e):Cc(e)&&t.indexOf(`capture`)!==-1&&wc(this[t])?i.push(e):r.push(e)}));var a=function(e,t){sf(e,(function(e){try{if(Cc(e[0])){var n=t;cf(e,(function(e){n=n[e[0]].apply(n,e.slice(1))}))}else t[e[0]].apply(t,e.slice(1))}catch(t){X.error(`Error executing queued PostHog call`,e,t)}}))};a(n,this),a(r,this),a(i,this)}finally{Gh--}}push(t){if(Gh>0&&Cc(t)&&Dc(t[0])){var n=e.prototype[t[0]];wc(n)&&n.apply(this,t.slice(1))}else this._execute_array([t])}capture(e,t,n){var r,i,a,o;if(this.__loaded&&this.persistence&&this.sessionPersistence&&this.dn){if(this.is_capturing())if(!J(e)&&Dc(e)){var s=!this.config.opt_out_useragent_filter&&this._is_bot();if(!s||this.config.__preview_capture_bot_pageviews){var c=n!=null&&n.skip_client_rate_limiting?void 0:this.rateLimiter.clientRateLimitContext();if(c==null||!c.isRateLimited){t!=null&&t.$current_url&&!Dc(t?.$current_url)&&(X.error("Invalid `$current_url` property provided to `posthog.capture`. Input must be a string. Ignoring provided value."),t==null||delete t.$current_url),e!==`$exception`||n!=null&&n.kn||X.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.sessionPersistence.update_search_keyword(),this.config.save_campaign_params&&this.sessionPersistence.update_campaign_params(),this.config.save_referrer&&this.sessionPersistence.update_referrer_info(),(this.config.save_campaign_params||this.config.save_referrer)&&this.persistence.set_initial_person_info();var l=new Date,u=n?.timestamp||l,d=Yl(n?.uuid,wf),f={uuid:d,event:e,properties:this.calculateEventProperties(e,t||{},u,d)};e===nf&&this.config.__preview_capture_bot_pageviews&&s&&(f.event=`$bot_pageview`,f.properties.$browser_type=`bot`),c&&(f.properties.$lib_rate_limit_remaining_tokens=c.remainingTokens);var p=e===`$feature_flag_called`&&!1===f.properties.$feature_flag_has_experiment&&!0===this.get_property(Sd);n!=null&&n.$set&&!p&&(f.$set=n?.$set);var m=n?.$unset;m&&(f.$unset=m);var h,g,_,v=p?void 0:this.Sn(n?.$set_once,e!==of,e===af);if(v&&(f.$set_once=v),n!=null&&n._noTruncate||(r=this.config.properties_string_max_length,i=f,a=e=>Dc(e)?e.slice(0,r):e,o=new Set,f=function e(t,n){if(t!==Object(t))return a?a(t):t;if(!o.has(t)){var r;if(o.add(t),Cc(t))r=[],sf(t,(t=>{r.push(e(t))}));else{var i={};cf(t,((t,n)=>{o.has(t)||(i[n]=e(t,n))})),r=i}return r}}(i)),f.timestamp=u,J(n?.timestamp)||(f.properties.$event_time_override_provided=!0,f.properties.$event_time_override_system_time=l),p&&(f.properties=function(e,t){t===void 0&&(t=[]);var n={},r=t=>{e[t]!==void 0&&(n[t]=e[t])};return rc.forEach(r),t.forEach(r),n}(f.properties,Zh)),e===pm.DISMISSED||e===pm.SENT){var y=t?.[mm.SURVEY_ID],b=t?.[mm.SURVEY_ITERATION];Rh({id:y,current_iteration:b}),f.$set=K({},f.$set,{[(h={id:y,current_iteration:b},g=e===pm.SENT?`responded`:`dismissed`,_=`$survey_`+g+`/`+h.id,h.current_iteration&&h.current_iteration>0&&(_=`$survey_`+g+`/`+h.id+`/`+h.current_iteration),_)]:!0})}else e===pm.SHOWN&&(f.$set=K({},f.$set,{[mm.SURVEY_LAST_SEEN_DATE]:new Date().toISOString()}));if(e===gm.SHOWN){var x=t?.[_m.TOUR_TYPE];x&&(f.$set=K({},f.$set,{[_m.TOUR_LAST_SEEN_DATE+`/`+x]:new Date().toISOString()}))}var S=K({},f.properties.$set,f.$set);if(Ec(S)||this.setPersonPropertiesForFlags(S),!Ac(this.config.before_send)){var C=this.wt(f);if(!C)return;(f=C).uuid=Yl(f.uuid,wf)}this.en.emit(`eventCaptured`,f);var w=n?._url??this.requestRouter.endpointFor(`api`,this.analyticsDefaultEndpoint),E={method:`POST`,url:w,data:f,compression:`best-available`,timestampMode:n?._batchKey===`recordings`||/\/s\/(?:\?|$)/.test(w)?`body`:`capture-body`,batchKey:n?._batchKey,transport:n?.transport};return!this.config.request_batching||n&&(n==null||!n._batchKey)||n!=null&&n.send_instantly?this.cn(E):this.dn.enqueue(E),f}X.critical(`This capture call is ignored due to client rate limiting.`)}}else X.error(`No event name provided to posthog.capture`)}else X.uninitializedWarning(`posthog.capture`)}_addCaptureHook(e){return this.on(`eventCaptured`,(t=>e(t.event,t)))}calculateEventProperties(e,t,n,r,i){if(n||=new Date,!this.persistence||!this.sessionPersistence)return t;var a=i?void 0:this.persistence.remove_event_timer(e),o=K({},t);if(o.token=this.config.token,o.$config_defaults=this.config.defaults,this.Yi()&&(o[Wd]=!0),e===`$snapshot`){var s=K({},this.persistence.properties(),this.sessionPersistence.properties());return o.distinct_id=s.distinct_id,(!Dc(o.distinct_id)&&!jc(o.distinct_id)||Oc(o.distinct_id))&&X.error(`Invalid distinct_id for replay event. This indicates a bug in your implementation`),o}var c,l=function(e,t,n,r){var i,a,o;if(r===void 0&&(r=!1),!Ks)return{};var s,c=e?[...Kp,...t||[]]:[],l=function(e){for(var t=0;Kl.length>t;t++){var n=Kl[t],r=n[1],i=n[0].exec(e),a=i&&(wc(r)?r(i,e):r);if(a)return a}return[``,``]}(Ks),u=l[0],d=l[1],f=(s=typeof navigator<`u`?navigator:void 0)!=null&&s.brave?{brave:!0}:{},p={};J(n)||(p.detectGoogleSearchApp=n);var m={},h=(i=navigator)==null||(i=i.userAgentData)==null?void 0:i.platform,g=navigator?.maxTouchPoints,_=U==null||(a=U.screen)==null?void 0:a.width,v=U==null||(o=U.screen)==null?void 0:o.height,y=U?.devicePixelRatio;J(h)||(m.userAgentDataPlatform=h),J(g)||(m.maxTouchPoints=g),J(_)||(m.screenWidth=_),J(v)||(m.screenHeight=v),J(y)||(m.devicePixelRatio=y);var b,x,S,C,w=lf(pf({$os:u,$os_version:d,$browser:Ul(Ks,navigator.vendor,f,p),$device:ql(Ks),$device_type:(x=Ks,S=m,C=ql(x),C===Xc||C===Yc||C===`K
12obo`||C===`Kindle Fire`||C===El?Jc:C===hl||C===_l||C===gl||C===Cl?`Console`:C===Qc?`Wearable`:C?Gc:S?.userAgentDataPlatform===`Android`&&(S?.maxTouchPoints??0)>0?600>Math.min(S?.screenWidth??0,S?.screenHeight??0)/(S?.devicePixelRatio??1)?Gc:Jc:`Desktop`),$timezone:im(),$timezone_offset:am()}),{$current_url:Vp(r?Xl(Vs?.href):Vs?.href,c,Jp),$host:Vs?.host,$pathname:Vs?.pathname,$raw_user_agent:Ks.length>1e3?Ks.substring(0,997)+`...`:Ks,$browser_version:Gl(Ks,navigator.vendor,f,p),$browser_language:$p(),$browser_language_prefix:(b=$p(),typeof b==`string`?b.split(`-`)[0]:void 0),$screen_height:U?.screen.height,$screen_width:U?.screen.width,$viewport_height:U?.innerHeight,$viewport_width:U?.innerWidth,$lib:Ys.LIB_NAME,$lib_version:Ys.LIB_VERSION,$insert_id:Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10),$time:Date.now()/1e3});return Ys.SDK_DIST_CHANNEL&&(w.$sdk_dist_channel=Ys.SDK_DIST_CHANNEL),w}(this.config.mask_personal_data_properties,this.config.custom_personal_data_properties,this.config.detect_google_search_app,this.config.disable_capture_url_hashes);if(this.sessionManager){var u=this.sessionManager.checkAndGetSessionAndWindowId(i,n.getTime()),d=u.windowId;o.$session_id=u.sessionId,o.$window_id=d}this.sessionPropsManager&&lf(o,this.sessionPropsManager.getSessionProps());try{this.sessionRecording&&lf(o,this.sessionRecording.sdkDebugProperties),o.$sdk_debug_retry_queue_size=this.vn?.length}catch(e){o.$sdk_debug_error_capturing_properties=String(e)}if(this.requestRouter.region===jh&&(o.$lib_custom_api_host=this.config.api_host),c=e!==nf||i?e!==rf||i?this.pageViewManager.doEvent():this.pageViewManager.doPageLeave(n):this.pageViewManager.doPageView(n,r),o=lf(o,c),e===nf&&W&&(o.title=W.title),!J(a)){var f=n.getTime()-a;o.$duration=parseFloat((f/1e3).toFixed(3))}Ks&&this.config.opt_out_useragent_filter&&(o.$browser_type=this._is_bot()?`bot`:`browser`);var p=this.persistence.properties(),m=this.sessionPersistence.properties();cf([`$referrer`,`$referring_domain`],(e=>{e in p&&delete m[e]})),(o=lf({},l,p,m,o)).$is_identified=this._isIdentified(),Cc(this.config.property_denylist)?cf(this.config.property_denylist,(function(e){delete o[e]})):X.error(Xh+this.config.property_denylist+` or property_blacklist config: `+this.config.property_blacklist);var h=this.config.sanitize_properties;h&&(X.error(Yh),o=h(o,e));var g=this.Cn();return o.$process_person_profile=g,g&&!i&&this.Mn(`_calculate_event_properties`),o}Sn(e,t,n){if(t===void 0&&(t=!0),n===void 0&&(n=!1),!this.persistence||!this.Cn()||this.Xi&&!n)return e;var r=lf({},this.persistence.get_initial_props(),this.sessionPropsManager?.getSetOnceProps()||{},e||{}),i=this.config.sanitize_properties;return i&&(X.error(Yh),r=i(r,`$set_once`)),t&&(this.Xi=!0),Ec(r)?void 0:r}register(e,t){var n;(n=this.persistence)==null||n.register(e,t)}register_once(e,t,n){var r;(r=this.persistence)==null||r.register_once(e,t,n)}register_for_session(e){var t;(t=this.sessionPersistence)==null||t.register(e)}unregister(e){var t;(t=this.persistence)==null||t.unregister(e)}unregister_for_session(e){var t;(t=this.sessionPersistence)==null||t.unregister(e)}In(e,t){this.register({[e]:t})}getFeatureFlag(e,t){return this.featureFlags?.getFeatureFlag(e,t)}getFeatureFlagPayload(e){return this.featureFlags?.getFeatureFlagPayload(e)}getFeatureFlagResult(e,t){return this.featureFlags?.getFeatureFlagResult(e,t)}getAllFeatureFlags(){return this.featureFlags?.getAllFeatureFlags()??[]}isFeatureEnabled(e,t){return this.featureFlags?.isFeatureEnabled(e,t)??t?.defaultValue}reloadFeatureFlags(){var e;(e=this.featureFlags)==null||e.reloadFeatureFlags()}updateFlags(e,t,n){var r;(r=this.featureFlags)==null||r.updateFlags(e,t,n)}updateEarlyAccessFeatureEnrollment(e,t,n){var r;(r=this.featureFlags)==null||r.updateEarlyAccessFeatureEnrollment(e,t,n)}getEarlyAccessFeatures(e,t,n){return t===void 0&&(t=!1),this.featureFlags?.getEarlyAccessFeatures(e,t,n)}on(e,t){return this.en.on(e,t)}onFeatureFlags(e){return this.featureFlags?this.featureFlags.onFeatureFlags(e):(e([],{},{errorsLoading:!0}),()=>{})}onSurveysLoaded(e){return this.surveys?this.surveys.onSurveysLoaded(e):(e([],{isLoaded:!1,error:Jh}),()=>{})}onSessionId(e){return this.sessionManager?.onSessionId(e)??(()=>{})}getSurveys(e,t){t===void 0&&(t=!1),this.surveys?this.surveys.getSurveys(e,t):e([],{isLoaded:!1,error:Jh})}getActiveMatchingSurveys(e,t){t===void 0&&(t=!1),this.surveys?this.surveys.getActiveMatchingSurveys(e,t):e([],{isLoaded:!1,error:Jh})}renderSurvey(e,t){var n;(n=this.surveys)==null||n.renderSurvey(e,t)}displaySurvey(e,t){var n;t===void 0&&(t=Bh),(n=this.surveys)==null||n.displaySurvey(e,t)}cancelPendingSurvey(e){var t;(t=this.surveys)==null||t.cancelPendingSurvey(e)}canRenderSurvey(e){return this.surveys?.canRenderSurvey(e)??{visible:!1,disabledReason:Jh}}canRenderSurveyAsync(e,t){return t===void 0&&(t=!1),this.surveys?.canRenderSurveyAsync(e,t)??Promise.resolve({visible:!1,disabledReason:Jh})}Tn(e){return!e||Oc(e)?(X.critical(`Unique user id has not been set in posthog.identify`),!1):e===Ud?(X.critical(`The string "`+e+`" was set in posthog.identify which indicates an error. This ID is only used as a sentinel value.`),!1):![`distinct_id`,`distinctid`].includes(e.toLowerCase())&&![`undefined`,`null`].includes(e.toLowerCase())||(X.critical(`The string "`+e+`" was set in posthog.identify which indicates an error. This ID should be unique to the user and n
12ot a hardcoded string.`),!1)}identify(e,t,n){if(!this.__loaded||!this.persistence)return X.uninitializedWarning(`posthog.identify`);if(jc(e)&&(e=e.toString(),X.warn(`The first argument to posthog.identify was a number, but it should be a string. It has been converted to a string.`)),this.Tn(e)&&this.Mn(`posthog.identify`)){var r=this.get_distinct_id();this.register({$user_id:e}),this.get_property(Yu)||this.register_once({$had_persisted_distinct_id:!0,$device_id:r},``),e!==r&&e!==this.get_property(Zu)&&(this.unregister(Zu),this.register({distinct_id:e}));var i,a=(this.persistence.get_property(Id)||Zd)===Zd;e!==r&&a?(this.persistence.set_property(Id,Qd),this.setPersonPropertiesForFlags({$set:t||{},$set_once:n||{}},!1),this.capture(af,{distinct_id:e,$anon_distinct_id:r},{$set:t||{},$set_once:n||{}}),this.sn=Dh(e,t,n),(i=this.featureFlags)==null||i.setAnonymousDistinctId(r)):(t||n)&&this.setPersonProperties(t,n),e!==r&&(this.reloadFeatureFlags(),this.unregister(Md))}}setPersonProperties(e,t){if((e||t)&&this.Mn(`posthog.setPersonProperties`)){var n=Dh(this.get_distinct_id(),e,t);this.sn===n?X.info(`A duplicate setPersonProperties call was made with the same properties. It has been ignored.`):(this.setPersonPropertiesForFlags({$set:e||{},$set_once:t||{}},!0),this.capture(`$set`,{$set:e||{},$set_once:t||{}}),this.sn=n)}}unsetPersonProperties(e){var t,n=(Cc(e)?e:[e]).filter((e=>Dc(e)&&e.length>0));n.length!==0&&this.Mn(`posthog.unsetPersonProperties`)&&((t=this.featureFlags)==null||t.unsetPersonPropertiesForFlags(n,!0),this.capture(`$set`,{$unset:n}),this.sn=null)}group(e,t,n){if(e&&t){var r=this.getGroups(),i=r[e]!==t;if(i&&this.resetGroupPropertiesForFlags(e),this.register({$groups:K({},r,{[e]:t})}),i||n){var a={$group_type:e,$group_key:t};n&&(a.$group_set=n),this.capture(of,a)}n&&this.setGroupPropertiesForFlags({[e]:n}),i&&!n&&this.reloadFeatureFlags()}else X.error(`posthog.group requires a group type and group key`)}resetGroups(){this.register({$groups:{}}),this.resetGroupPropertiesForFlags(),this.reloadFeatureFlags()}setPersonPropertiesForFlags(e,t){var n;t===void 0&&(t=!0),(n=this.featureFlags)==null||n.setPersonPropertiesForFlags(e,t)}resetPersonPropertiesForFlags(e){var t;e===void 0&&(e=!0),(t=this.featureFlags)==null||t.resetPersonPropertiesForFlags(e)}setGroupPropertiesForFlags(e,t){var n;t===void 0&&(t=!0),this.Mn(`posthog.setGroupPropertiesForFlags`)&&((n=this.featureFlags)==null||n.setGroupPropertiesForFlags(e,t))}resetGroupPropertiesForFlags(e){var t;(t=this.featureFlags)==null||t.resetGroupPropertiesForFlags(e)}reset(e){var t,n,r,i,a,o,s,c,l,u;if(X.info(`reset`),!this.__loaded)return X.uninitializedWarning(`posthog.reset`);var d,f=this.get_property(Yu),p=this.get_property(Xu),m=this.get_property(cd);if(this.consent.reset(),(t=this.persistence)==null||t.clear(),(n=this.sessionPersistence)==null||n.clear(),J(m)||(d=this.persistence)==null||d.register({[cd]:m}),(r=this.surveys)==null||r.reset(),(i=this.wn)==null||i.stop(),(a=this.featureFlags)==null||a.reset(),(o=this.conversations)==null||o.reset(),(s=this.logs)==null||s.reset(),(c=this.metrics)==null||c.reset(),(l=this.persistence)==null||l.set_property(Id,Zd),(u=this.sessionManager)==null||u.resetSessionId(),this.sn=null,this.config.cookieless_mode===Xd)this.register_once({distinct_id:Ud,$device_id:null},``);else{var h=this.config.get_device_id(wf());this.register_once({distinct_id:h,$device_id:e?h:f},``),e||J(p)||this.register({[Xu]:p})}this.register({$last_posthog_reset:new Date().toISOString()},1),delete this.config.identity_distinct_id,delete this.config.identity_hash,this.reloadFeatureFlags()}shutdown(e){var t=this;return Zs((function*(){var e,n,r,i,a;t.__loaded?((e=t.logs)==null||e.flushLogs(`sendBeacon`),(n=t.metrics)==null||n.flush(`sendBeacon`),(r=t.dn)==null||r.unload(),(i=t.vn)==null||i.unload(),(a=t.featureFlags)==null||a.destroy()):X.uninitializedWarning(`posthog.shutdown`)}))()}setIdentity(e,t){var n;this.config.identity_distinct_id=e,this.config.identity_hash=t,this.alias(e),(n=this.conversations)==null||n.En()}clearIdentity(){var e;delete this.config.identity_distinct_id,delete this.config.identity_hash,(e=this.conversations)==null||e.Rn()}get_distinct_id(){return this.get_property(`distinct_id`)}getGroups(){return this.get_property(`$groups`)||{}}get_session_id(){return this.sessionManager?.checkAndGetSessionAndWindowId(!0).sessionId??``}get_session_replay_url(e){if(!this.sessionManager)return``;var t=this.sessionManager.checkAndGetSessionAndWindowId(!0),n=t.sessionStartTimestamp,r=this.requestRouter.endpointFor(`ui`,`/project/`+this.config.token+`/replay/`+t.sessionId);if(e!=null&&e.withTimestamp&&n){var i=e.timestampLookBack??10;if(!n)return r;r+=`?t=`+Math.max(Math.floor((new Date().getTime()-n)/1e3)-i,0)}return r}alias(e,t){return e===this.get_property(Ju)?(X.critical(`Attempting to create alias for existing People user - aborting.`),-2):this.Mn(`posthog.alias`)?(J(t)&&(t=this.get_distinct_id()),e===t?(X.warn(`alias matches current distinct_id - skipping api call.`),this.identify(e),-1):(this.In(Zu,e),this.capture(`$create_alias`,{alias:e,distinct_id:t}))):void 0}set_config(e){var t=K({},this.config);if(Tc(e)){var n,r,i,a,o,s,c,l,u,d,f;lf(this.config,ng(e));var p=this.hn();(n=this.persistence)==null||n.update_config(this.config,t,p),this.sessionPersistence=this.config.persistence===`
12sessionStorage`||this.config.persistence===`memory`?this.persistence:new lm(K({},this.config,{persistence:`sessionStorage`}),p,!1);var m=this.an(this.config.debug);Nc(m)&&(this.config.debug=m),Nc(this.config.debug)&&(this.config.debug?(Ys.DEBUG=!0,Af.N()&&Af.q(`ph_debug`,!0),X.info(`set_config`,{config:e,oldConfig:t,newConfig:K({},this.config)})):(Ys.DEBUG=!1,Af.N()&&Af.P(`ph_debug`))),(r=this.exceptionObserver)==null||r.onConfigChange(),(i=this.exceptions)==null||i.onConfigChange(),(a=this.sessionRecording)==null||a.startIfEnabledOrStop(),(o=this.tracingHeaders)==null||o.startIfEnabledOrStop(),(s=this.autocapture)==null||s.startIfEnabled(),(c=this.heatmaps)==null||c.startIfEnabled(),(l=this.exceptionObserver)==null||l.startIfEnabledOrStop(),(u=this.deadClicksAutocapture)==null||u.startIfEnabledOrStop(),(d=this.surveys)==null||d.loadIfEnabled(),this.Pn(),(f=this.externalIntegrations)==null||f.startIfEnabledOrStop()}}_overrideSDKInfo(e,t){Ys.LIB_NAME=e,Ys.LIB_VERSION=t}startSessionRecording(e){var t,n,r,i,a,o=!0===e,s={sampling:o||!(e==null||!e.sampling),linked_flag:o||!(e==null||!e.linked_flag),url_trigger:o||!(e==null||!e.url_trigger),event_trigger:o||!(e==null||!e.event_trigger)};Object.values(s).some(Boolean)&&((t=this.sessionManager)==null||t.checkAndGetSessionAndWindowId(),s.sampling&&((n=this.sessionRecording)==null||n.overrideSampling()),s.linked_flag&&((r=this.sessionRecording)==null||r.overrideLinkedFlag()),s.url_trigger&&((i=this.sessionRecording)==null||i.overrideTrigger(`url`)),s.event_trigger&&((a=this.sessionRecording)==null||a.overrideTrigger(`event`))),this.set_config({disable_session_recording:!1})}stopSessionRecording(){this.set_config({disable_session_recording:!0})}sessionRecordingStarted(){var e;return!((e=this.sessionRecording)==null||!e.started)}captureException(e,t){if(this.exceptions){var n=Error(`PostHog syntheticException`),r=this.exceptions.buildProperties(e,{handled:!0,syntheticException:n});return this.exceptions.sendExceptionEvent(K({},r,t))}}addExceptionStep(e,t){var n;(n=this.exceptions)==null||n.addExceptionStep(e,t)}captureLog(e){var t;(t=this.logs)==null||t.captureLog(e)}get logger(){return this.logs?.logger??e.On}startExceptionAutocapture(e){this.set_config({capture_exceptions:e==null||e})}stopExceptionAutocapture(){this.set_config({capture_exceptions:!1})}loadToolbar(e){var t;return(t=this.toolbar?.loadToolbar(e))!=null&&t}get_property(e){return this.persistence?.props[e]}getSessionProperty(e){return this.sessionPersistence?.props[e]}toString(){var e=this.config.name??Qh;return e!==Qh&&(e=Qh+`.`+e),e}_isIdentified(){return this.persistence?.get_property(Id)===Qd||this.sessionPersistence?.get_property(Id)===Qd}Cn(){var e,t;return!(this.config.person_profiles===`never`||this.config.person_profiles===$d&&!this._isIdentified()&&Ec(this.getGroups())&&((e=this.persistence)==null||(e=e.props)==null||!e[Zu])&&((t=this.persistence)==null||(t=t.props)==null||!t[Hd]))}xn(){return!0===this.config.capture_pageleave||this.config.capture_pageleave===`if_capture_pageview`&&(!0===this.config.capture_pageview||this.config.capture_pageview===`history_change`)}createPersonProfile(){this.Cn()||this.Mn(`posthog.createPersonProfile`)&&this.setPersonProperties({},{})}setInternalOrTestUser(){this.Mn(`posthog.setInternalOrTestUser`)&&this.setPersonProperties({$internal_or_test_user:!0})}Mn(e){return this.config.person_profiles===`never`?(X.error(e+` was called, but process_person is set to "never". This call will be ignored.`),!1):(this.In(Hd,!0),!0)}hn(){if(this.config.cookieless_mode===`always`)return!0;var e=this.consent.isOptedOut();return this.config.disable_persistence||e&&!(!this.config.opt_out_persistence_by_default&&this.config.cookieless_mode!==Yd)}Pn(){var e,t,n=this.hn();return this.persistence?.yr!==n&&((e=this.persistence)==null||e.set_disabled(n)),this.sessionPersistence?.yr!==n&&((t=this.sessionPersistence)==null||t.set_disabled(n)),n}opt_in_capturing(t){var n;if(this.config.cookieless_mode!==Xd){if(this.Yi()){var r,i;this.reset(!0),(r=this.sessionManager)==null||r.destroy(),(i=this.pageViewManager)==null||i.destroy(),this.sessionManager=new Ch(this),this.pageViewM
12anager=new Np(this),this.persistence&&(this.sessionPropsManager=new bh(this,this.sessionManager,this.persistence));var a,o=this.config.__extensionClasses?.sessionRecording??e.__defaultExtensionClasses?.sessionRecording;o&&(this.sessionRecording=this.Ji(this.sessionRecording,new o(this)),this.yn&&((a=this.sessionRecording)==null||a.onRemoteConfig==null||a.onRemoteConfig(this.yn)))}var s;this.consent.optInOut(!0),this.Pn(),this.bn(),(n=this.sessionRecording)==null||n.startIfEnabledOrStop(),this.config.cookieless_mode==Yd&&((s=this.surveys)==null||s.loadIfEnabled()),(J(t?.captureEventName)||t!=null&&t.captureEventName)&&this.capture(t?.captureEventName??`$opt_in`,t?.captureProperties,{send_instantly:!0}),this.config.capture_pageview&&this._n()}else X.warn(qh)}opt_out_capturing(){var e,t,n;this.config.cookieless_mode===Xd?X.warn(qh):(this.config.cookieless_mode===Yd&&this.consent.isOptedIn()&&this.reset(!0),this.consent.optInOut(!1),this.Pn(),this.config.cookieless_mode===Yd&&(this.register({distinct_id:Ud,$device_id:null}),(e=this.sessionRecording)==null||e.stopRecording(),this.sessionRecording=void 0,(t=this.sessionManager)==null||t.destroy(),(n=this.pageViewManager)==null||n.destroy(),this.sessionManager=void 0,this.sessionPropsManager=void 0,this.config.capture_pageview&&this._n(),this.bn()))}has_opted_in_capturing(){return this.consent.isOptedIn()}has_opted_out_capturing(){return this.consent.isOptedOut()}get_explicit_consent_status(){var e=this.consent.consent;return e===1?`granted`:e===0?`denied`:`pending`}is_capturing(){return this.config.cookieless_mode===Xd||(this.config.cookieless_mode===Yd?this.consent.isRejected()||this.consent.isOptedIn():!this.has_opted_out_capturing())}clear_opt_in_out_capturing(){this.consent.reset(),this.Pn()}_is_bot(){return Bs?wh(Bs,this.config.custom_blocked_useragents):void 0}_n(){W&&(W.visibilityState===`visible`?this.tn||(this.tn=!0,this.capture(nf,{title:W.title},{send_instantly:!0}),this.rn&&=(W.removeEventListener(ef,this.rn),null)):this.rn||(this.rn=this._n.bind(this),gf(W,ef,this.rn)))}debug(e){!1===e?(U?.console.log(`You've disabled debug mode.`),this.set_config({debug:!1})):(U?.console.log("You're now in debug mode. All calls to PostHog will be logged in your console.\nYou can disable this with `posthog.debug(false)`."),this.set_config({debug:!0}))}Ur(){var e=this.ln||{};return`advanced_disable_flags`in e?!!e.advanced_disable_flags:!1===this.config.advanced_disable_flags?!0===this.config.advanced_disable_decide?(X.warn(`Config field 'advanced_disable_decide' is deprecated. Please use 'advanced_disable_flags' instead. The old field will be removed in a future major version.`),!0):function(e,t,n,r,i){var a=t in e&&!Ac(e[t]),o=n in e&&!Ac(e[n]);return a?e[t]:!!o&&(i&&i.warn(`Config field '`+n+`' is deprecated. Please use '`+t+`' instead. The old field will be removed in a future major version.`),e[n])}(e,`advanced_disable_flags`,`advanced_disable_decide`,0,X):!!this.config.advanced_disable_flags}wt(e){if(Ac(this.config.before_send))return e;var t=Object.keys(e.properties??{}).filter(Ic),n=Cc(this.config.before_send)?this.config.before_send:[this.config.before_send],r=e;for(var i of n){if(r=i(r),Ac(r)){var a=`Event '`+e.event+`' was rejected in beforeSend function`;return Fc(e.event)?X.warn(a+`. This can cause unexpected behavior.`):X.info(a),null}r.properties&&!Ec(r.properties)||X.warn(`Event '`+e.event+`' has no properties after beforeSend function, this is likely an error.`)}for(var o of t)if(r.properties&&Ac(r.properties[o]))return X.warn(`Event '`+e.event+`' had its '`+o+`' property removed in a beforeSend function. This property is required for ingestion, so the event will be dropped.`),null;return r}getPageViewId(){return this.pageViewManager.ir?.pageViewId}captureTraceFeedback(e,t){this.capture(`$ai_feedback`,{$ai_trace_id:String(e),$ai_feedback_text:t})}captureTraceMetric(e,t,n){this.capture(`$ai_metric`,{$ai_trace_id:String(e),$ai_metric_name:t,$ai_metric_value:String(n)})}an(e){var t=Nc(e)&&!e,n=Af.N()&&Af.A(`ph_debug`)===`true`;return!t&&(!!n||e)}};ig.__defaultExtensionClasses={},ig.On=(()=>{var e=()=>{};return{trace:e,debug:e,info:e,warn:e,error:e,fatal:e}})(),function(e,t){for(var n=0;t.length>n;n++)e.prototype[t[n]]=ff(e.prototype[t[n]])}(ig,[`identify`]);var ag=class{constructor(e){this.disabled=!1===e;var t=Tc(e)?e:{};this.thresholdPx=t.threshold_px||30,this.timeoutMs=t.timeout_ms||1e3,this.clickCount=t.click_count||3,this.clicks=[]}isRageClick(e,t,n){if(this.disabled)return!1;var r=this.clicks[this.clicks.length-1];if(r&&Math.abs(e-r.x)+Math.abs(t-r.y)<this.thresholdPx&&this.timeoutMs>n-r.timestamp){if(this.clicks.push({x:e,y:t,timestamp:n}),this.clicks.length===this.clickCount)return!0}else this.clicks=[{x:e,y:t,timestamp:n}];return!1}},og=`$copy_autocapture`,sg=Z(`[AutoCapture]`);function cg(e,t){return t.length>e?t.slice(0,e)+`...`:t}function lg(e){if(e.previousElementSibling)return e.previousElementSibling;var t=e;do t=t.previousSibling;while(t&&!Uf(t));return t}function ug(e,t){var n,r=t.e,i=t.maskAllElementAttributes,a=t.maskAllText,o=t.elementAttributeIgnoreList,s=t.elementsC
12hainAsString,c=t.disableCaptureUrlHashes;if(!Uf(e))return{props:{}};for(var l=[e],u=new Set([e]),d=e;d.parentNode&&!Wf(d,`body`)&&qf>l.length;)if(Kf(d.parentNode)){var f=d.parentNode.host;if(u.has(f))break;u.add(f),l.push(f),d=f}else{if(!Uf(d.parentNode)||u.has(d.parentNode))break;u.add(d.parentNode),l.push(d.parentNode),d=d.parentNode}var p,m,h=[],g={},_=!1,v=!1;if(cf(l,(e=>{var t=fp(e);if(Wf(e,`a`)){var n=e.getAttribute(`href`);_=!!(t&&n&&bp(n))&&(c?Xl(n):n)}q(Xf(e),`ph-no-capture`)&&(v=!0),h.push(function(e,t,n,r,i){i===void 0&&(i=!1);var a=e.tagName.toLowerCase(),o={tag_name:a};ep.indexOf(a)>-1&&!n&&(o.$el_text=a.toLowerCase()===`a`||a.toLowerCase()===`button`?cg(1024,xp(e)):cg(1024,Qf(e)));var s=Xf(e);s.length>0&&(o.classes=s.filter((function(e){return e!==``}))),cf(e.attributes,(function(n){var a;if((!pp(e)||[`name`,`id`,`class`,`aria-label`].indexOf(n.name)!==-1)&&(r==null||!r.includes(n.name))&&!t&&bp(n.value)&&(!Dc(a=n.name)||a.substring(0,10)!==`_ngcontent`&&a.substring(0,7)!==`_nghost`)){var s=n.value;n.name===`class`&&(s=Jf(s).join(` `)),o[`attr__`+n.name]=cg(1024,n.name===`href`&&i?Xl(s):s)}}));for(var c=1,l=1,u=e;u=lg(u);)c++,u.tagName===e.tagName&&l++;return o.nth_child=c,o.nth_of_type=l,o}(e,i,a,o,c)),lf(g,function(e){if(!fp(e))return{};var t={};return cf(e.attributes,(function(e){if(e.name&&e.name.indexOf(`data-ph-capture-attribute`)===0){var n=e.name.replace(`data-ph-capture-attribute-`,``),r=e.value;n&&r&&bp(r)&&(t[n]=r)}})),t}(e))})),v)return{props:{},explicitNoCapture:v};if(a||(h[0].$el_text=Wf(e,`a`)||Wf(e,`button`)?xp(e):Qf(e)),_){var y;h[0].attr__href=_;var b=zp(_)?.host,x=U==null||(y=U.location)==null?void 0:y.host;b&&x&&b!==x&&(p=_)}return{props:lf({$event_type:r.type,$ce_version:1},s?{}:{$elements:h},{$elements_chain:(m=h,function(e){return e.map((e=>{var t=``;if(e.tag_name&&(t+=e.tag_name),e.attr_class)for(var n of(e.attr_class.sort(),e.attr_class))t+=`.`+n.replace(/"/g,``);var r=K({},e.text?{text:e.text}:{},{"nth-child":e.nth_child??0,"nth-of-type":e.nth_of_type??0},e.href?{href:e.href}:{},e.attr_id?{attr_id:e.attr_id}:{},e.attributes),i={};return uf(r).sort(((e,t)=>e[0].localeCompare(t[0]))).forEach((e=>{var t=e[1];return i[Cp(e[0].toString())]=Cp(t.toString())})),(t+=`:`)+uf(i).map((e=>e[0]+`="`+e[1]+`"`)).join(``)})).join(`;`)}(function(e){return e.map((e=>{var t={text:e.$el_text?.slice(0,400),tag_name:e.tag_name,href:e.attr__href?.slice(0,2048),attr_class:wp(e),attr_id:e.attr__id,nth_child:e.nth_child,nth_of_type:e.nth_of_type,attributes:{}};return uf(e).filter((e=>e[0].indexOf(`attr__`)===0)).forEach((e=>t.attributes[e[0]]=e[1])),t}))}(m)))},(n=h[0])!=null&&n.$el_text?{$el_text:h[0]?.$el_text}:{},p&&r.type===`click`?{$external_click_url:p}:{},g)}}var dg=Z(`[ExceptionAutocapture]`),fg=()=>{},pg=Z(`[TracingHeaders]`),mg=Z(`[Web Vitals]`),hg=9e5,gg=`disabled`,_g=`lazy_loading`,vg=`awaiting_config`,yg=`missing_config`;Z(`[SessionRecording]`),Z(`[SessionRecording]`);var bg=`[SessionRecording]`,xg=Z(bg),Sg=Z(`[Heatmaps]`);function Cg(e){return Tc(e)&&`clientX`in e&&`clientY`in e&&jc(e.clientX)&&jc(e.clientY)}var wg=Z(`[Product Tours]`),Tg=e=>{var t;return!e.config.disable_product_tours&&!((t=e.persistence)==null||!t.get_property(od))},Eg=[`$set_once`,`$set`],Dg=Z(`[SiteApps]`),Og=`Error while initializing PostHog app with config id `;function kg(e,t,n){if(Ac(e))return!1;switch(n){case`exact`:return e===t;case`contains`:var r=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`).replace(/_/g,`.`).replace(/%/g,`.*`);return new RegExp(r,`i`).test(e);case`regex`:try{return new RegExp(t).test(e)}catch{return!1}default:return!1}}var Ag=class{constructor(e){this.Fn=new xh,this.An=(e,t)=>this.Ln(e,t)&&this.$n(e,t)&&this.Nn(e,t)&&this.Dn(e,t),this.Ln=(e,t)=>t==null||!t.event||e?.event===t?.event,this._instance=e,this.qn=new Set,this.jn=new Set}init(){var e;J(this._instance?._addCaptureHook)||(e=this._instance)==null||e._addCaptureHook(((e,t)=>{this.on(e,t)}))}register(e){var t;if(!J(this._instance?._addCaptureHook)&&(e.forEach((e=>{var t,n;(t=this.jn)==null||t.add(e),(n=e.steps)==null||n.forEach((e=>{var t;(t=this.qn)==null||t.add(e?.event||``)}))})),(t=this._instance)!=null&&t.autocapture)){var n,r=new Set;e.forEach((e=>{var t;(t=e.steps)==null||t.forEach((e=>{e!=null&&e.selector&&r.add(e?.selector)}))}
12)),(n=this._instance)==null||n.autocapture.setElementSelectors(r)}}on(e,t){t!=null&&e.length!=0&&(this.qn.has(e)||this.qn.has(t.event))&&this.jn&&this.jn?.size>0&&this.jn.forEach((e=>{this.Hn(t,e)&&this.Fn.emit(`actionCaptured`,e.name)}))}Bn(e){this.onAction(`actionCaptured`,(t=>e(t)))}Hn(e,t){if(t?.steps==null)return!1;for(var n of t.steps)if(this.An(e,n))return!0;return!1}onAction(e,t){return this.Fn.on(e,t)}$n(e,t){if(t!=null&&t.url){var n,r=e==null||(n=e.properties)==null?void 0:n.$current_url;if(!r||typeof r!=`string`||!kg(r,t.url,t.url_matching||`contains`))return!1}return!0}Nn(e,t){return!!this.Un(e,t)&&!!this.zn(e,t)&&!!this.Vn(e,t)}Un(e,t){var n;if(t==null||!t.href)return!0;var r=this.Wn(e);if(r.length>0)return r.some((e=>kg(e.href,t.href,t.href_matching||`exact`)));var i,a=(e==null||(n=e.properties)==null?void 0:n.$elements_chain)||``;return!!a&&kg((i=a.match(/(?::|")href="(.*?)"/))?i[1]:``,t.href,t.href_matching||`exact`)}zn(e,t){var n;if(t==null||!t.text)return!0;var r=this.Wn(e);if(r.length>0)return r.some((e=>kg(e.text,t.text,t.text_matching||`exact`)||kg(e.$el_text,t.text,t.text_matching||`exact`)));var i,a,o,s=(e==null||(n=e.properties)==null?void 0:n.$elements_chain)||``;return!!s&&(i=function(e){for(var t,n=[],r=/(?::|")text="(.*?)"/g;!Ac(t=r.exec(e));)n.includes(t[1])||n.push(t[1]);return n}(s),a=t.text,o=t.text_matching||`exact`,i.some((e=>kg(e,a,o))))}Vn(e,t){var n,r;if(t==null||!t.selector)return!0;var i=e==null||(n=e.properties)==null?void 0:n.$element_selectors;if(i!=null&&i.includes(t.selector))return!0;var a=(e==null||(r=e.properties)==null?void 0:r.$elements_chain)||``;if(t.selector_regex&&a)try{return new RegExp(t.selector_regex).test(a)}catch{return!1}return!1}Wn(e){var t;return(e==null||(t=e.properties)==null?void 0:t.$elements)==null?[]:e?.properties.$elements}Dn(e,t){return t==null||!t.properties||t.properties.length===0||Ah(t.properties.reduce(((e,t)=>{var n=Cc(t.value)?t.value.map(String):t.value==null?[]:[String(t.value)];return e[t.key]={values:n,operator:t.operator||`exact`},e}),{}),e?.properties)}},jg=class{constructor(e){var t;this.Zn=[],this._instance=e,this.Gn=new Map,this.Qn=new Map,this.Jn=new Map,(t=this._instance)==null||t.onSessionId==null||t.onSessionId((e=>this.Kn(e)))}Yn(e,t){return!!e&&Ah(e.propertyFilters,t?.properties)}Xn(e,t){var n=new Map;return e.forEach((e=>{var r;(r=e.conditions)==null||(r=r[t])==null||(r=r.values)==null||r.forEach((t=>{if(t!=null&&t.name){var r=n.get(t.name)||[];r.push(e.id),n.set(t.name,r)}}))})),n}es(e,t,n){var r=(n===dm.Activation?this.Gn:this.Qn).get(e),i=[];return this.ts((e=>{i=e.filter((e=>r?.includes(e.id)))})),i.filter((r=>{var i,a=(i=r.conditions)==null||(i=i[n])==null||(i=i.values)==null?void 0:i.find((t=>t.name===e));return this.Yn(a,t)}))}register(e){J(this._instance?._addCaptureHook)||(this.rs(e),this.ns(e))}ns(e){var t=e.filter((e=>{var t;return e.conditions?.actions&&((t=e.conditions)==null||(t=t.actions)==null||(t=t.values)==null?void 0:t.length)>0}));t.length!==0&&(this.ss??(this.ss=new Ag(this._instance),this.ss.init(),this.ss.Bn((e=>{this.onAction(e)}))),t.forEach((e=>{var t,n,r,i,a;e.conditions&&(t=e.conditions)!=null&&t.actions&&(n=e.conditions)!=null&&(n=n.actions)!=null&&n.values&&((r=e.conditions)==null||(r=r.actions)==null||(r=r.values)==null?void 0:r.length)>0&&((i=this.ss)==null||i.register(e.conditions.actions.values),(a=e.conditions)==null||(a=a.actions)==null||(a=a.values)==null||a.forEach((t=>{if(t&&t.name){var n=this.Jn.get(t.name);n&&n.push(e.id),this.Jn.set(t.name,n||[e.id])}})))})))}rs(e){var t,n=e.filter((e=>{var t;return e.conditions?.events&&((t=e.conditions)==null||(t=t.events)==null||(t=t.values)==null?void 0:t.length)>0})),r=e.filter((e=>{var t;return e.conditions?.cancelEvents&&((t=e.conditions)==null||(t=t.cancelEvents)==null||(t=t.values)==null?void 0:t.length)>0}));n.length===0&&r.length===0||((t=this._instance)==null||t._addCaptureHook(((e,t)=>{this.onEvent(e,t)})),this.Gn=this.Xn(e,dm.Activation),this.Qn=this.Xn(e,dm.Cancellation))}onEvent(e,t){var n,r,i=this.os(),a=(t==null||(n=t.properties)==null?void 0:n.$survey_id)||(t==null||(r=t.properties)==null?void 0:r.$product_tour_id);if(a&&this.getActivatedIds().includes(a)){var o=this.ls(e,a);if(o===`consume`)return i.info(`event consumed activated item, remov
12ing it`,{event:e,itemId:a}),void this.us([a]);if(o===`persist`)return i.info(`shown item promoted to persisted activation`,{event:e,itemId:a}),void this.hs(a)}if(this.Qn.has(e)){var s=this.es(e,t,dm.Cancellation);s.length>0&&(i.info(`cancel event matched, cancelling items`,{event:e,itemsToCancel:s.map((e=>e.id))}),this.us(s.map((e=>e.id))),s.forEach((e=>this.ds(e.id))))}if(this.Gn.has(e)){i.info(`event name matched`,{event:e,eventPayload:t,items:this.Gn.get(e)});var c=this.es(e,t,dm.Activation);this.cs(c.map((e=>e.id)))}}onAction(e){this.Jn.has(e)&&this.cs(this.Jn.get(e)||[])}cs(e){e.length!==0&&(this.Zn=[...new Set([...this.Zn,...e])],this.os().info(`updating activated items`,{activatedItems:this.getActivatedIds()}))}hs(e){this.Zn=this.Zn.filter((t=>t!==e));var t=this.vs();t.includes(e)||(this.fs([...t,e]),this.ps())}us(e){var t=new Set(e);this.Zn=this.Zn.filter((e=>!t.has(e)));var n=this.gs(),r=n.filter((e=>!t.has(e)));r.length!==n.length&&(this.fs(r),r.length===0&&this.ys())}gs(){var e,t=this.bs();return((e=this._instance)==null||(e=e.persistence)==null?void 0:e.props[t])||[]}vs(){var e,t,n=this.gs();if(n.length===0)return[];var r=(e=this._instance)==null||(e=e.persistence)==null?void 0:e.props[this._s()],i=(t=this._instance)==null||t.get_session_id==null?void 0:t.get_session_id();return i&&r===i?n:[]}ps(){var e,t=(e=this._instance)==null||e.get_session_id==null?void 0:e.get_session_id();t&&this.ws(t)}ys(){this.xs()}Kn(e){var t,n=(t=this._instance)==null||(t=t.persistence)==null?void 0:t.props[this._s()];n&&n!==e&&(this.gs().length>0&&this.fs([]),this.ys())}getActivatedIds(){return[...new Set([...this.vs(),...this.Zn])].filter((e=>!this.ks(e)))}reset(){this.Zn=[],this.gs().length>0&&this.fs([]),this.ys()}getEventToItemsMap(){return this.Gn}Ss(){return this.ss}},Mg=class extends jg{constructor(e){super(e)}bs(){return kd}_s(){return Ad}Cs(){return pm.SHOWN}ts(e){var t;(t=this._instance)==null||t.getSurveys(e)}ds(e){var t;(t=this._instance)==null||t.cancelPendingSurvey(e)}os(){return Ih}fs(e){var t;(t=this._instance)==null||(t=t.persistence)==null||t.register({[kd]:e})}ws(e){var t;(t=this._instance)==null||(t=t.persistence)==null||t.register({[Ad]:e})}xs(){var e;(e=this._instance)==null||(e=e.persistence)==null||e.unregister(Ad)}ks(){return!1}ls(e,t){var n;return this.ts((e=>{n=e.find((e=>e.id===t))})),!n||function(e){var t;return Fh(e)&&!((t=e.conditions)==null||(t=t.events)==null||!t.repeatedActivation)||e.schedule===`always`}(n)?e===pm.SHOWN?`consume`:`ignore`:e===pm.SHOWN?`persist`:e===pm.DISMISSED||e===pm.SENT?`consume`:`ignore`}getSurveys(){return this.getActivatedIds()}getEventToSurveys(){return this.getEventToItemsMap()}},Ng=`SDK is not enabled or survey functionality is not yet loaded`,Pg=`Disabled. Not loading surveys.`,Fg=U!=null&&U.location?Hp(U.location.hash,`__posthog`)||Hp(location.hash,`state`):null,Ig=`_postHogToolbarParams`,Lg=Z(`[Toolbar]`),Rg=Z(`[FeatureFlags]`),zg=Z(`[FeatureFlags]`,{debugEnabled:!0}),Bg=`" failed. Feature flags didn't load in time.`,Vg=e=>{for(var t={},n=0;e.length>n;n++)t[e[n]]=!0;return t},Hg=e=>{var t={};for(var n of uf(e||{})){var r=n[1];r&&(t[n[0]]=r)}return t},Ug=Z(`[Error tracking]`),Wg=`Refusing to render web experiment since the viewer is a likely bot`,Gg={icontains:(e,t)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,not_icontains:(e,t)=>t.toLowerCase().indexOf(e.toLowerCase())===-1,regex:(e,t)=>Eh(t,e),not_regex:(e,t)=>!Eh(t,e),exact:(e,t)=>t===e,is_not:(e,t)=>t!==e},Kg=class e{get Te(){return this._instance.config}constructor(t){var n=this;this.getWebExperimentsAndEvaluateDisplayLogic=function(t){t===void 0&&(t=!1),n.getWebExperiments((t=>{e.Ms(`retrieved web experiments from the server`),n.Is=new Map,t.forEach((t=>{if(t.feature_flag_key){var r;n.Is&&(e.Ms(`setting flag key `,t.feature_flag_key,` to web experiment `,t),(r=n.Is)==null||r.set(t.feature_flag_key,t));var i=n._instance.getFeatureFlag(t.feature_flag_key);Dc(i)&&t.variants[i]&&n.Ts(t.name,i,t.variants[i].transforms)}else if(t.variants)for(var a in t.variants){var o=t.variants[a];e.Es(o,n._instance)&&n.Ts(t.name,a,o.transforms)}}))}),t)},this._instance=t,this._instance.onFeatureFlags((e=>{this.onFeatureFlags(e)}))}initialize(){}onFeatureFlags(t){if(this._is_bot())e.Ms(Wg);else if(!this.Te.disable_web_experiments){if(Ac(this.Is))return this.Is=new Map,this.loadIfEnabled(),void this.previewWebExperiment();e.Ms(`applying feature flags`,t),t.forEach((e=>{var t;if(this.Is&&(t=this.Is)!=null&&t.has(e)){var n=this._instance.getFeatureFlag(e),r=this.Is?.get(e);n&&r!=null&&r.variants[n]&&this.Ts(r.name,n,r.variants[n].transforms)}}))}}previewWebExperiment(){var t=e.getWindowLocation();if(t!=null&&t.search){var n=Bp(t?.search,`__experiment_id`),r=Bp(t?.search,`__experiment_variant`);n&&r&&(e.Ms(`previewing web experiments `+n+` && `+r),this.getWebExperiments((e=>{this.Rs(parseInt(n),r,e)}),!1,!0))}}loadIfEnabled(){this.Te.disable_web_experiments||this.getWebExperimentsAndEvaluateDisplayLogic()}
12getWebExperiments(e,t,n){if(this.Te.disable_web_experiments&&!n)return e([]);var r=this._instance.get_property(`$web_experiments`);if(r&&!t)return e(r);this._instance._send_request({url:this._instance.requestRouter.endpointFor(`api`,`/api/web_experiments/?token=`+this.Te.token),method:`GET`,timestampMode:`query`,callback:t=>e(t.statusCode===200&&t.json&&t.json.experiments||[])})}Rs(t,n,r){var i=r.filter((e=>e.id===t));i&&i.length>0&&(e.Ms(`Previewing web experiment [`+i[0].name+`] with variant [`+n+`]`),this.Ts(i[0].name,n,i[0].variants[n].transforms))}static Es(t,n){return!Ac(t.conditions)&&e.Ps(t,n)&&e.Os(t)}static Ps(t,n){if(Ac(t.conditions)||Ac(t.conditions?.url))return!0;var r=e.getWindowLocation();if(r){var i,a=Lf(n,r.href);return(i=t.conditions)==null||!i.url||Gg[t.conditions?.urlMatchType??`icontains`](t.conditions.url,a)}return!1}static getWindowLocation(){return U?.location}static Os(e){if(Ac(e.conditions)||Ac(e.conditions?.utm))return!0;var t=Xp();if(t.utm_source){var n,r,i,a,o,s,c,l,u=(n=e.conditions)==null||(n=n.utm)==null||!n.utm_campaign||((r=e.conditions)==null||(r=r.utm)==null?void 0:r.utm_campaign)==t.utm_campaign,d=(i=e.conditions)==null||(i=i.utm)==null||!i.utm_source||((a=e.conditions)==null||(a=a.utm)==null?void 0:a.utm_source)==t.utm_source,f=(o=e.conditions)==null||(o=o.utm)==null||!o.utm_medium||((s=e.conditions)==null||(s=s.utm)==null?void 0:s.utm_medium)==t.utm_medium,p=(c=e.conditions)==null||(c=c.utm)==null||!c.utm_term||((l=e.conditions)==null||(l=l.utm)==null?void 0:l.utm_term)==t.utm_term;return u&&f&&p&&d}return!1}static Ms(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;t>r;r++)n[r-1]=arguments[r];X.info(`[WebExperiments] `+e,n)}Ts(t,n,r){this._is_bot()?e.Ms(Wg):n===`control`?e.Ms(`Control variants leave the page unmodified.`):r.forEach((r=>{r.selector&&(e.Ms(`applying transform of variant `+n+` for experiment `+t+` `,r),(document?.querySelectorAll(r.selector))?.forEach((e=>{var t=e;r.html&&(t.innerHTML=r.html),r.css&&t.setAttribute(`style`,r.css)})))}))}_is_bot(){return Bs&&this._instance?wh(Bs,this.Te.custom_blocked_useragents):void 0}},qg=Z(`[Conversations]`),Jg=`Conversations not available yet.`,Yg=`console`,Xg={featureFlags:class{constructor(e){this.Fs=!1,this.As=!1,this.Ls=!1,this.$s=!1,this.Ns=!1,this.Ds=!1,this.qs=!1,this.js=!1,this.Hs=0,this.Bs=()=>{var e=this.Us();this.Hs=0,e&&this.reloadFeatureFlags()},this._instance=e,this.featureFlagEventHandlers=[],U&&gf(U,`online`,this.Bs)}destroy(){U?.removeEventListener(`online`,this.Bs)}get Te(){return this._instance.config}get mi(){return this._instance.persistence}zs(e){return this._instance.get_property(e)}Vs(){var e;return(e=this.mi?._r(this.Te.feature_flag_cache_ttl_ms))!=null&&e}Ws(){return!!this.Vs()&&(this.js||this.Ls||(this.js=!0,Rg.warn(`Feature flag cache is stale, triggering refresh...`),this.reloadFeatureFlags()),!0)}Zs(){var e=this.Te.evaluation_contexts??this.Te.evaluation_environments;return!this.Te.evaluation_environments||this.Te.evaluation_contexts||this.qs||(Rg.warn(`evaluation_environments is deprecated. Use evaluation_contexts instead. evaluation_environments will be removed in a future version.`),this.qs=!0),e!=null&&e.length?e.filter((e=>{var t=e&&typeof e==`string`&&e.trim().length>0;return t||Rg.error(`Invalid evaluation context found:`,e,`Expected non-empty string`),t})):[]}Gs(){return this.Zs().length>0}Qs(){var e=this.Te.flag_keys;if(!J(e)){if(Cc(e))return e.filter((e=>{var t=e&&typeof e==`string`&&e.trim().length>0;return t||Rg.error(`Invalid flag key found:`,e,`Expected non-empty string`),t}));Rg.error(`Invalid flag_keys found:`,e,`Expected array of non-empty strings`)}}initialize(){var e=this._instance.config,t=e.bootstrap?.featureFlags??{};if(Object.keys(t).length){var n=e.bootstrap?.featureFlagPayloads??{},r=Object.keys(t).filter((e=>!!t[e])).reduce(((e,n)=>(e[n]=t[n]||!1,e)),{}),i=Object.keys(n).filter((e=>r[e])).reduce(((e,t)=>(n[t]&&(e[t]=n[t]),e)),{});this.receivedFeatureFlags({featureFlags:r,featureFlagPayloads:i})}}updateFlags(e,t,n){var r,i,a=n!=null&&n.merge&&(r=this.zs(gd))!=null?r:{},o=n!=null&&n.merge&&(i=this.zs(bd))!=null?i:{},s=K({},a,e),c=K({},o,t),l={};for(var u of Object.entries(s)){var d=u[0],f=u[1];l[d]={key:d,enabled:ec(f),variant:tc(f),reason:void 0,metadata:J(c?.[d])?void 0:{id:0,version:void 0,description:void 0,payload:c[d]}}}this.receivedFeatureFlags({flags:l})}get hasLoadedFlags(){return this.As}getFlags(){return Object.keys(this.getFlagVariants())}getFlagsWithDetails(){var e=this.zs(yd),t=this.zs(Cd),n=this.zs(wd);if(!n&&!t)return e||{};var r=lf({},e||{});for(var i of[...new Set([...Object.keys(n||{}),...Object.keys(t||{})])]){var a,o,s=r[i],c=t?.[i],l=J(c)?(a=s?.enabled)!=null&&a:!!c,u=J(c)?s.variant:typeof c==`string`?c:void 0,d=n?.[i],f=K({},s,{enabled:l,variant:l?u??s?.variant:void 0});l!==s?.enabled&&(f.original_enabled=s?.enabled),u!==s?.variant&&(f.original_variant=s?.variant),d&&(f.metadata=K({},s?.metadata,{payload:d,original_payload:s==null||(o=s.metadata)==null?void 0:o.payload})),r[i]=f}return this.Fs||=(Rg.warn(` Overriding feature flag details!`,{flagDetails:e,overriddenPayloads:n,finalDetails:r}),!0),r}getAllFeatureFlags(){var e=this.getFlagVariants(),t=this.getFlagPayloads();return Object.keys(e).map((n=>{var r=e[n];return{key:n,enabled:ec(r),variant:tc(r),payload:$s(t[n])}}))}getFlagVariants(){var e=this.zs(gd),t=this.zs(Cd);if(!t)return e||{};for(var n=lf({},e),r=Object.keys(t),i=0;r.length>i;i++)n[r[i]]=t[r[i]];return this.Fs||=(Rg.warn(` Overriding feature flags!`,{enabledFlags:e,overriddenFlags:t,finalFlags:n}),!0),n}getFlagPayloads(){var e=this.zs(bd),t=this.zs(wd);if(!t)return e||{};for(var n=lf({},e||{}),r=Object.keys(t),i=0;r.length>i;i++)n[r[i]]=t[r[i]];return this.Fs||=(Rg.warn(` Overriding feature flag payloads!`,{flagPayloads:e,overriddenPayloads:t,finalPayloads:n}),!0),n}reloadFeatureFlags(){this.$s||this.Te.advanced_disable_feature_flags||this.Us()||this.Js||(this._instance.en.emit(`featureFlagsReloading`,!0),this.Js=setTimeout((()=>{this.Ks()}),5))}Ys(){clearTimeout(this.Js),this.Js=void 0}ensureFlagsLoaded(){this.As||this.Ls||this.Js||this.reloadFeatureFlags()}setAnonymousDistinctId(e){this.$anon_distinct_id=e}setReloadingPaused(e){this.$s=e}Ks(e){if(this.Ys(),!this._instance.Ur()&&!this.Us())if(this.Ls)this.Ns=!0;else{var t=this.Te.token,n=this.zs(Yu),r={token:t,distinct_id:this._instance.get_distinct_id(),groups:this._instance.getGroups(),$anon_distinct_id:this.$anon_distinct_id,person_properties:K({},this.mi?.get_initial_props()||{},this.zs(Td)||{},{$lib:Ys.LIB_NAME,$lib_version:Ys.LIB_VERSION}),group_properties:this.zs(Ed),timezone:im()};kc(n)||J(n)||(r.$device_id=n),(e!=null&&e.disableFlags||this.Te.advanced_disable_feature_flags)&&(r.disable_flags=!0),this.Gs()&&(r.evaluation_contexts=this.Zs());var i=this.Qs();J(i)||(r.flag_keys=i);var a=!!this.Te.advanced_only_evaluate_survey_feature_flags,o=this._instance.requestRouter.endpointFor(`flags`,`/flags/?v=2`+(this.Te.advanced_only_evaluate_survey_feature_flags?`&only_evaluate_survey_feature_flags=true`:``));this.Ls=!0,this._instance._send_request({method:`POST`,url:o,data:r,compression:this.Te.disable_compression?void 0:um.Base64,timestampMode:`body`,timeout:this.Te.feature_flag_request_timeout_ms,callback:e=>{var t,n,i,o=!0;if(this.Xs(e.statusCode),e.statusCode===200&&(this.Ns||(this.$anon_distinct_id=void 0),o=!1),this.Ls=!1,!r.disable_flags||this.Ns){this.Ds=!o;var s=[];e.error?e.error instanceof Error?s.push(e.error.name===`AbortError`?`timeout`:`connection_error`):s.push(`unknown_error`):e.statusCode!==200&&s.push(`api_error_`+e.statusCode),(t=e.json)!=null&&t.errorsWhileComputingFlags&&s.push(`errors_while_computing_flags`);var c=!((n=e.json)==null||(n=n.quotaLimited)==null||!n.includes(`feature_flags`));c&&s.push(`quota_limited`),(i=this.mi)==null||i.register({[Pd]:s}),c?Rg.warn(`You have hit your feature flags quota limit, and will not be able to load feature flags until the quota is reset. Please visit https://posthog.com/docs/billing/limits-alerts to learn more.`):(r.disable_flags||this.receivedFeatureFlags(e.json??{},o,{partialResponse:a}),this.Ns&&(this.Ns=!1,this.Ks()))}}})}}Us(){return Up(this.Hs,3)}Xs(e){this.Hs=Wp(e,this.Hs,3,(()=>Rg.warn(`Feature flag requests are failing before receiving an HTTP response; this can happen due to network issues, CORS, browser blocking, or ad blockers. Stopped refreshing feature flags; will try again when connectivity changes.`)))}getFeatureFlag(e,t){if(t===void 0&&(t={}),!t.fresh||this.Ds)if(this.As||this.getFlags()&&this.getFlags().length>0){if(!this.Ws()){var n=this.getFeatureFlagResult(e,t);return n?.variant??n?.enabled}}else Rg.warn(`getFeatureFlag for key "`+e+Bg)}getFeatureFlagDetails(e){return this.getFlagsWithDetails()[e]}getFeatureFlagPayload(e){return this.getFeatureFlagResult(e,{send_event:!1})?.payload}getFeatureFlagResult(e,t){if(t===void 0&&(t={}),!t.fresh||this.Ds)if(this.As||this.getFlags()&&this.getFlags().length>0){if(!this.Ws()){var n=this.getFlagVariants(),r=e in n,i=n[e],a=this.getFlagPayloads()[e],o=String(i),s=this.zs(xd)||void 0,c=this.zs(Fd)||void 0,l=this.zs(Md)||{};if(this.Te.advanced_feature_flags_dedup_per_session){var u,d=this._instance.get_session_id(),f=this.zs(Nd);d&&d!==f&&(l={},(u=this.mi)==null||u.register({[Md]:l,[Nd]:d}))}if((t.send_event||!(`send_event`in t))&&(!(e in l)||!l[e].includes(o))){var p,m,h,g,_,v,y,b,x;Cc(l[e])?l[e].push(o):l[e]=[o],(p=this.mi)==null||p.register({[Md]:l});var S=this.getFeatureFlagDetails(e),C=[...this.zs(Pd)??[]];J(i)&&C.push(`flag_missing`);var w={$feature_flag:e,$feature_flag_response:i,$feature_flag_payload:a||null,$feature_flag_request_id:s,$feature_flag_evaluated_at:c,$feature_flag_bootstrapped_response:((m=this.Te.bootstrap)==null||(m=m.featureFlags)==null?void 0:m[e])||null,$feature_flag_bootstrapped_payload:((h=this.Te.bootstrap)==null||(h=h.featureFlagPayloads)==null?void 0:h[e])||null,$used_bootstrap_value:!this.Ds};J(S==null||(g=S.metadata)==null?void 0:g.has_experiment)||(w.$feature_flag_has_experiment=S.metadata.has_experiment),J(S==null||(_=S.metadata)==null?void 0:_.version)||(w.$feature_flag_version=S.metadata.version);var E,ee=(S==null||(v=S.reason)==null?void 0:v.description)??(S==null||(y=S.reason)==null?void 0:y.code);ee&&(w.$feature_flag_reason=ee),S!=null&&(b=S.metadata)!=null&&b.id&&(w.$feature_flag_id=S.metadata.id),J(S?.original_variant)&&J(S?.original_enabled)||(w.$feature_flag_original_response=J(S.original_variant)?S.original_enabled:S.original_variant),S!=null&&(x=S.metadata)!=null&&x.original_payload&&(w.$feature_flag_original_payload=S==null||(E=S.metadata)==null?void 0:E.original_payload),C.length&&(w.$feature_flag_error=C.join(`,`)),this._instance.capture(`$feature_flag_called`,w)}if(r)return{key:e,enabled:!!i,variant:typeof i==`string`?i:void 0,payload:$s(a)}}}else Rg.warn(`getFeatureFlagResult for key "`+e+Bg)}getRemoteConfigPayload(e,t){var n=this.Te.token,r={distinct_id:this._instance.get_distinct_id(),token:n,person_properties:{$lib:Ys.LIB_NAME,$lib_version:Ys.LIB_VERSION}};this.Gs()&&(r.evaluation_contexts=this.Zs());var i=this.Qs();J(i)||(r.flag_keys=i),this._instance._send_request({method:`POST`,url:this._instance.requestRouter.endpointFor(`flags`,`/flags/?v=2`),data:r,compression:this.Te.disable_compression?void 0:um.Base64,timestampMode:`body`,timeout:this.Te.feature_flag_request_timeout_ms,callback(n){var r=n.json?.featureFlagPayloads;t(r?.[e]||void 0)}})}isFeatureEnabled(e,t){if(t===void 0&&(t={}),t.fresh&&!this.Ds)return t.defaultValue;if(!(this.As||this.getFlags()&&this.getFlags().length>
120))return Rg.warn(`isFeatureEnabled for key "`+e+Bg),t.defaultValue;var n=this.getFeatureFlag(e,t);return J(n)?t.defaultValue:!!n}addFeatureFlagsHandler(e){this.featureFlagEventHandlers.push(e)}removeFeatureFlagsHandler(e){this.featureFlagEventHandlers=this.featureFlagEventHandlers.filter((t=>t!==e))}receivedFeatureFlags(e,t,n){if(this.mi){this.As=!0;var r=this.getFlagVariants(),i=this.getFlagPayloads(),a=this.getFlagsWithDetails();(function(e,t,n,r,i,a){n===void 0&&(n={}),r===void 0&&(r={}),i===void 0&&(i={});var o=(e=>{var t=e.flags;return t?(e.featureFlags=Object.fromEntries(Object.keys(t).map((e=>[e,t[e].variant??t[e].enabled]))),e.featureFlagPayloads=Object.fromEntries(Object.keys(t).filter((e=>t[e].enabled)).filter((e=>t[e].metadata?.payload)).map((e=>[e,t[e].metadata?.payload])))):e.featureFlags&&Rg.warn(`Using an older version of the feature flags endpoint. Please upgrade your PostHog server to the latest version`),e})(e),s=o.flags,c=o.featureFlags,l=o.featureFlagPayloads;if(c){var u=e.requestId,d=e.evaluatedAt;if(Cc(c)){Rg.warn(`v1 of the feature flags endpoint is deprecated. Please use the latest version.`);var f={};if(c)for(var p=0;c.length>p;p++)f[c[p]]=!0;t&&t.register({[_d]:c,[gd]:f,[Sd]:!1})}else{var m=c,h=l,g=s;if(a!=null&&a.partialResponse)m=K({},n,m),h=K({},r,h),g=K({},i,g);else if(e.errorsWhileComputingFlags)if(s){var _=new Set(Object.keys(s).filter((e=>{var t;return!((t=s[e])!=null&&t.failed)})));m=K({},n,Object.fromEntries(Object.entries(m).filter((e=>_.has(e[0]))))),h=K({},r,Object.fromEntries(Object.entries(h||{}).filter((e=>_.has(e[0]))))),g=K({},i,Object.fromEntries(Object.entries(g||{}).filter((e=>_.has(e[0])))))}else m=K({},n,m),h=K({},r,h),g=K({},i,g);t&&t.register(K({[_d]:Object.keys(Hg(m)),[gd]:m||{},[bd]:h||{},[yd]:g||{},[Sd]:!0===e.minimalFlagCalledEvents},u?{[xd]:u}:{},d?{[Fd]:d}:{}))}}})(e,this.mi,r,i,a,n),t||(this.js=!1),this.eo(t)}}override(e,t){t===void 0&&(t=!1),Rg.warn(`override is deprecated. Please use overrideFeatureFlags instead.`),this.overrideFeatureFlags({flags:e,suppressWarning:t})}overrideFeatureFlags(e){if(!this._instance.__loaded||!this.mi)return Rg.uninitializedWarning(`posthog.featureFlags.overrideFeatureFlags`);if(!1===e)return this.mi.unregister(Cd),this.mi.unregister(wd),this.eo(),zg.info(`All overrides cleared`);if(Cc(e)){var t=Vg(e);return this.mi.register({[Cd]:t}),this.eo(),zg.info(`Flag overrides set`,{flags:e})}if(e&&typeof e==`object`&&(`flags`in e||`payloads`in e)){var n,r=e;if(this.Fs=!!((n=r.suppressWarning)!=null&&n),`flags`in r){if(!1===r.flags)this.mi.unregister(Cd),zg.info(`Flag overrides cleared`);else if(r.flags){if(Cc(r.flags)){var i=Vg(r.flags);this.mi.register({[Cd]:i})}else this.mi.register({[Cd]:r.flags});zg.info(`Flag overrides set`,{flags:r.flags})}}`payloads`in r&&(!1===r.payloads?(this.mi.unregister(wd),zg.info(`Payload overrides cleared`)):r.payloads&&(this.mi.register({[wd]:r.payloads}),zg.info(`Payload overrides set`,{payloads:r.payloads}))),this.eo();return}if(e&&typeof e==`object`)return this.mi.register({[Cd]:e}),this.eo(),zg.info(`Flag overrides set`,{flags:e});Rg.warn(`Invalid overrideOptions provided to overrideFeatureFlags`,{overrideOptions:e})}onFeatureFlags(e){if(this.addFeatureFlagsHandler(e),this.As){var t=this.ro(),n=t.flags,r=t.flagVariants;try{e(n,r)}catch(e){Rg.error(`Error while running feature flags callback`,e)}}return()=>this.removeFeatureFlagsHandler(e)}updateEarlyAccessFeatureEnrollment(e,t,n){var r,i=(this.zs(vd)||[]).find((t=>t.flagKey===e)),a={[`$feature_enrollment/`+e]:t},o={$feature_flag:e,$feature_enrollment:t,$set:a};i&&(o.$early_access_feature_name=i.name),n&&(o.$feature_enrollment_stage=n),this._instance.capture(`$feature_enrollment_update`,o),this.setPersonPropertiesForFlags(a,!1);var s=K({},this.getFlagVariants(),{[e]:t});(r=this.mi)==null||r.register({[_d]:Object.keys(Hg(s)),[gd]:s}),this.eo()}getEarlyAccessFeatures(e,t,n){t===void 0&&(t=!1);var r=this.zs(vd),i=n?`&`+n.map((e=>`stage=`+e)).join(`&`):``;if(r&&!t)return e(r);this._instance._send_request({url:this._instance.requestRouter.endpointFor(`api`,`/api/early_access_features/?token=`+this.Te.token+i),method:`GET`,timestampMode:`query`,callback:t=>{var n,r;if(t.json){var i=t.json.earlyAccessFeatures;return(n=this.mi)==null||n.unregister(vd),(r=this.mi)==null||r.register({[vd]:i}),e(i)}}})}ro(){var e=this.getFlags(),t=this.getFlagVariants();return{flags:e.filter((e=>t[e])),flagVariants:Object.keys(t).filter((e=>t[e])).reduce(((e,n)=>(e[n]=t[n],e)),{})}}eo(e){var t=this.ro(),n=t.flags,r=t.flagVariants;
12this.featureFlagEventHandlers.forEach((t=>{try{t(n,r,{errorsLoading:e})}catch(e){Rg.error(`Error while running feature flags callback`,e)}}))}setPersonPropertiesForFlags(e,t){t===void 0&&(t=!0);var n=this.zs(Td)||{},r=e?.$set||(e!=null&&e.$set_once?{}:e),i=e?.$set_once,a={};if(i)for(var o in i)({}).hasOwnProperty.call(i,o)&&(o in n||(a[o]=i[o]));this._instance.register({[Td]:K({},n,a,r)}),t&&this._instance.reloadFeatureFlags()}unsetPersonPropertiesForFlags(e,t){t===void 0&&(t=!0);var n=K({},this.zs(Td)||{});e.forEach((e=>{delete n[e]})),this._instance.register({[Td]:n}),t&&this._instance.reloadFeatureFlags()}resetPersonPropertiesForFlags(e){e===void 0&&(e=!0),this._instance.unregister(Td),e&&this._instance.reloadFeatureFlags()}setGroupPropertiesForFlags(e,t){t===void 0&&(t=!0);var n=this.zs(Ed)||{};Object.keys(n).length!==0&&Object.keys(n).forEach((t=>{n[t]=K({},n[t],e[t]),delete e[t]})),this._instance.register({[Ed]:K({},n,e)}),t&&this._instance.reloadFeatureFlags()}resetGroupPropertiesForFlags(e){if(e){var t=this.zs(Ed)||{};this._instance.register({[Ed]:K({},t,{[e]:{}})})}else this._instance.unregister(Ed)}reset(){this.As=!1,this.Ls=!1,this.$s=!1,this.Ns=!1,this.Ds=!1,this.$anon_distinct_id=void 0,this.Ys(),this.Fs=!1,this.Hs=0}}},Zg={sessionRecording:class{get Te(){return this._instance.config}get mi(){return this._instance.persistence}get started(){var e;return!((e=this.io)==null||!e.isStarted)}get status(){return this.no===vg||this.no===yg?this.no:this.io?.status??this.no}constructor(e){if(this._forceAllowLocalhostNetworkCapture=!1,this.no=gg,this.so=void 0,this._instance=e,!this._instance.sessionManager)throw xg.error(`started without valid sessionManager`),Error(bg+` started without valid sessionManager. This is a bug.`);if(this.Te.cookieless_mode===Xd)throw Error(bg+` cannot be used with cookieless_mode="always"`)}initialize(){this.startIfEnabledOrStop()}get oo(){var e,t=!((e=this._instance.get_property(cd))==null||!e.enabled),n=!this.Te.disable_session_recording,r=this.Te.disable_session_recording||this._instance.consent.isOptedOut();return U&&t&&n&&!r}startIfEnabledOrStop(e){var t;if(!this.oo||(t=this.io)==null||!t.isStarted){var n=!J(Object.assign)&&!J(Array.from);this.oo&&n?(this.ao(e),xg.info(`starting`)):(this.no=gg,this.stopRecording())}}ao(e){var t,n,r;this.oo&&(this.no!==vg&&this.no!==yg&&(this.no=_g),G!=null&&(t=G.__PosthogExtensions__)!=null&&(t=t.rrweb)!=null&&t.record&&(n=G.__PosthogExtensions__)!=null&&n.initSessionRecording?this.lo(e):(r=G.__PosthogExtensions__)==null||r.loadExternalDependency==null||r.loadExternalDependency(this._instance,this.uo,(t=>{if(t)return xg.error(`could not load recorder`,t);this.lo(e)})))}stopRecording(){var e,t;(e=this.so)==null||e.call(this),this.so=void 0,(t=this.io)==null||t.stop()}ho(){var e,t;(e=this.so)==null||e.call(this),this.so=void 0,(t=this.io)==null||t.discard()}do(){var e,t;(e=this.mi)==null||e.unregister(hd),(t=this.mi)==null||t.unregister(ld)}co(e,t){if(Ac(e))return null;var n,r=jc(e)?e:parseFloat(e);return typeof(n=r)!=`number`||!Number.isFinite(n)||0>n||n>1?(xg.warn(t+` must be between 0 and 1. Ignoring invalid value:`,e),null):r}vo(e){if(this.mi){var t,n=this.mi,r=()=>{var t=!1===e.sessionRecording?void 0:e.sessionRecording,r=this.co(this.Te.session_recording?.sampleRate,`session_recording.sampleRate`),i=this.co(t?.sampleRate,`remote config sampleRate`),a=r??i;Ac(a)&&this.do();var o=t?.minimumDurationMilliseconds;n.register({[cd]:K({cache_timestamp:Date.now(),enabled:!!t},t,{networkPayloadCapture:K({capturePerformance:e.capturePerformance},t?.networkPayloadCapture),canvasRecording:{enabled:t?.recordCanvas,fps:t?.canvasFps,quality:t?.canvasQuality},sampleRate:a,minimumDurationMilliseconds:J(o)?null:o,endpoint:t?.endpoint,triggerMatchType:t?.triggerMatchType,masking:t?.masking,urlTriggers:t?.urlTriggers,version:t?.version,triggerGroups:t?.triggerGroups})})};r(),(t=this.so)==null||t.call(this),this.so=this._instance.sessionManager?.onSessionId(r)}}onRemoteConfig(e){var t=e.ok?e.config:void 0;t&&`sessionRecording`in t?!1===t.sessionRecording?(this.vo(t),this.ho()):(this.vo(t),this.startIfEnabledOrStop()):(this.no===vg&&(this.no=yg,xg.warn(`config refresh failed, recording will not start until page reload`)),this.startIfEnabledOrStop())}log(e,t){var n;t===void 0&&(t=`log`),(n=this.io)!=null&&n.log?this.io.log(e,t):xg.warn(`log called before recorder was ready`)}get uo(){var e,t,n=(e=this._instance)==null||(e=e.persistence)==null?void 0:e.get_property(cd);return(n==null||(t=n.scriptConfig)==null?void 0:t.script)||`lazy-recorder`}fo(){var e,t=this._instance.get_property(cd);if(!t)return!1;try{e=typeof t==`object`?t:JSON.parse(t)}catch(e){return xg.warn(`persisted remote config for session recording is invali
12d and will be ignored`,e),!1}var n=e.cache_timestamp??Date.now();return 36e5>=Date.now()-n}lo(e){var t;if((t=G.__PosthogExtensions__)==null||!t.initSessionRecording)return xg.warn(`Called on script loaded before session recording is available. This can be caused by adblockers.`),void this._instance.register_for_session({[qd]:!0});if(this.io||(this.io=G.__PosthogExtensions__?.initSessionRecording(this._instance),this.io._forceAllowLocalhostNetworkCapture=this._forceAllowLocalhostNetworkCapture),!this.fo()){if(this.no===yg||this.no===vg)return;this.no=vg,xg.info(`persisted remote config is stale, requesting fresh config before starting`),new xm(this._instance).load();return}this.no=_g,this.io.start(e)}onRRwebEmit(e){var t;(t=this.io)==null||t.onRRwebEmit==null||t.onRRwebEmit(e)}overrideLinkedFlag(){var e,t;this.io||(t=this.mi)==null||t.register({[dd]:!0}),(e=this.io)==null||e.overrideLinkedFlag()}overrideSampling(){var e,t;this.io||(t=this.mi)==null||t.register({[ud]:!0}),(e=this.io)==null||e.overrideSampling()}overrideTrigger(e){var t,n;this.io||(n=this.mi)==null||n.register({[e===`url`?fd:pd]:!0}),(t=this.io)==null||t.overrideTrigger(e)}get sdkDebugProperties(){return this.io?.sdkDebugProperties||{$recording_status:this.status}}tryAddCustomEvent(e,t){var n;return!((n=this.io)==null||!n.tryAddCustomEvent(e,t))}}},Qg={autocapture:class{constructor(e){this.po=!1,this.mo=null,this.yo=!1,this.bo=!1,this.instance=e,this.rageclicks=new ag(e.config.rageclick),this._o=null}initialize(){this.startIfEnabled()}get Te(){var e=Tc(this.instance.config.autocapture)?this.instance.config.autocapture:{};return e.url_allowlist=e.url_allowlist?.map((e=>new RegExp(e))),e.url_ignorelist=e.url_ignorelist?.map((e=>new RegExp(e))),e}wo(){if(this.isBrowserSupported()){if(U&&W){var e=e=>{e||=U?.event;try{this.xo(e)}catch(e){sg.error(`Failed to capture event`,e)}};if(gf(W,`submit`,e,{capture:!0}),gf(W,`change`,e,{capture:!0}),gf(W,`click`,e,{capture:!0}),this.Te.capture_copied_text){var t=e=>{e||=U?.event;try{this.xo(e,og)}catch(e){sg.error(`Failed to capture copy/cut event`,e)}};gf(W,`copy`,t,{capture:!0}),gf(W,`cut`,t,{capture:!0})}}}else sg.info(`Disabling Automatic Event Collection because this browser is not supported`)}startIfEnabled(){this.isEnabled&&!this.po&&(this.wo(),this.po=!0)}onRemoteConfig(e){if(this.yo=!0,e.ok){var t=e.config;t.elementsChainAsString&&(this.bo=t.elementsChainAsString);var n=t.autocapture_opt_out;Nc(n)&&(this.instance.persistence&&this.instance.persistence.register({[$u]:n}),this.mo=n),this.startIfEnabled()}else this.startIfEnabled()}setElementSelectors(e){this._o=e}getElementSelectors(e){var t,n=[];return(t=this._o)==null||t.forEach((t=>{(W?.querySelectorAll(t))?.forEach((r=>{e===r&&n.push(t)}))})),n}get isEnabled(){var e=this.instance.persistence?.props[$u],t=this.mo,n=this.instance.Ur()&&!this.yo;if(kc(t)&&!Nc(e)&&!n)return!1;var r=this.mo??!!e;return!!this.instance.config.autocapture&&!r}xo(e,t){if(t===void 0&&(t=`$autocapture`),this.isEnabled){var n,r=$f(e);Gf(r)&&(r=r.parentNode||null),t===`$autocapture`&&e.type===`click`&&e instanceof MouseEvent&&this.instance.config.rageclick&&(n=this.rageclicks)!=null&&n.isRageClick(e.clientX,e.clientY,e.timeStamp||new Date().getTime())&&lp(r,this.instance.config.rageclick)&&this.xo(e,`$rageclick`);var i=t===og;if(r&&function(e,t,n,r,i,a){if(!U||up(e)||n!=null&&n.url_allowlist&&!Yf(n.url_allowlist,a)||n!=null&&n.url_ignorelist&&Yf(n.url_ignorelist,a))return!1;if(n!=null&&n.dom_event_allowlist){var o=n.dom_event_allowlist;if(o&&!o.some((e=>t.type===e)))return!1}var s=dp(e,r),c=s.parentIsUsefulElement,l=s.targetElementList;if(!function(e,t){var n=t?.element_allowlist;if(J(n))return!0;var r,i=function(e){if(n.some((t=>e.tagName.toLowerCase()===t)))return{v:!0}};for(var a of e)if(r=i(a))return r.v;return!1}(l,n)||!tp(l,n?.css_selector_allowlist)||tp(l,n?.css_selector_ignorelist??rp))return!1;try{var u=U.getComputedStyle(e);if(u&&u.getPropertyValue(`cursor`)===`pointer`&&t.type===`click`)return!0}catch{}var d=e.tagName.toLowerCase();switch(d){case`html`:return!1;case`form`:return(i||[`submit`]).indexOf(t.type)>=0;case`input`:case`select`:case`textarea`:return(i||[`change`,`click`]).indexOf(t.type)>=0;default:return c?(i||[`click`]).indexOf(t.type)>=0:(i||[`click`]).indexOf(t.type)>=0&&(ep.indexOf(d)>-1||e.getAttribute(`contenteditable`)===`true`)}}(r,e,this.Te,i,i?[`copy`,`cut`]:void 0,this.instance)){var a=ug(r,{e,maskAllElementAttributes:this.instance.config.mask_all_element_attributes,maskAllText:this.instance.config.mask_all_text,elementAttributeIgnoreList:this.Te.element_attribute_ignorelist,elementsC
12hainAsString:this.bo,disableCaptureUrlHashes:this.instance.config.disable_capture_url_hashes}),o=a.props;if(a.explicitNoCapture)return!1;var s=this.getElementSelectors(r);if(s&&s.length>0&&(o.$element_selectors=s),t===og){var c,l=Zf(U==null||(c=U.getSelection())==null?void 0:c.toString()),u=e.type||`clipboard`;if(!l)return!1;o.$selected_content=l,o.$copy_type=u}return this.instance.capture(t,o),!0}}}isBrowserSupported(){return wc(W?.querySelectorAll)}},historyAutocapture:class{constructor(e){var t;this._instance=e,this.ko=(U==null||(t=U.location)==null?void 0:t.pathname)||``}initialize(){this.startIfEnabled()}get isEnabled(){return this._instance.config.capture_pageview===`history_change`}startIfEnabled(){this.isEnabled&&(X.info(`History API monitoring enabled, starting...`),this.monitorHistoryChanges())}stop(){this.So&&this.So(),this.So=void 0,X.info(`History API monitoring stopped`)}monitorHistoryChanges(){U&&U.history&&(this.Co(`pushState`),this.Co(`replaceState`),this.Mo())}Co(e){var t;if(U&&((t=U.history[e])==null||!t.__posthog_wrapped__)){var n=this;(function(e,t,n){try{if(!(t in e))return fg;var r={next:e[t]},i=n((function(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return r.next.apply(this,t)}));return wc(i)&&(i.prototype=i.prototype||{},Object.defineProperties(i,{__posthog_wrapped__:{enumerable:!1,value:!0},__posthog_layer__:{enumerable:!1,value:r}})),e[t]=i,()=>{if(e[t]!==i)for(var n=e[t];wc(n)&&n.__posthog_layer__;){var a=n.__posthog_layer__;if(a.next===i)return void(a.next=r.next);n=a.next}else e[t]=r.next}}catch{return fg}})(U.history,e,(t=>function(r,i,a){t.call(this,r,i,a),n.Io(e)}))}}Io(e){try{var t,n=U==null||(t=U.location)==null?void 0:t.pathname;if(!n)return;n!==this.ko&&this.isEnabled&&this._instance.capture(nf,{navigation_type:e}),this.ko=n}catch(t){X.error(`Error capturing `+e+` pageview`,t)}}Mo(){if(!this.So){var e=()=>{this.Io(`popstate`)};gf(U,`popstate`,e),this.So=()=>{U&&U.removeEventListener(`popstate`,e)}}}},heatmaps:class{get Te(){return this.instance.config}constructor(e){var t;this.To=!1,this.po=!1,this.Eo=null,this.instance=e,this.To=!((t=this.instance.persistence)==null||!t.props[ed]),this.rageclicks=new ag(e.config.rageclick)}initialize(){this.startIfEnabled()}get flushIntervalMilliseconds(){var e=5e3;return Tc(this.Te.capture_heatmaps)&&this.Te.capture_heatmaps.flush_interval_milliseconds&&(e=this.Te.capture_heatmaps.flush_interval_milliseconds),e}get isEnabled(){return Ac(this.Te.capture_heatmaps)?Ac(this.Te.enable_heatmaps)?this.To:this.Te.enable_heatmaps:!1!==this.Te.capture_heatmaps}startIfEnabled(){if(this.isEnabled){if(this.po)return;Sg.info(`starting...`),this.Ro(),this.xe()}else clearInterval(this.Eo??void 0),this.Po(),this.getAndClearBuffer()}onRemoteConfig(e){if(e.ok){var t=e.config;if(`heatmaps`in t){var n=!!t.heatmaps;this.instance.persistence&&this.instance.persistence.register({[ed]:n}),this.To=n,this.startIfEnabled()}}}getAndClearBuffer(){var e=this.R;return this.R=void 0,e}Oo(e){Cg(e.originalEvent)&&this.pe(e.originalEvent,`deadclick`)}xe(){this.Eo&&clearInterval(this.Eo),this.Eo=W?.visibilityState===`visible`?setInterval(this.oi.bind(this),this.flushIntervalMilliseconds):null}Ro(){U&&W&&(this.Fo=this.oi.bind(this),gf(U,tf,this.Fo),this.Ao=e=>this.pe(e||U?.event),gf(W,`click`,this.Ao,{capture:!0}),this.Lo=e=>this.$o(e||U?.event),gf(W,`mousemove`,this.Lo,{capture:!0}),this.No=new Op(this.instance,Ep,this.Oo.bind(this)),this.No.startIfEnabledOrStop(),this.Do=this.xe.bind(this),gf(W,ef,this.Do),this.po=!0)}Po(){var e;U&&W&&(this.Fo&&U.removeEventListener(tf,this.Fo),this.Ao&&W.removeEventListener(`click`,this.Ao,{capture:!0}),this.Lo&&W.removeEventListener(`mousemove`,this.Lo,{capture:!0}),this.Do&&W.removeEventListener(ef,this.Do),clearTimeout(this.qo),(e=this.No)==null||e.stop(),this.po=!1)}jo(e,t){var n=this.instance.scrollManager.scrollY(),r=this.instance.scrollManager.scrollX(),i=this.instance.scrollManager.scrollElement(),a=function(e,t,n){for(var r=e;r&&Uf(r)&&!Wf(r,`body`);){if(r===n)return!1;var i=void 0;try{i=(r.ownerDocument?.defaultView??U)?.getComputedStyle(r).position}catch{return!1}if(q(t,i))return!0;r=np(r)}return!1}($f(e),[`fixed`,`sticky`],i);return{x:e.clientX+(a?0:r),y:e.clientY+(a?0:n),target_fixed:a,type:t}}pe(e,t){var n;if(t===void 0&&(t=`click`),!Hf(e.target)&&Cg(e)){var r=this.jo(e,t);(n=this.rageclicks)!=null&&n.isRageClick(e.clientX,e.clientY,new Date().getTime())&&lp($f(e),this.instance.config.rageclick)&&this.Nt(K({},r,{type:`rageclick`})),this.Nt(r)}}$o(e){!Hf(e.target)&&Cg(e)&&(clearTimeout(this.qo),this.qo=setTimeout((()=>{this.Nt(this.jo(e,`mousemove`))}),500))}Nt(e){if(U){var t=this.Te.disable_capture_url_hashes?Xl(U.location.href):U.location.href,n=this.Te.custom_personal_data_properties,r=Vp(t,this.Te.mask_personal_data_properties?[...Kp,...n||[]]:[],Jp);this.R=this.R||{},this.R[r]||(this.R[r]=[]),this.R[r].push(e)}}oi(){this.R&&!Ec(this.R)&&this.instance.capture(`$$heatmap`,{$heatmap_data:this.getAndClearBuffer()})}},deadClicksAutocapture:Op,webVitalsAutocapture:class{constructor(e){var t;this.To=!1,this.po=!1,this.R={url:void 0,metrics:[],firstMetricTimestamp:void 0},this.Ho=()=>{clearTimeout(this.Bo),this.R.metrics.length!==0&&(this._instance.capture(`$web_vitals`,this.R.metrics.reduce(((e,t)=>K({},e,{[`$web_vitals_`+t.name+`_event`]:K({},t),[`$web_vitals_`+t.name+`_value`]:t.value})),{})),this.R={url:void 0,metrics:[],firstMetricTimestamp:void 0})},this.Uo=e=>{this.R=this.R||{url:void 0,metrics:[],firstMetricTimestamp:void 0};var t=this.zo();if(!J(t))if(Ac(e?.name)||Ac(e?.value))mg.error(`Invalid metric received`,e);else if(!this.Vo||this.Vo>e.value){this.R.url!==t&&(this.Ho(),this.Bo=setTimeout(this.Ho,this.flushToCaptureTimeoutMs)),J(this.R.url)&&(this.R.url=t),this.R.firstMetricTimestamp=J(this.R.firstMetricTimestamp)?Date.now():this.R.firstMetricTimestamp,e.attribution&&e.attribution.interactionTargetElement&&(e.attribution.interactionTargetElement=void 0);var n=this._instance.sessionManager?.checkAndGetSessionAndWindowId(!0),r=K({},e,{$current_url:t,timestamp:Date.now()});J(n)||(r.$session_id=n.sessionId,r.$window_id=n.windowId),this.R.metrics.push(r),this.R.metrics.length===this.allowedMetrics.length&&this.Ho()}else mg.error(`Ignoring metric with value >= `+this.Vo,e)},this.Wo=()=>
12{if(!this.po){var e,t,n,r,i=G.__PosthogExtensions__;if(!J(i)&&!J(i.postHogWebVitalsCallbacks)){var a=i.postHogWebVitalsCallbacks;e=a.onLCP,t=a.onCLS,n=a.onFCP,r=a.onINP}e&&t&&n&&r?(this.allowedMetrics.indexOf(`LCP`)>-1&&e(this.Uo.bind(this)),this.allowedMetrics.indexOf(`CLS`)>-1&&t(this.Uo.bind(this)),this.allowedMetrics.indexOf(`FCP`)>-1&&n(this.Uo.bind(this)),this.allowedMetrics.indexOf(`INP`)>-1&&r(this.Uo.bind(this)),this.po=!0):mg.error(`web vitals callbacks not loaded - not starting`)}},this._instance=e,this.To=!((t=this._instance.persistence)==null||!t.props[id]),this.startIfEnabled()}get Zo(){return this._instance.config.capture_performance}get allowedMetrics(){var e=Tc(this.Zo)?this.Zo?.web_vitals_allowed_metrics:void 0;return Ac(e)?this._instance.persistence?.props[sd]||[`CLS`,`FCP`,`INP`,`LCP`]:e}get flushToCaptureTimeoutMs(){return(Tc(this.Zo)?this.Zo.web_vitals_delayed_flush_ms:void 0)||5e3}get useAttribution(){var e=Tc(this.Zo)?this.Zo.web_vitals_attribution:void 0;return e!=null&&e}get Vo(){var e=Tc(this.Zo)&&jc(this.Zo.__web_vitals_max_value)?this.Zo.__web_vitals_max_value:hg;return e>0&&6e4>=e?hg:e}get isEnabled(){var e=Vs?.protocol;if(e!==`http:`&&e!==`https:`)return mg.info(`Web Vitals are disabled on non-http/https protocols`),!1;var t=Tc(this.Zo)?this.Zo.web_vitals:Nc(this.Zo)?this.Zo:void 0;return Nc(t)?t:this.To}startIfEnabled(){this.isEnabled&&!this.po&&(mg.info(`enabled, starting...`),this.er(this.Wo))}onRemoteConfig(e){if(e.ok){var t=e.config;if(`capturePerformance`in t){var n=Tc(t.capturePerformance)&&!!t.capturePerformance.web_vitals,r=Tc(t.capturePerformance)?t.capturePerformance.web_vitals_allowed_metrics:void 0;this._instance.persistence&&(this._instance.persistence.register({[id]:n}),this._instance.persistence.register({[sd]:r})),this.To=n,this.startIfEnabled()}}}er(e){var t,n;(t=G.__PosthogExtensions__)!=null&&t.postHogWebVitalsCallbacks?e():(n=G.__PosthogExtensions__)==null||n.loadExternalDependency==null||n.loadExternalDependency(this._instance,this.useAttribution?`web-vitals-with-attribution`:`web-vitals`,(t=>{t?mg.error(`failed to load script`,t):e()}))}zo(){var e=U?this._instance.config.disable_capture_url_hashes?Xl(U.location.href):U.location.href:void 0;if(e){var t=this._instance.config.custom_personal_data_properties;return Vp(e,this._instance.config.mask_personal_data_properties?[...Kp,...t||[]]:[],Jp)}mg.error(`Could not determine current URL`)}}},$g={exceptionObserver:class{constructor(e){var t;this.Wo=()=>{var e;if(U&&this.isEnabled&&(e=G.__PosthogExtensions__)!=null&&e.errorWrappingFunctions){var t=G.__PosthogExtensions__.errorWrappingFunctions.wrapOnError,n=G.__PosthogExtensions__.errorWrappingFunctions.wrapUnhandledRejection,r=G.__PosthogExtensions__.errorWrappingFunctions.wrapConsoleError;try{!this.Go&&this.Te.capture_unhandled_errors&&(this.Go=t(this.captureException.bind(this))),!this.Qo&&this.Te.capture_unhandled_rejections&&(this.Qo=n(this.captureException.bind(this))),!this.Jo&&this.Te.capture_console_errors&&(this.Jo=r(this.captureException.bind(this)))}catch(e){dg.error(`failed to start`,e),this.Ko()}}},this._instance=e,this.Yo=!((t=this._instance.persistence)==null||!t.props[td]),this.Xo=new Wc(K({},function(e){return e===void 0&&(e={}),{refillRate:e.exceptionRateLimiterRefillRate??e.__exceptionRateLimiterRefillRate??1,bucketSize:e.exceptionRateLimiterBucketSize??e.__exceptionRateLimiterBucketSize??10}}(this._instance.config.error_tracking),{refillInterval:1e4,Ge:dg})),this.Te=this.ea(),this.startIfEnabledOrStop()}ea(){var e=this._instance.config.capture_exceptions,t={capture_unhandled_errors:!1,capture_unhandled_rejections:!1,capture_console_errors:!1};return Tc(e)?t=K({},t,e):(J(e)?this.Yo:e)&&(t=K({},t,{capture_unhandled_errors:!0,capture_unhandled_rejections:!0})),t}get isEnabled(){return this.Te.capture_console_errors||this.Te.capture_unhandled_errors||this.Te.capture_unhandled_rejections}startIfEnabledOrStop(){this.isEnabled?(dg.info(`enabled`),this.Ko(),this.er(this.Wo)):this.Ko()}er(e){var t,n;(t=G.__PosthogExtensions__)!=null&&t.errorWrappingFunctions?e():(n=G.__PosthogExtensions__)==null||n.loadExternalDependency==null||n.loadExternalDependency(this._instance,`exception-autocapture`,(t=>{if(t)return dg.error(`failed to load script`,t);
12e()}))}Ko(){var e,t,n;(e=this.Go)==null||e.call(this),this.Go=void 0,(t=this.Qo)==null||t.call(this),this.Qo=void 0,(n=this.Jo)==null||n.call(this),this.Jo=void 0}onRemoteConfig(e){if(e.ok){var t=e.config;`autocaptureExceptions`in t&&(this.Yo=!!t.autocaptureExceptions||!1,this._instance.persistence&&this._instance.persistence.register({[td]:this.Yo}),this.Te=this.ea(),this.startIfEnabledOrStop())}}onConfigChange(){this.Te=this.ea()}captureException(e){var t,n,r=(e==null||(t=e.$exception_list)==null||(t=t[0])==null?void 0:t.type)??`Exception`;this.Xo.consumeRateLimit(r)?dg.info(`Skipping exception capture because of client rate limiting.`,{exception:r}):(n=this._instance.exceptions)==null||n.sendExceptionEvent(e)}},exceptions:class{constructor(e){this.ta=[],this.ra=new hu([new Du,new Lu,new ku,new Ou,new Fu,new Pu,new ju,new Iu],function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;t>r;r++)n[r-1]=arguments[r];return function(t,r){r===void 0&&(r=0);for(var i=[],a=t.split(` 13`),o=r;a.length>o;o++){var s=a[o];if(1024>=s.length){var c=Eu.test(s)?s.replace(Eu,`$1`):s;if(!c.match(/\S*Error: /)){for(var l of n){var u=l(c,e);if(u){i.push(u);break}}if(i.length>=50)break}}}return function(e){if(!e.length)return[];var t=Array.from(e);return t.reverse(),t.slice(0,50).map((e=>{return K({},e,{filename:e.filename||(n=t,n[n.length-1]||{}).filename,function:e.function||gu});var n}))}(i)}}(`web:javascript`,Su,Tu)),this._instance=e,this.ta=this._instance.persistence?.get_property(nd)??[],this.ia=Hu(this.na()),this.sa=new Uu(this.ia)}onConfigChange(){this.ia=Hu(this.na()),this.sa.setConfig(this.ia)}onRemoteConfig(e){if(e.ok){var t=e.config;if(`errorTracking`in t){var n=t.errorTracking?.suppressionRules??[],r=t.errorTracking?.captureExtensionExceptions;this.ta=n,this._instance.persistence&&this._instance.persistence.register({[nd]:this.ta,[rd]:r})}}}get oa(){var e,t=!!this._instance.get_property(rd);return(e=this._instance.config.error_tracking.captureExtensionExceptions??t)!=null&&e}buildProperties(e,t){return this.ra.buildFromUnknown(e,{syntheticException:t?.syntheticException,mechanism:{handled:t?.handled}})}addExceptionStep(e,t){if(this.ia.enabled)try{if(!Dc(e)||e.trim().length===0)return void Ug.warn(`Ignoring exception step because message must be a non-empty string`);var n=function(e){if(!e)return{sanitizedProperties:{},droppedKeys:[]};var t=[];return{sanitizedProperties:Object.keys(e).reduce(((n,r)=>Bu.has(r)?(t.push(r),n):(n[r]=e[r],n)),{}),droppedKeys:t}}(this.aa(t)),r=n.sanitizedProperties,i=n.droppedKeys;i.length>0&&Ug.warn(`Ignoring reserved exception step fields`,{droppedKeys:i}),this.sa.add(K({[Ru]:e,[zu]:new Date().toISOString()},r))}catch(e){Ug.error(`Failed to add exception step. Ignoring breadcrumb.`,e)}}sendExceptionEvent(e){try{var t=e.$exception_list;if(this.la(t)){if(this.ua(t))return this.ha(`Exception dropped: matched a suppression rule`),void Ug.info(`Skipping exception capture because a suppression rule matched`);if(!this.oa&&this.da(t))return this.ha(`Exception dropped: thrown by a browser extension`),void Ug.info(`Skipping exception capture because it was thrown by an extension`);if(!this._instance.config.error_tracking.__capturePostHogExceptions&&this.ca(t))return this.ha(`Exception dropped: thrown by the PostHog SDK`),void Ug.info(`Skipping exception capture because it was thrown by the PostHog SDK`)}var n=this.ia.enabled&&Ac(e.$exception_steps)?this.va(e):e;try{var r=this._instance.capture(`$exception`,n,{_noTruncate:!0,_batchKey:`exceptionEvent`,kn:!0});return r&&this.sa.clear(),r}catch(e){Ug.error(`Failed to capture exception event. Dropping this exception.`,e),this.sa.clear();return}}catch(e){Ug.error(`Failed to process exception event. Ignoring this exception.`,e);return}}va(e){try{var t=this.sa.getAttachable();return t.length===0?e:K({},e,{$exception_steps:t})}catch(t){return Ug.error(`Failed to read buffered exception steps. Capturing exception without steps.`,t),e}}ha(e){this.ia.enabled&&this.sa.add({[Ru]:e,[zu]:new Date().toISOString()})}aa(e){return Tc(e)?K({},e):{}}na(){return this._instance.config.error_tracking?.exception_steps??{}}ua(e){if(e.length===0)return!1;var t=e.reduce(((e,t)=>{var n=t.type,r=t.value;return Dc(n)&&n.length>0&&e.$exception_types.push(n),Dc(r)&&r.length>0&&e.$exception_values.push(r),e}),{$exception_types:[],$exception_values:[]});return this.ta.some((e=>{var n=e.values.map((e=>{var n=Oh[e.operator],r=Cc(e.value)?e.value:[e.value],i=t[e.key]??[];return r.length>0&&n(r,i)}));return e.type===`OR`?n.some(Boolean):n.every(Boolean)}))}da(e){return e.flatMap((e=>e.stacktrace?.frames??[])).some((e=>e.filename&&e.filename.startsWith(`chrome-extension://`)))}ca(e){if(e.length>0){var t,n,r=e[0].stacktrace?.frames??[],i=r[r.length-1];return(t=i==null||(n=i.filename)==null?void 0:n.includes(`posthog.com/static`))!=null&&t}return!1}la(e){return!Ac(e)&&Cc(e)}}},e_=K({productTours:class{get mi(){return this._instance.persistence}constructor(e){this.fa=null,this.pa=null,this._instance=e}initialize(){this.loadIfEnabled()}onRemoteConfig(e){if(e.ok){var t=e.config;if(`productTours`in t){var n;if(this.mi&&this.mi.register({[od]:!!t.productTours}),!Tg(this._instance))return!this.fa&&Ac(this.mi?.props[jd])||wg.info(`product tours disabled; stopping and clearing cached tours`),(n=this.fa)==null||n.stop(),this.fa=null,void this.clearCache();this.loadIfEnabled()}}}loadIfEnabled(){!this.fa&&Tg(this._instance)&&this.er((()=>this.ga()))}er(e){var t,n;(t=G.__PosthogExtensions__)!=null&&t.generateProductTours?e():(n=G.__PosthogExtensions__)==null||n.loadExternalDependency==null||n.loadExternalDependency(this._instance,`product-tours`,(t=>{t?wg.error(`Could not load product tours script`,t):e()}))}ga(){var e;!this.fa&&(e=G.__PosthogExtensions__)!=null&&e.generateProductTours&&(this.fa=G.__PosthogExtensions__.generateProductTours(this._instance,!0))}getProductTours(e,t){if(t===void 0&&(t=!1),!Cc(this.pa)||t){var n=this.mi;if(n){var r=n.props[jd];if(Cc(r)&&!t)return this.pa=r,void e(r,{isLoaded:!0})}this._instance._send_request({url:this._instance.requestRouter.endpointFor(`api`,`/api/product_tours/?token=`+this._instance.config.token),method:`GET`,timestampMode:`query`,callback:t=>{if(Tg(this._instance)){var r=t.statusCode;if(r!==200||!t.json){var i=`Product Tours API could not be loaded, status: `+r;wg.error(i),e([],{isLoaded:!1,error:i});return}var a=Cc(t.json.product_tours)?t.json.product_tours:[];this.pa=a,n&&n.register({[jd]:a}),e(a,{isLoaded:!0})}else e([],{isLoaded:!0})}})}else e(this.pa,{isLoaded:!0})}getActiveProductTours(e){Ac(this.fa)?e([],{isLoaded:!1,error:`Product tours not loaded`}):this.fa.getActiveProductTours(e)}showProductTour(e){var t;(t=this.fa)==null||t.showTourById(e)}previewTour(e){this.fa?this.fa.previewTour(e):this.er((()=>{var t;this.ga(),(t=this.fa)==null||t.previewTour(e)}))}dismissProductTour(){var e;(e=this.fa)==null||e.dismissTour(`user_clicked_skip`)}nextStep(){var e;(e=this.fa)==null||e.nextStep()}previousStep(){var e;(e=this.fa)==null||e.previousStep()}clearCache(){var e;this.pa=null,(e=this.mi)==null||e.unregister(jd)}resetTour(e){var t;(t=this.fa)==null||t.resetTour(e)}resetAllTours(){var e;(e=this.fa)==null||e.resetAllTours()}cancelPendingTour(e){var t;(t=this.fa)==null||t.cancelPendingTour(e)}}},Xg),t_={siteApps:class{constructor(e){this.ma=0,this._instance=e,this.ya=[],this.apps={}}get isEnabled(){return!!this._instance.config.opt_in_site_apps}ba(e,t){if(t){var n=this.globalsForEvent(t);this.ya.push(n),this.ya.length>1e3&&(this.ya=this.ya.slice(10))}}get siteAppLoaders(){var e;return(e=G._POSTHOG_REMOTE_CONFIG)==null||(e=e[this._instance.config.token])==null?void 0:e.siteApps}initialize(){if(this.isEnabled){var e=this._instance._addCaptureHook(this.ba.bind(this));this._a=()=>{e(),this.ya=[],this._a=void 0}}}globalsForEvent(e){if(!e)throw Error(`Event payload is required`);var t={},n=this._instance.get_property(`$groups`)||[],r=this._instance.get_property(`$stored_group_properties`)||{};for(var i of Object.entries(r)){var a=i[0];t[a]={id:n[a],type:a,properties:i[1]}}var o=e.$set_once,s=e.$set;return{event:K({},Qs(e,Eg),{properties:K({},e.properties,s?{$set:K({},e.properties?.$set??{},s)}:{},o?{$set_once:K({},e.properties?.$set_once??{},o)}:{}),elements_chain:e.properties?.$elements_chain??``,distinct_id:e.properties?.distinct_id}),person:{properties:this._instance.get_property(`$stored_person_properties`)},groups:t}}wa(e){var t=e.tagName?.toLowerCase();
13return t===`style`&&this._instance.config.prepare_external_dependency_stylesheet?this._instance.config.prepare_external_dependency_stylesheet(e)||(Dg.error(`prepare_external_dependency_stylesheet returned null`),null):t===`script`&&this._instance.config.prepare_external_dependency_script?this._instance.config.prepare_external_dependency_script(e)||(Dg.error(`prepare_external_dependency_script returned null`),null):e}xa(){var e;if(!this._instance.config.prepare_external_dependency_stylesheet&&!this._instance.config.prepare_external_dependency_script)return()=>{};var t=W?.defaultView,n=t==null||(e=t.Node)==null?void 0:e.prototype;if(!t||!n)return()=>{};if(this.ma++,this.ka)return this.Sa();var r=[],i=this,a=new WeakSet,o=(e,t,n)=>{if(e!=null&&e[t]){var i=e[t];e[t]=n(i),r.push((()=>{e[t]=i}))}},s=e=>{if(a.has(e))return e;var t=i.wa(e);return t&&a.add(t),t},c=e=>e.map((e=>typeof e==`string`?e:s(e))).filter((e=>!kc(e)));return o(n,`appendChild`,(e=>function(t){var n=s(t);return n?e.call(this,n):t})),o(n,`insertBefore`,(e=>function(t,n){var r=s(t);return r?e.call(this,r,n):t})),o(n,`replaceChild`,(e=>function(t,n){var r=s(t);return r?e.call(this,r,n):n})),[t.Element?.prototype,t.Document?.prototype,t.DocumentFragment?.prototype].forEach((e=>{o(e,`append`,(e=>function(){for(var t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];return e.apply(this,c(n))})),o(e,`prepend`,(e=>function(){for(var t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];return e.apply(this,c(n))}))})),[t.Element?.prototype,t.CharacterData?.prototype,t.DocumentType?.prototype].forEach((e=>{o(e,`before`,(e=>function(){for(var t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];return e.apply(this,c(n))})),o(e,`after`,(e=>function(){for(var t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];return e.apply(this,c(n))})),o(e,`replaceWith`,(e=>function(){for(var t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];var i=c(n);return n.length&&!i.length?void 0:e.apply(this,i)}))})),o(t.Element?.prototype,`insertAdjacentElement`,(e=>function(t,n){var r=s(n);return r?e.call(this,t,r):null})),this.ka=()=>{r.forEach((e=>e())),this.ka=void 0},this.Sa()}Sa(){var e=!1;return()=>{var t;e||(e=!0,this.ma--,this.ma===0&&((t=this.ka)==null||t.call(this)))}}
13Ca(e,t){t===void 0&&(t=!0);var n=this.xa();try{var r=e(n);return t&&n(),r}catch(e){throw n(),e}}setupSiteApp(e){var t=this.apps[e.id],n=()=>{var n;!t.errored&&this.ya.length&&(Dg.info(`Processing `+this.ya.length+` events for site app with id `+e.id),this.ya.forEach((e=>this.Ca((()=>t.processEvent==null?void 0:t.processEvent(e))))),t.processedBuffer=!0),Object.values(this.apps).every((e=>e.processedBuffer||e.errored))&&((n=this._a)==null||n.call(this))},r=!1,i=i=>{t.errored=!i,t.loaded=!0,Dg.info(`Site app with id `+e.id+` `+(i?`loaded`:`errored`)),r&&n()};try{var a=this.Ca((t=>e.init({posthog:this._instance,callback(e){t(),i(e)}})),!1).processEvent;a&&(t.processEvent=a),r=!0}catch(t){Dg.error(Og+e.id,t),i(!1)}if(r&&t.loaded)try{n()}catch(n){Dg.error(`Error while processing buffered events PostHog app with config id `+e.id,n),t.errored=!0}}Ma(){var e=this.siteAppLoaders||[];for(var t of e)this.apps[t.id]={id:t.id,loaded:!1,errored:!1,processedBuffer:!1};for(var n of e)this.setupSiteApp(n)}Ia(e){var t=this;if(Object.keys(this.apps).length!==0){var n=this.globalsForEvent(e),r=function(r){try{t.Ca((()=>r.processEvent==null?void 0:r.processEvent(n)))}catch(t){Dg.error(`Error while processing event `+e.event+` for site app `+r.id,t)}};for(var i of Object.values(this.apps))r(i)}}onRemoteConfig(e){var t,n,r,i=this;if((t=this.siteAppLoaders)!=null&&t.length)return this.isEnabled?(this.Ma(),void this._instance.on(`eventCaptured`,(e=>this.Ia(e)))):void Dg.error(`PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.`);if((n=this._a)==null||n.call(this),e.ok){var a=e.config;if((r=a.siteApps)!=null&&r.length)if(this.isEnabled){var o=function(){var e,t=s.id,n=s.url;G[`__$$ph_site_app_`+t]=i._instance,(e=G.__PosthogExtensions__)==null||e.loadSiteApp==null||e.loadSiteApp(i._instance,n,(e=>{if(e)return Dg.error(Og+t,e)}))};for(var s of a.siteApps)o()}else Dg.error(`PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.`)}}}},n_={tracingHeaders:class{constructor(e){this.Ta=void 0,this.Ea=void 0,this.Ra=void 0,this.Wo=()=>{var e,t,n=this.Pa();n?(J(this.Ta)&&(this.Ta=(e=G.__PosthogExtensions__)==null||(e=e.tracingHeadersPatchFns)==null?void 0:e._patchXHR(n,(()=>this._instance.get_distinct_id()),this._instance.sessionManager)),J(this.Ea)&&(this.Ea=(t=G.__PosthogExtensions__)==null||(t=t.tracingHeadersPatchFns)==null?void 0:t._patchFetch(n,(()=>this._instance.get_distinct_id()),this._instance.sessionManager))):this.Ko()},this._instance=e}initialize(){this.startIfEnabledOrStop()}er(e){var t,n;(t=G.__PosthogExtensions__)!=null&&t.tracingHeadersPatchFns?e():(n=G.__PosthogExtensions__)==null||n.loadExternalDependency==null||n.loadExternalDependency(this._instance,`tracing-headers`,(t=>{if(t)return pg.error(`failed to load script`,t);e()}))}Oa(){return this._instance.config.tracing_headers??this._instance.config.addTracingHeaders??this._instance.config.__add_tracing_headers}Pa(){var e=this.Oa();return Cc(e)?(Cc(this.Ra)?this.Ra.splice(0,this.Ra.length,...e):this.Ra=[...e],e.length>0?this.Ra:void 0):(Cc(this.Ra)&&this.Ra.splice(0),this.Ra=e||void 0,this.Ra)}Ko(){var e,t;(e=this.Ta)==null||e.call(this),(t=this.Ea)==null||t.call(this),this.Ta=void 0,this.Ea=void 0}startIfEnabledOrStop(){this.Pa()?this.er(this.Wo):this.Ko()}}},r_=K({surveys:class{get Te(){return this._instance.config}constructor(e){this.Fa=void 0,this._surveyManager=null,this.Aa=!1,this.La=[],this.$a=null,this.Na=null,this._instance=e,this._surveyEventReceiver=null}initialize(){this.loadIfEnabled()}onRemoteConfig(e){if(!this.Te.disable_surveys){if(!e.ok)return Ih.warn(`Remote config unavailable. Not loading surveys.`);var t=e.config.surveys;if(Ac(t))return Ih.warn(`Flags not loaded yet. Not loading surveys.`);var n=Cc(t);this.Fa=n?t.length>0:t,Ih.info(`flags response received, isSurveysEnabled: `+this.Fa),this.loadIfEnabled()}}reset(){try{var e;(e=this._surveyEventReceiver)==null||e.reset(),localStorage.removeItem(`lastSeenSurveyDate`);for(var t=[],n=0;n<localStorage.length;n++){var r=localStorage.key(n);(r!=null&&r.startsWith(Lh)||r!=null&&r.startsWith(`inProgressSurvey_`))&&t.push(r)}t.forEach((e=>localStorage.removeItem(e)))}catch{}}loadIfEnabled(){if(!this._surveyManager)if(this.Aa)Ih.info(`Already initializing surveys, skipping...`);else if(this.Te.disable_surveys)Ih.info(Pg);else if(this.Te.cookieless_mode&&this._instance.consent.isOptedOut())Ih.info(`Not loading surveys in cookieless mode without consent.`);else{var e=G?.__PosthogExtensions__;if(e){if(!J(this.Fa)||this.Te.advanced_enable_surveys){var t=this.Fa||this.Te.advanced_enable_surveys;this.Aa=!0;try{var n=e.generateSurveys;if(n)return void this.Da(n,t);var r=e.loadExternalDependency;if(!r)return void this.qa(Jd);r(this._instance,`surveys`,(n=>
13{n||!e.generateSurveys?this.qa(`Could not load surveys script`,n):this.Da(e.generateSurveys,t)}))}catch(e){throw this.qa(`Error initializing surveys`,e),e}finally{this.Aa=!1}}}else Ih.error(`PostHog Extensions not found.`)}}Da(e,t){this._surveyManager=e(this._instance,t),this._surveyEventReceiver=new Mg(this._instance),Ih.info(`Surveys loaded successfully`),this.ja({isLoaded:!0})}qa(e,t){Ih.error(e,t),this.ja({isLoaded:!1,error:e})}onSurveysLoaded(e){return this.La.push(e),this._surveyManager&&this.ja({isLoaded:!0}),()=>{this.La=this.La.filter((t=>t!==e))}}getSurveys(e,t){if(t===void 0&&(t=!1),this.Te.disable_surveys)return Ih.info(Pg),e([]);var n,r=this._instance.get_property(Dd);if(r&&!t)return e(r,{isLoaded:!0}),void(this.Ha()&&this.getSurveys((()=>{}),!0));typeof Promise<`u`&&this.$a?this.$a.then((t=>e(t.surveys,t.context))):(typeof Promise<`u`&&(this.$a=new Promise((e=>{n=e}))),this._instance._send_request({url:this._instance.requestRouter.endpointFor(`api`,`/api/surveys/?token=`+this.Te.token),method:`GET`,timestampMode:`query`,timeout:this.Te.surveys_request_timeout_ms,callback:t=>{var r;this.$a=null;var i=t.statusCode;if(i!==200||!t.json){var a=`Surveys API could not be loaded, status: `+i;Ih.error(a),this.Na=Date.now();var o={isLoaded:!1,error:a};e([],o),n?.({surveys:[],context:o});return}this.Na=null;var s,c=t.json.surveys||[],l=c.filter((e=>function(e){return!(!e.start_date||e.end_date)}(e)&&(Fh(e)||function(e){var t;return!((t=e.conditions)==null||(t=t.actions)==null||(t=t.values)==null||!t.length)}(e))));l.length>0&&((s=this._surveyEventReceiver)==null||s.register(l)),(r=this._instance.persistence)==null||r.register({[Dd]:c,[Od]:Date.now()});var u={isLoaded:!0};e(c,u),n?.({surveys:c,context:u})}}))}Ha(){return this.Ba()&&!this.$a&&!this.Ua()}Ba(){var e=this._instance.get_property(Od);return jc(e)&&Date.now()-e>3e5}Ua(){return jc(this.Na)&&3e5>Date.now()-this.Na}markSurveyAsSeen(e,t){Rh({id:e,current_iteration:t?.iteration??null});try{localStorage.setItem(`lastSeenSurveyDate`,new Date().toISOString())}catch{}}
13ja(e){for(var t of this.La)try{if(!e.isLoaded)return t([],e);this.getSurveys(t)}catch(e){Ih.error(`Error in survey callback`,e)}}getActiveMatchingSurveys(e,t){if(t===void 0&&(t=!1),!Ac(this._surveyManager))return this._surveyManager.getActiveMatchingSurveys(e,t);Ih.warn(`init was not called`)}za(e){var t=null;return this.getSurveys((n=>{t=n.find((t=>t.id===e))??null})),t}Va(e){if(Ac(this._surveyManager))return{eligible:!1,reason:Ng};var t=typeof e==`string`?this.za(e):e;return t?this._surveyManager.checkSurveyEligibility(t):{eligible:!1,reason:`Survey not found`}}Wa(e){if(Ac(this._surveyManager))return{eligible:!1,reason:Ng};var t=typeof e==`string`?this.za(e):e;return t?this._surveyManager.checkSurveyRenderability(t):{eligible:!1,reason:`Survey not found`}}canRenderSurvey(e){if(Ac(this._surveyManager))return Ih.warn(`init was not called`),{visible:!1,disabledReason:Ng};var t=this.Wa(e);return{visible:t.eligible,disabledReason:t.reason}}canRenderSurveyAsync(e,t){return Ac(this._surveyManager)?(Ih.warn(`init was not called`),Promise.resolve({visible:!1,disabledReason:Ng})):new Promise((n=>{this.getSurveys((t=>{var r=t.find((t=>t.id===e))??null;if(r){var i=this.Wa(r);n({visible:i.eligible,disabledReason:i.reason})}else n({visible:!1,disabledReason:`Survey not found`})}),t)}))}renderSurvey(e,t,n){var r;if(Ac(this._surveyManager))Ih.warn(`init was not called`);else{var i=typeof e==`string`?this.za(e):e;if(i!=null&&i.id)if(zh.includes(i.type)){var a=W?.querySelector(t);if(a)return(r=i.appearance)!=null&&r.surveyPopupDelaySeconds?(Ih.info(`Rendering survey `+i.id+` with delay of `+i.appearance.surveyPopupDelaySeconds+` seconds`),void setTimeout((()=>{var e;Ih.info(`Rendering survey `+i.id+` with delay of `+i.appearance?.surveyPopupDelaySeconds+` seconds`),(e=this._surveyManager)==null||e.renderSurvey(i,a,n),Ih.info(`Survey `+i.id+` rendered`)}),1e3*i.appearance.surveyPopupDelaySeconds)):void this._surveyManager.renderSurvey(i,a,n);Ih.warn(`Survey element not found`)}else Ih.warn(`Surveys of type `+i.type+` cannot be rendered in the app`);else Ih.warn(`Survey not found`)}}displaySurvey(e,t){var n;if(Ac(this._surveyManager))Ih.warn(`init was not called`);else{var r=this.za(e);if(r){var i=r;if((n=r.appearance)!=null&&n.surveyPopupDelaySeconds&&t.ignoreDelay&&(i=K({},r,{appearance:K({},r.appearance,{surveyPopupDelaySeconds:0})})),t.displayType!==hm.Popover&&t.initialResponses&&Ih.warn(`initialResponses is only supported for popover surveys. prefill will not be applied.`),!1===t.ignoreConditions){var a=this.Va(r);if(!a.eligible)return void Ih.warn(`Survey is not eligible to be displayed: `,a.reason)}t.displayType===hm.Inline?this.renderSurvey(i,t.selector,t.properties):this._surveyManager.handlePopoverSurvey(i,t)}else Ih.warn(`Survey not found`)}}cancelPendingSurvey(e){Ac(this._surveyManager)?Ih.warn(`init was not called`):this._surveyManager.cancelSurvey(e)}handlePageUnload(){var e;(e=this._surveyManager)==null||e.handlePageUnload==null||e.handlePageUnload()}}},Xg),i_={toolbar:class{constructor(e){this.instance=e}Za(e){G.ph_toolbar_state=e}Ga(){return G.ph_toolbar_state??0}initialize(){return this.maybeLoadToolbar()}maybeLoadToolbar(e,t,n){if(e===void 0&&(e=void 0),t===void 0&&(t=void 0),n===void 0&&(n=void 0),_f(this.instance.config)||!U||!W)return!1;e??=U.location,n??=U.history;try{if(!t){try{U.localStorage.setItem(`test`,`test`),U.localStorage.removeItem(`test`)}catch{return!1}t=U?.localStorage}var r,i=Fg||Hp(e.hash,`__posthog`)||Hp(e.hash,`state`),a=i?df((()=>JSON.parse(atob(decodeURIComponent(i)))))||df((()=>JSON.parse(decodeURIComponent(i)))):null;return a&&a.action===`ph_authorize`?((r=a).source=`url`,r&&Object.keys(r).length>0&&(a.desiredHash?e.hash=a.desiredHash:n?n.replaceState(n.state,``,e.pathname+e.search):e.hash=``)):((r=JSON.parse(t.getItem(Ig)||`{}`)).source=`localstorage`,delete r.userIntent),!(!r.token||this.instance.config.token!==r.token||(this.loadToolbar(r),0))}catch{return!1}}Qa(e){var t=G.ph_load_toolbar||G.ph_load_editor;!Ac(t)&&wc(t)?t(e,this.instance):Lg.warn(`No toolbar load function found`)}loadToolbar(e){var t=!(W==null||!W.getElementById(Rf));if(!U||t)return!1;var n=this.instance.requestRouter.region===`custom`&&this.instance.config.advanced_disable_toolbar_metrics,r=K({token:this.instance.config.token},e,{apiURL:this.instance.requestRouter.endpointFor(`ui`)},n?{instrument:!1}:{});if(U.localStorage.setItem(Ig,JSON.stringify(K({},r,{source:void 0}))),this.Ga()===2)this.Qa(r);else if(this.Ga()===0){var i;this.Za(1),(i=G.__PosthogExtensions__)==null||i.loadExternalDependency==null||i.loadExternalDependency(this.instance,`toolbar`,(e=>{if(e)return Lg.error(`[Toolbar] Failed to load`,e),void this.Za(0);this.Za(2),this.Qa(r)})),gf(U,`turbolinks:load`,(()=>{this.Za(0),this.loadToolbar(r)}))}return!0}Ja(e){return this.loadToolbar(e)}maybeLoadEditor(e,t,n){return e===void 0&&(e=void 0),t===void 0&&(t=void 0),n===void 0&&(n=void 0),this.maybeLoadToolbar(e,t,n)}}},a_=K({experiments:Kg},Xg),o_=K({},Xg,Zg,Qg,$g,e_,t_,r_,n_,i_,a_,{conversations:class{constructor(e){this.Ka=void 0,this._conversationsManager=null,this.Ya=!1,this.Xa=null,this._instance=e}initialize(){this.loadIfEnabled()}onRemoteConfig(e){if(!this._instance.config.disable_conversations&&e.ok){var t=e.config.conversations;Ac(t)||(Nc(t)?this.Ka=t:(this.Ka=t.enabled,this.Xa=t),this.loadIfEnabled())}}reset(){var e;(e=this._conversationsManager)==null||e.reset(),this._conversationsManager=null,this.Ka=void 0,this.Xa=null}loadIfEnabled(){if(!(this._conversationsManager||this.Ya||this._instance.config.disable_conversations||_f(this._instance.config)||this._instance.config.cookieless_mode&&this._instance.consent.isOptedOut())){var e=G?.__PosthogExtensions__;if(e&&!J(this.Ka)&&this.Ka)if(this.Xa&&this.Xa.token){this.Ya=!0;try{var t=e.initConversations;if(t)return this.el(t),void(this.Ya=!1);var n=e.loadExternalDependency;if(!n)return void this.tl(Jd);n(this._instance,`conversations`,(t=>{t||!e.initConversations?this.tl(`Could not load conversations script`,t):this.el(e.initConversations),this.Ya=!1}))}catch(e){this.tl(`Error initializing conversations`,e),this.Ya=!1}}else qg.error(`Conversations enabled but missing token in remote config.`)}}
13el(e){if(this.Xa)try{this._conversationsManager=e(this.Xa,this._instance),qg.info(`Conversations loaded successfully`)}catch(e){this.tl(`Error completing conversations initialization`,e)}else qg.error(`Cannot complete initialization: remote config is null`)}tl(e,t){qg.error(e,t),this._conversationsManager=null,this.Ya=!1}show(){this._conversationsManager?this._conversationsManager.show():qg.warn(`Conversations not loaded yet.`)}hide(){this._conversationsManager&&this._conversationsManager.hide()}isAvailable(){return!0===this.Ka&&!kc(this._conversationsManager)}isVisible(){var e;return(e=this._conversationsManager?.isVisible())!=null&&e}sendMessage(e,t,n){var r=this;return Zs((function*(){return r._conversationsManager?r._conversationsManager.sendMessage(e,t,n):(qg.warn(Jg),null)}))()}getMessages(e,t){var n=this;return Zs((function*(){return n._conversationsManager?n._conversationsManager.getMessages(e,t):(qg.warn(Jg),null)}))()}markAsRead(e){var t=this;return Zs((function*(){return t._conversationsManager?t._conversationsManager.markAsRead(e):(qg.warn(Jg),null)}))()}getTickets(e){var t=this;return Zs((function*(){return t._conversationsManager?t._conversationsManager.getTickets(e):(qg.warn(Jg),null)}))()}requestRestoreLink(e){var t=this;return Zs((function*(){return t._conversationsManager?t._conversationsManager.requestRestoreLink(e):(qg.warn(Jg),null)}))()}restoreFromToken(e){var t=this;return Zs((function*(){return t._conversationsManager?t._conversationsManager.restoreFromToken(e):(qg.warn(Jg),null)}))()}restoreFromUrlToken(){var e=this;return Zs((function*(){return e._conversationsManager?e._conversationsManager.restoreFromUrlToken():(qg.warn(Jg),null)}))()}getCurrentTicketId(){return this._conversationsManager?.getCurrentTicketId()??null}getWidgetSessionId(){return this._conversationsManager?.getWidgetSessionId()??null}En(){var e;(e=this._conversationsManager)==null||e.setIdentity()}Rn(){var e;(e=this._conversationsManager)==null||e.clearIdentity()}}},{logs:class{constructor(e){var t;this.rl=!1,this.il=!1,this.Ge=Z(`[logs]`),this.Gr=[],this.nl=[],this.Hs=0,this.sl=()=>{var e,t;this.Hs=0,(e=this.ol)==null||e.onReconnect(),(t=this.al)==null||t.onReconnect()},this._instance=e,this._instance&&(t=this._instance.config.logs)!=null&&t.captureConsoleLogs&&(this.rl=!0),U&&gf(U,`online`,this.sl)}ll(e,t,n,r){var i,a=function(e,t){var n=e?.flushIntervalMs??3e3,r=e?.maxBufferSize??100,i=t!=null&&t.consoleCapture?void 0:e?.maxLogsPerInterval??1e3,a=J(i)?Math.max(r,2048):Math.max(r,i),o=e?.resourceAttributes;return{serviceName:o?.[`service.name`]??e?.serviceName??t?.serviceNameDefault,serviceVersion:o?.[`service.version`]??e?.serviceVersion,environment:o?.[`deployment.environment`]??e?.environment,resourceAttributes:o,beforeSend:e?.beforeSend,flushIntervalMs:n,maxBufferSize:r,maxQueueSize:a,maxBatchRecordsPerPost:100,rateCapWindowMs:n,maxLogsPerInterval:i,backgroundFlushBudgetMs:0,terminationFlushBudgetMs:0}}((i=this._instance)==null||(i=i.config)==null?void 0:i.logs,n);return[new ou(this.ul(e,t),a,this.Ge,(()=>this.hl()),(e=>e()),void 0,r),a]}dl(){var e,t=(e=this._instance)==null||(e=e.config)==null?void 0:e.logs;if(!this.ol||this.cl!==t){var n;(n=this.ol)==null||n.reset(),this.cl=t;var r=this.ll((()=>this.Gr),(e=>{this.Gr=e}));this.ol=r[0],this.vl=r[1]}return this.ol}fl(){var e,t=(e=this._instance)==null||(e=e.config)==null?void 0:e.logs;if(!this.al||this.pl!==t){var n;(n=this.al)==null||n.reset(),this.pl=t;var r=this.ll((()=>this.nl),(e=>{this.nl=e}),{serviceNameDefault:`posthog-browser-logs`,consoleCapture:!0},Yg);this.al=r[0],this.gl=r[1]}return this.al}initialize(){this.loadIfEnabled()}onRemoteConfig(e){if(e.ok){var t=e.config.logs?.captureConsoleLogs;!Ac(t)&&t&&(this.rl=!0,this.loadIfEnabled())}}reset(){var e,t;this.Gr=[],(e=this.ol)==null||e.reset(),this.nl=[],(t=this.al)==null||t.reset(),this.Hs=0}captureLog(e){this.dl().captureLog(e)}le(e){this.fl().captureLog(e)}get logger(){return this.ml||={trace:(e,t)=>this.captureLog({body:e,level:`trace`,attributes:t}),debug:(e,t)=>this.captureLog({body:e,level:`debug`,attributes:t}),info:(e,t)=>this.captureLog({body:e,level:`info`,attributes:t}),warn:(e,t)=>this.captureLog({body:e,level:`warn`,attributes:t}),error:(e,t)=>
13this.captureLog({body:e,level:`error`,attributes:t}),fatal:(e,t)=>this.captureLog({body:e,level:`fatal`,attributes:t})},this.ml}flushLogs(e){e?this.yl(e):(this.ol&&this.ol.flush().catch((e=>this.Ge.error(`PostHog logs flush failed:`,e))),this.al&&this.al.flush().catch((e=>this.Ge.error(`PostHog logs flush failed:`,e))))}loadIfEnabled(){if(this.rl&&!this.il){var e=G?.__PosthogExtensions__;if(e){var t=e.loadExternalDependency;t?t(this._instance,`logs`,(t=>{var n;t||(n=e.logs)==null||!n.initializeLogs?this.Ge.error(`Could not load logs script`,t):(e.logs.initializeLogs(this._instance),this.il=!0)})):this.Ge.error(Jd)}else this.Ge.error(`PostHog Extensions not found.`)}}ul(e,t){var n=this._instance;return{get isDisabled(){return!1},get optedOut(){return!n.is_capturing()},getPersistedProperty:t=>t===ic.LogsQueue?e():void 0,setPersistedProperty(e,n){e===ic.LogsQueue&&t(n??[])},Mt:e=>this.Mt(e),getLibraryId:()=>Ys.LIB_NAME,getLibraryVersion:()=>Ys.LIB_VERSION}}Mt(e){return new Promise((t=>{if(Up(this.Hs,3))t({kind:`fatal`,error:Error(`logs endpoint is unreachable, dropping batch`)});else{var n=!1,r=e=>{n||(n=!0,clearTimeout(i),t(e))},i=setTimeout((()=>r({kind:`retry-later`,error:Error(`logs request timed out`)})),9e4);this._instance._send_request({method:`POST`,url:this.bl(),data:e,compression:`best-available`,batchKey:`logs`,fireCallbackOnDrop:!0,callback:e=>{var t=e.statusCode;this._l(t),r(t>=200&&300>t?{kind:`ok`}:t===413?{kind:`too-large`}:t!==0&&t!==429&&500>t?{kind:`fatal`,error:Error(`logs request failed with status `+t)}:{kind:`retry-later`,error:e.error??Error(`logs request failed with status `+t)})}})}}))}_l(e){(e!==0||this._instance.__loaded)&&(this.Hs=Wp(e,this.Hs,3,(()=>this.Ge.warn(`Log requests are failing before receiving an HTTP response; this can happen due to network issues, CORS, browser blocking, or ad blockers. Stopped sending logs; will try again when connectivity changes.`))))}yl(e){this.Gr.length>0&&this.wl(e,this.Gr,this.vl,Ys.LIB_NAME,(e=>{this.Gr=e})),this.nl.length>0&&this.wl(e,this.nl,this.gl,Yg,(e=>{this.nl=e}))}wl(e,t,n,r,i){if(t.length!==0){var a=t.map((e=>e.record));i([]);var o=au(a,iu(n,Ys.LIB_NAME,Ys.LIB_VERSION),r,Ys.LIB_VERSION);this._instance._send_request({method:`POST`,url:this.bl(),data:o,compression:`best-available`,batchKey:`logs`,transport:e})}}bl(){return this._instance.requestRouter.endpointFor(`api`,`/i/v1/logs`)+`?token=`+encodeURIComponent(this._instance.config.token)}hl(){var e,t={};if(t.distinctId=this._instance.get_distinct_id(),this._instance.sessionManager){var n=this._instance.sessionManager.checkAndGetSessionAndWindowId(!0),r=n.windowId,i=n.sessionStartTimestamp,a=n.lastActivityTimestamp;t.sessionId=n.sessionId,t.windowId=r,Ac(i)||(t.sessionStartTimestamp=i),Ac(a)||(t.lastActivityTimestamp=a)}if(G!=null&&(e=G.location)!=null&&e.href&&(t.currentUrl=this._instance.config.disable_capture_url_hashes?Xl(G.location.href):G.location.href),this._instance.featureFlags){var o=this._instance.featureFlags.getFlags();o&&o.length>0&&(t.activeFeatureFlags=o)}return t}}},{metrics:class{constructor(e){this.Ge=Z(`[metrics]`),this._instance=e}initialize(){}dl(){var e,t,n=(e=this._instance)==null||(e=e.config)==null?void 0:e.metrics;return this.ol&&this.cl===n||((t=this.ol)==null||t.reset(),this.cl=n,this.ol=new uu(this.ul(),function(e){var t=e?.resourceAttributes;return{serviceName:t?.[`service.name`]??e?.serviceName,serviceVersion:t?.[`service.version`]??e?.serviceVersion,environment:t?.[`deployment.environment`]??e?.environment,resourceAttributes:t,beforeSend:e?.beforeSend,flushIntervalMs:e?.flushIntervalMs??1e4,maxSeriesPerFlush:e?.maxSeriesPerFlush??1e3}}(n),this.Ge)),this.ol}count(e,t,n){t===void 0&&(t=1),this.dl().count(e,t,n)}gauge(e,t,n){this.dl().gauge(e,t,n)}histogram(e,t,n){this.dl().histogram(e,t,n)}flush(e){if(!this.ol)return Promise.resolve();if(e){var t=this.ol.drainWindow();return t&&this.Bt(t,e),Promise.resolve()}return this.ol.flush().catch((e=>this.Ge.error(`PostHog metrics flush failed:`,e)))}reset(){var e;(e=this.ol)==null||e.reset()}ul(){var e=this._instance,t=this;return{get isDisabled(){return!1},get optedOut(){return!e.is_capturing()},Bt:e=>t.Bt(e),getLibraryId:()=>Ys.LIB_NAME,getLibraryVersion:()=>Ys.LIB_VERSION}}Bt(e,t){return new Promise((n=>{var r=!1,i=e=>{r||(r=!0,clearTimeout(a),n(e))},a=setTimeout((()=>i({kind:`retry-later`,error:Error(`metrics request timed out`)})),9e4);this._instance._send_request(K({method:`POST`,url:this.xl(),data:e,compression:`best-available`,batchKey:`metrics`},t&&{transport:t},{fireCallbackOnDrop:!0,callback(e){var t=e.statusCode;i(t>=200&&300>t?{kind:`ok`}:t===413?{kind:`too-large`}:t!==0&&t!==429&&500>t?{kind:`fatal`,error:Error(`metrics request failed with status `+t)}
13:{kind:`retry-later`,error:e.error??Error(`metrics request failed with status `+t)})}}))}))}xl(){return this._instance.requestRouter.endpointFor(`api`,`/i/v1/metrics`)+`?token=`+encodeURIComponent(this._instance.config.token)}}});ig.__defaultExtensionClasses=K({},o_);var s_=function(){Ys.SDK_DIST_CHANNEL=`npm`;var e=Wh[Qh]=new ig;return function(){function e(){e.done||(e.done=!0,$h=!1,cf(Wh,(function(e){e._dom_loaded()})))}W!=null&&W.addEventListener?W.readyState===`complete`?e():gf(W,`DOMContentLoaded`,e,{capture:!1}):U&&X.error("Browser doesn't support `document.addEventListener` so PostHog couldn't be initialized")}(),e}(),c_;function l_(e){c_=e}function u_(){return c_}var d_=(0,V.createContext)({get client(){return u_()},bootstrap:void 0});function f_(e,t,n){if(n===void 0&&(n=new WeakMap),e===t)return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(n.has(e)&&n.get(e)===t)return!0;n.set(e,t);var r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;for(var a=0,o=r;a<o.length;a++){var s=o[a];if(!i.includes(s)||!f_(e[s],t[s],n))return!1}return!0}function p_(e){var t=e.children,n=e.client,r=e.apiKey,i=e.options,a=(0,V.useRef)(null),o=(0,V.useMemo)(function(){if(n)return r&&console.warn("[PostHog.js] You have provided both `client` and `apiKey` to `PostHogProvider`. `apiKey` will be ignored in favour of `client`."),i&&console.warn("[PostHog.js] You have provided both `client` and `options` to `PostHogProvider`. `options` will be ignored in favour of `client`."),n;var e=u_();return r||console.warn("[PostHog.js] No `apiKey` or `client` were provided to `PostHogProvider`. Using default global `window.posthog` instance. You must initialize it manually. This is not recommended behavior."),e},[n,r,JSON.stringify(i)]);return(0,V.useEffect)(function(){if(!(n||!r)){var e=u_(),t=a.current;t?(r!==t.apiKey&&console.warn("[PostHog.js] You have provided a different `apiKey` to `PostHogProvider` than the one that was already initialized. This is not supported by our provider and we'll keep using the previous key. If you need to toggle between API Keys you need to control the `client` yourself and pass it in as a prop rather than an `apiKey` prop."),i&&!f_(i,t.options)&&e.set_config(i),a.current={apiKey:r,options:i??{}}):(e.__loaded&&console.warn("[PostHog.js] `posthog` was already loaded elsewhere. This may cause issues."),e.init(r,i),a.current={apiKey:r,options:i??{}})}},[n,r,JSON.stringify(i)]),V.createElement(d_.Provider,{value:{client:o,bootstrap:i?.bootstrap??n?.config?.bootstrap}},t)}var m_=function(e){return typeof e==`function`},h_=function(){return(0,V.useContext)(d_).client},g_=function(e,t){return g_=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},g_(e,t)};function __(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);g_(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var v_={componentStack:null,exceptionEvent:null,error:null},y_={INVALID_FALLBACK:`[PostHog.js][PostHogErrorBoundary] Invalid fallback prop, provide a valid React element or a function that returns a valid React element.`};(function(e){__(t,e);function t(t){var n=e.call(this,t)||this;return n.state=v_,n}return t.prototype.componentDidCatch=function(e,t){var n=this.props.additionalProperties,r;m_(n)?r=n(e):typeof n==`object`&&(r=n);var i=this.context.client.captureException(e,r),a=t.componentStack;this.setState({error:e,componentStack:a??null,exceptionEvent:i})},t.prototype.render=function(){var e=this.props,t=e.children,n=e.fallback,r=this.state;if(r.componentStack==null)return m_(t)?t():t;var i=m_(n)?V.createElement(n,{error:r.error,componentStack:r.componentStack,exceptionEvent:r.exceptionEvent}):n;return V.isValidElement(i)?i:(console.warn(y_.INVALID_FALLBACK),V.createElement(V.Fragment,null))},t.contextType=d_,t})(V.Component),l_(s_);function b_({error:e,reset:t,info:n}){let r=h_();return(0,V.useEffect)(()=>{r.captureException(e,{info:n})},[r,e,n]),(0,H.jsx)(`div`,{className:`flex min-h-dvh items-center justify-center`,children:(0,H.jsxs)(`div`,{className:`space-y-4 px-4 text-center`,children:[(0,H.jsx)(`h1`,{className:`font-mono text-6xl font-bold text-default`,children:`500`}),(0,H.jsx)(`h2`,{className:`text-2xl font-semibold text-default`,children:`Something went wrong`}),(0,H.jsx)(`p`,{className:`max-w-md text-muted`,children:`An unexpected error occurred. Please try refreshing the page.`}),(0,H.jsx)(`div`,{className:`pt-4`,children:(0,H.jsx)(`button`,{onClick:t,className:`inline-block rounded bg-neutral-900 px-6 py-3 font-normal text-white transition-colors hover:bg-neutral-800 dark:bg-neutral-100 dar
13k:text-neutral-900 hover:dark:bg-neutral-200`,children:`Refresh`})})]})})}var x_=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 480" width="480" height="480" preserveAspectRatio="xMidYMid meet"> 14<defs> 15<clipPath id="__MARVIN_ID__-2"> 16<rect width="480" height="480" x="0" y="0"> 17</rect> 18</clipPath> 19<mask id="__MARVIN_ID__-32"> 20<rect fill="#ffffff" width="480" height="480" transform="matrix(1.8444225788116455,-0.2921278476715088,0.2921278476715088,1.8444225788116455,-499.2411804199219,-237.479248046875)"> 21</rect> 22<path fill="#000000" clip-rule="nonzero" d=" M267.857,-107.455 C267.857,-107.455 -52.93,34.42 -52.93,34.42 C-91.563,51.983 -101.96,84.826 -87.595,117.77 C-87.595,117.77 -65.308,170.898 -65.308,170.898 C-47.649,209.872 -4.017,210.051 32.487,191.579 C32.487,191.579 353.448,44.946 353.448,44.946 C353.448,44.946 267.857,-107.455 267.857,-107.455" fill-opacity="1"> 23</path> 24</mask> 25<mask id="__MARVIN_ID__-35"> 26<rect fill="#ffffff" width="480" height="480" transform="matrix(1.5686274766921997,0,0,1.5686274766921997,-375.80706787109375,-490.0094299316406)"> 27</rect> 28<path fill="#000000" clip-rule="nonzero" d=" M242.524,-281.174 C242.524,-281.174 -46.002,-204.202 -46.002,-204.202 C-72.452,-197.115 -90.944,-170.016 -83.857,-143.566 C-83.857,-143.566 -69.994,-95.882 -69.994,-95.882 C-62.907,-69.432 -33.955,-53.441 -7.506,-60.527 C-7.506,-60.527 285.88,-140.283 285.88,-140.283 C285.88,-140.283 242.524,-281.174 242.524,-281.174" fill-opacity="1"> 29<animate attributeName="d" values=" M242.524,-281.174 C242.524,-281.174 -46.002,-204.202 -46.002,-204.202 C-72.452,-197.115 -90.944,-170.016 -83.857,-143.566 C-83.857,-143.566 -69.994,-95.882 -69.994,-95.882 C-62.907,-69.432 -33.955,-53.441 -7.506,-60.527 C-7.506,-60.527 285.88,-140.283 285.88,-140.283 C285.88,-140.283 242.524,-281.174 242.524,-281.174; M242.788,-280.448 C242.788,-280.448 -45.675,-204.243 -45.675,-204.243 C-72.125,-197.156 -90.612,-170.107 -83.525,-143.657 C-83.525,-143.657 -69.783,-95.874 -69.783,-95.874 C-62.711,-69.461 -33.827,-53.47 -7.378,-60.556 C-7.378,-60.556 286.144,-139.557 286.144,-139.557 C286.144,-139.557 242.788,-280.448 242.788,-280.448; M243.088,-279.625 C243.088,-279.625 -45.304,-204.29 -45.304,-204.29 C-71.754,-197.203 -90.236,-170.211 -83.149,-143.761 C-83.149,-143.761 -69.543,-95.865 -69.543,-95.865 C-62.488,-69.495 -33.682,-53.502 -7.233,-60.588 C-7.233,-60.588 286.444,-138.734 286.444,-138.734 C286.444,-138.734 243.088,-279.625 243.088,-279.625; M243.415,-278.727 C243.415,-278.727 -44.9,-204.341 -44.9,-204.341 C-71.35,-197.254 -89.825,-170.323 -82.738,-143.873 C-82.738,-143.873 -69.282,-95.855 -69.282,-95.855 C-62.246,-69.531 -33.524,-53.538 -7.075,-60.624 C-7.075,-60.624 286.772,-137.836 286.772,-137.836 C286.772,-137.836 243.415,-278.727 243.415,-278.727; M243.763,-277.773 C243.763,-277.773 -44.47,-204.395 -44.47,-204.395 C-70.92,-197.308 -89.389,-170.443 -82.302,-143.993 C-82.302,-143.993 -69.004,-95.844 -69.004,-95.844 C-61.988,-69.57 -33.356,-53.575 -6.907,-60.661 C-6.907,-60.661 287.119,-136.882 287.119,-136.882 C287.119,-136.882 243.763,-277.773 243.763,-277.773; M244.126,-276.777 C244.126,-276.777 -44.021,-204.452 -44.021,-204.452 C-70.471,-197.365 -88.934,-170.568 -81.847,-144.118 C-81.847,-144.118 -68.714,-95.833 -68.714,-95.833 C-61.719,-69.61 -33.181,-53.615 -6.732,-60.701 C-6.732,-60.701 287.482,-135.886 287.482,-135.886 C287.482,-135.886 244.126,-276.777 244.126,-276.777; M244.884,-274.697 C244.884,-274.697 -43.083,-204.57 -43.083,-204.57 C-69.533,-197.483 -87.983,-170.83 -80.896,-144.38 C-80.896,-144.38 -68.108,-95.81 -68.108,-95.81 C-61.156,-69.694 -32.815,-53.697 -6.366,-60.783 C-6.366,-60.783 288.24,-133.806 288.24,-133.806 C288.24,-133.806 244.884,-274.697 244.884,-274.697; M247.243,-268.224 C247.243,-268.224 -40.167,-204.937 -40.167,-204.937 C-66.617,-197.85 -85.023,-171.643 -77.936,-145.193 C-77.936,-145.193 -66.223,-95.739 -66.223,-95.739 C-59.407,-69.956 -31.675,-53.953 -5.226,-61.039 C-5.226,-61.039 290.599,-127.332 290.599,-127.332 C290.599,-127.332 247.243,-268.224 247.243,-268.224; M248.401,-265.045 C248.401,-265.045 -38.734,-205.118 -38.734,-205.118 C-65.184,-198.031 -83.57,-172.042 -76.483,-145.592 C-76.483,-145.592 -65.298,-95.704 -65.298,-95.704 C-58.548,-70.085 -31.116,-54.079 -4.667,-61.165 C-4.667,-61.165 291.757,-124.153 291.757,-124.153 C291.757,-124.153 248.401,-265.045 248.401,-265.045; M249.15,-262.988 C249.15,-262.988 -37.808,-205.234 -37.808,-205.234 C-64.258,-198.147 -82.63,-172.301 -75.543,-145.851 C-75.543,-145.851 -64.699,-95.681 -64.699,-95.681 C-57.992,-70.168 -30.754,-54.16 -4.305,-61.246 C-4.305,-61.246 292.506,-122.097 292.506,-122.097 C292.506,-122.097 249.15,-262.988 249.15,-262.988; M249.517,-261.983 C249.517,-261.983 -37.355,-205.291 -37.355,-205.291 C-63.805,-198.204 -82.17,-172.427 -75.083,-145.977 C-75.083,-145.977 -64.406,-95.67 -64.406,-95.67 C-57.72,-70.209 -30.577,-54.2 -4.128,-61.286 C-4.128,-61.286 292.873,-121.092 292.873,-121.092 C292.873,-121.092 249.517,-261.983 249.517,-261.983; M250.23,-260.025 C250.23,-260.025 -36.472,-205.403 -36.472,-205.403 C-62.922,-198.316 -81.275,-172.673 -74.188,-146.223 C-74.188,-146.223 -63.836,-95.648 -63.836,-95.648 C-57.191,-70.288 -30.232,-54.277 -3.783,-61.363 C-3.783,-61.363 293.586,-119.133 293.586,-119.133 C293.586,-119.133 250.23,-260.025 250.23,-260.025; M250.577,-259.073 C250.577,-259.073 -36.043,-205.457 -36.043,-205.457 C-62.493,-198.37 -80.839,-172.792 -73.752,-146.342 C-73.752,-146.342 -63.559,-95.
29638 -63.559,-95.638 C-56.934,-70.327 -30.064,-54.315 -3.615,-61.401 C-3.615,-61.401 293.933,-118.181 293.933,-118.181 C293.933,-118.181 250.577,-259.073 250.577,-259.073; M251.249,-257.228 C251.249,-257.228 -35.212,-205.561 -35.212,-205.561 C-61.662,-198.474 -79.996,-173.024 -72.909,-146.574 C-72.909,-146.574 -63.022,-95.617 -63.022,-95.617 C-56.435,-70.402 -29.74,-54.388 -3.291,-61.474 C-3.291,-61.474 294.605,-116.336 294.605,-116.336 C294.605,-116.336 251.249,-257.228 251.249,-257.228; M251.574,-256.336 C251.574,-256.336 -34.81,-205.612 -34.81,-205.612 C-61.26,-198.525 -79.588,-173.136 -72.501,-146.686 C-72.501,-146.686 -62.762,-95.608 -62.762,-95.608 C-56.194,-70.438 -29.583,-54.423 -3.134,-61.509 C-3.134,-61.509 294.93,-115.445 294.93,-115.445 C294.93,-115.445 251.574,-256.336 251.574,-256.336; M251.892,-255.465 C251.892,-255.465 -34.418,-205.661 -34.418,-205.661 C-60.868,-198.574 -79.19,-173.246 -72.103,-146.796 C-72.103,-146.796 -62.508,-95.598 -62.508,-95.598 C-55.959,-70.473 -29.429,-54.457 -2.98,-61.543 C-2.98,-61.543 295.248,-114.574 295.248,-114.574 C295.248,-114.574 251.892,-255.465 251.892,-255.465; M252.502,-253.789 C252.502,-253.789 -33.662,-205.757 -33.662,-205.757 C-60.112,-198.67 -78.424,-173.456 -71.337,-147.006 C-71.337,-147.006 -62.02,-95.579 -62.02,-95.579 C-55.505,-70.541 -29.134,-54.524 -2.685,-61.61 C-2.685,-61.61 295.858,-112.897 295.858,-112.897 C295.858,-112.897 252.502,-253.789 252.502,-253.789; M252.796,-252.984 C252.796,-252.984 -33.3,-205.802 -33.3,-205.802 C-59.75,-198.715 -78.056,-173.557 -70.969,-147.107 C-70.969,-147.107 -61.786,-95.571 -61.786,-95.571 C-55.288,-70.574 -28.993,-54.555 -2.544,-61.641 C-2.544,-61.641 296.152,-112.092 296.152,-112.092 C296.152,-112.092 252.796,-252.984 252.796,-252.984; M253.358,-251.442 C253.358,-251.442 -32.605,-205.89 -32.605,-205.89 C-59.055,-198.803 -77.351,-173.751 -70.264,-147.301 C-70.264,-147.301 -61.337,-95.553 -61.337,-95.553 C-54.871,-70.636 -28.721,-54.616 -2.272,-61.702 C-2.272,-61.702 296.714,-110.55 296.714,-110.55 C296.714,-110.55 253.358,-251.442 253.358,-251.442; M253.626,-250.706 C253.626,-250.706 -32.273,-205.932 -32.273,-205.932 C-58.723,-198.845 -77.014,-173.844 -69.927,-147.394 C-69.927,-147.394 -61.123,-95.545 -61.123,-95.545 C-54.672,-70.666 -28.592,-54.645 -2.143,-61.731 C-2.143,-61.731 296.982,-109.814 296.982,-109.814 C296.982,-109.814 253.626,-250.706 253.626,-250.706; M254.137,-249.303 C254.137,-249.303 -31.641,-206.011 -31.641,-206.011 C-58.091,-198.924 -76.373,-174.02 -69.286,-147.57 C-69.286,-147.57 -60.714,-95.53 -60.714,-95.53 C-54.293,-70.723 -28.345,-54.701 -1.896,-61.787 C-1.896,-61.787 297.493,-108.411 297.493,-108.411 C297.493,-108.411 254.137,-249.303 254.137,-249.303; M254.614,-247.995 C254.614,-247.995 -31.052,-206.086 -31.052,-206.086 C-57.502,-198.999 -75.775,-174.184 -68.688,-147.734 C-68.688,-147.734 -60.333,-95.515 -60.333,-95.515 C-53.939,-70.776 -28.114,-54.753 -1.665,-61.839 C-1.665,-61.839 297.97,-107.103 297.97,-107.103 C297.97,-107.103 254.614,-247.995 254.614,-247.995; M255.055,-246.783 C255.055,-246.783 -30.506,-206.154 -30.506,-206.154 C-56.956,-199.067 -75.221,-174.336 -68.134,-147.886 C-68.134,-147.886 -59.98,-95.502 -59.98,-95.502 C-53.612,-70.825 -27.901,-54.8 -1.452,-61.886 C-1.452,-61.886 298.411,-105.891 298.411,-105.891 C298.411,-105.891 255.055,-246.783 255.055,-246.783; M255.462,-245.667 C255.462,-245.667 -30.003,-206.218 -30.003,-206.218 C-56.453,-199.131 -74.71,-174.477 -67.623,-148.027 C-67.623,-148.027 -59.656,-95.49 -59.656,-95.49 C-53.31,-70.87 -27.705,-54.845 -1.256,-61.931 C-1.256,-61.931 298.818,-104.775 298.818,-104.775 C298.818,-104.775 255.462,-245.667 255.462,-245.667; M255.652,-245.145 C255.652,-245.145 -29.768,-206.247 -29.768,-206.247 C-56.218,-199.16 -74.472,-174.542 -67.385,-148.092 C-67.385,-148.092 -59.504,-95.484 -59.504,-95.484 C-53.169,-70.891 -27.613,-54.865 -1.164,-61.951 C-1.164,-61.951 299.008,-104.254 299.008,-104.254 C299.008,-104.254 255.652,-245.145 255.652,-245.145; M256.006,-244.175 C256.006,-244.175 -29.331,-206.302 -29.331,-206.302 C-55.781,-199.215 -74.028,-174.664 -66.941,-148.214 C-66.941,-148.214 -59.221,-95.473 -59.221,-95.473 C-52.907,-70.93 -27.442,-54.904 -0.993,-61.99 C-0.993,-61.99 299.362,-103.283 299.362,-103.283 C299.362,-103.283 256.006,-244.175 256.006,-244.175;
29 M256.324,-243.302 C256.324,-243.302 -28.937,-206.352 -28.937,-206.352 C-55.387,-199.265 -73.629,-174.774 -66.542,-148.324 C-66.542,-148.324 -58.967,-95.464 -58.967,-95.464 C-52.671,-70.966 -27.288,-54.938 -0.839,-62.024 C-0.839,-62.024 299.68,-102.41 299.68,-102.41 C299.68,-102.41 256.324,-243.302 256.324,-243.302; M256.606,-242.527 C256.606,-242.527 -28.588,-206.396 -28.588,-206.396 C-55.038,-199.309 -73.275,-174.871 -66.188,-148.421 C-66.188,-148.421 -58.741,-95.455 -58.741,-95.455 C-52.462,-70.997 -27.152,-54.969 -0.703,-62.055 C-0.703,-62.055 299.962,-101.635 299.962,-101.635 C299.962,-101.635 256.606,-242.527 256.606,-242.527; M256.734,-242.176 C256.734,-242.176 -28.43,-206.416 -28.43,-206.416 C-54.88,-199.329 -73.114,-174.915 -66.027,-148.465 C-66.027,-148.465 -58.639,-95.451 -58.639,-95.451 C-52.367,-71.011 -27.09,-54.983 -0.641,-62.069 C-0.641,-62.069 300.09,-101.284 300.09,-101.284 C300.09,-101.284 256.734,-242.176 256.734,-242.176; M256.963,-241.547 C256.963,-241.547 -28.147,-206.452 -28.147,-206.452 C-54.597,-199.365 -72.827,-174.994 -65.74,-148.544 C-65.74,-148.544 -58.456,-95.444 -58.456,-95.444 C-52.197,-71.037 -26.979,-55.007 -0.53,-62.093 C-0.53,-62.093 300.319,-100.655 300.319,-100.655 C300.319,-100.655 256.963,-241.547 256.963,-241.547; M257.157,-241.016 C257.157,-241.016 -27.907,-206.482 -27.907,-206.482 C-54.357,-199.395 -72.584,-175.061 -65.497,-148.611 C-65.497,-148.611 -58.301,-95.438 -58.301,-95.438 C-52.053,-71.058 -26.886,-55.028 -0.437,-62.114 C-0.437,-62.114 300.513,-100.124 300.513,-100.124 C300.513,-100.124 257.157,-241.016 257.157,-241.016; M257.24,-240.787 C257.24,-240.787 -27.804,-206.495 -27.804,-206.495 C-54.254,-199.408 -72.479,-175.09 -65.392,-148.64 C-65.392,-148.64 -58.235,-95.436 -58.235,-95.436 C-51.991,-71.068 -26.845,-55.038 -0.396,-62.124 C-0.396,-62.124 300.596,-99.895 300.596,-99.895 C300.596,-99.895 257.24,-240.787 257.24,-240.787; M257.381,-240.401 C257.381,-240.401 -27.63,-206.517 -27.63,-206.517 C-54.08,-199.43 -72.303,-175.138 -65.216,-148.688 C-65.216,-148.688 -58.122,-95.432 -58.122,-95.432 C-51.887,-71.083 -26.778,-55.053 -0.329,-62.139 C-0.329,-62.139 300.737,-99.509 300.737,-99.509 C300.737,-99.509 257.381,-240.401 257.381,-240.401; M257.438,-240.245 C257.438,-240.245 -27.56,-206.525 -27.56,-206.525 C-54.01,-199.438 -72.232,-175.158 -65.145,-148.708 C-65.145,-148.708 -58.077,-95.43 -58.077,-95.43 C-51.845,-71.09 -26.75,-55.059 -0.301,-62.145 C-0.301,-62.145 300.794,-99.353 300.794,-99.353 C300.794,-99.353 257.438,-240.245 257.438,-240.245; M257.525,-240.005 C257.525,-240.005 -27.451,-206.539 -27.451,-206.539 C-53.901,-199.452 -72.122,-175.188 -65.035,-148.738 C-65.035,-148.738 -58.007,-95.427 -58.007,-95.427 C-51.78,-71.099 -26.708,-55.068 -0.259,-62.154 C-0.259,-62.154 300.881,-99.113 300.881,-99.113 C300.881,-99.113 257.525,-240.005 257.525,-240.005; M257.578,-239.861 C257.578,-239.861 -27.387,-206.547 -27.387,-206.547 C-53.837,-199.46 -72.056,-175.206 -64.969,-148.756 C-64.969,-148.756 -57.965,-95.426 -57.965,-95.426 C-51.741,-71.105 -26.682,-55.074 -0.233,-62.16 C-0.233,-62.16 300.934,-98.969 300.934,-98.969 C300.934,-98.969 257.578,-239.861 257.578,-239.861; M257.595,-239.813 C257.595,-239.813 -27.365,-206.55 -27.365,-206.55 C-53.815,-199.463 -72.034,-175.212 -64.947,-148.762 C-64.947,-148.762 -57.951,-95.425 -57.951,-95.425 C-51.728,-71.107 -26.674,-55.076 -0.225,-62.162 C-0.225,-62.162 300.951,-98.921 300.951,-98.921 C300.951,-98.921 257.595,-239.813 257.595,-239.813; M257.584,-239.829 C257.584,-239.829 -27.376,-206.549 -27.376,-206.549 C-53.827,-199.461 -72.043,-175.209 -64.956,-148.759 C-64.956,-148.759 -57.957,-95.423 -57.957,-95.423 C-51.734,-71.105 -26.679,-55.076 -0.23,-62.162 C-0.23,-62.162 300.941,-98.935 300.941,-98.935 C300.941,-98.935 257.584,-239.829 257.584,-239.829; M257.55,-239.878 C257.55,-239.878 -27.407,-206.545 -27.407,-206.545 C-53.863,-199.453 -72.07,-175.201 -64.983,-148.751 C-64.983,-148.751 -57.975,-95.418 -57.975,-95.418 C-51.752,-71.098 -26.695,-55.075 -0.246,-62.161 C-0.246,-62.161 300.913,-98.976 300.913,-98.976 C300.913,-98.976 257.55,-239.878 257.55,-239.878; M257.494,-239.96 C257.494,-239.96 -27.46,-206.538 -27.46,-206.538 C-53.923,-199.441 -72.116,-175.187 -65.029,-148.737 C-65.029,-148.737 -58.006,-95.409 -58.006,-95.409 C-51.781,-71.087 -26.721,-55.075 -0.272,-62.161 C-0.272,-62.161 300.865,-99.045 300.865,-99.045 C300.865,-99.045 257.494,-239.96 257.494,-239.96; M257.415,-240.074 C257.415,-240.074 -27.534,-206.529 -27.534,-206.529 C-54.006,-199.424 -72.18,-175.167 -65.093,-148.717 C-65.093,-148.717 -58.049,-95.396 -58.049,-95.396 C-51.823,-71.071 -26.758,-55.074 -0.309,-62.16 C-0.309,-62.16 300.797,-99.142 300.797,-99.142 C300.797,-99.142 257.415,-240.074 257.415,-240.074; M257.313,-240.221 C257.313,-240.221 -27.629,-206.517 -27.629,-206.517 C-54.114,-199.402 -72.262,-175.142 -65.175,-148.692 C-65.175,-148.692 -58.104,-95.38 -58.104,-95.38 C-51.876,-71.05 -26.805,-55.072 -0.356,-62.158 C-0.356,-62.158 300.711,-99.266 300.711,-99.266 C300.711,-99.266 257.313,-240.221 257.313,-240.221; M257.189,-240.401 C257.189,-240.401 -27.746,-206.503 -27.746,-206.503 C-54.246,-199.375 -72.362,-175.111 -65.275,-148.661 C-65.275,-148.661 -58.171,-95.36 -58.171,-95.36 C-51.941,-71.025 -26.863,-55.071 -0.414,-62.157 C-0.414,-62.157 300.605,-99.418 300.605,-99.418 C300.605,-99.418 257.189,-240.401 257.189,-240.401; M257.042,-240.614 C257.042,-240.614 -27.883,-206.486 -27.883,-206.486 C-54.402,-199.342 -72.481,-175.075 -65.394,-148.625 C-65.394,-148.625 -58.251,-95.337 -58.251,-95.337 C-52.018,-70.996 -26.931,-55.069 -0.482,-62.155 C-0.482,-62.155 300.479,-99.598 300.479,-99.598 C300.479,-99.598 257.042,-240.614 257.042,-240.614; M256.872,-240.861 C256.872,-240.861 -28.043,-206.466 -28.043,-206.466 C-54.583,-199.305 -72.618,-175.033 -65.531,-148.583 C-65.531,-148.583 -58.342,-95.309 -58.342,-95.309 C-52.107,-70.962 -27.01,-55.066 -0.561,-62.152 C-0.561,-62.152 300.335,-99.806 300.335,-99.806 C300.335,-99.806 256.872,-240.861 256.872,-240.861; M256.68,-241.14 C256.68,-241.14 -28.223,-206.444 -28.223,-206.444 C-54.787,-199.263 -72.774,-174.985 -65.687,-148.535 C-65.687,-148.535 -58.447,-95.279 -58.447,-95.279 C-52.208,-70.923 -27.099,-55.064 -0.65,-62.15 C-0.65,-62.15 3
2900.17,-100.042 300.17,-100.042 C300.17,-100.042 256.68,-241.14 256.68,-241.14; M256.464,-241.452 C256.464,-241.452 -28.425,-206.419 -28.425,-206.419 C-55.016,-199.216 -72.948,-174.931 -65.861,-148.481 C-65.861,-148.481 -58.564,-95.244 -58.564,-95.244 C-52.322,-70.88 -27.2,-55.061 -0.751,-62.147 C-0.751,-62.147 299.986,-100.306 299.986,-100.306 C299.986,-100.306 256.464,-241.452 256.464,-241.452; M256.226,-241.798 C256.226,-241.798 -28.648,-206.391 -28.648,-206.391 C-55.27,-199.165 -73.14,-174.872 -66.053,-148.422 C-66.053,-148.422 -58.693,-95.206 -58.693,-95.206 C-52.447,-70.832 -27.31,-55.058 -0.861,-62.144 C-0.861,-62.144 299.783,-100.598 299.783,-100.598 C299.783,-100.598 256.226,-241.798 256.226,-241.798; M255.964,-242.176 C255.964,-242.176 -28.893,-206.361 -28.893,-206.361 C-55.547,-199.108 -73.351,-174.807 -66.264,-148.357 C-66.264,-148.357 -58.834,-95.164 -58.834,-95.164 C-52.584,-70.779 -27.432,-55.054 -0.983,-62.14 C-0.983,-62.14 299.56,-100.918 299.56,-100.918 C299.56,-100.918 255.964,-242.176 255.964,-242.176; M255.68,-242.588 C255.68,-242.588 -29.16,-206.328 -29.16,-206.328 C-55.849,-199.046 -73.581,-174.737 -66.494,-148.287 C-66.494,-148.287 -58.988,-95.119 -58.988,-95.119 C-52.733,-70.722 -27.564,-55.05 -1.115,-62.136 C-1.115,-62.136 299.318,-101.266 299.318,-101.266 C299.318,-101.266 255.68,-242.588 255.68,-242.588; M255.373,-243.033 C255.373,-243.033 -29.448,-206.292 -29.448,-206.292 C-56.175,-198.979 -73.829,-174.66 -66.742,-148.21 C-66.742,-148.21 -59.154,-95.07 -59.154,-95.07 C-52.894,-70.66 -27.706,-55.046 -1.257,-62.132 C-1.257,-62.132 299.056,-101.642 299.056,-101.642 C299.056,-101.642 255.373,-243.033 255.373,-243.033; M255.043,-243.511 C255.043,-243.511 -29.757,-206.253 -29.757,-206.253 C-56.526,-198.907 -74.096,-174.578 -67.009,-148.128 C-67.009,-148.128 -59.333,-95.017 -59.333,-95.017 C-53.067,-70.594 -27.86,-55.042 -1.411,-62.128 C-1.411,-62.128 298.775,-102.046 298.775,-102.046 C298.775,-102.046 255.043,-243.511 255.043,-243.511; M254.69,-244.023 C254.69,-244.023 -30.088,-206.212 -30.088,-206.212 C-56.901,-198.83 -74.381,-174.491 -67.294,-148.041 C-67.294,-148.041 -59.524,-94.961 -59.524,-94.961 C-53.253,-70.523 -28.024,-55.037 -1.575,-62.123 C-1.575,-62.123 298.474,-102.479 298.474,-102.479 C298.474,-102.479 254.69,-244.023 254.69,-244.023; M254.314,-244.568 C254.314,-244.568 -30.44,-206.169 -30.44,-206.169 C-57.3,-198.748 -74.685,-174.397 -67.598,-147.947 C-67.598,-147.947 -59.728,-94.901 -59.728,-94.901 C-53.45,-70.447 -28.198,-55.032 -1.749,-62.118 C-1.749,-62.118 298.153,-102.939 298.153,-102.939 C298.153,-102.939 254.314,-244.568 254.314,-244.568; M253.916,-245.145 C253.916,-245.145 -30.814,-206.123 -30.814,-206.123 C-57.723,-198.661 -75.007,-174.298 -67.92,-147.848 C-67.92,-147.848 -59.944,-94.837 -59.944,-94.837 C-53.659,-70.367 -28.384,-55.027 -1.935,-62.113 C-1.935,-62.113 297.813,-103.427 297.813,-103.427 C297.813,-103.427 253.916,-245.145 253.916,-245.145; M253.494,-245.756 C253.494,-245.756 -31.209,-206.074 -31.209,-206.074 C-58.171,-198.569 -75.347,-174.194 -68.26,-147.744 C-68.26,-147.744 -60.172,-94.77 -60.172,-94.77 C-53.88,-70.283 -28.58,-55.021 -2.131,-62.107 C-2.131,-62.107 297.453,-103.943 297.453,-103.943 C297.453,-103.943 253.494,-245.756 253.494,-245.756; M253.05,-246.4 C253.05,-246.4 -31.625,-206.022 -31.625,-206.022 C-58.643,-198.472 -75.706,-174.083 -68.619,-147.633 C-68.619,-147.633 -60.413,-94.699 -60.413,-94.699 C-54.114,-70.193 -28.786,-55.015 -2.337,-62.101 C-2.337,-62.101 297.075,-104.487 297.075,-104.487 C297.075,-104.487 253.05,-246.4 253.05,-246.4; M252.583,-247.077 C252.583,-247.077 -32.063,-205.968 -32.063,-205.968 C-59.139,-198.371 -76.083,-173.968 -68.996,-147.518 C-68.996,-147.518 -60.665,-94.624 -60.665,-94.624 C-54.359,-70.099 -29.003,-55.009 -2.554,-62.095 C-2.554,-62.095 296.676,-105.059 296.676,-105.059 C296.676,-105.059 252.583,-247.077 252.583,-247.077; M252.094,-247.786 C252.094,-247.786 -32.522,-205.911 -32.522,-205.911 C-59.659,-198.264 -76.479,-173.846 -69.392,-147.396 C-69.392,-147.396 -60.931,-94.546 -60.931,-94.546 C-54.616,-70.001 -29.23,-55.003 -2.781,-62.089 C-2.781,-62.089 296.259,-105.659 296.259,-105.659 C296.259,-105.659 252.094,-247.786 252.094,-247.786; M251.582,-248.528 C251.582,-248.528 -33.002,-205.851 -33.002,-205.851 C-60.203,-198.152 -76.893,-173.719 -69.806,-147.269 C-69.806,-147.269 -61.208,-94.464 -61.208,-94.464 C-54.884,-69.898 -29.468,-54.996 -3.019,-62.082 C-3.019,-62.082 295.822,-106.286 295.822,-106.286 C295.822,-106.286 251.582,-248.528 251.582,-248.528; M251.047,-249.303 C251.047,-249.303 -33.503,-205.789 -33.503,-205.789 C-60.771,-198.036 -77.324,-173.586 -70.237,-147.
29136 C-70.237,-147.136 -61.497,-94.379 -61.497,-94.379 C-55.165,-69.79 -29.717,-54.989 -3.268,-62.075 C-3.268,-62.075 295.366,-106.94 295.366,-106.94 C295.366,-106.94 251.047,-249.303 251.047,-249.303; M250.491,-250.11 C250.491,-250.11 -34.024,-205.725 -34.024,-205.725 C-61.362,-197.914 -77.774,-173.448 -70.687,-146.998 C-70.687,-146.998 -61.799,-94.29 -61.799,-94.29 C-55.457,-69.679 -29.975,-54.981 -3.526,-62.067 C-3.526,-62.067 294.892,-107.622 294.892,-107.622 C294.892,-107.622 250.491,-250.11 250.491,-250.11; M249.912,-250.948 C249.912,-250.948 -34.567,-205.657 -34.567,-205.657 C-61.977,-197.788 -78.242,-173.304 -71.155,-146.854 C-71.155,-146.854 -62.112,-94.197 -62.112,-94.197 C-55.761,-69.562 -30.244,-54.973 -3.795,-62.059 C-3.795,-62.059 294.398,-108.331 294.398,-108.331 C294.398,-108.331 249.912,-250.948 249.912,-250.948; M249.312,-251.819 C249.312,-251.819 -35.13,-205.588 -35.13,-205.588 C-62.615,-197.657 -78.727,-173.155 -71.64,-146.705 C-71.64,-146.705 -62.437,-94.101 -62.437,-94.101 C-56.076,-69.441 -30.523,-54.965 -4.074,-62.051 C-4.074,-62.051 293.886,-109.066 293.886,-109.066 C293.886,-109.066 249.312,-251.819 249.312,-251.819; M248.689,-252.72 C248.689,-252.72 -35.713,-205.515 -35.713,-205.515 C-63.276,-197.522 -79.229,-173.001 -72.142,-146.551 C-72.142,-146.551 -62.774,-94.002 -62.774,-94.002 C-56.402,-69.316 -30.812,-54.957 -4.363,-62.043 C-4.363,-62.043 293.355,-109.828 293.355,-109.828 C293.355,-109.828 248.689,-252.72 248.689,-252.72; M248.046,-253.652 C248.046,-253.652 -36.316,-205.441 -36.316,-205.441 C-63.959,-197.382 -79.749,-172.841 -72.662,-146.391 C-72.662,-146.391 -63.123,-93.899 -63.123,-93.899 C-56.74,-69.187 -31.111,-54.948 -4.662,-62.035 C-4.662,-62.035 292.807,-110.616 292.807,-110.616 C292.807,-110.616 248.046,-253.652 248.046,-253.652; M247.382,-254.615 C247.382,-254.615 -36.938,-205.363 -36.938,-205.363 C-64.665,-197.237 -80.286,-172.676 -73.199,-146.226 C-73.199,-146.226 -63.482,-93.793 -63.482,-93.793 C-57.089,-69.054 -31.42,-54.94 -4.971,-62.026 C-4.971,-62.026 292.24,-111.429 292.24,-111.429 C292.24,-111.429 247.382,-254.615 247.382,-254.615; M245.992,-256.629 C245.992,-256.629 -38.241,-205.202 -38.241,-205.202 C-66.141,-196.934 -81.409,-172.331 -74.322,-145.881 C-74.322,-145.881 -64.235,-93.571 -64.235,-93.571 C-57.818,-68.774 -32.066,-54.921 -5.617,-62.007 C-5.617,-62.007 291.055,-113.131 291.055,-113.131 C291.055,-113.131 245.992,-256.629 245.992,-256.629; M244.524,-258.757 C244.524,-258.757 -39.617,-205.031 -39.617,-205.031 C-67.701,-196.614 -82.595,-171.966 -75.508,-145.516 C-75.508,-145.516 -65.03,-93.336 -65.03,-93.336 C-58.589,-68.479 -32.748,-54.901 -6.299,-61.987 C-6.299,-61.987 289.803,-114.93 289.803,-114.93 C289.803,-114.93 244.524,-258.757 244.524,-258.757; M243.762,-259.862 C243.762,-259.862 -40.331,-204.943 -40.331,-204.943 C-68.51,-196.448 -83.21,-171.777 -76.123,-145.327 C-76.123,-145.327 -65.443,-93.214 -65.443,-93.214 C-58.989,-68.326 -33.102,-54.891 -6.653,-61.977 C-6.653,-61.977 289.153,-115.863 289.153,-115.863 C289.153,-115.863 243.762,-259.862 243.762,-259.862; M242.187,-262.145 C242.187,-262.145 -41.808,-204.76 -41.808,-204.76 C-70.184,-196.104 -84.483,-171.386 -77.396,-144.936 C-77.396,-144.936 -66.296,-92.963 -66.296,-92.963 C-59.815,-68.009 -33.834,-54.87 -7.385,-61.956 C-7.385,-61.956 287.809,-117.792 287.809,-117.792 C287.809,-117.792 242.187,-262.145 242.187,-262.145; M241.375,-263.321 C241.375,-263.321 -42.569,-204.665 -42.569,-204.665 C-71.046,-195.927 -85.139,-171.184 -78.052,-144.734 C-78.052,-144.734 -66.736,-92.833 -66.736,-92.833 C-60.242,-67.846 -34.211,-54.859 -7.762,-61.945 C-7.762,-61.945 287.117,-118.786 287.117,-118.786 C287.117,-118.786 241.375,-263.321 241.375,-263.321; M239.71,-265.734 C239.71,-265.734 -44.13,-204.472 -44.13,-204.472 C-72.815,-195.565 -86.484,-170.771 -79.397,-144.321 C-79.397,-144.321 -67.638,-92.567 -67.638,-92.567 C-61.115,-67.511 -34.985,-54.837 -8.536,-61.923 C-8.536,-61.923 285.697,-120.825 285.697,-120.825 C285.697,-120.825 239.71,-265.734 239.71,-265.734; M238.001,-268.212 C238.001,-268.212 -45.732,-204.273 -45.732,-204.273 C-74.63,-195.192 -87.865,-170.347 -80.778,-143.897 C-80.778,-143.897 -68.563,-92.294 -68.563,-92.294 C-62.012,-67.167 -35.779,-54.814 -9.33,-61.9 C-9.33,-61.9 284.239,-122.919 284.239,-122.919 C284.239,-122.919 238.001,-268.212 238.001,-268.212; M233.67,-274.489 C233.67,-274.489 -49.792,-203.77 -49.792,-203.77 C-79.231,-194.248 -91.364,-169.271 -84.277,-142.821 C-84.277,-142.821 -70.9
2909,-91.602 -70.909,-91.602 C-64.286,-66.297 -37.792,-54.757 -11.343,-61.843 C-11.343,-61.843 280.545,-128.223 280.545,-128.223 C280.545,-128.223 233.67,-274.489 233.67,-274.489; M232.827,-275.711 C232.827,-275.711 -50.582,-203.672 -50.582,-203.672 C-80.127,-194.064 -92.046,-169.062 -84.959,-142.612 C-84.959,-142.612 -71.366,-91.467 -71.366,-91.467 C-64.728,-66.127 -38.184,-54.745 -11.735,-61.831 C-11.735,-61.831 279.826,-129.256 279.826,-129.256 C279.826,-129.256 232.827,-275.711 232.827,-275.711; M232.007,-276.899 C232.007,-276.899 -51.351,-203.577 -51.351,-203.577 C-80.998,-193.885 -92.708,-168.858 -85.621,-142.408 C-85.621,-142.408 -71.81,-91.336 -71.81,-91.336 C-65.159,-65.962 -38.565,-54.734 -12.116,-61.82 C-12.116,-61.82 279.126,-130.26 279.126,-130.26 C279.126,-130.26 232.007,-276.899 232.007,-276.899; M231.219,-278.04 C231.219,-278.04 -52.088,-203.485 -52.088,-203.485 C-81.835,-193.714 -93.344,-168.663 -86.257,-142.213 C-86.257,-142.213 -72.236,-91.21 -72.236,-91.21 C-65.572,-65.804 -38.931,-54.724 -12.482,-61.81 C-12.482,-61.81 278.455,-131.224 278.455,-131.224 C278.455,-131.224 231.219,-278.04 231.219,-278.04; M230.478,-279.114 C230.478,-279.114 -52.783,-203.399 -52.783,-203.399 C-82.622,-193.552 -93.943,-168.479 -86.856,-142.029 C-86.856,-142.029 -72.638,-91.092 -72.638,-91.092 C-65.961,-65.655 -39.275,-54.714 -12.826,-61.8 C-12.826,-61.8 277.823,-132.132 277.823,-132.132 C277.823,-132.132 230.478,-279.114 230.478,-279.114; M229.801,-280.096 C229.801,-280.096 -53.418,-203.321 -53.418,-203.321 C-83.341,-193.405 -94.491,-168.31 -87.404,-141.86 C-87.404,-141.86 -73.005,-90.983 -73.005,-90.983 C-66.316,-65.519 -39.59,-54.705 -13.141,-61.791 C-13.141,-61.791 277.245,-132.962 277.245,-132.962 C277.245,-132.962 229.801,-280.096 229.801,-280.096; M229.211,-280.951 C229.211,-280.951 -53.971,-203.252 -53.971,-203.252 C-83.968,-193.276 -94.967,-168.164 -87.88,-141.714 C-87.88,-141.714 -73.324,-90.889 -73.324,-90.889 C-66.626,-65.4 -39.864,-54.697 -13.415,-61.783 C-13.415,-61.783 276.742,-133.684 276.742,-133.684 C276.742,-133.684 229.211,-280.951 229.211,-280.951; M216.932,-291.464 C216.932,-291.464 -62.591,-201.666 -62.591,-201.666 C-93.487,-190.958 -102.656,-165.627 -95.569,-139.177 C-95.569,-139.177 -79.096,-88.988 -79.096,-88.988 C-72.278,-63.202 -44.333,-54.601 -17.884,-61.687 C-17.884,-61.687 265.522,-142.581 265.522,-142.581 C265.522,-142.581 216.932,-291.464 216.932,-291.464; M208.653,-301.977 C208.653,-301.977 -67.211,-200.08 -67.211,-200.08 C-99.006,-188.639 -106.344,-163.09 -99.257,-136.64 C-99.257,-136.64 -80.868,-87.088 -80.868,-87.088 C-73.93,-61.005 -44.802,-54.505 -18.353,-61.591 C-18.353,-61.591 258.301,-151.477 258.301,-151.477 C258.301,-151.477 208.653,-301.977 208.653,-301.977; M210.418,-313.828 C210.418,-313.828 -73.297,-197.793 -73.297,-197.793 C-106.011,-185.604 -111.479,-159.833 -104.392,-133.383 C-104.392,-133.383 -84.046,-84.481 -84.046,-84.481 C-76.985,-58.095 -46.649,-53.741 -20.2,-60.827 C-20.2,-60.827 261.147,-161.677 261.147,-161.677 C261.147,-161.677 210.418,-313.828 210.418,-313.828; M210.759,-314.23 C210.759,-314.23 -73.158,-197.833 -73.158,-197.833 C-105.895,-185.625 -111.315,-159.848 -104.228,-133.398 C-104.228,-133.398 -83.832,-84.513 -83.832,-84.513 C-76.768,-58.119 -46.401,-53.82 -19.952,-60.906 C-19.952,-60.906 261.515,-162.037 261.515,-162.037 C261.515,-162.037 210.759,-314.23 210.759,-314.23; M211.57,-315.188 C211.57,-315.188 -72.826,-197.928 -72.826,-197.928 C-105.619,-185.674 -110.926,-159.883 -103.839,-133.433 C-103.839,-133.433 -83.322,-84.588 -83.322,-84.588 C-76.251,-58.175 -45.81,-54.008 -19.361,-61.094 C-19.361,-61.094 262.393,-162.895 262.393,-162.895 C262.393,-162.895 211.57,-315.188 211.57,-315.188; M211.944,-315.63 C211.944,-315.63 -72.673,-197.972 -72.673,-197.972 C-105.492,-185.697 -110.746,-159.9 -103.659,-133.45 C-103.659,-133.45 -83.088,-84.623 -83.088,-84.623 C-76.012,-58.202 -45.538,-54.094 -19.089,-61.18 C-19.089,-61.18 262.797,-163.29 262.797,-163.29 C262.797,-163.29 211.944,-315.63 211.944,-315.63; M212.276,-316.022 C212.276,-316.022 -72.537,-198.011 -72.537,-198.011 C-105.379,-185.717 -110.586,-159.914 -103.499,-133.464 C-103.499,-133.464 -82.879,-84.653 -82.879,-84.653 C-75.801,-58.225 -45.296,-54.171 -18.847,-61.257 C-18.847,-61.257 263.156,-163.641 263.156,-163.641 C263.156,-163.641 212.276,-316.022 212.276,-316.022; M212.56,-316.358 C212.56,-316.358 -72.42,-198.044 -72.42,-198.044 C-105.283,-185.734 -110.45,-159.927 -103.363,-133.477 C-103.363,-133.477 -82.7,-84.68 -82.7,-84.68 C-75.62,-58.245 -45.089,-54.237 -18.64,-61.323 C-18.64,-61.323 263.464,-163.941 263.464,-163.941 C263.464,-163.941 212.56,-316.358 212.56,-316.358; M212.794,-316.634 C212.794,-316.634 -72.325,-198.071 -72.325,-198.071 C-105.203,-185.749 -110.337,-159.937 -103.25,-133.487 C-103.25,-133.487 -82.554,-84.701 -82.554,-84.701 C-75.47,-58.261 -44.919,-54.291 -18.47,-61.377 C-18.47,-61.377 263.716,-164.188 263.716,-164.188 C263.716,-164.188 212.794,-316.634 212.794,-316.634; M212.976,-316.849 C212.976,-316.849 -72.25,-198.093 -72.25,-198.093 C-105.141,-185.76 -110.25,-159.945 -103.163,
29-133.495 C-103.163,-133.495 -82.439,-84.718 -82.439,-84.718 C-75.354,-58.274 -44.787,-54.333 -18.338,-61.419 C-18.338,-61.419 263.913,-164.381 263.913,-164.381 C263.913,-164.381 212.976,-316.849 212.976,-316.849; M213.106,-317.002 C213.106,-317.002 -72.197,-198.108 -72.197,-198.108 C-105.097,-185.768 -110.188,-159.95 -103.101,-133.5 C-103.101,-133.5 -82.358,-84.73 -82.358,-84.73 C-75.272,-58.283 -44.692,-54.363 -18.243,-61.449 C-18.243,-61.449 264.053,-164.518 264.053,-164.518 C264.053,-164.518 213.106,-317.002 213.106,-317.002; M213.183,-317.094 C213.183,-317.094 -72.166,-198.117 -72.166,-198.117 C-105.071,-185.772 -110.15,-159.954 -103.063,-133.504 C-103.063,-133.504 -82.309,-84.738 -82.309,-84.738 C-75.222,-58.288 -44.636,-54.381 -18.187,-61.467 C-18.187,-61.467 264.137,-164.6 264.137,-164.6 C264.137,-164.6 213.183,-317.094 213.183,-317.094; M213.209,-317.124 C213.209,-317.124 -72.155,-198.12 -72.155,-198.12 C-105.062,-185.774 -110.138,-159.955 -103.051,-133.505 C-103.051,-133.505 -82.293,-84.74 -82.293,-84.74 C-75.206,-58.29 -44.617,-54.387 -18.168,-61.473 C-18.168,-61.473 264.165,-164.627 264.165,-164.627 C264.165,-164.627 213.209,-317.124 213.209,-317.124; M213.233,-317.095 C213.233,-317.095 -72.134,-198.125 -72.134,-198.125 C-105.036,-185.783 -110.122,-159.963 -103.035,-133.513 C-103.035,-133.513 -82.283,-84.749 -82.283,-84.749 C-75.196,-58.299 -44.608,-54.386 -18.159,-61.472 C-18.159,-61.472 264.183,-164.607 264.183,-164.607 C264.183,-164.607 213.233,-317.095 213.233,-317.095; M213.304,-317.007 C213.304,-317.007 -72.07,-198.14 -72.07,-198.14 C-104.956,-185.811 -110.076,-159.988 -102.989,-133.538 C-102.989,-133.538 -82.253,-84.776 -82.253,-84.776 C-75.166,-58.326 -44.582,-54.384 -18.133,-61.47 C-18.133,-61.47 264.236,-164.548 264.236,-164.548 C264.236,-164.548 213.304,-317.007 213.304,-317.007; M213.424,-316.861 C213.424,-316.861 -71.963,-198.165 -71.963,-198.165 C-104.823,-185.857 -109.997,-160.029 -102.91,-133.579 C-102.91,-133.579 -82.203,-84.822 -82.203,-84.822 C-75.116,-58.372 -44.539,-54.38 -18.09,-61.466 C-18.09,-61.466 264.324,-164.449 264.324,-164.449 C264.324,-164.449 213.424,-316.861 213.424,-316.861; M213.591,-316.655 C213.591,-316.655 -71.814,-198.199 -71.814,-198.199 C-104.637,-185.922 -109.888,-160.086 -102.801,-133.636 C-102.801,-133.636 -82.133,-84.885 -82.133,-84.885 C-75.046,-58.435 -44.478,-54.375 -18.029,-61.461 C-18.029,-61.461 264.448,-164.31 264.448,-164.31 C264.448,-164.31 213.591,-316.655 213.591,-316.655; M213.807,-316.391 C213.807,-316.391 -71.622,-198.244 -71.622,-198.244 C-104.397,-186.005 -109.746,-160.16 -102.659,-133.71 C-102.659,-133.71 -82.042,-84.967 -82.042,-84.967 C-74.955,-58.517 -44.4,-54.368 -17.951,-61.454 C-17.951,-61.454 264.608,-164.13 264.608,-164.13 C264.608,-164.13 213.807,-316.391 213.807,-316.391; M214.071,-316.067 C214.071,-316.067 -71.386,-198.299 -71.386,-198.299 C-104.103,-186.107 -109.574,-160.251 -102.487,-133.801 C-102.487,-133.801 -81.931,-85.068 -81.931,-85.068 C-74.844,-58.618 -44.304,-54.359 -17.855,-61.445 C-17.855,-61.445 264.803,-163.911 264.803,-163.911 C264.803,-163.911 214.071,-316.067 214.071,-316.067; M214.383,-315.684 C214.383,-315.684 -71.107,-198.364 -71.107,-198.364 C-103.756,-186.228 -109.369,-160.358 -102.282,-133.908 C-102.282,-133.908 -81.8,-85.186 -81.8,-85.186 C-74.713,-58.736 -44.19,-54.349 -17.741,-61.435 C-17.741,-61.435 265.035,-163.652 265.035,-163.652 C265.035,-163.652 214.383,-315.684 214.383,-315.684; M214.744,-315.241 C214.744,-315.241 -70.785,-198.439 -70.785,-198.439 C-103.354,-186.368 -109.133,-160.482 -102.046,-134.032 C-102.046,-134.032 -81.649,-85.324 -81.649,-85.324 C-74.562,-58.874 -44.059,-54.337 -17.61,-61.423 C-17.61,-61.423 265.302,-163.352 265.302,-163.352 C265.302,-163.352 214.744,-315.241 214.744,-315.241; M215.154,-314.739 C215.154,-314.739 -70.42,-198.523 -70.42,-198.523 C-102.899,-186.526 -108.865,-160.622 -101.778,-134.172 C-101.778,-134.172 -81.477,-85.479 -81.477,-85.479 C-74.39,-59.029 -43.91,-54.324 -17.461,-61.41 C-17.461,-61.41 265.605,-163.012 265.605,-163.012 C265.605,-163.012 215.154,-314.739 215.154,-314.739; M215.612,-314.178 C215.612,-314.178 -70.012,-198.618 -70.012,-198.618 C-102.389,-186.703 -108.565,-160.78 -101.478,-134.33 C-101.478,-134.33 -81.285,-85.653 -81.285,-85.653 C-74.198,-59.203 -43.743,-54.309 -17.294,-61.395 C-17.294,-61.395 265.945,-162.632 265.945,-162.632 C265.945,-162.632 215.612,-314.178 215.612,-314.178; M216.118,-313.556 C216.118,-313.556 -69.56,-198.724 -69.56,-198.724 C-101.826,-186.899 -108.233,-160.953 -101.146,-134.503 C-101.146,-134.503 -81.072,-85.846 -81.072,-85.846 C-73.985,-59.396 -43.559,-54.293 -17.11,-61.379 C-17.11,-61.379 266.32,-162.211 266.32,-162.211 C266.32,-162.211 216.118,-313.556 216.118,-313.556; M216.673,-312.876 C216.673,-312.876 -69.064,-198.839 -69.064,-198.839 C-101.208,-187.114 -107.87,-161.144 -100.783,-134.694 C-100.783,-134.694 -80.84,-86.057 -80.84,-86.057 C-73.753,-59.607 -43.357,-54.275 -16.908,-61.361 C-16.908,-61.361 266.731,-161.75 266.731,-161.75 C266.731,-161.75 216.673,-312.876 216.673,-312.876; M217.277,-312.136 C217.277,-312.136 -68.526,-198.964 -68.526,-198.964 C-100.537,-187.348 -107.475,-161.351 -100.388,-134.901 C-100.388,-134.901 -80.586,-86.286 -80.586,-86.286 C-73.499,-59.836 -43.138,-54.256 -16.689,-61.342 C-16.689,-61.342 267.178,-161.249 267.178,-161.249 C267.178,-161.249 217.277,-312.136 217.277,-312.136;
29 M217.928,-311.336 C217.928,-311.336 -67.945,-199.099 -67.945,-199.099 C-99.812,-187.6 -107.048,-161.575 -99.961,-135.125 C-99.961,-135.125 -80.313,-86.534 -80.313,-86.534 C-73.226,-60.084 -42.901,-54.235 -16.452,-61.321 C-16.452,-61.321 267.661,-160.708 267.661,-160.708 C267.661,-160.708 217.928,-311.336 217.928,-311.336; M218.628,-310.478 C218.628,-310.478 -67.32,-199.244 -67.32,-199.244 C-99.034,-187.871 -106.59,-161.815 -99.503,-135.365 C-99.503,-135.365 -80.019,-86.8 -80.019,-86.8 C-72.932,-60.35 -42.646,-54.212 -16.197,-61.298 C-16.197,-61.298 268.179,-160.127 268.179,-160.127 C268.179,-160.127 218.628,-310.478 218.628,-310.478; M219.376,-309.561 C219.376,-309.561 -66.653,-199.399 -66.653,-199.399 C-98.202,-188.16 -106.1,-162.072 -99.013,-135.622 C-99.013,-135.622 -79.706,-87.084 -79.706,-87.084 C-72.619,-60.634 -42.374,-54.188 -15.925,-61.274 C-15.925,-61.274 268.733,-159.506 268.733,-159.506 C268.733,-159.506 219.376,-309.561 219.376,-309.561; M220.171,-308.586 C220.171,-308.586 -65.944,-199.564 -65.944,-199.564 C-97.318,-188.467 -105.58,-162.344 -98.493,-135.894 C-98.493,-135.894 -79.372,-87.386 -79.372,-87.386 C-72.285,-60.936 -42.085,-54.162 -15.636,-61.248 C-15.636,-61.248 269.322,-158.846 269.322,-158.846 C269.322,-158.846 220.171,-308.586 220.171,-308.586; M221.013,-307.554 C221.013,-307.554 -65.193,-199.739 -65.193,-199.739 C-96.381,-188.793 -105.028,-162.633 -97.941,-136.183 C-97.941,-136.183 -79.019,-87.706 -79.019,-87.706 C-71.932,-61.256 -41.779,-54.135 -15.33,-61.221 C-15.33,-61.221 269.946,-158.146 269.946,-158.146 C269.946,-158.146 221.013,-307.554 221.013,-307.554; M221.901,-306.464 C221.901,-306.464 -64.4,-199.923 -64.4,-199.923 C-95.393,-189.137 -104.447,-162.938 -97.36,-136.488 C-97.36,-136.488 -78.646,-88.044 -78.646,-88.044 C-71.559,-61.594 -41.456,-54.107 -15.007,-61.193 C-15.007,-61.193 270.604,-157.409 270.604,-157.409 C270.604,-157.409 221.901,-306.464 221.901,-306.464; M222.835,-305.319 C222.835,-305.319 -63.567,-200.117 -63.567,-200.117 C-94.354,-189.498 -103.835,-163.259 -96.748,-136.809 C-96.748,-136.809 -78.254,-88.399 -78.254,-88.399 C-71.167,-61.949 -41.116,-54.076 -14.667,-61.162 C-14.667,-61.162 271.296,-156.633 271.296,-156.633 C271.296,-156.633 222.835,-305.319 222.835,-305.319; M223.814,-304.119 C223.814,-304.119 -62.694,-200.32 -62.694,-200.32 C-93.265,-189.877 -103.195,-163.595 -96.108,-137.145 C-96.108,-137.145 -77.844,-88.771 -77.844,-88.771 C-70.757,-62.321 -40.76,-54.045 -14.311,-61.131 C-14.311,-61.131 272.02,-155.821 272.02,-155.821 C272.02,-155.821 223.814,-304.119 223.814,-304.119; M224.836,-302.866 C224.836,-302.866 -61.782,-200.532 -61.782,-200.532 C-92.129,-190.272 -102.525,-163.945 -95.438,-137.495 C-95.438,-137.495 -77.415,-89.159 -77.415,-89.159 C-70.328,-62.709 -40.388,-54.012 -13.939,-61.098 C-13.939,-61.098 272.777,-154.972 272.777,-154.972 C272.777,-154.972 224.836,-302.866 224.836,-302.866; M225.9,-301.561 C225.9,-301.561 -60.833,-200.753 -60.833,-200.753 C-90.945,-190.684 -101.829,-164.311 -94.742,-137.861 C-94.742,-137.861 -76.969,-89.563 -76.969,-89.563 C-69.882,-63.113 -40.001,-53.977 -13.552,-61.063 C-13.552,-61.063 273.566,-154.088 273.566,-154.088 C273.566,-154.088 225.9,-301.561 225.9,-301.561; M227.004,-300.206 C227.004,-300.206 -59.848,-200.982 -59.848,-200.982 C-89.716,-191.111 -101.106,-164.69 -94.019,-138.24 C-94.019,-138.24 -76.505,-89.983 -76.505,-89.983 C-69.418,-63.533 -39.6,-53.942 -13.151,-61.028 C-13.151,-61.028 274.384,-153.171 274.384,-153.171 C274.384,-153.171 227.004,-300.206 227.004,-300.206; M228.147,-298.805 C228.147,-298.805 -58.828,-201.219 -58.828,-201.219 C-88.445,-191.553 -100.357,-165.082 -93.27,-138.632 C-93.27,-138.632 -76.026,-90.418 -76.026,-90.418 C-68.939,-63.968 -39.184,-53.905 -12.735,-60.991 C-12.735,-60.991 275.23,-152.222 275.23,-152.222 C275.23,-152.222 228.147,-298.805 228.147,-298.805; M229.325,-297.36 C229.325,-297.36 -57.777,-201.464 -57.777,-201.464 C-87.134,-192.009 -99.586,-165.486 -92.499,-139.036 C-92.499,-139.036 -75.531,-90.865 -75.531,-90.865 C-68.444,-64.415 -38.755,-53.867 -12.306,-60.953 C-12.306,-60.953 276.103,-151.244 276.103,-151.244 C276.103,-151.244 229.325,-297.36 229.325,-297.36; M230.536,-295.875 C230.536,-295.875 -56.697,-201.715 -56.697,-201.715 C-85.787,-192.477 -98.793,-165.902 -91.706,-139.452 C-91.706,-139.452 -75.024,-91.326 -75.024,-91.326 C-67.937,-64.876 -38.315,-53.828 -11.866,-60.914 C-11.866,-60.914 277,-150.238 277,-150.238 C277,-150.238 230.536,-295.875 230.536,-295.875; M233.037,-292.808 C233.037,-292.808 -54.466,-202.234 -54.466,-202.234 C-83.005,-193.445 -97.156,-166.76 -90.069,-140.31 C-90.069,-140.31 -73.974,-92.276 -73.974,-92.276 C-66.887,-65.826 -37.405,-53.747 -10.956,-60.833 C-10.956,-60.833 278.853,-148.161 278.853,-148.161 C278.853,-148.161 233.037,-292.808 233.037,-292.808; M238.156,-286.53 C238.156,-286.53 -49.899,-203.296 -49.899,-203.296 C-77.311,-195.425 -93.804,-168.517 -86.717,-142.067 C-86.717,-142.067 -71.827,-94.222 -71.827,-94.222 C-64.74,-67.772 -35.544,-53.582 -9.095,-60.668 C-9.095,-60.668 282.645,-143.91 282.645,-143.91 C282.645,-143.91 238.156,-286.53 238.156,-286.53; M239.388,-285.02 C239.388,-285.02 -48.8,-203.551 -48.8,-203.551 C-75.941,-195.902 -92.997,-168.94 -85.91,-142.49 C-85.91,-142.49 -71.31,-94.69 -71.31,-94.69 C-64.223,-68.24 -35.096,-53.542 -8.647,-60.628 C-8.647,-60.628 283.557,-142.887 283.557,-142.887 C283.557,-142.887 239.388,-285.02 239.388,-285.02; M240.556,-283.587 C240.556,-283.587 -47.757,-203.794 -47.757,-203.794 C-74.641,-196.354 -92.232,-169.341 -85.145,-142.891 C-85.145,-142.891 -70.82,-95.134 -70.82,-95.134 C-63.733,-68.684 -34.671,-53.504 -8.222,-60.59 C-8.222,-60.59 284.422,-141.917 284.422,-141.917 C284.422,-141.917 240.556,-283.587 240.556,-283.587; M241.622,-282.28 C241.622,-282.28 -46.807,-204.015 -46.807,-204.015 C-73.456,-196.766 -91.535,-169.706 -84.448,-143.256 C-84.448,-143.256 -70.373,-95.539 -70.373,-95.539 C-63.286,-69.089 -34.283,-53.47 -7.834,-60.556 C-7.834,-60.556 285.212,-141.032 285.212,-141.032 C285.212,-141.032 241.622,-282.28 241.622,-282.28; M242.524,-281.174 C242.524,-281.174 -46.002,-204.202 -46.002,-204.202 C-72.452,-197.115 -90.944,-170.016 -83.857,-143.566 C-83.857,-143.566 -69.994,-95.882 -69.994,-95.882 C-62.907,-69.432 -33.955,-53.441 -7.506,-60.527 C-7.506,-60.527 285.88,-140.283 285.88,-140.283 C285.88,-140.283 242.524,-281.174 242.524,-281.174" keyTimes="0;0.005;0.01;0.015;0.02;0.025;0.035;0.065;0.08;0.09;0.095;0.105;0.11;0.12;0.125;0.13;0.14;0.145;0.155;0.16;0.17;0.18;0.19;0.2;0.205;0.215;0.225;0.235;0.24;0.25;0.26;0.265;0.275;0.28;0.29;0.3;0.31;0.315;0.32;0.325;0.33;0.335;0.34;0.345;0.35;0.355;0.36;0.365;0.37;0.375;0.38;0.385;0.39;0.395;0.4;0.405;0.41;0.415;0.42;0.425;0.43;0.435;0.44;0.445;0.45;0.455;0.46;0.47;0.48;0.485;0.495;0.5;0.51;0.52;0.545;0.55;0.555;0.56;0.565;0.57;0.575;0.625;0.675;0.76;0.765;0.775;0.78;0.785;0.79;0.795;0.8;0.805;0.81;0.815;0.82;0.825;0.83;0.835;0.84;0.845;0.85;0.855;0.86;0.865;0.87;0.875;0.88;0.885;0.89;0.895;0.9;0.905;0.91;0.915;0.92;0.925;0.93;0.935;0.94;0.945;0.95;0.96;0.98;0.985;0.99;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 30</animate> 31</path> 32</mask> 33</defs> 34<g clip-path="url(#__MARVIN_ID__-2)"> 35<g mask="url(#__MARVIN_ID__-35)" transform="matrix(0.637499988079071,0,0,0.637499988079071,239.57699584960938,312.3810119628906)" opacity="1" display="block"> 36<g opacity="1" transform="matrix(1,0,0,1,0,0)">
37<path fill="currentColor" fill-opacity="1" d=" M215.48,-24.757 C229.091,-10.868 236.749,7.806 236.749,27.284 C236.749,27.284 236.749,66.805 236.749,66.805 C236.749,92.719 216.792,114.262 190.954,116.241 C190.954,116.241 -55.271,135.103 -55.271,135.103 C-83.919,137.297 -112.112,126.956 -132.548,106.76 C-132.548,106.76 -214.653,25.617 -214.653,25.617 C-228.791,11.646 -236.749,-7.406 -236.749,-27.283 C-236.749,-27.283 -236.749,-66.804 -236.749,-66.804 C-236.749,-92.718 -216.792,-114.261 -190.954,-116.24 C-190.954,-116.24 55.271,-135.103 55.271,-135.103 C83.919,-137.297 112.112,-126.956 132.548,-106.76 C132.548,-106.76 215.48,-24.757 215.48,-24.757z"> 38</path> 39</g> 40</g> 41<g mask="url(#__MARVIN_ID__-32)" opacity="1" display="block"> 42<g opacity="1" transform="matrix(1,0,0,1,0,0)"> 43<path fill="currentColor" fill-opacity="1" d=" M19.273,196.148 C19.273,196.148 270.139,49.253 270.139,49.253 C292.356,38.261 304.865,14.118 301.034,-10.371 C301.034,-10.371 239.539,-96 239.539,-96 C249.029,-101.112 243.672,-105.094 238.369,-106.842 C238.369,-106.842 71.127,-169.868 71.127,-169.868 C55.827,-173.973 23.456,-171.595 8.684,-166.477 C8.684,-166.477 -274.915,-41.091 -274.915,-41.091 C-297.131,-30.099 -310.846,-3.787 -307.014,20.702 C-307.014,20.702 -277.866,92.445 -277.866,92.445 C-264.051,112.059 -259.45,113.953 -238.373,123.785 C-238.373,123.785 -64.689,209.286 -64.689,209.286 C-36.107,217.371 -8.035,211.521 19.273,196.148z"> 44</path> 45</g> 46<animateTransform attributeName="transform" type="translate" additive="sum" values="244.158 167.426;244.506 167.45;244.902 167.477;245.792 167.542;247.267 167.662;250.347 167.956;251.848 168.123;252.814 168.238;253.747 168.356;255.075 168.534;255.91 168.653;256.702 168.77;257.449 168.885;258.15 168.997;259.116 169.159;259.7 169.26;260.237 169.357;260.726 169.447;261.168 169.532;261.561 169.609;261.907 169.68;262.206 169.742;262.459 169.797;262.666 169.844;262.827 169.883;262.942 169.913;263.01 169.934;263.031 169.947;263.006 169.952;262.935 169.948;262.818 169.935;262.653 169.915;262.438 169.885;262.012 169.822;261.457 169.738;261.241 169.705;260.76 169.631;260.495 169.59;259.912 169.5;259.594 169.451;258.904 169.346;258.53 169.289;257.726 169.169;256.843 169.039;256.372 168.972;255.371 168.83;254.84 168.756;253.721 168.605;252.525 168.45;251.257 168.293;250.598 168.215;249.232 168.059;247.811 167.908;246.345 167.764;242.57 167.453;240.305 167.309;238.826 167.233;236.692 167.149;235.342 167.112;234.062 167.088;233.45 167.081;232.857 167.077;231.733 167.075;231.202 167.077;230.202 167.087;229.286 167.102;228.452 167.121;228.065 167.132;227.35 167.155;227.022 167.167;226.712 167.178;226.146 167.202;225.651 167.225;225.221 167.246;224.855 167.266;224.696 167.275;224.426 167.292;224.215 167.306;224.006 167.322;223.935 167.33;223.914 167.334;223.976 167.337;224.03 167.336;224.114 167.334;224.229 167.329;224.376 167.323;224.554 167.315;224.762 167.305;225.003 167.294;225.274 167.281;225.577 167.267;225.911 167.253;226.276 167.237;226.673 167.22;227.101 167.203;227.559 167.186;228.049 167.169;228.57 167.153;229.121 167.137;230.313 167.108;231.621 167.087;233.04 167.075;234.56 167.077;236.169 167.094;238.702 167.155;240.416 167.219;242.077 167.3;242.852 167.344;243.559 167.387;244.158 167.426" keyTimes="0;0.005;0.01;0.02;0.035;0.065;0.08;0.09;0.1;0.115;0.125;0.135;0.145;0.155;0.17;0.18;0.19;0.2;0.21;0.22;0.23;0.24;0.25;0.26;0.27;0.28;0.29;0.3;0.31;0.32;0.33;0.34;0.35;0.365;0.38;0.385;0.395;0.4;0.41;0.415;0.425;0.43;0.44;0.45;0.455;0.465;0.47;0.48;0.49;0.5;0.505;0.515;0.525;0.535;0.56;0.575;0.585;0.6;0.61;0.62;0.625;0.63;0.64;0.645;0.655;0.665;0.675;0.68;0.69;0.695;0.7;0.71;0.72;0.73;0.74;0.745;0.755;0.765;0.78;0.79;0.8;0.815;0.82;0.825;0.83;0.835;0.84;0.845;0.85;0.855;0.86;0.865;0.87;0.875;0.88;0.885;0.89;0.895;0.9;0.91;0.92;0.93;0.94;0.95;0.965;0.975;0.985;0.99;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 47</animateTransform> 48<animateTransform attributeName="transform" type="rotate" additive="sum" values="9;9.29962;9.85051;12.11968;13.27479;13.80411;14.29677;14.75069;15.16441;15.65189;15.96861;16.32509;16.54291;16.71828;16.88619;16.96291;17;16.96532;16.85609;16.66373;16.45919;16.09774;15.75412;15.34315;14.86047;14.3025;13.66709;12.95444;12.16818;11.60691;10.71858;7.58749;6.39308;5.29977;4.79957;4.33291;3.90065;3.31701;2.80958;2.37516;2.12408;1.80188;1.54081;1.33627;1.18385;1.05468;1.00211;1.02602;1.16319;1.32047;1.53068;1.94538;2.28793;2.8999;3.37209;4.17289;4.7647;5.72851;8.14418;8.75379;8.99998" keyTimes="0;0.01;0.025;0.08;0.11;0.125;0.14;0.155;0.17;0.19;0.205;0.225;0.24;0.255;0.275;0.29;0.31;0.33;0.35;0.37;0.385;0.405;0.42;0.435;0.45;0.465;0.48;0.495;0.51;0.52;0.535;0.585;0.605;0.625;0.635;0.645;0.655;0.67;0.685;0.7;0.71;0.725;0.74;0.755;0.77;0.79;0.81;0.825;0.84;0.85;0.86;0.875;0.885;0.9;0.91;0.925;0.935;0.95;0.985;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 49</animateTransform> 50<animateTransform attributeName="transform" type="skewX" additive="sum" values="0;0" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 51</animateTransform> 52<animateTransform attributeName="transform" type="scale" additive="sum" values="0.5355 0.5355;0.5355 0.5355" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 53</animateTransform> 54</g> 55<g transform="matrix(0.637499988079071,0,0,0.637499988079071,137.218994140625,234.43099975585938)" opacity="1" display="block"> 56<g opacity="1" transform="matrix(1,0,0,1,0,0)">
57<path fill="currentColor" fill-opacity="1" d=" M7.178,4.255 C7.178,4.255 -4.821,-4.255 -4.821,-4.255 C-1.237,-1.713 -2.796,3.92 -7.178,4.255 C-7.178,4.255 7.178,4.255 7.178,4.255z"> 58<animate attributeName="d" values=" M7.178,4.255 C7.178,4.255 -4.821,-4.255 -4.821,-4.255 C-1.237,-1.713 -2.796,3.92 -7.178,4.255 C-7.178,4.255 7.178,4.255 7.178,4.255z; M7.866,4.212 C7.866,4.212 -4.133,-4.298 -4.133,-4.298 C-0.549,-1.756 -2.108,3.877 -6.49,4.212 C-6.49,4.212 7.866,4.212 7.866,4.212z; M8.705,4.16 C8.705,4.16 -3.294,-4.35 -3.294,-4.35 C0.29,-1.808 -1.269,3.825 -5.651,4.16 C-5.651,4.16 8.705,4.16 8.705,4.16z; M9.678,4.1 C9.678,4.1 -2.321,-4.41 -2.321,-4.41 C1.263,-1.868 -0.296,3.765 -4.678,4.1 C-4.678,4.1 9.678,4.1 9.678,4.1z; M10.764,4.033 C10.764,4.033 -1.235,-4.477 -1.235,-4.477 C2.349,-1.935 0.79,3.698 -3.592,4.033 C-3.592,4.033 10.764,4.033 10.764,4.033z; M11.94,3.96 C11.94,3.96 -0.059,-4.55 -0.059,-4.55 C3.525,-2.008 1.966,3.625 -2.416,3.96 C-2.416,3.96 11.94,3.96 11.94,3.96z; M13.183,3.883 C13.183,3.883 1.184,-4.627 1.184,-4.627 C4.768,-2.085 3.209,3.548 -1.173,3.883 C-1.173,3.883 13.183,3.883 13.183,3.883z; M14.469,3.803 C14.469,3.803 2.47,-4.707 2.47,-4.707 C6.054,-2.165 4.495,3.468 0.113,3.803 C0.113,3.803 14.469,3.803 14.469,3.803z; M18.407,3.559 C18.407,3.559 6.408,-4.951 6.408,-4.951 C9.992,-2.409 8.433,3.224 4.051,3.559 C4.051,3.559 18.407,3.559 18.407,3.559z; M19.699,3.479 C19.699,3.479 7.7,-5.031 7.7,-5.031 C11.284,-2.489 9.725,3.144 5.343,3.479 C5.343,3.479 19.699,3.479 19.699,3.479z; M20.964,3.401 C20.964,3.401 8.965,-5.109 8.965,-5.109 C12.549,-2.567 10.99,3.066 6.608,3.401 C6.608,3.401 20.964,3.401 20.964,3.401z; M22.197,3.325 C22.197,3.325 10.198,-5.185 10.198,-5.185 C13.782,-2.643 12.223,2.99 7.841,3.325 C7.841,3.325 22.197,3.325 22.197,3.325z; M23.393,3.251 C23.393,3.251 11.394,-5.259 11.394,-5.259 C14.978,-2.717 13.419,2.916 9.037,3.251 C9.037,3.251 23.393,3.251 23.393,3.251z; M24.549,3.179 C24.549,3.179 12.55,-5.331 12.55,-5.331 C16.134,-2.789 14.574,2.844 10.192,3.179 C10.192,3.179 24.549,3.179 24.549,3.179z; M25.663,3.11 C25.663,3.11 13.664,-5.4 13.664,-5.4 C17.248,-2.858 15.689,2.775 11.307,3.11 C11.307,3.11 25.663,3.11 25.663,3.11z; M26.736,3.044 C26.736,3.044 14.737,-5.466 14.737,-5.466 C18.321,-2.924 16.761,2.709 12.379,3.044 C12.379,3.044 26.736,3.044 26.736,3.044z; M27.765,2.98 C27.765,2.98 15.766,-5.53 15.766,-5.53 C19.35,-2.988 17.791,2.645 13.409,2.98 C13.409,2.98 27.765,2.98 27.765,2.98z; M28.753,2.919 C28.753,2.919 16.754,-5.591 16.754,-5.591 C20.338,-3.049 18.778,2.584 14.396,2.919 C14.396,2.919 28.753,2.919 28.753,2.919z; M29.699,2.86 C29.699,2.86 17.7,-5.65 17.7,-5.65 C21.284,-3.108 19.724,2.525 15.342,2.86 C15.342,2.86 29.699,2.86 29.699,2.86z; M30.604,2.804 C30.604,2.804 18.605,-5.706 18.605,-5.706 C22.189,-3.164 20.629,2.469 16.247,2.804 C16.247,2.804 30.604,2.804 30.604,2.804z; M31.469,2.75 C31.469,2.75 19.47,-5.76 19.47,-5.76 C23.054,-3.218 21.494,2.415 17.112,2.75 C17.112,2.75 31.469,2.75 31.469,2.75z; M32.296,2.699 C32.296,2.699 20.297,-5.811 20.297,-5.811 C23.881,-3.269 22.321,2.364 17.939,2.699 C17.939,2.699 32.296,2.699 32.296,2.699z; M33.085,2.65 C33.085,2.65 21.086,-5.86 21.086,-5.86 C24.67,-3.318 23.111,2.315 18.729,2.65 C18.729,2.65 33.085,2.65 33.085,2.65z; M33.839,2.604 C33.839,2.604 21.84,-5.906 21.84,-5.906 C25.424,-3.364 23.864,2.269 19.482,2.604 C19.482,2.604 33.839,2.604 33.839,2.604z; M34.557,2.559 C34.557,2.559 22.558,-5.951 22.558,-5.951 C26.142,-3.409 24.582,2.224 20.2,2.559 C20.2,2.559 34.557,2.559 34.557,2.559z; M35.242,2.517 C35.242,2.517 23.243,-5.993 23.243,-5.993 C26.827,-3.451 25.267,2.182 20.885,2.517 C20.885,2.517 35.242,2.517 35.242,2.517z; M35.894,2.476 C35.894,2.476 23.895,-6.034 23.895,-6.034 C27.479,-3.492 25.919,2.141 21.537,2.476 C21.537,2.476 35.894,2.476 35.894,2.476z; M36.515,2.438 C36.515,2.438 24.516,-6.072 24.516,-6.072 C28.1,-3.53 26.54,2.103 22.158,2.438 C22.158,2.438 36.515,2.438 36.515,2.438z; M37.106,2.401 C37.106,2.401 25.107,-6.109 25.107,-6.109 C28.691,-3.567 27.131,2.066 22.749,2.401 C22.749,2.401 37.106,2.401 37.106,2.401z; M38.201,2.334 C38.201,2.334 26.202,-6.176 26.202,-6.176 C29.786,-3.634 28.226,1.999 23.844,2.334 C23.844,2.334 38.201,2.334 38.201,2.334z; M39.188,2.272 C39.188,2.272 27.189,-6.238 27.189,-6.238 C30.773,-3.696 29.213,1.937 24.831,2.272 C24.831,2.272 39.188,2.272 39.188,2.272z; M40.074,2.217 C40.074,2.217 28.075,-6.293 28.075,-6.293 C31.659,-3.751 30.099,1.882 25.717,2.217 C25.717,2.217 40.074,2.217 40.074,2.217z; M40.867,2.168 C40.867,2.168 28.868,-6.342 28.868,-6.342 C32.452,-3.8 30.892,1.833 26.51,2.168 C26.51,2.168 40.867,2.168 40.867,2.168z; M41.571,2.125 C41.571,2.125 29.572,-6.385 29.572,-6.385 C33.156,-3.843 31.596,1.79 27.214,2.125 C27.214,2.125 41.571,2.125 41.571,2.125z; M42.194,2.086 C42.194,2.086 30.195,-6.424 30.195,-6.424 C33.779,-3.882 32.219,1.751 27.837,2.086 C27.837,2.086 42.194,2.086 42.194,2.086z; M42.74,2.052 C42.74,2.052 30.741,-6.458 30.741,-6.458 C34.325,-3.916 32.765,1.717 28.383,2.052 C28.383,2.052 42.74,2.052 42.74,2.052z; M43.213,2.023 C43.213,2.023 31.214,-6.487 31.214,-6.487 C34.798,-3.945 33.238,1.688 28.856,2.023 C28.856,2.023 43.213,2.023 43.213,2.023z; M43.619,1.998 C43.619,1.998 31.62,-6.512 31.62,-6.512 C35.204,-3.97 33.644,1.663 29.262,1.998 C29.262,1.998 43.619,1.998 43.619,1.998z; M43.961,1.977 C43.961,1.977 31.962,-6.533 31.962,-6.533 C35.546,-3.991 33.986,1.642 29.604,1.977 C29.604,1.977 43.961,1.977 43.961,1.977z; M44.361,1.952 C44.361,1.952 32.362,-6.558 32.362,-6.558 C35.946,-4.016 34.386,1.617 30.004,1.952 C30.004,1.952 44.361,1.952 44.361,1.952z; M44.557,1.94 C44.557,1.94 32.558,-6.57 32.558,-6.57 C36.142,-4.028 34.582,1.605 30.2,1.94 C30.2,1.94 44.557,1.94 44.557,1.94z; M44.7,1.931 C44.7,1.931 32.701,-6.579 32.701,-6.579 C36.285,-4.037 34.725,1.596 3
580.343,1.931 C30.343,1.931 44.7,1.931 44.7,1.931z; M44.794,1.925 C44.794,1.925 32.795,-6.585 32.795,-6.585 C36.379,-4.043 34.819,1.59 30.437,1.925 C30.437,1.925 44.794,1.925 44.794,1.925z; M44.845,1.922 C44.845,1.922 32.846,-6.588 32.846,-6.588 C36.43,-4.046 34.87,1.587 30.488,1.922 C30.488,1.922 44.845,1.922 44.845,1.922z; M44.806,1.927 C44.806,1.927 32.807,-6.583 32.807,-6.583 C36.391,-4.041 34.831,1.592 30.449,1.927 C30.449,1.927 44.806,1.927 44.806,1.927z; M44.689,1.943 C44.689,1.943 32.69,-6.567 32.69,-6.567 C36.274,-4.025 34.714,1.608 30.332,1.943 C30.332,1.943 44.689,1.943 44.689,1.943z; M44.6,1.955 C44.6,1.955 32.601,-6.555 32.601,-6.555 C36.185,-4.013 34.625,1.62 30.243,1.955 C30.243,1.955 44.6,1.955 44.6,1.955z; M44.362,1.988 C44.362,1.988 32.363,-6.522 32.363,-6.522 C35.947,-3.98 34.387,1.653 30.005,1.988 C30.005,1.988 44.362,1.988 44.362,1.988z; M44.04,2.031 C44.04,2.031 32.041,-6.479 32.041,-6.479 C35.625,-3.937 34.065,1.696 29.683,2.031 C29.683,2.031 44.04,2.031 44.04,2.031z; M43.635,2.086 C43.635,2.086 31.636,-6.424 31.636,-6.424 C35.22,-3.882 33.66,1.751 29.278,2.086 C29.278,2.086 43.635,2.086 43.635,2.086z; M43.143,2.153 C43.143,2.153 31.144,-6.357 31.144,-6.357 C34.728,-3.815 33.168,1.818 28.786,2.153 C28.786,2.153 43.143,2.153 43.143,2.153z; M42.564,2.232 C42.564,2.232 30.565,-6.278 30.565,-6.278 C34.149,-3.736 32.589,1.897 28.207,2.232 C28.207,2.232 42.564,2.232 42.564,2.232z; M41.896,2.322 C41.896,2.322 29.897,-6.188 29.897,-6.188 C33.481,-3.646 31.921,1.987 27.539,2.322 C27.539,2.322 41.896,2.322 41.896,2.322z; M41.138,2.425 C41.138,2.425 29.139,-6.085 29.139,-6.085 C32.723,-3.543 31.163,2.09 26.781,2.425 C26.781,2.425 41.138,2.425 41.138,2.425z; M40.288,2.541 C40.288,2.541 28.289,-5.969 28.289,-5.969 C31.873,-3.427 30.313,2.206 25.931,2.541 C25.931,2.541 40.288,2.541 40.288,2.541z; M39.828,2.603 C39.828,2.603 27.829,-5.907 27.829,-5.907 C31.413,-3.365 29.853,2.268 25.471,2.603 C25.471,2.603 39.828,2.603 39.828,2.603z; M38.838,2.737 C38.838,2.737 26.839,-5.773 26.839,-5.773 C30.423,-3.231 28.863,2.402 24.481,2.737 C24.481,2.737 38.838,2.737 38.838,2.737z; M37.754,2.885 C37.754,2.885 25.755,-5.625 25.755,-5.625 C29.339,-3.083 27.779,2.55 23.397,2.885 C23.397,2.885 37.754,2.885 37.754,2.885z; M36.574,3.045 C36.574,3.045 24.575,-5.465 24.575,-5.465 C28.159,-2.923 26.6,2.71 22.218,3.045 C22.218,3.045 36.574,3.045 36.574,3.045z; M35.299,3.218 C35.299,3.218 23.3,-5.292 23.3,-5.292 C26.884,-2.75 25.324,2.883 20.942,3.218 C20.942,3.218 35.299,3.218 35.299,3.218z; M33.928,3.404 C33.928,3.404 21.929,-5.106 21.929,-5.106 C25.513,-2.564 23.953,3.069 19.571,3.404 C19.571,3.404 33.928,3.404 33.928,3.404z; M32.461,3.603 C32.461,3.603 20.462,-4.907 20.462,-4.907 C24.046,-2.365 22.486,3.268 18.104,3.603 C18.104,3.603 32.461,3.603 32.461,3.603z; M31.692,3.708 C31.692,3.708 19.693,-4.802 19.693,-4.802 C23.277,-2.26 21.717,3.373 17.335,3.708 C17.335,3.708 31.692,3.708 31.692,3.708z; M30.081,3.926 C30.081,3.926 18.082,-4.584 18.082,-4.584 C21.666,-2.042 20.107,3.591 15.725,3.926 C15.725,3.926 30.081,3.926 30.081,3.926z; M28.377,4.157 C28.377,4.157 16.378,-4.353 16.378,-4.353 C19.962,-1.811 18.403,3.822 14.021,4.157 C14.021,4.157 28.377,4.157 28.377,4.157z; M26.581,4.401 C26.581,4.401 14.582,-4.109 14.582,-4.109 C18.166,-1.567 16.606,4.066 12.224,4.401 C12.224,4.401 26.581,4.401 26.581,4.401z; M24.694,4.657 C24.694,4.657 12.695,-3.853 12.695,-3.853 C16.279,-1.311 14.719,4.322 10.337,4.657 C10.337,4.657 24.694,4.657 24.694,4.657z; M22.72,4.925 C22.72,4.925 10.721,-3.585 10.721,-3.585 C14.305,-1.043 12.745,4.59 8.363,4.925 C8.363,4.925 22.72,4.925 22.72,4.925z; M20.662,5.205 C20.662,5.205 8.663,-3.305 8.663,-3.305 C12.247,-0.763 10.688,4.87 6.306,5.205 C6.306,5.205 20.662,5.205 20.662,5.205z; M18.526,5.495 C18.526,5.495 6.527,-3.015 6.527,-3.015 C10.111,-0.473 8.551,5.16 4.169,5.495 C4.169,5.495 18.526,5.495 18.526,5.495z; M17.429,5.644 C17.429,5.644 5.43,-2.866 5.43,-2.866 C9.014,-0.324 7.455,5.309 3.073,5.644 C3.073,5.644 17.429,5.644 17.429,5.644z; M15.185,5.948 C15.185,5.948 3.186,-2.562 3.186,-2.562 C6.77,-0.02 5.21,5.613 0.828,5.948 C0.828,5.948 15.185,5.948 15.185,5.948z; M12.877,6.262 C12.877,6.262 0.878,-2.248 0.878,-2.248 C4.462,0.294 2.902,5.927 -1.48,6.262 C-1.48,6.262 12.877,6.262 12.877,6.262z; M10.513,6.582 C10.513,6.582 -1.486,-1.928 -1.486,-1.928 C2.098,0.614 0.538,6.247 -3.844,6.582 C-3.844,6.582 10.513,6.582 10.513,6.582z; M8.103,6.91 C8.103,6.91 -3.896,-1.6 -3.896,-1.6 C-0.312,0.942 -1.872,6.575 -6.254,6.91 C-6.254,6.91 8.103,6.91 8.103,6.91z; M5.657,7.242 C5.657,7.242 -6.342,-1.268 -6.342,-1.268 C-2.758,1.274 -4.318,6.907 -8.7,7.242 C-8.7,7.242 5.657,7.242 5.657,7.242z; M-4.24,8.585 C-4.24,8.585 -16.239,0.075 -16.239,0.075 C-12.655,2.617 -14.215,8.25 -18.597,8.585 C-18.597,8.585 -4.24,8.585 -4.24,8.585z; M-6.672,8.915 C-6.672,8.915 -18.671,0.405 -18.671,0.405 C-15.087,2.947 -16.646,8.58 -21.028,8.915 C-21.028,8.915 -6.672,8.915 -6.672,8.915z; M-9.055,9.239 C-9.055,9.239 -21.054,0.729 -21.054,0.729 C-17.47,3.271 -19.029,8.904 -23.411,9.239 C-23.411,9.239 -9.055,9.239 -9.055,9.239z;
58 M-11.373,9.553 C-11.373,9.553 -23.372,1.043 -23.372,1.043 C-19.788,3.585 -21.347,9.218 -25.729,9.553 C-25.729,9.553 -11.373,9.553 -11.373,9.553z; M-13.609,9.857 C-13.609,9.857 -25.608,1.347 -25.608,1.347 C-22.024,3.889 -23.583,9.522 -27.965,9.857 C-27.965,9.857 -13.609,9.857 -13.609,9.857z; M-15.746,10.147 C-15.746,10.147 -27.745,1.637 -27.745,1.637 C-24.161,4.179 -25.72,9.812 -30.102,10.147 C-30.102,10.147 -15.746,10.147 -15.746,10.147z; M-16.772,10.286 C-16.772,10.286 -28.771,1.776 -28.771,1.776 C-25.187,4.318 -26.747,9.951 -31.129,10.286 C-31.129,10.286 -16.772,10.286 -16.772,10.286z; M-17.768,10.421 C-17.768,10.421 -29.767,1.911 -29.767,1.911 C-26.183,4.453 -27.742,10.086 -32.124,10.421 C-32.124,10.421 -17.768,10.421 -17.768,10.421z; M-18.731,10.552 C-18.731,10.552 -30.73,2.042 -30.73,2.042 C-27.146,4.584 -28.705,10.217 -33.087,10.552 C-33.087,10.552 -18.731,10.552 -18.731,10.552z; M-19.659,10.678 C-19.659,10.678 -31.658,2.168 -31.658,2.168 C-28.074,4.71 -29.634,10.343 -34.016,10.678 C-34.016,10.678 -19.659,10.678 -19.659,10.678z; M-20.551,10.799 C-20.551,10.799 -32.55,2.289 -32.55,2.289 C-28.966,4.831
58-30.526,10.464 -34.908,10.799 C-34.908,10.799 -20.551,10.799 -20.551,10.799z; M-21.405,10.915 C-21.405,10.915 -33.404,2.405 -33.404,2.405 C-29.82,4.947 -31.379,10.58 -35.761,10.915 C-35.761,10.915 -21.405,10.915 -21.405,10.915z; M-22.219,11.026 C-22.219,11.026 -34.218,2.516 -34.218,2.516 C-30.634,5.058 -32.193,10.691 -36.575,11.026 C-36.575,11.026 -22.219,11.026 -22.219,11.026z; M-22.992,11.131 C-22.992,11.131 -34.991,2.621 -34.991,2.621 C-31.407,5.163 -32.966,10.796 -37.348,11.131 C-37.348,11.131 -22.992,11.131 -22.992,11.131z; M-23.721,11.23 C-23.721,11.23 -35.72,2.72 -35.72,2.72 C-32.136,5.262 -33.695,10.895 -38.077,11.23 C-38.077,11.23 -23.721,11.23 -23.721,11.23z; M-24.406,11.323 C-24.406,11.323 -36.405,2.813 -36.405,2.813 C-32.821,5.355 -34.38,10.988 -38.762,11.323 C-38.762,11.323 -24.406,11.323 -24.406,11.323z; M-25.046,11.409 C-25.046,11.409 -37.045,2.899 -37.045,2.899 C-33.461,5.441 -35.02,11.074 -39.402,11.409 C-39.402,11.409 -25.046,11.409 -25.046,11.409z; M-25.638,11.49 C-25.638,11.49 -37.637,2.98 -37.637,2.98 C-34.053,5.522 -35.612,11.155 -39.994,11.49 C-39.994,11.49 -25.638,11.49 -25.638,11.49z; M-26.183,11.564 C-26.183,11.564 -38.182,3.054 -38.182,3.054 C-34.598,5.596 -36.157,11.229 -40.539,11.564 C-40.539,11.564 -26.183,11.564 -26.183,11.564z; M-26.679,11.631 C-26.679,11.631 -38.678,3.121 -38.678,3.121 C-35.094,5.663 -36.653,11.296 -41.035,11.631 C-41.035,11.631 -26.679,11.631 -26.679,11.631z; M-27.125,11.692 C-27.125,11.692 -39.124,3.182 -39.124,3.182 C-35.54,5.724 -37.099,11.357 -41.481,11.692 C-41.481,11.692 -27.125,11.692 -27.125,11.692z; M-27.52,11.745 C-27.52,11.745 -39.519,3.235 -39.519,3.235 C-35.935,5.777 -37.494,11.41 -41.876,11.745 C-41.876,11.745 -27.52,11.745 -27.52,11.745z; M-27.864,11.792 C-27.864,11.792 -39.863,3.282 -39.863,3.282 C-36.279,5.824 -37.838,11.457 -42.22,11.792 C-42.22,11.792 -27.864,11.792 -27.864,11.792z; M-28.155,11.832 C-28.155,11.832 -40.154,3.322 -40.154,3.322 C-36.57,5.864 -38.129,11.497 -42.511,11.832 C-42.511,11.832 -28.155,11.832 -28.155,11.832z; M-28.395,11.864 C-28.395,11.864 -40.394,3.354 -40.394,3.354 C-36.81,5.896 -38.369,11.529 -42.751,11.864 C-42.751,11.864 -28.395,11.864 -28.395,11.864z; M-28.582,11.889 C-28.582,11.889 -40.581,3.379 -40.581,3.379 C-36.997,5.921 -38.556,11.554 -42.938,11.889 C-42.938,11.889 -28.582,11.889 -28.582,11.889z; M-28.715,11.907 C-28.715,11.907 -40.714,3.397 -40.714,3.397 C-37.13,5.939 -38.689,11.572 -43.071,11.907 C-43.071,11.907 -28.715,11.907 -28.715,11.907z; M-28.795,11.918 C-28.795,11.918 -40.794,3.408 -40.794,3.408 C-37.21,5.95 -38.769,11.583 -43.151,11.918 C-43.151,11.918 -28.795,11.918 -28.795,11.918z; M-28.822,11.922 C-28.822,11.922 -40.821,3.412 -40.821,3.412 C-37.237,5.954 -38.796,11.587 -43.178,11.922 C-43.178,11.922 -28.822,11.922 -28.822,11.922z; M-28.793,11.916 C-28.793,11.916 -40.792,3.406 -40.792,3.406 C-37.208,5.948 -38.767,11.581 -43.149,11.916 C-43.149,11.916 -28.793,11.916 -28.793,11.916z; M-28.705,11.897 C-28.705,11.897 -40.704,3.387 -40.704,3.387 C-37.12,5.929 -38.679,11.562 -43.061,11.897 C-43.061,11.897 -28.705,11.897 -28.705,11.897z; M-28.558,11.866 C-28.558,11.866 -40.557,3.356 -40.557,3.356 C-36.973,5.898 -38.532,11.531 -42.914,11.866 C-42.914,11.866 -28.558,11.866 -28.558,11.866z; M-28.353,11.822 C-28.353,11.822 -40.352,3.312 -40.352,3.312 C-36.768,5.854 -38.327,11.487 -42.709,11.822 C-42.709,11.822 -28.353,11.822 -28.353,11.822z; M-28.088,11.766 C-28.088,11.766 -40.087,3.256 -40.087,3.256 C-36.503,5.798 -38.062,11.431 -42.444,11.766 C-42.444,11.766 -28.088,11.766 -28.088,11.766z; M-27.763,11.697 C-27.763,11.697 -39.762,3.187 -39.762,3.187 C-36.178,5.729 -37.737,11.362 -42.119,11.697 C-42.119,11.697 -27.763,11.697 -27.763,11.697z; M-27.38,11.615 C-27.38,11.615 -39.379,3.105 -39.379,3.105 C-35.795,5.647 -37.354,11.28 -41.736,11.615 C-41.736,11.615 -27.38,11.615 -27.38,11.615z; M-26.937,11.52 C-26.937,11.52 -38.936,3.01 -38.936,3.01 C-35.352,5.552 -36.911,11.185 -41.293,11.52 C-41.293,11.52 -26.937,11.52 -26.937,11.52z; M-26.434,11.413 C-26.434,11.413 -38.433,2.903 -38.433,2.903 C-34.849,5.445 -36.408,11.078 -40.79,11.413 C-40.79,11.413 -26.434,11.413 -26.434,11.413z; M-25.871,11.294 C-25.871,11.294 -37.87,2.784 -37.87,2.784 C-34.286,5.326 -35.845,10.959 -40.227,11.294 C-40.227,11.294 -25.871,11.294 -25.871,11.294z; M-25.249,11.161 C-25.249,11.161 -37.248,2.651 -37.248,2.651 C-33.664,5.193 -35.223,10.826 -39.605,11.161 C-39.605,11.161 -25.249,11.161 -25.249,11.161z; M-24.568,11.016 C-24.568,11.016 -36.567,2.506 -36.567,2.506 C-32.983,5.048 -34.542,10.681 -38.924,11.016 C-38.924,11.016 -24.568,11.016 -24.568,11.016z;
58 M-23.827,10.858 C-23.827,10.858 -35.826,2.348 -35.826,2.348 C-32.242,4.89 -33.801,10.523 -38.183,10.858 C-38.183,10.858 -23.827,10.858 -23.827,10.858z; M-23.026,10.688 C-23.026,10.688 -35.025,2.178 -35.025,2.178 C-31.441,4.72 -33,10.353 -37.382,10.688 C-37.382,10.688 -23.026,10.688 -23.026,10.688z; M-22.167,10.505 C-22.167,10.505 -34.166,1.995 -34.166,1.995 C-30.582,4.537 -32.141,10.17 -36.523,10.505 C-36.523,10.505 -22.167,10.505 -22.167,10.505z; M-21.249,10.309 C-21.249,10.309 -33.248,1.799 -33.248,1.799 C-29.664,4.341 -31.223,9.974 -35.605,10.309 C-35.605,10.309 -21.249,10.309 -21.249,10.309z; M-20.272,10.101 C-20.272,10.101 -32.271,1.591 -32.271,1.591 C-28.687,4.133 -30.246,9.766 -34.628,10.101 C-34.628,10.101 -20.272,10.101 -20.272,10.101z; M-19.238,9.881 C-19.238,9.881 -31.237,1.371 -31.237,1.371 C-27.653,3.913 -29.212,9.546 -33.594,9.881 C-33.594,9.881 -19.238,9.881 -19.238,9.881z; M-18.148,9.649 C-18.148,9.649 -30.147,1.139 -30.147,1.139 C-26.563,3.681 -28.122,9.314 -32.504,9.649 C-32.504,9.649 -18.148,9.649 -18.148,9.649z; M-17.001,9.404 C-17.001,9.404 -29,0.894 -29,0.894 C-25.416,3.436 -26.975,9.069 -31.357,9.404 C-31.357,9.404 -17.001,9.404 -17.001,9.404z; M-15.799,9.148 C-15.799,9.148 -27.798,0.638 -27.798,0.638 C-24.214,3.18 -25.773,8.813 -30.155,9.148 C-30.155,9.148 -15.799,9.148 -15.799,9.148z; M-14.544,8.881 C-14.544,8.881 -26.543,0.371 -26.543,0.371 C-22.959,2.913 -24.518,8.546 -28.9,8.881 C-28.9,8.881 -14.544,8.881 -14.544,8.881z; M-13.237,8.603 C-13.237,8.603 -25.236,0.093 -25.236,0.093 C-21.652,2.635 -23.211,8.268 -27.593,8.603 C-27.593,8.603 -13.237,8.603 -13.237,8.603z; M-11.881,8.314 C-11.881,8.314 -23.88,-0.196 -23.88,-0.196 C-20.296,2.346 -21.855,7.979 -26.237,8.314 C-26.237,8.314 -11.881,8.314 -11.881,8.314z; M-10.478,8.015 C-10.478,8.015 -22.477,-0.495 -22.477,-0.495 C-18.893,2.047 -20.452,7.68 -24.834,8.015 C-24.834,8.015 -10.478,8.015 -10.478,8.015z;
58 M-9.03,7.707 C-9.03,7.707 -21.029,-0.803 -21.029,-0.803 C-17.445,1.739 -19.004,7.372 -23.386,7.707 C-23.386,7.707 -9.03,7.707 -9.03,7.707z; M-7.544,7.39 C-7.544,7.39 -19.543,-1.12 -19.543,-1.12 C-15.959,1.422 -17.518,7.055 -21.9,7.39 C-21.9,7.39 -7.544,7.39 -7.544,7.39z; M-4.472,6.736 C-4.472,6.736 -16.471,-1.774 -16.471,-1.774 C-12.887,0.768 -14.446,6.401 -18.828,6.736 C-18.828,6.736 -4.472,6.736 -4.472,6.736z; M1.814,5.397 C1.814,5.397 -10.185,-3.113 -10.185,-3.113 C-6.601,-0.571 -8.16,5.062 -12.542,5.397 C-12.542,5.397 1.814,5.397 1.814,5.397z; M3.327,5.075 C3.327,5.075 -8.672,-3.435 -8.672,-3.435 C-5.088,-0.893 -6.647,4.74 -11.029,5.075 C-11.029,5.075 3.327,5.075 3.327,5.075z; M4.762,4.77 C4.762,4.77 -7.237,-3.74 -7.237,-3.74 C-3.653,-1.198 -5.212,4.435 -9.594,4.77 C-9.594,4.77 4.762,4.77 4.762,4.77z; M6.07,4.491 C6.07,4.491 -5.929,-4.019 -5.929,-4.019 C-2.345,-1.477 -3.904,4.156 -8.286,4.491 C-8.286,4.491 6.07,4.491 6.07,4.491z; M7.178,4.255 C7.178,4.255 -4.821,-4.255 -4.821,-4.255 C-1.237,-1.713 -2.796,3.92 -7.178,4.255 C-7.178,4.255 7.178,4.255 7.178,4.255z" keyTimes="0;0.005;0.01;0.015;0.02;0.025;0.03;0.035;0.05;0.055;0.06;0.065;0.07;0.075;0.08;0.085;0.09;0.095;0.1;0.105;0.11;0.115;0.12;0.125;0.13;0.135;0.14;0.145;0.15;0.16;0.17;0.18;0.19;0.2;0.21;0.22;0.23;0.24;0.25;0.265;0.275;0.285;0.295;0.31;0.32;0.33;0.335;0.345;0.355;0.365;0.375;0.385;0.395;0.405;0.415;0.42;0.43;0.44;0.45;0.46;0.47;0.48;0.485;0.495;0.505;0.515;0.525;0.535;0.545;0.555;0.56;0.57;0.58;0.59;0.6;0.61;0.65;0.66;0.67;0.68;0.69;0.7;0.705;0.71;0.715;0.72;0.725;0.73;0.735;0.74;0.745;0.75;0.755;0.76;0.765;0.77;0.775;0.78;0.785;0.79;0.795;0.8;0.805;0.81;0.815;0.82;0.825;0.83;0.835;0.84;0.845;0.85;0.855;0.86;0.865;0.87;0.875;0.88;0.885;0.89;0.895;0.9;0.905;0.91;0.915;0.92;0.925;0.93;0.935;0.94;0.945;0.95;0.96;0.98;0.985;0.99;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 59</animate> 60</path> 61<path stroke-linecap="round" stroke-linejoin="round" fill-opacity="0" stroke="currentColor" stroke-opacity="1" stroke-width="1" d=" M7.178,4.255 C7.178,4.255 -4.821,-4.255 -4.821,-4.255 C-1.237,-1.713 -2.796,3.92 -7.178,4.255 C-7.178,4.255 7.178,4.255 7.178,4.255z"> 62<animate attributeName="d" values=" M7.178,4.255 C7.178,4.255 -4.821,-4.255 -4.821,-4.255 C-1.237,-1.713 -2.796,3.92 -7.178,4.255 C-7.178,4.255 7.178,4.255 7.178,4.255z; M7.866,4.212 C7.866,4.212 -4.133,-4.298 -4.133,-4.298 C-0.549,-1.756 -2.108,3.877 -6.49,4.212 C-6.49,4.212 7.866,4.212 7.866,4.212z; M8.705,4.16 C8.705,4.16 -3.294,-4.35 -3.294,-4.35 C0.29,-1.808 -1.269,3.825 -5.651,4.16 C-5.651,4.16 8.705,4.16 8.705,4.16z; M9.678,4.1 C9.678,4.1 -2.321,-4.41 -2.321,-4.41 C1.263,-1.868 -0.296,3.765 -4.678,4.1 C-4.678,4.1 9.678,4.1 9.678,4.1z; M10.764,4.033 C10.764,4.033 -1.235,-4.477 -1.235,-4.477 C2.349,-1.935 0.79,3.698 -3.592,4.033 C-3.592,4.033 10.764,4.033 10.764,4.033z; M11.94,3.96 C11.94,3.96 -0.059,-4.55 -0.059,-4.55 C3.525,-2.008 1.966,3.625 -2.416,3.96 C-2.416,3.96 11.94,3.96 11.94,3.96z; M13.183,3.883 C13.183,3.883 1.184,-4.627 1.184,-4.627 C4.768,-2.085 3.209,3.548 -1.173,3.883 C-1.173,3.883 13.183,3.883 13.183,3.883z; M14.469,3.803 C14.469,3.803 2.47,-4.707 2.47,-4.707 C6.054,-2.165 4.495,3.468 0.113,3.803 C0.113,3.803 14.469,3.803 14.469,3.803z; M18.407,3.559 C18.407,3.559 6.408,-4.951 6.408,-4.951 C9.992,-2.409 8.433,3.224 4.051,3.559 C4.051,3.559 18.407,3.559 18.407,3.559z; M19.699,3.479 C19.699,3.479 7.7,-5.031 7.7,-5.031 C11.284,-2.489 9.725,3.144 5.343,3.479 C5.343,3.479 19.699,3.479 19.699,3.479z; M20.964,3.401 C20.964,3.401 8.965,-5.109 8.965,-5.109 C12.549,-2.567 10.99,3.066 6.608,3.401 C6.608,3.401 20.964,3.401 20.964,3.401z; M22.197,3.325 C22.197,3.325 10.198,-5.185 10.198,-5.185 C13.782,-2.643 12.223,2.99 7.841,3.325 C7.841,3.325 22.197,3.325 22.197,3.325z; M23.393,3.251 C23.393,3.251 11.394,-5.259 11.394,-5.259 C14.978,-2.717 13.419,2.916 9.037,3.251 C9.037,3.251 23.393,3.251 23.393,3.251z; M24.549,3.179 C24.549,3.179 12.55,-5.331 12.55,-5.331 C16.134,-2.789 14.574,2.844 10.192,3.179 C10.192,3.179 24.549,3.179 24.549,3.179z; M25.663,3.11 C25.663,3.11 13.664,-5.4 13.664,-5.4 C17.248,-2.858 15.689,2.775 11.307,3.11 C11.307,3.11 25.663,3.11 25.663,3.11z; M26.736,3.044 C26.736,3.044 14.737,-5.466 14.737,-5.466 C18.321,-2.924
6216.761,2.709 12.379,3.044 C12.379,3.044 26.736,3.044 26.736,3.044z; M27.765,2.98 C27.765,2.98 15.766,-5.53 15.766,-5.53 C19.35,-2.988 17.791,2.645 13.409,2.98 C13.409,2.98 27.765,2.98 27.765,2.98z; M28.753,2.919 C28.753,2.919 16.754,-5.591 16.754,-5.591 C20.338,-3.049 18.778,2.584 14.396,2.919 C14.396,2.919 28.753,2.919 28.753,2.919z; M29.699,2.86 C29.699,2.86 17.7,-5.65 17.7,-5.65 C21.284,-3.108 19.724,2.525 15.342,2.86 C15.342,2.86 29.699,2.86 29.699,2.86z; M30.604,2.804 C30.604,2.804 18.605,-5.706 18.605,-5.706 C22.189,-3.164 20.629,2.469 16.247,2.804 C16.247,2.804 30.604,2.804 30.604,2.804z; M31.469,2.75 C31.469,2.75 19.47,-5.76 19.47,-5.76 C23.054,-3.218 21.494,2.415 17.112,2.75 C17.112,2.75 31.469,2.75 31.469,2.75z; M32.296,2.699 C32.296,2.699 20.297,-5.811 20.297,-5.811 C23.881,-3.269 22.321,2.364 17.939,2.699 C17.939,2.699 32.296,2.699 32.296,2.699z; M33.085,2.65 C33.085,2.65 21.086,-5.86 21.086,-5.86 C24.67,-3.318 23.111,2.315 18.729,2.65 C18.729,2.65 33.085,2.65 33.085,2.65z; M33.839,2.604 C33.839,2.604 21.84,-5.906 21.84,-5.906 C25.424,-3.364 23.864,2.269 19.482,2.604 C19.482,2.604 33.839,2.604 33.839,2.604z; M34.557,2.559 C34.557,2.559 22.558,-5.951 22.558,-5.951 C26.142,-3.409 24.582,2.224 20.2,2.559 C20.2,2.559 34.557,2.559 34.557,2.559z; M35.242,2.517 C35.242,2.517 23.243,-5.993 23.243,-5.993 C26.827,-3.451 25.267,2.182 20.885,2.517 C20.885,2.517 35.242,2.517 35.242,2.517z; M35.894,2.476 C35.894,2.476 23.895,-6.034 23.895,-6.034 C27.479,-3.492 25.919,2.141 21.537,2.476 C21.537,2.476 35.894,2.476 35.894,2.476z; M36.515,2.438 C36.515,2.438 24.516,-6.072 24.516,-6.072 C28.1,-3.53 26.54,2.103 22.158,2.438 C22.158,2.438 36.515,2.438 36.515,2.438z; M37.106,2.401 C37.106,2.401 25.107,-6.109 25.107,-6.109 C28.691,-3.567 27.131,2.066 22.749,2.401 C22.749,2.401 37.106,2.401 37.106,2.401z; M38.201,2.334 C38.201,2.334 26.202,-6.176 26.202,-6.176 C29.786,-3.634 28.226,1.999 23.844,2.334 C23.844,2.334 38.201,2.334 38.201,2.334z; M39.188,2.272 C39.188,2.272 27.189,-6.238 27.189,-6.238 C30.773,-3.696 29.213,1.937 24.831,2.272 C24.831,2.272 39.188,2.272 39.188,2.272z; M40.074,2.217 C40.074,2.217 28.075,-6.293 28.075,-6.293 C31.659,-3.751 30.099,1.882 25.717,2.217 C25.717,2.217 40.074,2.217 40.074,2.217z; M40.867,2.168 C40.867,2.168 28.868,-6.342 28.868,-6.342 C32.452,-3.8 30.892,1.833 26.51,2.168 C26.51,2.168 40.867,2.168 40.867,2.168z; M41.571,2.125 C41.571,2.125 29.572,-6.385 29.572,-6.385 C33.156,-3.843 31.596,1.79 27.214,2.125 C27.214,2.125 41.571,2.125 41.571,2.125z; M42.194,2.086 C42.194,2.086 30.195,-6.424 30.195,-6.424 C33.779,-3.882 32.219,1.751 27.837,2.086 C27.837,2.086 42.194,2.086 42.194,2.086z; M42.74,2.052 C42.74,2.052 30.741,-6.458 30.741,-6.458 C34.325,-3.916 32.765,1.717 28.383,2.052 C28.383,2.052 42.74,2.052 42.74,2.052z; M43.213,2.023 C43.213,2.023 31.214,-6.487 31.214,-6.487 C34.798,-3.945 33.238,1.688 28.856,2.023 C28.856,2.023 43.213,2.023 43.213,2.023z; M43.619,1.998 C43.619,1.998 31.62,-6.512 31.62,-6.512 C35.204,-3.97 33.644,1.663 29.262,1.998 C29.262,1.998 43.619,1.998 43.619,1.998z; M43.961,1.977 C43.961,1.977 31.962,-6.533 31.962,-6.533 C35.546,-3.991 33.986,1.642 29.604,1.977 C29.604,1.977 43.961,1.977 43.961,1.977z; M44.361,1.952 C44.361,1.952 32.362,-6.558 32.362,-6.558 C35.946,-4.016 34.386,1.617 30.004,1.952 C30.004,1.952 44.361,1.952 44.361,1.952z; M44.557,1.94 C44.557,1.94 32.558,-6.57 32.558,-6.57 C36.142,-4.028 34.582,1.605 30.2,1.94 C30.2,1.94 44.557,1.94 44.557,1.94z; M44.7,1.931 C44.7,1.931 32.701,-6.579 32.701,-6.579 C36.285,-4.037 34.725,1.596 30.343,1.931 C30.343,1.931 44.7,1.931 44.7,1.931z; M44.794,1.925 C44.794,1.925 32.795,-6.585 32.795,-6.585 C36.379,-4.043 34.819,1.59 30.437,1.925 C30.437,1.925 44.794,1.925 44.794,1.925z; M44.845,1.922 C44.845,1.922 32.846,-6.588 32.846,-6.588 C36.43,-4.046 34.87,1.587 30.488,1.922 C30.488,1.922 44.845,1.922 44.845,1.922z; M44.806,1.927 C44.806,1.927 32.807,-6.583 32.807,-6.583 C36.391,-4.041 34.831,1.592 30.449,1.927 C30.449,1.927 44.806,1.927 44.806,1.927z; M44.689,1.943 C44.689,1.943 32.69,-6.567 32.69,-6.567 C36.274,-4.025 34.714,1.608 30.332,1.943 C30.332,1.943 44.689,1.943 44.689,1.943z; M44.6,1.955 C44.6,1.955 32.601,-6.555 32.601,-6.555 C36.185,-4.013 34.625,1.62 30.243,1.955 C30.243,1.955 44.6,1.955 44.6,1.955z; M44.362,1.988 C44.362,1.988 32.363,-6.522 32.363,-6.522 C35.947,-3.98 34.387,1.653 30.005,1.988 C30.005,1.988 44.362,1.988 44.362,1.988z; M44.04,2.031 C44.04,2.031 32.041,-6.479 32.041,-6.479 C35.625,-3.937 34.065,1.696 29.683,2.031 C29.683,2.031 44.04,2.031 44.04,2.031z; M43.635,2.086 C43.635,2.086 31.636,-6.424 31.636,-6.424 C35.22,-3.882 33.66,1.751 29.278,2.086 C29.278,2.086 43.635,2.086 43.635,2.086z; M43.143,2.153 C43.143,2.153 31.144,-6.357 31.144,-6.357 C34.728,-3.815 33.168,1.818 28.786,2.153 C28.786,2.153 43.143,2.153 43.143,2.153z; M42.564,2.232 C42.564,2.232 30.565,-6.278 30.565,-6.278 C34.149,-3.736 32.589,1.897 28.207,2.232 C28.207,2.232 42.564,2.232 42.564,2.232z; M41.896,2.322 C41.896,2.322 29.897,-6.188 29.897,-6.188 C33.481,-3.646 31.921,1.987 27.539,2.322 C27.539,2.322 41.896,2.322 41.896,2.322z; M41.138,2.425 C41.138,2.425 29.139,-6.085 29.139,-6.085 C32.723,-3.543 31.163,2.09 26.781,2.425 C26.781,2.425 41.138,2.425 41.138,2.425z; M40.288,2.541 C40.288,2.541 28.289,-5.969 28.289,-5.969 C31.873,-3.427 30.313,2.206 25.931,2.541 C25.931,2.541 40.288,2.541 40.288,2.541z; M39.828,2.603 C39.828,2.603 27.829,-5.907 27.829,-5.907 C31.413,-3.365 29.853,2.268 25.471,2.603 C25.471,2.603 39.828,2.603 39.828,2.603z; M38.838,2.737 C38.838,2.737 26.839,-5.773 26.839,-5.773 C30.423,-3.231 28.863,2.402 24.481,2.737 C24.481,2.737 38.838,2.737 38.838,2.737z; M37.754,2.885 C37.754,2.885 25.755,-5.625 25.755,-5.625 C29.339,-3.083 27.779,2.55 23.397,2.885 C23.397,2.885 37.754,2.885 37.754,2.885z; M36.574,3.045 C36.574,3.045 24.575,-5.465 24.575,-5.465 C28.159,-2.923 26.6,2.71 22.218,3.045 C22.218,3.045 36.574,3.045 36.574,3.045z; M35.299,3.218 C35.299,3.218 23.3,-5.292 23.3,-5.292 C26.884,-2.75 25.324,2.883 20.942,3.218 C20.942,3.218 35.299,3.218 35.299,3.218z; M33.928,3.404 C33.928,3.404 21.929,-5.106 21.929,-5.106 C25.513,-2.564 23.953,3.069 19.571,3.404 C19.571,3.404 33.928,3.404 33.928,3.404z; M32.461,3.603 C32.461,3.603 20.462,-4.907 20.462,-4.907 C24.046,-2.365 22.486,3.268 18.104,3.603 C18.104,3.603 32.461,3.603 32.461,3.603z; M31.692,3.708 C31.692,3.708 19.693,-4.802 19.693,-4.802 C23.277,-2.26 21.717,3.373 17.335,3.708 C17.335,3.708 31.692,3.708 31.692,3.708z; M30.081,3.926 C30.081,3.926 18.082,-4.584 18.082,-4.584 C21.666,-2.042 20.10
627,3.591 15.725,3.926 C15.725,3.926 30.081,3.926 30.081,3.926z; M28.377,4.157 C28.377,4.157 16.378,-4.353 16.378,-4.353 C19.962,-1.811 18.403,3.822 14.021,4.157 C14.021,4.157 28.377,4.157 28.377,4.157z; M26.581,4.401 C26.581,4.401 14.582,-4.109 14.582,-4.109 C18.166,-1.567 16.606,4.066 12.224,4.401 C12.224,4.401 26.581,4.401 26.581,4.401z; M24.694,4.657 C24.694,4.657 12.695,-3.853 12.695,-3.853 C16.279,-1.311 14.719,4.322 10.337,4.657 C10.337,4.657 24.694,4.657 24.694,4.657z; M22.72,4.925 C22.72,4.925 10.721,-3.585 10.721,-3.585 C14.305,-1.043 12.745,4.59 8.363,4.925 C8.363,4.925 22.72,4.925 22.72,4.925z; M20.662,5.205 C20.662,5.205 8.663,-3.305 8.663,-3.305 C12.247,-0.763 10.688,4.87 6.306,5.205 C6.306,5.205 20.662,5.205 20.662,5.205z; M18.526,5.495 C18.526,5.495 6.527,-3.015 6.527,-3.015 C10.111,-0.473 8.551,5.16 4.169,5.495 C4.169,5.495 18.526,5.495 18.526,5.495z; M17.429,5.644 C17.429,5.644 5.43,-2.866 5.43,-2.866 C9.014,-0.324 7.455,5.309 3.073,5.644 C3.073,5.644 17.429,5.644 17.429,5.644z; M15.185,5.948 C15.185,5.948 3.186,-2.562 3.186,-2.562 C6.77,-0.02 5.21,5.613 0.828,5.948 C0.828,5.948 15.185,5.948 15.185,5.948z; M12.877,6.262 C12.877,6.262 0.878,-2.248 0.878,-2.248 C4.462,0.294 2.902,5.927 -1.48,6.262 C-1.48,6.262 12.877,6.262 12.877,6.262z; M10.513,6.582 C10.513,6.582 -1.486,-1.928 -1.486,-1.928 C2.098,0.614 0.538,6.247 -3.844,6.582 C-3.844,6.582 10.513,6.582 10.513,6.582z; M8.103,6.91 C8.103,6.91 -3.896,-1.6 -3.896,-1.6 C-0.312,0.942 -1.872,6.575 -6.254,6.91 C-6.254,6.91 8.103,6.91 8.103,6.91z; M5.657,7.242 C5.657,7.242 -6.342,-1.268 -6.342,-1.268 C-2.758,1.274 -4.318,6.907 -8.7,7.242 C-8.7,7.242 5.657,7.242 5.657,7.242z; M-4.24,8.585 C-4.24,8.585 -16.239,0.075 -16.239,0.075 C-12.655,2.617 -14.215,8.25 -18.597,8.585 C-18.597,8.585 -4.24,8.585 -4.24,8.585z; M-6.672,8.915 C-6.672,8.915 -18.671,0.405 -18.671,0.405 C-15.087,2.947 -16.646,8.58 -21.028,8.915 C-21.028,8.915 -6.672,8.915 -6.672,8.915z; M-9.055,9.239 C-9.055,9.239 -21.054,0.729 -21.054,0.729 C-17.47,3.271 -19.029,8.904 -23.411,9.239 C-23.411,9.239 -9.055,9.239 -9.055,9.239z;
62 M-11.373,9.553 C-11.373,9.553 -23.372,1.043 -23.372,1.043 C-19.788,3.585 -21.347,9.218 -25.729,9.553 C-25.729,9.553 -11.373,9.553 -11.373,9.553z; M-13.609,9.857 C-13.609,9.857 -25.608,1.347 -25.608,1.347 C-22.024,3.889 -23.583,9.522 -27.965,9.857 C-27.965,9.857 -13.609,9.857 -13.609,9.857z; M-15.746,10.147 C-15.746,10.147 -27.745,1.637 -27.745,1.637 C-24.161,4.179 -25.72,9.812 -30.102,10.147 C-30.102,10.147 -15.746,10.147 -15.746,10.147z; M-16.772,10.286 C-16.772,10.286 -28.771,1.776 -28.771,1.776 C-25.187,4.318 -26.747,9.951 -31.129,10.286 C-31.129,10.286 -16.772,10.286 -16.772,10.286z; M-17.768,10.421 C-17.768,10.421 -29.767,1.911 -29.767,1.911 C-26.183,4.453 -27.742,10.086 -32.124,10.421 C-32.124,10.421 -17.768,10.421 -17.768,10.421z; M-18.731,10.552 C-18.731,10.552 -30.73,2.042 -30.73,2.042 C-27.146,4.584 -28.705,10.217 -33.087,10.552 C-33.087,10.552 -18.731,10.552 -18.731,10.552z; M-19.659,10.678 C-19.659,10.678 -31.658,2.168 -31.658,2.168 C-28.074,4.71 -29.634,10.343 -34.016,10.678 C-34.016,10.678 -19.659,10.678 -19.659,10.678z; M-20.551,10.799 C-20.551,10.799 -32.55,2.289 -32.55,2.289 C-28.966,4.831
62-30.526,10.464 -34.908,10.799 C-34.908,10.799 -20.551,10.799 -20.551,10.799z; M-21.405,10.915 C-21.405,10.915 -33.404,2.405 -33.404,2.405 C-29.82,4.947 -31.379,10.58 -35.761,10.915 C-35.761,10.915 -21.405,10.915 -21.405,10.915z; M-22.219,11.026 C-22.219,11.026 -34.218,2.516 -34.218,2.516 C-30.634,5.058 -32.193,10.691 -36.575,11.026 C-36.575,11.026 -22.219,11.026 -22.219,11.026z; M-22.992,11.131 C-22.992,11.131 -34.991,2.621 -34.991,2.621 C-31.407,5.163 -32.966,10.796 -37.348,11.131 C-37.348,11.131 -22.992,11.131 -22.992,11.131z; M-23.721,11.23 C-23.721,11.23 -35.72,2.72 -35.72,2.72 C-32.136,5.262 -33.695,10.895 -38.077,11.23 C-38.077,11.23 -23.721,11.23 -23.721,11.23z; M-24.406,11.323 C-24.406,11.323 -36.405,2.813 -36.405,2.813 C-32.821,5.355 -34.38,10.988 -38.762,11.323 C-38.762,11.323 -24.406,11.323 -24.406,11.323z; M-25.046,11.409 C-25.046,11.409 -37.045,2.899 -37.045,2.899 C-33.461,5.441 -35.02,11.074 -39.402,11.409 C-39.402,11.409 -25.046,11.409 -25.046,11.409z; M-25.638,11.49 C-25.638,11.49 -37.637,2.98 -37.637,2.98 C-34.053,5.522 -35.612,11.155 -39.994,11.49 C-39.994,11.49 -25.638,11.49 -25.638,11.49z; M-26.183,11.564 C-26.183,11.564 -38.182,3.054 -38.182,3.054 C-34.598,5.596 -36.157,11.229 -40.539,11.564 C-40.539,11.564 -26.183,11.564 -26.183,11.564z; M-26.679,11.631 C-26.679,11.631 -38.678,3.121 -38.678,3.121 C-35.094,5.663 -36.653,11.296 -41.035,11.631 C-41.035,11.631 -26.679,11.631 -26.679,11.631z; M-27.125,11.692 C-27.125,11.692 -39.124,3.182 -39.124,3.182 C-35.54,5.724 -37.099,11.357 -41.481,11.692 C-41.481,11.692 -27.125,11.692 -27.125,11.692z; M-27.52,11.745 C-27.52,11.745 -39.519,3.235 -39.519,3.235 C-35.935,5.777 -37.494,11.41 -41.876,11.745 C-41.876,11.745 -27.52,11.745 -27.52,11.745z; M-27.864,11.792 C-27.864,11.792 -39.863,3.282 -39.863,3.282 C-36.279,5.824 -37.838,11.457 -42.22,11.792 C-42.22,11.792 -27.864,11.792 -27.864,11.792z; M-28.155,11.832 C-28.155,11.832 -40.154,3.322 -40.154,3.322 C-36.57,5.864 -38.129,11.497 -42.511,11.832 C-42.511,11.832 -28.155,11.832 -28.155,11.832z; M-28.395,11.864 C-28.395,11.864 -40.394,3.354 -40.394,3.354 C-36.81,5.896 -38.369,11.529 -42.751,11.864 C-42.751,11.864 -28.395,11.864 -28.395,11.864z; M-28.582,11.889 C-28.582,11.889 -40.581,3.379 -40.581,3.379 C-36.997,5.921 -38.556,11.554 -42.938,11.889 C-42.938,11.889 -28.582,11.889 -28.582,11.889z; M-28.715,11.907 C-28.715,11.907 -40.714,3.397 -40.714,3.397 C-37.13,5.939 -38.689,11.572 -43.071,11.907 C-43.071,11.907 -28.715,11.907 -28.715,11.907z; M-28.795,11.918 C-28.795,11.918 -40.794,3.408 -40.794,3.408 C-37.21,5.95 -38.769,11.583 -43.151,11.918 C-43.151,11.918 -28.795,11.918 -28.795,11.918z; M-28.822,11.922 C-28.822,11.922 -40.821,3.412 -40.821,3.412 C-37.237,5.954 -38.796,11.587 -43.178,11.922 C-43.178,11.922 -28.822,11.922 -28.822,11.922z; M-28.793,11.916 C-28.793,11.916 -40.792,3.406 -40.792,3.406 C-37.208,5.948 -38.767,11.581 -43.149,11.916 C-43.149,11.916 -28.793,11.916 -28.793,11.916z; M-28.705,11.897 C-28.705,11.897 -40.704,3.387 -40.704,3.387 C-37.12,5.929 -38.679,11.562 -43.061,11.897 C-43.061,11.897 -28.705,11.897 -28.705,11.897z; M-28.558,11.866 C-28.558,11.866 -40.557,3.356 -40.557,3.356 C-36.973,5.898 -38.532,11.531 -42.914,11.866 C-42.914,11.866 -28.558,11.866 -28.558,11.866z; M-28.353,11.822 C-28.353,11.822 -40.352,3.312 -40.352,3.312 C-36.768,5.854 -38.327,11.487 -42.709,11.822 C-42.709,11.822 -28.353,11.822 -28.353,11.822z; M-28.088,11.766 C-28.088,11.766 -40.087,3.256 -40.087,3.256 C-36.503,5.798 -38.062,11.431 -42.444,11.766 C-42.444,11.766 -28.088,11.766 -28.088,11.766z; M-27.763,11.697 C-27.763,11.697 -39.762,3.187 -39.762,3.187 C-36.178,5.729 -37.737,11.362 -42.119,11.697 C-42.119,11.697 -27.763,11.697 -27.763,11.697z; M-27.38,11.615 C-27.38,11.615 -39.379,3.105 -39.379,3.105 C-35.795,5.647 -37.354,11.28 -41.736,11.615 C-41.736,11.615 -27.38,11.615 -27.38,11.615z; M-26.937,11.52 C-26.937,11.52 -38.936,3.01 -38.936,3.01 C-35.352,5.552 -36.911,11.185 -41.293,11.52 C-41.293,11.52 -26.937,11.52 -26.937,11.52z; M-26.434,11.413 C-26.434,11.413 -38.433,2.903 -38.433,2.903 C-34.849,5.445 -36.408,11.078 -40.79,11.413 C-40.79,11.413 -26.434,11.413 -26.434,11.413z; M-25.871,11.294 C-25.871,11.294 -37.87,2.784 -37.87,2.784 C-34.286,5.326 -35.845,10.959 -40.227,11.294 C-40.227,11.294 -25.871,11.294 -25.871,11.294z; M-25.249,11.161 C-25.249,11.161 -37.248,2.651 -37.248,2.651 C-33.664,5.193 -35.223,10.826 -39.605,11.161 C-39.605,11.161 -25.249,11.161 -25.249,11.161z; M-24.568,11.016 C-24.568,11.016 -36.567,2.506 -36.567,2.506 C-32.983,5.048 -34.542,10.681 -38.924,11.016 C-38.924,11.016 -24.568,11.016 -24.568,11.016z;
62 M-23.827,10.858 C-23.827,10.858 -35.826,2.348 -35.826,2.348 C-32.242,4.89 -33.801,10.523 -38.183,10.858 C-38.183,10.858 -23.827,10.858 -23.827,10.858z; M-23.026,10.688 C-23.026,10.688 -35.025,2.178 -35.025,2.178 C-31.441,4.72 -33,10.353 -37.382,10.688 C-37.382,10.688 -23.026,10.688 -23.026,10.688z; M-22.167,10.505 C-22.167,10.505 -34.166,1.995 -34.166,1.995 C-30.582,4.537 -32.141,10.17 -36.523,10.505 C-36.523,10.505 -22.167,10.505 -22.167,10.505z; M-21.249,10.309 C-21.249,10.309 -33.248,1.799 -33.248,1.799 C-29.664,4.341 -31.223,9.974 -35.605,10.309 C-35.605,10.309 -21.249,10.309 -21.249,10.309z; M-20.272,10.101 C-20.272,10.101 -32.271,1.591 -32.271,1.591 C-28.687,4.133 -30.246,9.766 -34.628,10.101 C-34.628,10.101 -20.272,10.101 -20.272,10.101z; M-19.238,9.881 C-19.238,9.881 -31.237,1.371 -31.237,1.371 C-27.653,3.913 -29.212,9.546 -33.594,9.881 C-33.594,9.881 -19.238,9.881 -19.238,9.881z; M-18.148,9.649 C-18.148,9.649 -30.147,1.139 -30.147,1.139 C-26.563,3.681 -28.122,9.314 -32.504,9.649 C-32.504,9.649 -18.148,9.649 -18.148,9.649z; M-17.001,9.404 C-17.001,9.404 -29,0.894 -29,0.894 C-25.416,3.436 -26.975,9.069 -31.357,9.404 C-31.357,9.404 -17.001,9.404 -17.001,9.404z; M-15.799,9.148 C-15.799,9.148 -27.798,0.638 -27.798,0.638 C-24.214,3.18 -25.773,8.813 -30.155,9.148 C-30.155,9.148 -15.799,9.148 -15.799,9.148z; M-14.544,8.881 C-14.544,8.881 -26.543,0.371 -26.543,0.371 C-22.959,2.913 -24.518,8.546 -28.9,8.881 C-28.9,8.881 -14.544,8.881 -14.544,8.881z; M-13.237,8.603 C-13.237,8.603 -25.236,0.093 -25.236,0.093 C-21.652,2.635 -23.211,8.268 -27.593,8.603 C-27.593,8.603 -13.237,8.603 -13.237,8.603z; M-11.881,8.314 C-11.881,8.314 -23.88,-0.196 -23.88,-0.196 C-20.296,2.346 -21.855,7.979 -26.237,8.314 C-26.237,8.314 -11.881,8.314 -11.881,8.314z; M-10.478,8.015 C-10.478,8.015 -22.477,-0.495 -22.477,-0.495 C-18.893,2.047 -20.452,7.68 -24.834,8.015 C-24.834,8.015 -10.478,8.015 -10.478,8.015z;
62 M-9.03,7.707 C-9.03,7.707 -21.029,-0.803 -21.029,-0.803 C-17.445,1.739 -19.004,7.372 -23.386,7.707 C-23.386,7.707 -9.03,7.707 -9.03,7.707z; M-7.544,7.39 C-7.544,7.39 -19.543,-1.12 -19.543,-1.12 C-15.959,1.422 -17.518,7.055 -21.9,7.39 C-21.9,7.39 -7.544,7.39 -7.544,7.39z; M-4.472,6.736 C-4.472,6.736 -16.471,-1.774 -16.471,-1.774 C-12.887,0.768 -14.446,6.401 -18.828,6.736 C-18.828,6.736 -4.472,6.736 -4.472,6.736z; M1.814,5.397 C1.814,5.397 -10.185,-3.113 -10.185,-3.113 C-6.601,-0.571 -8.16,5.062 -12.542,5.397 C-12.542,5.397 1.814,5.397 1.814,5.397z; M3.327,5.075 C3.327,5.075 -8.672,-3.435 -8.672,-3.435 C-5.088,-0.893 -6.647,4.74 -11.029,5.075 C-11.029,5.075 3.327,5.075 3.327,5.075z; M4.762,4.77 C4.762,4.77 -7.237,-3.74 -7.237,-3.74 C-3.653,-1.198 -5.212,4.435 -9.594,4.77 C-9.594,4.77 4.762,4.77 4.762,4.77z; M6.07,4.491 C6.07,4.491 -5.929,-4.019 -5.929,-4.019 C-2.345,-1.477 -3.904,4.156 -8.286,4.491 C-8.286,4.491 6.07,4.491 6.07,4.491z; M7.178,4.255 C7.178,4.255 -4.821,-4.255 -4.821,-4.255 C-1.237,-1.713 -2.796,3.92 -7.178,4.255 C-7.178,4.255 7.178,4.255 7.178,4.255z" keyTimes="0;0.005;0.01;0.015;0.02;0.025;0.03;0.035;0.05;0.055;0.06;0.065;0.07;0.075;0.08;0.085;0.09;0.095;0.1;0.105;0.11;0.115;0.12;0.125;0.13;0.135;0.14;0.145;0.15;0.16;0.17;0.18;0.19;0.2;0.21;0.22;0.23;0.24;0.25;0.265;0.275;0.285;0.295;0.31;0.32;0.33;0.335;0.345;0.355;0.365;0.375;0.385;0.395;0.405;0.415;0.42;0.43;0.44;0.45;0.46;0.47;0.48;0.485;0.495;0.505;0.515;0.525;0.535;0.545;0.555;0.56;0.57;0.58;0.59;0.6;0.61;0.65;0.66;0.67;0.68;0.69;0.7;0.705;0.71;0.715;0.72;0.725;0.73;0.735;0.74;0.745;0.75;0.755;0.76;0.765;0.77;0.775;0.78;0.785;0.79;0.795;0.8;0.805;0.81;0.815;0.82;0.825;0.83;0.835;0.84;0.845;0.85;0.855;0.86;0.865;0.87;0.875;0.88;0.885;0.89;0.895;0.9;0.905;0.91;0.915;0.92;0.925;0.93;0.935;0.94;0.945;0.95;0.96;0.98;0.985;0.99;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 63</animate> 64</path> 65</g> 66</g> 67<g opacity="1" display="block"> 68<g opacity="0" transform="matrix(1,0,0,1,49.35499954223633,-69.62999725341797)"> 69<path fill="currentColor" fill-opacity="1" d=" M-3.035,-12.465 C-3.035,-12.465 -21.695,-20.518 -21.695,-20.518 C-21.695,-20.518 -29.805,-1.723 -29.805,-1.723 C-29.805,-1.723 -11.145,6.329 -11.145,6.329 C-11.145,6.329 -21.835,31.115 -21.835,31.115 C-21.835,31.115 -7.675,37.226 -7.675,37.226 C-7.675,37.226 3.015,12.438 3.015,12.438 C3.015,12.438 21.695,20.495 21.695,20.495 C21.695,20.495 29.805,1.702 29.805,1.702 C29.805,1.702 11.125,-6.355 11.125,-6.355 C11.125,-6.355 21.815,-31.115 21.815,-31.115 C21.815,-31.115 7.655,-37.226 7.655,-37.226 C7.655,-37.226 -3.035,-12.465 -3.035,-12.465z"> 70</path> 71<animate attributeName="opacity" values="0;0;1;1;0;0;1;1;0;0;1;1;0;0;1;1;0;0" keyTimes="0;0.27;0.275;0.395;0.4;0.41;0.415;0.43;0.435;0.715;0.72;0.84;0.845;0.855;0.86;0.875;0.88;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 72</animate> 73</g> 74<animateTransform attributeName="transform" type="translate" additive="sum" values="212.013 263.447;212.255 263.328;212.547 263.187;214.525 262.251;214.991 262.035;215.569 261.767;216.089 261.526;216.438 261.364;216.75 261.217;217.024 261.086;217.33 260.935;217.514 260.839;217.699 260.734;217.819 260.655;217.875 260.6;217.864 260.57;217.784 260.564;217.678 260.575;217.529 260.599;217.335 260.638;217.093 260.693;216.902 260.739;216.572 260.825;216.185 260.932;215.741 261.062;215.414 261.163;214.877 261.337;214.081 261.614;213.21 261.947;212.285 262.336;211.335 262.777;210.16 263.384;209.486 263.763;208.851 264.142;208.454 264.39;207.904 264.749;207.568 264.976;207.114 265.295;206.719 265.584;206.38 265.843;206.094 266.07;205.859 266.266;205.616 266.481;205.483 266.61;205.393 266.712;205.343 266.812;205.357 266.86;205.412 266.888;205.507 266.897;205.659 266.87;205.801 266.821;206.078 266.703;206.304 266.594;206.706 266.387;207.017 266.219;207.361 266.029;207.739 265.818;208.366 265.465;208.822 265.206;209.556 264.792;211.37 263.79;211.827 263.545;212.013 263.447" keyTimes="0;0.01;0.02;0.08;0.095;0.115;0.135;0.15;0.165;0.18;0.2;0.215;0.235;0.255;0.275;0.295;0.315;0.33;0.345;0.36;0.375;0.385;0.4;0.415;0.43;0.44;0.455;0.475;0.495;0.515;0.535;0.56;0.575;0.59;0.6;0.615;0.625;0.64;0.655;0.67;0.685;0.7;0.72;0.735;0.75;0.77;0.785;0.8;0.815;0.83;0.84;0.855;0.865;0.88;0.89;0.9;0.91;0.925;0.935;0.95;0.985;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 75</animateTransform> 76<animateTransform attributeName="transform" type="rotate" additive="sum" values="11;11.29962;11.85051;14.11968;15.27479;15.80411;16.29678;16.75069;17.16441;17.65189;
7617.96861;18.32509;18.54291;18.71828;18.88619;18.96291;19;18.96532;18.85609;18.66373;18.45919;18.09774;17.75412;17.34315;16.86047;16.3025;15.66709;14.95444;14.16818;13.60691;12.71858;9.58749;8.39309;7.29977;6.79957;6.33291;5.90065;5.31701;4.80958;4.37516;4.12408;3.80188;3.54081;3.33627;3.18385;3.05468;3.00211;3.02602;3.16319;3.32048;3.53068;3.94538;4.28793;4.8999;5.37209;6.17289;6.76471;7.72851;10.14418;10.75379;10.99998" keyTimes="0;0.01;0.025;0.08;0.11;0.125;0.14;0.155;0.17;0.19;0.205;0.225;0.24;0.255;0.275;0.29;0.31;0.33;0.35;0.37;0.385;0.405;0.42;0.435;0.45;0.465;0.48;0.495;0.51;0.52;0.535;0.585;0.605;0.625;0.635;0.645;0.655;0.67;0.685;0.7;0.71;0.725;0.74;0.755;0.77;0.79;0.81;0.825;0.84;0.85;0.86;0.875;0.885;0.9;0.91;0.925;0.935;0.95;0.985;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 77</animateTransform> 78<animateTransform attributeName="transform" type="skewX" additive="sum" values="0;0" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 79</animateTransform> 80<animateTransform attributeName="transform" type="scale" additive="sum" values="0.782933 0.782933;0.782933 0.782933" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 81</animateTransform> 82</g> 83<g opacity="1" display="block"> 84<g opacity="0" transform="matrix(1,0,0,1,49.54399871826172,-68.93399810791016)"> 85<path fill="currentColor" fill-opacity="1" d=" M5.283,-12.232 C5.283,-12.232 0.089,-33.59 0.089,-33.59 C0.089,-33.59 -14.402,-25.337 -14.402,-25.337 C-14.402,-25.337 -9.209,-3.978 -9.209,-3.978 C-9.209,-3.978 -28.315,6.904 -28.315,6.904 C-28.315,6.904 -24.375,23.11 -24.375,23.11 C-24.375,23.11 -5.269,12.227 -5.269,12.227 C-5.269,12.227 -0.076,33.59 -0.076,33.59 C-0.076,33.59 14.416,25.337 14.416,25.337 C14.416,25.337 9.226,3.973 9.226,3.973 C9.226,3.973 28.315,-6.904 28.315,-6.904 C28.315,-6.904 24.375,-23.11 24.375,-23.11 C24.375,-23.11 5.283,-12.232 5.283,-12.232z"> 86</path> 87<animate attributeName="opacity" values="0;0;1;1;0;0;1;1;0;0;1;1;0;0;1;1;0;0" keyTimes="0;0.07;0.075;0.22;0.225;0.235;0.24;0.255;0.26;0.52;0.525;0.67;0.675;0.685;0.69;0.705;0.71;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 88</animate> 89</g> 90<animateTransform attributeName="transform" type="translate" additive="sum" values="212.013 263.447;212.255 263.328;212.546 263.188;214.364 262.327;214.838 262.106;215.429 261.832;215.964 261.585;216.325 261.417;216.749 261.218;217.024 261.087;217.329 260.935;217.566 260.811;217.698 260.735;217.818 260.655;217.874 260.601;217.863 260.571;217.81 260.564;217.677 260.575;217.528 260.599;217.335 260.638;217.092 260.693;216.901 260.74;216.571 260.826;216.184 260.933;215.741 261.063;215.413 261.163;214.876 261.337;214.08 261.614;213.209 261.947;212.284 262.337;211.334 262.778;210.159 263.384;209.057 264.017;208.454 264.391;207.903 264.749;207.41 265.086;207.114 265.295;206.718 265.585;206.379 265.843;206.094 266.071;205.858 266.267;205.669 266.433;205.482 266.611;205.372 266.742;205.343 266.812;205.356 266.861;205.411 266.888;205.507 266.897;205.658 266.87;205.884 266.788;206.077 266.704;206.303 266.595;206.706 266.387;207.017 266.22;207.361 266.03;207.739 265.819;208.365 265.465;209.305 264.934;211.369 263.79;211.826 263.545;212.013 263.447" keyTimes="0;0.01;0.02;0.075;0.09;0.11;0.13;0.145;0.165;0.18;0.2;0.22;0.235;0.255;0.275;0.295;0.31;0.33;0.345;0.36;0.375;0.385;0.4;0.415;0.43;0.44;0.455;0.475;0.495;0.515;0.535;0.56;0.585;0.6;0.615;0.63;0.64;0.655;0.67;0.685;0.7;0.715;0.735;0.755;0.77;0.785;0.8;0.815;0.83;0.845;0.855;0.865;0.88;0.89;0.9;0.91;0.925;0.945;0.985;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 91</animateTransform> 92<animateTransform attributeName="transform" type="rotate" additive="sum" values="11;11.29962;11.85051;14.11968;15.27479;15.80411;16.29678;16.75069;17.16441;17.65189;17.96861;18.32509;18.54291;18.71828;18.88619;18.96291;19;18.96532;18.85609;18.66373;18.45919;18.09774;17.75412;17.34315;16.86047;16.3025;15.66709;14.95444;14.16818;13.60691;12.71858;9.58749;8.39309;7.29977;6.79957;6.33291;5.90065;5.31701;4.80958;4.37516;4.12408;3.80188;3.54081;3.33627;3.18385;3.05468;3.00211;3.02602;3.16319;3.32048;3.53068;3.94538;4.28793;4.8999;5.37209;6.17289;6.76471;7.72851;10.14418;10.75379;10.99998" keyTimes="0;0.01;0.025;0.08;0.11;0.125;0.14;0.155;0.17;0.19;0.205;0.225;0.24;0.255;0.275;0.29;0.31;0.33;0.35;0.37;0.385;0.405;0.42;0.435;0.45;0.465;0.48;0.495;0.51;0.52;0.535;0.585;0.605;0.625;0.635;0.645;0.655;0.67;0.685;0.7;0.71;0.725;0.74;0.755;0.77;0.79;0.81;0.825;0.84;0.85;0.86;0.875;0.885;0.9;0.91;0.925;0.935;0.95;0.985;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 93</animateTransform> 94<animateTransform attributeName="transform" type="skewX" additive="sum" values="0;0" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 95</animateTransform> 96<animateTransform attributeName="transform" type="scale" additive="sum" values="0.782933 0.782933;0.782933 0.782933" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 97</animateTransform> 98</g> 99<g opacity="1" display="block"> 100<g opacity="1" transform="matrix(1,0,0,1,0,0)">
101<path fill="currentColor" fill-opacity="1" d=" M-18.047,0 C-18.047,10.313 -10.422,18.047 0,18.047 C10.168,18.047 18.047,10.313 18.047,0 C18.047,-10.313 10.168,-18.047 0,-18.047 C-10.422,-18.047 -18.047,-10.313 -18.047,0z"> 102</path> 103</g> 104<animateTransform attributeName="transform" type="translate" additive="sum" values="258.256 217.614;258.481 217.671;258.737 217.737;259.313 217.888;259.313 217.888;260.592 218.236;261.584 218.519;261.584 218.519;265.743 220.404;265.107 220.209;264.421 219.998;264.421 219.998;262.909 219.536;261.66 219.157;261.66 219.157;248.472 215.542;249.264 215.671;249.688 215.743;250.588 215.903;251.063 215.99;252.059 216.182;253.108 216.395;255.856 217.01;256.923 217.271;257.42 217.397;257.872 217.513;258.256 217.614" keyTimes="0;0.005;0.01;0.02;0.035;0.04;0.055;0.445;0.45;0.46;0.47;0.485;0.49;0.505;0.895;0.9;0.91;0.915;0.925;0.93;0.94;0.95;0.975;0.985;0.99;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 105</animateTransform> 106<animateTransform attributeName="transform" type="rotate" additive="sum" values="0;0.29962;0.65774;0.65774;1.45934;2.08711;2.08711;5.86047;5.49703;5.09935;5.09935;4.20043;3.43805;3.43805;-6.1001;-5.37306;-4.82711;-4.23529;-3.27149;-0.85582;-0.24621;0" keyTimes="0;0.01;0.02;0.035;0.04;0.055;0.445;0.45;0.46;0.47;0.485;0.49;0.505;0.895;0.9;0.915;0.925;0.935;0.95;0.985;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 107</animateTransform> 108<animateTransform attributeName="transform" type="skewX" additive="sum" values="0;0" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 109</animateTransform> 110<animateTransform attributeName="transform" type="scale" additive="sum" values="1.343002 1.343002;1.343002 1.343002" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 111</animateTransform> 112<animate attributeName="display" values="block;none;block;none;block;none;block;none;block;block" keyTimes="0;0.025;0.04;0.06;0.45;0.475;0.49;0.51;0.9;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="discrete"> 113</animate> 114</g> 115<g opacity="1" display="block"> 116<g opacity="0" transform="matrix(1,0,0,1,127.02999877929688,-113.86599731445312)"> 117<path fill="currentColor" fill-opacity="1" d=" M-2.74,-11.261 C-2.74,-11.261 -19.6,-18.536 -19.6,-18.536 C-19.6,-18.536 -26.92,-1.558 -26.92,-1.558 C-26.92,-1.558 -10.06,5.717 -10.06,5.717 C-10.06,5.717 -19.72,28.105 -19.72,28.105 C-19.72,28.105 -6.93,33.626 -6.93,33.626 C-6.93,33.626 2.73,11.235 2.73,11.235 C2.73,11.235 19.6,18.515 19.6,18.515 C19.6,18.515 26.92,1.536 26.92,1.536 C26.92,1.536 10.06,-5.742 10.06,-5.742 C10.06,-5.742 19.71,-28.106 19.71,-28.106 C19.71,-28.106 6.91,-33.626 6.91,-33.626 C6.91,-33.626 -2.74,-11.261 -2.74,-11.261z"> 118</path> 119<animate attributeName="opacity" values="0;0;1;1;0;0;1;1;0;0" keyTimes="0;0.27;0.275;0.445;0.45;0.715;0.72;0.89;0.895;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 120</animate> 121</g> 122<animateTransform attributeName="transform" type="translate" additive="sum" values="213.771 269.048;213.984 268.938;214.24 268.808;215.835 268.01;216.383 267.738;216.765 267.548;217.119 267.372;217.543 267.16;217.823 267.017;218.07 266.888;218.283 266.774;218.513 266.645;218.68 266.539;218.79 266.458;218.843 266.401;218.838 266.366;218.772 266.355;218.681 266.361;218.553 266.379;218.385 266.411;218.009 266.499;217.721 266.574;217.383 266.668;217.13 266.742;216.709 266.872;216.238 267.027;215.541 267.275;214.776 267.573;213.965 267.924;213.132 268.322;212.102 268.875;211.511 269.223;210.953 269.573;210.437 269.916;210.119 270.137;209.684 270.452;209.423 270.649;209.073 270.922;208.773 271.167;208.52 271.383;208.251 271.627;208.096 271.778;207.946 271.939;207.876 272.032;207.847 272.103;207.858 272.153;207.906 272.184;207.991 272.198;208.118 272.188;208.306 272.131;208.468 272.065;208.763 271.925;208.996 271.805;209.258 271.663;209.705 271.412;210.038 271.22;210.589 270.898;211.412 270.413;213.211 269.364;213.608 269.138;213.771 269.048" keyTimes="0;0.01;0.02;0.075;0.095;0.11;0.125;0.145;0.16;0.175;0.19;0.21;0.23;0.25;0.27;0.29;0.31;0.325;0.34;0.355;0.38;0.395;0.41;0.42;0.435;0.45;0.47;0.49;0.51;0.53;0.555;0.57;0.585;0.6;0.61;0.625;0.635;0.65;0.665;0.68;0.7;0.715;0.735;0.75;0.765;0.78;0.795;0.81;0.825;0.84;0.85;0.865;0.875;0.885;0.9;0.91;0.925;0.945;0.985;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 123</animateTransform> 124<animateTransform attributeName="transform" type="rotate" additive="sum" values="11;11.29962;11.85051;14.11968;15.27479;15.80411;16.29678;16.75069;17.16441;17.65189;
12417.96861;18.32509;18.54292;18.71828;18.88619;18.96291;19;18.96532;18.85609;18.66373;18.45919;18.09774;17.75412;17.34315;16.86047;16.3025;15.66709;14.95444;14.16818;13.60692;12.71858;9.58749;8.39309;7.29977;6.79957;6.33291;5.90065;5.31701;4.80958;4.37516;4.12408;3.80188;3.54081;3.33627;3.18385;3.05468;3.00211;3.02602;3.16319;3.32048;3.53069;3.94538;4.28794;4.8999;5.37209;6.17289;6.76471;7.72851;10.14418;10.75379;10.99998" keyTimes="0;0.01;0.025;0.08;0.11;0.125;0.14;0.155;0.17;0.19;0.205;0.225;0.24;0.255;0.275;0.29;0.31;0.33;0.35;0.37;0.385;0.405;0.42;0.435;0.45;0.465;0.48;0.495;0.51;0.52;0.535;0.585;0.605;0.625;0.635;0.645;0.655;0.67;0.685;0.7;0.71;0.725;0.74;0.755;0.77;0.79;0.81;0.825;0.84;0.85;0.86;0.875;0.885;0.9;0.91;0.925;0.935;0.95;0.985;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 125</animateTransform> 126<animateTransform attributeName="transform" type="skewX" additive="sum" values="0;0" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 127</animateTransform> 128<animateTransform attributeName="transform" type="scale" additive="sum" values="0.834786 0.834786;0.834786 0.834786" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 129</animateTransform> 130</g> 131<g opacity="1" display="block"> 132<g opacity="0" transform="matrix(1,0,0,1,128.80999755859375,-114.08200073242188)"> 133<path fill="currentColor" fill-opacity="1" d=" M4.77,-11.048 C4.77,-11.048 0.08,-30.339 0.08,-30.339 C0.08,-30.339 -13.01,-22.885 -13.01,-22.885 C-13.01,-22.885 -8.32,-3.593 -8.32,-3.593 C-8.32,-3.593 -25.58,6.238 -25.58,6.238 C-25.58,6.238 -22.02,20.873 -22.02,20.873 C-22.02,20.873 -4.76,11.044 -4.76,11.044 C-4.76,11.044 -0.07,30.339 -0.07,30.339 C-0.07,30.339 13.02,22.885 13.02,22.885 C13.02,22.885 8.33,3.588 8.33,3.588 C8.33,3.588 25.58,-6.236 25.58,-6.236 C25.58,-6.236 22.02,-20.873 22.02,-20.873 C22.02,-20.873 4.77,-11.048 4.77,-11.048z"> 134</path> 135<animate attributeName="opacity" values="0;0;1;1;0;0;1;1;0;0" keyTimes="0;0.07;0.075;0.27;0.275;0.52;0.525;0.72;0.725;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 136</animate> 137</g> 138<animateTransform attributeName="transform" type="translate" additive="sum" values="213.679 269.042;213.891 268.932;214.147 268.801;215.743 267.999;216.291 267.726;216.673 267.535;217.027 267.358;217.451 267.144;217.732 267.001;217.979 266.872;218.192 266.757;218.422 266.627;218.589 266.521;218.699 266.439;218.752 266.382;218.747 266.347;218.681 266.336;218.59 266.342;218.462 266.36;218.294 266.393;217.918 266.48;217.629 266.556;217.292 266.65;217.039 266.725;216.617 266.856;216.147 267.011;215.449 267.26;214.684 267.56;213.873 267.912;212.831 268.42;211.809 268.983;210.861 269.568;210.344 269.913;210.026 270.135;209.591 270.452;209.208 270.744;208.875 271.009;208.591 271.245;208.353 271.453;208.103 271.685;207.96 271.828;207.825 271.978;207.769 272.064;207.754 272.128;207.777 272.172;207.838 272.197;207.935 272.206;208.081 272.181;208.291 272.107;208.466 272.029;208.783 271.873;209.031 271.741;209.612 271.416;209.945 271.223;210.496 270.9;211.319 270.413;213.119 269.359;213.516 269.132;213.678 269.042" keyTimes="0;0.01;0.02;0.075;0.095;0.11;0.125;0.145;0.16;0.175;0.19;0.21;0.23;0.25;0.27;0.29;0.31;0.325;0.34;0.355;0.38;0.395;0.41;0.42;0.435;0.45;0.47;0.49;0.51;0.535;0.56;0.585;0.6;0.61;0.625;0.64;0.655;0.67;0.685;0.705;0.72;0.74;0.755;0.77;0.785;0.8;0.815;0.83;0.845;0.855;0.87;0.88;0.9;0.91;0.925;0.945;0.985;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 139</animateTransform> 140<animateTransform attributeName="transform" type="rotate" additive="sum" values="11;11.29962;11.85051;14.11968;15.27479;15.80411;16.29678;16.75069;17.16441;17.65189;17.96861;18.32509;18.54292;18.71828;18.88619;18.96291;19;18.96532;18.85609;18.66373;18.45919;18.09774;17.75412;17.34315;16.86047;16.3025;15.66709;14.95444;14.16818;13.60692;12.71858;9.58749;8.39309;7.29977;6.79957;6.33291;5.90065;5.31701;4.80958;4.37516;4.12408;3.80188;3.54081;3.33627;3.18385;3.05468;3.00211;3.02602;3.16319;3.32048;3.53069;3.94538;4.28794;4.8999;5.37209;6.17289;6.76471;7.72851;10.14418;10.75379;10.99998" keyTimes="0;0.01;0.025;0.08;0.11;0.125;0.14;0.155;0.17;0.19;0.205;0.225;0.24;0.255;0.275;0.29;0.31;0.33;0.35;0.37;0.385;0.405;0.42;0.435;0.45;0.465;0.48;0.495;0.51;0.52;0.535;0.585;0.605;0.625;0.635;0.645;0.655;0.67;0.685;0.7;0.71;0.725;0.74;0.755;0.77;0.79;0.81;0.825;0.84;0.85;0.86;0.875;0.885;0.9;0.91;0.925;0.935;0.95;0.985;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 141</animateTransform> 142<animateTransform attributeName="transform" type="skewX" additive="sum" values="0;0" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 143</animateTransform> 144<animateTransform attributeName="transform" type="scale" additive="sum" values="0.834786 0.834786;0.834786 0.834786" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 145</animateTransform> 146</g> 147<g opacity="1" display="none"> 148<g opacity="1" transform="matrix(1,0,0,1,0,0)">
149<path fill="currentColor" fill-opacity="1" d=" M134.24,-149.13 C131.7,-147.69 130.25,-144 131,-140.89 C131.76,-137.79 134.43,-136.45 136.97,-137.89 C139.51,-139.34 140.96,-143.03 140.21,-146.14 C139.45,-149.24 136.78,-150.58 134.24,-149.13z M122.63,-142.52 C120.09,-141.08 118.64,-137.39 119.4,-134.28 C120.15,-131.18 122.82,-129.84 125.37,-131.28 C127.91,-132.73 129.36,-136.42 128.6,-139.53 C127.85,-142.63 125.18,-143.97 122.63,-142.52z M125.99,-128.7 C123.45,-127.26 122,-123.57 122.76,-120.46 C123.51,-117.36 126.19,-116.02 128.73,-117.46 C131.27,-118.91 132.72,-122.6 131.96,-125.71 C131.21,-128.81 128.54,-130.15 125.99,-128.7z M114.47,-122.14 C111.93,-120.69 110.48,-117 111.24,-113.9 C111.99,-110.79 114.66,-109.45 117.21,-110.9 C119.75,-112.35 121.2,-116.04 120.44,-119.14 C119.69,-122.24 117.02,-123.59 114.47,-122.14z M148.99,-141.8 C146.45,-140.35 145,-136.66 145.75,-133.56 C146.51,-130.45 149.18,-129.11 151.72,-130.56 C154.26,-132.01 155.71,-135.69 154.96,-138.8 C154.2,-141.9 151.53,-143.24 148.99,-141.8z M137.6,-135.31 C135.06,-133.86 133.61,-130.17 134.36,-127.07 C135.12,-123.97 137.79,-122.62 140.33,-124.07 C142.88,-125.52 144.33,-129.21 143.57,-132.31 C142.82,-135.42 140.14,-136.76 137.6,-135.31z M140.96,-121.5 C138.41,-120.05 136.96,-116.36 137.72,-113.26 C138.47,-110.16 141.15,-108.82 143.69,-110.26 C146.23,-111.71 147.68,-115.4 146.93,-118.5 C146.17,-121.61 143.5,-122.95 140.96,-121.5z M129.35,-114.89 C126.81,-113.45 125.36,-109.76 126.12,-106.65 C126.87,-103.55 129.54,-102.21 132.08,-103.65 C134.63,-105.1 136.08,-108.79 135.32,-111.9 C134.57,-115 131.89,-116.34 129.35,-114.89z M117.83,-108.33 C115.29,-106.88 113.84,-103.19 114.59,-100.09 C115.35,-96.99 118.02,-95.64 120.56,-97.09 C123.1,-98.54 124.55,-102.23 123.8,-105.33 C123.04,-108.44 12
1490.37,-109.78 117.83,-108.33z M152.35,-127.99 C149.81,-126.54 148.36,-122.85 149.11,-119.75 C149.86,-116.64 152.54,-115.3 155.08,-116.75 C157.62,-118.2 159.07,-121.89 158.32,-124.99 C157.56,-128.09 154.89,-129.44 152.35,-127.99z M132.63,-101.08 C130.09,-99.63 128.64,-95.94 129.4,-92.84 C130.15,-89.73 132.82,-88.39 135.37,-89.84 C137.91,-91.29 139.36,-94.98 138.6,-98.08 C137.85,-101.18 135.17,-102.53 132.63,-101.08z M144.24,-107.69 C141.7,-106.24 140.25,-102.55 141.01,-99.45 C141.76,-96.34 144.43,-95 146.98,-96.45 C149.52,-97.9 150.97,-101.59 150.21,-104.69 C149.46,-107.79 146.79,-109.14 144.24,-107.69z"> 150</path> 151<g opacity="1" transform="matrix(1,0,0,1,135.60400390625,-143.51300048828125)"> 152</g> 153<g opacity="1" transform="matrix(1,0,0,1,124.0009994506836,-136.90499877929688)"> 154</g> 155<g opacity="1" transform="matrix(1,0,0,1,127.36199951171875,-123.08300018310547)"> 156</g> 157<g opacity="1" transform="matrix(1,0,0,1,115.84100341796875,-116.5199966430664)"> 158</g> 159<g opacity="1" transform="matrix(1,0,0,1,150.3560028076172,-136.177001953125)"> 160</g> 161<g opacity="1" transform="matrix(1,0,0,1,138.96800231933594,-129.6909942626953)"> 162</g> 163<g opacity="1" transform="matrix(1,0,0,1,142.32200622558594,-115.88200378417969)"> 164</g> 165<g opacity="1" transform="matrix(1,0,0,1,130.71800231933594,-109.27400207519531)"> 166</g> 167<g opacity="1" transform="matrix(1,0,0,1,119.1969985961914,-102.71099853515625)"> 168</g> 169<g opacity="1" transform="matrix(1,0,0,1,153.71200561523438,-122.36799621582031)"> 170</g> 171<g opacity="1" transform="matrix(1,0,0,1,133.9980010986328,-95.45800018310547)"> 172</g> 173<g opacity="1" transform="matrix(1,0,0,1,145.61000061035156,-102.06999969482422)"> 174</g> 175<animate attributeName="opacity" values="1;1;0;0;1;1;0;0;1;1" keyTimes="0;0.07;0.075;0.445;0.45;0.52;0.525;0.895;0.9;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 176</animate> 177</g> 178<animateTransform attributeName="transform" type="translate" additive="sum" values="203.823 274.255;203.823 274.255;206.276 272.162;207.338 271.332;207.83 270.947;208.172 270.678;208.586 270.349;208.949 270.055;209.258 269.797;209.51 269.576;209.705 269.391;209.842 269.243;209.926 269.13;209.958 269.052;209.918 269.004;209.787 269.009;209.557 269.066;209.295 269.155;208.956 269.288;208.536 269.469;208.033 269.705;207.29 270.087;206.791 270.367;206.259 270.686;205.704 271.046;205.134 271.445;204.183 272.185;203.275 272.986;202.611 273.636;202.019 274.264;201.754 274.562;201.396 274.982;201.085 275.365;200.904 275.599;200.532 276.106;200.267 276.503;200.154 276.693;200.05 276.893;200.011 277.006;200.016 277.113;200.06 277.163;200.17 277.192;200.294 277.179;200.471 277.102;200.701 276.96;200.986 276.753;201.207 276.578;201.584 276.263;202.016 275.886;202.503 275.452;203.041 274.965;203.823 274.255;203.823 274.255" keyTimes="0;0.035;0.04;0.08;0.1;0.115;0.135;0.155;0.175;0.195;0.215;0.235;0.255;0.275;0.3;0.325;0.35;0.37;0.39;0.41;0.43;0.455;0.47;0.485;0.5;0.515;0.54;0.565;0.585;0.605;0.615;0.63;0.645;0.655;0.68;0.705;0.72;0.74;0.755;0.775;0.79;0.81;0.825;0.84;0.855;0.87;0.88;0.895;0.91;0.925;0.94;0.96;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 179</animateTransform> 180<animateTransform attributeName="transform" type="rotate" additive="sum" values="8.41105;8.41105;12.45934;13.71179;14.51743;15.27479;15.80411;16.60379;17.29321;17.86772;18.24304;18.54292;18.81163;18.94201;19;18.96532;18.85609;18.66373;18.45919;18.09774;17.75412;17.4879;17.19042;16.68299;16.09935;15.66709;14.95444;14.16818;13.60692;12.71858;9.89735;8.68356;7.56195;7.04556;6.56198;5.90065;5.50297;5.13953;4.65685;4.37516;4.0096;3.80188;3.54081;3.33627;3.18385;3.07947;3.00852;3.0065;3.05862;3.16319;3.32048;3.53069;3.94538;4.47892;5.12967;5.62694;6.46329;7.39812;8.41105;8.41105" keyTimes="0;0.035;0.04;0.07;0.09;0.11;0.125;0.15;0.175;0.2;0.22;0.24;0.265;0.285;0.31;0.33;0.35;0.37;0.385;0.405;0.42;0.43;0.44;0.455;0.47;0.48;0.495;0.51;0.52;0.535;0.58;0.6;0.62;0.63;0.64;0.655;0.665;0.675;0.69;0.7;0.715;0.725;0.74;0.755;0.77;0.785;0.805;0.82;0.83;0.84;0.85;0.86;0.875;0.89;0.905;0.915;0.93;0.945;0.96;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 181</animateTransform> 182<animateTransform attributeName="transform" type="skewX" additive="sum" values="0;0" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 183</animateTransform> 184<animateTransform attributeName="transform" type="scale" additive="sum" values="0.834786 0.834786;0.834786 0.834786" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 185</animateTransform> 186<animate attributeName="display" values="none;block;none;none" keyTimes="0;0.04;0.965;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="discrete"> 187</animate> 188</g> 189<g opacity="1" display="block"> 190<g opacity="1" transform="matrix(1,0,0,1,0,0)">
191<path fill="currentColor" fill-opacity="1" d=" M-18.047,0 C-18.047,10.009 -10.422,17.517 0,17.517 C10.168,17.517 18.047,10.009 18.047,0 C18.047,-10.009 10.168,-17.517 0,-17.517 C-10.422,-17.517 -18.047,-10.009 -18.047,0z"> 192</path> 193</g> 194<animateTransform attributeName="transform" type="translate" additive="sum" values="336.672 195.515;336.951 195.764;337.612 196.359;338.357 197.038;339.545 198.141;339.545 198.141" keyTimes="0;0.005;0.015;0.025;0.04;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 195</animateTransform> 196<animateTransform attributeName="transform" type="rotate" additive="sum" values="0;0.14037;0.47323;0.85051;1.45934;1.45934" keyTimes="0;0.005;0.015;0.025;0.04;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 197</animateTransform> 198<animateTransform attributeName="transform" type="skewX" additive="sum" values="0;0" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 199</animateTransform> 200<animateTransform attributeName="transform" type="scale" additive="sum" values="1.343002 1.343002;1.343002 1.343002" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 201</animateTransform> 202<animate attributeName="display" values="block;none;none" keyTimes="0;0.045;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="discrete"> 203</animate> 204</g> 205<g opacity="1" display="none"> 206<g opacity="1" transform="matrix(1,0,0,1,0,0)"> 207<path fill="currentColor" fill-opacity="1" d=" M-18.047,0 C-18.047,10.009 -10.422,17.517 0,17.517 C10.168,17.517 18.047,10.009 18.047,0 C18.047,-10.009 10.168,-17.517 0,-17.517 C-10.422,-17.517 -18.047,-10.009 -18.047,0z"> 208</path> 209</g> 210<animateTransform attributeName="transform" type="translate" additive="sum" values="336.192 195.078;336.192 195.078;331.535 191.01;333.651 192.814;335 194.003;335.625 194.564;336.192 195.078;336.672 195.514" keyTimes="0;0.955;0.96;0.975;0.985;0.99;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 211</animateTransform> 212<animateTransform attributeName="transform" type="rotate" additive="sum" values="-0.24621;-0.24621;-2.58895;-0.85582;-0.24621;0" keyTimes="0;0.955;0.96;0.985;0.995;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 213</animateTransform> 214<animateTransform attributeName="transform" type="skewX" additive="sum" values="0;0" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 215</animateTransform> 216<animateTransform attributeName="transform" type="scale" additive="sum" values="1.343002 1.343002;1.343002 1.343002" keyTimes="0;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 217</animateTransform> 218<animate attributeName="display" values="none;block;block" keyTimes="0;0.96;1" dur="4s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="discrete"> 219</animate> 220</g> 221</g> 222</svg> 223`;function S_(e){return(0,V.useSyncExternalStore)((0,V.useCallback)(t=>{let n=window.matchMedia(e);return n.addEventListener(`change`,t),()=>n.removeEventListener(`change`,t)},[e]),(0,V.useCallback)(()=>window.matchMedia(e).matches,[e]),()=>!1)}var C_=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 480" width="480" height="480" preserveAspectRatio="xMidYMid meet"> 224<defs> 225<clipPath id="__MARVIN_ID__-2"> 226<rect width="480" height="480" x="0" y="0"> 227</rect> 228</clipPath> 229<clipPath id="__MARVIN_ID__-4"> 230<path fill="#ffffff" clip-rule="nonzero" d=" M367.5,161.5 C367.5,161.5 218.5,201.5 218.5,201.5 C218.5,201.5 231,251.5 231,251.5 C231,251.5 384,208.5 384,208.5 C384,208.5 367.5,161.5 367.5,161.5" fill-opacity="1"> 231<animate attributeName="d" values=" M367.5,161.5 C367.5,161.5 218.5,201.5 218.5,201.5 C218.5,201.5 231,251.5 231,251.5 C231,251.5 384,208.5 384,208.5 C384,208.5 367.5,161.5 367.5,161.5; M367.686,162.283 C367.686,162.283 218.686,202.283 218.686,202.283 C218.686,202.283 230.702,250.642 230.702,250.642 C230.702,250.642 383.832,207.661 383.832,207.661 C383.832,207.661 367.686,162.283 367.686,162.283; M372.314,181.717 C372.314,181.717 223.314,221.717 223.314,221.717 C223.314,221.717 223.298,229.358 223.298,229.358 C223.298,229.358 379.668,186.839 379.668,186.839 C379.668,186.839 372.314,181.717 372.314,181.717; M372.5,182.5 C372.5,182.5 223.5,222.5 223.5,222.5 C223.5,222.5 223,228.5 223,228.5 C223,228.5 379.5,186 379.5,186 C379.5,186 372.5,182.5 372.5,182.5; M372.098,180.813 C372.098,180.813 223.098,220.813 223.098,220.813 C223.098,220.813 223.643,230.347 223.643,230.347 C223.643,230.347 379.861,187.807 379.861,187.807 C379.861,187.807 372.098,180.813 372.098,180.813; M367.902,163.187 C367.902,163.187 218.902,203.187 218.902,203.187 C218.902,203.187 230.357,249.653 230.357,249.653 C230.357,249.653 383.639,206.693 383.639,206.693 C383.639,206.693 367.902,163.187 367.902,163.187; M367.5,161.5 C367.5,161.5 218.5,201.5 218.5,201.5 C218.5,201.5 231,251.5 231,251.5 C231,251.5 384,208.5 384,208.5 C384,208.5 367.5,161.5 367.5,161.5; M367.902,163.187 C367.902,163.187 218.902,203.187 218.902,203.187 C218.902,203.187 230.357,249.653 230.357,249.653 C230.357,249.653 383.639,206.693 383.639,206.693 C383.639,206.693 367.902,163.187 367.902,163.187; M372.098,180.813 C372.098,180.813 223.098,220.813 223.098,220.813 C223.098,220.813 223.643,230.347 223.643,230.347 C223.643,230.347 379.861,187.807 379.861,187.807 C379.861,187.807 372.098,180.813 372.098,180.813; M372.5,182.5 C372.5,182.5 223.5,222.5 223.5,222.5 C223.5,222.5 223,228.5 223,228.5 C223,228.5 379.5,186 379.5,186 C379.5,186 372.5,182.5 372.5,182.5; M372.314,181.717 C372.314,181.717 223.314,221.717 223.314,221.717 C223.314,221.717 223.298,229.358 223.298,229.358 C223.298,229.358 379.668,186.839 379.668,186.839 C379.668,186.839 372.314,181.717 372.314,181.717; M367.686,162.283 C367.686,162.283 218.686,202.283 218.686,202.283 C218.686,202.283 230.702,250.642 230.702,250.642 C230.702,250.642 383.832,207.661 383.832,207.661 C383.832,207.661 367.686,162.283 367.686,162.283; M367.5,161.5 C367.5,161.5 218.5,201.5 218.5,201.5 C218.5,201.5 231,251.5 231,251.5 C231,251.5 384,208.5 384,208.5 C384,208.5 367.5,161.5 367.5,161.5; M367.5,161.5 C367.5,161.5 218.5,201.5 218.5,201.5 C218.5,201.5 231,251.5 231,251.5 C231,251.5 384,208.5 384,208.5 C384,208.5 367.5,161.5 367.5,161.5; M367.686,162.283 C367.686,162.283 218.686,202.283 218.686,202.283 C218.686,202.283 230.702,250.642 230.702,250.642 C230.702,250.642 383.832,207.661 383.832,207.661 C383.832,207.661 367.686,162.283 367.686,162.283; M372.314,181.717 C372.314,181.717 223.314,221.717 223.314,221.717 C223.314,221.717 223.298,229.358 223.298,229.358 C223.298,229.358 379.668,186.839 379.668,186.839 C379.668,186.839 372.314,181.717 372.314,181.717; M372.5,182.5 C372.5,182.5 223.5,222.5 223.5,222.5 C223.5,222.5 223,228.5 223,228.5 C223,228.5 379.5,186 379.5,186 C379.5,186 372.5,182.5 372.5,182.5; M372.098,180.813 C372.098,180.813 223.098,220.813 223.098,220.813 C223.098,220.813 223.643,230.347 223.643,230.347 C223.643,230.347 379.861,187.807 379.861,187.807 C379.861,187.807 372.098,180.813 372.098,180.813; M367.902,163.187 C367.902,163.187 218.902,203.187 218.902,203.187 C218.902,203.187 230.357,249.653 230.357,249.653 C230.357,249.653 383.639,206.693 383.639,206.693 C383.639,206.693 367.902,163.187 367.902,163.187; M367.5,161.5 C367.5,161.5 218.5,201.5 218.5,201.5 C218.5,201.5 231,251.5 231,251.5 C231,251.5 384,208.5 384,208.5 C384,208.5 367.5,161.5 367.5,161.5; M367.902,163.187 C367.902,163.187 218.902,203.187 218.902,203.187 C218.902,203.187 230.357,249.653 230.357,249.653 C230.357,249.653 383.639,206.693 383.639,206.693 C383.639,206.693 367.902,163.187 367.902,163.187; M372.098,180.813 C372.098,180.813 223.098,220.813 223.098,220.813 C223.098,220.813 223.643,230.347 223.643,230.347 C223.643,230.347 379.861,187.807 379.861,187.807 C379.861,187.807 372.098,180.813 372.098,180.813; M372.5,182.5 C372.5,182.5 223.5,222.5 223.5,222.5 C223.5,222.5 223,228.5 223,228.5 C223,228.5 379.5,186 379.5,186 C379.5,186 372.5,182.5 372.5,182.5; M372.314,181.717 C372.314,181.717 223.314,221.717 223.314,221.717 C223.314,221.717 223.298,229.358 223.298,229.358 C223.298,229.358 379.668,186.839 379.668,186.839 C379.668,186.839 372.314,181.717 372.314,181.717; M367.686,162.283 C367.686,162.283 218.686,202.283 218.686,202.283 C218.686,202.283 230.702,250.642 230.702,250.642 C230.702,250.642 383.832,207.661 383.832,207.661 C383.832,207.661 367.686,162.283 367.686,162.283; M367.5,161.5 C367.5,161.5 218.5,201.5 218.5,201.5 C218.5,201.5 231,251.5 231,251.5 C231,251.5 384,208.5 384,208.5 C384,208.5 367.5,161.5 367.5,161.5; M367.5,161.5 C367.5,161.5 218.5,201.5 218.5,201.5 C218.5,201.5 231,251.5 231,251.5 C231,251.5 384,208.5 384,208.5 C384,208.5 367.5,161.5 367.5,161.5" keyTimes="0;0.012987;0.038961;0.051948;0.064935;0.077922;0.090909;0.103896;0.116883;0.12987;0.142857;0.168831;0.181818;0.805195;0.818182;0.844156;0.857143;0.87013;0.883117;0.896104;0.909091;0.922078;0.935065;0.948052;0.974026;0.987013;1" dur="2.566666666666667s" repeatCount="__MARVIN_REPEAT__" fill="freeze" calcMode="linear"> 232</animate> 233</path> 234</clipPath> 235</defs> 236<g clip-path="url(#__MARVIN_ID__-2)"> 237<g transform="matrix(1,0,0,1,0,0)" opacity="1" display="block"> 238<g opacity="1" transform="matrix(1,0,0,1,235.35000610351562,239.26199340820312)">
239<path fill="currentColor" fill-opacity="1" d=" M20.33,-157.85 C36.42,-162.16 53.57,-159.96 68.05,-151.71 C68.05,-151.71 144.82,-108.01 144.82,-108.01 C147.15,-106.69 146.7,-103.2 144.11,-102.51 C144.11,-102.51 -25.67,-57.03 -25.67,-57.03 C-42.55,-52.51 -52.58,-35.16 -48.05,-18.27 C-48.05,-18.27 -39.86,12.3 -39.86,12.3 C-35.34,29.18 -17.98,39.2 -1.09,34.67 C-1.09,34.67 93.1,9.44 93.1,9.44 C93.1,9.44 141.24,56.99 141.24,56.99 C150.27,65.91 155.35,78.07 155.35,90.75 C155.35,90.75 155.35,115.97 155.35,115.97 C155.35,132.51 142.61,146.26 126.11,147.52 C126.11,147.52 -31.1,159.56 -31.1,159.56 C-49.39,160.96 -67.39,154.36 -80.44,141.47 C-80.44,141.47 -132.86,89.68 -132.86,89.68 C-141.89,80.76 -146.96,68.6 -146.96,55.92 C-146.96,55.92 -146.96,30.7 -146.96,30.7 C-146.96,14.16 -134.22,0.41 -117.72,-0.85 C-117.72,-0.85 -102.9,-1.98 -102.9,-1.98 C-100.11,-2.2 -99.11,-5.79 -101.39,-7.41 C-101.39,-7.41 -133.89,-30.45 -133.89,-30.45 C-139.91,-34.72 -144.25,-40.95 -146.15,-48.07 C-146.15,-48.07 -154.26,-78.31 -154.26,-78.31 C-158.78,-95.19 -148.76,-112.54 -131.87,-117.07 C-131.87,-117.07 20.33,-157.84 20.33,-157.84 C20.33,-157.84 20.33,-157.85 20.33,-157.85z"> 240</path> 241</g> 242</g> 243<g clip-path="url(#__MARVIN_ID__-4)" transform="matrix(1,0,0,1,0,0)" opacity="1" display="block"> 244<g opacity="1" transform="matrix(1,0,0,1,336.94500732421875,195.5919952392578)"> 245<path fill="currentColor" fill-opacity="1" d=" M-24.265,0 C-24.265,13.46 -14.015,23.55 -0.005,23.55 C14.005,23.55 24.265,13.46 24.265,0 C24.265,-13.46 13.665,-23.55 -0.005,-23.55 C-13.675,-23.55 -24.265,-13.46 -24.265,0 C-24.265,0 -24.265,0 -24.265,0z"> 246</path> 247</g> 248<g opacity="1" transform="matrix(1,0,0,1,258.42498779296875,217.7220001220703)"> 249<path fill="currentColor" fill-opacity="1" d=" M-24.265,0 C-24.265,13.87 -14.015,24.27 -0.005,24.27 C14.005,24.27 24.265,13.87 24.265,0 C24.265,-13.87 13.675,-24.27 -0.005,-24.27 C-13.685,-24.27 -24.265,-13.87 -24.265,0 C-24.265,0 -24.265,0 -24.265,0z"> 250</path> 251</g> 252</g> 253</g> 254</svg> 255`,w_=e=>e.trim().replace(/^<svg[^>]*>/,``).replace(/<\/svg>$/,``),T_=w_(C_).replace(/<animate\b[\s\S]*?<\/animate>/g,``);function E_({source:e,size:t=28,className:n,loop:r=!1,framing:i=`canvas`,ref:a}){let o=(0,V.useId)(),s=S_(`(prefers-reduced-motion: reduce)`),c=(0,V.useMemo)(()=>({__html:(s?T_:w_(e)).replaceAll(`__MARVIN_ID__`,`marvin-${o.replaceAll(`:`,``)}`).replaceAll(`__MARVIN_REPEAT__`,r?`indefinite`:`1`)}),[e,o,r,s]);return(0,H.jsx)(`svg`,{ref:a,width:t,height:t,viewBox:i===`icon`?`80 79.2549 320 320`:`0 0 480 480`,overflow:i===`icon`?`visible`:void 0,fill:`currentColor`,className:n,"aria-hidden":`true`,dangerouslySetInnerHTML:c})}function D_({loop:e=!0,...t}){return(0,H.jsx)(E_,{...t,loop:e,source:x_})}function O_(){return(0,H.jsx)(D_,{size:64,className:`size-16 shrink-0 text-black dark:text-white`})}var k_=2654435769,A_=220,j_=6,M_=260,N_=130,P_=130,F_=46,I_=560,L_={r:99,g:102,b:241},R_={r:165,g:180,b:252};function z_(e){return function(){e|=0,e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}function B_(){return typeof document<`u`&&document.documentElement.classList.contains(`dark`)?{r:168,g:162,b:158}:{r:115,g:115,b:115}}function V_({className:e,gap:t=16,dotSize:n=1,sizeRange:r=3,opacityRange:i=.72,revealRadius:a=260,seed:o=k_,rippleActive:s=!1,rippleOrigin:c,rippleColor:l=L_,rippleColorAlt:u=R_}){let d=(0,V.useRef)(null),f=(0,V.useRef)(null),p=(0,V.useRef)(null),m=(0,V.useRef)(!1),h=(0,V.useRef)(!1),g=(0,V.useRef)(0),_=(0,V.useRef)(0),v=(0,V.useRef)(null),y=(0,V.useRef)(B_()),b=(0,V.useRef)(null),x=(0,V.useRef)(0),S=(0,V.useRef)(0),C=(0,V.useRef)(0),w=(0,V.useRef)(0),E=(0,V.useRef)(c);(0,V.useEffect)(()=>{E.current=c},[c]);let ee=(0,V.useRef)(l);(0,V.useEffect)(()=>{ee.current=l},[l]);let D=(0,V.useRef)(u);return(0,V.useEffect)(()=>{D.current=u},[u]),(0,V.useEffect)(()=>{let e=d.current,s=e?.parentElement;if(!e||!s)return;let c=e,l=s;x.current=j_;function u(){f.current===null&&(f.current=window.requestAnimationFrame(A))}b.current=u;function O(e){g.current=e,v.current=null,u()}function k(){O(m.current&&!h.current?1:0)}function A(e){let s=c.getContext(`2d`);if(f.current=null,!s)return;let l=e-(v.current??e),d=g.current,m=_.current+(d-_.current)*Math.min(1,l/A_);_.current=m;let h=S.current,b=C.current+(h-C.current)*Math.min(1,l/M_);C.current=b,b>.001?w.current+=l/1e3*N_:w.current=0,v.current=e;let O=c.getBoundingClientRect();
255if(O.width<=0||O.height<=0){x.current>0&&(--x.current,u());return}let k=window.devicePixelRatio||1,A=Math.max(1,Math.round(O.width*k)),j=Math.max(1,Math.round(O.height*k));(c.width!==A||c.height!==j)&&(c.width=A,c.height=j),s.setTransform(k,0,0,k,0,0),s.clearRect(0,0,O.width,O.height);let te=z_(o),M=Math.ceil(O.width/t),N=Math.ceil(O.height/t),P=p.current,F=P?P.x-O.left:O.width/2,I=P?P.y-O.top:O.height/2,ne=y.current,L=b>.001,re=ee.current,R=D.current,ie=w.current,ae=E.current?.current??null,oe=L?ae?.getBoundingClientRect():void 0,z=oe?oe.left+oe.width/2-O.left:O.width/2,se=oe?oe.top+oe.height/2-O.top:O.height/2;for(let e=0;e<N;e+=1)for(let o=0;o<M;o+=1){let c=o*t+t/2,l=e*t+t/2,u=te(),d=te(),f=n+u*u*n*r,p=.075+(1-d*i)*.15,h=P?Math.hypot(F-c,I-l):1/0,g=Math.max(0,1-h/a)*m,_=g*g*(3-2*g),v=0,y=re.r,x=re.g,S=re.b;if(L){let e=Math.hypot(c-z,l-se),t=e-ie,n=(t%P_+P_)%P_,r=Math.min(n,P_-n),i=Math.max(0,1-r/F_);v=i*i*(3-2*i)*Math.max(0,1-e/I_)*b;let a=(Math.round(t/P_)%2+2)%2==0?0:1;y=re.r+(R.r-re.r)*a,x=re.g+(R.g-re.g)*a,S=re.b+(R.b-re.b)*a}let C=f*(1+_*.28+v*.85),w=Math.min(.85,p+_*.17+v*.55);s.fillStyle=`rgba(${Math.round(ne.r+(y-ne.r)*v)}, ${Math.round(ne.g+(x-ne.g)*v)}, ${Math.round(ne.b+(S-ne.b)*v)}, ${w})`,s.fillRect(c-C/2,l-C/2,C,C)}s.setTransform(1,0,0,1,0,0);let ce=h>0||b>.001;x.current>0&&--x.current,(Math.abs(d-m)>.001||ce||x.current>0)&&u()}function j(e){m.current=!0,p.current={x:e.clientX,y:e.clientY},k()}function te(e){p.current={x:e.clientX,y:e.clientY},u()}function M(){m.current=!1,k()}function N(){h.current=!0,k()}function P(e){e.relatedTarget instanceof Node&&l.contains(e.relatedTarget)||(h.current=!1,k())}let F=new ResizeObserver(u),I=new MutationObserver(e=>{for(let t of e)t.attributeName===`class`&&t.target===document.documentElement&&(y.current=B_(),u())});return l.addEventListener(`pointerenter`,j),l.addEventListener(`pointermove`,te,{passive:!0}),l.addEventListener(`pointerleave`,M),l.addEventListener(`focusin`,N),l.addEventListener(`focusout`,P),F.observe(l),F.observe(c),I.observe(document.documentElement,{attributes:!0}),u(),()=>{l.removeEventListener(`pointerenter`,j),l.removeEventListener(`pointermove`,te),l.removeEventListener(`pointerleave`,M),l.removeEventListener(`focusin`,N),l.removeEventListener(`focusout`,P),F.disconnect(),I.disconnect(),b.current=null,f.current!==null&&(window.cancelAnimationFrame(f.current),f.current=null)}},[t,n,r,i,a,o]),(0,V.useEffect)(()=>{S.current=+!!s,v.current=null,b.current?.()},[s]),(0,H.jsx)(`canvas`,{"aria-hidden":`true`,className:e,ref:d,style:{position:`absolute`,inset:0,width:`100%`,height:`100%`}})}function H_({id:e,children:t,borderBottom:n=!0,fullWidth:r=!1,height:i,innerClassName:a=``,innerRef:o,outerClassName:s=``,onPointerEnter:c,onPointerLeave:l,onPointerMove:u}){let d=i?`site-section-fixed`:``,f=r?`w-full`:`mx-auto w-full max-w-320 border-subtle min-[1280px]:border-x`,p={...i?{"--site-section-height":i}:{}};return(0,H.jsx)(`section`,{id:e,className:`${n?`border-b border-subtle`:``} ${s}`,children:(0,H.jsx)(`div`,{ref:o,className:`${d} ${f} ${a}`,onPointerEnter:c,onPointerLeave:l,onPointerMove:u,style:p,children:t})})}function U_(){let e=js(),t=`/login?${new URLSearchParams({next:e.href}).toString()}`;return(0,H.jsxs)(H_,{outerClassName:`flex grow flex-col`,innerClassName:`relative flex min-h-[440px] flex-1 items-center justify-center overflow-hidden px-6 py-16 sm:min-h-[520px] sm:px-8`,children:[(0,H.jsx)(V_,{className:`pointer-events-none absolute inset-0 size-full`}),(0,H.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 size-full`,style:{backgroundImage:`linear-gradient(to bottom, var(--surface-base) 0%, color-mix(in srgb, var(--surface-base) 20%, transparent) 100%)`}}),(0,H.jsxs)(`div`,{className:`relative flex w-full max-w-140 flex-col items-center text-center`,"aria-labelledby":`not-found-heading`,children:[(0,H.jsx)(O_,{}),(0,H.jsx)(`h1`,{id:`not-found-heading`,className:`mt-5 font-mono text-4xl font-bold text-default`,children:`404`}),(0,H.jsxs)(`p`,{className:`text-site-body-sm mt-4 max-w-110 font-sans text-muted`,children:[`The page you're looking for doesn't exist, has been moved, or you may
255need to`,` `,(0,H.jsx)(`a`,{href:t,className:`text-default underline underline-offset-2 hover:no-underline`,children:`log in`}),` `,`to view it.`]})]})]})}var W_=[`Shift`,`Meta`,`Alt`,`Control`],G_=1e3,K_=`keydown`,q_=typeof navigator==`object`?navigator.platform:``,J_=/Mac|iPod|iPhone|iPad/.test(q_),Y_=J_?`Meta`:`Control`,X_=q_===`Win32`?[`Control`,`Alt`]:J_?[`Alt`]:[];function Z_(e,t){return typeof e.getModifierState==`function`?e.getModifierState(t)||X_.includes(t)&&e.getModifierState(`AltGraph`):!1}function Q_(e){return e.trim().split(` `).map(e=>{let t=e.split(/\b\+/),n=t.pop(),r=n.match(/^\((.+)\)$/);return r&&(n=RegExp(`^${r[1]}$`)),t=t.map(e=>e===`$mod`?Y_:e),[t,n]})}function $_(e,[t,n]){return!((n instanceof RegExp?!(n.test(e.key)||n.test(e.code)):n.toUpperCase()!==e.key.toUpperCase()&&n!==e.code)||t.find(t=>!Z_(e,t))||W_.find(r=>!t.includes(r)&&n!==r&&Z_(e,r)))}function ev(e,t={}){let n=t.timeout??G_,r=new Map,i=null,a=t=>{if(t instanceof KeyboardEvent){for(let[n,i,a]of e()){let e=r.get(n)??i,o=e[0];if(!(o&&$_(t,o))){Z_(t,t.key)||r.delete(n);continue}if(e.length>1){r.set(n,e.slice(1));continue}r.delete(n),a(t)}i&&clearTimeout(i),i=window.setTimeout(()=>{r.clear()},n)}};return a.destroy=()=>{r.clear(),i&&=(clearTimeout(i),null)},a}function tv(e){return e instanceof HTMLElement&&!!e.closest(`input, textarea, select, [contenteditable='true']`)}function nv(e,{target:t,event:n=K_,capture:r,timeout:i,enabled:a=!0,ignoreEditableTarget:o=!0}={}){let s=(0,V.useRef)([]);(0,V.useEffect)(()=>{s.current=Object.keys(e).map(t=>[t,Q_(t),e[t]])},[e]),(0,V.useEffect)(()=>{let e=t??(typeof document>`u`?null:document);if(!a||!e)return;let c=ev(()=>s.current,{timeout:i}),l=e=>{o&&e instanceof KeyboardEvent&&tv(e.target)||c(e)};return e.addEventListener(n,l,r),()=>{e.removeEventListener(n,l,r),c.destroy()}},[r,a,n,o,t,i])}var rv=`modulepreload`,iv=function(e){return`/`+e},av={},ov=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=iv(t,n),t=s(t),t in av)return;av[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:rv,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},sv=(0,V.lazy)(()=>ov(()=>import(`./dist-D14n-vGg.js`).then(e=>({default:e.Agentation})),__vite__mapDeps([0,1,2,3]))),cv=class extends V.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?null:this.props.children}};function lv(){let[e,t]=(0,V.useState)(!1);return nv({".":e=>{e.defaultPrevented||e.repeat||e.isComposing||(e.preventDefault(),t(e=>!e))}}),e?(0,H.jsx)(cv,{children:(0,H.jsx)(V.Suspense,{fallback:null,children:(0,H.jsx)(uv,{})})}):null}function uv(){return(0,V.useEffect)(()=>{let e=()=>{let e=document.querySelector(`[data-agentation-toolbar] [title="Start feedback mode"]`);e&&(t.disconnect(),e.click())},t=new MutationObserver(e);return t.observe(document.body,{childList:!0,subtree:!0}),e(),()=>t.disconnect()},[]),(0,H.jsx)(sv,{})}function dv(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=dv(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function fv(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=dv(e))&&(r&&(r+=` `),r+=t);return r}function pv(){return typeof window<`u`}function mv(e){return _v(e)?(e.nodeName||``).toLowerCase():`#document`}function hv(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}
255function gv(e){return((_v(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function _v(e){return pv()?e instanceof Node||e instanceof hv(e).Node:!1}function vv(e){return pv()?e instanceof Element||e instanceof hv(e).Element:!1}function yv(e){return pv()?e instanceof HTMLElement||e instanceof hv(e).HTMLElement:!1}function bv(e){return!pv()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof hv(e).ShadowRoot}function xv(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Mv(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Sv(e){return/^(table|td|th)$/.test(mv(e))}function Cv(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var wv=/transform|translate|scale|rotate|perspective|filter/,Tv=/paint|layout|strict|content/,Ev=e=>!!e&&e!==`none`,Dv;function Ov(e){let t=vv(e)?Mv(e):e;return Ev(t.transform)||Ev(t.translate)||Ev(t.scale)||Ev(t.rotate)||Ev(t.perspective)||!Av()&&(Ev(t.backdropFilter)||Ev(t.filter))||wv.test(t.willChange||``)||Tv.test(t.contain||``)}function kv(e){let t=Pv(e);for(;yv(t)&&!jv(t);){if(Ov(t))return t;if(Cv(t))return null;t=Pv(t)}return null}function Av(){return Dv??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Dv}function jv(e){return/^(html|body|#document)$/.test(mv(e))}function Mv(e){return hv(e).getComputedStyle(e)}function Nv(e){return vv(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Pv(e){if(mv(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||bv(e)&&e.host||gv(e);return bv(t)?t.host:t}function Fv(e){let t=Pv(e);return jv(t)?e.ownerDocument?e.ownerDocument.body:e.body:yv(t)&&xv(t)?t:Fv(t)}function Iv(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Fv(e),i=r===e.ownerDocument?.body,a=hv(r);if(i){let e=Lv(a);return t.concat(a,a.visualViewport||[],xv(r)?r:[],e&&n?Iv(e):[])}else return t.concat(r,Iv(r,[],n))}function Lv(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}var Rv=[`top`,`right`,`bottom`,`left`],zv=[`start`,`end`],Bv=Rv.reduce((e,t)=>e.concat(t,t+`-`+zv[0],t+`-`+zv[1]),[]),Vv=Math.min,Hv=Math.max,Uv=Math.round,Wv=Math.floor,Gv=e=>({x:e,y:e}),Kv={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function qv(e,t,n){return Hv(e,Vv(t,n))}function Jv(e,t){return typeof e==`function`?e(t):e}function Yv(e){return e.split(`-`)[0]}function Xv(e){return e.split(`-`)[1]}function Zv(e){return e===`x`?`y`:`x`}function Qv(e){return e===`y`?`height`:`width`}function $v(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function ey(e){return Zv($v(e))}function ty(e,t,n){n===void 0&&(n=!1);let r=Xv(e),i=ey(e),a=Qv(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=uy(o)),[o,uy(o)]}function ny(e){let t=uy(e);return[ry(e),t,ry(t)]}function ry(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var iy=[`left`,`right`],ay=[`right`,`left`],oy=[`top`,`bottom`],sy=[`bottom`,`top`];function cy(e,t,n){switch(e){case`top`:case`bottom`:return n?t?ay:iy:t?iy:ay;case`left`:case`right`:return t?oy:sy;default:return[]}}function ly(e,t,n,r){let i=Xv(e),a=cy(Yv(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(ry)))),a}function uy(e){let t=Yv(e);return Kv[t]+e.slice(t.length)}function dy(e){return{top:0,right:0,bottom:0,left:0,...e}}function fy(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:dy(e)}function py(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}var my=[`input:not([inert]):not([inert] *)`,`select:not([inert]):not([inert] *)`,`textarea:not([inert]):not([inert] *)`,`a[href]:not([inert]):not([inert] *)`,`button:not([inert]):not([inert] *)`,`[tabindex]:not(slot):not([inert]):not([inert] *)`,`audio[controls]:not([inert]):not([inert] *)`,`video[controls]:not([inert]):not([inert] *)`,`[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)`,`details>summary:first-of-type:not([inert]):not([inert] *)`,`details:not([inert]):not([inert] *)`].join(`,`),hy=typeof Element>`u`,gy=hy?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,_y=!hy&&Element.prototype.getRootNode?function(e){return e?.getRootNode?.call(e)}:function(e){return e?.ownerDocument},vy=function(e,t){t===void 0&&(t=!0);var n=e?.getAttribute?.call(e,`inert`);return n===``||n===`true`||t&&e&&(typeof e.closest==`function`?e.closest(`[inert]`):vy(e.parentNode))},yy=function(e){var t=e?.getAttribute?.call(e,`contenteditable`);return t===``||t===`true`},by=function(e,t,n){if(vy(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(my));return t&&gy.call(e,my)&&r.unshift(e),r=r.filter(n),r},xy=function(e,t,n){for(var r=[],i=Array.from(e);i.length;){var a=i.shift();if(!vy(a,!1))if(a.tagName===`SLOT`){var o=a.assignedElements(),s=xy(o.length?o:a.children,!0,n);
255n.flatten?r.push.apply(r,s):r.push({scopeParent:a,candidates:s})}else{gy.call(a,my)&&n.filter(a)&&(t||!e.includes(a))&&r.push(a);var c=a.shadowRoot||typeof n.getShadowRoot==`function`&&n.getShadowRoot(a),l=!vy(c,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(a));if(c&&l){var u=xy(c===!0?a.children:c.children,!0,n);n.flatten?r.push.apply(r,u):r.push({scopeParent:a,candidates:u})}else i.unshift.apply(i,a.children)}}return r},Sy=function(e){return!isNaN(parseInt(e.getAttribute(`tabindex`),10))},Cy=function(e){if(!e)throw Error(`No node provided`);return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||yy(e))&&!Sy(e)?0:e.tabIndex},wy=function(e,t){var n=Cy(e);return n<0&&t&&!Sy(e)?0:n},Ty=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},Ey=function(e){return e.tagName===`INPUT`},Dy=function(e){return Ey(e)&&e.type===`hidden`},Oy=function(e){return e.tagName===`DETAILS`&&Array.prototype.slice.apply(e.children).some(function(e){return e.tagName===`SUMMARY`})},ky=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]},Ay=function(e){if(!e.name)return!0;var t=e.form||_y(e),n=function(e){return t.querySelectorAll(`input[type="radio"][name="`+e+`"]`)},r;if(typeof window<`u`&&window.CSS!==void 0&&typeof window.CSS.escape==`function`)r=n(window.CSS.escape(e.name));else try{r=n(e.name)}catch(e){return console.error(`Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s`,e.message),!1}var i=ky(r,e.form);return!i||i===e},jy=function(e){return Ey(e)&&e.type===`radio`},My=function(e){return jy(e)&&!Ay(e)},Ny=function(e){var t=e&&_y(e),n=t?.host,r=!1;if(t&&t!==e){var i,a,o;for(r=!!((i=n)!=null&&(a=i.ownerDocument)!=null&&a.contains(n)||e!=null&&(o=e.ownerDocument)!=null&&o.contains(e));!r&&n;){var s,c;t=_y(n),n=t?.host,r=!!((s=n)!=null&&(c=s.ownerDocument)!=null&&c.contains(n))}}return r},Py=function(e){var t=e.getBoundingClientRect(),n=t.width,r=t.height;return n===0&&r===0},Fy=function(e,t){var n=t.displayCheck,r=t.getShadowRoot;if(n===`full-native`&&`checkVisibility`in e)return!e.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});if(getComputedStyle(e).visibility===`hidden`)return!0;var i=gy.call(e,`details>summary:first-of-type`)?e.parentElement:e;if(gy.call(i,`details:not([open]) *`))return!0;if(!n||n===`full`||n===`full-native`||n===`legacy-full`){if(typeof r==`function`){for(var a=e;e;){var o=e.parentElement,s=_y(e);if(o&&!o.shadowRoot&&r(o)===!0)return Py(e);e=e.assignedSlot?e.assignedSlot:!o&&s!==e.ownerDocument?s.host:o}e=a}if(Ny(e))return!e.getClientRects().length;if(n!==`legacy-full`)return!0}else if(n===`non-zero-area`)return Py(e);return!1},Iy=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName===`FIELDSET`&&t.disabled){for(var n=0;n<t.children.length;n++){var r=t.children.item(n);if(r.tagName===`LEGEND`)return gy.call(t,`fieldset[disabled] *`)?!0:!r.contains(e)}return!0}t=t.parentElement}return!1},Ly=function(e,t){return!(t.disabled||Dy(t)||Fy(t,e)||Oy(t)||Iy(t))},Ry=function(e,t){return!(My(t)||Cy(t)<0||!Ly(e,t))},zy=function(e){var t=parseInt(e.getAttribute(`tabindex`),10);return!!(isNaN(t)||t>=0)},By=function(e){var t=[],n=[];return e.forEach(function(e,r){var i=!!e.scopeParent,a=i?e.scopeParent:e,o=wy(a,i),s=i?By(e.candidates):a;o===0?i?t.push.apply(t,s):t.push(a):n.push({documentOrder:r,tabIndex:o,item:e,isScope:i,content:s})}),n.sort(Ty).reduce(function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e},[]).concat(t)},Vy=function(e,t){return t||={},By(t.getShadowRoot?xy([e],t.includeContainer,{filter:Ry.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:zy}):by(e,t.includeContainer,Ry.bind(null,t)))},Hy=function(e,t){return t||={},t.getShadowRoot?xy([e],t.includeContainer,{filter:Ly.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):by(e,t.includeContainer,Ly.bind(null,t))},Uy=function(e,t){if(t||={},!e)throw Error(`No node provided`);return gy.call(e,my)!==!1&&Ry(t,e)};function Wy(){let e=navigator.userAgentData;return e!=null&&e.platform?e.platform:navigator.platform}function Gy(){let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(e=>{let{brand:t,version:n}=e;return t+`/`+n}).join(` `):navigator.userAgent}function Ky(){return/apple/i.test(navigator.vendor)}function qy(){let e=/android/i;return e.test(Wy())||e.test(Gy())}function Jy(){return Wy().toLowerCase().startsWith(`mac`)&&!navigator.maxTouchPoints}function Yy(){return Gy().includes(`jsdom/`)}var Xy=`data-floating-ui-focusable`,Zy=`input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])`,Qy=`ArrowLeft`,$y=`ArrowRight`,eb=`ArrowUp`,tb=`ArrowDown`;function nb(e){let t=e.activeElement;for(;((n=t)==null||(n=n.shadowRoot)==null?void 0:n.activeElement)!=null;){var n;t=t.shadowRoot.activeElement}return t}function rb(e,t){if(!e||!t)return!1;let n=t.getRootNode==null?void 0:t.getRootNode();if(e.contains(t))return!0;
255if(n&&bv(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function ib(e){return`composedPath`in e?e.composedPath()[0]:e.target}function ab(e,t){if(t==null)return!1;if(`composedPath`in e)return e.composedPath().includes(t);let n=e;return n.target!=null&&t.contains(n.target)}function ob(e){return e.matches(`html,body`)}function sb(e){return e?.ownerDocument||document}function cb(e){return yv(e)&&e.matches(Zy)}function lb(e){return e?e.getAttribute(`role`)===`combobox`&&cb(e):!1}function ub(e){if(!e||Yy())return!0;try{return e.matches(`:focus-visible`)}catch{return!0}}function db(e){return e?e.hasAttribute(Xy)?e:e.querySelector(`[data-floating-ui-focusable]`)||e:null}function fb(e,t,n){return n===void 0&&(n=!0),e.filter(e=>e.parentId===t&&(!n||e.context?.open)).flatMap(t=>[t,...fb(e,t.id,n)])}function pb(e,t){let n,r=-1;function i(t,a){a>r&&(n=t,r=a),fb(e,t).forEach(e=>{i(e.id,a+1)})}return i(t,0),e.find(e=>e.id===n)}function mb(e,t){let n=[],r=e.find(e=>e.id===t)?.parentId;for(;r;){let t=e.find(e=>e.id===r);r=t?.parentId,t&&(n=n.concat(t))}return n}function hb(e){e.preventDefault(),e.stopPropagation()}function gb(e){return`nativeEvent`in e}function _b(e){return e.mozInputSource===0&&e.isTrusted?!0:qy()&&e.pointerType?e.type===`click`&&e.buttons===1:e.detail===0&&!e.pointerType}function vb(e){return Yy()?!1:!qy()&&e.width===0&&e.height===0||qy()&&e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType===`mouse`||e.width<1&&e.height<1&&e.pressure===0&&e.detail===0&&e.pointerType===`touch`}function yb(e,t){let n=[`mouse`,`pen`];return t||n.push(``,void 0),n.includes(e)}var bb=typeof document<`u`?V.useLayoutEffect:function(){},xb={...V};function Sb(e){let t=V.useRef(e);return bb(()=>{t.current=e}),t}var Cb=xb.useInsertionEffect||(e=>e());function wb(e){let t=V.useRef(()=>{});return Cb(()=>{t.current=e}),V.useCallback(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function Tb(e,t,n){return Math.floor(e/t)!==n}function Eb(e,t){return t<0||t>=e.current.length}function Db(e,t){return kb(e,{disabledIndices:t})}function Ob(e,t){return kb(e,{decrement:!0,startingIndex:e.current.length,disabledIndices:t})}function kb(e,t){let{startingIndex:n=-1,decrement:r=!1,disabledIndices:i,amount:a=1}=t===void 0?{}:t,o=n;do o+=r?-a:a;while(o>=0&&o<=e.current.length-1&&Pb(e,o,i));return o}function Ab(e,t){let{event:n,orientation:r,loop:i,rtl:a,cols:o,disabledIndices:s,minIndex:c,maxIndex:l,prevIndex:u,stopEvent:d=!1}=t,f=u;if(n.key===eb){if(d&&hb(n),u===-1)f=l;else if(f=kb(e,{startingIndex:f,amount:o,decrement:!0,disabledIndices:s}),i&&(u-o<c||f<0)){let e=u%o,t=l%o,n=l-(t-e);f=t===e?l:t>e?n:n-o}Eb(e,f)&&(f=u)}if(n.key===tb&&(d&&hb(n),u===-1?f=c:(f=kb(e,{startingIndex:u,amount:o,disabledIndices:s}),i&&u+o>l&&(f=kb(e,{startingIndex:u%o-o,amount:o,disabledIndices:s}))),Eb(e,f)&&(f=u)),r===`both`){let t=Wv(u/o);n.key===(a?Qy:$y)&&(d&&hb(n),u%o===o-1?i&&(f=kb(e,{startingIndex:u-u%o-1,disabledIndices:s})):(f=kb(e,{startingIndex:u,disabledIndices:s}),i&&Tb(f,o,t)&&(f=kb(e,{startingIndex:u-u%o-1,disabledIndices:s}))),Tb(f,o,t)&&(f=u)),n.key===(a?$y:Qy)&&(d&&hb(n),u%o===0?i&&(f=kb(e,{startingIndex:u+(o-u%o),decrement:!0,disabledIndices:s})):(f=kb(e,{startingIndex:u,decrement:!0,disabledIndices:s}),i&&Tb(f,o,t)&&(f=kb(e,{startingIndex:u+(o-u%o),decrement:!0,disabledIndices:s}))),Tb(f,o,t)&&(f=u));let r=Wv(l/o)===t;Eb(e,f)&&(f=i&&r?n.key===(a?$y:Qy)?l:kb(e,{startingIndex:u-u%o-1,disabledIndices:s}):u)}return f}function jb(e,t,n){let r=[],i=0;return e.forEach((e,a)=>{let{width:o,height:s}=e,c=!1;for(n&&(i=0);!c;){let e=[];for(let n=0;n<o;n++)for(let r=0;r<s;r++)e.push(i+n+r*t);i%t+o<=t&&e.every(e=>r[e]==null)?(e.forEach(e=>{r[e]=a}),c=!0):i++}}),[...r]}function Mb(e,t,n,r,i){if(e===-1)return-1;let a=n.indexOf(e),o=t[e];switch(i){case`tl`:return a;case`tr`:return o?a+o.width-1:a;case`bl`:return o?a+(o.height-1)*r:a;case`br`:return n.lastIndexOf(e)}}function Nb(e,t){return t.flatMap((t,n)=>e.includes(t)?[n]:[])}function Pb(e,t,n){if(typeof n==`function`)return n(t);if(n)return n.includes(t);let r=e.current[t];return r==null||r.hasAttribute(`disabled`)||r.getAttribute(`aria-disabled`)===`true`}var Fb=()=>({getShadowRoot:!0,displayCheck:typeof ResizeObserver==`function`&&ResizeObserver.toString().includes(`[native code]`)?`full`:`none`});function Ib(e,t){let n=Vy(e,Fb()),r=n.length;if(r===0)return;let i=nb(sb(e)),a=n.indexOf(i);return n[a===-1?t===1?0:r-1:a+t]}
255function Lb(e){return Ib(sb(e).body,1)||e}function Rb(e){return Ib(sb(e).body,-1)||e}function zb(e,t){let n=t||e.currentTarget,r=e.relatedTarget;return!r||!rb(n,r)}function Bb(e){Vy(e,Fb()).forEach(e=>{e.dataset.tabindex=e.getAttribute(`tabindex`)||``,e.setAttribute(`tabindex`,`-1`)})}function Vb(e){e.querySelectorAll(`[data-tabindex]`).forEach(e=>{let t=e.dataset.tabindex;delete e.dataset.tabindex,t?e.setAttribute(`tabindex`,t):e.removeAttribute(`tabindex`)})}function Hb(e,t,n){let{reference:r,floating:i}=e,a=$v(t),o=ey(t),s=Qv(o),c=Yv(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(Xv(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function Ub(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=Jv(t,e),p=fy(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=py(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=py(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Wb=50,Gb=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Ub},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Hb(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Wb&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=Hb(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}};function Kb(e,t,n){return(e?[...n.filter(t=>Xv(t)===e),...n.filter(t=>Xv(t)!==e)]:n.filter(e=>Yv(e)===e)).filter(n=>!e||Xv(n)===e||(t?ry(n)!==n:!1))}var qb=function(e){return e===void 0&&(e={}),{name:`autoPlacement`,options:e,async fn(t){let{rects:n,middlewareData:r,placement:i,platform:a,elements:o}=t,{crossAxis:s=!1,alignment:c,allowedPlacements:l=Bv,autoAlignment:u=!0,...d}=Jv(e,t),f=c!==void 0||l===Bv?Kb(c||null,u,l):l,p=await a.detectOverflow(t,d),m=r.autoPlacement?.index||0,h=f[m];if(h==null)return{};let g=ty(h,n,await(a.isRTL==null?void 0:a.isRTL(o.floating)));if(i!==h)return{reset:{placement:f[0]}};let _=[p[Yv(h)],p[g[0]],p[g[1]]],v=[...r.autoPlacement?.overflows||[],{placement:h,overflows:_}],y=f[m+1];if(y)return{data:{index:m+1,overflows:v},reset:{placement:y}};let b=v.map(e=>{let t=Xv(e.placement);return[e.placement,t&&s?e.overflows.slice(0,2).reduce((e,t)=>e+t,0):e.overflows[0],e.overflows]}).sort((e,t)=>e[1]-t[1]),x=b.filter(e=>e[2].slice(0,Xv(e[0])?2:3).every(e=>e<=0))[0]?.[0]||b[0][0];return x===i?{}:{data:{index:m+1,overflows:v},reset:{placement:x}}}}},Jb=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=Jv(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=Yv(r),_=$v(o),v=Yv(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[uy(o)]:ny(o)),x=p!==`none`;!d&&x&&b.push(...ly(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],E=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=ty(r,a,y);w.push(C[e[0]],C[e[1]])}if(E=[...E,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==$v(t))||E.every(e=>$v(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:E},reset:{placement:t}};let n=E.filter(e=>e.overflows[0]<=0).sort((e,t)=>
vendor: 4,196 bytes, line 255
255e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=E.filter(e=>{if(x){let t=$v(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}},Yb=new Set([`left`,`top`]);async function Xb(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=Yv(n),s=Xv(n),c=$v(n)===`y`,l=Yb.has(o)?-1:1,u=a&&c?-1:1,d=Jv(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Zb=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Xb(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Qb=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=Jv(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=$v(Yv(i)),p=Zv(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=qv(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=qv(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},$b=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=Jv(e,t),u=await o.detectOverflow(t,l),d=Yv(i),f=Xv(i),p=$v(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=Vv(h-u[g],v),x=Vv(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=Hv(u.left,0),t=Hv(u.right,0),n=Hv(u.top,0),r=Hv(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:Hv(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:Hv(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let E=await o.getDimensions(s.floating);return m!==E.width||h!==E.height?{reset:{rects:!0}}:{}}}};function ex(e){let t=Mv(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=yv(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=Uv(n)!==a||Uv(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function tx(e){return vv(e)?e:e.contextElement}function nx(e){let t=tx(e);if(!yv(t))return Gv(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=ex(t),o=(a?Uv(n.width):n.width)/r,s=(a?Uv(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var rx=Gv(0);function ix(e){let t=hv(e);return!Av()||!t.visualViewport?rx:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function ax(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==hv(e)?!1:t}function ox(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=tx(e),o=Gv(1);t&&(r?vv(r)&&(o=nx(r)):o=nx(e));let s=ax(a,n,r)?ix(a):Gv(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=hv(a),t=r&&vv(r)?hv(r):r,n=e,i=Lv(n);for(;i&&r&&t!==n;){let e=nx(i),t=i.getBoundingClientRect(),r=Mv(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=hv(i),i=Lv(n)}}return py({width:u,height:d,x:c,y:l})}function sx(e,t){let n=Nv(e).scrollLeft;return t?t.left+n:ox(gv(e)).left+n}function cx(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-sx(e,n),y:n.top+t.scrollTop}}function lx(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=gv(r),s=t?Cv(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=Gv(1),u=Gv(0),d=yv(r);
vendor: 4,689 bytes, line 255
255if((d||!d&&!a)&&((mv(r)!==`body`||xv(o))&&(c=Nv(r)),d)){let e=ox(r);l=nx(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?cx(o,c):Gv(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function ux(e){return Array.from(e.getClientRects())}function dx(e){let t=gv(e),n=Nv(e),r=e.ownerDocument.body,i=Hv(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=Hv(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+sx(e),s=-n.scrollTop;return Mv(r).direction===`rtl`&&(o+=Hv(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var fx=25;function px(e,t){let n=hv(e),r=gv(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=Av();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=sx(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=fx&&(a-=o)}else l<=fx&&(a+=l);return{width:a,height:o,x:s,y:c}}function mx(e,t){let n=ox(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=yv(e)?nx(e):Gv(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function hx(e,t,n){let r;if(t===`viewport`)r=px(e,n);else if(t===`document`)r=dx(gv(e));else if(vv(t))r=mx(t,n);else{let n=ix(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return py(r)}function gx(e,t){let n=Pv(e);return n===t||!vv(n)||jv(n)?!1:Mv(n).position===`fixed`||gx(n,t)}function _x(e,t){let n=t.get(e);if(n)return n;let r=Iv(e,[],!1).filter(e=>vv(e)&&mv(e)!==`body`),i=null,a=Mv(e).position===`fixed`,o=a?Pv(e):e;for(;vv(o)&&!jv(o);){let t=Mv(o),n=Ov(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||xv(o)&&!n&&gx(e,o))?r=r.filter(e=>e!==o):i=t,o=Pv(o)}return t.set(e,r),r}function vx(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Cv(t)?[]:_x(t,this._c):[].concat(n),r],o=hx(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=hx(t,a[e],i);s=Hv(n.top,s),c=Vv(n.right,c),l=Vv(n.bottom,l),u=Hv(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function yx(e){let{width:t,height:n}=ex(e);return{width:t,height:n}}function bx(e,t,n){let r=yv(t),i=gv(t),a=n===`fixed`,o=ox(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=Gv(0);function l(){c.x=sx(i)}if(r||!r&&!a)if((mv(t)!==`body`||xv(i))&&(s=Nv(t)),r){let e=ox(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?cx(i,s):Gv(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function xx(e){return Mv(e).position===`static`}function Sx(e,t){if(!yv(e)||Mv(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return gv(e)===n&&(n=n.ownerDocument.body),n}function Cx(e,t){let n=hv(e);if(Cv(e))return n;if(!yv(e)){let t=Pv(e);for(;t&&!jv(t);){if(vv(t)&&!xx(t))return t;t=Pv(t)}return n}let r=Sx(e,t);for(;r&&Sv(r)&&xx(r);)r=Sx(r,t);return r&&jv(r)&&xx(r)&&!Ov(r)?n:r||kv(e)||n}var wx=async function(e){let t=this.getOffsetParent||Cx,n=this.getDimensions,r=await n(e.floating);return{reference:bx(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Tx(e){return Mv(e).direction===`rtl`}var Ex={convertOffsetParentRelativeRectToViewportRelativeRect:lx,getDocumentElement:gv,getClippingRect:vx,getOffsetParent:Cx,getElementRects:wx,getClientRects:ux,getDimensions:yx,getScale:nx,isElement:vv,isRTL:Tx};function Dx(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Ox(e,t){let n=null,r,i=gv(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=Wv(d),h=Wv(i.clientWidth-(u+f)),g=Wv(i.clientHeight-(d+p)),_=Wv(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:Hv(0,Vv(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!Dx(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function kx(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=tx(e),u=i||a?[...l?Iv(l):[],...t?Iv(t):[]]:[];
255u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?Ox(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?ox(e):null;c&&g();function g(){let t=ox(e);h&&!Dx(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Ax=Zb,jx=qb,Mx=Qb,Nx=Jb,Px=$b,Fx=(e,t,n)=>{let r=new Map,i={platform:Ex,...n},a={...i.platform,_c:r};return Gb(e,t,{...i,platform:a})},Ix=n(a(),1),Lx=typeof document<`u`?V.useLayoutEffect:function(){};function Rx(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Rx(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!Rx(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function zx(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Bx(e,t){let n=zx(e);return Math.round(t*n)/n}function Vx(e){let t=V.useRef(e);return Lx(()=>{t.current=e}),t}function Hx(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=V.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=V.useState(r);Rx(f,r)||p(r);let[m,h]=V.useState(null),[g,_]=V.useState(null),v=V.useCallback(e=>{e!==S.current&&(S.current=e,h(e))},[]),y=V.useCallback(e=>{e!==C.current&&(C.current=e,_(e))},[]),b=a||m,x=o||g,S=V.useRef(null),C=V.useRef(null),w=V.useRef(u),E=c!=null,ee=Vx(c),D=Vx(i),O=Vx(l),k=V.useCallback(()=>{if(!S.current||!C.current)return;let e={placement:t,strategy:n,middleware:f};D.current&&(e.platform=D.current),Fx(S.current,C.current,e).then(e=>{let t={...e,isPositioned:O.current!==!1};A.current&&!Rx(w.current,t)&&(w.current=t,Ix.flushSync(()=>{d(t)}))})},[f,t,n,D,O]);Lx(()=>{l===!1&&w.current.isPositioned&&(w.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let A=V.useRef(!1);Lx(()=>(A.current=!0,()=>{A.current=!1}),[]),Lx(()=>{if(b&&(S.current=b),x&&(C.current=x),b&&x){if(ee.current)return ee.current(b,x,k);k()}},[b,x,k,ee,E]);let j=V.useMemo(()=>({reference:S,floating:C,setReference:v,setFloating:y}),[v,y]),te=V.useMemo(()=>({reference:b,floating:x}),[b,x]),M=V.useMemo(()=>{let e={position:n,left:0,top:0};if(!te.floating)return e;let t=Bx(te.floating,u.x),r=Bx(te.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...zx(te.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,te.floating,u.x,u.y]);return V.useMemo(()=>({...u,update:k,refs:j,elements:te,floatingStyles:M}),[u,k,j,te,M])}var Ux=(e,t)=>{let n=Ax(e);return{name:n.name,fn:n.fn,options:[e,t]}},Wx=(e,t)=>{let n=Mx(e);return{name:n.name,fn:n.fn,options:[e,t]}},Gx=(e,t)=>{let n=Nx(e);return{name:n.name,fn:n.fn,options:[e,t]}},Kx=(e,t)=>{let n=Px(e);return{name:n.name,fn:n.fn,options:[e,t]}},qx=(e,t)=>{let n=jx(e);return{name:n.name,fn:n.fn,options:[e,t]}},Jx=`data-floating-ui-focusable`,Yx=`active`,Xx=`selected`,Zx=`ArrowLeft`,Qx=`ArrowRight`,$x=`ArrowUp`,eS=`ArrowDown`,tS=[Zx,Qx],nS=[$x,eS];[...tS,...nS];var rS={...V},iS=!1,aS=0,oS=()=>`floating-ui-`+Math.random().toString(36).slice(2,6)+aS++;function sS(){let[e,t]=V.useState(()=>iS?oS():void 0);return bb(()=>{e??t(oS())},[]),V.useEffect(()=>{iS=!0},[]),e}var cS=rS.useId||sS;function lS(){let e=new Map;return{emit(t,n){var r;(r=e.get(t))==null||r.forEach(e=>e(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){var r;(r=e.get(t))==null||r.delete(n)}}}var uS=V.createContext(null),dS=V.createContext(null),fS=()=>V.useContext(uS)?.id||null,pS=()=>V.useContext(dS);function mS(e){let t=cS(),n=pS(),r=fS(),i=e||r;return bb(()=>{if(!t)return;
255let e={id:t,parentId:i};return n?.addNode(e),()=>{n?.removeNode(e)}},[n,t,i]),t}function hS(e){let{children:t,id:n}=e,r=fS();return(0,H.jsx)(uS.Provider,{value:V.useMemo(()=>({id:n,parentId:r}),[n,r]),children:t})}function gS(e){let{children:t}=e,n=V.useRef([]),r=V.useCallback(e=>{n.current=[...n.current,e]},[]),i=V.useCallback(e=>{n.current=n.current.filter(t=>t!==e)},[]),[a]=V.useState(()=>lS());return(0,H.jsx)(dS.Provider,{value:V.useMemo(()=>({nodesRef:n,addNode:r,removeNode:i,events:a}),[r,i,a]),children:t})}function _S(e){return`data-floating-ui-`+e}function vS(e){e.current!==-1&&(clearTimeout(e.current),e.current=-1)}var yS=_S(`safe-polygon`);function bS(e,t,n){if(n&&!yb(n))return 0;if(typeof e==`number`)return e;if(typeof e==`function`){let n=e();return typeof n==`number`?n:n?.[t]}return e?.[t]}function xS(e){return typeof e==`function`?e():e}function SS(e,t){t===void 0&&(t={});let{open:n,onOpenChange:r,dataRef:i,events:a,elements:o}=e,{enabled:s=!0,delay:c=0,handleClose:l=null,mouseOnly:u=!1,restMs:d=0,move:f=!0}=t,p=pS(),m=fS(),h=Sb(l),g=Sb(c),_=Sb(n),v=Sb(d),y=V.useRef(),b=V.useRef(-1),x=V.useRef(),S=V.useRef(-1),C=V.useRef(!0),w=V.useRef(!1),E=V.useRef(()=>{}),ee=V.useRef(!1),D=wb(()=>{let e=i.current.openEvent?.type;return e?.includes(`mouse`)&&e!==`mousedown`});V.useEffect(()=>{if(!s)return;function e(e){let{open:t}=e;t||(vS(b),vS(S),C.current=!0,ee.current=!1)}return a.on(`openchange`,e),()=>{a.off(`openchange`,e)}},[s,a]),V.useEffect(()=>{if(!s||!h.current||!n)return;function e(e){D()&&r(!1,e,`hover`)}let t=sb(o.floating).documentElement;return t.addEventListener(`mouseleave`,e),()=>{t.removeEventListener(`mouseleave`,e)}},[o.floating,n,r,s,h,D]);let O=V.useCallback(function(e,t,n){t===void 0&&(t=!0),n===void 0&&(n=`hover`);let i=bS(g.current,`close`,y.current);i&&!x.current?(vS(b),b.current=window.setTimeout(()=>r(!1,e,n),i)):t&&(vS(b),r(!1,e,n))},[g,r]),k=wb(()=>{E.current(),x.current=void 0}),A=wb(()=>{if(w.current){let e=sb(o.floating).body;e.style.pointerEvents=``,e.removeAttribute(yS),w.current=!1}}),j=wb(()=>i.current.openEvent?[`click`,`mousedown`].includes(i.current.openEvent.type):!1);V.useEffect(()=>{if(!s)return;function e(e){if(vS(b),C.current=!1,u&&!yb(y.current)||xS(v.current)>0&&!bS(g.current,`open`))return;let t=bS(g.current,`open`,y.current);t?b.current=window.setTimeout(()=>{_.current||r(!0,e,`hover`)},t):n||r(!0,e,`hover`)}function t(e){if(j()){A();return}E.current();let t=sb(o.floating);if(vS(S),ee.current=!1,h.current&&i.current.floatingContext){n||vS(b),x.current=h.current({...i.current.floatingContext,tree:p,x:e.clientX,y:e.clientY,onClose(){A(),k(),j()||O(e,!0,`safe-polygon`)}});let r=x.current;t.addEventListener(`mousemove`,r),E.current=()=>{t.removeEventListener(`mousemove`,r)};return}(y.current!==`touch`||!rb(o.floating,e.relatedTarget))&&O(e)}function a(e){j()||i.current.floatingContext&&(h.current==null||h.current({...i.current.floatingContext,tree:p,x:e.clientX,y:e.clientY,onClose(){A(),k(),j()||O(e)}})(e))}function c(){vS(b)}function l(e){j()||O(e,!1)}if(vv(o.domReference)){let r=o.domReference,i=o.floating;return n&&r.addEventListener(`mouseleave`,a),f&&r.addEventListener(`mousemove`,e,{once:!0}),r.addEventListener(`mouseenter`,e),r.addEventListener(`mouseleave`,t),i&&(i.addEventListener(`mouseleave`,a),i.addEventListener(`mouseenter`,c),i.addEventListener(`mouseleave`,l)),()=>{n&&r.removeEventListener(`mouseleave`,a),f&&r.removeEventListener(`mousemove`,e),r.removeEventListener(`mouseenter`,e),r.removeEventListener(`mouseleave`,t),i&&(i.removeEventListener(`mouseleave`,a),i.removeEventListener(`mouseenter`,c),i.removeEventListener(`mouseleave`,l))}}},[o,s,e,u,f,O,k,A,r,n,_,p,g,h,i,j,v]),bb(()=>{var e;if(s&&n&&(e=h.current)!=null&&(e=e.__options)!=null&&e.blockPointerEvents&&D()){w.current=!0;let e=o.floating;if(vv(o.domReference)&&e){var t;let n=sb(o.floating).body;n.setAttribute(yS,``);let r=o.domReference,i=p==null||(t=p.nodesRef.current.find(e=>e.id===m))==null||(t=t.context)==null?void 0:t.elements.floating;return i&&(i.style.pointerEvents=``),n.style.pointerEvents=`none`,r.style.pointerEvents=`auto`,e.style.pointerEvents=`auto`,()=>{n.style.pointerEvents=``,r.style.pointerEvents=``,e.style.pointerEvents=``}}}},[s,n,m,o,p,h,D]),bb(()=>{n||(y.current=void 0,ee.current=!1,k(),A())},[n,k,A]),V.useEffect(()=>()=>{k(),vS(b),vS(S),A()},[s,o.domReference,k,A]);let te=V.useMemo(()=>{function e(e){y.current=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){let{nativeEvent:t}=e;function i(){!C.current&&!_.current&&r(!0,t,`hover`)}u&&!yb(y.current)||n||xS(v.current)===0||ee.current&&e.movementX**2+e.movementY**2<2||(vS(S),y.current===`touch`?i():(ee.current=!0,S.current=window.setTimeout(i,xS(v.current))))}}},[u,r,n,_,v]);return V.useMemo(()=>s?{reference:te}:{},[s,te])}var CS=()=>{},wS=V.createContext({delay:0,initialDelay:0,timeoutMs:0,currentId:null,setCurrentId:CS,setState:CS,isInstantPhase:!1}),TS=()=>V.useContext(wS);function ES(e,t){t===void 0&&(t={});let{open:n,onOpenChange:r,floatingId:i}=e,{id:a,enabled:o=!0}=t,s=a??i,c=TS(),{currentId:l,setCurrentId:u,initialDelay:d,setState:f,timeoutMs:p}=c;return bb(()=>{o&&l&&(f({delay:{open:1,close:bS(d,`close`)}}),l!==s&&r(!1))},[o,s,r,f,l,d]),bb(()=>{function e(){r(!1),f({delay:d,currentId:null})}if(o&&l&&!n&&l===s){if(p){let t=window.setTimeout(e,p);return()=>{clearTimeout(t)}}e()}},[o,n,f,l,s,r,d,p]),bb(()=>{o&&(u===CS||!n||u(s))},[o,n,u,s]),c}var DS=0;
255function OS(e,t){t===void 0&&(t={});let{preventScroll:n=!1,cancelPrevious:r=!0,sync:i=!1}=t;r&&cancelAnimationFrame(DS);let a=()=>e?.focus({preventScroll:n});i?a():DS=requestAnimationFrame(a)}function kS(e){return e?.ownerDocument||document}var AS={inert:new WeakMap,"aria-hidden":new WeakMap,none:new WeakMap};function jS(e){return e===`inert`?AS.inert:e===`aria-hidden`?AS[`aria-hidden`]:AS.none}var MS=new WeakSet,NS={},PS=0,FS=()=>typeof HTMLElement<`u`&&`inert`in HTMLElement.prototype;function IS(e){return e?bv(e)?e.host:IS(e.parentNode):null}var LS=(e,t)=>t.map(t=>{if(e.contains(t))return t;let n=IS(t);return e.contains(n)?n:null}).filter(e=>e!=null);function RS(e,t,n,r){let i=`data-floating-ui-inert`,a=r?`inert`:n?`aria-hidden`:null,o=LS(t,e),s=new Set,c=new Set(o),l=[];NS[i]||(NS[i]=new WeakMap);let u=NS[i];o.forEach(d),f(t),s.clear();function d(e){!e||s.has(e)||(s.add(e),e.parentNode&&d(e.parentNode))}function f(e){!e||c.has(e)||[].forEach.call(e.children,e=>{if(mv(e)!==`script`)if(s.has(e))f(e);else{let t=a?e.getAttribute(a):null,n=t!==null&&t!==`false`,r=jS(a),o=(r.get(e)||0)+1,s=(u.get(e)||0)+1;r.set(e,o),u.set(e,s),l.push(e),o===1&&n&&MS.add(e),s===1&&e.setAttribute(i,``),!n&&a&&e.setAttribute(a,a===`inert`?``:`true`)}})}return PS++,()=>{l.forEach(e=>{let t=jS(a),n=(t.get(e)||0)-1,r=(u.get(e)||0)-1;t.set(e,n),u.set(e,r),n||(!MS.has(e)&&a&&e.removeAttribute(a),MS.delete(e)),r||e.removeAttribute(i)}),PS--,PS||(AS.inert=new WeakMap,AS[`aria-hidden`]=new WeakMap,AS.none=new WeakMap,MS=new WeakSet,NS={})}}function zS(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);let r=kS(e[0]).body;return RS(e.concat(Array.from(r.querySelectorAll(`[aria-live],[role="status"],output`))),r,t,n)}var BS={border:0,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:0,position:`fixed`,whiteSpace:`nowrap`,width:`1px`,top:0,left:0},VS=V.forwardRef(function(e,t){let[n,r]=V.useState();bb(()=>{Ky()&&r(`button`)},[]);let i={ref:t,tabIndex:0,role:n,"aria-hidden":!n||void 0,[_S(`focus-guard`)]:``,style:BS};return(0,H.jsx)(`span`,{...e,...i})}),HS={clipPath:`inset(50%)`,position:`fixed`,top:0,left:0},US=V.createContext(null),WS=_S(`portal`);function GS(e){e===void 0&&(e={});let{id:t,root:n}=e,r=cS(),i=qS(),[a,o]=V.useState(null),s=V.useRef(null);return bb(()=>()=>{a?.remove(),queueMicrotask(()=>{s.current=null})},[a]),bb(()=>{if(!r||s.current)return;let e=t?document.getElementById(t):null;if(!e)return;let n=document.createElement(`div`);n.id=r,n.setAttribute(WS,``),e.appendChild(n),s.current=n,o(n)},[t,r]),bb(()=>{if(n===null||!r||s.current)return;let e=n||i?.portalNode;e&&!_v(e)&&(e=e.current),e||=document.body;let a=null;t&&(a=document.createElement(`div`),a.id=t,e.appendChild(a));let c=document.createElement(`div`);c.id=r,c.setAttribute(WS,``),e=a||e,e.appendChild(c),s.current=c,o(c)},[t,n,r,i]),a}function KS(e){let{children:t,id:n,root:r,preserveTabOrder:i=!0}=e,a=GS({id:n,root:r}),[o,s]=V.useState(null),c=V.useRef(null),l=V.useRef(null),u=V.useRef(null),d=V.useRef(null),f=o?.modal,p=o?.open,m=!!o&&!o.modal&&o.open&&i&&!!(r||a);return V.useEffect(()=>{if(!a||!i||f)return;function e(e){a&&zb(e)&&(e.type===`focusin`?Vb:Bb)(a)}return a.addEventListener(`focusin`,e,!0),a.addEventListener(`focusout`,e,!0),()=>{a.removeEventListener(`focusin`,e,!0),a.removeEventListener(`focusout`,e,!0)}},[a,i,f]),V.useEffect(()=>{a&&(p||Vb(a))},[p,a]),(0,H.jsxs)(US.Provider,{value:V.useMemo(()=>({preserveTabOrder:i,beforeOutsideRef:c,afterOutsideRef:l,beforeInsideRef:u,afterInsideRef:d,portalNode:a,setFocusManagerState:s}),[i,a]),children:[m&&a&&(0,H.jsx)(VS,{"data-type":`outside`,ref:c,onFocus:e=>{if(zb(e,a)){var t;(t=u.current)==null||t.focus()}else Rb(o?o.domReference:null)?.focus()}}),m&&a&&(0,H.jsx)(`span`,{"aria-owns":a.id,style:HS}),a&&Ix.createPortal(t,a),m&&a&&(0,H.jsx)(VS,{"data-type":`outside`,ref:l,onFocus:e=>{if(zb(e,a)){var t;(t=d.current)==null||t.focus()}else Lb(o?o.domReference:null)?.focus(),o!=null&&o.closeOnFocusOut&&o?.onOpenChange(!1,e.nativeEvent,`focus-out`)}})]})}var qS=()=>V.useContext(US);function JS(e){return V.useMemo(()=>t=>
255{e.forEach(e=>{e&&(e.current=t)})},e)}var YS=20,XS=[];function ZS(){XS=XS.filter(e=>e.deref()?.isConnected)}function QS(e){ZS(),e&&mv(e)!==`body`&&(XS.push(new WeakRef(e)),XS.length>YS&&(XS=XS.slice(-20)))}function $S(){return ZS(),XS[XS.length-1]?.deref()}function eC(e){let t=Fb();return Uy(e,t)?e:Vy(e,t)[0]||e}function tC(e,t){var n;if(!t.current.includes(`floating`)&&!((n=e.getAttribute(`role`))!=null&&n.includes(`dialog`)))return;let r=Fb(),i=Hy(e,r).filter(e=>{let t=e.getAttribute(`data-tabindex`)||``;return Uy(e,r)||e.hasAttribute(`data-tabindex`)&&!t.startsWith(`-`)}),a=e.getAttribute(`tabindex`);t.current.includes(`floating`)||i.length===0?a!==`0`&&e.setAttribute(`tabindex`,`0`):(a!==`-1`||e.hasAttribute(`data-tabindex`)&&e.getAttribute(`data-tabindex`)!==`-1`)&&(e.setAttribute(`tabindex`,`-1`),e.setAttribute(`data-tabindex`,`-1`))}var nC=V.forwardRef(function(e,t){return(0,H.jsx)(`button`,{...e,type:`button`,ref:t,tabIndex:-1,style:BS})});function rC(e){let{context:t,children:n,disabled:r=!1,order:i=[`content`],guards:a=!0,initialFocus:o=0,returnFocus:s=!0,restoreFocus:c=!1,modal:l=!0,visuallyHiddenDismiss:u=!1,closeOnFocusOut:d=!0,outsideElementsInert:f=!1,getInsideElements:p=()=>[]}=e,{open:m,onOpenChange:h,events:g,dataRef:_,elements:{domReference:v,floating:y}}
255=t,b=wb(()=>_.current.floatingContext?.nodeId),x=wb(p),S=typeof o==`number`&&o<0,C=lb(v)&&S,w=FS(),E=!w||a,ee=!E||w&&f,D=Sb(i),O=Sb(o),k=Sb(s),A=pS(),j=qS(),te=V.useRef(null),M=V.useRef(null),N=V.useRef(!1),P=V.useRef(!1),F=V.useRef(-1),I=V.useRef(-1),ne=j!=null,L=db(y),re=wb(function(e){return e===void 0&&(e=L),e?Vy(e,Fb()):[]}),R=wb(e=>{let t=re(e);return D.current.map(e=>v&&e===`reference`?v:L&&e===`floating`?L:t).filter(Boolean).flat()});V.useEffect(()=>{if(r||!l)return;function e(e){if(e.key===`Tab`){rb(L,nb(sb(L)))&&re().length===0&&!C&&hb(e);let t=R(),n=ib(e);D.current[0]===`reference`&&n===v&&(hb(e),e.shiftKey?OS(t[t.length-1]):OS(t[1])),D.current[1]===`floating`&&n===L&&e.shiftKey&&(hb(e),OS(t[0]))}}let t=sb(L);return t.addEventListener(`keydown`,e),()=>{t.removeEventListener(`keydown`,e)}},[r,v,L,l,D,C,re,R]),V.useEffect(()=>{if(r||!y)return;function e(e){let t=ib(e),n=re().indexOf(t);n!==-1&&(F.current=n)}return y.addEventListener(`focusin`,e),()=>{y.removeEventListener(`focusin`,e)}},[r,y,re]),V.useEffect(()=>{if(r||!d)return;function e(){P.current=!0,setTimeout(()=>{P.current=!1})}function t(e){let t=e.relatedTarget,n=e.currentTarget,r=ib(e);queueMicrotask(()=>{let i=b(),a=!(rb(v,t)||rb(y,t)||rb(t,y)||rb(j?.portalNode,t)||t!=null&&t.hasAttribute(_S(`focus-guard`))||A&&(fb(A.nodesRef.current,i).find(e=>rb(e.context?.elements.floating,t)||rb(e.context?.elements.domReference,t))||mb(A.nodesRef.current,i).find(e=>[e.context?.elements.floating,db(e.context?.elements.floating)].includes(t)||e.context?.elements.domReference===t)));if(n===v&&L&&tC(L,D),c&&n!==v&&!(r!=null&&r.isConnected)&&nb(sb(L))===sb(L).body){yv(L)&&L.focus();let e=F.current,t=re(),n=t[e]||t[t.length-1]||L;yv(n)&&n.focus()}if(_.current.insideReactTree){_.current.insideReactTree=!1;return}(C||!l)&&t&&a&&!P.current&&t!==$S()&&(N.current=!0,h(!1,e,`focus-out`))})}let n=!!(!A&&j);function i(){vS(I),_.current.insideReactTree=!0,I.current=window.setTimeout(()=>{_.current.insideReactTree=!1})}if(y&&yv(v))return v.addEventListener(`focusout`,t),v.addEventListener(`pointerdown`,e),y.addEventListener(`focusout`,t),n&&y.addEventListener(`focusout`,i,!0),()=>{v.removeEventListener(`focusout`,t),v.removeEventListener(`pointerdown`,e),y.removeEventListener(`focusout`,t),n&&y.removeEventListener(`focusout`,i,!0)}},[r,v,y,L,l,A,j,h,d,c,re,C,b,D,_]);let ie=V.useRef(null),ae=V.useRef(null),oe=JS([ie,j?.beforeInsideRef]),z=JS([ae,j?.afterInsideRef]);V.useEffect(()=>{var e,t;if(r||!y)return;let n=Array.from((j==null||(e=j.portalNode)==null?void 0:e.querySelectorAll(`[`+_S(`portal`)+`]`))||[]),i=(t=(A?mb(A.nodesRef.current,b()):[]).find(e=>lb(e.context?.elements.domReference||null)))==null||(t=t.context)==null?void 0:t.elements.domReference,a=[y,i,...n,...x(),te.current,M.current,ie.current,ae.current,j?.beforeOutsideRef.current,j?.afterOutsideRef.current,D.current.includes(`reference`)||C?v:null].filter(e=>e!=null),o=l||C?zS(a,!ee,ee):zS(a);return()=>{o()}},[r,v,y,l,D,j,C,E,ee,A,b,x]),bb(()=>{if(r||!yv(L))return;let e=nb(sb(L));queueMicrotask(()=>{let t=R(L),n=O.current,r=(typeof n==`number`?t[n]:n.current)||L,i=rb(L,e);!S&&!i&&m&&OS(r,{preventScroll:r===L})})},[r,m,L,S,R,O]),bb(()=>{if(r||!L)return;let e=sb(L);QS(nb(e));function t(e){let{reason:t,event:n,nested:r}=e;if([`hover`,`safe-polygon`].includes(t)&&n.type===`mouseleave`&&(N.current=!0),t===`outside-press`)if(r)N.current=!1;else if(_b(n)||vb(n))N.current=!1;else{let e=!1;document.createElement(`div`).focus({get preventScroll(){return e=!0,!1}}),e?N.current=!1:N.current=!0}}g.on(`openchange`,t);let n=e.createElement(`span`);n.setAttribute(`tabindex`,`-1`),n.setAttribute(`aria-hidden`,`true`),Object.assign(n.style,BS),ne&&v&&v.insertAdjacentElement(`afterend`,n);function i(){if(typeof k.current==`boolean`){let e=v||$S();return e&&e.isConnected?e:n}return k.current.current||n}return()=>{g.off(`openchange`,t);let r=nb(e),a=rb(y,r)||A&&fb(A.nodesRef.current,b(),!1).some(e=>rb(e.context?.elements.floating,r)),o=i();queueMicrotask(()=>{let t=eC(o);k.current&&!N.current&&yv(t)&&(!(t!==r&&r!==e.body)||a)&&t.focus({preventScroll:!0}),n.remove()})}},[r,y,L,k,_,g,A,ne,v,b]),V.useEffect(()=>(queueMicrotask(()=>{N.current=!1}),()=>{queueMicrotask(ZS)}),[r]),bb(()=>{if(!r&&j)return j.setFocusManagerState({modal:l,closeOnFocusOut:d,open:m,onOpenChange:h,domReference:v}),()=>{j.setFocusManagerState(null)}},[r,j,l,m,h,d,v]),bb(()=>{r||L&&tC(L,D)},[r,L,D]);function se(e){return r||!u||!l?null:(0,H.jsx)(nC,{ref:e===`start`?te:M,onClick:e=>h(!1,e.nativeEvent),children:typeof u==`string`?u:`Dismiss`})}let ce=!r&&E&&(!l||!C)&&(ne||l);return(0,H.jsxs)(H.Fragment,{children:[ce&&(0,H.jsx)(VS,{"data-type":`inside`,ref:oe,onFocus:e=>{if(l){let e=R();OS(i[0]===`reference`?e[0]:e[e.length-1])}else if(j!=null&&j.preserveTabOrder&&j.portalNode)if(N.current=!1,zb(e,j.portalNode))Lb(v)?.focus();else{var t;(t=j.beforeOutsideRef.current)==null||t.focus()}}}),!C&&se(`start`),n,se(`end`),ce&&(0,H.jsx)(VS,{"data-type":`inside`,ref:z,onFocus:e=>{if(l)OS(R()[0]);else if(j!=null&&j.preserveTabOrder&&j.portalNode)if(d&&(N.current=!0),zb(e,j.portalNode))Rb(v)?.focus();else{var t;(t=j.afterOutsideRef.current)==null||t.focus()}}})]})}var iC=0,aC=`--floating-ui-scrollbar-width`;function oC(){let e=Wy(),t=/iP(hone|ad|od)|iOS/.test(e)||e===`MacIntel`&&navigator.maxTouchPoints>1,n=document.body.style,r=Math.round(document.documentElement.getBoundingClientRect().left)+document.documentElement.scrollLeft?`paddingLeft`:`paddingRight`,i=window.innerWidth-document.documentElement.clientWidth,a=n.left?parseFloat(n.left):window.scrollX,o=n.top?parseFloat(n.top):window.scrollY;if(n.overflow=`hidden`,n.setProperty(aC,i+`px`),i&&(n[r]=i+`px`),t){let e=window.visualVie
255wport?.offsetLeft||0,t=window.visualViewport?.offsetTop||0;Object.assign(n,{position:`fixed`,top:-(o-Math.floor(t))+`px`,left:-(a-Math.floor(e))+`px`,right:`0`})}return()=>{Object.assign(n,{overflow:``,[r]:``}),n.removeProperty(aC),t&&(Object.assign(n,{position:``,top:``,left:``,right:``}),window.scrollTo(a,o))}}var sC=()=>{},cC=V.forwardRef(function(e,t){let{lockScroll:n=!1,...r}=e;return bb(()=>{if(n)return iC++,iC===1&&(sC=oC()),()=>{iC--,iC===0&&sC()}},[n]),(0,H.jsx)(`div`,{ref:t,...r,style:{position:`fixed`,overflow:`auto`,top:0,right:0,bottom:0,left:0,...r.style}})});function lC(e){return yv(e.target)&&e.target.tagName===`BUTTON`}function uC(e){return yv(e.target)&&e.target.tagName===`A`}function dC(e){return cb(e)}function fC(e,t){t===void 0&&(t={});let{open:n,onOpenChange:r,dataRef:i,elements:{domReference:a}}=e,{enabled:o=!0,event:s=`click`,toggle:c=!0,ignoreMouse:l=!1,keyboardHandlers:u=!0,stickIfOpen:d=!0}=t,f=V.useRef(),p=V.useRef(!1),m=V.useMemo(()=>({onPointerDown(e){f.current=e.pointerType},onMouseDown(e){let t=f.current;
255e.button===0&&s!==`click`&&(yb(t,!0)&&l||(n&&c&&(!(i.current.openEvent&&d)||i.current.openEvent.type===`mousedown`)?r(!1,e.nativeEvent,`click`):(e.preventDefault(),r(!0,e.nativeEvent,`click`))))},onClick(e){let t=f.current;if(s===`mousedown`&&f.current){f.current=void 0;return}yb(t,!0)&&l||(n&&c&&(!(i.current.openEvent&&d)||i.current.openEvent.type===`click`)?r(!1,e.nativeEvent,`click`):r(!0,e.nativeEvent,`click`))},onKeyDown(e){f.current=void 0,!(e.defaultPrevented||!u||lC(e))&&(e.key===` `&&!dC(a)&&(e.preventDefault(),p.current=!0),!uC(e)&&e.key===`Enter`&&r(!(n&&c),e.nativeEvent,`click`))},onKeyUp(e){e.defaultPrevented||!u||lC(e)||dC(a)||e.key===` `&&p.current&&(p.current=!1,r(!(n&&c),e.nativeEvent,`click`))}}),[i,a,s,l,u,r,n,d,c]);return V.useMemo(()=>o?{reference:m}:{},[o,m])}var pC={pointerdown:`onPointerDown`,mousedown:`onMouseDown`,click:`onClick`},mC={pointerdown:`onPointerDownCapture`,mousedown:`onMouseDownCapture`,click:`onClickCapture`},hC=e=>({escapeKey:typeof e==`boolean`?e:e?.escapeKey??!1,outsidePress:typeof e==`boolean`?e:e?.outsidePress??!0});function gC(e,t){t===void 0&&(t={});let{open:n,onOpenChange:r,elements:i,dataRef:a}=e,{enabled:o=!0,escapeKey:s=!0,outsidePress:c=!0,outsidePressEvent:l=`pointerdown`,referencePress:u=!1,referencePressEvent:d=`pointerdown`,ancestorScroll:f=!1,bubbles:p,capture:m}=t,h=pS(),g=wb(typeof c==`function`?c:()=>!1),_=typeof c==`function`?g:c,v=V.useRef(!1),{escapeKey:y,outsidePress:b}=hC(p),{escapeKey:x,outsidePress:S}=hC(m),C=V.useRef(!1),w=wb(e=>{if(!n||!o||!s||e.key!==`Escape`||C.current)return;let t=a.current.floatingContext?.nodeId,i=h?fb(h.nodesRef.current,t):[];if(!y&&(e.stopPropagation(),i.length>0)){let e=!0;if(i.forEach(t=>{var n;if((n=t.context)!=null&&n.open&&!t.context.dataRef.current.__escapeKeyBubbles){e=!1;return}}),!e)return}r(!1,gb(e)?e.nativeEvent:e,`escape-key`)}),E=wb(e=>{var t;let n=()=>{var t;w(e),(t=ib(e))==null||t.removeEventListener(`keydown`,n)};(t=ib(e))==null||t.addEventListener(`keydown`,n)}),ee=wb(e=>{let t=a.current.insideReactTree;a.current.insideReactTree=!1;let n=v.current;if(v.current=!1,l===`click`&&n||t||typeof _==`function`&&!_(e))return;let o=ib(e),s=`[`+_S(`inert`)+`]`,c=sb(i.floating).querySelectorAll(s),u=vv(o)?o:null;for(;u&&!jv(u);){let e=Pv(u);if(jv(e)||!vv(e))break;u=e}if(c.length&&vv(o)&&!ob(o)&&!rb(o,i.floating)&&Array.from(c).every(e=>!rb(u,e)))return;if(yv(o)&&k){let t=jv(o),n=Mv(o),r=/auto|scroll/,i=t||r.test(n.overflowX),a=t||r.test(n.overflowY),s=i&&o.clientWidth>0&&o.scrollWidth>o.clientWidth,c=a&&o.clientHeight>0&&o.scrollHeight>o.clientHeight,l=n.direction===`rtl`,u=c&&(l?e.offsetX<=o.offsetWidth-o.clientWidth:e.offsetX>o.clientWidth),d=s&&e.offsetY>o.clientHeight;if(u||d)return}let d=a.current.floatingContext?.nodeId,f=h&&fb(h.nodesRef.current,d).some(t=>ab(e,t.context?.elements.floating));if(ab(e,i.floating)||ab(e,i.domReference)||f)return;let p=h?fb(h.nodesRef.current,d):[];if(p.length>0){let e=!0;if(p.forEach(t=>{var n;if((n=t.context)!=null&&n.open&&!t.context.dataRef.current.__outsidePressBubbles){e=!1;return}}),!e)return}r(!1,e,`outside-press`)}),D=wb(e=>{var t;let n=()=>{var t;ee(e),(t=ib(e))==null||t.removeEventListener(l,n)};(t=ib(e))==null||t.addEventListener(l,n)});V.useEffect(()=>{if(!n||!o)return;a.current.__escapeKeyBubbles=y,a.current.__outsidePressBubbles=b;let e=-1;function t(e){r(!1,e,`ancestor-scroll`)}function c(){window.clearTimeout(e),C.current=!0}function u(){e=window.setTimeout(()=>{C.current=!1},Av()?5:0)}let d=sb(i.floating);s&&(d.addEventListener(`keydown`,x?E:w,x),d.addEventListener(`compositionstart`,c),d.addEventListener(`compositionend`,u)),_&&d.addEventListener(l,S?D:ee,S);let p=[];return f&&(vv(i.domReference)&&(p=Iv(i.domReference)),vv(i.floating)&&(p=p.concat(Iv(i.floating))),!vv(i.reference)&&i.reference&&i.reference.contextElement&&(p=p.concat(Iv(i.reference.contextElement)))),p=p.filter(e=>e!==d.defaultView?.visualViewport),p.forEach(e=>{e.addEventListener(`scroll`,t,{passive:!0})}),()=>{s&&(d.removeEventListener(`keydown`,x?E:w,x),d.removeEventListener(`compositionstart`,c),d.removeEventListener(`compositionend`,u)),_&&d.removeEventListener(l,S?D:ee,S),p.forEach(e
255=>{e.removeEventListener(`scroll`,t)}),window.clearTimeout(e)}},[a,i,s,_,l,n,r,f,o,y,b,w,x,E,ee,S,D]),V.useEffect(()=>{a.current.insideReactTree=!1},[a,_,l]);let O=V.useMemo(()=>({onKeyDown:w,...u&&{[pC[d]]:e=>{r(!1,e.nativeEvent,`reference-press`)},...d!==`click`&&{onClick(e){r(!1,e.nativeEvent,`reference-press`)}}}}),[w,r,u,d]),k=V.useMemo(()=>{function e(e){e.button===0&&(v.current=!0)}return{onKeyDown:w,onMouseDown:e,onMouseUp:e,[mC[l]]:()=>{a.current.insideReactTree=!0}}},[w,l,a]);return V.useMemo(()=>o?{reference:O,floating:k}:{},[o,O,k])}function _C(e){let{open:t=!1,onOpenChange:n,elements:r}=e,i=cS(),a=V.useRef({}),[o]=V.useState(()=>lS()),s=fS()!=null,[c,l]=V.useState(r.reference),u=wb((e,t,r)=>{a.current.openEvent=e?t:void 0,o.emit(`openchange`,{open:e,event:t,reason:r,nested:s}),n?.(e,t,r)}),d=V.useMemo(()=>({setPositionReference:l}),[]),f=V.useMemo(()=>({reference:c||r.reference||null,floating:r.floating||null,domReference:r.reference}),[c,r.reference,r.floating]);return V.useMemo(()=>({dataRef:a,open:t,onOpenChange:u,elements:f,events:o,floatingId:i,refs:d}),[t,u,f,o,i,d])}function vC(e){e===void 0&&(e={});let{nodeId:t}=e,n=_C({...e,elements:{reference:null,floating:null,...e.elements}}),r=e.rootContext||n,i=r.elements,[a,o]=V.useState(null),[s,c]=V.useState(null),l=i?.domReference||a,u=V.useRef(null),d=pS();bb(()=>{l&&(u.current=l)},[l]);let f=Hx({...e,elements:{...i,...s&&{reference:s}}}),p=V.useCallback(e=>{let t=vv(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects(),contextElement:e}:e;c(t),f.refs.setReference(t)},[f.refs]),m=V.useCallback(e=>{(vv(e)||e===null)&&(u.current=e,o(e)),(vv(f.refs.reference.current)||f.refs.reference.current===null||e!==null&&!vv(e))&&f.refs.setReference(e)},[f.refs]),h=V.useMemo(()=>({...f.refs,setReference:m,setPositionReference:p,domReference:u}),[f.refs,m,p]),g=V.useMemo(()=>({...f.elements,domReference:l}),[f.elements,l]),_=V.useMemo(()=>({...f,...r,refs:h,elements:g,nodeId:t}),[f,h,g,t,r]);return bb(()=>{r.dataRef.current.floatingContext=_;let e=d?.nodesRef.current.find(e=>e.id===t);e&&(e.context=_)}),V.useMemo(()=>({...f,context:_,refs:h,elements:g}),[f,h,g,_])}function yC(){return Jy()&&Ky()}function bC(e,t){t===void 0&&(t={});let{open:n,onOpenChange:r,events:i,dataRef:a,elements:o}=e,{enabled:s=!0,visibleOnly:c=!0}=t,l=V.useRef(!1),u=V.useRef(-1),d=V.useRef(!0);V.useEffect(()=>{if(!s)return;let e=hv(o.domReference);function t(){!n&&yv(o.domReference)&&o.domReference===nb(sb(o.domReference))&&(l.current=!0)}function r(){d.current=!0}function i(){d.current=!1}return e.addEventListener(`blur`,t),yC()&&(e.addEventListener(`keydown`,r,!0),e.addEventListener(`pointerdown`,i,!0)),()=>{e.removeEventListener(`blur`,t),yC()&&(e.removeEventListener(`keydown`,r,!0),e.removeEventListener(`pointerdown`,i,!0))}},[o.domReference,n,s]),V.useEffect(()=>{if(!s)return;function e(e){let{reason:t}=e;(t===`reference-press`||t===`escape-key`)&&(l.current=!0)}return i.on(`openchange`,e),()=>{i.off(`openchange`,e)}},[i,s]),V.useEffect(()=>()=>{vS(u)},[]);let f=V.useMemo(()=>({onMouseLeave(){l.current=!1},onFocus(e){if(l.current)return;let t=ib(e.nativeEvent);if(c&&vv(t)){if(yC()&&!e.relatedTarget){if(!d.current&&!cb(t))return}else if(!ub(t))return}r(!0,e.nativeEvent,`focus`)},onBlur(e){l.current=!1;let t=e.relatedTarget,n=e.nativeEvent,i=vv(t)&&t.hasAttribute(_S(`focus-guard`))&&t.getAttribute(`data-type`)===`outside`;u.current=window.setTimeout(()=>{let e=nb(o.domReference?o.domReference.ownerDocument:document);!t&&e===o.domReference||rb(a.current.floatingContext?.refs.floating.current,e)||rb(o.domReference,e)||i||r(!1,n,`focus`)})}}),[a,o.domReference,r,c]);return V.useMemo(()=>s?{reference:f}:{},[s,f])}function xC(e,t,n){let r=new Map,i=n===`item`,a=e;if(i&&e){let{[Yx]:t,[Xx]:n,...r}=e;a=r}return{...n===`floating`&&{tabIndex:-1,[Jx]:``},...a,...t.map(t=>{let r=t?t[n]:null;return typeof r==`function`?e?r(e):null:r}).concat(e).reduce((e,t)=>(t&&Object.entries(t).forEach(t=>{let[n,a]=t;if(!(i&&[Yx,Xx].includes(n)))if(n.indexOf(`on`)===0){if(r.has(n)||r.set(n,[]),typeof a==`function`){var o;(o=r.get(n))==null||o.push(a),e[n]=function(){var e=[...arguments];return r.get(n)?.map(t=>t(...e)).find(e=>e!==void 0)}}}else e[n]=a}),e),{})}}function SC(e){e===void 0&&(e=[]);let t=e.map(e=>e?.reference),n=e.map(e=>e?.floating),r=e.map(e=>e?.item),i=V.useCallback(t=>xC(t,e,`reference`),t),a=V.useCallback(t=>xC(t,e,`floating`),n),o=V.useCallback(t=>xC(t,e,`item`),r);return V.useMemo(()=>({getReferenceProps:i,getFloatingProps:a,getItemProps:o}),[i,a,o])}var CC=`Escape`;function wC(e,t,n){switch(e){case`vertical`:return t;case`horizontal`:return n;default:return t||n}}function TC(e,t){return wC(t,e===$x||e===eS,e===Zx||e===Qx)}function EC(e,t,n){return wC(t,e===eS,n?e===Zx:e===Qx)||e===`Enter`||e===` `||e===``}function DC(e,t,n){return wC(t,n?e===Zx:e===Qx,e===eS)}function OC(e,t,n,r){return t===`both`||t===`horizontal`&&r&&r>1?e===CC:wC(t,n?e===Qx:e===Zx,e===$x)}function kC(e,t){let{open:n,onOpenChange:r,elements:i,floatingId:a}=e,{listRef:o,activeIndex:s,onNavigate:c=()=>{},enabled:l=!0,selectedIndex:u=null,allowEscape:d=!1,loop:f=!1,nested:p=!1,rtl:m=!1,virtual:h=!1,focusItemOnOpen:g=`auto`,focu
255sItemOnHover:_=!0,openOnArrowKeyDown:v=!0,disabledIndices:y=void 0,orientation:b=`vertical`,parentOrientation:x,cols:S=1,scrollItemIntoView:C=!0,virtualItemRef:w,itemSizes:E,dense:ee=!1}=t,D=Sb(db(i.floating)),O=fS(),k=pS();bb(()=>{e.dataRef.current.orientation=b},[e,b]);let A=wb(()=>{c(M.current===-1?null:M.current)}),j=lb(i.domReference),te=V.useRef(g),M=V.useRef(u??-1),N=V.useRef(null),P=V.useRef(!0),F=V.useRef(A),I=V.useRef(!!i.floating),ne=V.useRef(n),L=V.useRef(!1),re=V.useRef(!1),R=Sb(y),ie=Sb(n),ae=Sb(C),oe=Sb(u),[z,se]=V.useState(),[ce,le]=V.useState(),ue=wb(()=>{function e(e){if(h){var t;(t=e.id)!=null&&t.endsWith(`-fui-option`)&&(e.id=a+`-`+Math.random().toString(16).slice(2,10)),se(e.id),k?.events.emit(`virtualfocus`,e),w&&(w.current=e)}else OS(e,{sync:L.current,preventScroll:!0})}let t=o.current[M.current],n=re.current;t&&e(t),(L.current?e=>e():requestAnimationFrame)(()=>{let r=o.current[M.current]||t;if(!r)return;t||e(r);let i=ae.current;i&&fe&&(n||!P.current)&&(r.scrollIntoView==null||r.scrollIntoView(typeof i==`boolean`?{block:`nearest`,inline:`nearest`}:i))})});bb(()=>{l&&(n&&i.floating?te.current&&u!=null&&(re.current=!0,M.current=u,A()):I.current&&(M.current=-1,F.current()))},[l,n,i.floating,u,A]),bb(()=>{if(l&&n&&i.floating)if(s==null){if(L.current=!1,oe.current!=null)return;if(I.current&&(M.current=-1,ue()),(!ne.current||!I.current)&&te.current&&(N.current!=null||te.current===!0&&N.current==null)){let e=0,t=()=>{o.current[0]==null?(e<2&&(e?requestAnimationFrame:queueMicrotask)(t),e++):(M.current=N.current==null||EC(N.current,b,m)||p?Db(o,R.current):Ob(o,R.current),N.current=null,A())};t()}}else Eb(o,s)||(M.current=s,ue(),re.current=!1)},[l,n,i.floating,s,oe,p,o,b,m,A,ue,R]),bb(()=>{var e;if(!l||i.floating||!k||h||!I.current)return;let t=k.nodesRef.current,n=(e=t.find(e=>e.id===O))==null||(e=e.context)==null?void 0:e.elements.floating,r=nb(sb(i.floating)),a=t.some(e=>e.context&&rb(e.context.elements.floating,r));n&&!a&&P.current&&n.focus({preventScroll:!0})},[l,i.floating,k,O,h]),bb(()=>{if(!l||!k||!h||O)return;function e(e){le(e.id),w&&(w.current=e)}return k.events.on(`virtualfocus`,e),()=>{k.events.off(`virtualfocus`,e)}},[l,k,h,O,w]),bb(()=>{F.current=A,ne.current=n,I.current=!!i.floating}),bb(()=>{n||(N.current=null,te.current=g)},[n,g]);let de=s!=null,fe=V.useMemo(()=>{function e(e){if(!ie.current)return;let t=o.current.indexOf(e);t!==-1&&M.current!==t&&(M.current=t,A())}return{onFocus(t){let{currentTarget:n}=t;L.current=!0,e(n)},onClick:e=>{let{currentTarget:t}=e;return t.focus({preventScroll:!0})},onMouseMove(t){let{currentTarget:n}=t;L.current=!0,re.current=!1,_&&e(n)},onPointerLeave(e){let{pointerType:t}=e;if(!(!P.current||t===`touch`)&&(L.current=!0,_&&(M.current=-1,A(),!h))){var n;(n=D.current)==null||n.focus({preventScroll:!0})}}}},[ie,D,_,o,A,h]),pe=V.useCallback(()=>{var e;return x??(k==null||(e=k.nodesRef.current.find(e=>e.id===O))==null||(e=e.context)==null||(e=e.dataRef)==null?void 0:e.current.orientation)},[O,k,x]),me=wb(e=>{if(P.current=!1,L.current=!0,e.which===229||!ie.current&&e.currentTarget===D.current)return;if(p&&OC(e.key,b,m,S)){TC(e.key,pe())||hb(e),r(!1,e.nativeEvent,`list-navigation`),yv(i.domReference)&&(h?k?.events.emit(`virtualfocus`,i.domReference):i.domReference.focus());return}let t=M.current,a=Db(o,y),s=Ob(o,y);if(j||(e.key===`Home`&&(hb(e),M.current=a,A()),e.key===`End`&&(hb(e),M.current=s,A())),S>1){let t=E||Array.from({length:o.current.length},()=>({width:1,height:1})),n=jb(t,S,ee),r=n.findIndex(e=>e!=null&&!Pb(o,e,y)),i=n.reduce((e,t,n)=>t!=null&&!Pb(o,t,y)?n:e,-1),c=n[Ab({current:n.map(e=>e==null?null:o.current[e])},{event:e,orientation:b,loop:f,rtl:m,cols:S,disabledIndices:Nb([...(typeof y==`function`?null:y)||o.current.map((e,t)=>Pb(o,t,y)?t:void 0),void 0],n),minIndex:r,maxIndex:i,prevIndex:Mb(M.current>s?a:M.current,t,n,S,e.key===eS?`bl`:e.key===(m?Zx:Qx)?`tr`:`tl`),stopEvent:!0})];if(c!=null&&(M.current=c,A()),b===`both`)return}if(TC(e.key,b)){if(hb(e),n&&!h&&nb(e.currentTarget.ownerDocument)===e.currentTarget){M.current=EC(e.key,b,m)?a:s,A();return}EC(e.key,b,m)?f?M.current=t>=s?d&&t!==o.current.length?-1:a:kb(o,{startingIndex:t,disabledIndices:y}):M.current=Math.min(s,kb(o,{startingIndex:t,disabledIndices:y})):f?M.current=t<=a?d&&t!==-1?o.current.length:s:kb(o,{startingIndex:t,decrement:!0,disabledIndices:y}):M.current=Math.max(a,kb(o,{startingIndex:t,decrement:!0,disabledIndices:y})),Eb(o,M.current)&&(M.current=-1),A()}}),he=V.useMemo(()=>h&&n&&de&&{"aria-activedescendant":ce||z},[h,n,de,ce,z]),ge=V.useMemo(()=>({"aria-orientation":b===`both`?void 0:b,...j?{}:he,onKeyDown:me,onPointerMove(){P.current=!0}}),[he,me,b,j]),_e=V.useMemo(()=>{function e(e){g===`auto`&&_b(e.nativeEvent)&&(te.current=!0)}function t(e){te.current=g,g===`auto`&&vb(e.nativeEvent)&&(te.current=!0)}return{...he,onKeyDown(e){P.current=!1;
255let t=e.key.startsWith(`Arrow`),i=[`Home`,`End`].includes(e.key),a=t||i,s=DC(e.key,b,m),c=OC(e.key,b,m,S),l=DC(e.key,pe(),m),d=TC(e.key,b),f=(p?l:d)||e.key===`Enter`||e.key.trim()===``;if(h&&n){let t=k?.nodesRef.current.find(e=>e.parentId==null),n=k&&t?pb(k.nodesRef.current,t.id):null;if(a&&n&&w){let t=new KeyboardEvent(`keydown`,{key:e.key,bubbles:!0});if(s||c){let r=n.context?.elements.domReference===e.currentTarget,i=c&&!r?n.context?.elements.domReference:s?o.current.find(e=>e?.id===z):null;i&&(hb(e),i.dispatchEvent(t),le(void 0))}if((d||i)&&n.context&&n.context.open&&n.parentId&&e.currentTarget!==n.context.elements.domReference){var g;hb(e),(g=n.context.elements.domReference)==null||g.dispatchEvent(t);return}}return me(e)}if(!(!n&&!v&&t)){if(f){let t=TC(e.key,pe());N.current=p&&t?null:e.key}if(p){l&&(hb(e),n?(M.current=Db(o,R.current),A()):r(!0,e.nativeEvent,`list-navigation`));return}d&&(u!=null&&(M.current=u),hb(e),!n&&v?r(!0,e.nativeEvent,`list-navigation`):me(e),n&&A())}},onFocus(){n&&!h&&(M.current=-1,A())},onPointerDown:t,onPointerEnter:t,onMouseDown:e,onClick:e}},[z,he,S,me,R,g,o,p,A,r,n,v,b,pe,m,u,k,h,w]);return V.useMemo(()=>l?{reference:_e,floating:ge,item:fe}:{},[l,_e,ge,fe])}var AC=new Map([[`select`,`listbox`],[`combobox`,`listbox`],[`label`,!1]]);function jC(e,t){t===void 0&&(t={});let{open:n,elements:r,floatingId:i}=e,{enabled:a=!0,role:o=`dialog`}=t,s=cS(),c=r.domReference?.id||s,l=V.useMemo(()=>db(r.floating)?.id||i,[r.floating,i]),u=AC.get(o)??o,d=fS()!=null,f=V.useMemo(()=>u===`tooltip`||o===`label`?{[`aria-`+(o===`label`?`labelledby`:`describedby`)]:n?l:void 0}:{"aria-expanded":n?`true`:`false`,"aria-haspopup":u===`alertdialog`?`dialog`:u,"aria-controls":n?l:void 0,...u===`listbox`&&{role:`combobox`},...u===`menu`&&{id:c},...u===`menu`&&d&&{role:`menuitem`},...o===`select`&&{"aria-autocomplete":`none`},...o===`combobox`&&{"aria-autocomplete":`list`}},[u,l,d,n,c,o]),p=V.useMemo(()=>{let e={id:l,...u&&{role:u}};return u===`tooltip`||o===`label`?e:{...e,...u===`menu`&&{"aria-labelledby":c}}},[u,l,c,o]),m=V.useCallback(e=>{let{active:t,selected:n}=e,r={role:`option`,...t&&{id:l+`-fui-option`}};switch(o){case`select`:case`combobox`:return{...r,"aria-selected":n}}return{}},[l,o]);return V.useMemo(()=>a?{reference:f,floating:p,item:m}:{},[a,f,p,m])}function MC(e,t){if(typeof e==`function`){e(t);return}e&&(e.current=t)}var NC=({text:e,position:t,children:n,relationship:r=`description`,offset:i=8,disabled:a=!1,closeOnClick:o=!1,openOnAncestorFocus:s=!1})=>{let[c,l]=(0,V.useState)(!1),[u,d]=(0,V.useState)(null),f=(0,V.useRef)(null),{refs:p,floatingStyles:m,context:h,isPositioned:g}=vC({open:c&&!a,onOpenChange:l,placement:t,middleware:[Ux(i),...t?[Gx()]:[qx()],Wx({padding:8})],whileElementsMounted:kx}),{delay:_}=ES(h),{getReferenceProps:v,getFloatingProps:y}=SC([SS(h,{move:!1,delay:_,mouseOnly:!0}),bC(h),gC(h),jC(h,{role:`tooltip`,enabled:r===`description`})]),b=v(),x=n.props,S={};r===`label`?S[`aria-label`]=typeof e==`string`?e:void 0:r===`description`&&(S[`aria-describedby`]=h.floatingId);let C=e=>{let t=b.onTouchEnd;typeof t==`function`&&t(e);let n=x.onTouchEnd;typeof n==`function`&&n(e),setTimeout(()=>l(!1),10)},w=e=>{let t=b.onMouseEnter;typeof t==`function`&&t(e);let n=x.onMouseEnter;typeof n==`function`&&n(e),f.current&&=(clearTimeout(f.current),null)},E=e=>{let t=b.onKeyDown;typeof t==`function`&&t(e);let n=x.onKeyDown;typeof n==`function`&&n(e)},ee=e=>{let t=b.onClick;typeof t==`function`&&t(e);let n=x.onClick;typeof n==`function`&&n(e),o&&(f.current&&=(clearTimeout(f.current),null),l(!1))},D=x.ref,O=p.setFloating,k=(0,V.useCallback)(e=>d(e instanceof Element?e:null),[]),A=p.setReference,j=(0,V.useCallback)(e=>O(e),[O]),te=(0,V.useCallback)(e=>{A(e),k(e),MC(D,e)},[D,A,k]);(0,V.useEffect)(()=>{if(!s||!u)return;let e=u.parentElement?.closest(`a[href], button, input, select, textarea, [tabindex]:not([tabindex="-1"])`);if(!e)return;let t=()=>l(!0),n=()=>l(!1),r=()=>l(!1);return e.addEventListener(`focus`,t),e.addEventListener(`blur`,n),o&&e.addEventListener(`click`,r),()=>{e.removeEventListener(`focus`,t),e.removeEventListener(`blur`,n),o&&e.removeEventListener(`click`,r)}},[o,s,u]);let M=n.type;return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(M,{...x,...b,...S,onTouchEnd:C,onMouseEnter:w,onClick:ee,onKeyDown:E,ref:te}),c&&(0,H.jsx)(KS,{children:(0,H.jsx)(`div`,{ref:j,id:h.floatingId,style:{...m,visibility:g?`visible`:`hidden`},className:fv(`z-popover max-w-xs rounded-md bg-neutral-900 px-2 py-1 text-xs text-neutral-50 shadow-sm`),...y(),children:e})})]})}
255,PC={xsmall:{base:`h-7 text-xs font-normal`,padding:`px-2.5`,condensedPadding:`px-2`,gap:`gap-1`},small:{base:`h-8 text-sm font-normal`,padding:`px-3`,condensedPadding:`px-2`,gap:`gap-1.5`},medium:{base:`h-9 text-sm`,padding:`px-4`,condensedPadding:`px-3`,gap:`gap-2`},large:{base:`h-12 text-base`,padding:`px-6`,condensedPadding:`px-4`,gap:`gap-2.5`},icon:`size-9 shrink-0`,"icon-small":`size-8 shrink-0`,"icon-xsmall":`size-7 shrink-0`},FC={outline:`border border-[rgb(0_0_0_/_0.12)] bg-transparent text-default hover:bg-hover active:bg-active data-[state=open]:not-active:bg-hover dark:border-[rgb(255_255_255_/_0.12)]`,ghost:`bg-transparent text-default hover:bg-hover active:bg-active data-[state=open]:not-active:bg-hover border border-transparent`,attention:`border border-[rgb(0_0_0_/_0.12)] bg-neutral-900 bg-clip-padding text-white hover:bg-neutral-800 active:bg-neutral-700 data-[state=open]:not-active:bg-neutral-800 dark:border-[rgb(255_255_255_/_0.12)] dark:bg-neutral-100 dark:text-neutral-900 dark:hover:bg-neutral-300 dark:active:bg-neutral-400 dark:data-[state=open]:not-active:bg-neutral-300 focus-visible:[box-shadow:inset_0_0_0_4px_white] dark:focus-visible:[box-shadow:inset_0_0_0_4px_rgb(23_23_23)]`,danger:`text-red-700 dark:text-red-400 hover:bg-red-700 dark:hover:bg-red-800 hover:text-white active:bg-red-800 data-[state=open]:not-active:bg-red-700 data-[state=open]:text-white dark:active:bg-red-900 dark:data-[state=open]:not-active:bg-red-800 border border-red-700 dark:border-red-600`},IC=`flex items-center justify-center rounded-lg font-medium transition-colors duration-150 focus:transition-none cursor-pointer min-w-0 disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none focus:outline-2 focus:-outline-offset-2 focus:outline-transparent focus-visible:outline-focus`,LC=`[&>*:not([data-button-text])]:shrink-0`;function RC({size:e=`medium`,variant:t,condensed:n=!1,className:r,children:i,disabled:a,tooltipText:o,tooltipRelationship:s,tooltipCloseOnClick:c,tooltipPosition:l,ref:u,...d}){let f=PC[e],p=typeof f==`string`,m=t==null,h=m||t===`outline`,g=fv(IC,m&&`floating-control-frame hover:before:bg-floating-hover active:before:bg-floating-active data-[state=open]:not-active:before:bg-floating-hover`,p?f:f.base,!p&&`data-[dropdown-trigger]:justify-between data-[dropdown-trigger]:text-left`,!p&&!h&&f.gap,!p&&!h&&LC,!p&&!h&&!n&&f.padding,!p&&!h&&n&&f.condensedPadding,t?FC[t]:`text-default`,r),_=V.Children.toArray(i),v=_.length>1,y=_.some(e=>(0,V.isValidElement)(e)),b=_.length<=1&&_.every(e=>typeof e==`string`||typeof e==`number`),x=p?i:v&&y?(0,H.jsx)(H.Fragment,{children:_.map((e,t)=>typeof e==`string`||typeof e==`number`?(0,H.jsx)(`span`,{"data-button-text":!0,className:`min-w-0 truncate`,children:e},t):e)}):b?(0,H.jsx)(`span`,{"data-button-text":!0,className:`min-w-0 truncate`,children:i}):i,S=h?(0,H.jsx)(`span`,{"data-button-shell":!0,className:fv(`flex size-full items-center [justify-content:inherit] rounded-[calc(var(--radius-lg)-1px)] [text-align:inherit] text-inherit transition-colors duration-150`,!p&&f.gap,!p&&LC,!p&&!n&&f.padding,!p&&n&&f.condensedPadding),children:x}):x;function C(e,t){let n=o??t;return n?(0,H.jsx)(NC,{text:n,relationship:s??(o===void 0?`label`:`description`),position:l,closeOnClick:c,children:e}):e}if(`to`in d&&d.to){let e=d,t=e[`aria-label`],n=(0,H.jsx)(pe,{...e,className:g,"aria-label":t,"aria-disabled":a,children:S});return p||o?C(n,t):n}if(`href`in d&&d.href){let e=d,t=(0,H.jsx)(`a`,{ref:u,href:e.href,target:e.target,rel:e.rel,className:g,"aria-disabled":a,onClick:a?void 0:e.onClick,...e,children:S});return p||o?C(t,e[`aria-label`]):t}let w=d,E=(0,H.jsx)(`button`,{ref:u,type:w.type||`button`,onClick:w.onClick,disabled:a,className:g,...w,children:S});return p||o?C(E,w[`aria-label`]):E}function zC(e,t){if(!e&&!t)return;let n={};return e&&(n[`--icon-primary`]=e),t&&(n[`--icon-secondary`]=t),n}var BC=({children:e,size:t=20,viewBox:n=`0 0 20 20`,className:r=``,primaryColor:i,secondaryColor:a})=>(0,H.jsx)(`svg`,{width:t,height:t,viewBox:n,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:r&&/\btext-/.test(r)?r:`text-muted ${r}`.trim(),style:zC(i,a),"aria-hidden":`true`,children:e}),VC=({size:e=18,className:t})=>(0,H.jsxs)(BC,{size:e,viewBox:`0 0 18 18`,className:t,children:[(0,H.jsx)(`path`,{d:`M14.8147 9.51665C12.9698 9.02231 11.8348 7.23464 12.0868 5.39001C11.9886 5.37404 11.8907 5.36852 11.7921 5.34212C10.2293 4.92335 9.29597 3.34501 9.6522 1.77988C6.20305 1.46546 2.92566 3.65895 1.99883 7.11793C0.962516 10.9855 3.25778 14.961 7.12535 15.9973C10.9929 17.0336 14.9684 14.7384 16.0048 10.8708C16.1171 10.4516 16.1831 10.0314 16.2197 9.61257C15.7623 9.66601 15.287 9.64321 14.8147 9.51665Z`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,H.jsx)(`path`,{d:`M7.0075 5.5H7`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,H.jsx)(`path`,{d:`M9.5075 9H9.5`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,H.jsx)(`path`,{d:`M5.0075 10H5`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,H.jsx)(`path`,{d:`M13.0075 2.75H13`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,H.jsx)(`path`,{d:`M15.7575 5.75H15.75`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,H.jsx)(`path`,{d:`M9.7575 12.5H9.75`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})]}),HC=(0,V.createContext)(null);function UC(){return(0,V.useContext)(HC)}function WC(){let e=UC();
255if(!e)throw Error(`useCookieConsent must be used within a CookieConsentProvider`);return e}function GC(){let{showBanner:e,acceptCookies:t,rejectCookies:n}=WC();return e?(0,H.jsx)(`div`,{className:`fixed right-0 bottom-0 z-overlay p-6`,children:(0,H.jsx)(`div`,{className:`max-w-lg rounded-xl bg-raised p-5 shadow-lg ring-1 ring-border`,children:(0,H.jsxs)(`div`,{className:`flex items-start gap-4`,children:[(0,H.jsx)(VC,{className:`mt-0.5 shrink-0 text-disabled`,size:20}),(0,H.jsxs)(`div`,{className:`flex-1`,children:[(0,H.jsxs)(`p`,{className:`mb-3 text-muted`,children:[`A better experience starts with cookies. We use`,` `,(0,H.jsx)(`a`,{href:`/cookies`,className:`underline hover:text-default`,children:`cookies`}),` `,`to improve our product. Entirely your choice.`]}),(0,H.jsxs)(`div`,{className:`flex gap-3`,children:[(0,H.jsx)(RC,{variant:`outline`,size:`small`,onClick:n,children:`Reject`}),(0,H.jsx)(RC,{variant:`attention`,size:`small`,onClick:t,children:`Accept`})]})]})]})})}):null}var KC=`cookie_consent`,qC=`consent-region`,JC=180;function YC(e){return typeof document>`u`?null:document.cookie.match(RegExp(`(^| )${e}=([^;]+)`))?.[2]??null}function XC(e,t,n){let r=new Date;r.setTime(r.getTime()+n*24*60*60*1e3);let i=window.location.protocol===`https:`?`;Secure`:``;document.cookie=`${e}=${t};expires=${r.toUTCString()};path=/;SameSite=Strict${i}`}function ZC(e){document.cookie=`${e}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/`}function QC(){let e=document.cookie.split(`;`);for(let t of e){let e=t.split(`=`)[0]?.trim()??``;e.startsWith(`ph_`)&&ZC(e)}}function $C(){let e=YC(qC);if(!e)return!1;let t=e.split(`:`);return t.length>=3?t[2]===`true`:!0}function ew(){let e=$C(),t=YC(KC);return e?t===`accepted`?{consentStatus:`accepted`,requiresConsent:!0,showBanner:!1}:t===`rejected`?{consentStatus:`rejected`,requiresConsent:!0,showBanner:!1}:{consentStatus:`undecided`,requiresConsent:!0,showBanner:!0}:{consentStatus:`accepted`,requiresConsent:!1,showBanner:!1}}function tw(){return ew().consentStatus===`accepted`?`localStorage+cookie`:`memory`}function nw(){return ew().consentStatus===`rejected`?`on_reject`:void 0}function rw(e,t){if(t===`accepted`)e.set_config({persistence:`localStorage+cookie`}),e.get_explicit_consent_status()!==`granted`&&e.opt_in_capturing();else if(t===`rejected`){if(e.config.cookieless_mode===`on_reject`&&e.get_explicit_consent_status()===`denied`)return;e.set_config({cookieless_mode:`on_reject`}),e.reset(!0),e.opt_out_capturing()}}function iw(){return ew().consentStatus}function aw(e){rw(e,iw())}function ow({children:e}){let[t,n]=(0,V.useState)(ew),{consentStatus:r,requiresConsent:i,showBanner:a}=t,o=(0,V.useCallback)(()=>{XC(KC,`accepted`,JC),n(e=>({...e,consentStatus:`accepted`,showBanner:!1}))},[]),s=(0,V.useCallback)(()=>{XC(KC,`rejected`,JC),n(e=>({...e,consentStatus:`rejected`,showBanner:!1})),QC()},[]),c=(0,V.useCallback)(()=>{i&&n(e=>({...e,showBanner:!0}))},[i]);return(0,H.jsx)(HC.Provider,{value:{consentStatus:r,requiresConsent:i,showBanner:a,acceptCookies:o,rejectCookies:s,openBanner:c},children:e})}var sw=(0,V.createContext)(void 0),cw=`theme-mode`;function lw(){try{let e=localStorage.getItem(`theme-mode`);(e===`dark`||e!==`light`&&matchMedia(`(prefers-color-scheme:dark)`).matches)&&document.documentElement.classList.add(`dark`)}catch{}}var uw=`(${lw.toString()})()`;function dw(){return typeof window>`u`||!window.matchMedia?`light`:window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}function fw(){try{let e=localStorage.getItem(cw);if(e===`light`||e===`dark`||e===`auto`)return e}catch{}return`auto`}function pw({children:e}){let[t,n]=(0,V.useState)(fw),[r,i]=(0,V.useState)(dw),a=t===`auto`?r:t;return(0,V.useEffect)(()=>{if(!window.matchMedia)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=e=>{i(e.matches?`dark`:`light`)};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,V.useEffect)(()=>{let e=document.documentElement;e.classList.remove(`light`,`dark`),e.classList.add(a)},[a]),(0,H.jsx)(sw.Provider,{value:{mode:t,resolvedTheme:a,setMode:e=>{n(e);try{localStorage.setItem(cw,e)}catch{}}},children:e})}function mw(){let e=(0,V.useContext)(sw);if(!e)throw Error(`useTheme must be used within ThemeProvider`);return e}function hw(){return(0,V.useContext)(sw)??{mode:`light`,resolvedTheme:`light`,setMode:()=>{}}}function gw({className:e}){return(0,H.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 959.94 236.81`,className:e,fill:`currentColor`,children:[(0,H.jsx)(`path`,{d:`M897.09,222.01c-43.02,0-69.3-26.81-69.3-67.27s26.79-68.05,66.72-68.05,65.43,24.74,65.43,64.18c0,3.35,0,6.96-.26,10.83h-97.63v1.55c0,20.36,13.66,33.25,33.49,33.25,15.97,0,27.3-7.22,30.66-20.11h32.46c-4.38,25.26-27.31,45.62-61.57,45.62ZM862.57,139.27h64.4c-2.32-17.79-14.17-27.58-31.94-27.58-16.49,0-29.89,10.31-32.46,27.58Z`}),(0,H.jsx)(`path`,{d:`M747.44,219.9V89.86h28.16l3.05,19.52c6.85-11.15,17-19.52,38.06-19.52h6.85v29.4h-13.45c-22.58,0-30.45,16.22-30.45,36.25v64.38h-32.22Z`}),(0,H.jsx)(`path`,{d:`M688.15,219.9V89.54h32.14v130.36h-32.14ZM704.09,71.52c-10.38,0-17.97-7.62-17.97-17.79s7.59-17.79,17.97-17.79,17.98,7.62,17.98,17.79-7.85,17.79-17.98,17.79Z`}),(0,H.jsx)(`path`,{d:`M640.62,219.9c-24.76,0-36.12-11.95-36.12-36.61v-66.1h-21.97v-27.71h21.97v-27.71l32.08-8.9v36.61h31.58v27.71h-31.58v61.53c0,9.66,3.54,13.48,13.39,13.48h18.18v27.71h-27.53Z`}),(0,H.jsx)(`path`,{d:`M448.25,219.9V89.28h28.02l3.03,16.81c8.08-10.18,20.19-18.33,40.64-18.33,28.27,0,52,15.28,52,59.58v72.57h-32.06v-70.02c0-23.17-9.59-35.14-28.27-35.14-20.45,0-31.3,12.99-31.3,36.41v68.75h-32.06Z`}),(0,H.jsx)(`path`,{d:`M309.76,219.9V42.29h117.48v29.94h-83.3v43.64h68.11v28.67h-68.11v45.42h86.34v29.94h-120.52Z`}),(0,H.jsx)(`path`,{d:`M172.32,86.16c0,9.97,7.59,17.44,17.97,17.44s17.97-7.48,17.97-17.44-7.85-17.44-17.97-17.44-17.97,7.48-17.97,17.44Z`}),(0,H.jsx)(`path`,{d:`M114.18,102.55c0,10.27,7.59,17.97,17.97,17.97s17.97-7.7,17.97-17.97-7.85-17.97-17.97-17.97-17.97,7.7-17.97,17.97Z`}),(0,H.jsx)(`path`,{d:`M130.11,1.6c11.92-3.19,24.62-1.56,35.34,4.54l56.86,32.37c1.72.98,1.39,3.56-.52,4.07l-125.74,33.68c-12.51,3.35-19.93,16.2-16.58,28.7l6.07,22.64c3.35,12.5,16.21,19.92,28.71,16.5
2557l69.76-18.69,35.66,35.22c6.69,6.6,10.45,15.61,10.45,25.01v18.68c0,12.25-9.44,22.43-21.65,23.37l-116.43,8.92c-13.55,1.04-26.88-3.85-36.54-13.4l-38.82-38.36c-6.68-6.6-10.45-15.61-10.45-25v-18.68c0-12.25,9.44-22.43,21.65-23.37l10.98-.84c2.07-.16,2.81-2.82,1.11-4.02l-24.07-17.06c-4.46-3.16-7.67-7.78-9.08-13.05L.8,60.49c-3.35-12.5,4.07-25.35,16.58-28.7L130.11,1.6Z`})]})}var _w=`https://discord.gg/jZJs3Tue4S`;function vw(e){return`items`in e}function yw(e,t){return t===`/`?e===`/`:e===t||e.startsWith(`${t}/`)}var bw=[{href:`/about/vision`,label:`Vision`},{href:`/about/company`,label:`Company`},{href:`/about/projects`,label:`Projects`},{href:`/about/cli`,label:`CLI`},{href:`https://docs.entire.io`,label:`Docs`,external:!0},{href:`/blog`,label:`Blog`}],xw=[{href:`/about/cli`,label:`CLI`},{href:`https://docs.entire.io`,label:`Documentation`}],Sw=[{href:`/blog`,label:`Blog`},{href:`/about/vision`,label:`Vision`},{href:`/about/company`,label:`Company`},{href:`/news`,label:`Newsroom`},{href:`/brand`,label:`Brand`},{href:`/rebellion`,label:`Rebellion`}],Cw=[{href:`/privacy`,label:`Privacy Policy`},{href:`/cookies`,label:`Cookie Policy`},{href:`/terms`,label:`Terms of Service`}],ww=[{href:`https://github.com/entireio`,label:`GitHub`},{href:_w,label:`Discord`},{href:`https://x.com/entirehq`,label:`X`},{href:`https://www.instagram.com/entire.io/`,label:`Instagram`},{href:`https://www.tiktok.com/@entire.io`,label:`TikTok`},{href:`https://linkedin.com/company/entireio`,label:`LinkedIn`},{href:`https://youtube.com/@entireio`,label:`YouTube`}],Tw={BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,TSS_DEV_SERVER:`false`,TSS_DEV_SSR_STYLES_BASEPATH:`/`,TSS_DEV_SSR_STYLES_ENABLED:`true`,TSS_INLINE_CSS_ENABLED:`false`,TSS_ROUTER_BASEPATH:``,TSS_SERVER_FN_BASE:`/_serverFn/`,VITE_HONEYCOMB_API_KEY:`hcaik_01kp4hznfdwt19ngnd6gprptrpg5bdftnsgvbq571w5xw0ngskzd7qt1v8`,VITE_PUBLIC_POSTHOG_API_HOST:`https://42.entire.io`,VITE_PUBLIC_POSTHOG_KEY:`phc_A5KZSH9jMfa08S7clCw81xkgq96Cq68x7c3mgBs5Tsh`,VITE_PUBLIC_POSTHOG_UI_HOST:`https://eu.posthog.com`}.VITE_STATUS_PAGE_API_URL??`https://status.entire.io/api/v1/summary`,Ew=Tw?.replace(/\/api\/v1\/summary$/,``);function Dw({className:e,pulse:t=!1,style:n,textColorClassName:r,textSize:i=`text-sm`}){let[a,o]=(0,V.useState)(null),[s,c]=(0,V.useState)(!1);if((0,V.useEffect)(()=>{let e=!0;async function t(){try{let t=await fetch(Tw);if(!t.ok)throw Error(`Status API ${t.status}`);let n=await t.json();e&&(o(n),c(!1))}catch{e&&c(!0)}}t();let n=setInterval(t,6e4);return()=>{e=!1,clearInterval(n)}},[]),!a&&!s)return null;let{dotColor:l,label:u,textColor:d}={unknown:{dotColor:`bg-gray-400`,label:`Status unknown`,textColor:`text-gray-400`},degraded:{dotColor:`bg-amber-500`,label:`Degraded`,textColor:`text-muted hover:text-default`},maintenance:{dotColor:`bg-blue-500`,label:`Maintenance`,textColor:`text-muted hover:text-default`},operational:{dotColor:`bg-green-500`,label:`Operational`,textColor:`text-muted hover:text-default`}}[s||!a?`unknown`:(a.ongoing_incidents?.length??0)>0?`degraded`:(a.in_progress_maintenances?.length??0)>0?`maintenance`:`operational`];return(0,H.jsxs)(`a`,{href:Ew,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`System status: ${u} (opens in new tab)`,className:`inline-flex items-center gap-2 ${i} ${r??d} transition-colors ${e??``}`,style:n,children:[(0,H.jsx)(`span`,{className:`inline-block size-2 shrink-0 rounded-full ${l} ${t?`animate-pulse`:``}`}),u]})}var Ow=`What is Entire (entire.io)? Tell me about their AI software engineering platform and what makes it different.`,kw=[{name:`ChatGPT`,href:`https://chatgpt.com/?q=${encodeURIComponent(Ow)}`,Icon:e=>(0,H.jsx)(`svg`,{viewBox:`12 10 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,H.jsx)(`path`,{fill:`currentColor`,d:`M26.9452 16.5282C27.0822 16.1167 27.1521 15.6858 27.1521 15.2521C27.1521 14.5345 26.9609 13.8298 26.5983 13.2105C25.8697 11.9421 24.518 11.159 23.0551 11.159C22.7673 11.159 22.479 11.1894 22.1976 11.2498C21.8186 10.8228 21.3533 10.4809 20.8325 10.2468C20.3117 10.0127 19.7472 9.89162 19.1762 9.8916H19.1506C19.148 9.89169 19.144 9.89169 19.141 9.89169C17.3692 9.89169 15.7979 11.035 15.2532 12.7205C14.1126 12.9537 13.1279 13.669 12.5522 14.6803C12.1907 15.3033 12.0002 16.0108 12 16.7312C12.0001 17.7435 12.3759 18.7197 13.0546 19.4709C12.9176 19.8824 12.8478 20.3133 12.8477 20.747C12.8478 21.4646 13.0389 22.1693 13.4015 22.7887C14.1301 24.0574 15.4819 24.84 16.9449 24.84C17.233 24.84 17.5202 24.8096 17.8019 24.7492C18.181 25.1763 18.6463 25.5181 19.1671 25.7522C19.688 25.9864 20.2525 26.1074 20.8235 26.1075H20.8492L20.8596 26.1074C22.6324 26.1074 24.2032 24.9641 24.7479 23.2771C25.8885 23.0438 26.8731 22.3285 27.4488 21.3172C27.8099 20.6947 28.0001 19.9878 28 19.2682C27.9999 18.2559 27.6241 17.2796 26.9454 16.5285L26.9452 16.5282ZM20.8503 25.0473H20.8461C20.1367 25.0471 19.4498 24.7983 18.9049 24.3441C18.9373 24.3267 18.9693 24.3085 19.0009 24.2897L22.2296 22.4247C22.3
255102 22.3788 22.3772 22.3125 22.4238 22.2323C22.4704 22.1522 22.495 22.0611 22.495 21.9684V17.4134L23.8597 18.2014C23.8742 18.2087 23.8842 18.2227 23.8862 18.2388V22.0085C23.8844 23.6844 22.5263 25.044 20.8503 25.0473ZM14.3211 22.2588C14.0544 21.7977 13.9139 21.2744 13.9138 20.7417C13.9138 20.5679 13.9289 20.3938 13.9585 20.2226C13.9825 20.2369 14.0244 20.2625 14.0544 20.2798L17.2832 22.1448C17.3637 22.1917 17.4552 22.2164 17.5484 22.2164C17.6416 22.2164 17.7331 22.1916 17.8136 22.1447L21.7556 19.8686V21.4446C21.756 21.4526 21.7545 21.4607 21.7511 21.468C21.7477 21.4753 21.7425 21.4816 21.7361 21.4864L18.4722 23.3709C18.0103 23.6367 17.4868 23.7767 16.9539 23.7769C16.4205 23.7768 15.8965 23.6365 15.4344 23.37C14.9723 23.1035 14.5884 22.7203 14.3212 22.2586L14.3211 22.2588ZM13.4717 15.2102C13.8263 14.5942 14.3863 14.1226 15.0535 13.8778C15.0535 13.9057 15.0519 13.9549 15.0519 13.9891V17.7191L15.0519 17.7222C15.0519 17.8148 15.0764 17.9058 15.123 17.9859C15.1695 18.0659 15.2364 18.1322 15.3169 18.1781L19.2589 20.4539L17.8942 21.2419C17.8874 21.2463 17.8797 21.249 17.8717 21.2498C17.8636 21.2505 17.8556 21.2492 17.8481 21.246L14.5839 19.3599C14.1224 19.0926 13.7393 18.7087 13.473 18.2467C13.2066 17.7847 13.0664 17.2608 13.0663 16.7275C13.0665 16.195 13.2064 15.6719 13.4719 15.2103L13.4717 15.2102ZM24.6841 17.8194L20.7422 15.5433L22.1069 14.7556C22.1136 14.7512 22.1214 14.7485 22.1294 14.7477C22.1374 14.747 22.1455 14.7483 22.1529 14.7514L25.4172 16.6359C26.3567 17.1788 26.9364 18.1825 26.9364 19.2679C26.9364 20.5411 26.1419 21.6803 24.9474 22.12V18.2785C24.9476 18.277 24.9476 18.2756 24.9476 18.2742C24.9476 18.0864 24.8469 17.9128 24.6841 17.8194ZM26.0425 15.7751C26.0185 15.7603 25.9766 15.7351 25.9466 15.7178L22.7178 13.8528C22.6373 13.8059 22.5458 13.7812 22.4526 13.7811C22.3595 13.7811 22.2679 13.806 22.1875 13.8528L18.2455 16.1289V14.5529L18.2454 14.5502C18.2454 14.5426 18.2472 14.5351 18.2506 14.5283C18.254 14.5215 18.2589 14.5156 18.265 14.511L21.5289 12.6281C21.9906 12.362 22.5142 12.2218 23.0471 12.2218C24.7253 12.2218 26.0863 13.5828 26.0863 15.261C26.0862 15.4332 26.0715 15.6051 26.0425 15.7749V15.7751ZM17.5035 18.5841L16.1385 17.7961C16.1313 17.7925 16.1252 17.7872 16.1205 17.7807C16.1159 17.7742 16.113 17.7666 16.112 17.7587V13.989C16.1127 12.3117 17.4737 10.9518 19.1512 10.9518C19.8616 10.952 20.5496 11.2009 21.0958 11.6553C21.0634 11.6728 21.0315 11.6909 20.9999 11.7097L17.7711 13.5746C17.6905 13.6205 17.6235 13.6868 17.5769 13.7669C17.5303 13.8471 17.5058 13.9381 17.5058 14.0308V14.0338L17.5035 18.5841ZM18.2449 16.9857L20.0006 15.9717L21.7562 16.985V19.0125L20.0006 20.0258L18.2449 19.0125V16.9857Z`})})},{name:`Claude`,href:`https://claude.ai/new?q=${encodeURIComponent(Ow)}`,Icon:e=>(0,H.jsx)(`svg`,{viewBox:`52 10 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,H.jsx)(`path`,{fill:`currentColor`,d:`M55.1385 20.6417L58.287 18.8752L58.3399 18.7218L58.287 18.6364L58.1336 18.6364L57.6074 18.6039L55.8085 18.5553L54.2483 18.4905L52.7368 18.4095L52.3565 18.3284L52 17.8585L52.0367 17.624L52.3565 17.409L52.8146 17.449L53.827 17.5181L55.346 17.6229L56.4481 17.6878L58.0807 17.8574H58.3399L58.3767 17.7526L58.288 17.6878L58.2189 17.6229L56.6469 16.5576L54.9452 15.4318L54.0538 14.7835L53.572 14.4551L53.3289 14.1472L53.2241 13.4752L53.6617 12.9933L54.2494 13.0333L54.3996 13.0733L54.995 13.5313L56.2666 14.5156L57.9272 15.7387L58.1703 15.9407L58.2675 15.8716L58.2794 15.823L58.1703 15.6404L57.2671 14.0078L56.3033 12.3472L55.8744 11.659L55.7609 11.2463C55.721 11.0767 55.6918 10.9341 55.6918 10.7601L56.1899 10.0837L56.4654 9.99512L57.1299 10.0837L57.4097 10.3268L57.8224 11.2712L58.4912 12.7578L59.5284 14.7793L59.8321 15.379L59.9941 15.9343L60.0546 16.1039L60.1593 16.1039V16.0066L60.2447 14.8679L60.4024 13.4698L60.5558 11.6709L60.6088 11.1642L60.8594 10.5569L61.3575 10.2285L61.7464 10.4144L62.0662 10.8724L62.0219 11.1685L61.8318 12.4045L61.459 14.3406L61.2159 15.6371H61.3576L61.5196 15.4751L62.1754 14.6042L63.2775 13.2267L63.7637 12.68L64.3309 12.0761L64.695 11.7886L65.3832 11.7886L65.8899 12.5416L65.6631 13.3196L64.9543 14.2185L64.3665 14.9801L63.5238 16.1146L62.9976 17.0221L63.0463 17.0946L63.1716 17.0827L65.0753 16.6775L66.1039 16.4917L67.3312 16.281L67.8866 16.5403L67.9471 16.8039L67.7289 17.3431L66.4162 17.6672L64.8765 17.9752L62.5838 18.5176L62.5558 18.5381L62.5882 18.578L63.6211 18.6753L64.0629 18.6991H65.1444L67.1583 18.8493L67.6845 19.1972L68 19.6229L67.9471 19.947L67.1368 20.3597L66.0434 20.1004L63.4914 19.4932L62.6162 19.275L62.4952 19.2749V19.3473L63.2245 20.0604L64.561 21.2672L66.2346 22.8231L66.3199 23.2077L66.1049 23.5113L65.8781 23.4789L64.4076 22.3725L63.8403 21.8745L62.5557 20.7929L62.4704 20.7929V20.9063L62.7664 21.3396L64.3298 23.6896L64.4108 24.4102L64.2974 24.6447L63.8922 24.7862L63.4471 24.7052L62.532 23.4205L61.5877 21.9738L60.826 20.6773L60.7331 20.7302L60.2836 25.5716L60.0729 25.819L59.5867 26.0049L59.1816 25.697L58.9666 25.1989L59.1816 24.2146L59.4409 22.93L59.6515 21.909L59.8417 20.6406L59.9552 20.2192L59.9476 20.1911L59.8547 20.203L58.8985 21.5157L57.4442 23.481L56.2936 24.7127L56.0181 24.8218L55.5405 24.5744L55.5848 24.1325L55.8517 23.7393L57.4442 21.7135L58.4047 20.458L59.0249 19.733L59.0206 19.6282H58.9839L54.754 22.3747L54.0009 22.4719L53.6768 22.1683L53.7168 21.6702L53.8702 21.5082L55.1418 20.633L55.1375 20.6373L55.1385 20.6417Z`})})},{name:`Perplexity`,href:`https://www.perplexity.ai/search?q=${encodeURIComponent(Ow)}`,Icon:e=>
255(0,H.jsx)(`svg`,{viewBox:`92 10 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,H.jsx)(`path`,{fill:`currentColor`,d:`M105.19 10V14.848H107V21.7467H105.043V26L100.352 21.8707V25.9673H99.6247V21.866L94.928 26V21.69H93V14.792H94.9227V10L99.6247 14.3293V10.1267H100.351V14.4533L105.19 10ZM100.352 16.0293V20.9087L104.316 24.398V19.6267L100.352 16.0293ZM99.6193 15.976L95.6553 19.5747V24.398L99.6193 20.9087V15.9767V15.976ZM105.043 21.0293H106.273V15.566H100.973L105.043 19.2593V21.0293ZM99.0553 15.5093H93.7267V20.9727H94.9267V19.2553L99.0547 15.5087L99.0553 15.5093ZM95.65 11.6507V14.7907H99.06L95.65 11.6507ZM104.463 11.6507L101.053 14.7907H104.463V11.6507Z`})})},{name:`Google AI Mode`,href:`https://www.google.com/search?udm=50&q=${encodeURIComponent(Ow)}`,Icon:e=>(0,H.jsx)(`svg`,{viewBox:`132 10 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,H.jsx)(`path`,{fill:`currentColor`,d:`M140 10C140.168 10 140.314 10.1146 140.355 10.2774C140.48 10.7751 140.645 11.2619 140.848 11.7333C141.378 12.9661 142.106 14.045 143.031 14.9693C143.955 15.8939 145.034 16.622 146.267 17.1526C146.738 17.3555 147.225 17.5203 147.723 17.6455C147.886 17.6864 148 17.8323 148 18C148 18.1677 147.886 18.3139 147.723 18.3548C147.225 18.4799 146.738 18.6447 146.267 18.8477C145.034 19.3782 143.955 20.1063 143.031 21.0307C142.106 21.9555 141.378 23.0342 140.848 24.2667C140.645 24.7381 140.48 25.2251 140.355 25.7229C140.335 25.8019 140.289 25.8721 140.225 25.9223C140.161 25.9725 140.082 25.9999 140 26C139.832 26 139.686 25.8856 139.645 25.7226C139.52 25.2249 139.355 24.738 139.152 24.2667C138.622 23.0339 137.894 21.9553 136.969 21.0307C136.045 20.1063 134.966 19.3782 133.733 18.8477C133.262 18.6447 132.775 18.4798 132.277 18.3545C132.198 18.3348 132.128 18.2892 132.078 18.225C132.028 18.1609 132 18.0818 132 18.0002C132 17.8326 132.115 17.6866 132.277 17.6457C132.775 17.5205 133.262 17.3556 133.733 17.1526C134.966 16.6222 136.045 15.8942 136.969 14.9696C137.894 14.0452 138.622 12.9663 139.153 11.7335C139.355 11.2622 139.52 10.7753 139.645 10.2776C139.665 10.
2551985 139.711 10.1282 139.775 10.0779C139.839 10.0276 139.918 10.0002 140 10Z`})})},{name:`Grok`,href:`https://grok.com/?q=${encodeURIComponent(Ow)}`,Icon:e=>(0,H.jsx)(`svg`,{viewBox:`172 10 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,H.jsx)(`path`,{fill:`currentColor`,fillRule:`evenodd`,clipRule:`evenodd`,d:`M178.18 20.1793L183.499 16.248C183.759 16.0547 184.132 16.13 184.257 16.4293C184.91 18.0087 184.618 19.906 183.317 21.2087C182.016 22.5113 180.205 22.7967 178.551 22.146L176.743 22.984C179.336 24.758 182.484 24.3193 184.451 22.3487C186.012 20.786 186.495 18.656 186.043 16.7353L186.047 16.74C185.392 13.9187 186.209 12.7907 187.881 10.4847C187.921 10.43 187.961 10.3753 188 10.3193L185.799 12.5227V12.516L178.178 20.1807M177.082 21.1347C175.221 19.3547 175.542 16.6007 177.129 15.012C178.303 13.8367 180.227 13.3567 181.907 14.062L183.71 13.2287C183.335 12.9529 182.925 12.7287 182.491 12.562C181.399 12.115 180.199 12.0009 179.042 12.2342C177.885 12.4674 176.823 13.0374 175.989 13.8727C174.301 15.5633 173.769 18.1633 174.681 20.382C175.363 22.04 174.246 23.2127 173.121 24.3967C172.722 24.8167 172.322 25.236 172 25.68L177.08 21.1367`})})}],Aw=`text-site-footer font-sans text-muted hover:text-default`;function jw(){return()=>void 0}function Mw(){return!0}function Nw(){return!1}function Pw({href:e,label:t,onClick:n}){return e.startsWith(`http`)?(0,H.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:Aw,onClick:n,children:t}):(0,H.jsx)(pe,{to:e,className:Aw,children:t})}function Fw({title:e,children:t}){return(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`h3`,{className:`text-site-footer font-sans text-default`,children:e}),(0,H.jsx)(`ul`,{className:`mt-6 space-y-3`,children:t})]})}function Iw(){let{requiresConsent:e,openBanner:t}=WC(),n=h_(),r=(0,V.useSyncExternalStore)(jw,Mw,Nw);return(0,H.jsxs)(H_,{innerClassName:`flex min-h-[380px] flex-col gap-6 px-8 py-8`,children:[(0,H.jsxs)(`div`,{className:`grid gap-8 sm:grid-cols-2 md:grid-cols-4 lg:grid-cols-5`,children:[(0,H.jsx)(Fw,{title:`Product`,children:xw.map(e=>(0,H.jsx)(`li`,{children:(0,H.jsx)(Pw,{href:e.href,label:e.label,onClick:e.label===`Documentation`?()=>n.capture(`docs_link_clicked`):void 0})},e.href))}),(0,H.jsx)(Fw,{title:`Company`,children:Sw.map(e=>(0,H.jsx)(`li`,{children:(0,H.jsx)(Pw,{href:e.href,label:e.label})},e.href))}),(0,H.jsx)(Fw,{title:`Legal`,children:Cw.map((n,i)=>(0,H.jsxs)(`li`,{children:[i===1&&r&&e&&(0,H.jsx)(`button`,{className:`text-site-footer mb-3 block font-sans text-muted hover:text-default`,onClick:t,children:`Cookie Settings`}),(0,H.jsx)(Pw,{href:n.href,label:n.label})]},n.href))}),(0,H.jsx)(Fw,{title:`Connect`,children:ww.map(e=>(0,H.jsx)(`li`,{children:(0,H.jsx)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:Aw,onClick:e.label===`Discord`?()=>n.capture(`discord_clicked`):void 0,children:e.label})},e.href))}),(0,H.jsx)(`div`,{className:`hidden justify-self-end text-neutral-200 lg:block dark:text-neutral-800`,children:(0,H.jsx)(gw,{className:`h-8 w-auto`})})]}),(0,H.jsxs)(`div`,{className:`text-site-footer flex flex-col gap-6 font-sans text-muted md:flex-row md:items-center md:justify-between`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4`,children:[(0,H.jsx)(`span`,{className:`text-default`,children:`Ask about Entire on`}),(0,H.jsx)(`div`,{className:`flex items-center gap-2`,children:kw.map(({name:e,href:t,Icon:r})=>(0,H.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,className:`flex size-8 items-center justify-center rounded-lg bg-floating text-muted shadow-[0px_0px_0px_1px_rgba(0,0,0,0.06),0px_1px_2px_-1px_rgba(0,0,0,0.06),0px_2px_4px_0px_rgba(0,0,0,0.04)] transition-colors hover:text-default`,"aria-label":`Ask about Entire on ${e}`,title:`Ask about Entire on ${e}`,onClick:()=>n.capture(`ask_agent_clicked`,{agent:e}),children:(0,H.jsx)(r,{className:`size-4`,"aria-hidden":`true`})},e))})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-6`,children:[(0,H.jsx)(Dw,{className:``,pulse:!0,textColorClassName:`text-default hover:text-default`,textSize:`font-sans text-site-footer`}),(0,H.jsx)(`span`,{className:`text-site-footer font-sans text-muted`,children:`© 2026 Entire Inc.`})]})]})]})}var Lw=({size:e=18,className:t})=>(0,H.jsxs)(BC,{size:e,viewBox:`0 0 18 18`,className:t,children:[(0,H.jsx)(`path`,{d:`M13.75 4.25L4.25 13.75`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,H.jsx)(`path`,{d:`M4.25 4.25L13.75 13.75`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`})]}),Rw=({size:e=18,className:t})=>(0,H.jsx)(BC,{size:e,viewBox:`0 0 20 20`,className:t,children:(0,H.jsx)(`path`,{d:`M1.75 4H18.2452M1.75 16H10.25M1.75239 10H18.2476`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`})}),zw=`entire_website_session_hint`,Bw=`/home`,Vw=`https://github.com`;function Hw(e,t){if(typeof document>`u`)return null;for(let n of document.head.querySelectorAll(`link`))if(n.getAttribute(`rel`)===e&&n.getAttribute(`href`)===t)return n;return null}function Uw(e,t,n={}){if(typeof document>`u`)return null;let r=Hw(e,t);if(r)return r;let i=document.createElement(`link`);i.rel=e,i.href=t;for(let[e,t]of Object.entries(n))i.setAttribute(e,t);return document.head.appendChild(i),i}function Ww(){return typeof document>
255`u`?null:document.cookie.match(RegExp(`(?:^|;\\s*)${zw}=([^;]+)`))?.[1]??null}function Gw(){if(typeof document>`u`)return!1;let e=document.documentElement.dataset.hasSession;return e===`true`||e!==`false`&&Ww()===`true`}function Kw(){(0,Ix.preconnect)(Vw),(0,Ix.prefetchDNS)(Vw)}function qw(){Gw()&&Uw(`prefetch`,Bw)}var Jw=`home-hero-boundary`;function Yw({boundaryId:e,handoffOffsetPx:t}){let n=(0,V.useRef)(null);return(0,V.useEffect)(()=>{let r=n.current;if(!r)return;let i=null,a=null,o,s=()=>{if(a=null,i?.isConnected||(i=document.getElementById(e)),!i)return;let n=i.getBoundingClientRect().bottom<=-t;n!==o&&(o=n,r.hidden=n)},c=()=>{a===null&&(a=window.requestAnimationFrame(s))};return s(),window.addEventListener(`scroll`,c,{passive:!0}),window.addEventListener(`resize`,c),()=>{window.removeEventListener(`scroll`,c),window.removeEventListener(`resize`,c),a!==null&&window.cancelAnimationFrame(a)}},[e,t]),(0,H.jsx)(`div`,{ref:n,"aria-hidden":`true`,"data-safari-top-tint":!0,className:`pointer-events-none fixed inset-x-0 top-0 z-30 h-3 bg-[#384674] md:hidden`,style:{filter:`opacity(0)`}})}function Xw(e){for(let t=e.length-1;t>=0;--t){let n=e[t]?.staticData.header;if(n)return n}return`standard`}function Zw(e,t){return e===`hero`&&!t?`hero`:`standard`}var Qw=e=>`text-site-footer flex h-8 items-center rounded-lg px-2 font-sans transition-colors hover:text-default focus:outline-2 focus:-outline-offset-2 focus:outline-transparent focus:transition-none focus-visible:outline-focus ${e?`text-default`:`text-muted`}`,$w=`text-site-title-sm px-2 font-sans text-default`,eT=e=>`site-menu-item text-site-title-sm px-2 font-sans text-default transition-colors focus:outline-2 focus:-outline-offset-2 focus:outline-transparent focus:transition-none focus-visible:outline-focus ${e?``:`hover:text-muted`}`;function tT({item:e,active:t,onNavigate:n}){return e.external?(0,H.jsx)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:Qw(!1),children:e.label}):(0,H.jsx)(pe,{to:e.href,className:Qw(t),onClick:n,children:e.label})}function nT({items:e,menuRef:t,onNavigate:n}){let r=js();return(0,H.jsx)(`div`,{id:`site-mobile-menu`,ref:t,className:`fixed inset-x-0 top-16 bottom-0 z-40 overflow-y-auto bg-(--surface-base) px-4 py-5 md:hidden`,role:`dialog`,"aria-label":`Main menu`,"aria-modal":`true`,tabIndex:-1,children:(0,H.jsx)(`nav`,{className:`flex flex-col gap-8`,children:e.map((e,t)=>{let i={animationDelay:`${t*60}ms`};return vw(e)?(0,H.jsxs)(`section`,{className:`site-menu-item flex flex-col gap-3`,style:i,children:[(0,H.jsx)(`h2`,{className:$w,children:e.label}),(0,H.jsx)(`div`,{className:`grid grid-cols-2 gap-0.5`,children:e.items.map(e=>(0,H.jsx)(tT,{item:e,active:yw(r.pathname,e.href),onNavigate:n},e.href))})]},e.label):e.external?(0,H.jsx)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,style:i,className:eT(!1),children:e.label},e.href):(0,H.jsx)(pe,{to:e.href,onClick:n,style:i,className:eT(yw(r.pathname,e.href)),children:e.label},e.href)})})})}var rT=me(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),iT=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},aT=(e,t)=>({classGroupId:e,validator:t}),oT=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),sT=`-`,cT=[],lT=`arbitrary..`,uT=e=>{let t=pT(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return fT(e);let n=e.split(sT);return dT(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?iT(i,t):t:i||cT}return n[e]||cT}}},dT=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=dT(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(sT):e.slice(t).join(sT),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},fT=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?lT+r:void 0})(),pT=e=>{let{theme:t,classGroups:n}=e;return mT(n,t)},mT=(e,t)=>
vendor: 4,928 bytes, line 255
255{let n=oT();for(let r in e){let i=e[r];hT(i,n,r,t)}return n},hT=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];gT(i,t,n,r)}},gT=(e,t,n,r)=>{if(typeof e==`string`){_T(e,t,n);return}if(typeof e==`function`){vT(e,t,n,r);return}yT(e,t,n,r)},_T=(e,t,n)=>{let r=e===``?t:bT(t,e);r.classGroupId=n},vT=(e,t,n,r)=>{if(xT(e)){hT(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(aT(n,e))},yT=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];hT(o,bT(t,a),n,r)}},bT=(e,t)=>{let n=e,r=t.split(sT),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=oT(),n.nextPart.set(t,i)),n=i}return n},xT=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,ST=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},CT=`!`,wT=`:`,TT=[],ET=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),DT=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===wT){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(CT)?(c=s.slice(0,-1),l=!0):s.startsWith(CT)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return ET(t,l,c,u)};if(t){let e=t+wT,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):ET(TT,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},OT=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},kT=e=>({cache:ST(e.cacheSize),parseClassName:DT(e),sortModifiers:OT(e),...uT(e)}),AT=/\s+/,jT=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a}=t,o=[],s=e.trim().split(AT),c=``;for(let e=s.length-1;e>=0;--e){let t=s[e],{isExternal:l,modifiers:u,hasImportantModifier:d,baseClassName:f,maybePostfixModifierPosition:p}=n(t);if(l){c=t+(c.length>0?` `+c:c);continue}let m=!!p,h=r(m?f.substring(0,p):f);if(!h){if(!m){c=t+(c.length>0?` `+c:c);continue}if(h=r(f),!h){c=t+(c.length>0?` `+c:c);continue}m=!1}let g=u.length===0?``:u.length===1?u[0]:a(u).join(`:`),_=d?g+CT:g,v=_+h;if(o.indexOf(v)>-1)continue;o.push(v);let y=i(h,m);for(let e=0;e<y.length;++e){let t=y[e];o.push(_+t)}c=t+(c.length>0?` `+c:c)}return c},MT=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=NT(n))&&(i&&(i+=` `),i+=r);return i},NT=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=NT(e[r]))&&(n&&(n+=` `),n+=t);return n},PT=(e,...t)=>{let n,r,i,a,o=o=>(n=kT(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=jT(e,n);return i(e,a),a};return a=o,(...e)=>a(MT(...e))},FT=[],IT=e=>{let t=t=>t[e]||FT;return t.isThemeGetter=!0,t},LT=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,RT=/^\((?:(\w[\w-]*):)?(.+)\)$/i,zT=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,BT=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,VT=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,HT=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,UT=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,WT=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,GT=e=>zT.test(e),KT=e=>!!e&&!Number.isNaN(Number(e)),qT=e=>!!e&&Number.isInteger(Number(e)),JT=e=>e.endsWith(`%`)&&KT(e.slice(0,-1)),YT=e=>BT.test(e),XT=()=>!0,ZT=e=>VT.test(e)&&!HT.test(e),QT=()=>!1,$T=e=>UT.test(e),eE=e=>WT.test(e),tE=e=>!Q(e)&&!$(e),nE=e=>_E(e,xE,QT),Q=e=>LT.test(e),rE=e=>_E(e,SE,ZT),iE=e=>_E(e,CE,KT),aE=e=>_E(e,TE,XT),oE=e=>_E(e,wE,QT),sE=e=>_E(e,yE,QT),cE=e=>_E(e,bE,eE),lE=e=>_E(e,EE,$T),$=e=>RT.test(e),uE=e=>vE(e,SE),dE=e=>vE(e,wE),fE=e=>vE(e,yE),pE=e=>vE(e,xE),mE=e=>vE(e,bE),hE=e=>vE(e,EE,!0),gE=e=>vE(e,TE,!0),_E=(e,t,n)=>{let r=LT.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},vE=(e,t,n=!1)=>{let r=RT.exec(e);return r?r[1]?t(r[1]):n:!1},yE=e=>e===`position`||e===`percentage`,bE=e=>e===`image`||e===`url`,xE=e=>e===`length`||e===`size`||e===`bg-size`,SE=e=>e===`length`,CE=e=>e===`number`,wE=e=>e===`family-name`,TE=e=>e===`number`||e===`weight`,EE=e=>e===`shadow`,DE=PT(()=>{let e=IT(`color`),t=IT(`font`),n=IT(`text`),r=IT(`font-weight`),i=IT(`tracking`),a=IT(`leading`),o=IT(`breakpoint`),s=IT(`container`),c=IT(`spacing`),l=IT(`radius`),u=IT(`shadow`),d=IT(`inset-shadow`),f=IT(`text-shadow`),p=IT(`drop-shadow`),m=IT(`blur`),h=IT(`perspective`),g=IT(`aspect`),_=IT(`ease`),v=IT(`animate`),y=()=>
vendor: 5,107 bytes, line 255
255[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),$,Q],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],C=()=>[`auto`,`contain`,`none`],w=()=>[$,Q,c],E=()=>[GT,`full`,`auto`,...w()],ee=()=>[qT,`none`,`subgrid`,$,Q],D=()=>[`auto`,{span:[`full`,qT,$,Q]},qT,$,Q],O=()=>[qT,`auto`,$,Q],k=()=>[`auto`,`min`,`max`,`fr`,$,Q],A=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],j=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],te=()=>[`auto`,...w()],M=()=>[GT,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],N=()=>[GT,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...w()],P=()=>[GT,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...w()],F=()=>[e,$,Q],I=()=>[...b(),fE,sE,{position:[$,Q]}],ne=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],L=()=>[`auto`,`cover`,`contain`,pE,nE,{size:[$,Q]}],re=()=>[JT,uE,rE],R=()=>[``,`none`,`full`,l,$,Q],ie=()=>[``,KT,uE,rE],ae=()=>[`solid`,`dashed`,`dotted`,`double`],oe=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],z=()=>[KT,JT,fE,sE],se=()=>[``,`none`,m,$,Q],ce=()=>[`none`,KT,$,Q],le=()=>[`none`,KT,$,Q],ue=()=>[KT,$,Q],de=()=>[GT,`full`,...w()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[YT],breakpoint:[YT],color:[XT],container:[YT],"drop-shadow":[YT],ease:[`in`,`out`,`in-out`],font:[tE],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[YT],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[YT],shadow:[YT],spacing:[`px`,KT],text:[YT],"text-shadow":[YT],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,GT,Q,$,g]}],container:[`container`],columns:[{columns:[KT,Q,$,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:E()}],"inset-x":[{"inset-x":E()}],"inset-y":[{"inset-y":E()}],start:[{"inset-s":E(),start:E()}],end:[{"inset-e":E(),end:E()}],"inset-bs":[{"inset-bs":E()}],"inset-be":[{"inset-be":E()}],top:[{top:E()}],right:[{right:E()}],bottom:[{bottom:E()}],left:[{left:E()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[qT,`auto`,$,Q]}],basis:[{basis:[GT,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[KT,GT,`auto`,`initial`,`none`,Q]}],grow:[{grow:[``,KT,$,Q]}],shrink:[{shrink:[``,KT,$,Q]}],order:[{order:[qT,`first`,`last`,`none`,$,Q]}],"grid-cols":[{"grid-cols":ee()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":O()}],"col-end":[{"col-end":O()}],"grid-rows":[{"grid-rows":ee()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":O()}],"row-end":[{"row-end":O()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":k()}],"auto-rows":[{"auto-rows":k()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...A(),`normal`]}],"justify-items":[{"justify-items":[...j(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...j()]}],"align-content":[{content:[`normal`,...A()]}],"align-items":[{items:[...j(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...j(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":A()}],"place-items":[{"place-items":[...j(),`baseline`]}],"place-self":[{"place-self":[`auto`,...j()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pbs:[{pbs:w()}],pbe:[{pbe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:te()}],mx:[{mx:te()}],my:[{my:te()}],ms:[{ms:te()}],me:[{me:te()}],mbs:[{mbs:te()}],mbe:[{mbe:te()}
vendor: 4,111 bytes, line 255
255],mt:[{mt:te()}],mr:[{mr:te()}],mb:[{mb:te()}],ml:[{ml:te()}],"space-x":[{"space-x":w()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":w()}],"space-y-reverse":[`space-y-reverse`],size:[{size:M()}],"inline-size":[{inline:[`auto`,...N()]}],"min-inline-size":[{"min-inline":[`auto`,...N()]}],"max-inline-size":[{"max-inline":[`none`,...N()]}],"block-size":[{block:[`auto`,...P()]}],"min-block-size":[{"min-block":[`auto`,...P()]}],"max-block-size":[{"max-block":[`none`,...P()]}],w:[{w:[s,`screen`,...M()]}],"min-w":[{"min-w":[s,`screen`,`none`,...M()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...M()]}],h:[{h:[`screen`,`lh`,...M()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...M()]}],"max-h":[{"max-h":[`screen`,`lh`,...M()]}],"font-size":[{text:[`base`,n,uE,rE]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,gE,aE]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,JT,Q]}],"font-family":[{font:[dE,oE,t]}],"font-features":[{"font-features":[Q]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,$,Q]}],"line-clamp":[{"line-clamp":[KT,`none`,$,iE]}],leading:[{leading:[a,...w()]}],"list-image":[{"list-image":[`none`,$,Q]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,$,Q]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:F()}],"text-color":[{text:F()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...ae(),`wavy`]}],"text-decoration-thickness":[{decoration:[KT,`from-font`,`auto`,$,rE]}],"text-decoration-color":[{decoration:F()}],"underline-offset":[{"underline-offset":[KT,`auto`,$,Q]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:w()}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,$,Q]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,$,Q]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:I()}],"bg-repeat":[{bg:ne()}],"bg-size":[{bg:L()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},qT,$,Q],radial:[``,$,Q],conic:[qT,$,Q]},mE,cE]}],"bg-color":[{bg:F()}],"gradient-from-pos":[{from:re()}],"gradient-via-pos":[{via:re()}],"gradient-to-pos":[{to:re()}],"gradient-from":[{from:F()}],"gradient-via":[{via:F()}],"gradient-to":[{to:F()}],rounded:[{rounded:R()}],"rounded-s":[{"rounded-s":R()}],"rounded-e":[{"rounded-e":R()}],"rounded-t":[{"rounded-t":R()}],"rounded-r":[{"rounded-r":R()}],"rounded-b":[{"rounded-b":R()}],"rounded-l":[{"rounded-l":R()}],"rounded-ss":[{"rounded-ss":R()}],"rounded-se":[{"rounded-se":R()}],"rounded-ee":[{"rounded-ee":R()}],"rounded-es":[{"rounded-es":R()}],"rounded-tl":[{"rounded-tl":R()}],"rounded-tr":[{"rounded-tr":R()}],"rounded-br":[{"rounded-br":R()}],"rounded-bl":[{"rounded-bl":R()}],"border-w":[{border:ie()}],"border-w-x":[{"border-x":ie()}],"border-w-y":[{"border-y":ie()}],"border-w-s":[{"border-s":ie()}],"border-w-e":[{"border-e":ie()}],"border-w-bs":[{"border-bs":ie()}],"border-w-be":[{"border-be":ie()}],"border-w-t":[{"border-t":ie()}],"border-w-r":[{"border-r":ie()}],"border-w-b":[{"border-b":ie()}],"border-w-l":[{"border-l":ie()}
vendor: 6,799 bytes, line 255
255],"divide-x":[{"divide-x":ie()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":ie()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...ae(),`hidden`,`none`]}],"divide-style":[{divide:[...ae(),`hidden`,`none`]}],"border-color":[{border:F()}],"border-color-x":[{"border-x":F()}],"border-color-y":[{"border-y":F()}],"border-color-s":[{"border-s":F()}],"border-color-e":[{"border-e":F()}],"border-color-bs":[{"border-bs":F()}],"border-color-be":[{"border-be":F()}],"border-color-t":[{"border-t":F()}],"border-color-r":[{"border-r":F()}],"border-color-b":[{"border-b":F()}],"border-color-l":[{"border-l":F()}],"divide-color":[{divide:F()}],"outline-style":[{outline:[...ae(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[KT,$,Q]}],"outline-w":[{outline:[``,KT,uE,rE]}],"outline-color":[{outline:F()}],shadow:[{shadow:[``,`none`,u,hE,lE]}],"shadow-color":[{shadow:F()}],"inset-shadow":[{"inset-shadow":[`none`,d,hE,lE]}],"inset-shadow-color":[{"inset-shadow":F()}],"ring-w":[{ring:ie()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:F()}],"ring-offset-w":[{"ring-offset":[KT,rE]}],"ring-offset-color":[{"ring-offset":F()}],"inset-ring-w":[{"inset-ring":ie()}],"inset-ring-color":[{"inset-ring":F()}],"text-shadow":[{"text-shadow":[`none`,f,hE,lE]}],"text-shadow-color":[{"text-shadow":F()}],opacity:[{opacity:[KT,$,Q]}],"mix-blend":[{"mix-blend":[...oe(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":oe()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[KT]}],"mask-image-linear-from-pos":[{"mask-linear-from":z()}],"mask-image-linear-to-pos":[{"mask-linear-to":z()}],"mask-image-linear-from-color":[{"mask-linear-from":F()}],"mask-image-linear-to-color":[{"mask-linear-to":F()}],"mask-image-t-from-pos":[{"mask-t-from":z()}],"mask-image-t-to-pos":[{"mask-t-to":z()}],"mask-image-t-from-color":[{"mask-t-from":F()}],"mask-image-t-to-color":[{"mask-t-to":F()}],"mask-image-r-from-pos":[{"mask-r-from":z()}],"mask-image-r-to-pos":[{"mask-r-to":z()}],"mask-image-r-from-color":[{"mask-r-from":F()}],"mask-image-r-to-color":[{"mask-r-to":F()}],"mask-image-b-from-pos":[{"mask-b-from":z()}],"mask-image-b-to-pos":[{"mask-b-to":z()}],"mask-image-b-from-color":[{"mask-b-from":F()}],"mask-image-b-to-color":[{"mask-b-to":F()}],"mask-image-l-from-pos":[{"mask-l-from":z()}],"mask-image-l-to-pos":[{"mask-l-to":z()}],"mask-image-l-from-color":[{"mask-l-from":F()}],"mask-image-l-to-color":[{"mask-l-to":F()}],"mask-image-x-from-pos":[{"mask-x-from":z()}],"mask-image-x-to-pos":[{"mask-x-to":z()}],"mask-image-x-from-color":[{"mask-x-from":F()}],"mask-image-x-to-color":[{"mask-x-to":F()}],"mask-image-y-from-pos":[{"mask-y-from":z()}],"mask-image-y-to-pos":[{"mask-y-to":z()}],"mask-image-y-from-color":[{"mask-y-from":F()}],"mask-image-y-to-color":[{"mask-y-to":F()}],"mask-image-radial":[{"mask-radial":[$,Q]}],"mask-image-radial-from-pos":[{"mask-radial-from":z()}],"mask-image-radial-to-pos":[{"mask-radial-to":z()}],"mask-image-radial-from-color":[{"mask-radial-from":F()}],"mask-image-radial-to-color":[{"mask-radial-to":F()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[KT]}],"mask-image-conic-from-pos":[{"mask-conic-from":z()}],"mask-image-conic-to-pos":[{"mask-conic-to":z()}],"mask-image-conic-from-color":[{"mask-conic-from":F()}],"mask-image-conic-to-color":[{"mask-conic-to":F()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:I()}],"mask-repeat":[{mask:ne()}],"mask-size":[{mask:L()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,$,Q]}],filter:[{filter:[``,`none`,$,Q]}],blur:[{blur:se()}],brightness:[{brightness:[KT,$,Q]}],contrast:[{contrast:[KT,$,Q]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,hE,lE]}],"drop-shadow-color":[{"drop-shadow":F()}],grayscale:[{grayscale:[``,KT,$,Q]}],"hue-rotate":[{"hue-rotate":[KT,$,Q]}],invert:[{invert:[``,KT,$,Q]}],saturate:[{saturate:[KT,$,Q]}],sepia:[{sepia:[``,KT,$,Q]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,$,Q]}],"backdrop-blur":[{"backdrop-blur":se()}],"backdrop-brightness":[{"backdrop-brightness":[KT,$,Q]}],"backdrop-contrast":[{"backdrop-contrast":[KT,$,Q]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,KT,$,Q]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[KT,$,Q]}],"backdrop-invert":[{"backdrop-invert":[``,KT,$,Q]}],"backdrop-opacity":[{"backdrop-opacity":[KT,$,Q]}],"backdrop-saturate":[{"backdrop-saturate":[KT,$,Q]}],"backdrop-sepia":[{"backdrop-sepia":[``,KT,$,Q]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,$,Q]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[KT,`initial`,$,Q]}],ease:[{ease:[`linear`,`initial`,_,$,Q]}],delay:[{delay:[KT,$,Q]}],animate:[{animate:[`none`,v,$,Q]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,$,Q]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:ce()}],"rotate-x":[{"rotate-x":ce()}],"rotate-y":[{"rotate-y":ce()}],"rotate-z":[{"rotate-z":ce()}],scale:[{scale:le()}],"scale-x":[{"scale-x":le()}],"scale-y":[{"scale-y":le()}],"scale-z":[{"scale-z":le()}],"scale-3d":[`scale-3d`],skew:[{skew:ue()}],"skew-x":[{"skew-x":ue()}],"skew-y":[{"skew-y":ue()}],transform:[{transform:[$,Q,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:de()}],"translate-x":[{"translate-x":de()}],"translate-y":[{"translate-y":de()}],"translate-z":[{"translate-z":de()}],"translate-none":[`translate-none`],accent:[{accent:F()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:F()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom
255-in`,`zoom-out`,$,Q]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mbs":[{"scroll-mbs":w()}],"scroll-mbe":[{"scroll-mbe":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pbs":[{"scroll-pbs":w()}],"scroll-pbe":[{"scroll-pbe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}
255],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,$,Q]}],fill:[{fill:[`none`,...F()]}],"stroke-w":[{stroke:[KT,uE,rE,iE]}],stroke:[{stroke:[`none`,...F()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}}),OE=({size:e=18,className:t})=>(0,H.jsx)(BC,{size:e,viewBox:`0 0 20 20`,className:t,children:(0,H.jsx)(`path`,{d:`M8.5 5L13.5 10L8.5 15`,stroke:`currentColor`,strokeWidth:`1.5`,strokeMiterlimit:`16`,strokeLinecap:`round`,strokeLinejoin:`round`})}),kE=(0,V.createContext)(null),AE=()=>{let e=(0,V.useContext)(kE);if(!e)throw Error(`Dropdown components must be used within a Dropdown`);return e};function jE({children:e,placement:t=`bottom-start`}){let[n,r]=(0,V.useState)(!1),[i,a]=(0,V.useState)(null),[o,s]=(0,V.useState)(null),[c,l]=(0,V.useState)(null),u=(0,V.useRef)([]),d=mS(),f=pS();(0,V.useEffect)(()=>{if(!f)return;function e(){r(!1)}return f.events.on(`click`,e),()=>{f.events.off(`click`,e)}},[f]),(0,V.useEffect)(()=>{let e=()=>{r(!1)};return window.addEventListener(`sidebar-expand`,e),()=>{window.removeEventListener(`sidebar-expand`,e)}},[]);let{floatingStyles:p,context:m}=vC({nodeId:d,open:n,onOpenChange:r,middleware:[Ux(4),Gx(),Wx({padding:8}),Kx({apply({rects:e,elements:t}){t.floating.style.setProperty(`--dropdown-trigger-width`,`${e.reference.width}px`)}})],whileElementsMounted:kx,placement:t,elements:{reference:o,floating:c}}),{getReferenceProps:h,getFloatingProps:g,getItemProps:_}=SC([fC(m),gC(m),jC(m,{role:`menu`}),kC(m,{listRef:u,activeIndex:i,onNavigate:a,loop:!0})]),v=(0,V.useMemo)(()=>({isOpen:n,setIsOpen:r,setReference:s,setFloating:l,floatingStyles:p,context:m,activeIndex:i,elementsRef:u,getReferenceProps:h,getFloatingProps:g,getItemProps:_}),[n,r,s,l,p,m,i,h,g,_]);return(0,H.jsx)(hS,{id:d,children:(0,H.jsx)(kE.Provider,{value:v,children:e})})}function ME({children:e,placement:t}){return fS()===null?(0,H.jsx)(gS,{children:(0,H.jsx)(jE,{placement:t,children:e})}):(0,H.jsx)(jE,{placement:t,children:e})}function NE({children:e,asChild:t,...n}){let{setReference:r,getReferenceProps:i,isOpen:a}=AE(),o=e=>{r(e.currentTarget)};if(t&&(0,V.isValidElement)(e)){let t=e,r=n,s=t.props;return(0,V.cloneElement)(t,{...i({...r,...s,onClick(e){o(e),s.onClick?.(e),r.onClick?.(e)},onFocus(e){o(e),s.onFocus?.(e),r.onFocus?.(e)},onPointerEnter(e){o(e),s.onPointerEnter?.(e),r.onPointerEnter?.(e)}}),"data-dropdown-trigger":!0,"data-state":a?`open`:`closed`})}return(0,H.jsx)(RC,{...i(n),ref:r,"data-dropdown-trigger":!0,"data-state":a?`open`:`closed`,children:e})}function PE({children:e,className:t,innerClassName:n,width:r=`default`,...i}){let{isOpen:a,setFloating:o,floatingStyles:s,context:c,elementsRef:l,getFloatingProps:u}=AE(),d=r===`trigger`?``:r===`narrow`?`min-w-36 max-w-64`:`min-w-50 max-w-64`;return(0,V.useEffect)(()=>{a||(l.current=[])},[a,l]),a?(0,H.jsx)(KS,{children:(0,H.jsx)(rC,{context:c,initialFocus:-1,modal:!1,children:(0,H.jsx)(`div`,{ref:o,style:{...s,...r===`trigger`?{width:`var(--dropdown-trigger-width)`}:{}},className:DE(`z-popover rounded-xl`,d,t),...u(i),children:(0,H.jsx)(`div`,{className:`floating-popover-frame roun
255ded-xl`,children:(0,H.jsx)(`div`,{className:DE(`rounded-[calc(var(--radius-xl)-1px)] p-1`,n),children:e})})})})}):null}function FE({children:e,onClick:t,className:n,disabled:r,selected:i,checkPosition:a=`end`,icon:o,keepOpen:s,keepOpenOnShiftClick:c,...l}){let{setIsOpen:u,activeIndex:d,elementsRef:f,getItemProps:p}=AE(),m=(0,V.useRef)(null),[h,g]=(0,V.useState)(null);(0,V.useEffect)(()=>{let e=m.current;if(e){let t=f.current.length;g(t),f.current.push(e)}},[f]);let _=d===h,v=i!==void 0&&(0,H.jsx)(rT,{size:14,className:fv(`shrink-0`,i?`opacity-100`:`opacity-0`)}),y=V.Children.toArray(e),b=y.length>1||y.some(e=>(0,V.isValidElement)(e))?e:(0,H.jsx)(`span`,{className:`truncate`,children:e});return(0,H.jsxs)(`button`,{ref:m,type:`button`,role:`menuitem`,disabled:r,tabIndex:_?0:-1,className:fv(`flex w-full min-w-0 cursor-pointer items-center gap-2 rounded-lg px-3 py-1.5 text-left text-sm text-default list-hover-transition hover:bg-hover focus:bg-hover focus:outline-none disabled:cursor-not-allowed disabled:opacity-50`,a===`end`?`justify-between`:`justify-start`,n),...p({...l,onClick:e=>{r||(t?.(e),!s&&(c&&e.shiftKey||u(!1)))}}),children:[a===`start`&&v,(0,H.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[o&&(0,H.jsx)(`span`,{className:`shrink-0`,children:o}),b]}),a===`end`&&v]})}function IE({children:e,href:t,className:n,...r}){let{setIsOpen:i,activeIndex:a,elementsRef:o,getItemProps:s}=AE(),c=(0,V.useRef)(null),[l,u]=(0,V.useState)(null);return(0,V.useEffect)(()=>{let e=c.current;if(e){let t=o.current.length;u(t),o.current.push(e)}},[o]),(0,H.jsx)(`a`,{ref:c,href:t,role:`menuitem`,tabIndex:a===l?0:-1,className:fv(`flex w-full cursor-pointer items-center gap-2 rounded-lg px-3 py-1.5 text-sm text-default list-hover-transition hover:bg-hover focus:bg-hover focus:outline-none`,n),...s({...r,onClick:e=>{r.onClick?.(e),i(!1)}}),children:e})}function LE({className:e,...t}){return(0,H.jsx)(`div`,{role:`separator`,className:fv(`-mx-1 my-1 h-px bg-(--border-default)`,e),...t})}(0,V.createContext)(null);var RE=({size:e=18,className:t})=>(0,H.jsx)(BC,{size:e,viewBox:`0 0 20 20`,className:t,children:(0,H.jsx)(`path`,{d:`M5 8.50004L10 13.5L15 8.5`,stroke:`currentColor`,strokeWidth:`1.5`,strokeMiterlimit:`16`,strokeLinecap:`round`,strokeLinejoin:`round`})});function zE({label:e,items:t,triggerClassName:n}){let r=rs();return(0,H.jsxs)(ME,{placement:`bottom-start`,children:[(0,H.jsx)(NE,{asChild:!0,children:(0,H.jsxs)(`button`,{type:`button`,className:`${n} group/site-nav cursor-pointer gap-1`,children:[e,(0,H.jsx)(RE,{size:16,className:`transition-transform group-data-[state=open]/site-nav:rotate-180`})]})}),(0,H.jsx)(PE,{children:t.map(e=>e.external?(0,H.jsx)(IE,{href:e.href,target:`_blank`,rel:`noreferrer`,children:e.label},e.href):(0,H.jsx)(IE,{href:e.href,onClick:t=>{!t.metaKey&&!t.ctrlKey&&!t.shiftKey&&t.button===0&&(t.preventDefault(),r({to:e.href}))},children:e.label},e.href))})]})}var BE=`flex h-16 items-center justify-between px-4 md:grid md:grid-cols-[1fr_auto_1fr]`,VE=`text-site-body-sm flex h-8 items-center rounded-lg px-2.5 py-1 font-sans transition-colors focus:outline-2 focus:-outline-offset-2 focus:outline-transparent focus:transition-none focus-visible:outline-focus`,HE=`shadow-[0_0_0_1px_rgb(0_0_0/0.06),0_1px_2px_-1px_rgb(0_0_0/0.06),0_2px_4px_rgb(0_0_0/0.04)] dark:shadow-[0_0_0_1px_rgb(255_255_255/0.08),0_1px_2px_-1px_rgb(0_0_0/0.4),0_2px_4px_rgb(0_0_0/0.3)]`,UE=`border-transparent! bg-white! text-[#333]! [text-shadow:none] hover:bg-neutral-100! active:bg-neutral-200!`,WE=64,GE={standard:{railClassName:`bg-(--surface-base) text-default`,navItemClassName:`text-muted hover:bg-(--surface-hover) hover:text-default data-[state=open]:bg-(--surface-hover) data-[state=open]:text-default`,activeNavItemClassName:`text-default`,ctaVariant:`attention`,ctaClassName:HE,mobileMenuButtonClassName:UE},hero:{railClassName:`bg-transparent text-white [text-shadow:0_1px_2px_rgb(0_0_0/0.35)] [&_:focus-visible]:outline-white/90`,navItemClassName:`text-white/80 hover:bg-white/10 hover:text-white data-[state=open]:bg-white/10 data-[state=open]:text-white`,activeNavItemClassName:`text-white`,ctaVariant:`ghost`,ctaClassName:`${HE} ${UE}`,mobileMenuButtonClassName:UE}};function KE(e,t){let n=GE[t];return`${VE} ${n.navItemClassName} ${e?n.activeNavItemClassName:``}`}var qE=[`a[href]`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not
255([tabindex='-1'])`].join(`,`);function JE(e){return Array.from(e.querySelectorAll(qE)).filter(e=>!e.hasAttribute(`disabled`)&&e.offsetParent!==null)}function YE(e,t){let n=e;n.inert=t}function XE(e){return{onFocus:e,onMouseDown:e,onMouseEnter:e,onTouchStart:e}}function ZE({children:e}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Yw,{boundaryId:Jw,handoffOffsetPx:WE}),(0,H.jsx)(H_,{fullWidth:!0,borderBottom:!1,innerClassName:`${BE} mx-auto max-w-320 ${GE.hero.railClassName}`,outerClassName:`relative z-20`,children:e})]})}function QE({children:e,fullWidth:t,mobileOpen:n}){return(0,H.jsx)(H_,{fullWidth:t,innerClassName:`${BE} ${GE.standard.railClassName} ${t?`mx-auto max-w-320`:``}`,outerClassName:`relative z-20 ${n?`sticky top-0 z-50`:``}`,children:e})}function $E({loginHref:e,menuButtonRef:t,mobileOpen:n,onToggleMobile:r,pathname:i,variant:a}){let o=h_(),s=GE[a],c=n?`ghost`:s.ctaVariant,l=`${s.ctaClassName} ${n?UE:``}`;return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-self-start`,children:[(0,H.jsx)(pe,{to:`/about`,"aria-label":`Entire home`,className:`hidden w-fit shrink-0 rounded-sm hover:opacity-80 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus [html[data-has-session=true]_&]:inline-flex`,children:(0,H.jsx)(gw,{className:`h-6 w-auto`})}),(0,H.jsx)(pe,{to:`/`,"aria-label":`Entire home`,className:`hidden w-fit shrink-0 rounded-sm hover:opacity-80 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus [html[data-has-session=false]_&]:inline-flex`,children:(0,H.jsx)(gw,{className:`h-6 w-auto`})})]}),(0,H.jsx)(`nav`,{className:`hidden items-center gap-4 md:flex`,children:bw.map(e=>vw(e)?(0,H.jsx)(zE,{label:e.label,items:e.items,triggerClassName:`${VE} ${s.navItemClassName}`},e.label):e.external?(0,H.jsx)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:KE(!1,a),children:e.label},e.href):(0,H.jsx)(pe,{to:e.href,className:KE(yw(i,e.href),a),children:e.label},e.href))}),(0,H.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[i!==`/login`&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(RC,{href:`/home`,variant:c,size:`small`,className:`${l} hidden [html[data-has-session=true]_&]:flex`,...XE(qw),onClick:()=>o.capture(`dashboard_clicked`,{source:i}),children:`Dashboard`}),(0,H.jsx)(RC,{href:e,variant:c,size:`small`,className:`${l} hidden [html[data-has-session=false]_&]:flex`,...XE(Kw),onClick:()=>o.capture(`sign_in_clicked`,{source:i}),children:`Log in`})]}),(0,H.jsx)(`button`,{ref:t,type:`button`,"aria-label":n?`Close menu`:`Open menu`,"aria-expanded":n,"aria-controls":`site-mobile-menu`,onClick:r,className:`${HE} ${s.mobileMenuButtonClassName} flex size-8 cursor-pointer items-center justify-center rounded-lg transition-colors focus:outline-2 focus:-outline-offset-2 focus:outline-transparent focus:transition-none focus-visible:outline-focus md:hidden`,children:n?(0,H.jsx)(Lw,{size:16,className:`text-[#333]`}):(0,H.jsx)(Rw,{size:16,className:`text-[#333]`})})]})]})}function eD({variant:e=`standard`}){let t=js(),n=As({select:e=>e.matches.some(e=>e.status===`notFound`)||e.matches.length===1&&e.location.pathname!==`/`})?`/login?${new URLSearchParams({next:t.href}).toString()}`:`/login`,[r,i]=(0,V.useState)({pathname:t.pathname,open:!1});r.pathname!==t.pathname&&i({pathname:t.pathname,open:!1});let a=r.pathname===t.pathname&&r.open,o=(0,V.useCallback)(e=>{i(n=>({pathname:t.pathname,open:typeof e==`function`?e(n.open):e}))},[t.pathname]),s=(0,V.useRef)(null),c=(0,V.useRef)(null),l=(0,V.useRef)(!1),u=Zw(e,a),d=u===`hero`;(0,V.useEffect)(()=>{if(!a)return;let e=s.current,t=e?.closest(`main`),n=e?.closest(`section`),r=t?Array.from(t.children).filter(e=>e.id!==`site-mobile-menu`&&e!==n):[];for(let e of r)YE(e,!0);let i=window.requestAnimationFrame(()=>{let e=c.current;if(!e)return;let t=JE(e)[0];t?t.focus():e.focus()}),l=e=>{if(e.key===`Escape`){o(!1);return}if(e.key!==`Tab`)return;let t=c.current;if(!t)return;let n=JE(t);if(n.length===0){e.preventDefault(),t.focus();return}let r=n[0],i=n[n.length-1];e.shiftKey&&document.activeElement===r?(e.preventDefault(),i.focus()):!e.shiftKey&&document.activeElement===i&&(e.preventDefault(),r.focus())},u=window.matchMedia(`(min-width: 48rem)`),d=()=>{u.matches&&o(!1)};
255window.addEventListener(`keydown`,l),u.addEventListener(`change`,d);let f=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{window.cancelAnimationFrame(i),window.removeEventListener(`keydown`,l),u.removeEventListener(`change`,d),document.body.style.overflow=f;for(let e of r)YE(e,!1)}},[a,o]),(0,V.useEffect)(()=>{let e=l.current;l.current=a,e&&!a&&s.current?.focus()},[a]);let f=(0,H.jsx)($E,{loginHref:n,variant:u,pathname:t.pathname,mobileOpen:a,menuButtonRef:s,onToggleMobile:()=>o(e=>!e)});return(0,H.jsxs)(H.Fragment,{children:[d?(0,H.jsx)(ZE,{children:f}):(0,H.jsx)(QE,{fullWidth:e===`hero`,mobileOpen:a,children:f}),a&&(0,H.jsx)(nT,{items:bw,menuRef:c,onNavigate:()=>o(!1)})]})}function tD({children:e}){return(0,H.jsx)(`div`,{className:`flex min-h-dvh flex-col bg-base text-default`,children:(0,H.jsxs)(`main`,{className:`relative z-0 grid flex-1 grid-rows-[auto_1fr_auto] overflow-hidden`,children:[(0,H.jsx)(eD,{variant:ws({select:Xw})}),(0,H.jsx)(`div`,{className:`flex min-w-0 flex-col`,children:e}),(0,H.jsx)(Iw,{})]})})}var nD=`/_w/styles-ID1O2LWF.css`,rD=cs({head:()=>({meta:[{charSet:`utf-8`},{name:`viewport`,content:`width=device-width, initial-scale=1`},{title:`Entire · A new developer platform is coming`},{name:`description`,content:`Entire is a fast, distributed, Git-compatible network for mirroring GitHub repositories so agents can clone fast without hitting origin rate limits.`},{name:`robots`,content:`index, follow`},{property:`og:title`,content:`Entire · A new developer platform is coming`},{property:`og:description`,content:`Entire is a fast, distributed, Git-compatible network for mirroring GitHub repositories so agents can clone fast without hitting origin rate limits.`},{property:`og:type`,content:`website`},{property:`og:url`,content:`https://entire.io`},{property:`og:image`,content:`https://entire.io/images/og/home.png?v=9`},{property:`og:image:alt`,content:`Entire social card featuring Marvin and the message: âFast. Distributed. Independent. Git Hosting for Agents.â`},{property:`og:image:width`,content:`1200`},{property:`og:image:height`,content:`630`},{property:`og:site_name`,content:`Entire`},{property:`og:locale`,content:`en_US`},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:title`,content:`Entire · A new developer platform is coming`},{name:`twitter:description`,content:`Entire is a fast, distributed, Git-compatible network for mirroring GitHub repositories so agents can clone fast without hitting origin rate limits.`},{name:`twitter:image`,content:`https://entire.io/images/og/home.png?v=9`},{name:`twitter:image:alt`,content:`Entire social card featuring Marvin and the message: âFast. Distributed. Independent. Git Hosting for Agents.â`}],links:[{rel:`stylesheet`,href:nD},{rel:`preload`,href:`/fonts/entire-headline-semibold.woff2`,as:`font`,type:`font/woff2`,crossOrigin:`anonymous`},{rel:`preload`,href:`/fonts/entire-mono-regular.woff2`,as:`font`,type:`font/woff2`,crossOrigin:`anonymous`},{rel:`icon`,href:`/favicon.svg`,type:`image/svg+xml`},{rel:`apple-touch-icon`,href:`/apple-touch-icon.png`,sizes:`180x180`}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Organization`,name:`Entire`,url:`https://entire.io`,logo:`https://entire.io/favicon.svg`})}]}),component:uD,shellComponent:oD,notFoundComponent:U_});function iD(){try{let e=document.cookie.match(/(?:^|; )entire_website_session_hint=([^;]+)/);document.documentElement.dataset.hasSession=e?.[1]===`true`?`true`:`false`}catch{}}var aD=`(${iD.toString()})()`;function oD({children:e}){return(0,H.jsxs)(`html`,{lang:`en`,suppressHydrationWarning:!0,children:[(0,H.jsxs)(`head`,{children:[(0,H.jsx)(`script`,{dangerouslySetInnerHTML:{__html:uw}}),(0,H.jsx)(`script`,{dangerouslySetInnerHTML:{__html:aD}}),(0,H.jsx)(Is,{})]}),(0,H.jsxs)(`body`,{children:[e,(0,H.jsx)(Ls,{})]})]})}function sD(){let{consentStatus:e}=WC();return(0,V.useEffect)(()=>{if(e===`accepted`){if(document.getElementById(`hs-script-loader`))return;let e=document.createElement(`script`);
255e.type=`text/javascript`,e.id=`hs-script-loader`,e.async=!0,e.defer=!0,e.src=`//js-na2.hs-scripts.com/243539859.js`,document.head.appendChild(e)}else if(e===`rejected`){let e=window;(e._hsp=e._hsp??[]).push([`revokeCookieConsent`])}},[e]),null}function cD({children:e}){let{consentStatus:t}=WC(),n=h_();return(0,V.useEffect)(()=>{n?.config.token&&rw(n,t)},[t,n]),(0,H.jsx)(H.Fragment,{children:e})}var lD=!1;function uD(){let e=(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(tD,{children:(0,H.jsx)(bs,{})}),(0,H.jsxs)(k,{children:[(0,H.jsx)(GC,{}),(0,H.jsx)(lv,{})]})]});return(0,H.jsx)(pw,{children:(0,H.jsxs)(ow,{children:[(0,H.jsx)(sD,{}),(0,H.jsx)(p_,{apiKey:{BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,TSS_DEV_SERVER:`false`,TSS_DEV_SSR_STYLES_BASEPATH:`/`,TSS_DEV_SSR_STYLES_ENABLED:`true`,TSS_INLINE_CSS_ENABLED:`false`,TSS_ROUTER_BASEPATH:``,TSS_SERVER_FN_BASE:`/_serverFn/`,VITE_HONEYCOMB_API_KEY:`hcaik_01kp4hznfdwt19ngnd6gprptrpg5bdftnsgvbq571w5xw0ngskzd7qt1v8`,VITE_PUBLIC_POSTHOG_API_HOST:`https://42.entire.io`,VITE_PUBLIC_POSTHOG_KEY:`phc_A5KZSH9jMfa08S7clCw81xkgq96Cq68x7c3mgBs5Tsh`,VITE_PUBLIC_POSTHOG_UI_HOST:`https://eu.posthog.com`}.VITE_PUBLIC_POSTHOG_KEY,options:{api_host:{BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,TSS_DEV_SERVER:`false`,TSS_DEV_SSR_STYLES_BASEPATH:`/`,TSS_DEV_SSR_STYLES_ENABLED:`true`,TSS_INLINE_CSS_ENABLED:`false`,TSS_ROUTER_BASEPATH:``,TSS_SERVER_FN_BASE:`/_serverFn/`,VITE_HONEYCOMB_API_KEY:`hcaik_01kp4hznfdwt19ngnd6gprptrpg5bdftnsgvbq571w5xw0ngskzd7qt1v8`,VITE_PUBLIC_POSTHOG_API_HOST:`https://42.entire.io`,VITE_PUBLIC_POSTHOG_KEY:`phc_A5KZSH9jMfa08S7clCw81xkgq96Cq68x7c3mgBs5Tsh`,VITE_PUBLIC_POSTHOG_UI_HOST:`https://eu.posthog.com`}.VITE_PUBLIC_POSTHOG_API_HOST,ui_host:{BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,TSS_DEV_SERVER:`false`,TSS_DEV_SSR_STYLES_BASEPATH:`/`,TSS_DEV_SSR_STYLES_ENABLED:`true`,TSS_INLINE_CSS_ENABLED:`false`,TSS_ROUTER_BASEPATH:``,TSS_SERVER_FN_BASE:`/_serverFn/`,VITE_HONEYCOMB_API_KEY:`hcaik_01kp4hznfdwt19ngnd6gprptrpg5bdftnsgvbq571w5xw0ngskzd7qt1v8`,VITE_PUBLIC_POSTHOG_API_HOST:`https://42.entire.io`,VITE_PUBLIC_POSTHOG_KEY:`phc_A5KZSH9jMfa08S7clCw81xkgq96Cq68x7c3mgBs5Tsh`,VITE_PUBLIC_POSTHOG_UI_HOST:`https://eu.posthog.com`}.VITE_PUBLIC_POSTHOG_UI_HOST,defaults:`2025-05-24`,capture_exceptions:!0,debug:lD,persistence:tw(),cookieless_mode:nw(),opt_out_capturing_by_default:lD,disable_session_recording:lD,loaded:aw},children:(0,H.jsx)(cD,{children:e})})]})})}var dD=ls(`/about`)({component:ds(()=>ov(()=>import(`./route-Dr0pe71u.js`),__vite__mapDeps([4,1])),`component`)}),fD=ls(`/_content`)({component:ds(()=>ov(()=>import(`./route-PRZxtGPR.js`),__vite__mapDeps([5,1])),`component`)}),pD=5119,mD=`/_w/hero-bot-B37PNb0H.avif`,hD=`https://entire.io`,gD=`Entire Blog`;`${hD}`;var _D=`${hD}/feed.xml`;`${hD}`;var vD={rel:`alternate`,type:`application/rss+xml`,title:gD,href:_D},yD={rel:`canonical`,href:`https://entire.io`},bD={rel:`preload`,href:mD,as:`image`,type:`image/avif`,fetchPriority:`high`};function xD(){return{links:[bD,vD]}}function SD(){return{stars:pD}}var CD=ls(`/`)({staticData:{header:`hero`},head:()=>{let e=xD();return{...e,links:[yD,...e.links]}},loader:SD,component:ds(()=>ov(()=>import(`./routes-DoTAFzF9.js`),__vite__mapDeps([6,1,7,2,3,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])),`component`)}),wD=ls(`/about/`)({staticData:{header:`hero`},head:()=>{let e=xD();return{...e,links:[yD,...e.links]}},loader:SD,component:ds(()=>ov(()=>import(`./about-DWn0OVTy.js`),__vite__mapDeps([24,1,7,2,3,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])),`component`)}),TD=10;function ED(e){let t=e.image||`https://entire.io/images/og/home.png`,n=t.startsWith(`/`)?`https://entire.io${t}`:t,r=`${n}${n.includes(`?`)?`&`:`?`}v=${TD}`,i=e.imageAlt||e.title;return{meta:[{title:e.title.includes(`Entire`)?e.title:`${e.title} · Entire`},{name:`description`,content:e.description},{name:`robots`,content:e.noindex?`noindex, follow`:`index, follow`},{property:`og:title`,content:e.title},{property:`og:description`,content:e.description},{property:`og:url`,content:e.url},{property:`og:image`,content:r},{property:`og:image:alt`,content:i},{property:`og:image:width`,content:`1200`},{property:`og:image:height`,content:`630`},{property:`og:type`,content:e.type||`website`},{property:`og:site_name`,content:`Entire`},{property:`og:locale`,content:`en_US`},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:title`,content:e.title},{name:`twitter:description`,content:e.description},{name:`twitter:image`,content:r},{name:`twitter:image:alt`,content:i},...e.extra||[]],links:[{rel:`canonical`,href:e.url},...e.extraLinks||[]]}}var DD=ls(`/about/vision/`)({head:()=>ED({title:`Vision`,description:`The world's next developer platform, where agents and humans can collaborate, learn and ship together.`,url:`https://entire.io/about/vision`,image:`https://entire.io/images/og/vision.png`}),component:ds(()=>ov(()=>import(`./vision-CCcQMTVQ.js`),__vite__mapDeps([25,1,26,17])),`component`)}),OD=ls(`/about/projects/`)({head:()=>
255ED({title:`Projects · Entire`,description:`Git hosting, Git sync, Sessions, Skills, and the CLI â the building blocks of a developer platform where agents and humans collaborate.`,url:`https://entire.io/about/projects`}),component:ds(()=>ov(()=>import(`./projects-DzFvQA_8.js`),__vite__mapDeps([27,1,8,2,3,9,19,21,12,17])),`component`)}),kD=ls(`/about/india/`)({head:()=>ED({title:`Entire in India`,description:`The fastest Git hosting platform in India.`,url:`https://entire.io/about/india`,image:`https://entire.io/images/og/india.png`}),component:ds(()=>ov(()=>import(`./india-wpWCj3AS.js`),__vite__mapDeps([28,1,2,29,12,17,18,30,22])),`component`)}),AD=ls(`/about/company/`)({head:()=>ED({title:`Company`,description:`A globally distributed, remote-first team building where humans and agents collaborate, learn, and ship together.`,url:`https://entire.io/about/company`,image:`https://entire.io/images/og/company.png`}),component:ds(()=>ov(()=>import(`./company-B1IT_AfJ.js`),__vite__mapDeps([31,1,26,17])),`component`)}),jD=ls(`/about/cli/`)({head:()=>ED({title:`Entire CLI`,description:`Capture agent sessions alongside every commit with the open-source Entire CLI.`,url:`https://entire.io/about/cli`}),loader:()=>({stars:pD}),component:ds(()=>ov(()=>import(`./cli-pTnj6CVI.js`),__vite__mapDeps([32,1,15,2,8,3,9,16,17,18,21,12,30])),`component`)}),MD=e({default:()=>PD,frontmatter:()=>void 0});function ND(e){let t={a:`a`,em:`em`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.h1,{children:`Terms of Service`}),` 256`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Last updated: 09 February 2026`})}),` 257`,(0,H.jsx)(t.p,{children:`Please read these terms and conditions carefully before using Our Service.`}),` 258`,(0,H.jsx)(t.h2,{children:`Interpretation and Definitions`}),` 259`,(0,H.jsx)(t.h3,{children:`Interpretation`}),` 260`,(0,H.jsx)(t.p,{children:`The words whose initial letters are capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.`}),` 261`,(0,H.jsx)(t.h3,{children:`Definitions`}),` 262`,(0,H.jsx)(t.p,{children:`For the purposes of these Terms and Conditions:`}),` 263`,(0,H.jsxs)(t.ul,{children:[` 264`,(0,H.jsxs)(t.li,{children:[` 265`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Affiliate`}),` means an entity that controls, is controlled by, or is under common control with a party, where "control" means ownership of 50% or more of the shares, equity interest or other securities entitled to vote for election of directors or other managing authority.`]}),` 266`]}),` 267`,(0,H.jsxs)(t.li,{children:[` 268`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Account`}),` means a unique account created for You to access our Service or parts of our Service.`]}),` 269`]}),` 270`,(0,H.jsxs)(t.li,{children:[` 271`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Country`}),` refers to: Delaware, United States`]}),` 272`]}),` 273`,(0,H.jsxs)(t.li,{children:[` 274`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Company`}),` (referred to as either "the Company", "We", "Us" or "Our" in these Terms and Conditions) refers to Entire Inc, 1209 Orange Street, City of Wilmington, County of New Castle, Delaware 19801.`]}),` 275`]}),` 276`,(0,H.jsxs)(t.li,{children:[` 277`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Content`}),` refers to content such as text, images, or other information that can be posted, uploaded, linked to or otherwise made available by You, regardless of the form of that content.`]}),` 278`]}),` 279`,(0,H.jsxs)(t.li,{children:[` 280`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Device`}),` means any device that can access the Service such as a computer, a cell phone or a digital tablet.`]}),` 281`]}),` 282`,(0,H.jsxs)(t.li,{children:[` 283`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Feedback`}),` means feedback, innovations or suggestions sent by You regarding the attributes, performance or features of our Service.`]}),` 284`]}),` 285`,(0,H.jsxs)(t.li,{children:[` 286`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Service`}),` refers to the Website.`]}),` 287`]}),` 288`,(0,H.jsxs)(t.li,{children:[` 289`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Terms and Conditions`}),` (also referred to as "Terms") means these Terms and Conditions, including any documents expressly incorporated by reference, which govern Your access to and use of the Service and form the entire agreement between You and the Company regarding the Service.`]}),` 290`]}),` 291`,(0,H.jsxs)(t.li,{children:[` 292`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Third-Party Social Media Service`}),` means any services or content (including data, information, products or services) provided by a third party that is displayed, included, made available, or linked to through the Service.`]}),` 293`]}),` 294`,(0,H.jsxs)(t.li,{children:[` 295`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Website`}),` refers to Entire, accessible from `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`https://entire.io`})]}),` 296`]}),` 297`,(0,H.jsxs)(t.li,{children:[` 298`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`You`}),` means the individual accessing or using the Service, or the company, or other legal entity on behalf of which such individual is accessing or using the Service, as applicable.`]}),` 299`]}),` 300`]}),` 301`,(0,H.jsx)(t.h2,{children:`Acknowledgment`}),` 302`,(0,H.jsx)(t.p,{children:`These are the Terms and Conditions governing the use of this Service and the agreement between You and the Company. These Terms and Conditions set out the rights and obligations of all users regarding the use of the Service.`}),` 303`,(0,H.jsx)(t.p,{children:`Your access to and use of the Service is conditioned on Your acceptance of and compliance with these Terms and Conditions. These Terms and Conditions apply to all visitors, users and others who access or use the Service.`}),` 304`,(0,H.jsx)(t.p,{children:`By accessing or using the Service You agree to be bound by these Terms and Conditions. If You disagree with any part of these Terms and Conditions then You may not access the Service.`}),` 305`,(0,H.jsx)(t.p,{children:`You represent that you are over the age of 18. The Company does not permit those under 18 to use the Service.`}),` 306`,(0,H.jsx)(t.p,{children:`Your access to and use of the Service is also subject to Our Privacy Policy, which describes how We collect, use, and disclose personal information. Please read Our Privacy Policy carefully before using Our Service.`}),` 307`,(0,H.jsx)(t.h2,{children:`User Accounts`}),` 308`,(0,H.jsx)(t.p,{children:`When You create an Account with Us, You must provide Us information that is accurate, complete, and current at all times. Failure to do so constitutes a breach of the Terms, which may result in immediate termination of Your Account on Our Service.`}),` 309`,(0,H.jsx)(t.p,{children:`You are responsible for safeguarding the password that You use to access the Service and for any activities or actions under Your password, whether Your password is with Our Service or a Third-Party Social Media Service.`}),` 310`,(0,H.jsx)(t.p,{children:`You agree not to disclose Your password to any third party. You must notify Us immediately upon becoming aware of any breach of security or unauthorized use of Your Account.`}),` 311`,(0,H.jsx)(t.p,{children:`You may not use as a username the name of another person or entity or that is not lawfully available for use, a name or trademark that is subject to any rights of another person or entity other than You without appropriate authorization, or a name that is otherwise offensive, vulgar or obscene.`}),`
312`,(0,H.jsx)(t.h3,{children:`Social Login and Linked Accounts`}),` 313`,(0,H.jsx)(t.p,{children:`If the Service allows You to sign in, connect, or otherwise interact with a Third-Party Social Media Service, You authorize the Company to access and use information made available by that Third-Party Social Media Service in accordance with Our Privacy Policy and Your settings with that Third-Party Social Media Service.`}),` 314`,(0,H.jsx)(t.p,{children:`The Company does not control and is not responsible for the availability, accuracy, or content of any Third-Party Social Media Service, and Your relationship with that Third-Party Social Media Service is governed by its own terms and policies.`}),` 315`,(0,H.jsx)(t.h2,{children:`Content`}),` 316`,(0,H.jsx)(t.h3,{children:`Your Right to Post Content`}),` 317`,(0,H.jsx)(t.p,{children:`Our Service allows You to post Content. You are responsible for the Content that You post to the Service, including its legality, reliability, and appropriateness.`}),` 318`,(0,H.jsx)(t.p,{children:`By posting Content to the Service, You grant Us the right and license to use, modify, publicly perform, publicly display, reproduce, and distribute such Content on and through the Service. You retain any and all of Your rights to any Content You submit, post or display on or through the Service and You are responsible for protecting those rights. You agree that this license includes the right for Us to make Your Content available to other users of the Service, who may also use Your Content subject to these Terms.`}),` 319`,(0,H.jsx)(t.p,{children:`You represent and warrant that: (i) the Content is Yours (You own it) or You have the right to use it and grant Us the rights and license as provided in these Terms, and (ii) the posting of Your Content on or through the Service does not violate the privacy rights, publicity rights, copyrights, contract rights or any other rights of any person.`}),` 320`,(0,H.jsx)(t.h3,{children:`Content Restrictions`}),` 321`,(0,H.jsx)(t.p,{children:`The Company is not responsible for the content of the Service's users. You expressly understand and agree that You are solely responsible for the Content and for all activity that occurs under Your Account, whether done so by You or any third person using Your Account.`}),` 322`,(0,H.jsx)(t.p,{children:`You may not transmit any Content that is unlawful, offensive, upsetting, intended to disgust, threatening, libelous, defamatory, obscene or otherwise objectionable. Examples of such objectionable Content include, but are not limited to, the following:`}),` 323`,(0,H.jsxs)(t.ul,{children:[` 324`,(0,H.jsx)(t.li,{children:`Unlawful or promoting unlawful activity.`}),` 325`,(0,H.jsx)(t.li,{children:`Defamatory, discriminatory, or mean-spirited content, including references or commentary about religion, race, sexual orientation, gender, national/ethnic origin, or other targeted groups.`}),` 326`,(0,H.jsx)(t.li,{children:`Spam, machine â or randomly â generated, constituting unauthorized or unsolicited advertising, chain letters, any other form of unauthorized solicitation, or any form of lottery or gambling.`}),` 327`,(0,H.jsx)(t.li,{children:`Containing or installing any viruses, worms, malware, trojan horses, or other content that is designed or intended to disrupt, damage, or limit the functioning of any software, hardware or telecommunications equipment or to damage or obtain unauthorized access to any data or other information of a third person.`}),` 328`,(0,H.jsx)(t.li,{children:`Infringing on any proprietary rights of any party, including patent, trademark, trade secret, copyright, right of publicity or other rights.`}),` 329`,(0,H.jsx)(t.li,{children:`Impersonating any person or entity including the Company and its employees or representatives.`}),` 330`,(0,H.jsx)(t.li,{children:`Violating the privacy of any third person.`}),` 331`,(0,H.jsx)(t.li,{children:`False information and features.`}),` 332`]}),` 333`,(0,H.jsx)(t.p,{children:`The Company reserves the right, but not the obligation, to, in its sole discretion, determine whether or not any Content is appropriate and complies with these Terms, refuse or remove this Content. The Company further reserves the right to make formatting and edits and change the manner of any Content. The Company can also limit or revoke the use of the Service if You post such objectionable Content.
334As the Company cannot control all content posted by users and/or third parties on the Service, you agree to use the Service at your own risk. You understand that by using the Service You may be exposed to content that You may find offensive, indecent, incorrect or objectionable, and You agree that under no circumstances will the Company be liable in any way for any content, including any errors or omissions in any content, or any loss or damage of any kind incurred as a result of your use of any content.`}),` 335`,(0,H.jsx)(t.h3,{children:`Content Backups`}),` 336`,(0,H.jsx)(t.p,{children:`Although regular backups of Content are performed, the Company does not guarantee there will be no loss or corruption of data.`}),` 337`,(0,H.jsx)(t.p,{children:`Corrupt or invalid backup points may be caused by, without limitation, Content that is corrupted prior to being backed up or that changes during the time a backup is performed.`}),` 338`,(0,H.jsx)(t.p,{children:`The Company will provide support and attempt to troubleshoot any known or discovered issues that may affect the backups of Content. But You acknowledge that the Company has no liability related to the integrity of Content or the failure to successfully restore Content to a usable state.`}),` 339`,(0,H.jsx)(t.p,{children:`You agree to maintain a complete and accurate copy of any Content in a location independent of the Service.`}),` 340`,(0,H.jsx)(t.h2,{children:`Copyright Policy`}),` 341`,(0,H.jsx)(t.h3,{children:`Intellectual Property Infringement`}),` 342`,(0,H.jsx)(t.p,{children:`We respect the intellectual property rights of others. It is Our policy to respond to any claim that Content posted on the Service infringes a copyright or other intellectual property infringement of any person.`}),` 343`,(0,H.jsxs)(t.p,{children:[`If You are a copyright owner, or authorized on behalf of one, and You believe that the copyrighted work has been copied in a way that constitutes copyright infringement that is taking place through the Service, You must submit Your notice in writing to the attention of our copyright agent via email at `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),` and include in Your notice a detailed description of the alleged infringement.`]}),` 344`,(0,H.jsx)(t.p,{children:`You may be held accountable for damages (including costs and attorneys' fees) for misrepresenting that any Content is infringing Your copyright.`}),` 345`,(0,H.jsx)(t.h3,{children:`DMCA Notice and DMCA Procedure for Copyright Infringement Claims`}),` 346`,(0,H.jsx)(t.p,{children:`You may submit a notification pursuant to the Digital Millennium Copyright Act (DMCA) by providing our Copyright Agent with the following information in writing (see 17 U.S.C 512(c)(3) for further detail):`}),` 347`,(0,H.jsxs)(t.ul,{children:[` 348`,(0,H.jsx)(t.li,{children:`An electronic or physical signature of the person authorized to act on behalf of the owner of the copyright's interest.`}),` 349`,(0,H.jsx)(t.li,{children:`A description of the copyrighted work that You claim has been infringed, including the URL (i.e., web page address) of the location where the copyrighted work exists or a copy of the copyrighted work.`}),` 350`,(0,H.jsx)(t.li,{children:`Identification of the URL or other specific location on the Service where the material that You claim is infringing is located.`}),` 351`,(0,H.jsx)(t.li,{children:`Your address, telephone number, and email address.`}),` 352`,(0,H.jsx)(t.li,{children:`A statement by You that You have a good faith belief that the disputed use is not authorized by the copyright owner, its agent, or the law.`}),` 353`,(0,H.jsx)(t.li,{children:`A statement by You, made under penalty of perjury, that the above information in Your notice is accurate and that You are the copyright owner or authorized to act on the copyright owner's behalf.`}),` 354`]}),` 355`,(0,H.jsxs)(t.p,{children:[`You can contact our copyright agent via email at `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`. 356Upon receipt of a notification, the Company will take whatever action, in its sole discretion, it deems appropriate, including removal of the challenged content from the Service.`]}),` 357`,(0,H.jsx)(t.h2,{children:`Intellectual Property`}),` 358`,(0,H.jsx)(t.p,{children:`The Service and its original content (excluding Content provided by You or other users), features and functionality are and will remain the exclusive property of the Company and its licensors.`}),` 359`,(0,H.jsx)(t.p,{children:`The Service is protected by copyright, trademark, and other laws of both the Country and foreign countries.`}),` 360`,(0,H.jsx)(t.p,{children:`Our trademarks and trade dress may not be used in connection with any product or service without the prior written consent of the Company.`}),` 361`,(0,H.jsx)(t.h2,{children:`Your Feedback to Us`}),` 362`,(0,H.jsx)(t.p,{children:`You assign all rights, title and interest in any Feedback You provide the Company. If for any reason such assignment is ineffective, You agree to grant the Company a non-exclusive, perpetual, irrevocable, royalty free, worldwide right and license to use, reproduce, disclose, sub-license, distribute, modify and exploit such Feedback without restriction.`}),` 363`,(0,H.jsx)(t.h2,{children:`Links to Other Websites`}),` 364`,(0,H.jsx)(t.p,{children:`Our Service may contain links to third-party websites or services that are not owned or c
364ontrolled by the Company.`}),` 365`,(0,H.jsx)(t.p,{children:`The Company has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any third-party websites or services. You further acknowledge and agree that the Company shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with the use of or reliance on any such content, goods or services available on or through any such websites or services.`}),` 366`,(0,H.jsx)(t.p,{children:`We strongly advise You to read the terms and conditions and privacy policies of any third-party websites or services that You visit.`}),` 367`,(0,H.jsx)(t.h3,{children:`Links from a Third-Party Social Media Service`}),` 368`,(0,H.jsx)(t.p,{children:`The Service may display, include, make available, or link to content or services provided by a Third-Party Social Media Service. A Third-Party Social Media Service is not owned or controlled by the Company, and the Company does not endorse or assume responsibility for any Third-Party Social Media Service.`}),` 369`,(0,H.jsx)(t.p,{children:`You acknowledge and agree that the Company shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with Your access to or use of any Third-Party Social Media Service, including any content, goods, or services made available through them. Your use of any Third-Party Social Media Service is governed by that Third-Party Social Media Service's terms and privacy policies.`}),` 370`,(0,H.jsx)(t.h2,{children:`Termination`}),` 371`,(0,H.jsx)(t.p,{children:`We may terminate or suspend Your Account immediately, without prior notice or liability, for any reason whatsoever, including without limitation if You breach these Terms and Conditions.`}),` 372`,(0,H.jsx)(t.p,{children:`Upon termination, Your right to use the Service will cease immediately. If You wish to terminate Your Account, You may simply discontinue using the Service.`}),` 373`,(0,H.jsx)(t.h2,{children:`Limitation of Liability`}),` 374`,(0,H.jsx)(t.p,{children:`Notwithstanding any damages that You might incur, the entire liability of the Company and any of its suppliers under any provision of these Terms and Your exclusive remedy for all of the foregoing shall be limited to the amount actually paid by You through the Service or 100 USD if You haven't purchased anything through the Service.`}),` 375`,(0,H.jsx)(t.p,{children:`To the maximum extent permitted by applicable law, in no event shall the Company or its suppliers be liable for any special, incidental, indirect, or consequential damages whatsoever (including, but not limited to, damages for loss of profits, loss of data or other information, for business interruption, for personal injury, loss of privacy arising out of or in any way related to the use of or inability to use the Service, third-party software and/or third-party hardware used with the Service, or otherwise in connection with any provision of these Terms), even if the Company or any supplier has been advised of the possibility of such damages and even if the remedy fails of its essential purpose.`}),` 376`,(0,H.jsx)(t.p,{children:`Some states do not allow the exclusion of implied warranties or limitation of liability for incidental or consequential damages, which means that some of the above limitations may not apply. In these states, each party's liability will be limited to the greatest extent permitted by law.`}),` 377`,(0,H.jsx)(t.h2,{children:`"AS IS" and "AS AVAILABLE" Disclaimer`}),` 378`,(0,H.jsx)(t.p,{children:`The Service is provided to You "AS IS" and "AS AVAILABLE" and with all faults and defects without warranty of any kind. To the maximum extent permitted under applicable law, the Company, on its own behalf and on behalf of its Affiliates and its and their respective licensors and service providers, expressly disclaims all warranties, whether express, implied, statutory or otherwise, with respect to the Service, including all implied warranties of merchantability, fitness for a particular purpose, title and non-infringement, and warranties that may arise out of course of dealing, course of performance, usage or trade practice. Without limitation to the foregoing, the Company provides no warranty or undertaking, and makes no representation of any kind that the Service will meet Your requirements, achieve any intended results, be compatible or work with any other software, applications, systems or services, operate without interruption, meet any performance or reliability standards or be error free or that any errors or defects can or will be corrected.`}),` 379`,(0,H.jsx)(t.p,{children:`Without limiting the foregoing, neither the Company nor any of the company's provider makes any representation or warranty of any kind, express or implied: (i) as to the operation or availability of the Service, or the information, content, and materials or products included thereon; (ii) that the Service will be uninterrupted or error-free; (iii) as to the accuracy, reliability, or currency of any information or content provided through the Service; or (iv) that the Service, its servers, the content, or e-mails sent from or on behalf of the Company are free of viruses, scripts, trojan horses, worms, malware, timebombs or other harmful components.`}),` 380`,(0,H.jsx)(t.p,{children:`Some jurisdictions do not allow the exclusion of certain types of warranties or limitations on applicable statutory rights of a consumer, so some or all of the above exclusions and limitations may not apply to You. But in such a case the exclusions and limitations set forth in this section shall be applied to the greatest extent enforceable under applicable law.`}),` 381`,(0,H.jsx)(t.h2,{children:`Governing Law`}),` 382`,(0,H.jsx)(t.p,{children:`The laws of the Country, excluding its conflicts of law rules, shall govern these Terms and Your use of the Service. Your use of the Application may also be subject to other local, state, national, or international laws.`}),` 383`,(0,H.jsx)(t.h2,{children:`Disputes Resolution`}),` 384`,(0,H.jsx)(t.p,{children:`If You have any concern or dispute about the Service, You agree to first try to resolve the dispute informally by contacting the Company.`}),` 385`,(0,H.jsx)(t.h2,{children:`For European Union (EU) Users`}),` 386`,(0,H.jsx)(t.p,{children:`If You are a European Union consumer, you will benef
386it from any mandatory provisions of the law of the country in which You are resident.`}),` 387`,(0,H.jsx)(t.h2,{children:`United States Legal Compliance`}),` 388`,(0,H.jsx)(t.p,{children:`You represent and warrant that (i) You are not located in a country that is subject to the United States government embargo, or that has been designated by the United States government as a "terrorist supporting" country, and (ii) You are not listed on any United States government list of prohibited or restricted parties.`}),` 389`,(0,H.jsx)(t.h2,{children:`Severability and Waiver`}),` 390`,(0,H.jsx)(t.h3,{children:`Severability`}),` 391`,(0,H.jsx)(t.p,{children:`If any provision of these Terms is held to be unenforceable or invalid, such provision will be changed and interpreted to accomplish the objectives of such provision to the greatest extent possible under applicable law and the remaining provisions will continue in full force and effect.`}),` 392`,(0,H.jsx)(t.h3,{children:`Waiver`}),` 393`,(0,H.jsx)(t.p,{children:`Except as provided herein, the failure to exercise a right or to require performance of an obligation under these Terms shall not affect a party's ability to exercise such right or require such performance at any time thereafter nor shall the waiver of a breach constitute a waiver of any subsequent breach.`}),` 394`,(0,H.jsx)(t.h2,{children:`Translation Interpretation`}),` 395`,(0,H.jsx)(t.p,{children:`These Terms and Conditions may have been translated if We have made them available to You on our Service. 396You agree that the original English text shall prevail in the case of a dispute.`}),` 397`,(0,H.jsx)(t.h2,{children:`Changes to These Terms and Conditions`}),` 398`,(0,H.jsx)(t.p,{children:`We reserve the right, at Our sole discretion, to modify or replace these Terms at any time. If a revision is material We will make reasonable efforts to provide at least 30 days' notice prior to any new terms taking effect. What constitutes a material change will be determined at Our sole discretion.`}),` 399`,(0,H.jsx)(t.p,{children:`By continuing to access or use Our Service after those revisions become effective, You agree to be bound by the revised terms. If You do not agree to the new terms, in whole or in part, please stop using the Service.`}),` 400`,(0,H.jsx)(t.h2,{children:`Contact Us`}),` 401`,(0,H.jsx)(t.p,{children:`If you have any questions about these Terms and Conditions, You can contact us:`}),` 402`,(0,H.jsxs)(t.ul,{children:[` 403`,(0,H.jsxs)(t.li,{children:[`By email: `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`})]}),` 404`]})]})}function PD(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(ND,{...e})}):ND(e)}var FD=e({default:()=>LD,frontmatter:()=>void 0});function ID(e){let t={a:`a`,blockquote:`blockquote`,em:`em`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.h1,{children:`Terms of Service`}),` 405`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Last updated: 06 July 2026`})}),` 406`,(0,H.jsx)(t.h2,{children:`1. Introduction`}),` 407`,(0,H.jsx)(t.p,{children:`Welcome to Entire!`}),` 408`,(0,H.jsxs)(t.p,{children:[`These Terms of Service ("`,(0,H.jsx)(t.strong,{children:`Terms`}),`") apply to your use or access to Entire CLI or the Entire.io website accessible from `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`https://entire.io`}),` (called "`,(0,H.jsx)(t.strong,{children:`our services`}),`").`]}),` 409`,(0,H.jsxs)(t.p,{children:[`When we say "`,(0,H.jsx)(t.strong,{children:`we`}),`", "`,(0,H.jsx)(t.strong,{children:`us`}),`" or "`,(0,H.jsx)(t.strong,{children:`our`}),`" in these Terms, that means `,(0,H.jsx)(t.strong,{children:`Entire Inc`}),`, registered in the State of Delaware, United States.`]}),` 410`,(0,H.jsxs)(t.p,{children:[`"`,(0,H.jsx)(t.strong,{children:`you`}),`" means the individual accessing or using our services (or the company or other legal entity on behalf of which you are accessing or using our services, as applicable).`]}),` 411`,(0,H.jsx)(t.p,{children:`We've included summaries at the start of each section to make these Terms easier to understand. But bear in mind that it's the full legal terms in each section that are legally binding and govern your use of our services.`}),` 412`,(0,H.jsxs)(t.p,{children:[`By accessing or using our services you agree to be bound by these Terms and our `,(0,H.jsx)(t.a,{href:`/privacy`,children:`Privacy Policy`}
412),`, which describes how we collect, use, and disclose personal information. Our `,(0,H.jsx)(t.a,{href:`/dpa`,children:`Data Processing Agreement`}),` forms part of your agreement with us and includes specific obligations with respect to the processing of personal information that we collect from you.`]}),` 413`,(0,H.jsx)(t.p,{children:`You must be 16 or over to use our services.`}),` 414`,(0,H.jsx)(t.h2,{children:`2. User Accounts`}),` 415`,(0,H.jsxs)(t.blockquote,{children:[` 416`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` You're responsible for keeping your account information accurate and your password secure.`]}),` 417`]}),` 418`,(0,H.jsx)(t.h3,{children:`2.1 Account creation`}),` 419`,(0,H.jsx)(t.p,{children:`When you create an account, you must provide accurate, complete, and current information. Failure to do so constitutes a breach of the Terms, which may result in immediate termination of your account.`}),` 420`,(0,H.jsx)(t.h3,{children:`2.2 Account login requirements`}),` 421`,(0,H.jsx)(t.p,{children:`You are responsible for keeping your account password confidential. You are responsible for any activities or actions under account and you must notify us immediately upon becoming aware of any unauthorized use of your account.`}),` 422`,(0,H.jsx)(t.p,{children:`You may not use as a username for your account:`}),` 423`,(0,H.jsxs)(t.ol,{children:[` 424`,(0,H.jsxs)(t.li,{children:[` 425`,(0,H.jsx)(t.p,{children:`a name that is offensive, vulgar or obscene; or`}),` 426`]}),` 427`,(0,H.jsxs)(t.li,{children:[` 428`,(0,H.jsx)(t.p,{children:`any username that is not lawfully available for use or may infringe another's rights, for example another person's name or trademark.`}),` 429`]}),` 430`]}),` 431`,(0,H.jsx)(t.h3,{children:`2.3 Account sharing and automated access`}),` 432`,(0,H.jsx)(t.p,{children:`A single set of personal login credentials must not be shared among multiple people. Each individual who uses our services should have their own account.`}),` 433`,(0,H.jsx)(t.p,{children:`You may authorize automated agents, tools, or integrations (for example, AI agents, CI systems, or other automated tooling) to access our services under your account or through credentials you issue. You remain responsible for everything done through your account or such credentials, including actions taken by those agents, tools, or integrations, and for ensuring they comply with these Terms.`}),` 434`,(0,H.jsx)(t.h2,{children:`3. Your Content`}),` 435`,(0,H.jsxs)(t.blockquote,{children:[` 436`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` You own your content. You give us a license to use it to provide our services.`]}),` 437`]}),` 438`,(0,H.jsx)(t.h3,{children:`3.1 Your right to post content and your License to Us`}),` 439`,(0,H.jsxs)(t.p,{children:[`Our services allow you to post or link to text, images, or other material (called "`,(0,H.jsx)(t.strong,{children:`your content`}),`" in these Terms). You are solely responsible for your content. By posting your content to our services, you grant us a non-exclusive, worldwide, royalty-free license to host, store, parse, reproduce, display, modify (such as for formatting or technical adaptation), and transmit your content as necessary to operate, provide, and improve our services. You retain your rights to your content and you are responsible for protecting your rights.`]}),` 440`,(0,H.jsx)(t.p,{children:`To the extent that our services make your content available to other users (for example, sharing or collaboration features), this license includes the right for us to do so, and those users may use your content subject to these Terms and to the access controls you configure.`}),` 441`,(0,H.jsx)(t.p,{children:`You represent and warrant that: (i) you own or have the right to use your content; (ii) you have the power to grant us the rights and license as provided in these Terms; and (iii) the posting of your content on or through our services will not violate any third party's privacy, intellectual property, publicity or contract rights.`}),` 442`,(0,H.jsx)(t.p,{children:`To the extent permitted by applicable law, you waive, or agree not to assert, any moral rights or analogous rights in any jurisdiction (such as rights of attribution or integrity) you may have in your content against us or our sublicensees, solely to the extent necessary to exercise the license granted in this section. Where such rights cannot be waived, you grant us a license to use your content consistent with those rights as necessary to provide our services.`}),` 443`,(0,H.jsx)(t.p,{children:`Where you direct us to import, mirror, or synchronize your content from a Third-Party Source, that imported content is governed by both this section and section 6 ("Third-Party Source Integrations") below.`}),` 444`,(0,H.jsx)(t.h3,{children:`3.2 Use of content for AI models`}),` 445`,(0,H.jsx)(t.p,{children:`We may use your content and imported content to operate AI features that you invoke as part of our services (for example, summarization, search, indexing, or analysis features).`}),` 446`,(0,H.jsx)(t.p,{children:`We do not use your content or imported content to train generative AI models for general use outside our services. Any use of your content for AI model training beyond what is described
446in this section requires your separate, affirmative opt-in.`}),` 447`,(0,H.jsx)(t.h3,{children:`3.3 Contributions to licensed repositories`}),` 448`,(0,H.jsx)(t.p,{children:`Whenever you add content to a repository that contains a license, you license your contribution under the terms of that license, and you represent that you have the right to do so. If you have a separate agreement governing your contribution (for example, a contributor license agreement), that agreement applies instead.`}),` 449`,(0,H.jsx)(t.h3,{children:`3.4 Private repositories`}),` 450`,(0,H.jsx)(t.p,{children:`We treat the contents of your private repositories as confidential, and we protect them from unauthorized use, access, or disclosure using at least a reasonable degree of care.`}),` 451`,(0,H.jsx)(t.p,{children:`We will not access the contents of your private repositories except:`}),` 452`,(0,H.jsxs)(t.ul,{children:[` 453`,(0,H.jsx)(t.li,{children:`to provide, maintain, or secure our services;`}),` 454`,(0,H.jsx)(t.li,{children:`for automated scanning or, where necessary, manual review for security vulnerabilities, malware, or content that violates these Terms or applicable law;`}),` 455`,(0,H.jsx)(t.li,{children:`to assist you with a support request;`}),` 456`,(0,H.jsx)(t.li,{children:`with your consent or at your direction (for example, when you invoke a feature that processes your content); or`}),` 457`,(0,H.jsx)(t.li,{children:`to comply with our legal obligations or a valid legal request.`}),` 458`]}),` 459`,(0,H.jsx)(t.p,{children:`Where you enable a feature that needs additional access to your private content, we will use that access only to provide that feature.`}),` 460`,(0,H.jsx)(t.h2,{children:`4. Acceptable Use`}),` 461`,(0,H.jsxs)(t.blockquote,{children:[` 462`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` You must not post unlawful, harmful, or objectionable material, do anything that might damage or interrupt our services.`]}),` 463`]}),` 464`,(0,H.jsx)(t.h3,{children:`4.1 Code of Conduct`}),` 465`,(0,H.jsxs)(t.p,{children:[`You agree to comply with our `,(0,H.jsx)(t.strong,{children:`Code of Conduct`}),`.`]}),` 466`,(0,H.jsx)(t.h3,{children:`4.2 Your responsibility for content`}),` 467`,(0,H.jsx)(t.p,{children:`You agree that you are solely responsible for your content and for all activity that occurs under your account, whether done so by you or any third person using your account.`}),` 468`,(0,H.jsx)(t.h3,{children:`4.3 Prohibited content`}),` 469`,(0,H.jsx)(t.p,{children:`You may not transmit any content that is unlawful, offensive, fraudulent, threatening, defamatory, discriminatory, obscene, infringing upon anyone's intellectual property, privacy or other rights, or that we otherwise reasonably consider objectionable.`}),` 470`,(0,H.jsx)(t.h3,{children:`4.4 Prohibited activity`}),` 471`,(0,H.jsx)(t.p,{children:`You may not transmit any content or do anything else that might damage, interfere with or interrupt our services. Examples of such activity would include:`}),` 472`,(0,H.jsxs)(t.ul,{children:[` 473`,(0,H.jsx)(t.li,{children:`circumventing, disabling, or interfer
473ing with security features of our services or accessing our services by unauthorized means;`}),` 474`,(0,H.jsx)(t.li,{children:`sending unauthorized or unsolicited advertising or other content; or`}),` 475`,(0,H.jsx)(t.li,{children:`introducing any viruses, worms, malware, trojan horses, or other content that is designed or intended to disrupt, damage, or limit the functioning of our services or obtain unauthorized access to any data or other information of a third person.`}),` 476`]}),` 477`,(0,H.jsx)(t.h3,{children:`4.5 Our rights in relation to content`}),` 478`,(0,H.jsx)(t.p,{children:`We reserve the right, but not the obligation, to, in our sole discretion, determine whether or not any content is appropriate and complies with these Terms, refuse or remove this content. We further reserve the right to make formatting and edits and change the manner of any content. We can also limit or revoke the use of our services if you post such objectionable content. As we cannot control all content posted by users and/or third parties on our services, you agree to use our services at your own risk. you understand that by using our services you may be exposed to content that you may find offensive, indecent, incorrect or objectionable, and you agree that under no circumstances will we be liable in any way for any content, including any errors or omissions in any content, or any loss or damage of any kind incurred as a result of your use of any content.`}),` 479`,(0,H.jsx)(t.h3,{children:`4.6 API and automated access`}),` 480`,(0,H.jsx)(t.p,{children:`We may make application programming interfaces (APIs) and other programmatic interfaces available for use with our services. When you use them:`}),` 481`,(0,H.jsxs)(t.ul,{children:[` 482`,(0,H.jsx)(t.li,{children:`you must not exceed any rate or usage limits we set, or use multiple accounts or credentials to evade them;`}),` 483`,(0,H.jsx)(t.li,{children:`you must not share access tokens or credentials in order to exceed those limits;`}),` 484`,(0,H.jsx)(t.li,{children:`you must not use our APIs to retrieve or harvest other users' personal information for purposes such as spam, recruiting, or selling that information; and`}),` 485`,(0,H.jsx)(t.li,{children:`we may suspend or limit your access if we determine, in our reasonable discretion, that your use is abusive, excessive, or harms our services or other users. Where practicable, we will attempt to notify you first.`}),` 486`]}),` 487`,(0,H.jsx)(t.h2,{children:`5. Content Backups`}),` 488`,(0,H.jsxs)(t.blockquote,{children:[` 489`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` We keep backups of content, but we're not responsible for data loss or corruption.`]}),` 490`]}),` 491`,(0,H.jsx)(t.p,{children:`Although regular backups of content are performed, we do not guarantee there will be no loss or corruption of data.`}),` 492`,(0,H.jsx)(t.p,{children:`Corrupt or invalid backup points may be caused by, without limitation, content that is corrupted prior to being backed up or that changes during the time a backup is performed.`}),` 493`,(0,H.jsx)(t.p,{children:`We will provide support and attempt to troubleshoot any known or discovered issues that may affect the backups of your content. But you acknowledge that we have no liability related to the integrity of your content or the failure to successfully restore your content to a usable state.`}),` 494`,(0,H.jsx)(t.p,{children:`You agree to maintain a complete and accurate copy of your content in a location independent of our services.`}),` 495`,(0,H.jsx)(t.h2,{children:`6. Third-Party Source Integrations`}),` 496`,(0,H.jsxs)(t.blockquote,{children:[` 497`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` When you connect a third-party source, you authorize us to import that c
497ontent.`]}),` 498`]}),` 499`,(0,H.jsx)(t.h3,{children:`6.1 Authorization`}),` 500`,(0,H.jsx)(t.p,{children:`You may authorize us to access a third-party platform or service (such as a code hosting provider, version control service, or issue tracker) and to import, mirror, or synchronize your content from that third-party source to our services. Such authorization is effected through the integration mechanism we make available (for example, an OAuth flow or application installation). you may revoke your authorization at any time through the authorization or installation controls provided by that Third-Party Source. Revocation takes effect when it is communicated to us by the third-party source and will stop further import, mirror, or synchronization from that Third-Party Source. Revocation does not, by itself, delete imported content we have already received; see our Privacy Policy for information about requesting deletion of such content. We will act on your authorization on your behalf and will not independently access a third-party source absent such authorization.`}),` 501`,(0,H.jsx)(t.h3,{children:`6.2 License for imported content`}),` 502`,(0,H.jsx)(t.p,{children:`With respect to imported content, you grant us the same rights and license set forth in section 3.1 ("Your right to post content"), as if such imported content had been posted by you directly to our services. This license includes the right for us to store, reproduce, transmit, and serve imported content on and through our services as necessary to operate the import, mirror, or synchronization you have authorized, including by maintaining redundant copies of such content consistent with the data-residency approach described in our Privacy Policy.`}),` 503`,(0,H.jsx)(t.h3,{children:`6.3 Your representations regarding imported content`}),` 504`,(0,H.jsx)(t.p,{children:`In addition to the representations set forth in section 3.1 ("Your right to post content"), you represent and warrant that:`}),` 505`,(0,H.jsxs)(t.ol,{children:[` 506`,(0,H.jsxs)(t.li,{children:[` 507`,(0,H.jsx)(t.p,{children:`you have the right to authorize the import, mirroring, or synchronization of the imported content to our services, including with respect to any third party whose contributions, copyrighted material, or other rights are embodied in such content, such as co-contributors to a repository;`}),` 508`]}),` 509`,(0,H.jsxs)(t.li,{children:[` 510`,(0,H.jsx)(t.p,{children:`your authorization of such import, mirroring, or synchronization, and our operation of the import, mirror, or synchronization in accordance with these Terms, is consistent with your agreements with, and the applicable terms of service and policies of, the relevant third-party source â including any organization, enterprise, or access-control policies that apply to you or to the imported content; and`}),` 511`]}),` 512`,(0,H.jsxs)(t.li,{children:[` 513`,(0,H.jsx)(t.p,{children:`you will promptly revoke your authorization and disconnect the integration if you cease to have the rights or permissions described in (1) or (2).`}),` 514`]}),` 515`]}),` 516`,(0,H.jsx)(t.h3,{children:`6.4 Third-party source relationship`}),` 517`,(0,H.jsx)(t.p,{children:`Your relationship with any third-party source is governed by its own terms and policies. We do not control and are not responsible for the Third-Party Source, its availability, or its handling of your data. Our obligations under these Terms extend only to our services and to imported content once it has been imported to our services.`}),` 518`,(0,H.jsx)(t.h2,{children:`7. Intellectual Property Rights Policy & Process`}),` 519`,(0,H.jsxs)(t.blockquote,{children:[` 520`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` If you think your copyright or other IP right has been infringed, you can tell us and we'll consider appropriate action`]}),` 521`]}),` 522`,(0,H.jsx)(t.h3,{children:`7.1 Intellectual property infringement`}),` 523`,(0,H.jsx)(t.p,{children:`We respect the intellectual property rights of others. It is our policy to respond to any claim that content posted on our services infringes a copyright or other intellectual property infringement of any person.`}),` 524`,(0,H.jsxs)(t.p,{children:[`If you are a copyright owner, or authorized on behalf of one, and you believe that the copyrighted work has been copied in a way that constitutes copyright infringement that is taking place through our services, you must submit your notice in writing to the attention of our copyright agent via email at `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),` and include in your notice a detailed description of the alleged infringement.`]}),` 525`,(0,H.jsx)(t.p,{children:`You may be held accountable for damages (including costs and attorneys' fees) for misrepresenting that any content is infringing your copyright.`}),` 526`,(0,H.jsx)(t.h3,{children:`7.2 DMCA procedure`}),` 527`,(0,H.jsx)(t.p,{children:`We apply the procedural requirements of the US Digital Millennium Copyright Act (DMCA) to deal with claims of copyright infringement. You may issue a notice under the DMCA even if you're not a US resident.`}),` 528`,(0,H.jsxs)(t.p,{children:[`You may submit a DMCA notice by providing us with the following information in writing (by email to `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`):`]}),` 529`,(0,H.jsxs)(t.ul,{children:[` 530`,(0,H.jsx)(t.li,{children:`An electronic or physical signature of the person authorized to act on behalf of the owner of the copyright's interest.`}),` 531`,(0,H.jsx)(t.li,{children:`A description of the copyrighted work that you claim has been infringed, including the URL (i.e., web page address) of the location where the copyrighted work exists or a copy of the copyrighted work.`}),` 532`,(0,H.jsx)(t.li,{children:`Identification of the URL or other specific location on our services where the material that you claim is infringing is located.`}),` 533`,(0,H.jsx)(t.li,{children:`your address, telephone number, and email address.`}),` 534`,(0,H.jsx)(t.li,{children:`A statement by you that you have a good faith belief that the disputed use is not authorized by the copyright owner, its agent, or the law.`}),` 535`,(0,H.jsx)(t.li,{children:`A statement by you, made under penalty of perjury, that the above information in your notice is accurate and that you are the copyright owner or authorized to act on the copyright owner's behalf.`}),` 536`]}),` 537`,(0,H.jsxs)(t.p,{children:[`you can contact our copyright agent via email at `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`. Upon receipt of a notification, we will take whatever action, in its sole discretion, it deems appropriate, including removal of the challenged content from our services.`]}),` 538`,(0,H.jsx)(t.h3,{children:`7.3 Counter-notice`}),` 539`,(0,H.jsxs)(t.p,{children:[`If you believe your content was removed (or access to it disabled) by mistake or misidentification, you may submit a counter-notice to us at `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),` with the following information:`]}),` 540`,(0,H.jsxs)(t.ul,{children:[` 541`,(0,H.jsx)(t.li,{children:`Your physical or electronic signature.`}),` 542`,(0,H.jsx)(t.li,{children:`Identification of the content that has been removed or to which access has been disabled and the location at which the content appeared before it was removed or disabled.`}),` 543`,(0,H.jsx)(t.li,{children:`A statement, under penalty of perjury, that you have a good-faith belief that the content was removed or disabled as a result of mistake or misidentification.`}),` 544`,(0,H.jsx)(t.li,{children:`Your name, address, and telephone number, a statement that you consent to the jurisdiction of the Federal District Court for the judicial district in which your address is located (or, if your address is outside the United States, for any judicial district in which we may be found), and a statement that you will accept service of process from the person who provided the original notification or an agent of such person.`}),` 545`]}),` 546`,(0,H.jsx)(t.p,{children:`Upon receipt of a valid counter-notice, we will follow the DMCA process, which may include restoring the removed content.`}),` 547`,(0,H.jsx)(t.h3,{children:`7.4 Repeat infringers`}),` 548`,(0,H.jsx)(t.p,{children:`It is our policy, in appropriate circumstances and at its sole discretion, to terminate the accounts of users who are determined to be repeat infringers of copyright or other intellectual property rights.`}),` 549`,(0,H.jsx)(t.h2,{children:`8. Our Intellectual Property Rights`}),` 550`,(0,H.jsxs)(t.blockquote,{children:[` 551`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` Our services and our content belongs to us.`]}),` 552`]}),` 553`,(0,H.jsx)(t.p,{children:`Our services, their features, functionality and original content (excluding your content and content provided by other users), are and will remain our property and/or the property of our licensors.`}),` 554`,(0,H.jsx)(t.p,{children:`Our services are protected by copyright, trademark, and other intellectual property rights recognized under the laws of the United States and our other countries of operation.`}),` 555`,(0,H.jsx)(t.p,{children:`our trademarks and trade dress may not be used in connection with any product or service without our prior written consent.`}),` 556`,(0,H.jsx)(t.h2,{children:`9. Your Feedback to Us`}),` 557`,(0,H.jsxs)(t.blockquote,{children:[` 558`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` Any feedback you give us becomes ours to use.`]}),` 559`]}),` 560`,(0,H.jsx)(t.p,{children:`You assign all rights, title and interest in any feedback, innovations or suggestions that you provide us. If for any reason such assignment is ineffective, you agree to grant us a non-exclusive, perpetual, irrevocable, royalty free, worldwide right and license to use, reproduce, disclose, sub-license, distribute, modify and exploit such feedback, innovations or suggestions without restriction.`}),` 561`,(0,H.jsx)(t.h2,{children:`10. Links to Other Websites or Third-Party Social Media services`}),` 562`,(0,H.jsxs)(t.blockquote,{children:[` 563`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` Our services may link to third-party websites or social media services that we don't control. We're not responsible for them.`]}),` 564`]}),` 565`,(0,H.jsx)(t.p,{children:`Our services may contain links to third-party websites or third-party social media services that are not owned or c
565ontrolled by us.`}),` 566`,(0,H.jsx)(t.p,{children:`We have no control over, and assume no responsibility for, the content, privacy policies, or practices of any third-party websites or third-party social media services. You further acknowledge and agree that we shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with the use of or reliance on any such content, goods or services available on or through any such websites or services.`}),` 567`,(0,H.jsx)(t.p,{children:`We strongly advise you to read the terms and conditions and privacy policies of any third-party websites or third-party social media services that you visit.`}),` 568`,(0,H.jsx)(t.p,{children:`If our services allows you to sign in, connect, or otherwise interact with a third-party social media service, you authorize us to access and use information made available by that third-party social media service in accordance with our Privacy Policy and your settings with that third-party social media service.`}),` 569`,(0,H.jsx)(t.h2,{children:`11. Termination`}),` 570`,(0,H.jsxs)(t.blockquote,{children:[` 571`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` Either you or us may end your services.`]}),` 572`]}),` 573`,(0,H.jsx)(t.h3,{children:`11.1 Termination rights`}),` 574`,(0,H.jsx)(t.p,{children:`We may terminate or suspend your account immediately, without prior notice, if you materially breach these Terms or if continued provision of our services to you is reasonably likely to cause harm to us, our other users, or third parties, or where required by law. Outside of these circumstances, we will provide reasonable notice before terminating or suspending your account.`}),` 575`,(0,H.jsx)(t.p,{children:`you may terminate your account at any time through our services or by contacting us.`}),` 576`,(0,H.jsx)(t.h3,{children:`11.2 Consequences of termination`}),` 577`,(0,H.jsx)(t.p,{children:`Upon termination, your right to use our services will cease immediately.`}),` 578`,(0,H.jsx)(t.p,{children:`Except where termination results from your material breach of these Terms or where retention is prohibited by law, we will, for a period of at least 30 days following termination, provide you with a reasonable opportunity to export your content from our services. After that period, we may delete your content; see our Privacy Policy for further information about retention and deletion.`}),` 579`,(0,H.jsx)(t.p,{children:`We will not delete content you have contributed to other users' repositories, or content of yours that other users have forked; that content remains available to those repositories and forks.`}),` 580`,(0,H.jsx)(t.h2,{children:`12. Limitations of Liability`}),` 581`,(0,H.jsxs)(t.blockquote,{children:[` 582`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` We cap our liability to you.`]}),` 583`]}),` 584`,(0,H.jsx)(t.p,{children:`Notwithstanding any damages that you might incur, our entire liability and any of our suppliers under any provision of these Terms and your exclusive remedy for all of the foregoing shall be limited to the amount actually paid by you through our services or 100 USD if you haven't purchased anything through our services.`}),` 585`,(0,H.jsx)(t.p,{children:`To the maximum extent permitted by applicable law, in no event shall we or our suppliers be liable for any special, incidental, indirect, or consequential damages whatsoever (including, but not limited to, damages for loss of profits, loss of data or other information, for business interruption, for personal injury, loss of privacy arising out of or in any way related to the use of or inability to use our services, third-party software and/or third-party hardware used with our services, or otherwise in connection with any provision of these Terms), even if we or any of our suppliers have been advised of the possibility of such damages and even if the remedy fails of its essential purpose.`}),` 586`,(0,H.jsx)(t.p,{children:`Some states do not allow the exclusion of implied warranties or limitation of liability for incidental or consequential damages, which means that some of the above limitations may not apply. In these states, each party's liability will be limited to the greatest extent permitted by law.`}),` 587`,(0,H.jsx)(t.h2,{children:`13. Indemnification`}),` 588`,(0,H.jsxs)(t.blockquote,{children:[` 589`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` You agree to cover our costs if someone makes a claim against us arising from something you've done (or not done).`]}),` 590`]}),` 591`,(0,H.jsx)(t.p,{children:`To the maximum extent permitted by applicable law, you agree to defend, indemnify, and hold us, our subsidiary companies and the officers, directors, employees, and agents of us and our subsidiary companies harmless from and against any and all claims, damages, losses, liabilities, costs, and expenses (including reasonable attorneys' fees) arising out of or related to:`}),` 592`,(0,H.jsxs)(t.ol,{children:[` 593`,(0,H.jsxs)(t.li,{children:[` 594`,(0,H.jsx)(t.p,{children:`your content or your imported content, including any claim that your content or your imported content infringes the intellectual property rights, privacy rights, publicity rights, or other rights of any third party (including any co-contributor or other person whose Personal Data or contributions are embodied in imported content);`}),` 595`]}),` 596`,(0,H.jsxs)(t.li,{children:[` 597`,(0,H.jsx)(t.p,{children:`your authorization of any third-party source integration, including any breach of your representations in section 6 ("Third-Party Source Integrations");`}),` 598`]}),` 599`,(0,H.jsxs)(t.li,{children:[` 600`,(0,H.jsx)(t.p,{children:`your use of our services in violation of these Terms or any applicable law; or`}),` 601`]}),` 602`,(0,H.jsxs)(t.li,{children:[` 603`,(0,H.jsx)(t.p,{children:`your violation of any rights of another person or entity.`}),` 604`]}),` 605`]}),` 606`,(0,H.jsx)(t.p,{children:`We will provide you with prompt written notice of any such claim and may, at its option, assume control of the defense and settlement of the claim. You may not settle any claim without our prior written consent if the settlement imposes any obligation or liability on us.`}),` 607`,(0,H.jsx)(t.h2,{children:`14. Disclaimers`}),` 608`,(0,H.jsxs)(t.blockquote,{children:[` 609`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` Our services are provided without warranties or guarantees.`]}),` 610`]}),` 611`,(0,H.jsx)(t.p,{children:`Our services are provided to you "AS IS" and "AS AVAILABLE" and with all faults and defects without warranty of any kind. To the maximum extent permitted under applicable law, we, on our own behalf and on behalf of our subsidiary companies and licensors and service providers of us and our subsidiary companies, expressly disclaim all warranties, whether express, implied, statutory or otherwise, with respect to our services, including all implied warranties of merchantability, fitness for a particular purpose, title and non-infringement, and warranties that may arise out of course of dealing, course of performance, usage or trade practice. Without limitation to the foregoing, we provide no warranty or undertaking, and makes no representation of any kind that our services will meet your requirements, achieve any intended results, be compatible or work with any other software, applications, systems or services, operate without interruption, meet any performance or reliability standards or be error free or that any errors or defects can or will be corrected.`}),` 612`,(0,H.jsx)(t.p,{children:`Without limiting the foregoing, neither we nor any of our licensors and service providers make any representation or warranty of any kind, express or implied: (i) as to the operation or availability of our services, or the information, content, and materials or products included thereon; (ii) that our services will be uninterrupted or error-free; (iii) as to the accuracy, reliability, or currency of any information or content provided through our services; or (iv) that our services, its servers, the content, or e-mails sent from or on behalf of us are free of viruses, scripts, trojan horses, worms, malware, timebombs or other harmful components.`}),` 613`,(0,H.jsx)(t.p,{children:`Some jurisdictions do not allow the exclusion of certain types of warranties or limitations on applicable statutory rights of a consumer, so some or all of the above exclusions and limitations may not apply to you. But in such a case the exclusions and limitations set forth in this section shall be applied to the greatest extent enforceable under applicable law.`}),` 614`,(0,H.jsx)(t.h2,{children:`15. Disputes Resolution`}),` 615`,(0,H.jsxs)(t.blockquote,{children:[` 616`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` Please contact us first to resolve any dispute.`]}),` 617`]}),` 618`,(0,H.jsx)(t.p,{children:`If you have any concern or dispute about our services, you agree to first try to resolve the dispute informally by contacting us.`}),` 619`,(0,H.jsx)(t.h2,{children:`16. United States Legal Compliance`}),` 620`,(0,H.jsxs)(t.blockquote,{children:[` 621`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` You're not in a country embargoed by the US or on another US government prohibited list.`]}),` 622`]}),` 623`,(0,H.jsx)(t.p,{children:`You represent and warrant that (i) you are not located in a country that is subject to the United States government embargo, or that has been designated by the United States government as a "terrorist supporting" country, and (ii) you are not listed on any United States government list of prohibited or restricted parties.`}),` 624`,(0,H.jsx)(t.h2,{children:`17. Changes to These Terms`}),` 625`,(0,H.jsxs)(t.blockquote,{children:[` 626`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` We may update these Terms (if we give you 30 days' notice for material changes).`]}),` 627`]}),` 628`,(0,H.jsx)(t.p,{children:`We may modify these Terms at any time so be sure to check back regularly. By continuing to use our services after these Terms have changed, you indicate your agreement to the revised Terms. If you do not agree to the changes, you should stop using our services.`}),` 629`,(0,H.jsx)(t.h2,{children:`18. General Provisions`}),` 630`,(0,H.jsxs)(t.blockquote,{children:[` 631`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Summary:`}),` The remainder of these Terms are standard legal provisions.`]}),` 632`]}),` 633`,(0,H.jsx)(t.h3,{children:`18.1 Severability`}),` 634`,(0,H.jsx)(t.p,{children:`If any provision of these Terms is held to be unenforceable or invalid, such provision
634will be changed and interpreted to accomplish the objectives of such provision to the greatest extent possible under applicable law and the remaining provisions will continue in full force and effect.`}),` 635`,(0,H.jsx)(t.h3,{children:`18.2 No waiver`}),` 636`,(0,H.jsx)(t.p,{children:`If you do not comply with these Terms, and we don't take action right away, this doesn't mean we're OK with what you did, or we are giving up any rights that we may have (such as taking action in the future).`}),` 637`,(0,H.jsx)(t.h3,{children:`18.3 Translation interpretation`}),` 638`,(0,H.jsx)(t.p,{children:`These Terms may have been translated if we have made them available to you on our services. you agree that the original English text shall prevail in the case of a dispute.`}),` 639`,(0,H.jsx)(t.h3,{children:`18.4 Assignment`}),` 640`,(0,H.jsx)(t.p,{children:`We may assign these Terms in whole or in part, to any person or entity at any time with or without your consent. You may not assign any rights or obligations under the Terms without our prior written consent, and any unauthorized assignment by you is void.`}),` 641`,(0,H.jsx)(t.h3,{children:`18.5 Governing Law`}),` 642`,(0,H.jsx)(t.p,{children:`The laws of the State of Delaware, United States, excluding its conflicts of law rules, shall govern these Terms and your use of our services. Your use of our services may also be subject to other local, state, national, or international laws.`}),` 643`,(0,H.jsx)(t.p,{children:`If you are a European Union consumer, you will benefit from any mandatory provisions of the law of the country in which you reside.`}),` 644`,(0,H.jsx)(t.h3,{children:`18.6 Electronic communications`}),` 645`,(0,H.jsx)(t.p,{children:`You consent to receive communications from us electronically, for example by email or through our services, and you agree that these electronic communications satisfy any legal requirement that such communications be in writing. This does not affect any non-waivable rights you have.`}),`
646`,(0,H.jsxs)(t.p,{children:[`Any legal notice to us must be in writing and sent to `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`; messages sent through support channels do not constitute legal notice.`]}),` 647`,(0,H.jsx)(t.h2,{children:`19. Contacting Us`}),` 648`,(0,H.jsxs)(t.p,{children:[`If you have any questions about these Terms, you can contact us by email at `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`.`]})]})}function LD(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(ID,{...e})}):ID(e)}var RD=`2026-09-25`;function zD(e){return e===`Dispatch`?`Changelog`:e}var BD=`unreleased`;function VD(e,t){return e!==`unreleased`&&e<=t}function HD(e){return Object.entries(e).map(([e,t])=>{let n=e.split(`/`).pop().replace(/\.(mdx?|md)$/,``),r=n===BD;return{date:n,dateFormatted:r?`Unreleased`:he(n,`long`),isUnreleased:r,isEffective:VD(n,RD),Content:t.default}}).sort((e,t)=>e.isUnreleased?-1:t.isUnreleased?1:t.date.localeCompare(e.date))}function UD(e,t){return e.find(e=>e.date===t)}function WD(e){return e.find(e=>e.isEffective)}var GD=HD(Object.assign({"../-content/terms/2026-02-09.md":MD,"../-content/terms/2026-07-06.md":FD})),KD=ls(`/_content/terms/`)({head:()=>ED({title:`Terms of Service`,description:`Terms and conditions for using the Entire platform.`,url:`https://entire.io/terms`,image:`https://entire.io/og/page/terms.png`}),loader:()=>{if(!WD(GD))throw oe()},component:ds(()=>ov(()=>import(`./terms-BzRrqzDA.js`),__vite__mapDeps([33,1,34,35,2,11,10,12,13,16,36,26])),`component`)}),qD=e({default:()=>YD,frontmatter:()=>void 0});function JD(e){let t={em:`em`,h1:`h1`,p:`p`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.h1,{children:`Entire â Subprocessor List`}),` 649`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Last updated: 06 July 2026`})}),` 650`,(0,H.jsx)(t.p,{children:`This page lists the third-party subprocessors Entire engages to process customer personal data in connection with Entire's services. Entire relies on the general authorization under Clause 9a of the Standard Contractual Clauses (EU/EEA) and/or Section 8 of the Entire Data Processing Agreement ("DPA"), as applicable. Entire will give notice of new subprocessors, and of material changes to this list, in accordance with the notice provisions of the DPA before the new subprocessor is given access to customer personal data.`}),` 651`,(0,H.jsxs)(t.table,{children:[(0,H.jsx)(t.thead,{children:(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.th,{children:(0,H.jsx)(t.strong,{children:`Subprocessor`})}),(0,H.jsx)(t.th,{children:(0,H.jsx)(t.strong,{children:`Purpose of Processing`})}),(0,H.jsx)(t.th,{children:(0,H.jsx)(t.strong,{children:`Location of Processing`})}),(0,H.jsx)(t.th,{children:(0,H.jsx)(t.strong,{children:`Corporate Location`})})]})}),(0,H.jsxs)(t.tbody,{children:[(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Amazon Web Services (AWS)`}),(0,H.jsx)(t.td,{children:`Cloud infrastructure`}),(0,H.jsx)(t.td,{children:`EU, US, AU (and further regions as enabled)`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Anthropic`}),(0,H.jsx)(t.td,{children:`AI services`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Cloudflare`}),(0,H.jsx)(t.td,{children:`Cloud infrastructure`}),(0,H.jsx)(t.td,{children:`Global`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Cockroach Labs`}),(0,H.jsx)(t.td,{children:`Cloud infrastructure`}),(0,H.jsx)(t.td,{children:`EU, US, AU (and further regions as enabled)`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Cohere`}),(0,H.jsx)(t.td,{children:`Semantic search`}),(0,H.jsx)(t.td,{children:`EU, US, AU (and further regions as enabled)`}),(0,H.jsx)(t.td,{children:`Canada`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Datadog`}),(0,H.jsx)(t.td,{children:`Observability`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Daytona`}),(0,H.jsx)(t.td,{children:`Code execution sandboxes for AI agents`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`E2B`}),(0,H.jsx)(t.td,{children:`Code execution sandboxes for AI agents`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`GitHub`}),(0,H.jsx)(t.td,{children:`Source for mirrored repositories; OAuth login provider`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Google`}),(0,H.jsx)(t.td,{children:`Business applications, communication, cloud infrastru
651cture, and AI services`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Honeycomb (Hound Technology, Inc.)`}),(0,H.jsx)(t.td,{children:`Observability`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`HubSpot`}),(0,H.jsx)(t.td,{children:`Customer relationship management (CRM)`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`incident.io`}),(0,H.jsx)(t.td,{children:`Incident tracking and response`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United Kingdom`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Linear`}),(0,H.jsx)(t.td,{children:`Project management / issue tracking`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`OpenAI`}),(0,H.jsx)(t.td,{children:`AI services`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Plain (Not Just Tickets Limited)`}),(0,H.jsx)(t.td,{children:`Customer service`}),(0,H.jsx)(t.td,{children:`UK`}),(0,H.jsx)(t.td,{children:`United Kingdom`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`PlanetScale`}),(0,H.jsx)(t.td,{children:`Cloud infrastructure`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`PostHog`}),(0,H.jsx)(t.td,{children:`Product analytics`}),(0,H.jsx)(t.td,{children:`EU`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Resend`}),(0,H.jsx)(t.td,{children:`Transactional emails`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Turbopuffer`}),(0,H.jsx)(t.td,{children:`Semantic search`}),(0,H.jsx)(t.td,{children:`EU, US, AU (and further regions as enabled)`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`WorkOS`}),(0,H.jsx)(t.td,{children:`Single sign-on and directory sync`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United States`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Zoom`}),(0,H.jsx)(t.td,{children:`Virtual meetings and collaboration`}),(0,H.jsx)(t.td,{children:`US`}),(0,H.jsx)(t.td,{children:`United States`})]})]})]})]})}function YD(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(JD,{...e})}):JD(e)}var XD=HD(Object.assign({"../-content/subprocessors/2026-07-06.md":qD})),ZD=ls(`/_content/subprocessors/`)({head:()=>ED({title:`Subprocessor List`,description:`The third-party subprocessors Entire engages to process customer personal data.`,url:`https://entire.io/subprocessors`,image:`https://entire.io/og/page/subprocessors.png`}),loader:()=>{if(!WD(XD))throw oe()},component:ds(()=>ov(()=>import(`./subprocessors-DEMnPrdO.js`),__vite__mapDeps([37,1,34,35,2,11,10,12,13,16,36,26])),`component`)}),QD={region:`na2`,portalId:`243539859`,formId:`1c9667b1-a95f-4eaa-8450-7ae835a369f9`},$D=`https://api.hsforms.com/submissions/v3/integration/submit/${QD.portalId}/${QD.formId}`,eO=`https://forms-${QD.region}.hsforms.net/embed/v4/render-definition/${QD.portalId}/${QD.formId}`,tO=[{name:`email`,label:`Email`,type:`email`,required:!0}],nO={text:`text`,email:`email`,singleCheckbox:`checkbox`};function rO(e){return e.replace(/<[^>]*>/g,``).replace(/\s+/g,` `).trim()}function iO(e){let t=e?.form?.modules;if(!Array.isArray(t))return[];let n=[],r=e=>{for(let t of e){if(typeof t!=`object`||!t)continue;let e=t;if(Array.isArray(e.modules)){r(e.modules);continue}let i=e.type?nO[e.type]:void 0;if(!i||typeof e.propertyReference!=`string`)continue;let a=e.propertyReference.split(`/`).at(-1)??e.propertyReference;n.push({name:a,label:rO(e.label??a),type:i,required:e.required===!0})}};return r(t),n}async function aO(){try{let e=await fetch(eO);
651if(!e.ok)return tO;let t=iO(await e.json());return t.length>0?t:tO}catch{return tO}}var oO=ls(`/_content/rebellion/`)({head:()=>ED({title:`Join the rebellion`,description:`Regular updates from the front lines. Developer news, curated content, early access, and exclusive drops for people who got here first.`,url:`https://entire.io/rebellion`}),loader:async()=>({fields:await aO()}),component:ds(()=>ov(()=>import(`./rebellion-rfMR3PIU.js`),__vite__mapDeps([38,1,2,20])),`component`)}),sO=e({default:()=>lO,frontmatter:()=>void 0});function cO(e){let t={a:`a`,em:`em`,h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.h1,{children:`Privacy Policy`}),` 652`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Last updated: 09 February 2026`})}),` 653`,(0,H.jsx)(t.p,{children:`This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information when You use the Service and tells You about Your privacy rights and how the law protects You.`}),` 654`,(0,H.jsx)(t.p,{children:`We use Your Personal Data to provide and improve the Service. By using the Service, You agree to the collection and use of information in accordance with this Privacy Policy.`}),` 655`,(0,H.jsx)(t.h2,{children:`Interpretation and Definitions`}),` 656`,(0,H.jsx)(t.h3,{children:`Interpretation`}),` 657`,(0,H.jsx)(t.p,{children:`The words whose initial letters are capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.`}),` 658`,(0,H.jsx)(t.h3,{children:`Definitions`}),` 659`,(0,H.jsx)(t.p,{children:`For the purposes of this Privacy Policy:`}),` 660`,(0,H.jsxs)(t.ul,{children:[` 661`,(0,H.jsxs)(t.li,{children:[` 662`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Account`}),` means a unique account created for You to access our Service or parts of our Service.`]}),` 663`]}),` 664`,(0,H.jsxs)(t.li,{children:[` 665`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Affiliate`}),` means an entity that controls, is controlled by, or is under common control with a party, where "control" means ownership of 50% or more of the shares, equity interest or other securities entitled to vote for election of directors or other managing authority.`]}),` 666`]}),` 667`,(0,H.jsxs)(t.li,{children:[` 668`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Business`}),`, for the purpose of CCPA/CPRA, refers to the Company as the legal entity that collects Consumers' personal information and determines the purposes and means of the processing of Consumers' personal information, or on behalf of which such information is collected and that alone, or jointly with others, determines the purposes and means of the processing of consumers' personal information, that does business in the State of California.`]}),` 669`]}),` 670`,(0,H.jsxs)(t.li,{children:[` 671`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`CCPA`}),` and/or `,(0,H.jsx)(t.strong,{children:`CPRA`}),` refers to the California Consumer Privacy Act (the "CCPA") as amended by the California Privacy Rights Act of 2020 (the "CPRA").`]}),` 672`]}),` 673`,(0,H.jsxs)(t.li,{children:[` 674`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Company`}),` (referred to as either "the Company", "We", "Us" or "Our" in this Privacy Policy) refers to Entire Inc, 1209 Orange Street, City of Wilmington, County of New Castle, Delaware 19801.`]}),` 675`,(0,H.jsx)(t.p,{children:`For the purposes of the GDPR, the Company is the Data Controller.`}),` 676`]}),` 677`,(0,H.jsxs)(t.li,{children:[` 678`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Consumer`}),`, for the purpose of the CCPA/CPRA, means a natural person who is a California resident. A resident, as defined in the law, includes (1) every individual who is in the USA for other than a temporary or transitory purpose, and (2) every individual who is domiciled in the USA who is outside the USA for a temporary or transitory purpose.`]}),` 679`]}),` 680`,(0,H.jsxs)(t.li,{children:[` 681`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Cookies`}),` are small files that are placed on Your computer, mobile device or any other device by a website, containing the details of Your browsing history on that website among its many uses.`]}),` 682`]}),` 683`,(0,H.jsxs)(t.li,{children:[` 684`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Country`}),` refers to: Delaware, United States`]}),` 685`]}),` 686`,(0,H.jsxs)(t.li,{children:[` 687`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Data Controller`}),`, for the purposes of the GDPR (General Data Protection Regulation), refers to the Company as the legal person which alone or jointly with others determines the purposes and means of the processing of Personal Data.`]}),` 688`]}),` 689`,(0,H.jsxs)(t.li,{children:[` 690`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Device`}),` means any device that can access the Service such as a computer, a cell phone or a digital tablet.`]}),` 691`]}),` 692`,(0,H.jsxs)(t.li,{children:[` 693`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Do Not Track`}),` (DNT) is a concept that has been promoted by US regulatory authorities, in particular the U.S. Federal Trade Commission (FTC), for the Internet industry to develop and implement a mechanism for allowing internet users to control the tracking of their online activities across websites.`]}),` 694`]}),` 695`,(0,H.jsxs)(t.li,{children:[` 696`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`GDPR`}),` refers to EU General Data Protection Regulation.`]}),` 697`]}),` 698`,(0,H.jsxs)(t.li,{children:[` 699`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Personal Data`}),` (or "Personal Information") is any information that relates to an identified or identifiable individual.`]}),` 700`,(0,H.jsx)(t.p,{children:`For the purposes of GDPR, Personal Data means any information relating to You such as a name, an identification number, location data, online identifier or to one or more factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity.`}),` 701`,(0,H.jsx)(t.p,{children:`For the purposes of the CCPA/CPRA, Personal Data means any information that identifies, relates to, describes or is capable of being associated with, or could reasonably be linked, directly or indirectly, with You.`}),` 702`,(0,H.jsx)(t.p,{children:`We use "Personal Data" and "Personal Information" interchangeably unless a law uses a specific term.`}),` 703`]}),` 704`,(0,H.jsxs)(t.li,{children:[` 705`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Service`}),` refers to the Website.`]}),` 706`]}),` 707`,(0,H.jsxs)(t.li,{children:[` 708`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Service Provider`}),` means any natural or legal person who processes the data on behalf of the Company. It refers to third-party companies or individuals employed by the C
708ompany to facilitate the Service, to provide the Service on behalf of the Company, to perform services related to the Service or to assist the Company in analyzing how the Service is used. 709For the purposes of the GDPR, Service Providers are considered Data Processors.`]}),` 710`]}),` 711`,(0,H.jsxs)(t.li,{children:[` 712`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Third-Party Social Media Service`}),` refers to any website or any social network website through which a User can log in or create an account to use the Service.`]}),` 713`]}),` 714`,(0,H.jsxs)(t.li,{children:[` 715`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Usage Data`}),` refers to data collected automatically, either generated by the use of the Service or from the Service infrastructure itself (for example, the duration of a page visit).`]}),` 716`]}),` 717`,(0,H.jsxs)(t.li,{children:[` 718`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Website`}),` refers to Entire, accessible from `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`https://entire.io`}),`.`]}),` 719`]}),` 720`,(0,H.jsxs)(t.li,{children:[` 721`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`You`}),` means the individual accessing or using the Service, or the company, or other legal entity on behalf of which such individual is accessing or using the Service, as applicable.`]}),` 722`,(0,H.jsx)(t.p,{children:`Under GDPR, You can be referred to as the Data Subject or as the User as you are the individual using the Service.`}),` 723`]}),` 724`]}),` 725`,(0,H.jsx)(t.h2,{children:`Collecting and Using Your Personal Data`}),` 726`,(0,H.jsx)(t.h3,{children:`Types of Data Collected`}),` 727`,(0,H.jsx)(t.h4,{children:`Personal Data`}),` 728`,(0,H.jsx)(t.p,{children:`While using Our Service, We may ask You to provide Us with certain personally identifiable information that can be used to contact or identify You. Personally identifiable information may include, but is not limited to:`}),` 729`,(0,H.jsxs)(t.ul,{children:[` 730`,(0,H.jsx)(t.li,{children:`Email address`}),` 731`,(0,H.jsx)(t.li,{children:`First name and last name`}),` 732`]}),` 733`,(0,H.jsx)(t.h4,{children:`Usage Data`}),` 734`,(0,H.jsx)(t.p,{children:`Usage Data is collected automatically when using the Service.`}),` 735`,(0,H.jsx)(t.p,{children:`Usage Data may include information such as Your Device's Internet Protocol address (e.g. IP address), browser type, browser version, the pages of our Service that You visit, the time and date of Your visit, the time spent on those pages, unique device identifiers and other diagnostic data.`}),` 736`,(0,H.jsx)(t.p,{children:`When You access the Service by or through a mobile device, We may collect certain information automatically, including, but not limited to, the type of mobile device You use, Your mobile device's unique ID, the IP address of Your mobile device, Your mobile operating system, the type of mobile Internet browser You use, unique device identifiers and other diagnostic data.`}),` 737`,(0,H.jsx)(t.p,{children:`We may also collect information that Your browser sends whenever You visit Our Service or when You access the Service by or through a mobile device.`}),` 738`,(0,H.jsx)(t.h4,{children:`Information from Third-Party Social Media Services`}),` 739`,(0,H.jsx)(t.p,{children:`The Company allows You to create an account and log in to use the Service through the following Third-Party Social Media Services:`}),` 740`,(0,H.jsxs)(t.ul,{children:[` 741`,(0,H.jsx)(t.li,{children:`GitHub`}),` 742`]}),` 743`,(0,H.jsx)(t.p,{children:`If You decide to register through or otherwise grant Us access to a Third-Party Social Media Service, We may collect Personal Data that is already associated with Your Third-Party Social Media Service's account, such as Your name, Your email address, Your activities or Your contact list associated with that account.`}),` 744`,(0,H.jsx)(t.p,{children:`You may also have the option of sharing additional information with the Company through Your Third-Party Social Media Service's account. If You choose to provide such information and Personal Data, during registration or otherwise, You are giving the Company permission to use, share, and store it in a manner consistent with this Privacy Policy.`}),` 745`,(0,H.jsx)(t.h4,{children:`Tracking Technologies and Cookies`}),` 746`,(0,H.jsx)(t.p,{children:`We use Cookies and similar tracking technologies to track the activity on Our Service and store certain information. Tracking technologies We use include beacons, tags, and scripts to collect and track information and to improve and analyze Our Service. The technologies We use may include:`}),` 747`,(0,H.jsxs)(t.ul,{children:[` 748`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Cookies or Browser Cookies.`}),` A cookie is a small file placed on Your Device. You can instruct Your browser to refuse all Cookies or to indicate when a Cookie is being sent. However, if You do not accept Cookies, You may not be able to use some parts of our Service.`]}),` 749`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Web Beacons.`}),` Certain sections of our Service and our emails may contain small electronic files known as web beacons (also referred to as clear gifs, pixel tags, and single-pixel gifs) that permit the Company, for example, to count users who have visited those pages or opened an email and for other related website statistics (for example, recording the popularity of a certain section and verifying system and server integrity).`]}),` 750`]}),` 751`,(0,H.jsx)(t.p,{children:`Cookies can be "Persistent" or "Session" Cookies. Persistent Cookies remain on Your personal computer or mobile device when You go offline, while Session Cookies are deleted as soon as You close Your web browser.`}),` 752`,(0,H.jsx)(t.p,{children:`Where required by law, we use non-essential cookies (such as analytics, advertising, and remarketing cookies) only with Your consent. You can withdraw or change Your consent at any time using Our cookie preferences tool (if available) or through Your browser/device settings. Withdrawing consent does not affect the lawfulness of processing based on consent before its withdrawal.`}),` 753`,(0,H.jsx)(t.p,{children:`We use both Session and Persistent Cookies for the purposes set out below:`}),` 754`,(0,H.jsxs)(t.ul,{children:[` 755`,(0,H.jsxs)(t.li,{children:[` 756`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Necessary / Essential Cookies`})}),` 757`,(0,H.jsx)(t.p,{children:`Type: Session Cookies`}),` 758`,(0,H.jsx)(t.p,{children:`Administered by: Us`}),` 759`,(0,H.jsx)(t.p,{children:`Purpose: These Cookies are essential to provide You with services available through the Website and to enable You to use some of its features. They help to authenticate users and prevent fraudulent use of user accounts. Without these Cookies, the services that You have asked for cannot be provided, and We only use these Cookies to provide You with those services.`}),` 760`]}),` 761`,(0,H.jsxs)(t.li,{children:[` 762`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Cookies Policy / Notice Acceptance Cookies`})}),` 763`,(0,H.jsx)(t.p,{children:`Type: Persistent Cookies`}),` 764`,(0,H.jsx)(t.p,{children:`Administered by: Us`}),` 765`,(0,H.jsx)(t.p,{children:`Purpose: These Cookies identify if users have accepted the use of cookies on the Website.`}),` 766`]}),` 767`,(0,H.jsxs)(t.li,{children:[` 768`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Functionality Cookies`})}),` 769`,(0,H.jsx)(t.p,{children:`Type: Persistent Cookies`}),` 770`,(0,H.jsx)(t.p,{children:`Administered by: Us`}),` 771`,(0,H.jsx)(t.p,{children:`Purpose: These Cookies allow Us to remember choices You make when You use the Website, such as remembering your login details or language preference. The purpose of these Cookies is to provide You with a more personal experience and to avoid You having to re-enter your preferences every time You use the Website.`}),` 772`]}),` 773`,(0,H.jsxs)(t.li,{children:[` 774`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Tracking and Performance Cookies`})}),` 775`,(0,H.jsx)(t.p,{children:`Type: Persistent Cookies`}),` 776`,(0,H.jsx)(t.p,{children:`Administered by: Third Parties`}),` 777`,(0,H.jsx)(t.p,{children:`Purpose: These Cookies are used to track information about traffic to the Website and how users use the Website. The information gathered via these Cookies may directly or indirectly identify you as an individual visitor. This is because the information collected is typically linked to a pseudonymous identifier associated with the device you use to access the Website. We may al
777so use these Cookies to test new pages, features or functionality of the Website to see how our users react to them.`}),` 778`]}),` 779`]}),` 780`,(0,H.jsx)(t.p,{children:`For more information about the cookies we use and your choices regarding cookies, please visit our Cookies Policy or the Cookies section of Our Privacy Policy.`}),` 781`,(0,H.jsx)(t.h3,{children:`Use of Your Personal Data`}),` 782`,(0,H.jsx)(t.p,{children:`The Company may use Personal Data for the following purposes:`}),` 783`,(0,H.jsxs)(t.ul,{children:[` 784`,(0,H.jsxs)(t.li,{children:[` 785`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`To provide and maintain our Service`}),`, including to monitor the usage of our Service.`]}),` 786`]}),` 787`,(0,H.jsxs)(t.li,{children:[` 788`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`To manage Your Account:`}),` to manage Your registration as a user of the Service. The Personal Data You provide can give You access to different functionalities of the Service that are available to You as a registered user.`]}),` 789`]}),` 790`,(0,H.jsxs)(t.li,{children:[` 791`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`For the performance of a contract:`}),` the development, compliance and undertaking of the purchase contract for the products, items or services You have purchased or of any other contract with Us through the Service.`]}),` 792`]}),` 793`,(0,H.jsxs)(t.li,{children:[` 794`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`To contact You:`}),` To contact You by email, telephone calls, SMS, or other equivalent forms of electronic communication, such as a mobile application's push notifications regarding updates or informative communications related to the functionalities, products or contracted services, including the security updates, when necessary or reasonable for their implementation.`]}),` 795`]}),` 796`,(0,H.jsxs)(t.li,{children:[` 797`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`To provide You`}),` with news, special offers, and general information about other goods, services and events which We offer that are similar to those that you have already purchased or inquired about unless You have opted not to receive such information.`]}),` 798`]}),` 799`,(0,H.jsxs)(t.li,{children:[` 800`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`To manage Your requests:`}),` To attend and manage Your requests to Us.`]}),` 801`]}),` 802`,(0,H.jsxs)(t.li,{children:[` 803`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`For business transfers:`}),` We may use Your Personal Data to evaluate or conduct a merger, divestiture, restructuring, reorganization, dissolution, or other sale or transfer of some or all of Our assets, whether as a going concern or as part of bankruptcy, liquidation, or similar proceeding, in which Personal Data held by Us about our Service users is among the assets transferred.`]}),` 804`]}),` 805`,(0,H.jsxs)(t.li,{children:[` 806`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`For other purposes`}),`: We may use Your information for other purposes, such as data analysis, identifying usage trends, determining the effectiveness of our promotional campaigns and to evaluate and improve our Service, products, services, marketing and your experience.`]}),` 807`]}),` 808`]}),` 809`,(0,H.jsx)(t.p,{children:`We may share Your Personal Data in the following situations:`}),` 810`,(0,H.jsxs)(t.ul,{children:[` 811`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`With Service Providers:`}),` We may share Your Personal Data with Service Providers to monitor and analyze the use of our Service, to contact You.`]}),` 812`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`For business transfers:`}),` We may share or transfer Your Personal Data in connection with, or during negotiations of, any merger, sale of Company assets, financing, or acquisition of all or a portion of Our business to another company.`]}),` 813`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`With Affiliates:`}),` We may share Your Personal Data with Our affiliates, in which case we will require those affiliates to honor this Privacy Policy. Affiliates include Our parent company and any other subsidiaries, joint venture partners or other companies that We control or that are under common control with Us.`]}),` 814`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`With business partners:`}),` We may share Your Personal Data with Our business partners to offer You certain products, services or promotions.`]}),` 815`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`With other users:`}),` If Our Service offers public areas, when You share Personal Data or otherwise interact in the public areas with other users, such information may be viewed by all users and may be publicly distributed outside. If You interact with other users or register through a Third-Party Social Media Service, Your contacts on the Third-Party Social Media Service may see Your name, profile, pictures, and description of Your activity. Similarly, other users will be able to view descriptions of Your activity, communicate with You and view Your profile.`]}),` 816`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`With Your consent`}),`: We may disclose Your Personal Data for any other purpose with Your consent.`]}),` 817`]}),` 818`,(0,H.jsx)(t.h3,{children:`Retention of Your Personal Data`}),` 819`,(0,H.jsx)(t.p,{children:`The Company will retain Your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use Your Personal Data to the extent necessary to comply with our legal obligations (for example, if We are required to retain Your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.`}),` 820`,(0,H.jsx)(t.p,{children:`Where possible, We apply shorter retention periods and/or reduce identifiability by deleting, aggregating, or anonymizing data. Unless otherwise stated, the retention periods below are maximum periods ("up to") and We may delete or anonymize data sooner when it is no longer needed for the relevant purpose. We apply different retention periods to different categories of Personal Data based on the purpose of processing and legal obligations:`}),` 821`,(0,H.jsxs)(t.ul,{children:[` 822`,(0,H.jsxs)(t.li,{children:[` 823`,(0,H.jsx)(t.p,{children:`Account Information`}),` 824`,(0,H.jsxs)(t.ul,{children:[` 825`,(0,H.jsx)(t.li,{children:`User Accounts: retained for the duration of your account relationship plus up to 24 months after account closure to handle any post-termination issues or resolve disputes.`}),` 826`]}),` 827`]}),` 828`,(0,H.jsxs)(t.li,{children:[` 829`,(0,H.jsx)(t.p,{children:`Customer Support Data`}),` 830`,(0,H.jsxs)(t.ul,{children:[` 831`,(0,H.jsx)(t.li,{children:`Support tickets and correspondence: up to 24 months from the date of ticket closure to resolve follow-up inquiries, track service quality, and defend against potential legal claims`}),` 832`,(0,H.jsx)(t.li,{children:`Chat transcripts: up to 24 months for quality assurance and staff training purposes.`}),` 833`]}),` 834`]}),` 835`,(0,H.jsxs)(t.li,{children:[` 836`,(0,H.jsx)(t.p,{children:`Usage Data`}),` 837`,(0,H.jsxs)(t.ul,{children:[` 838`,(0,H.jsxs)(t.li,{children:[` 839`,(0,H.jsx)(t.p,{children:`Website analytics data (cookies, IP addresses, device identifiers): up to 24 months from the date of collection, which allows us to analyze trends while respecting privacy principles.`}),` 840`]}),` 841`,(0,H.jsxs)(t.li,{children:[` 842`,(0,H.jsx)(t.p,{children:`Server logs (IP addresses, access times): up to 24 months for security monitoring and troubleshooting purposes.`}),` 843`]}),` 844`]}),` 845`]}),` 846`]}),` 847`,(0,H.jsx)(t.p,{children:`Usage Data is retained in accordance with the retention periods described above, and may be retained longer only where necessary for security, fraud prevention, or legal compliance.`}),` 848`,(0,H.jsx)(t.p,{children:`We may retain Personal Data beyond the peri
848ods stated above for different reasons:`}),` 849`,(0,H.jsxs)(t.ul,{children:[` 850`,(0,H.jsx)(t.li,{children:`Legal obligation: We are required by law to retain specific data (e.g., financial records for tax authorities).`}),` 851`,(0,H.jsx)(t.li,{children:`Legal claims: Data is necessary to establish, exercise, or defend legal claims.`}),` 852`,(0,H.jsx)(t.li,{children:`Your explicit request: You ask Us to retain specific information.`}),` 853`,(0,H.jsx)(t.li,{children:`Technical limitations: Data exists in backup systems that are scheduled for routine deletion.`}),` 854`]}),` 855`,(0,H.jsx)(t.p,{children:`You may request information about how long We will retain Your Personal Data by contacting Us.`}),` 856`,(0,H.jsx)(t.p,{children:`When retention periods expire, We securely delete or anonymize Personal Data according to the following procedures:`}),` 857`,(0,H.jsxs)(t.ul,{children:[` 858`,(0,H.jsx)(t.li,{children:`Deletion: Personal Data is removed from Our systems and no longer actively processed.`}),` 859`,(0,H.jsx)(t.li,{children:`Backup retention: Residual copies may remain in encrypted backups for a limited period consistent with our backup retention schedule and are not restored except where necessary for security, disaster recovery, or legal compliance.`}),` 860`,(0,H.jsx)(t.li,{children:`Anonymization: In some cases, We convert Personal Data into anonymous statistical data that cannot be linked back to You. This anonymized data may be retained indefinitely for research and analytics.`}),` 861`]}),` 862`,(0,H.jsx)(t.h3,{children:`Transfer of Your Personal Data`}),` 863`,(0,H.jsx)(t.p,{children:`Your information, including Personal Data, is processed at the Company's operating offices and in any other places where the parties involved in the processing are located. It means that this information may be transferred to â and maintained on â computers located outside of Your state, province, country or other governmental jurisdiction where the data protection laws may differ from those from Your jurisdiction.`}),` 864`,(0,H.jsx)(t.p,{children:`Where required by applicable law, We will ensure that international transfers of Your Personal Data are subject to appropriate safeguards and supplementary measures where appropriate. The Company will take all steps reasonably necessary to ensure that Your data is treated securely and in accordance with this Privacy Policy and no transfer of Your Personal Data will take place to an organization or a country unless there are adequate controls in place including the security of Your data and other personal information.`}),` 865`,(0,H.jsx)(t.h3,{children:`Delete Your Personal Data`}),` 866`,(0,H.jsx)(t.p,{children:`You have the right to delete or request that We assist in deleting the Personal Data that We have collected about You.`}),` 867`,(0,H.jsx)(t.p,{children:`Our Service may give You the ability to delete certain information about You from within the Service.`}),` 868`,(0,H.jsx)(t.p,{children:`You may update, amend, or delete Your information at any time by signing in to Your Account, if you have one, and visiting the account settings section that allows you to manage Your personal information. You may also contact Us to request access to, correct, or delete any Personal Data that You have provided to Us.`}),` 869`,(0,H.jsx)(t.p,{children:`Please note, however, that We may need to retain certain information when we have a legal obligation or lawful basis to do so.`}),` 870`,(0,H.jsx)(t.h3,{children:`Disclosure of Your Personal Data`}),` 871`,(0,H.jsx)(t.h4,{children:`Business Transactions`}),` 872`,(0,H.jsx)(t.p,{children:`If the Company is involved in a merger, acquisition or asset sale, Your Personal Data may be transferred. We will provide notice before Your Personal Data is transferred and becomes subject to a different Privacy Policy.`}),` 873`,(0,H.jsx)(t.h4,{children:`Law enforcement`}),` 874`,(0,H.jsx)(t.p,{children:`Under certain circumstances, the Company may be required to disclose Your Personal Data if required to do so by law or in response to valid requests by public authorities (e.g. a court or a government agency).`}),` 875`,(0,H.jsx)(t.h4,{children:`Other legal requirements`}),` 876`,(0,H.jsx)(t.p,{children:`The Company may disclose Your Personal Data in the good faith belief that such action is necessary to:`}),` 877`,(0,H.jsxs)(t.ul,{children:[` 878`,(0,H.jsx)(t.li,{children:`Comply with a legal obligation`}),` 879`,(0,H.jsx)(t.li,{children:`Protect and defend the rights or property of the Company`}),` 880`,(0,H.jsx)(t.li,{children:`Prevent or investigate possible wrongdoing in connection with the Service`}),` 881`,(0,H.jsx)(t.li,{children:`Protect the personal safety of Users of the Service or the public`}),` 882`,(0,H.jsx)(t.li,{children:`Protect against legal liability`}),` 883`]}),` 884`,(0,H.jsx)(t.h3,{children:`Security of Your Personal Data`}),` 885`,(0,H.jsx)(t.p,{children:`The security of Your Personal Data is important to Us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While We strive to use commercially reasonable means to protect Your Personal Data, We cannot guarantee its absolute security.`}),` 886`,(0,H.jsx)(t.h2,{children:`Detailed Information on the Processing of Your Personal Data`}),` 887`,(0,H.jsx)(t.p,{children:`The Service Providers We use may have access to Your Personal Data. These third-party vendors collect, store, use, process and transfer information about Your activity on Our Service in accordance with their Privacy Policies.`}),` 888`,(0,H.jsx)(t.h3,{children:`Analytics`}),` 889`,(0,H.jsx)(t.p,{children:`We may use third-party Service Providers to monitor and analyze the use of our Service.`}),` 890`,(0,H.jsxs)(t.ul,{children:[` 891`,(0,H.jsxs)(t.li,{children:[` 892`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`PostHog`})}),` 893`,(0,H.jsxs)(t.p,{children:[`Their Privacy Policy can be viewed at `,(0,H.jsx)(t.a,{href:`https://posthog.com/docs/privacy/`,children:`https://posthog.com/docs/privacy/`}),`.`]}),` 894`]}),` 895`,(0,H.jsxs)(t.li,{children:[` 896`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Honeycomb`})}),` 897`,(0,H.jsxs)(t.p,{children:[`Their Privacy Policy can be viewed at `,(0,H.jsx)(t.a,{href:`https://www.honeycomb.io/privacy`,children:`https://www.honeycomb.io/privacy`}),`.`]}),` 898`]}),` 899`]}),` 900`,(0,H.jsx)(t.h2,{children:`GDPR Privacy`}),` 901`,(0,H.jsx)(t.h3,{children:`Legal Basis for Processing Personal Data under GDPR`}),` 902`,(0,H.jsx)(t.p,{children:`We may process Personal Data under the following conditions:`}),` 903`,(0,H.jsxs)(t.ul,{children:[` 904`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Consent:`}),` You have given Your consent for processing Personal Data for one or more specific purposes.`]}),` 905`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Performance of a contract:`}),` Provision of Personal Data is necessary for the performance of an agreement with You and/or for any pre-contractual obligations thereof.`]}),` 906`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Legal obligations:`}),` Processing Personal Data is necessary for compliance with a legal obligation to which the C
906ompany is subject.`]}),` 907`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Vital interests:`}),` Processing Personal Data is necessary in order to protect Your vital interests or of another natural person.`]}),` 908`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Public interests:`}),` Processing Personal Data is related to a task that is carried out in the public interest or in the exercise of official authority vested in the Company.`]}),` 909`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Legitimate interests:`}),` Processing Personal Data is necessary for the purposes of the legitimate interests pursued by the Company.`]}),` 910`]}),` 911`,(0,H.jsx)(t.p,{children:`In any case, the Company will gladly help to clarify the specific legal basis that applies to the processing, and in particular whether the provision of Personal Data is a statutory or contractual requirement, or a requirement necessary to enter into a contract.`}),` 912`,(0,H.jsx)(t.h3,{children:`International Transfer of Personal Data`}),` 913`,(0,H.jsx)(t.p,{children:`We may transfer, store, and process Personal Data in countries other than the country in which You are located, including countries outside the European Economic Area ("EEA") and the United Kingdom ("UK"), where data protection laws may differ.`}),` 914`,(0,H.jsx)(t.p,{children:`Where we transfer Personal Data outside the EEA/UK to a country that has not been recognized as providing an adequate level of protection, We rely on appropriate safeguards, such as:`}),` 915`,(0,H.jsxs)(t.ul,{children:[` 916`,(0,H.jsx)(t.li,{children:`The European Commission's Standard Contractual Clauses ("SCCs") and/or the UK International Data Transfer Agreement ("IDTA") or the UK Addendum to the SCCs (as applicable)`}),` 917`,(0,H.jsx)(t.li,{children:`Supplementary measures where appropriate, such as encryption in transit and at rest, access controls, data minimisation, and vendor security reviews.`}),` 918`]}),` 919`,(0,H.jsx)(t.p,{children:`We transfer Personal Data internationally only as needed to provide the Service and to work with our Service Providers (for example, hosting, analytics, email delivery). You may contact Us using the details in the "Contact Us" section of Our Privacy Policy to request further information about the safeguards We use for international transfers, including copies of relevant contractual protections (redacted where necessary).`}),` 920`,(0,H.jsx)(t.h3,{children:`Your Rights under the GDPR`}),` 921`,(0,H.jsx)(t.p,{children:`The Company undertakes to respect the confidentiality of Your Personal Data and to guarantee You can exercise Your rights.`}),` 922`,(0,H.jsx)(t.p,{children:`You have the right under this Privacy Policy, and by law if You are within the EU, to:`}),` 923`,(0,H.jsxs)(t.ul,{children:[` 924`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Request access to Your Personal Data.`}),` The right to access, update or delete the information We have on You. Whenever made possible, you can access, update or request deletion of Your Personal Data directly within Your Account settings section. If you are unable to perform these actions yourself, please contact Us to assist You. This also enables You to receive a copy of the Personal Data We hold about You.`]}),` 925`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Request restriction of processing.`}),` You have the right to ask Us to restrict processing of Your Personal Data in certain circumstances (for example, while We verify accuracy or consider an objection).`]}),` 926`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Request correction of the Personal Data that We hold about You.`}),` You have the right to have any incomplete or inaccurate information We hold about You corrected.`]}),` 927`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Object to processing of Your Personal Data.`}),` This right exists where We are relying on a legitimate interest as the legal basis for Our processing and there is something about Your particular situation, which makes You want to object to our processing of Your Personal Data on this ground. You also have the right to object where We are processing Your Personal Data for direct marketing purposes.`]}),` 928`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Request erasure of Your Personal Data.`}),` You have the right to ask Us to delete or remove Personal Data when there is no good reason for Us to continue processing it.`]}),` 929`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Request the transfer of Your Personal Data.`}),` We will provide to You, or to a third-party You have chosen, Your Personal Data in a structured, commonly used, machine-readable format. Please note that this right only applies to automated information which You initially provided consent for Us to use or where We used the information to perform a contract with You.`]}),` 930`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Withdraw Your consent.`}),` You have the right to withdraw Your consent on using your Personal Data. If You withdraw Your consent, We may not be able to provide You with access to certain specific functionalities of the Service.`]}),` 931`]}),` 932`,(0,H.jsx)(t.h3,{children:`Exercising of Your GDPR Data Protection Rights`}),` 933`,(0,H.jsx)(t.p,{children:`You may exercise Your rights of access, rectification, cancellation and opposition by contacting Us. Please note that we may ask You to verify Your identity before responding to such requests. If You make a request, We will try our best to respond to You as soon as possible. We generally respond within one month, and may extend by two further months where necessary, in accordance with applicable law.`}),` 934`,(0,H.jsx)(t.p,{children:`You have the right to complain to a Data Protection Authority about Our collection and use of Your Personal Data. For more information, if You are in the European Economic Area (EEA), please contact Your local data protection authority in the EEA.`}),` 935`,(0,H.jsx)(t.h2,{children:`CCPA/CPRA Privacy Notice (California Privacy Rights)`}),` 936`,(0,H.jsx)(t.p,{children:`This privacy notice section for California residents supplements the information contained in Our Privacy Policy and it applies solely to all visitors, users, and others who reside in the State of California.`}),` 937`,(0,H.jsx)(t.h3,{children:`Categories of Personal Information Collected`}),` 938`,(0,H.jsx)(t.p,{children:`We collect information that identifies, relates to, describes, references, is capable of being associated with, or could reasonably be linked, directly or indirectly, with a particular Consumer or Device. The following is a list of categories of personal information which We may collect or may have been collected from California residents within the last twelve (12) months.`}),` 939`,(0,H.jsx)(t.p,{children:`Please note that the categories and examples provided in the list below are those defined in the CCPA/CPRA. This does not mean that all examples of that category of personal information were in fact collected by Us, but reflects our good faith belief to the best of Our knowledge that some of that information from the applicable category may be and may have been collected. For example, certain categories of Personal Information would only be collected if You provided such personal information directly to Us.`}),` 940`,(0,H.jsxs)(t.ul,{children:[` 941`,(0,H.jsxs)(t.li,{children:[` 942`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category A: Identifiers.`})}),` 943`,(0,H.jsx)(t.p,{children:`Examples: A real name, alias, postal address, unique personal identifier, online identifier, Internet Protocol address, email address, account name, driver's license number, passport number, or other similar identifiers.`}),` 944`,(0,H.jsx)(t.p,{children:`Collected: Yes.`}),` 945`]}),` 946`,(0,H.jsxs)(t.li,{children:[` 947`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category B: Personal information categories listed in the California Customer Records statute (Cal. Civ. Code § 1798.80(e)).`})}),` 948`,(0,H.jsx)(t.p,{children:`Examples: A name, signature, physical characteristics or description, address, telephone number, passport number, driver's license or state identification card number, insurance policy number, education, employment, employment history, bank account number,
948credit card number, debit card number, or any other financial information, medical information, or health insurance information.`}),` 949`,(0,H.jsx)(t.p,{children:`Some personal information included in this category may overlap with other categories.`}),` 950`,(0,H.jsx)(t.p,{children:`Collected: Yes.`}),` 951`]}),` 952`,(0,H.jsxs)(t.li,{children:[` 953`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category C: Protected classification characteristics under California or federal law.`})}),` 954`,(0,H.jsx)(t.p,{children:`Examples: Age (40 years or older), race, color, ancestry, national origin, citizenship, religion or creed, marital status, medical condition, physical or mental disability, sex (including gender, gender identity, gender expression, pregnancy or childbirth and related medical conditions), sexual orientation, veteran or military status, genetic information (including familial genetic information).`}),` 955`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 956`]}),` 957`,(0,H.jsxs)(t.li,{children:[` 958`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category D: Commercial information.`})}),` 959`,(0,H.jsx)(t.p,{children:`Examples: Records of personal property, products or services purchased, obtained, or considered, or other purchasing or consuming histories or tendencies.`}),` 960`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 961`]}),` 962`,(0,H.jsxs)(t.li,{children:[` 963`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category E: Biometric information.`})}),` 964`,(0,H.jsx)(t.p,{children:`Examples: Genetic, physiological, behavioral, and biological characteristics, or activity patterns used to extract a template or other identifier or identifying information, such as, fingerprints, faceprints, and voiceprints, iris or retina scans, keystroke, gait, or other physical patterns, and sleep, health, or exercise data.`}),` 965`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 966`]}),` 967`,(0,H.jsxs)(t.li,{children:[` 968`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category F: Internet or other similar network activity.`})}),` 969`,(0,H.jsx)(t.p,{children:`Examples: Browsing history, search history, information on a consumer's interaction with a website, application, or advertisement.`}),` 970`,(0,H.jsx)(t.p,{children:`Collected: Yes.`}),` 971`]}),` 972`,(0,H.jsxs)(t.li,{children:[` 973`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category G: Geolocation data.`})}),` 974`,(0,H.jsx)(t.p,{children:`Examples: Approximate physical location, physical location or movements.`}),` 975`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 976`]}),` 977`,(0,H.jsxs)(t.li,{children:[` 978`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category H: Sensory data.`})}),` 979`,(0,H.jsx)(t.p,{children:`Examples: Audio, electronic, visual, thermal, olfactory, or similar information.`}),` 980`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 981`]}),` 982`,(0,H.jsxs)(t.li,{children:[` 983`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category I: Professional or employment-related information.`})}),` 984`,(0,H.jsx)(t.p,{children:`Examples: Current or past job history or performance evaluations.`}),` 985`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 986`]}),` 987`,(0,H.jsxs)(t.li,{children:[` 988`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category J: Non-public education information (per the Family Educational Rights and Privacy Act (20 U.S.C. Section 1232g, 34 C.F.R. Part 99)).`})}),` 989`,(0,H.jsx)(t.p,{children:`Examples: education records directly related to a student maintained by an educational institution or party acting on its behalf, such as grades, transcripts, class lists, student schedules, student identification codes, student financial information, or student disciplinary records.`}),` 990`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 991`]}),` 992`,(0,H.jsxs)(t.li,{children:[` 993`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category K: Inferences drawn from other personal information.`})}),` 994`,(0,H.jsx)(t.p,{children:`Examples: Profile reflecting a person's preferences, characteristics, psychological trends, predispositions, behavior, attitudes, intelligence, abilities, and aptitudes.`}),` 995`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 996`]}),` 997`,(0,H.jsxs)(t.li,{children:[` 998`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category L: Sensitive personal information.`})}),` 999`,(0,H.jsx)(t.p,{children:`Examples: Government-issued identifying numbers, financial account details, genetic data, precise geolocation, race or ethnicity, religious or philosophical beliefs, union membership, mail, email, text messages, biometric data, health data, and sexual orientation or sex life.`}),` 1000`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 1001`]}),` 1002`]}),` 1003`,(0,H.jsx)(t.p,{children:`Under CCPA/CPRA, Personal Information does not include:`}),` 1004`,(0,H.jsxs)(t.ul,{children:[` 1005`,(0,H.jsx)(t.li,{children:`Publicly available information from government records`}),` 1006`,(0,H.jsx)(t.li,{children:`Deidentified or aggregated consumer information`}),` 1007`,(0,H.jsxs)(t.li,{children:[`Information excluded from the CCPA/CPRA's scope, such as:`,` 1008`,(0,H.jsxs)(t.ul,{children:[` 1009`,(0,H.jsx)(t.li,{children:`Health or medical information covered by the Health Insurance Portability and Accountability Act of 1996 (HIPAA) and the California Confidentiality of Medical Information Act (CMIA) or clinical trial data`}),` 1010`,(0,H.jsx)(t.li,{children:`Personal Information covered by certain sector-specific privacy laws, including the Fair Credit Reporting Act (FRCA), the Gramm-Leach-Bliley Act (GLBA) or California Financial Information Privacy Act (FIPA), and the Driver's Privacy Protection Act of 1994`}),` 1011`]}),` 1012`]}),` 1013`]}),` 1014`,(0,H.jsx)(t.h3,{children:`Sources of Personal Information`}),` 1015`,(0,H.jsx)(t.p,{children:`We obtain the categories of personal information listed above from the following categories of sources:`}),` 1016`,(0,H.jsxs)(t.ul,{children:[` 1017`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Directly from You`}),`. For example, from the forms You complete on our Service, preferences You express or provide through our Service.`]}),` 1018`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Indirectly from You`}),`. For example, from observing Your activity on our Service.`]}),` 1019`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Automatically from You`}),`. For example, through cookies We or our Service Providers set on Your Device as You navigate through our Service.`]}),` 1020`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`From Service Providers`}),`. For example, third-party vendors to monitor and analyze the use of our Service, or other third-party vendors that We use to provide the Service to You.`]}),` 1021`]}),` 1022`,(0,H.jsx)(t.h3,{children:`Use of Personal Information`}),` 1023`,(0,H.jsx)(t.p,{children:`We may use or disclose personal information We collect for "business purposes" or "commercial purposes" (as defined under the CCPA/CPRA), which may include the following examples:`}),` 1024`,(0,H.jsxs)(t.ul,{children:[` 1025`,(0,H.jsx)(t.li,{children:`To operate our Service and provide You with Our Service.`}),` 1026`,(0,H.jsx)(t.li,{children:`To provide You with support and to respond to Your inquiries, including to investigate and address Your concerns and monitor and improve our Service.`}),` 1027`,(0,H.jsx)(t.li,{children:`To fulfill or meet the reason You provided the information. For example, if You share Your contact information to ask a question about our Service, We will use that personal information to respond to Your inquiry.`}),` 1028`,(0,H.jsx)(t.li,{children:`To respond to law enforcement requests and as required by applicable law, court order, or governmental regulations.`}),` 1029`,(0,H.jsx)(t.li,{children:`As described to You when collecting Your personal information or as otherwise set forth in the CCPA/CPRA.`}),` 1030`,(0,H.jsx)(t.li,{children:`For internal administrative and auditing purposes.`}),` 1031`,(0,H.jsx)(t.li,{children:`To detect security incidents and protect against malicious, deceptive, fraudulent or illegal activity, including, when necessary, to prosecute those responsible for such activities.`}),` 1032`,(0,H.jsx)(t.li,{children:`Other purposes consistent with the context in which the information was collected, or as otherwise disclosed to You at the time of collection.`}),` 1033`]}),` 1034`,(0,H.jsx)(t.p,{children:`Please note that the examples provided above are illustrative and not intended to be exhaustive. For more details on how we use this information, please refer to the "Use of Your Personal Information" section.`}),` 1035`,(0,H.jsx)(t.p,{children:`If We decide to collect additional categories of personal information or use the personal information We collected for materially different, unrelated, or incompatible purposes, We will update this Privacy Policy.`}),` 1036`,(0,H.jsx)(t.h3,{children:`Disclosure of Personal Information`}),` 1037`,(0,H.jsx)(t.p,{children:`We may use or disclose and may have used or disclosed in the last twelve (12) months the following categories of personal information for business or commercial purposes:`}),` 1038`,(0,H.jsxs)(t.ul,{children:[` 1039`,(0,H.jsxs)(t.li,{children:[` 1040`,(0,H.jsx)(t.p,{children:`Category A: Identifiers`}),` 1041`]}),` 1042`,(0,H.jsxs)(t.li,{children:[` 1043`,(0,H.jsx)(t.p,{children:`Category B: Personal information categories listed in the California Customer Records statute (Cal. Civ. Code § 1798.80(e))`}),` 1044`]}),` 1045`,(0,H.jsxs)(t.li,{children:[` 1046`,(0,H.jsx)(t.p,{children:`Category F: Internet or other similar network activity`}),` 1047`]}),` 1048`]}),` 1049`,(0,H.jsx)(t.p,{children:`Please note that the categories listed above are those defined in the CCPA/CPRA. This does not mean that all examples of that category of personal information were in fact disclosed, but reflects our good faith belief to the best of our knowledge that some of that information from the applicable category may be and may have been disclosed.`}),` 1050`,(0,H.jsx)(t.p,{children:`When We disclose Personal Information for a business purpose or a commercial purpose, We enter a contract that describes the purpose and requires the recipient to both keep that personal information confidential and n
1050ot use it for any purpose except performing the contract.`}),` 1051`,(0,H.jsx)(t.h3,{children:`Sharing of Personal Information`}),` 1052`,(0,H.jsx)(t.p,{children:`We may share, and have shared in the last twelve (12) months, Your personal information identified in the above categories with the following categories of third parties:`}),` 1053`,(0,H.jsxs)(t.ul,{children:[` 1054`,(0,H.jsxs)(t.li,{children:[` 1055`,(0,H.jsx)(t.p,{children:`Service Providers`}),` 1056`]}),` 1057`,(0,H.jsxs)(t.li,{children:[` 1058`,(0,H.jsx)(t.p,{children:`Our affiliates`}),` 1059`]}),` 1060`,(0,H.jsxs)(t.li,{children:[` 1061`,(0,H.jsx)(t.p,{children:`Our business partners`}),` 1062`]}),` 1063`,(0,H.jsxs)(t.li,{children:[` 1064`,(0,H.jsx)(t.p,{children:`Third-party vendors to whom You or Your agents authorize Us to disclose Your personal information in connection with products or services We provide to You`}),` 1065`]}),` 1066`]}),` 1067`,(0,H.jsx)(t.h3,{children:`Sale of Personal Information`}),` 1068`,(0,H.jsx)(t.p,{children:`As defined in the CCPA/CPRA, "sell" and "sale" mean selling, renting, releasing, disclosing, disseminating, making available, transferring, or otherwise communicating orally, in writing, or by electronic or other means, a Consumer's personal information by the Business to a third party for valuable consideration. This means that We may have received some kind of benefit in return for sharing personal information, but not necessarily a monetary benefit.`}),` 1069`,(0,H.jsx)(t.p,{children:`We do not "sell" or "share" information as most people would commonly understand these terms â meaning We do not, and will not, disclose Your Personal Information in direct exchange for money or some other form of payment.`}),` 1070`,(0,H.jsx)(t.p,{children:`We allow Our Service Providers to use Your personal information for the business purposes described in Our Privacy Policy, for activities such as advertising, marketing, and analytics, and these may be deemed a "sale" under CCPA/CPRA. For example, when We promote Our Service, We use Service Providers that market Our Service online, measure the marketing efforts, identify users that are interested in Our Service, etc. This is done by placing tracking technologies on our website such as cookies, tags, pixels, or similar, and by placing these technologies, online identifiers and online behavior information is shared with such vendors, including for "cross-context behavioral advertising". Under the CCPA, these practices are defined as "sharing" or "selling" Personal Information.`}),` 1071`,(0,H.jsx)(t.p,{children:`We may disclose or may have disclosed in the last twelve (12) months the following categories in a manner that may be considered a "sale" or "sharing" as defined in CCPA/CPRA:`}),` 1072`,(0,H.jsxs)(t.ul,{children:[` 1073`,(0,H.jsxs)(t.li,{children:[` 1074`,(0,H.jsx)(t.p,{children:`Category A: Identifiers`}),` 1075`]}),` 1076`,(0,H.jsxs)(t.li,{children:[` 1077`,(0,H.jsx)(t.p,{children:`Category B: Personal information categories listed in the California Customer Records statute (Cal. Civ. Code § 1798.80(e))`}),` 1078`]}),` 1079`,(0,H.jsxs)(t.li,{children:[` 1080`,(0,H.jsx)(t.p,{children:`Category F: Internet or other similar network activity`}),` 1081`]}),` 1082`]}),` 1083`,(0,H.jsx)(t.p,{children:`Please note that the categories listed above are those defined in the CCPA/CPRA. This does not mean that all examples of that category of personal information were in fact sold, but reflects our good faith belief to the best of Our knowledge that some of that information from the applicable category may be and may have been shared for value in return.`}),` 1084`,(0,H.jsx)(t.h3,{children:`Retention of Personal Information`}),` 1085`,(0,H.jsx)(t.p,{children:`We retain California residents' Personal Information for as long as reasonably necessary to achieve the purposes described in this Privacy Policy (including the purposes disclosed in this CCPA/CPRA notice), taking into account: (i) how long we need the information to provide and maintain the Service and Your Account;
1085 (ii) whether You have requested deletion (subject to applicable exceptions); (iii) Our legal, tax, accounting, and regulatory obligations; (iv) security, fraud prevention, and abuse monitoring needs; and (v) the time periods needed to resolve disputes and enforce Our agreements.`}),` 1086`,(0,H.jsx)(t.p,{children:`Specific retention periods for major data categories are described in the "Retention of Your Personal Information" section of Our Privacy Policy, and We may retain certain information longer where required or permitted by law (for example, to comply with recordkeeping obligations or to establish, exercise, or defend legal claims).`}),` 1087`,(0,H.jsx)(t.h3,{children:`Sale of Personal Information of Minors Under 16 Years of Age`}),` 1088`,(0,H.jsx)(t.p,{children:`We do not knowingly collect personal information from minors under the age of 16 through our Service, although certain third party websites that we link to may do so. These third-party websites have their own terms of use and privacy policies and We encourage parents and legal guardians to monitor their children's Internet usage and instruct their children to never provide information on other websites without their permission.`}),` 1089`,(0,H.jsx)(t.p,{children:`We do not sell the Personal Information of Consumers We actually know are less than 16 years of age, unless We receive affirmative authorization (the "right to opt-in") from the parent or guardian of a Consumer less than 16 years of age. Consumers who opt-in to the sale of personal information may opt-out of future sales at any time. To exercise the right to opt-out, You (or Your authorized representative) may submit a request to Us by contacting Us.`}),` 1090`,(0,H.jsx)(t.p,{children:`If You have reason to believe that a child under the age of 16 has provided Us with personal information, please contact Us with sufficient detail to enable Us to delete that information.`}),` 1091`,(0,H.jsx)(t.h3,{children:`Your Rights under the CCPA/CPRA`}),` 1092`,(0,H.jsx)(t.p,{children:`The CCPA/CPRA provides California residents with specific rights regarding their personal information. If You are a resident of California, You have the following rights:`}),` 1093`,(0,H.jsxs)(t.ul,{children:[` 1094`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The right to notice.`}),` You have the right to be notified which categories of Personal Information are being collected and the purposes for which the Personal Information is being used.`]}),` 1095`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The right to know/access.`}),` Under CCPA/CPRA, You have the right to request that We disclose information to You about Our collection, use, sale, disclosure for business purposes and share of personal information. Once We receive and confirm Your request, We will disclose to You:`,` 1096`,(0,H.jsxs)(t.ul,{children:[` 1097`,(0,H.jsx)(t.li,{children:`The categories of personal information We collected about You`}),` 1098`,(0,H.jsx)(t.li,{children:`The categories of sources for the personal information We collected about You`}),` 1099`,(0,H.jsx)(t.li,{children:`Our business or commercial purposes for collecting or selling that personal information`}),` 1100`,(0,H.jsx)(t.li,{children:`The categories of third parties with whom We share that personal information`}),` 1101`,(0,H.jsx)(t.li,{children:`The specific pieces of personal information We collected about You`}),` 1102`,(0,H.jsxs)(t.li,{children:[`If we sold Your personal information or disclosed Your personal information for a business purpose, We will disclose to You:`,` 1103`,(0,H.jsxs)(t.ul,{children:[` 1104`,(0,H.jsx)(t.li,{children:`The categories of personal information categories sold`}),` 1105`,(0,H.jsx)(t.li,{children:`The categories of personal information categories disclosed`}),` 1106`]}),` 1107`]}),` 1108`]}),` 1109`]}),` 1110`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The right to say no to the sale or sharing of Personal Information (opt-out).`}),` You have the right to direct Us to not sell Your personal information. To submit an opt-out request, please see the "Do Not Sell or Share My Personal Information" section or contact Us.`]}),` 1111`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The r
1111ight to correct Personal Information.`}),` You have the right to correct or rectify any inaccurate personal information about You that We collected. Once We receive and confirm Your request, We will use commercially reasonable efforts to correct (and direct our Service Providers to correct) Your personal information, unless an exception applies.`]}),` 1112`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The right to limit use and disclosure of sensitive Personal Information.`}),` You have the right to request to limit the use or disclosure of certain sensitive personal information We collected about You, unless an exception applies. To submit, please see the "Limit the Use or Disclosure of My Sensitive Personal Information" section or contact Us.`]}),` 1113`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The right to delete Personal Information.`}),` You have the right to request the deletion of Your Personal Information under certain circumstances, subject to certain exceptions. Once We receive and confirm Your request, We will delete (and direct Our Service Providers to delete) Your personal information from our records, unless an exception applies. We may deny Your deletion request if retaining the information is necessary for Us or Our Service Providers to:`,` 1114`,(0,H.jsxs)(t.ul,{children:[` 1115`,(0,H.jsx)(t.li,{children:`Complete the transaction for which We collected the personal information, provide a good or service that You requested, take actions reasonably anticipated within the context of our ongoing business relationship with You, or otherwise perform our contract with You.`}),` 1116`,(0,H.jsx)(t.li,{children:`Detect security incidents, protect against malicious, deceptive, fraudulent, or illegal activity, or prosecute those responsible for such activities.`}),` 1117`,(0,H.jsx)(t.li,{children:`Debug products to identify and repair errors that impair existing intended functionality.`}),` 1118`,(0,H.jsx)(t.li,{children:`Exercise free speech, ensure the right of another consumer to exercise their free speech rights, or exercise another right provided for by law.`}),` 1119`,(0,H.jsx)(t.li,{children:`Comply with the California Electronic Communications Privacy Act (Cal. Penal Code § 1546 et. seq.).`}),` 1120`,(0,H.jsx)(t.li,{children:`Engage in public or peer-reviewed scientific, historical, or statistical research in the public interest that adheres to all other applicable ethics and privacy laws, when the information's deletion may likely render impossible or seriously impair the research's achievement, if You previously provided informed consent.`}),` 1121`,(0,H.jsx)(t.li,{children:`Enable solely internal uses that are reasonably aligned with consumer expectations based on Your relationship with Us.`}),` 1122`,(0,H.jsx)(t.li,{children:`Comply with a legal obligation.`}),` 1123`,(0,H.jsx)(t.li,{children:`Make other internal and lawful uses of that information that are compatible with the context in which You provided it.`}),` 1124`]}),` 1125`]}),` 1126`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The right not to be discriminated against.`}),` You have the right not to be discriminated against for exercising any of Your consumer's rights, including by:`,` 1127`,(0,H.jsxs)(t.ul,{children:[` 1128`,(0,H.jsx)(t.li,{children:`Denying goods or services to You`}),` 1129`,(0,H.jsx)(t.li,{children:`Charging different prices or rates for goods or services, including the use of discounts or other benefits or imposing penalties`}),` 1130`,(0,H.jsx)(t.li,{children:`Providing a different level or quality of goods or services to You`}),` 1131`,(0,H.jsx)(t.li,{children:`Suggesting that You will receive a different price or rate for goods or services or a different level or quality of goods or services`}),` 1132`]}),` 1133`]}),` 1134`]}),` 1135`,(0,H.jsx)(t.h3,{children:`Exercising Your CCPA/CPRA Data Protection Rights`}),` 1136`,(0,H.jsx)(t.p,{children:`Please see the "Do Not Sell or Share My Personal Information" section and "Limit the Use or Disclosure of My Sensitive Personal Information" section for more information on how to opt out and limit the use of sensitive information collected.`}),` 1137`,(0,H.jsx)(t.p,{children:`Additionally, in order to exercise any of Your rights under the CCPA/CPRA, and if You are a California resident, You can contact Us:`}),` 1138`,(0,H.jsxs)(t.ul,{children:[` 1139`,(0,H.jsxs)(t.li,{children:[`By email: `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`})]}),` 1140`]}),` 1141`,(0,H.jsx)(t.p,{children:`Only You, or a person registered with the California Secretary of State that You authorize to act on Your behalf, may make a verifiable request related to Your personal information.`}),` 1142`,(0,H.jsx)(t.p,{children:`Your request to Us must:`}),` 1143`,(0,H.jsxs)(t.ul,{children:[` 1144`,(0,H.jsx)(t.li,{children:`Provide sufficient information that allows Us to reasonably verify You are the person about whom We collected Personal Information or an authorized representative`}),` 1145`,(0,H.jsx)(t.li,{children:`Describe Your request with sufficient detail that allows Us to properly understand, evaluate, and respond to it`}),` 1146`]}),` 1147`,(0,H.jsx)(t.p,{children:`We cannot respond to Your request or provide You with the required information if We cannot:`}),` 1148`,(0,H.jsxs)(t.ul,{children:[` 1149`,(0,H.jsx)(t.li,{children:`Verify Your identity or authority to make the request`}),` 1150`,(0,H.jsx)(t.li,{children:`And confirm that the personal information relates to You`}),` 1151`]}),` 1152`,(0,H.jsx)(t.p,{children:`We will disclose and deliver the required information free of charge within 45 days of receiving Your verifiable request. The time period to provide the required information may be extended once by an additional 45 days when reasonably necessary and with prior notice.`}),` 1153`,(0,H.jsx)(t.p,{children:`Any disclosures We provide will only cover the 12-month period preceding the verifiable request's receipt.`}),` 1154`,(0,H.jsx)(t.p,{children:`For data portability requests, We will select a format to provide Your personal information that is readily usable and should allow You to transmit the information from one entity to another entity without hindrance.`}),` 1155`,(0,H.jsx)(t.h3,{children:`Do Not Sell or Share My Personal Information`}),` 1156`,(0,H.jsx)(t.p,{children:`As defined in the CCPA/CPRA, "sell" and "sale" mean selling, renting, releasing, disclosing, disseminating, making available, transferring, or otherwise communicating orally, in writing, or by electronic or other means, a Consumer's personal information by the Business to a third party for valuable consideration. This means that We may have received some kind of benefit in return for sharing personal information, but not necessarily a monetary benefit.`}),` 1157`,(0,H.jsx)(t.p,{children:`You have the right to opt-out of the "sale" of Your personal information. Once We receive and confirm a verifiable consumer request from You, We will stop "selling" Your Personal Information. To exercise Your right to opt-out, please contact Us or follow the below instructions.`}),` 1158`,(0,H.jsx)(t.p,{children:`The Service Providers we partner with (for example, our analytics or advertising partners) may use technology on the Service that sells personal information as defined by the CCPA/CPRA law. If You wish to opt out of the use of Your Personal Information for interest-based advertising purposes and these potential sales as defined under CCPA/CPRA law, You may do so by following the instructions below.`}),` 1159`,(0,H.jsx)(t.p,{children:`Please note that any opt out is specific to the browser You use. You may need to opt out on every browser that You use.`}),` 1160`,(0,H.jsx)(t.h4,{children:`Website`}),` 1161`,(0,H.jsx)(t.p,{children:`If applicable, click "Privacy Preferences", "Update Privacy Preferences" or "Do Not Sell or Share My Personal Information" buttons listed on the Service to review Your privacy preferences and opt out of cookies and other technologies that We may use. Please note that You will need to opt out from each browser that You use to access the Service.`}),` 1162`,(0,H.jsx)(t.p,{children:`Additionally, You can opt out of receiving ads that are personalized as served by our Service Providers by following our instructions presented on the Service:`}),` 1163`,(0,H.jsxs)(t.ul,{children:[` 1164`,(0,H.jsxs)(t.li,{children:[`The NAI's opt-out platform: `,(0,H.jsx)(t.a,{href:`http://www.networka
1164dvertising.org/choices/`,children:`http://www.networkadvertising.org/choices/`})]}),` 1165`,(0,H.jsxs)(t.li,{children:[`The EDAA's opt-out platform `,(0,H.jsx)(t.a,{href:`http://www.youronlinechoices.com/`,children:`http://www.youronlinechoices.com/`})]}),` 1166`,(0,H.jsxs)(t.li,{children:[`The DAA's opt-out platform: `,(0,H.jsx)(t.a,{href:`http://optout.aboutads.info/?c=2&lang=EN`,children:`http://optout.aboutads.info/?c=2&lang=EN`})]}),` 1167`]}),` 1168`,(0,H.jsx)(t.p,{children:`The opt-out will place a cookie on Your computer that is unique to the browser You use to opt out. If you change browsers or delete the cookies saved by Your browser, You will need to opt out again.`}),` 1169`,(0,H.jsx)(t.h4,{children:`Mobile Devices`}),` 1170`,(0,H.jsx)(t.p,{children:`Your mobile device may give You the ability to opt out of the use of information about the apps You use in order to serve You ads that are targeted to Your interests:`}),` 1171`,(0,H.jsxs)(t.ul,{children:[` 1172`,(0,H.jsx)(t.li,{children:`"Opt out of Interest-Based Ads" or "Opt out of Ads Personalization" on Android devices`}),` 1173`,(0,H.jsx)(t.li,{children:`"Limit Ad Tracking" on iOS devices`}),` 1174`]}),` 1175`,(0,H.jsx)(t.p,{children:`You can also stop the collection of location information from Your mobile device by changing the preferences on Your mobile device.`}),` 1176`,(0,H.jsx)(t.h3,{children:`Limit the Use or Disclosure of My Sensitive Personal Information`}),` 1177`,(0,H.jsx)(t.p,{children:`If You are a California resident, You have the right to limit the use and disclosure of Your sensitive personal information to that use which is necessary to perform the services or provide the goods reasonably expected by an average consumer who requests such services or goods.`}),` 1178`,(0,H.jsx)(t.p,{children:`We collect, use and disclose sensitive personal information in ways that are necessary to provide the Service. For more information on how We use Your personal information, please see the "Use of Your Personal Information" section or contact us.`}),` 1179`,(0,H.jsx)(t.p,{children:`To submit a request to limit the use or disclosure of sensitive personal information, please contact Us using the methods listed in the "Contact Us" section of Our Privacy Policy.`}),` 1180`,(0,H.jsx)(t.h2,{children:`"Do Not Track" Policy as Required by California Online Privacy Protection Act (CalOPPA)`}),` 1181`,(0,H.jsx)(t.p,{children:`Our Service does not respond to Do Not Track signals.`}),` 1182`,(0,H.jsx)(t.p,{children:`However, some third-party websites do keep track of Your browsing activities. If You are visiting such websites, You can set Your preferences in Your web browser to inform websites that You do not want to be tracked. You can enable or disable DNT by visiting the preferences or settings page of Your web browser.`}),` 1183`,(0,H.jsx)(t.h2,{children:`Your California Privacy Rights (California's Shine the Light law)`}),` 1184`,(0,H.jsx)(t.p,{children:`Under California Civil Code Section 1798 (California's Shine the Light law), California residents with an established business relationship with Us can request information once a year about sharing their Personal Data with third parties for the third parties' direct marketing purposes.`}),` 1185`,(0,H.jsx)(t.p,{children:`If you'd like to request more information under the California Shine the Light law, and if You are a California resident, You can contact Us using the contact information provided below.`}),` 1186`,(0,H.jsx)(t.h2,{children:`California Privacy Rights for Minor Users (California Business and Professions Code Section 22581)`}),` 1187`,(0,H.jsx)(t.p,{children:`California Business and Professions Code Section 22581 allows California residents under the age of 18 who are registered users of online sites, services or applications to request and obtain removal of content or information they have publicly posted.`}),` 1188`,(0,H.jsx)(t.p,{children:`To request removal of such data, and if You are a California resident, You can contact Us using the contact information provided below, and include the email address associated with Your Account.`}),` 1189`,(0,H.jsx)(t.p,{children:`Be aware that Your request does not guarantee complete or comprehensive removal of content or information posted online and that the law may not permit or require removal in certain circumstances.`}),` 1190`,(0,H.jsx)(t.h2,{children:`Children's Privacy`}),` 1191`,(0,H.jsx)(t.p,{children:`Our Service does not address anyone under the age of 16. We do not knowingly collect personally identifiable information from anyone under the age of 16. If You are a parent or guardian and You are aware that Your child has provided Us with Personal Data, please contact Us. If We become aware that We have collected Personal Data from anyone under the age of 16 without verification of parental consent, We take steps to remove that information from Our servers.`}),` 1192`,(0,H.jsx)(t.p,{children:`If We need to rely on consent as a legal basis for processing Your information and Your country requires consent from a parent, We may require Your parent's consent before We collect and use that information.`}),` 1193`,(0,H.jsx)(t.h2,{children:`Links to Other Websites`}),` 1194`,(0,H.jsx)(t.p,{children:`Our Service may contain links to other websites that are not operated by Us. If You click on a third party link, You will be directed to that third party's site. We strongly advise You to review the Privacy Policy of every site You visit.`}),` 1195`,(0,H.jsx)(t.p,{children:`We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services.`}),` 1196`,(0,H.jsx)(t.h2,{children:`Changes to this Privacy Policy`}),` 1197`,(0,H.jsx)(t.p,{children:`We may update Our Privacy Policy from time to time. We will notify You of any changes by posting the new Privacy Policy on this page.`}),` 1198`,(0,H.jsx)(t.p,{children:`We will let You know via email and/or a prominent notice on Our Service, prior to the change becoming effective and update the "Last updated" date at the top of this Privacy Policy.`}),` 1199`,(0,H.jsx)(t.p,{children:`You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.`}),` 1200`,(0,H.jsx)(t.h2,{children:`Contact Us`}),` 1201`,(0,H.jsx)(t.p,{children:`If you have any questions about this Privacy Policy, You can contact us:`}),` 1202`,(0,H.jsxs)(t.ul,{children:[` 1203`,(0,H.jsxs)(t.li,{children:[`By email: `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`})]}),` 1204`]})]})}function lO(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(cO,{...e})}):cO(e)}var uO=e({default:()=>fO,frontmatter:()=>void 0});function dO(e){let t={a:`a`,em:`em`,h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.h1,{children:`Privacy Policy`}),` 1205`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Last updated: 06 July 2026`})}),` 1206`,(0,H.jsxs)(t.p,{children:[`This Privacy Policy explains what personal information we collect when you use our website at entire.io or other services ("`,(0,H.jsx)(t.strong,{children:`our services`}),`"), how we use and share that information, and what rights you have.`]}),` 1207`,(0,H.jsx)(t.p,{children:`By using our services, you agree to the collection and use of information in accordance with this Privacy Policy.`}),` 1208`,(0,H.jsxs)(t.p,{children:[`When we say "`,(0,H.jsx)(t.strong,{children:`we`}),`", "`,(0,H.jsx)(t.strong,{children:`us`}),`" or "`,(0,H.jsx)(t.strong,{children:`our`}),`" in this Privacy Policy, that means `,(0,H.jsx)(t.strong,{children:`Entire Inc`}),`, registered in the State of Delaware, United States.`]}),` 1209`,(0,H.jsxs)(t.p,{children:[`"`,(0,H.jsx)(t.strong,{children:`you`}),`" means the individual accessing or using our services (or the company or other legal entity on behalf of which you are accessing or using our services, as applicable).`]}),` 1210`,(0,H.jsxs)(t.p,{children:[`When we refer to "`,(0,H.jsx)(t.strong,{children:`personal information`}),`" we mean any information that relates to an identified or identifiable individual, including information that is "personal data" under the European GDPR and UK GDPR and/
1210or "personal information" under the Californian CCPA (see the GDPR and CCPA specific sections of this Privacy Policy below). We refer to "personal data" in the GDPR sections, as that's the terminology defined and used in the GDPR.`]}),` 1211`,(0,H.jsx)(t.p,{children:`Where we process personal information on behalf of an organization â for example, an organization that provisions accounts for its members or that owns repositories on our services â under a Data Processing Agreement or similar terms, that organization is the controller of that personal information and we act as its processor. In those cases the organization's own privacy notice and its agreement with us govern that processing, and you should direct privacy requests to the organization. This Privacy Policy describes the personal information we process as a controller.`}),` 1212`,(0,H.jsx)(t.h2,{children:`1. Collecting and Using Your Personal Information`}),` 1213`,(0,H.jsx)(t.h3,{children:`1.1 Types of Data Collected`}),` 1214`,(0,H.jsx)(t.h4,{children:`(a) Personal Information`}),` 1215`,(0,H.jsx)(t.p,{children:`While using our Service â or when you contact us, register for an event, or otherwise inquire about or express interest in our services â we may ask you to provide us with certain personal information that can be used to contact or identify you, for example your name and email address.`}),` 1216`,(0,H.jsx)(t.h4,{children:`(b) Usage Data`}),` 1217`,(0,H.jsx)(t.p,{children:`Usage data (i.e. data generated by the use of our services or from our services infrastructure itself (for example, the duration of a page visit) is collected automatically when using our services.`}),` 1218`,(0,H.jsx)(t.p,{children:`usage data may include information such as your device's Internet Protocol address (e.g. IP address), browser type, browser version, the pages of our services that you visit, the time and date of your visit, the time spent on those pages, unique device identifiers and other diagnostic data.`}),` 1219`,(0,H.jsx)(t.p,{children:`When you access our services by or through a mobile device, we may collect certain information automatically, including, but not limited to, the type of mobile device you use, your mobile device's unique ID, the IP address of your mobile device, your mobile operating system, the type of mobile Internet browser you use, unique device identifiers and other diagnostic data.`}),` 1220`,(0,H.jsx)(t.p,{children:`We may also collect information that your browser sends whenever you visit our website or when you access our services by or through a mobile device.`}),` 1221`,(0,H.jsx)(t.h4,{children:`(c) Information from sign-in providers`}),` 1222`,(0,H.jsx)(t.p,{children:`We allow you to create an account and log in to use our services through third-party sign-in providers. These include GitHub and, through our authentication provider, identity providers such as Google and Microsoft and, for organizations, single sign-on (SSO). If you register or log in through one of these providers, or otherwise grant us access to your account with them, we may collect personal information already associated with that account, such as your name, username, and email address, and (in the case of GitHub) your public profile and activity associated with that account.`}),` 1223`,(0,H.jsx)(t.p,{children:`You may also have the option of sharing additional information with us through these accounts. If you choose to provide such information and/or personal information, during registration or otherwise, you are giving us permission to use, share, and store it in a manner consistent with this Privacy Policy.`}),` 1224`,(0,H.jsx)(t.h4,{children:`(d) Imported content from third-party sources`}),` 1225`,(0,H.jsxs)(t.p,{children:[`If you authorize us to import, mirror, or synchronize Content from a third-party source (for example, a code hosting provider such as GitHub), (called "`,(0,H.jsx)(t.strong,{children:`imported content`}),`") we receive and process imported content on your behalf. Imported content may include repository files and contents, commit messages and metadata, issue and pull request titles, descriptions and comments, branch and release metadata, and similar materials made available by the third-party source.`]}),` 1226`,(0,H.jsx)(t.p,{children:`Imported content may contain personal information relating to individuals other than you â for example, the names, email addresses, and usernames of co-contributors, commit authors, issue participants, and reviewers associated with repositories you authorize us to access. We receive this personal information from the third-party source as a necessary consequence of operating the import, mirror, or synchronization you have directed.`}),` 1227`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Purposes and legal basis.`}),` We process imported content to provide and operate our services on your behalf and to perform the integration you have authorized. For purposes of the GDPR, we rely on the performance of a contract with you and, with respect to third-party personal information contained in imported content, on our legitimate interests in operating our services you have requested, balanced against the rights of those third parties. Where required, we will assist you in identifying a lawful basis appropriate to your use of imported content.`]}),` 1228`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Retention and deletion.`}),` imported content is retained in accordance with the "Retention of your personal information" section. Revoking your authorization for a third-party source stops future import, mirror, or synchronization from that third-party source; it does not by itself delete imported content that has already been received. You may request deleti
1228on of imported content by contacting us at the address in the "Contact us" section.`]}),` 1229`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Rights of third parties.`}),` Individuals whose personal information appears in imported content (such as co-contributors) may exercise rights with respect to that personal information. Where we hold such personal information solely as a result of your authorization, you remain primarily responsible for responding to such requests, and we will, on request and where reasonably practicable, assist in forwarding or responding to such requests in accordance with applicable law. Contact: `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`.`]}),` 1230`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Your responsibilities.`}),` You are responsible for ensuring that your authorization of the import, mirror, or synchronization is consistent with your agreements with the third-party source and with any organization, enterprise, or access-control policies that apply. See the "third-party source Integrations" section of our Terms of Service.`]}),` 1231`,(0,H.jsx)(t.h4,{children:`(e) Cookies and other Tracking Technologies`}),` 1232`,(0,H.jsx)(t.p,{children:`We use small files placed on your device known as 'cookies' and similar tracking technologies to track the activity on our services and store certain information. Tracking technologies we use include beacons, tags, and scripts to collect and track information and to improve and analyze our services. The technologies we use may include:`}),` 1233`,(0,H.jsxs)(t.ul,{children:[` 1234`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Cookies or Browser Cookies.`}),` A cookie is a small file placed on your device. You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. However, if you do not accept cookies, you may not be able to use some parts of our services.`]}),` 1235`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Web Beacons.`}),` Certain sections of our services and our emails may contain small electronic files known as web beacons (also referred to as clear gifs, pixel tags, and single-pixel gifs) that permit us, for example, to count users who have visited those pages or opened an email and for other related website statistics (for example, recording the popularity of a certain section and verifying system and server integrity).`]}),` 1236`]}),` 1237`,(0,H.jsx)(t.p,{children:`Cookies can be "Persistent Cookies" or "Session Cookies". Persistent Cookies remain on your personal computer or mobile device when you go offline, while Session Cookies are deleted as soon as you close your web browser.`}),` 1238`,(0,H.jsx)(t.p,{children:`Where required by law, we use non-essential cookies (such as analytics, advertising, and remarketing cookies) only with your consent. You can withdraw or change your consent at any time using our cookie preferences tool (if available) or through your browser/device settings. Withdrawing consent does not affect the lawfulness of processing based on consent before its withdrawal.`}),` 1239`,(0,H.jsx)(t.p,{children:`We use both Session and Persistent Cookies for the purposes set out below:`}),` 1240`,(0,H.jsxs)(t.ul,{children:[` 1241`,(0,H.jsxs)(t.li,{children:[` 1242`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Necessary / Essential Cookies`})}),` 1243`]}),` 1244`,(0,H.jsxs)(t.li,{children:[` 1245`,(0,H.jsx)(t.p,{children:`Type: Session Cookies`}),` 1246`,(0,H.jsx)(t.p,{children:`Administered by: us`}),` 1247`,(0,H.jsx)(t.p,{children:`Purpose: These Cookies are essential to provide you with services available through our website and to enable you to use some of its features. They help to authenticate users and prevent fraudulent use of user accounts. Without these Cookies, the services that you have asked for cannot be provided, and we only use these Cookies to provide you with those services.`}),` 1248`]}),` 1249`,(0,H.jsxs)(t.li,{children:[` 1250`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Cookies Policy / Notice Acceptance Cookies`})}),` 1251`]}),` 1252`,(0,H.jsxs)(t.li,{children:[` 1253`,(0,H.jsx)(t.p,{children:`Type: Persistent Cookies`}),` 1254`,(0,H.jsx)(t.p,{children:`Administered by: us`}),` 1255`,(0,H.jsx)(t.p,{children:`Purpose: These Cookies identify if users have accepted the use of cookies on our website.`}),` 1256`]}),` 1257`,(0,H.jsxs)(t.li,{children:[` 1258`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Functionality Cookies`})}),` 1259`]}),` 1260`,(0,H.jsxs)(t.li,{children:[` 1261`,(0,H.jsx)(t.p,{children:`Type: Persistent Cookies`}),` 1262`,(0,H.jsx)(t.p,{children:`Administered by: us`}),` 1263`,(0,H.jsx)(t.p,{children:`Purpose: These Cookies allow us to remember choices you make when you use our website, such as remembering your login details or language preference. The purpose of these Cookies is to provide you with a more personal experience and to avoid you having to re-enter your preferences every time you use our website.`}),` 1264`]}),` 1265`,(0,H.jsxs)(t.li,{children:[` 1266`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Tracking and Performance Cookies`})}),` 1267`]}),` 1268`,(0,H.jsxs)(t.li,{children:[` 1269`,(0,H.jsx)(t.p,{children:`Type: Persistent Cookies`}),` 1270`,(0,H.jsx)(t.p,{children:`Administered by: Third Parties`}),` 1271`,(0,H.jsx)(t.p,{children:`Purpose: These Cookies are used to track information about traffic to our website and how users use our website. The information gathered via these Cookies may directly or indirectly identify you as an individual visitor. This is because the information collected is typically linked to a pseudonymous identifier associated with the device you use to access our website. We may al
1271so use these Cookies to test new pages, features or functionality of our website to see how our users react to them.`}),` 1272`]}),` 1273`]}),` 1274`,(0,H.jsxs)(t.p,{children:[`For more information about the cookies we use and your choices regarding cookies, please visit our `,(0,H.jsx)(t.a,{href:`/cookies`,children:`Cookies Policy`}),` or the Cookies section of our Privacy Policy.`]}),` 1275`,(0,H.jsx)(t.h3,{children:`1.2 Use of Your Personal Information`}),` 1276`,(0,H.jsx)(t.p,{children:`We may use personal information for the following purposes:`}),` 1277`,(0,H.jsxs)(t.ul,{children:[` 1278`,(0,H.jsxs)(t.li,{children:[` 1279`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`To provide and maintain our services`}),`, including to monitor the usage of our services.`]}),` 1280`]}),` 1281`,(0,H.jsxs)(t.li,{children:[` 1282`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`To manage your account:`}),` to manage your registration as a user of our services. The personal information you provide can give you access to different functionalities of our services that are available to you as a registered user.`]}),` 1283`]}),` 1284`,(0,H.jsxs)(t.li,{children:[` 1285`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`For the performance of a contract:`}),` the development, compliance and undertaking of the purchase contract for the services you have purchased or of any other contract with us through our services.`]}),` 1286`]}),` 1287`,(0,H.jsxs)(t.li,{children:[` 1288`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`To contact You:`}),` To contact you by email, telephone calls, SMS, or other equivalent forms of electronic communication, such as a mobile application's push notifications regarding updates or informative communications related to the functionalities, products or contracted services, including the security updates, when necessary or reasonable for their implementation.`]}),` 1289`]}),` 1290`,(0,H.jsxs)(t.li,{children:[` 1291`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`To send you sales and marketing communications:`}),` such as news, events, and general information about our services, where you are a user of, or have inquired about or expressed interest in, our services. We send these communications only where you have opted in to receive them, and you can withdraw your consent at any time.`]}),` 1292`]}),` 1293`,(0,H.jsxs)(t.li,{children:[` 1294`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`To manage your requests:`}),` To attend and manage your requests to us.`]}),` 1295`]}),` 1296`,(0,H.jsxs)(t.li,{children:[` 1297`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`For business transfers:`}),` We may use your personal information to evaluate or conduct a merger, divestiture, restructuring, reorganization, dissolution, or other sale or transfer of some or all of our assets, whether as a going concern or as part of bankruptcy, liquidation, or similar proceeding, in which personal information held by us about our users is among the assets transferred.`]}),` 1298`]}),` 1299`,(0,H.jsxs)(t.li,{children:[` 1300`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`For other purposes`}),`: We may use your information for other purposes, such as data analysis, identifying usage trends, determining the effectiveness of our promotional campaigns and to evaluate and improve our services, products, services, marketing and your experience.`]}),` 1301`]}),` 1302`]}),` 1303`,(0,H.jsx)(t.p,{children:`We may share your personal information in the following situations:`}),` 1304`,(0,H.jsxs)(t.ul,{children:[` 1305`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`With our service providers:`}),` We may share your personal information with our service providers to provide and operate our services, to monitor and analyze the use of our services, and to communicate with you, including by email.`]}),` 1306`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`For business transfers:`}),` We may share or transfer your personal information in connection with, or during negotiations of, any merger, sale of Company assets, financing, or acquisition of all or a portion of our business to another company.`]}),` 1307`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`With our subsidiary companies:`}),` We may share your personal information with subsidiary companies, in which case we will require those affiliates to honor this Privacy Policy.`]}),` 1308`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`With other users:`}),` If our services offer public areas, when you share personal information or otherwise interact in the public areas with other users, such information may be viewed by all users and may be publicly distributed outside. Where our services provide user profiles, other users may be able to view your profile, including your name, username, and a summary of your activity on our services.`]}),` 1309`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`With your consent`}),`: We may disclose your personal information for any other purpose with your consent.`]}),` 1310`]}),` 1311`,(0,H.jsx)(t.h2,{children:`2. Retention of Your Personal Information`}),` 1312`,(0,H.jsx)(t.p,{children:`We will retain your personal information only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use your personal information to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.`}),` 1313`,(0,H.jsx)(t.p,{children:`Where possible, we apply shorter retention periods and/or reduce identifiability by deleting, aggregating, or anonymizing data. Unless otherwise stated, the retention periods below are maximum periods ("up to") and we may delete or anonymize data sooner when it is no longer needed for the relevant purpose. We apply different retention periods to different categories of personal information based on the purpose of processing and legal obligations:`}),` 1314`,(0,H.jsxs)(t.ul,{children:[` 1315`,(0,H.jsxs)(t.li,{children:[`Repository content`,` 1316`,(0,H.jsxs)(t.ul,{children:[` 1317`,(0,H.jsx)(t.li,{children:`Git repository data you post or import â including files, commit history, and the names and email addresses recorded in commit metadata â is retained for as long as the relevant repository exists on our services, and is deleted when the repository (or the relevant history) is deleted. Because a repository's history is an immutable record of your project, we generally cannot remove individual entries from it while the repository exists.`}),` 1318`]}),` 1319`]}),` 1320`,(0,H.jsxs)(t.li,{children:[`Account Information`,` 1321`,(0,H.jsxs)(t.ul,{children:[` 1322`,(0,H.jsx)(t.li,{children:`user accounts: retained for the duration of your account relationship plus up to 24 months after account closure to handle any post-termination issues or resolve disputes.`}),` 1323`]}),` 1324`]}),` 1325`,(0,H.jsxs)(t.li,{children:[`Customer Support Data`,` 1326`,(0,H.jsxs)(t.ul,{children:[` 1327`,(0,H.jsx)(t.li,{children:`Support tickets and correspondence: up to 24 months from the date of ticket closure to resolve follow-up inquiries, track service quality, and defend against potential legal claims`}),` 1328`,(0,H.jsx)(t.li,{children:`Chat transcripts: up to 24 months for quality assurance and staff training purposes.`}),` 1329`]}),` 1330`]}),` 1331`,(0,H.jsxs)(t.li,{children:[`Usage Data`,` 1332`,(0,H.jsxs)(t.ul,{children:[` 1333`,(0,H.jsxs)(t.li,{children:[` 1334`,(0,H.jsx)(t.p,{children:`Website analytics data (cookies, IP addresses, device identifiers): up to 24 months from the date of collection, which allows us to analyze trends while respecting privacy principles.`}),` 1335`]}),` 1336`,(0,H.jsxs)(t.li,{children:[` 1337`,(0,H.jsx)(t.p,{children:`Server logs (IP addresses, access times): up to 24 months for security monitoring and troubleshooting purposes.`}),` 1338`]}),` 1339`]}),` 1340`]}),` 1341`]}),` 1342`,(0,H.jsx)(t.p,{children:`Usage data is retained in accordance with the retention periods described above, and may be retained longer only where necessary for security, fraud prevention, or legal compliance.`}),` 1343`,(0,H.jsx)(t.p,{children:`We may retain personal information beyond the peri
1343ods stated above for different reasons:`}),` 1344`,(0,H.jsxs)(t.ul,{children:[` 1345`,(0,H.jsx)(t.li,{children:`Legal obligation: We are required by law to retain specific data (e.g., financial records for tax authorities).`}),` 1346`,(0,H.jsx)(t.li,{children:`Legal claims: Data is necessary to establish, exercise, or defend legal claims.`}),` 1347`,(0,H.jsx)(t.li,{children:`Your explicit request: You ask us to retain specific information.`}),` 1348`,(0,H.jsx)(t.li,{children:`Technical limitations: Data exists in backup systems that are scheduled for routine deletion.`}),` 1349`]}),` 1350`,(0,H.jsx)(t.p,{children:`You may request information about how long we will retain your personal information by contacting us.`}),` 1351`,(0,H.jsx)(t.p,{children:`When retention periods expire, we securely delete or anonymize personal information according to the following procedures:`}),` 1352`,(0,H.jsxs)(t.ul,{children:[` 1353`,(0,H.jsx)(t.li,{children:`Deletion: Personal information is removed from our systems and no longer actively processed.`}),` 1354`,(0,H.jsx)(t.li,{children:`Backup retention: Residual copies may remain in encrypted backups for a limited period consistent with our backup retention schedule and are not restored except where necessary for security, disaster recovery, or legal compliance.`}),` 1355`,(0,H.jsx)(t.li,{children:`Anonymization: In some cases, we convert personal information into anonymous statistical data that cannot be linked back to You. This anonymized data may be retained indefinitely for research and analytics.`}),` 1356`]}),` 1357`,(0,H.jsx)(t.h2,{children:`3. Data Residency and Location of Processing`}),` 1358`,(0,H.jsx)(t.p,{children:`We aim to store and process your personal information within your own jurisdiction rather than transferring it elsewhere.`}),` 1359`,(0,H.jsx)(t.p,{children:`Because you may use our services from, or act across, more than one jurisdiction, some personal information generated by your activity in a particular jurisdiction may be stored in that jurisdiction. In addition, we store your user activity data in your home jurisdiction (the jurisdiction in which your account was created) so that your account and activity remain available to you.`}),` 1360`,(0,H.jsx)(t.p,{children:`Where any storage or processing does take place outside your jurisdiction â for example, because a service provider we use operates across regions â we will ensure it is subject to appropriate safeguards and that your personal information is treated securely and in accordance with this Privacy Policy.`}),` 1361`,(0,H.jsx)(t.h2,{children:`4. Right to delete Personal Information`}),` 1362`,(0,H.jsx)(t.p,{children:`You have the right to delete or request that we assist in deleting the personal information that we have collected about You.`}),` 1363`,(0,H.jsx)(t.p,{children:`Our services may give you the ability to delete certain information about you from within our services.`}),` 1364`,(0,H.jsx)(t.p,{children:`you may update, amend, or delete your information at any time by signing in to your account, if you have one, and visiting the account settings section that allows you to manage your personal information. You may also contact us to request access to, correct, or delete any personal information that you have provided to us.`}),` 1365`,(0,H.jsx)(t.p,{children:`Some personal information forms part of the content you post to or import into our services â for example, the author and committer names and email addresses recorded in commit metadata. This information is retained for as long as the relevant repository exists and is removed when the repository (or the relevant history) is deleted; because a repository's history is an immutable record, we may be unable to delete individual entries from it while the repository exists.`}),` 1366`,(0,H.jsx)(t.p,{children:`Please note, however, that we may need to retain certain information when we have a legal obligation or lawful basis to do so.`}),` 1367`,(0,H.jsx)(t.h2,{children:`5. Disclosure of Your Personal Information`}),` 1368`,(0,H.jsx)(t.h4,{children:`(a) Business Transactions`}),` 1369`,(0,H.jsx)(t.p,{children:`If Entire is involved in a merger, acquisition or asset sale, your personal information may be transferred. We will provide notice before your personal information is transferred and becomes subject to a different Privacy Policy.`}),` 1370`,(0,H.jsx)(t.h4,{children:`(b) Law enforcement`}),` 1371`,(0,H.jsx)(t.p,{children:`Under certain circumstances, we may be required to disclose your personal information if required to do so by law or in response to valid requests by public authorities (e.g.\xA0a court or a government agency).`}),` 1372`,(0,H.jsx)(t.h4,{children:`(c) Other legal requirements`}),` 1373`,(0,H.jsx)(t.p,{children:`We may disclose your personal information in the good faith belief that such action is necessary to:`}),` 1374`,(0,H.jsxs)(t.ul,{children:[` 1375`,(0,H.jsx)(t.li,{children:`Comply with a legal obligation`}),` 1376`,(0,H.jsx)(t.li,{children:`Protect and defend our rights or property`}),` 1377`,(0,H.jsx)(t.li,{children:`Prevent or investigate possible wrongdoing in connection with our services`}),` 1378`,(0,H.jsx)(t.li,{children:`Protect the personal safety of users of our services or the public`}),` 1379`,(0,H.jsx)(t.li,{children:`Protect against legal liability`}),` 1380`]}),` 1381`,(0,H.jsx)(t.h2,{children:`6. Security of Your Personal Information`}),` 1382`,(0,H.jsx)(t.p,{children:`The security of your personal information is important to us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While we strive to use commercially reasonable means to protect your personal information, we cannot guarantee its absolute security.`}),` 1383`,(0,H.jsx)(t.h2,{children:`7. Detailed Information on the Processing of Your Personal Information`}),` 1384`,(0,H.jsx)(t.p,{children:`Our service providers may have access to your personal information. These third-party vendors collect, store, use, process and transfer information about your activity on our services in accordance with their Privacy Policies.`}),` 1385`,(0,H.jsx)(t.p,{children:`We may use service providers to operate and secure our services (including authentication), to monitor and analyze the use of our services, and to send communications such as marketing emails.`}),` 1386`,(0,H.jsxs)(t.ul,{children:[` 1387`,(0,H.jsxs)(t.li,{children:[` 1388`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`PostHog`})}),` 1389`]}),` 1390`,(0,H.jsxs)(t.li,{children:[` 1391`,(0,H.jsxs)(t.p,{children:[`Their Privacy Policy can be viewed at `,(0,H.jsx)(t.a,{href:`https://posthog.com/docs/privacy/`,children:`https://posthog.com/docs/privacy/`}),`.`]}),` 1392`]}),` 1393`,(0,H.jsxs)(t.li,{children:[` 1394`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Honeycomb`})}),` 1395`]}),` 1396`,(0,H.jsxs)(t.li,{children:[` 1397`,(0,H.jsxs)(t.p,{children:[`Their Privacy Policy can be viewed at `,(0,H.jsx)(t.a,{href:`https://www.honeycomb.io/privacy`,children:`https://www.honeycomb.io/privacy`}),`.`]}),` 1398`]}),` 1399`,(0,H.jsxs)(t.li,{children:[` 1400`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Datadog`})}),` 1401`]}),` 1402`,(0,H.jsxs)(t.li,{children:[` 1403`,(0,H.jsxs)(t.p,{children:[`Their Privacy Policy can be viewed at `,(0,H.jsx)(t.a,{href:`https://www.datadoghq.com/legal/privacy/`,children:`https://www.datadoghq.com/legal/privacy/`}),`.`]}),` 1404`]}),` 1405`,(0,H.jsxs)(t.li,{children:[` 1406`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`HubSpot`}),` (sales and marketing communications)`]}),` 1407`]}),` 1408`,(0,H.jsxs)(t.li,{children:[` 1409`,(0,H.jsxs)(t.p,{children:[`Their Privacy Policy can be viewed at `,(0,H.jsx)(t.a,{href:`https://legal.hubspot.com/privacy-policy`,children:`https://legal.hubspot.com/privacy-policy`}),`.`]}),` 1410`]}),` 1411`,(0,H.jsxs)(t.li,{children:[` 1412`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`WorkOS`}),` (authentication and single sign-on)`]}),` 1413`]}),` 1414`,(0,H.jsxs)(t.li,{children:[` 1415`,(0,H.jsxs)(t.p,{children:[`Their Privacy Policy can be viewed at `,(0,H.jsx)(t.a,{href:`https://workos.com/legal/privacy`,children:`https://workos.com/legal/privacy`}),`.`]}),` 1416`]}),` 1417`]}),` 1418`,(0,H.jsx)(t.h2,{children:`8. Children's Privacy`}),` 1419`,(0,H.jsx)(t.p,{children:`Our services are not aimed at anyone under the age of 16. We do not knowingly collect personally identifiable information from anyone under the age of 16. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact us. If we become aware that we have collected personal information from anyone under the age of 16 without verification of parental consent, we take steps to remove that information from our servers.`}),` 1420`,(0,H.jsx)(t.p,{children:`If we need to rely on consent as a legal basis for processing your information and your country requires consent from a parent, we may require your parent's consent before we collect and use that information.`}),` 1421`,(0,H.jsx)(t.h2,{children:`9. Links to Other Websites`}),` 1422`,(0,H.jsx)(t.p,{children:`Our services may contain links to other websites that are not operated by us. If you click on a third party link, you will be directed to that third party's site. We strongly advise you to review the Privacy Policy of every site you visit.`}),` 1423`,(0,H.jsx)(t.p,{children:`We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services.`}),` 1424`,(0,H.jsx)(t.h2,{children:`10. General Data Protection Regulation (GDPR)`}),` 1425`,(0,H.jsx)(t.p,{children:`This section 10 applies specifically in relation to the processing of personal data of individuals who are subject to the protections of the European GDPR and UK GDPR - i.e. residents of the European Economic Area ("EEA") and the UK.`}),` 1426`,(0,H.jsx)(t.p,{children:`In this section we refer to "personal data" instead of "personal information", because "personal data" is what's defined and referred to in the GDPR. Whilst the European GDPR and UK GDPR are not identical, they are the same in all material respects for the purpose of the provisions below, so when we refer to "GDPR" we mean both the European and UK GDPR.`}),` 1427`,(0,H.jsx)(t.p,{children:`To the extent of any inconsistency between the provisions of this section 10 and the other provisions of this Privacy Policy, this section 10 prevails in relation to the processing of personal data of EEA and UK residents.`}),` 1428`,(0,H.jsx)(t.h3,{children:`10.1 Legal Basis for Processing Personal Data under GDPR`}),` 1429`,(0,H.jsx)(t.p,{children:`We may process personal data under the following conditions:`}),` 1430`,(0,H.jsxs)(t.ul,{children:[` 1431`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Consent:`}),` you have given your consent for processing personal data for one or more specific purposes.`]}),` 1432`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Performance of a contract:`}),` Provision of personal data is necessary for the performance of an agreement with you and/or for any pre-contractual obligations thereof.`]}),` 1433`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Legal obligations:`}),` Processing personal data is necessary for compliance with a legal obligation to which we are subject.`]}),` 1434`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Vital interests:`}),` Processing personal data is necessary in order to protect your vital interests or of another natural person.`]}),` 1435`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Public interests:`}),` Processing personal data is related to a task that is carried out in the public interest or in the exercise of official authority vested in us.`]}),` 1436`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Legitimate interests:`}),` Processing personal data is necessary for the purposes of the legitimate interests that we pursue.`]}),` 1437`]}),` 1438`,(0,H.jsx)(t.p,{children:`You can contact us to find out which legal basis applies to a
1438specific processing activity, and whether providing your personal information is required by law or to enter into a contract.`}),` 1439`,(0,H.jsx)(t.h3,{children:`10.2 International Transfer of Personal Data`}),` 1440`,(0,H.jsx)(t.p,{children:`We aim to store and process the personal data of EEA and UK residents within the EEA or the UK, consistent with the data-residency approach described in section 3.`}),` 1441`,(0,H.jsx)(t.p,{children:`Where personal data is nonetheless transferred outside the EEA/UK to a country that has not been recognized as providing an adequate level of protection, we rely on appropriate safeguards, such as:`}),` 1442`,(0,H.jsxs)(t.ul,{children:[` 1443`,(0,H.jsx)(t.li,{children:`The European Commission's Standard Contractual Clauses ("SCCs") and/or the UK International Data Transfer Agreement ("IDTA") or the UK Addendum to the SCCs (as applicable)`}),` 1444`,(0,H.jsx)(t.li,{children:`Supplementary measures where appropriate, such as encryption in transit and at rest, access controls, data minimisation, and vendor security reviews.`}),` 1445`]}),` 1446`,(0,H.jsx)(t.p,{children:`Where we do transfer personal data internationally, we do so only as needed to provide our services and to work with our service providers (for example, hosting, analytics, email delivery). You may contact us by using the details in the "Contact us" section of our Privacy Policy to request further information about the safeguards we use for international transfers, including copies of relevant contractual protections (redacted where necessary).`}),` 1447`,(0,H.jsx)(t.h3,{children:`10.3 Your Rights under the GDPR`}),` 1448`,(0,H.jsx)(t.p,{children:`Entire undertakes to respect the confidentiality of your personal information and to guarantee you can exercise your rights.`}),` 1449`,(0,H.jsx)(t.p,{children:`You have the right under this Privacy Policy, and by law if you are within the EEA, to:`}),` 1450`,(0,H.jsxs)(t.ul,{children:[` 1451`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Request access to your personal data.`}),` The right to access, update or delete the information we have on You. You can request a copy of the personal information that we hold about you. Where possible, you can also access Your data directly in your account settings. If you are unable to perform these actions yourself, please contact us to assist you.`]}),` 1452`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Request restriction of processing. You`}),` have the right to ask us to restrict processing of your personal data in certain circumstances (for example, while we verify accuracy or consider an objection).`]}),` 1453`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Request correction of the personal data that we hold about You.`}),` You have the right to have any incomplete or inaccurate information we hold about you corrected.`]}),` 1454`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Object to processing of your personal data.`}),` This right exists where we are relying on a legitimate interest as the legal basis for our processing and there is something about your particular situation, which makes you want to object to our processing of your personal data on this ground. You also have the right to object where we are processing your personal information for direct marketing purposes.`]}),` 1455`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Request erasure of your personal data.`}),` You have the right to ask us to delete or remove personal data when there is no good reason for us to continue processing it.`]}),` 1456`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Request the transfer of your personal data.`}),` We will provide to You, or to a third-party you have chosen, Your personal data in a structured, commonly used, machine-readable format. Please note that this right only applies to automated information which you initially provided consent for us to use or where we used the information to perform a contract with You.`]}),` 1457`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Withdraw your consent.`}),` You have the right to withdraw your consent on using your personal data. If you withdraw your consent, we may
1457not be able to provide you with access to certain specific functionalities of our services.`]}),` 1458`]}),` 1459`,(0,H.jsx)(t.h3,{children:`10.4 Exercising Your GDPR Rights`}),` 1460`,(0,H.jsx)(t.p,{children:`To exercise any of your GDPR rights, please contact us. We may need to verify your identity before responding. We will respond within one month and may extend by a further two months where necessary, as permitted by law. If you are in the EEA, you have the right to complain to a data protection authority about our collection and use of your personal data. If you are in the United Kingdom you have the right to complain to the Information Commissioner's Office (ICO)`}),` 1461`,(0,H.jsx)(t.h2,{children:`11. US State Information`}),` 1462`,(0,H.jsx)(t.p,{children:`Sections 11 to 14 provide extra information for residents of US States that have specific privacy laws. Specifically in relation to such residents, the provisions of sections 11 to 14 take precedence over the other sections of this Privacy Policy (i.e. in the event of any inconsistency).`}),` 1463`,(0,H.jsx)(t.p,{children:`The rights below are common to across US State privacy laws:`}),` 1464`,(0,H.jsxs)(t.ul,{children:[` 1465`,(0,H.jsxs)(t.li,{children:[` 1466`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.em,{children:`Right to Knowledge and Correction`}),`: You have the right to request details on the specific personal information we've collected about you and the right to correct inaccurate information. You can exercise this right by contacting us. You can also access and edit certain information in your account settings.`]}),` 1467`]}),` 1468`,(0,H.jsxs)(t.li,{children:[` 1469`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.em,{children:`Right to Know Data Recipients`}),`: We share your information with service providers for legitimate business operations, as described in section 1.2 above.`]}),` 1470`]}),` 1471`,(0,H.jsxs)(t.li,{children:[` 1472`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.em,{children:`Right to request Deletion`}),`: You reserve the right to request the deletion of your personal; information (with a few exceptions - e.g. where we're required to retain information to comply with legal obligations or detect fraudulent activity or other violations of our Terms of Service. Upon receiving your verified request, we will promptly delete your personal information (unless an exception applies), and instruct our service providers to do the same.`]}),` 1473`]}),` 1474`,(0,H.jsxs)(t.li,{children:[` 1475`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.em,{children:`Right to a Timely Response`}),`: You are allowed to make two free requests in any 12-month period. We commit to responding to your request within 45 days. In complex cases, we may extend our response time by an additional 45 days.`]}),` 1476`]}),` 1477`,(0,H.jsxs)(t.li,{children:[` 1478`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.em,{children:`Non-Discrimination`}),`: We will not treat you any differently if you exercise your privacy rights.`]}),` 1479`]}),` 1480`]}),` 1481`,(0,H.jsx)(t.p,{children:`We may collect various categories of personal information about our website visitors and users of our services, as described in detail in section 1 above. Section 1 also describes the purposes for which we collect your personal information.`}),` 1482`,(0,H.jsxs)(t.p,{children:[`To make an access, deletion, correction, or opt-out request, please send an email to us at `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`. We may need to verify your identity before processing your request. If you choose to use an authorized agent to submit a request on your behalf, please ensure they have your signed permission or power of attorney as required.`]}),` 1483`,(0,H.jsx)(t.h2,{children:`12. California Residents`}),` 1484`,(0,H.jsx)(t.h3,{children:`12.1 CCPA/CPRA Privacy Notice (California Privacy Rights)`}),` 1485`,(0,H.jsx)(t.p,{children:`In this section 12:`}),` 1486`,(0,H.jsxs)(t.ul,{children:[` 1487`,(0,H.jsxs)(t.li,{children:[` 1488`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`CCPA`}),` and/or `,(0,H.jsx)(t.strong,{children:`CPRA`}),` refers to the California Consumer Privacy Act as amended by the California Privacy Rights Act of 2020 (the "CPRA"); and`]}),` 1489`]}),` 1490`,(0,H.jsxs)(t.li,{children:[` 1491`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Consumer`}),` means a natural person who is a California resident. A resident, as defined in the law, includes (1) every individual who is in the USA for other than a temporary or transitory purpose, and (2) every individual who is domiciled in the USA who is outside the USA for a temporary or transitory purpose.`]}),` 1492`]}),` 1493`]}),` 1494`,(0,H.jsx)(t.p,{children:`This privacy notice section for California residents supplements the information contained in our Privacy Policy and it applies solely to all visitors, users, and others who reside in the State of California.`}),` 1495`,(0,H.jsx)(t.h3,{children:`12.2 Categories of Personal Information Collected`}),` 1496`,(0,H.jsx)(t.p,{children:`We collect information that identifies, relates to, describes, references, is capable of being associated with, or could reasonably be linked, directly or indirectly, with a particular Consumer or device. The following is a list of categories of personal information which we may collect or may have been collected from California residents within the last twelve (12) months.`}),` 1497`,(0,H.jsx)(t.p,{children:`Please note that the categories and examples provided in the list below are those defined in the CCPA/CPRA. This does not mean that all examples of that category of personal information were in fact collected by us, but reflects our good faith belief to the best of our knowledge that some of that information from the applicable category may be and may have been collected. For example, certain categories of Personal Information would only be collected if you provided such personal information directly to us.`}),` 1498`,(0,H.jsxs)(t.ul,{children:[` 1499`,(0,H.jsxs)(t.li,{children:[` 1500`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category A: Identifiers.`})}),` 1501`]}),` 1502`,(0,H.jsxs)(t.li,{children:[` 1503`,(0,H.jsx)(t.p,{children:`Examples: A real name, alias, postal address, unique personal identifier, online identifier, Internet Protocol address, email address, account name, driver's license number, passport number, or other similar identifiers.`}),` 1504`,(0,H.jsx)(t.p,{children:`Collected: Yes.`}),` 1505`]}),` 1506`,(0,H.jsxs)(t.li,{children:[` 1507`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category B: Personal information categories listed in the California Customer Records statute (Cal. Civ. Code § 1798.80(e)).`})}),` 1508`]}),` 1509`,(0,H.jsxs)(t.li,{children:[` 1510`,(0,H.jsx)(t.p,{children:`Examples: A name, signature, physical characteristics or description, address, telephone number, passport number, driver's license or state identification card number, insurance policy number, education, employment, employment history, bank account number,
1510credit card number, debit card number, or any other financial information, medical information, or health insurance information.`}),` 1511`,(0,H.jsx)(t.p,{children:`Some personal information included in this category may overlap with other categories.`}),` 1512`,(0,H.jsx)(t.p,{children:`Collected: Yes.`}),` 1513`]}),` 1514`,(0,H.jsxs)(t.li,{children:[` 1515`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category C: Protected classification characteristics under California or federal law.`})}),` 1516`]}),` 1517`,(0,H.jsxs)(t.li,{children:[` 1518`,(0,H.jsx)(t.p,{children:`Examples: Age (40 years or older), race, color, ancestry, national origin, citizenship, religion or creed, marital status, medical condition, physical or mental disability, sex (including gender, gender identity, gender expression, pregnancy or childbirth and related medical conditions), sexual orientation, veteran or military status, genetic information (including familial genetic information).`}),` 1519`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 1520`]}),` 1521`,(0,H.jsxs)(t.li,{children:[` 1522`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category D: Commercial information.`})}),` 1523`]}),` 1524`,(0,H.jsxs)(t.li,{children:[` 1525`,(0,H.jsx)(t.p,{children:`Examples: Records of personal property, products or services purchased, obtained, or considered, or other purchasing or consuming histories or tendencies.`}),` 1526`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 1527`]}),` 1528`,(0,H.jsxs)(t.li,{children:[` 1529`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category E: Biometric information.`})}),` 1530`]}),` 1531`,(0,H.jsxs)(t.li,{children:[` 1532`,(0,H.jsx)(t.p,{children:`Examples: Genetic, physiological, behavioral, and biological characteristics, or activity patterns used to extract a template or other identifier or identifying information, such as, fingerprints, faceprints, and voiceprints, iris or retina scans, keystroke, gait, or other physical patterns, and sleep, health, or exercise data.`}),` 1533`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 1534`]}),` 1535`,(0,H.jsxs)(t.li,{children:[` 1536`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category F: Internet or other similar network activity.`})}),` 1537`]}),` 1538`,(0,H.jsxs)(t.li,{children:[` 1539`,(0,H.jsx)(t.p,{children:`Examples: Browsing history, search history, information on a consumer's interaction with a website, application, or advertisement.`}),` 1540`,(0,H.jsx)(t.p,{children:`Collected: Yes.`}),` 1541`]}),` 1542`,(0,H.jsxs)(t.li,{children:[` 1543`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category G: Geolocation data.`})}),` 1544`]}),` 1545`,(0,H.jsxs)(t.li,{children:[` 1546`,(0,H.jsx)(t.p,{children:`Examples: Approximate physical location, physical location or movements.`}),` 1547`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 1548`]}),` 1549`,(0,H.jsxs)(t.li,{children:[` 1550`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category H: Sensory data.`})}),` 1551`]}),` 1552`,(0,H.jsxs)(t.li,{children:[` 1553`,(0,H.jsx)(t.p,{children:`Examples: Audio, electronic, visual, thermal, olfactory, or similar information.`}),` 1554`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 1555`]}),` 1556`,(0,H.jsxs)(t.li,{children:[` 1557`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category I: Professional or employment-related information.`})}),` 1558`]}),` 1559`,(0,H.jsxs)(t.li,{children:[` 1560`,(0,H.jsx)(t.p,{children:`Examples: Current or past job history or performance evaluations.`}),` 1561`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 1562`]}),` 1563`,(0,H.jsxs)(t.li,{children:[` 1564`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category J: Non-public education information (per the Family Educational Rights and Privacy Act (20 U.S.C. Section 1232g, 34 C.F.R. Part 99)).`})}),` 1565`]}),` 1566`,(0,H.jsxs)(t.li,{children:[` 1567`,(0,H.jsx)(t.p,{children:`Examples: education records directly related to a student maintained by an educational institution or party acting on its behalf, such as grades, transcripts, class lists, student schedules, student identification codes, student financial information, or student disciplinary records.`}),` 1568`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 1569`]}),` 1570`,(0,H.jsxs)(t.li,{children:[` 1571`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category K: Inferences drawn from other personal information.`})}),` 1572`]}),` 1573`,(0,H.jsxs)(t.li,{children:[` 1574`,(0,H.jsx)(t.p,{children:`Examples: Profile reflecting a person's preferences, characteristics, psychological trends, predispositions, behavior, attitudes, intelligence, abilities, and aptitudes.`}),` 1575`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 1576`]}),` 1577`,(0,H.jsxs)(t.li,{children:[` 1578`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Category L: Sensitive personal information.`})}),` 1579`]}),` 1580`,(0,H.jsxs)(t.li,{children:[` 1581`,(0,H.jsx)(t.p,{children:`Examples: Government-issued identifying numbers, financial account details, genetic data, precise geolocation, race or ethnicity, religious or philosophical beliefs, union membership, mail, email, text messages, biometric data, health data, and sexual orientation or sex life.`}),` 1582`,(0,H.jsx)(t.p,{children:`Collected: No.`}),` 1583`]}),` 1584`]}),` 1585`,(0,H.jsx)(t.p,{children:`Under CCPA/CPRA, personal information does not include:`}),` 1586`,(0,H.jsxs)(t.ul,{children:[` 1587`,(0,H.jsx)(t.li,{children:`Publicly available information from government records`}),` 1588`,(0,H.jsx)(t.li,{children:`Deidentified or aggregated consumer information`}),` 1589`,(0,H.jsxs)(t.li,{children:[`Information excluded from the CCPA/CPRA's scope, such as:`,` 1590`,(0,H.jsxs)(t.ul,{children:[` 1591`,(0,H.jsx)(t.li,{children:`Health or medical information covered by the Health Insurance Portability and Accountability Act of 1996 (HIPAA) and the California Confidentiality of Medical Information Act (CMIA) or clinical trial data`}),` 1592`,(0,H.jsx)(t.li,{children:`Personal information covered by certain sector-specific privacy laws, including the Fair Credit Reporting Act (FRCA), the Gramm-Leach-Bliley Act (GLBA) or California Financial Information Privacy Act (FIPA), and the Driver's Privacy Protection Act of 1994`}),` 1593`]}),` 1594`]}),` 1595`]}),` 1596`,(0,H.jsx)(t.h3,{children:`Sources of Personal Information`}),` 1597`,(0,H.jsx)(t.p,{children:`We obtain the categories of personal information listed above from the following categories of sources:`}),` 1598`,(0,H.jsxs)(t.ul,{children:[` 1599`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Directly from You`}),`. For example, from the forms you complete on our services, preferences you express or provide through our services.`]}),` 1600`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Indirectly from You`}),`. For example, from observing your activity on our services.`]}),` 1601`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Automatically from You`}),`. For example, through cookies we or our services Providers set on your device as you navigate through our services.`]}),` 1602`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`From service providers`}),`. For example, third-party vendors to monitor and analyze the use of our services, or other third-party vendors that we use to provide our services to You.`]}),` 1603`]}),` 1604`,(0,H.jsx)(t.h3,{children:`Use of Personal Information`}),` 1605`,(0,H.jsx)(t.p,{children:`We may use or disclose personal information we collect for "business purposes" or "commercial purposes" (as defined under the CCPA/CPRA), which may include the following examples:`}),` 1606`,(0,H.jsxs)(t.ul,{children:[` 1607`,(0,H.jsx)(t.li,{children:`To operate our services and provide you with our services.`}),` 1608`,(0,H.jsx)(t.li,{children:`To provide you with support and to respond to your inquiries, including to investigate and address your concerns and monitor and improve our services.`}),` 1609`,(0,H.jsx)(t.li,{children:`To fulfill or meet the reason you provided the information. For example, if you share your contact information to ask a question about our services, we will use that personal information to respond to your inquiry.`}),` 1610`,(0,H.jsx)(t.li,{children:`To respond to law enforcement requests and as required by applicable law, court order, or governmental regulations.`}),` 1611`,(0,H.jsx)(t.li,{children:`As described to you when collecting your personal information or as otherwise set forth in the CCPA/CPRA.`}),` 1612`,(0,H.jsx)(t.li,{children:`For internal administrative and auditing purposes.`}),` 1613`,(0,H.jsx)(t.li,{children:`To detect security incidents and protect against malicious, deceptive, fraudulent or illegal activity, including, when necessary, to prosecute those responsible for such activities.`}),` 1614`,(0,H.jsx)(t.li,{children:`Other purposes consistent with the context in which the information was collected, or as otherwise disclosed to you at the time of collection.`}),` 1615`]}),` 1616`,(0,H.jsx)(t.p,{children:`Please note that the examples provided above are illustrative and not intended to be exhaustive. For more details on how we use this information, please refer to the "Use of Your Personal Information" section.`}),` 1617`,(0,H.jsx)(t.p,{children:`If we decide to collect additional categories of personal information or use the personal information we collected for materially different, unrelated, or incompatible purposes, we will update this Privacy Policy.`}),` 1618`,(0,H.jsx)(t.h3,{children:`Disclosure of Personal Information`}),` 1619`,(0,H.jsx)(t.p,{children:`We may use or disclose and may have used or disclosed in the last twelve (12) months the following categories of personal information for business or commercial purposes:`}),` 1620`,(0,H.jsxs)(t.ul,{children:[` 1621`,(0,H.jsxs)(t.li,{children:[` 1622`,(0,H.jsx)(t.p,{children:`Category A: Identifiers`}),` 1623`]}),` 1624`,(0,H.jsxs)(t.li,{children:[` 1625`,(0,H.jsx)(t.p,{children:`Category B: Personal information categories listed in the California Customer Records statute (Cal. Civ. Code § 1798.80(e))`}),` 1626`]}),` 1627`,(0,H.jsxs)(t.li,{children:[` 1628`,(0,H.jsx)(t.p,{children:`Category F: Internet or other similar network activity`}),` 1629`]}),` 1630`]}),` 1631`,(0,H.jsx)(t.p,{children:`Please note that the categories listed above are those defined in the CCPA/CPRA. This does not mean that all examples of that category of personal information were in fact disclosed, but reflects our good faith belief to the best of our knowledge that some of that information from the applicable category may be and may have been disclosed.`}),` 1632`,(0,H.jsx)(t.p,{children:`When we disclose personal information for a business purpose or a commercial purpose, we enter a contract that describes the purpose and requires the recipient to both keep that personal information confidential and n
1632ot use it for any purpose except performing the contract.`}),` 1633`,(0,H.jsx)(t.h3,{children:`Sharing of Personal Information`}),` 1634`,(0,H.jsx)(t.p,{children:`We may share, and have shared in the last twelve (12) months, your personal information identified in the above categories with our subsidiary companies, service providers, business partners and third party vendors to whom you or your agents authorize us to disclose your personal information in connection with products or services we provide to you.`}),` 1635`,(0,H.jsx)(t.h3,{children:`Sale of Personal Information`}),` 1636`,(0,H.jsx)(t.p,{children:`As defined in the CCPA/CPRA, "sell" and "sale" mean selling, renting, releasing, disclosing, disseminating, making available, transferring, or otherwise communicating orally, in writing, or by electronic or other means, a Consumer's personal information by us to a third party for valuable consideration. This means that we may have received some kind of benefit in return for sharing personal information, but not necessarily a monetary benefit.`}),` 1637`,(0,H.jsx)(t.p,{children:`We do not "sell" or "share" information as most people would commonly understand these terms â meaning we do not, and will not, disclose your personal information in direct exchange for money or some other form of payment.`}),` 1638`,(0,H.jsx)(t.p,{children:`We allow our service providers to use your personal information for the business purposes described in our Privacy Policy, for activities such as advertising, marketing, and analytics, and these may be deemed a "sale" under CCPA/CPRA. For example, when we promote our services, we use service providers that market our services online, measure the marketing efforts, identify users that are interested in our services, etc. This is done by placing tracking technologies on our website such as cookies, tags, pixels, or similar, and by placing these technologies, online identifiers and online behavior information is shared with such vendors, including for "cross-context behavioral advertising". Under the CCPA, these practices are defined as "sharing" or "selling" personal information.`}),` 1639`,(0,H.jsx)(t.p,{children:`We may disclose or may have disclosed in the last twelve (12) months the following categories in a manner that may be considered a "sale" or "sharing" as defined in CCPA/CPRA:`}),` 1640`,(0,H.jsxs)(t.ul,{children:[` 1641`,(0,H.jsxs)(t.li,{children:[` 1642`,(0,H.jsx)(t.p,{children:`Category A: Identifiers`}),` 1643`]}),` 1644`,(0,H.jsxs)(t.li,{children:[` 1645`,(0,H.jsx)(t.p,{children:`Category B: Personal information categories listed in the California Customer Records statute (Cal. Civ. Code § 1798.80(e))`}),` 1646`]}),` 1647`,(0,H.jsxs)(t.li,{children:[` 1648`,(0,H.jsx)(t.p,{children:`Category F: Internet or other similar network activity`}),` 1649`]}),` 1650`]}),` 1651`,(0,H.jsx)(t.p,{children:`Please note that the categories listed above are those defined in the CCPA/CPRA. This does not mean that all examples of that category of personal information were in fact sold, but reflects our good faith belief to the best of our knowledge that some of that information from the applicable category may be and may have been shared for value in return.`}),` 1652`,(0,H.jsx)(t.h3,{children:`Retention of Personal Information`}),` 1653`,(0,H.jsx)(t.p,{children:`We retain California residents' Personal Information for as long as reasonably necessary to achieve the purposes described in this Privacy Policy (including the purposes disclosed in this CCPA/CPRA notice), taking into account: (i) how long we need the information to provide and maintain our services and your account;
1653 (ii) whether you have requested deletion (subject to applicable exceptions); (iii) our legal, tax, accounting, and regulatory obligations; (iv) security, fraud prevention, and abuse monitoring needs; and (v) the time periods needed to resolve disputes and enforce our agreements.`}),` 1654`,(0,H.jsx)(t.p,{children:`Specific retention periods for major data categories are described in the "Retention of your Personal Information" section of our Privacy Policy, and we may retain certain information longer where required or permitted by law (for example, to comply with recordkeeping obligations or to establish, exercise, or defend legal claims).`}),` 1655`,(0,H.jsx)(t.h3,{children:`Sale of Personal Information of Minors Under 16 Years of Age`}),` 1656`,(0,H.jsx)(t.p,{children:`We do not knowingly collect personal information from minors under the age of 16 through our services, although certain third party websites that we link to may do so. These third-party websites have their own terms of use and privacy policies and we encourage parents and legal guardians to monitor their children's Internet usage and instruct their children to never provide information on other websites without their permission.`}),` 1657`,(0,H.jsx)(t.p,{children:`We do not sell the Personal Information of Consumers we actually know are less than 16 years of age, unless we receive affirmative authorization (the "right to opt-in") from the parent or guardian of a Consumer less than 16 years of age. Consumers who opt-in to the sale of personal information may opt-out of future sales at any time. To exercise the right to opt-out, you (or your authorized representative) may submit a request to us by contacting us.`}),` 1658`,(0,H.jsx)(t.p,{children:`If you have reason to believe that a child under the age of 16 has provided us with personal information, please contact us with sufficient detail to enable us to delete that information.`}),` 1659`,(0,H.jsx)(t.h3,{children:`Your Rights under the CCPA/CPRA`}),` 1660`,(0,H.jsx)(t.p,{children:`If you are a resident of California, you have the following specific rights under the CCPA/CPRA:`}),` 1661`,(0,H.jsxs)(t.ul,{children:[` 1662`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The right to notice. You`}),` have the right to be notified which categories of Personal Information are being collected and the purposes for which the Personal Information is being used.`]}),` 1663`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The right to know/access.`}),` Under CCPA/CPRA, you have the right to request that we disclose information to you about our collection, use, sale, disclosure for business purposes and share of personal information. Once we receive and confirm your request, we will disclose to you:`,` 1664`,(0,H.jsxs)(t.ul,{children:[` 1665`,(0,H.jsx)(t.li,{children:`The categories of personal information we collected about You`}),` 1666`,(0,H.jsx)(t.li,{children:`The categories of sources for the personal information we collected about you`}),` 1667`,(0,H.jsx)(t.li,{children:`Our business or commercial purposes for collecting or selling that personal information`}),` 1668`,(0,H.jsx)(t.li,{children:`The categories of third parties with whom we share that personal information`}),` 1669`,(0,H.jsx)(t.li,{children:`The specific pieces of personal information we collected about you`}),` 1670`,(0,H.jsxs)(t.li,{children:[`If we sold your personal information or disclosed your personal information for a business purpose, we will disclose to you:`,` 1671`,(0,H.jsxs)(t.ul,{children:[` 1672`,(0,H.jsx)(t.li,{children:`The categories of personal information categories sold`}),` 1673`,(0,H.jsx)(t.li,{children:`The categories of personal information categories disclosed`}),` 1674`]}),` 1675`]}),` 1676`]}),` 1677`]}),` 1678`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The right to say no to the sale or sharing of Personal Information (opt-out). You`}),` have the right to direct us to not sell your personal information. To submit an opt-out request, please see the "Do Not Sell or Share My Personal Information" section or contact us.`]}),` 1679`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The r
1679ight to correct Personal Information. You`}),` have the right to correct or rectify any inaccurate personal information about you that we collected. Once we receive and confirm your request, we will use commercially reasonable efforts to correct (and direct our services Providers to correct) your personal information, unless an exception applies.`]}),` 1680`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The right to limit use and disclosure of sensitive Personal Information. You`}),` have the right to request to limit the use or disclosure of certain sensitive personal information we collected about You, unless an exception applies. To submit, please see the "Limit the use or Disclosure of My Sensitive Personal Information" section or contact us.`]}),` 1681`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The right to delete Personal Information. You`}),` have the right to request the deletion of your Personal Information under certain circumstances, subject to certain exceptions. Once we receive and confirm your request, we will delete (and direct our service providers to delete) your personal information from our records, unless an exception applies. We may deny your deletion request if retaining the information is necessary for us or our service providers to:`,` 1682`,(0,H.jsxs)(t.ul,{children:[` 1683`,(0,H.jsx)(t.li,{children:`Complete the transaction for which we collected the personal information, provide a good or service that you requested, take actions reasonably anticipated within the context of our ongoing business relationship with You, or otherwise perform our contract with You.`}),` 1684`,(0,H.jsx)(t.li,{children:`Detect security incidents, protect against malicious, deceptive, fraudulent, or illegal activity, or prosecute those responsible for such activities.`}),` 1685`,(0,H.jsx)(t.li,{children:`Debug products to identify and repair errors that impair existing intended functionality.`}),` 1686`,(0,H.jsx)(t.li,{children:`Exercise free speech, ensure the right of another consumer to exercise their free speech rights, or exercise another right provided for by law.`}),` 1687`,(0,H.jsx)(t.li,{children:`Comply with the California Electronic Communications Privacy Act (Cal. Penal Code § 1546 et. seq.).`}),` 1688`,(0,H.jsx)(t.li,{children:`Engage in public or peer-reviewed scientific, historical, or statistical research in the public interest that adheres to all other applicable ethics and privacy laws, when the information's deletion may likely render impossible or seriously impair the research's achievement, if you previously provided informed consent.`}),` 1689`,(0,H.jsx)(t.li,{children:`Enable solely internal uses that are reasonably aligned with consumer expectations based on your relationship with us.`}),` 1690`,(0,H.jsx)(t.li,{children:`Comply with a legal obligation.`}),` 1691`,(0,H.jsx)(t.li,{children:`Make other internal and lawful uses of that information that are compatible with the context in which you provided it.`}),` 1692`]}),` 1693`]}),` 1694`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The right not to be discriminated against. You`}),` have the right not to be discriminated against for exercising any of your consumer's rights, including by:`,` 1695`,(0,H.jsxs)(t.ul,{children:[` 1696`,(0,H.jsx)(t.li,{children:`Denying goods or services to You`}),` 1697`,(0,H.jsx)(t.li,{children:`Charging different prices or rates for goods or services, including the use of discounts or other benefits or imposing penalties`}),` 1698`,(0,H.jsx)(t.li,{children:`Providing a different level or quality of goods or services to You`}),` 1699`,(0,H.jsx)(t.li,{children:`Suggesting that you will receive a different price or rate for goods or services or a different level or quality of goods or services`}),` 1700`]}),` 1701`]}),` 1702`]}),` 1703`,(0,H.jsx)(t.h3,{children:`Exercising Your CCPA/CPRA Data Protection Rights`}),` 1704`,(0,H.jsx)(t.p,{children:`Please see the "Do Not Sell or Share My Personal Information" section and "Limit the use or Disclosure of My Sensitive Personal Information" section for more information on how to opt out and limit the use of sensitive information collected.`}),` 1705`,(0,H.jsx)(t.p,{children:`Additionally, in order to exercise any of your rights under the CCPA/CPRA, and if you are a California resident, you can contact us:`}),` 1706`,(0,H.jsxs)(t.ul,{children:[` 1707`,(0,H.jsxs)(t.li,{children:[`By email: `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`})]}),` 1708`]}),` 1709`,(0,H.jsx)(t.p,{children:`Only You, or a person registered with the California Secretary of State that you authorize to act on your behalf, may make a verifiable request related to your personal information.`}),` 1710`,(0,H.jsx)(t.p,{children:`Your request to us must:`}),` 1711`,(0,H.jsxs)(t.ul,{children:[` 1712`,(0,H.jsx)(t.li,{children:`Provide sufficient information that allows us to reasonably verify you are the person about whom we collected Personal Information or an authorized representative`}),` 1713`,(0,H.jsx)(t.li,{children:`Describe your request with sufficient detail that allows us to properly understand, evaluate, and respond to it`}),` 1714`]}),` 1715`,(0,H.jsx)(t.p,{children:`We cannot respond to your request or provide you with the required information if we cannot:`}),` 1716`,(0,H.jsxs)(t.ul,{children:[` 1717`,(0,H.jsx)(t.li,{children:`Verify your identity or authority to make the request`}),` 1718`,(0,H.jsx)(t.li,{children:`And confirm that the personal information relates to You`}),` 1719`]}),` 1720`,(0,H.jsx)(t.p,{children:`We will disclose and deliver the required information free of charge within 45 days of receiving your verifiable request. The time period to provide the required information may be extended once by an additional 45 days when reasonably necessary and with prior notice.`}),` 1721`,(0,H.jsx)(t.p,{children:`Any disclosures we provide will only cover the 12-month period preceding the verifiable request's receipt.`}),` 1722`,(0,H.jsx)(t.p,{children:`For data portability requests, we will select a format to provide your personal information that is readily usable and should allow you to transmit the information from one entity to another entity without hindrance.`}),` 1723`,(0,H.jsx)(t.h3,{children:`Do Not Sell or Share My Personal Information`}),` 1724`,(0,H.jsx)(t.p,{children:`Our service providers (for example, analytics or advertising partners) may use technology on our services that sell personal information as defined by the CCPA/CPRA law. If you wish to opt out of the use of your Personal Information for interest-based advertising purposes and these potential sales as defined under CCPA/CPRA law, you may do so by following the instructions below.`}),` 1725`,(0,H.jsx)(t.p,{children:`Please note that any opt out is specific to the browser you use. You may need to opt out on every browser that you use.`}),` 1726`,(0,H.jsx)(t.h4,{children:`Website`}),` 1727`,(0,H.jsx)(t.p,{children:`If applicable, click "Privacy Preferences", "Update Privacy Preferences" or "Do Not Sell or Share My Personal Information" buttons listed on our services to review your privacy preferences and opt out of cookies and other technologies that we may use. Please note that you will need to opt out from each browser that you use to access our services.`}),` 1728`,(0,H.jsx)(t.p,{children:`Additionally, you can opt out of receiving ads that are personalized as served by our services Providers by following our instructions presented on our services:`}),` 1729`,(0,H.jsxs)(t.ul,{children:[` 1730`,(0,H.jsxs)(t.li,{children:[`The NAI's opt-out platform: `,(0,H.jsx)(t.a,{href:`http://www.networka
1730dvertising.org/choices/`,children:`http://www.networkadvertising.org/choices/`})]}),` 1731`,(0,H.jsxs)(t.li,{children:[`The EDAA's opt-out platform `,(0,H.jsx)(t.a,{href:`http://www.youronlinechoices.com/`,children:`http://www.youronlinechoices.com/`})]}),` 1732`,(0,H.jsxs)(t.li,{children:[`The DAA's opt-out platform: `,(0,H.jsx)(t.a,{href:`http://optout.aboutads.info/?c=2&lang=EN`,children:`http://optout.aboutads.info/?c=2&lang=EN`})]}),` 1733`]}),` 1734`,(0,H.jsx)(t.p,{children:`The opt-out will place a cookie on your computer that is unique to the browser you use to opt out. If you change browsers or delete the cookies saved by your browser, you will need to opt out again.`}),` 1735`,(0,H.jsx)(t.h4,{children:`Mobile devices`}),` 1736`,(0,H.jsx)(t.p,{children:`Your mobile device may give you the ability to opt out of the use of information about the apps you use in order to serve you ads that are targeted to your interests:`}),` 1737`,(0,H.jsxs)(t.ul,{children:[` 1738`,(0,H.jsx)(t.li,{children:`"Opt out of Interest-Based Ads" or "Opt out of Ads Personalization" on Android devices`}),` 1739`,(0,H.jsx)(t.li,{children:`"Limit Ad Tracking" on iOS devices`}),` 1740`]}),` 1741`,(0,H.jsx)(t.p,{children:`you can also stop the collection of location information from your mobile device by changing the preferences on your mobile device.`}),` 1742`,(0,H.jsx)(t.h3,{children:`Limit the Use or Disclosure of My Sensitive Personal Information`}),` 1743`,(0,H.jsx)(t.p,{children:`If you are a California resident, you have the right to limit the use and disclosure of your sensitive personal information to that use which is necessary to perform the services or provide the goods reasonably expected by an average consumer who requests such services or goods.`}),` 1744`,(0,H.jsx)(t.p,{children:`We collect, use and disclose sensitive personal information in ways that are necessary to provide our services. For more information on how we use your personal information, please see the "use of your Personal Information" section or contact us.`}),` 1745`,(0,H.jsx)(t.p,{children:`To submit a request to limit the use or disclosure of sensitive personal information, please contact us by using the methods listed in the "Contacting Us" section of our Privacy Policy.`}),` 1746`,(0,H.jsx)(t.h3,{children:`"Do Not Track" Policy as Required by California Online Privacy Protection Act (CalOPPA)`}),` 1747`,(0,H.jsx)(t.p,{children:`"Do Not Track" (or DNT) is a concept that has been promoted by US regulatory authorities, in particular the U.S. Federal Trade Commission (FTC), for the Internet industry to develop and implement a mechanism for allowing internet users to control the tracking of their online activities across websites.`}),` 1748`,(0,H.jsx)(t.p,{children:`Our services do not respond to Do Not Track signals.`}),` 1749`,(0,H.jsx)(t.p,{children:`However, some third-party websites do keep track of your browsing activities. If you are visiting such websites, you can set your preferences in your web browser to inform websites that you do not want to be tracked. You can enable or disable DNT by visiting the preferences or settings page of your web browser.`}),` 1750`,(0,H.jsx)(t.h3,{children:`Your California Privacy Rights (California's Shine the Light law)`}),` 1751`,(0,H.jsx)(t.p,{children:`If you are a California resident who has an account with us, then you can request information once a year about our sharing your personal information with third parties for the third parties' direct marketing purposes.`}),` 1752`,(0,H.jsx)(t.p,{children:`If you're a California resident and you'd like to request more information under the California Shine the Light law, and if you can contact us by using the contact information provided below.`}),` 1753`,(0,H.jsx)(t.h3,{children:`California Privacy Rights for Minor Users (California Business and Professions Code Section 22581)`}),` 1754`,(0,H.jsx)(t.p,{children:`If you are a California resident under the age of 18 who has an account with us, you can request and obtain removal of any content or information that you have publicly posted.`}),` 1755`,(0,H.jsx)(t.p,{children:`To request removal of such data, and if you are a California resident, you can contact us by using the contact information provided below, and include the email address associated with your account.`}),` 1756`,(0,H.jsx)(t.p,{children:`Be aware that your request does not guarantee complete or comprehensive removal of content or information posted online and that the law may not permit or require removal in certain circumstances.`}),` 1757`,(0,H.jsx)(t.h2,{children:`13. Colorado, Connecticut & Virginia`}),` 1758`,(0,H.jsx)(t.p,{children:`If you live in Colorado, Connecticut, or Virginia you have some additional rights:`}),` 1759`,(0,H.jsx)(t.p,{children:`If we deny your rights request, you have the right to appeal that decision. We will provide you with the necessary information to submit an appeal at that time.`}),` 1760`,(0,H.jsx)(t.p,{children:`You have the right to opt out of profiling in furtherance of decisions that produce legal or similarly significant effects concerning the consumer. We do not engage in such profiling as defined by Colorado law, so there's no need to opt out.`}),` 1761`,(0,H.jsx)(t.h2,{children:`14. Nevada`}),` 1762`,(0,H.jsxs)(t.p,{children:[`We do not sell your covered information, as defined under Chapter 603A of the Nevada Revised Statutes. If you still have questions about your covered information or anything else in our Privacy Statement, please send an email to `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`.`]}),` 1763`,(0,H.jsx)(t.h2,{children:`15. Changes to this Privacy Policy`}),` 1764`,(0,H.jsx)(t.p,{children:`We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page.`}),` 1765`,(0,H.jsx)(t.p,{children:`We will let you know via email and/or a prominent notice on our services, prior to the change becoming effective and update the "Last updated" date at the top of this Privacy Policy.`}),` 1766`,(0,H.jsx)(t.p,{children:`you are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.`}),` 1767`,(0,H.jsx)(t.h2,{children:`16. Contacting Us`}),` 1768`,(0,H.jsxs)(t.p,{children:[`If you have any questions about this Privacy Policy, you can contact us by email at `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`})]})]})}function fO(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(dO,{...e})}):dO(e)}var pO=HD(Object.assign({"../-content/privacy/2026-02-09.md":sO,"../-content/privacy/2026-07-06.md":uO})),mO=ls(`/_content/privacy/`)({head:()=>ED({title:`Privacy Policy`,description:`How Entire collects, uses, and protects your personal information.`,url:`https://entire.io/privacy`,image:`https://entire.io/og/page/privacy.png`}),loader:()=>{if(!WD(pO))throw oe()},component:ds(()=>ov(()=>import(`./privacy-DTUXS_uc.js`),__vite__mapDeps([39,1,34,35,2,11,10,12,13,16,36,26])
1768),`component`)}),hO=ls(`/_content/news/`)({head:()=>ED({title:`Newsroom`,description:`Press coverage and media about Entire.`,url:`https://entire.io/news`,image:`https://entire.io/og/page/news.png`}),component:ds(()=>ov(()=>import(`./news--_XN8-sk.js`),__vite__mapDeps([40,1,8,2,3,9])),`component`)}),gO=e({default:()=>vO,frontmatter:()=>void 0});function _O(e){let t={a:`a`,br:`br`,em:`em`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.h1,{children:`Data Processing Agreement`}),` 1769`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Last updated: 06 July 2026`})}),` 1770`,(0,H.jsxs)(t.p,{children:[`This Data Processing Agreement ("`,(0,H.jsx)(t.strong,{children:`DPA`}),`") applies to Entire's processing of your Personal Data when you use Entire's services. The DPA is intended to supplement Entire's `,(0,H.jsx)(t.a,{href:`/terms`,children:`Terms of Service`}),` (the "`,(0,H.jsx)(t.strong,{children:`Terms`}),`") and `,(0,H.jsx)(t.a,{href:`/privacy`,children:`Privacy Policy`}),` (the "`,(0,H.jsx)(t.strong,{children:`Privacy Policy`}),`"), however in the event of any conflict between this DPA and the `,(0,H.jsx)(t.a,{href:`/terms`,children:`Terms`}),` or `,(0,H.jsx)(t.a,{href:`/privacy`,children:`Privacy Policy`}),`, the terms and conditions of this DPA shall prevail.`]}),` 1771`,(0,H.jsx)(t.h2,{children:`1. Definitions`}),` 1772`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`A. "CCPA"`}),` means the California Consumer Privacy Act 2018.`]}),` 1773`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`B. "DPA"`}),` means this Data Processing Agreement.`]}),` 1774`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`C. "Data Protection Requirements"`}),` means the applicable obligations imposed on Entire by the GDPR, the CCPA, and any other applicable privacy, data protection and data security laws and regulations.`]}),` 1775`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`D. "Entire"`}),` means `,(0,H.jsx)(t.strong,{children:`Entire Inc`}),`, registered in the State of Delaware, United States.`]}),` 1776`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`E. "GDPR"`}),` means:`]}),` 1777`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(i)`}),` Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016; and`]}),` 1778`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(ii)`}),` Regulation (EU) 2016/679 as transposed into national law of the United Kingdom by the UK European Union (Withdrawal) Act 2018 (as may be amended from time to time).`]}),` 1779`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`F. "Entire's services"`}),` means any service or software that Entire provides you under a written and executed agreement.`]}),` 1780`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`G. "Security Incident"`}),` means a breach of security leading to the accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to your Personal Data processed by Entire on your behalf.`]}),` 1781`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`H.`}),` `,(0,H.jsx)(t.strong,{children:`"Standard Contractual Clauses`}),`" or "`,(0,H.jsx)(t.strong,{children:`SCCs`}),`" means:`]}),` 1782`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(i)`}),` where the GDPR applies the contractual clauses annexed to the European Commission's Implementing Decision 2021/914 of 4 June 2021 on standard contractual clauses for the transfer of Personal Data to third countries pursuant to Regulation (EU) 2016/679 of the European Parliament and of the Council (the "EU SCCs");`]}),` 1783`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(ii)`}),` where the UK GDPR applies, the "International Data Transfer Addendum to the EU Commission Standard Contractual Clauses" issued by the Information Commissioner under s.119A(1) of the Data Protection Act 2018 ("UK Addendum"); and`]}),` 1784`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(iii)`}),` where the Swiss Data Protection Act ("Swiss DPA") applies, the applicable standard data protection clauses issued, approved or otherwise recognized by the Swiss Federal Data Protection and Information Commissioner ("FDPIC") (the "Swiss SCCs").`]}),` 1785`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`I.`}),` `,(0,H.jsx)(t.strong,{children:`"Subprocessor"`}),` means a third-party Processor retained by Entire to process your data.`]}),` 1786`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`J. "Subprocessor List"`}),` means the list of Subprocessors identified on the Entire website at `,(0,H.jsx)(t.a,{href:`/subprocessors`,children:`https://entire.io/subprocessors`}),`, or a successor location.`]}),` 1787`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`K. "Troubleshooting"`}),` means preventing, detecting, investigating, mitigating, and repairing problems, including Security Incidents and problems identified in the relevant products. Troubleshooting includes fixing software defects and otherwise keeping the Entire's services up to date and performant.`]}
1787),` 1788`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`L. "you"`}),` or `,(0,H.jsx)(t.strong,{children:`"your"`}),` means the individual accessing or using Entire's services (or the company or other legal entity on behalf of which you are accessing or using Entire's services, as applicable).`]}),` 1789`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`M.`}),` `,(0,H.jsx)(t.strong,{children:`"Controller`}),`," "`,(0,H.jsx)(t.strong,{children:`Data Subject`}),`," "`,(0,H.jsx)(t.strong,{children:`Personal Data`}),`," "`,(0,H.jsx)(t.strong,{children:`Process`}),`," and "`,(0,H.jsx)(t.strong,{children:`Processor`}),`" have the meanings ascribed to them in the GDPR.`]}),` 1790`,(0,H.jsx)(t.h2,{children:`2. Processing Roles and Responsibilities`}),` 1791`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`A. Roles.`}),` You are the Controller of your Personal Data, and Entire is the Processor of that data, unless:`]}),` 1792`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(i)`}),` you are the Processor of your Personal Data. In that case, Entire is a Subprocessor; or`]}),` 1793`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(ii)`}),` Entire is an independent Controller processing your Personal Data for the purposes listed in Section 2.C of this DPA.`]}),` 1794`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`B. Your Processing instructions to Entire.`}),` You instruct Entire to perform the following activities as Processor acting on your behalf:`]}),` 1795`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(i)`}),` Provide Entire's services by:`]}),` 1796`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`a.`}),` providing and updating Entire's services as configured and used by you or your users, and to make ongoing personalized experiences and recommendations;`]}),` 1797`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`b.`}),` Troubleshooting; and`]}),` 1798`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`c.`}),` keeping Entire's services up to date and performant, and enhancing user productivity, reliability, efficacy, quality, privacy, accessibility and security.`]}),` 1799`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(ii) Process your Personal Data`}),` as set out in:`]}),` 1800`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`a.`}),` the `,(0,H.jsx)(t.a,{href:`https://entire.io/privacy`,children:`Privacy Policy`}),`;`]}),` 1801`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`b.`}),` Annex I to the Standard Contractual Clauses; and`]}),` 1802`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`c.`}),` any other documented instruction provided by you and acknowledged in writing by Entire as constituting instructions for purposes of this DPA.`]}),` 1803`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`C. Entire's Independent Processing of Data.`}),` Entire Processes some of your Personal Data as an independent Controller. Entire conducts such processing in compliance with Data Protection Requirements generally, and the GDPR specifically, and in a manner consistent with the purposes outlined in the `,(0,H.jsx)(t.a,{href:`https://entire.io/privacy`,children:`Privacy Policy`}),`. Entire will not use or otherwise process your Personal Data for: (a) user profiling, (b) advertising or similar commercial purposes, (c) data selling or brokering, or (d) any other purpose, other than for the purposes set out in this section. You agree that Entire may conduct this Processing.`]}),` 1804`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`D. Lawfulness of instructions.`})}),` 1805`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(i)`}),` It is your responsibility to ensure that your instructions comply with Data Protection Requirements. Entire is not responsible for determining what laws or regulations apply to your business, or for determining whether Entire's provision of services meets the requirements of such laws.`]}),` 1806`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(ii)`}),` You will ensure that processing your Personal Data in accordance with your instructions will not cause Entire to violate any law or regulation, including Data Protection Requirements.`]}),` 1807`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(iii)`}),` Entire will inform you if it becomes aware, or reasonably believes, that your instructions violate any applicable law or regulation.`]}),` 1808`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`E. Additional instructions.`}),` Any additional instructions outside the scope of the `,(0,H.jsx)(t.a,{href:`https://entire.io/terms`,children:`Terms`}),`, the `,(0,H.jsx)(t.a,{href:`https://entire.io/privacy`,children:`Privacy Policy`}),` or this DPA must be agreed between you and Entire in writing.`]}
1808),` 1809`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`F. Disclosure of your Personal Data.`})}),` 1810`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(i)`}),` Entire will not disclose or provide access to any of your Personal Data unless it is:`]}),` 1811`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`a.`}),` in accordance with your instructions; or`]}),` 1812`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`b.`}),` as described in the `,(0,H.jsx)(t.a,{href:`https://entire.io/terms`,children:`Terms`}),`, the `,(0,H.jsx)(t.a,{href:`https://entire.io/privacy`,children:`Privacy Policy`}),` or this DPA; or`]}),` 1813`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`c.`}),` required by law, in which case Annex IV to the SCCs will apply.`]}),` 1814`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(ii)`}),` Entire will not disclose or provide access to any of your Personal Data to law enforcement unless required by law or compelled by legal process. Requests by law enforcement for your Personal Data will be directed to you where possible.`]}),` 1815`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(iii)`}),` Entire will contact you if disclosure of your Personal Data is compelled and provide a copy of the legal process compelling the disclosure, unless Entire is legally prohibited from doing so.`]}),` 1816`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`G. Data Subject Rights.`}),` If Entire receives a request from one of your Data Subjects pertaining to Entire's services where Entire functions as your Processor or Subprocessor, Entire will redirect the Data Subject to you. Consistent with the functionality of Entire's services and Entire's role, Entire will cooperate with you and provide you the necessary means to respond. You are solely responsible for responding to these requests.`]}),` 1817`,(0,H.jsx)(t.h2,{children:`3. Security`}),` 1818`,(0,H.jsx)(t.p,{children:`Entire will implement and maintain appropriate technical and organizational measures and security safeguards as set out in Annex II to the SCCs.`}),` 1819`,(0,H.jsx)(t.h2,{children:`4. Audit`}),` 1820`,(0,H.jsx)(t.p,{children:`Entire will provide you with security compliance reporting upon your request. Should you be required to respond to a regulatory or supervisory request that requires Entire's participation, and your obligations cannot reasonably be satisfied with Entire's standard security compliance reports, Entire will promptly respond to your additional instructions and requests for information, in accordance with the following terms and conditions:`}),` 1821`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`A.`}),` Entire will provide access to relevant knowledgeable personnel, documentation, and application software.`]}),` 1822`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`B.`}),` You and Entire will agree in writing upon the scope, timing, duration, control, and evidence requirements.`]}),` 1823`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`C.`}),` Unless Entire is otherwise required by law or a supervisory authority of competent jurisdiction, Entire will provide such access:`]}),` 1824`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(i)`}),` if the regulator or supervisory authority uses an independent and accredited third-party audit firm;`]}),` 1825`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(ii)`}),` during regular business hours;`]}),` 1826`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(iii)`}),` on 30 days advance written notice; and`]}),` 1827`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(iv)`}),` only to your data and to those Entire systems or facilities involved in the relevant component of Entire's services. Neither you, your regulators, or your regulators' delegates shall have access to any data from Entire's other customers or to Entire systems or facilities not involved in Entire's services.`]}),` 1828`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`D.`}),` You will compensate Entire for the expenses incurred in the course of the above activities, including all out-of-pocket costs and reasonable costs and fees for time Entire expends, or services Entire provides, in connection with such cooperation.`]}),` 1829`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`E.`}),` Unless prohibited by law from doing so, you will share with Entire any reports, findings, or recommended actions pertaining to Entire.`]}),` 1830`,(0,H.jsx)(t.h2,{children:`5. Security Incidents`}),` 1831`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`A.`}),` If Entire becomes aware of a Security Incident, Entire will without undue delay:`]}),` 1832`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(i)`}),` notify you of the Security Incident, in accordance with the notice provisions in this DPA;`]}),` 1833`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(ii)`}),` investigate the Security Incident and provide detailed information about it; and,`]}),` 1834`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(iii)`}),` take reasonable steps to mitigate its effects and minimize any resulting damage.`]}),` 1835`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`B.`}),` Entire's notification of or response to a Security Incident under this section is not an acknowledgement of any fault or liability.`]}),` 1836`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`C.`}),` You are solely responsible for complying with your obligations under any incident notification laws. Entire will assist you to the extent required under applicable law in fulfilling your obligation to notify the relevant authorities and data subjects.`]}),` 1837`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`D.`}),` You must notify Entire promptly about any possible misuse of your accounts or authentication credentials, or any Security Incident related to Entire's service.`]}),`
1838`,(0,H.jsx)(t.h2,{children:`6. Data Transfers and Location`}),` 1839`,(0,H.jsx)(t.p,{children:`You appoint Entire to transfer your Personal Data to the United States or any other country in which Entire or its Subprocessors operate, and to store and process your Personal Data to provide Entire's services, subject to the safeguards below and described elsewhere in this DPA.`}),` 1840`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`A.`}),` Entire may transfer and process your Personal Data to and in the United States, to third-party countries (including those outside of the European Economic Area ("EEA") without an adequacy statement from the European Commission), and to Subprocessors, Entire's subsidiary companies and professional advisors. Entire shall ensure that such transfers are made in compliance with Data Protection Requirements and this DPA. If you select and use Entire's services where certain data is stored at rest in a specific geographic area, Entire will store the applicable data based on that instruction.`]}),` 1841`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`B.`}),` Any transfer of your Personal Data subject to this DPA from member states of the EU, EEA, Switzerland, or the United Kingdom to any countries where the European Commission, the FDPIC, or the UK Information Commissioner's Office has not decided that the third country or more specified sectors within that third country ensures an adequate level of protection, shall be undertaken through the Standard Contractual Clauses.`]}),` 1842`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`C.`}),` For the Standard Contractual Clauses, the Parties agree:`]}),` 1843`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(i) Controller to Controller Transfers.`}),` The SCCs shall apply to Personal Data that is protected by the GDPR and processed in accordance with Section 2.C of this DPA, completed as follows:`]}),` 1844`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`a.`}),` Module One will apply;`]}),` 1845`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`b.`}),` in Clause 7, the optional docking clause will apply;`]}),` 1846`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`c.`}),` in Clause 11, the optional language will not apply;`]}),` 1847`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`d.`}),` in Clause 17, Option 1 will apply, and the New EU SCCs will be governed by the law of Ireland; and,`]}),` 1848`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`e.`}),` in Clause 18(b), disputes shall be resolved before the courts of Ireland.`]}),` 1849`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(ii) Controller to Processor/Processor to Processor Transfers.`}),` The SCCs shall apply to Personal Data that is protected by the GDPR and processed in accordance with Section 2.B of this DPA, completed as follows:`]}),` 1850`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`a.`}),` Module Two or Module Three will apply (as applicable);`]}),` 1851`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`b.`}),` in Clause 7, the optional docking clause will apply;`]}),` 1852`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`c.`}),` in Clause 9, Option 2 will apply, and the time period for prior notice of Subprocessor changes shall be as set out in Section 8 of this DPA;`]}),` 1853`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`d.`}),` in Clause 11, the optional language will not apply;`]}),` 1854`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`e.`}),` in Clause 17, Option 1 will apply, and the EU SCCs will be governed by the law of Ireland; and,`]}),` 1855`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`f.`}),` in Clause 18(b), disputes shall be resolved before the courts of Ireland.`]}),` 1856`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(iii) Transfers from the UK.`}),` In relation to Personal Data that is protected by the UK GDPR, the UK Addendum will apply, completed as follows:`]}),` 1857`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`a.`}),` the SCCs shall also apply to transfers of such Personal Data, subject to sub-section (b) below;`]}),` 1858`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`b.`}),` Tables 1 to 3 of the UK Addendum shall be deemed completed with relevant information from the SCCs, completed as set out in Section 6.B of this DPA, and the option "neither party" shall be deemed checked in Table 4; and,`]}),` 1859`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`c.`}),` The start date of the UK Addendum (as set out in Table 1) shall be the date of this DPA.`]}
1859),` 1860`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`(iv) Transfers from Switzerland.`}),` In relation to Personal Data that is protected by the Swiss DPA, the EU SCCs will apply in accordance with Sections 6.B.(i)-(ii) with the following modifications:`]}),` 1861`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`a.`}),` any references in the EU SCCs to "Directive 95/46/EC" or "Regulation (EU) 2016/679" shall be interpreted as references to the Swiss Federal Data Protection Act;`]}),` 1862`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`b.`}),` references to "EU", "Union", "Member State" and "Member State law" shall be interpreted as references to Switzerland and Swiss law, as applicable; and,`]}),` 1863`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`c.`}),` references to the "competent supervisory authority" and "competent courts" shall be interpreted as references to the FDPIC and competent courts in Switzerland, unless the SCCs as implemented above cannot be used to lawfully transfer such Personal Data in compliance with the Swiss DPA, in which event the Swiss SCCs shall instead be incorporated by reference and form an integral part of this DPA and shall apply to such transfers. Where this is the case, the relevant Annexes of the Swiss SCCs shall be populated using the information contained in Annexes I and II of this DPA.`]}),` 1864`,(0,H.jsx)(t.h2,{children:`7. Retention and Deletion`}),` 1865`,(0,H.jsx)(t.p,{children:`Following the completion of Entire's services, to the extent that Entire is a Processor and unless prohibited by law, Entire will use its best endeavors to:`}),` 1866`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`A.`}),` delete or return all of your Personal Data to you, whichever you elect; and`]}),` 1867`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`B.`}),` delete existing copies in accordance with Entire's retention and deletion policy.`]}),` 1868`,(0,H.jsx)(t.h2,{children:`8. Subprocessors`}),` 1869`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`A.`}),` Entire may hire Subprocessors of its choosing. The above authorization constitutes your prior written consent to Entire subcontracting the processing of Personal Data to any Subprocessor on the `,(0,H.jsx)(t.a,{href:`/subprocessors`,children:`Subprocessor List`}),`.`]}),` 1870`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`B.`}),` From time to time, Entire may engage new Subprocessors. Entire will give you notice of such engagements by updating the Subprocessor List and providing you with notice of that update 30 days before providing that Subprocessor with access to your Personal Data.`]}),` 1871`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`C.`}),` If you do not approve of a new Subprocessor, you may terminate any subscription for the affected component of Entire's services without penalty by providing written notice of termination before the end of the relevant notice period. If the affected Entire service is part of a suite or purchased as part of a bundle, then any termination will apply to the entire suite or bundle.`]}),` 1872`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`D.`}),` Entire is responsible for Subprocessors' compliance with Entire's obligations in this DPA, and will engage such Subprocessors by written agreements compliant with the requirements of the GDPR governing the use of Subprocessors. Entire will oversee the Subprocessors to ensure that their contractual obligations are met.`]}),` 1873`,(0,H.jsx)(t.h2,{children:`9. CCPA`}),` 1874`,(0,H.jsx)(t.p,{children:`If and to the extent Entire is processing Personal Data within the scope of the CCPA on your behalf and in accordance with your documented instructions, Entire will not:`}),` 1875`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`A.`}),` sell the Personal Data as the term "selling" is defined in the CCPA;`]}),` 1876`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`B.`}),` share, rent, release, disclose, disseminate, make available, transfer, or otherwise communicate orally, in writing, or by electronic or other means, the Personal Data to a third party for cross-context behavioral advertising, whether or not for monetary or other valuable consideration, including transactions for cross-context behavioral advertising in which no money is exchanged;`]}),` 1877`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`C.`}),` retain, use, or disclose the Personal Data for any purpose other than for the business purposes specified in the `,(0,H.jsx)(t.a,{href:`https://entire.io/terms`,children:`Terms`}),`, the `,(0,H.jsx)(t.a,{href:`https://entire.io/privacy`,children:`Privacy Policy`}),` or this DPA, or as otherwise permitted by the CCPA;`]}),` 1878`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`D.`}),` retain, use, or disclose the Personal Data outside of the direct business relationship with you; or`]}),` 1879`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`E.`}),` combine the Personal Data with personal information that it receives from or on behalf of a third party or collects from California residents, except that Entire may combine Personal Data to perform any business purpose as permitted by the CCPA or any regulations adopted or issued under the CCPA.`]}
1879),` 1880`,(0,H.jsx)(t.h2,{children:`10. Educational Institutions`}),` 1881`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`A.`}),` If you are an educational agency or institution subject to the regulations under the Family Educational Rights and Privacy Act, 20 U.S.C. § 1232g (FERPA), or similar state student or educational privacy laws (collectively "Educational Privacy Laws"), you shall not provide Personal Data covered by such Educational Privacy Laws to Entire without obtaining Entire's prior, written, and specific consent expressly reciting Entire's agreement to accept Personal Data subject to an Educational Privacy Law, and entering into a separate agreement with Entire governing the parties' rights and obligations with respect to the processing of such Personal Data by Entire in connection with Entire's services.`]}),` 1882`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`B.`}),` Without waiver of the above, or limiting Entire's remedies in the event of a breach of the above provision, if you breach the above provision by providing Entire any Personal Data covered by FERPA without such a separate agreement, you agree and acknowledge that, for the purposes of this DPA, Entire is a "school official" with "legitimate educational interests" in the Personal Data, as those terms have been defined under FERPA and its implementing regulations. you understand Entire may possess limited or no contact information for your students and students' parents. Consequently, you are responsible for obtaining any student or parental consent that may be required by applicable law for any end user's use of Entire's services and to convey notification on behalf of Entire to students (or a student's legal guardian when required) of any judicial order or lawfully issued subpoena requiring the disclosure of Personal Data in Entire's possession as may be required under applicable law.`]}),` 1883`,(0,H.jsx)(t.h2,{children:`11. Restricted Personal Data`}),` 1884`,(0,H.jsx)(t.p,{children:`Except with Entire's prior, written, and specific consent, you shall not provide Entire any Personal Data:`}),` 1885`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`A.`}),` relating to criminal convictions and offenses or Personal Data collected or otherwise processed by you subject to or in connection with FBI Criminal Justice Information Services or the related Security Policy;`]}),` 1886`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`B.`}),` constituting protected health information governed by the privacy, security, and breach notification rules issued by the United States Department of Health and Human Services, Parts 160 and 164 of Title 45 of the Code of Federal Regulations, established pursuant to the Health Insurance Portability and Accountability Act of 1996 (Public Law 104-191) or by state health or medical privacy laws;`]}),` 1887`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`C.`}),` collected as part of a clinical trial or other biomedical research study subject to, or conducted in accordance with, the Federal Policy for the Protection of Human Subjects; or`]}),` 1888`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`D.`}),` covered by state, federal, or foreign biometric privacy laws or otherwise constituting biometric information including information on an individual's physical, physiological, biological, or behavioral characteristics or information derived from such information that is used or intended to be used, singly or in combination with each other or with other information, to establish individual identity.`]}),` 1889`,(0,H.jsx)(t.h2,{children:`12. Breach`}),` 1890`,(0,H.jsx)(t.p,{children:`If you believe that Entire is in breach of its obligations under this DPA, you must provide Entire with notice of such breach and Entire shall have 14 business days to cure any such breach.`}),` 1891`,(0,H.jsx)(t.h2,{children:`13. Notices`}),` 1892`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`A. Notices to Entire.`}),` You will provide notices to Entire by email to `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`.`]}),` 1893`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`B. Notices to you.`}),` Entire may provide notices to you by any means of notifying your administrator(s), including email, that Entire selects. It is y
1893our obligation to maintain accurate contact information with Entire, and you will monitor any contact address provided to Entire so that you can receive and respond to such Notices.`]}),` 1894`,(0,H.jsx)(t.h2,{children:`DPA Attachment 1`}),` 1895`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`ANNEX I to the Standard Contractual Clauses (EU/EEA)`})}),` 1896`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`A. LIST OF PARTIES`})}),` 1897`,(0,H.jsx)(t.p,{children:`MODULE ONE: CONTROLLER TO CONTROLLER MODULE TWO: CONTROLLER TO PROCESSOR MODULE THREE: PROCESSOR TO PROCESSOR`}),` 1898`,(0,H.jsx)(t.h3,{children:`Data exporter(s) for the above modules`}),` 1899`,(0,H.jsx)(t.p,{children:`Customer's Name and contact details:`}),` 1900`,(0,H.jsxs)(t.p,{children:[`Activities relevant to the data transferred under these Clauses: as set out in the `,(0,H.jsx)(t.a,{href:`https://entire.io/terms`,children:`Terms`}),` and the `,(0,H.jsx)(t.a,{href:`https://entire.io/privacy`,children:`Privacy Policy`}),`.`]}),` 1901`,(0,H.jsx)(t.p,{children:`Signature and date: Annex 1 is deemed to be executed on the date the transfer commenced or the date that the Agreement was executed, whichever is earlier.`}),` 1902`,(0,H.jsx)(t.p,{children:`Role: MODULE ONE: CONTROLLER, MODULE TWO: CONTROLLER, MODULE THREE: PROCESSOR`}),` 1903`,(0,H.jsx)(t.h3,{children:`Data importer(s)`}),`
1904`,(0,H.jsx)(t.p,{children:`Name and contact details:`}),` 1905`,(0,H.jsx)(t.p,{children:`Entire, Inc.`}),` 1906`,(0,H.jsxs)(t.p,{children:[`PO Box # 40426`,(0,H.jsx)(t.br,{}),` 1907`,`12400 SE 38th St`,(0,H.jsx)(t.br,{}),` 1908`,`Bellevue, WA 98006-9899`]}),` 1909`,(0,H.jsxs)(t.p,{children:[`Activities relevant to the data transferred under these Clauses: as set out in the `,(0,H.jsx)(t.a,{href:`https://entire.io/terms`,children:`Terms`}),` and the `,(0,H.jsx)(t.a,{href:`https://entire.io/privacy`,children:`Privacy Policy`}),`.`]}),` 1910`,(0,H.jsx)(t.p,{children:`Signature and date: Annex 1 is deemed to be executed on the date the transfer commenced or the date that the Agreement was executed, whichever is earlier.`}),` 1911`,(0,H.jsx)(t.p,{children:`Role: MODULE ONE: CONTROLLER, MODULE TWO: PROCESSOR, MODULE THREE: (SUB)PROCESSOR`}),` 1912`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`B. Description of Transfer`})}),` 1913`,(0,H.jsx)(t.p,{children:`MODULE ONE: CONTROLLER TO CONTROLLER MODULE TWO: CONTROLLER TO PROCESSOR MODULE THREE: PROCESSOR TO PROCESSOR`}),` 1914`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Categories of data subjects whose personal data is transferred:`})}),` 1915`,(0,H.jsx)(t.p,{children:`Data subjects include the data exporter's representatives and end-users including employees, contractors, collaborators, and customers of the data exporter.`}),` 1916`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Categories of personal data transferred:`})}),` 1917`,(0,H.jsxs)(t.p,{children:[`As set out in the `,(0,H.jsx)(t.a,{href:`https://entire.io/terms`,children:`Terms`}),` and the `,(0,H.jsx)(t.a,{href:`https://entire.io/privacy`,children:`Privacy Policy`}),`.`]}),` 1918`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Sensitive data transferred (if applicable) and applied restrictions or safeguards that fully take into consideration the nature of the data and the risks involved, such as for instance strict purpose limitation, access restrictions (including access only for staff having followed specialized training), keeping a record of access to the data, restrictions for onward transfers or additional security measures:`})}),` 1919`,(0,H.jsx)(t.p,{children:`Entire does not request or otherwise ask for sensitive data and receives such data only if and when customers or data subjects decide to provide it.`}),` 1920`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`The frequency of the transfer (e.g. whether the data is transferred on a one-off or continuous basis):`})}),` 1921`,(0,H.jsx)(t.p,{children:`Continuous as part of Entire's services.`}),`
1922`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Nature of the processing:`})}),` 1923`,(0,H.jsx)(t.p,{children:`The personal data transferred will be subject to the following basic processing activities:`}),` 1924`,(0,H.jsxs)(t.ul,{children:[` 1925`,(0,H.jsxs)(t.li,{children:[` 1926`,(0,H.jsx)(t.p,{children:`Duration and Object of Data Processing. The duration of data processing shall be for the term designated under contract between data exporter and the data importer. The objective of the data processing is the performance of Entire's services.`}),` 1927`]}),` 1928`,(0,H.jsxs)(t.li,{children:[` 1929`,(0,H.jsx)(t.p,{children:`Personal Data Access. For the term designated under the applicable contract between data exporter and the data importer, data importer will, at its election and as necessary under applicable law, either: (1) provide data exporter with the ability to correct, delete, or block personal data, or (2) make such corrections, deletions, or blockages on its behalf.`}),` 1930`]}),` 1931`,(0,H.jsxs)(t.li,{children:[` 1932`,(0,H.jsxs)(t.p,{children:[`Data Exporter's instructions. For Entire's services, data importer will only act upon data exporter's instructions or in accordance with the `,(0,H.jsx)(t.a,{href:`https://entire.io/terms`,children:`Terms`}),` or the `,(0,H.jsx)(t.a,{href:`https://entire.io/privacy`,children:`Privacy Policy`}),`, as applicable.`]}),` 1933`]}),` 1934`]}),` 1935`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Purpose(s) of the data transfer and further processing:`})}),` 1936`,(0,H.jsx)(t.p,{children:`The scope and purpose of processing personal data is described in DPA Section 2 on Scope and Processing Roles. Processing may take place in any jurisdiction where data importer or its subprocessors operate such facilities in accordance with DPA Section 6 on Data Transfers and Locations.`}),` 1937`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`The period for which the personal data will be retained, or, if that is not possible, the criteria used to determine that period:`})}),` 1938`,(0,H.jsx)(t.p,{children:`Personal data will be retained under return or deletion of data in accordance with Section 7 of the DPA.`}),` 1939`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`For transfers to (sub-) processors, also specify subject matter, nature and duration of the processing:`})}),` 1940`,(0,H.jsx)(t.p,{children:`In accordance with the DPA, the data importer may engage other companies to provide services on data importer's behalf. Any such subcontractors will be permitted to obtain personal data only to deliver the services the data importer has retained them to provide, and they are prohibited from using personal data for any other purpose. Unless a particular subcontractor is replaced ahead of time, the processing will be for the term designated under the applicable contract between data exporter and the data importer.`}),` 1941`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`C. COMPETENT SUPERVISORY AUTHORITY`})}),` 1942`,(0,H.jsx)(t.p,{children:`MODULE ONE: CONTROLLER TO CONTROLLER MODULE TWO: CONTROLLER TO PROCESSOR MODULE THREE: PROCESSOR TO PROCESSOR`}),` 1943`,(0,H.jsx)(t.p,{children:`The supervisory authority with responsibility for ensuring compliance by the data exporter with Regulation (EU) 2016/679 â i.e. the regulator of the EU member state where the data exporter is resident.`}),` 1944`,(0,H.jsx)(t.h2,{children:`DPA Attachment 2`}),` 1945`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Annex II to the Standard Contractual Clauses (EU/EEA)`})}),` 1946`,(0,H.jsx)(t.p,{children:`MODULE ONE: CONTROLLER TO CONTROLLER MODULE TWO: CONTROLLER TO PROCESSOR MODULE THREE: PROCESSOR TO PROCESSOR`}),` 1947`,(0,H.jsx)(t.h3,{children:`TECHNICAL AND ORGANISATIONAL MEASURES INCLUDING TECHNICAL AND ORGANISATIONAL MEASURES TO ENSURE THE SECURITY OF THE DATA`}),` 1948`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Description of the technical and organizational measures implemented by the data importer(s) (including any relevant certifications) to ensure an appropriate level of security, taking into account the nature, scope, context and purpose of the processing, and the risks for the rights and freedoms of natural persons.`})}),` 1949`,(0,H.jsxs)(t.ul,{children:[` 1950`,(0,H.jsxs)(t.li,{children:[` 1951`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Entire's personnel:`}),` Entire's personnel with access to personal data are bound by confidentiality obligations under contract.`]}),` 1952`]}),` 1953`,(0,H.jsxs)(t.li,{children:[` 1954`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`In transit:`}),` all traffic encrypted with TLS (client-facing and service-to-service).`]}),` 1955`]}),` 1956`,(0,H.jsxs)(t.li,{children:[` 1957`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Logging and monitoring:`}),` System and application activity is logged and monitored.`]}),` 1958`]}),` 1959`,(0,H.jsxs)(t.li,{children:[` 1960`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Vulnerability management and secure development:`}),` Application code and dependencies undergo automated vulnerability scanning; changes are peer-reviewed before release; and development, staging, and production environments are kept separate.`]}),` 1961`]}),` 1962`,(0,H.jsxs)(t.li,{children:[` 1963`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Network security:`}),` Public-facing traffic is protected by a web application firewall, and internal networks are segmented to limit lateral access.`]}),` 1964`]}),` 1965`,(0,H.jsxs)(t.li,{children:[` 1966`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Business continuity and data recovery:`}),` Backups are encrypted at rest.`]}),` 1967`]}),` 1968`,(0,H.jsxs)(t.li,{children:[` 1969`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Physical and environmental security:`}),` Physical and environmental security of the underlying infrastru
1969cture is managed by Entire's cloud infrastructure providers, each of which maintains independently audited physical and environmental controls (for example, SOC 2 and ISO 27001).`]}),` 1970`]}),` 1971`]}),` 1972`,(0,H.jsx)(t.h2,{children:`ANNEX III â LIST OF SUB-PROCESSORS`}),` 1973`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`to the Standard Contractual Clauses (EU/EEA)`})}),` 1974`,(0,H.jsx)(t.p,{children:`MODULE ONE: CONTROLLER TO CONTROLLER MODULE TWO: CONTROLLER TO PROCESSOR MODULE THREE: PROCESSOR TO PROCESSOR`}),` 1975`,(0,H.jsx)(t.p,{children:`The Parties rely on general authorization under Clause 9a of the Standard Contractual Clauses (EU/EEA).`}),` 1976`,(0,H.jsxs)(t.p,{children:[`The list of Subprocessors is maintained on the Entire website at `,(0,H.jsx)(t.a,{href:`https://entire.io/subprocessors`,children:`https://entire.io/subprocessors`}),` (or a successor location), and is updated in accordance with Section 8 of this DPA.`]}),` 1977`,(0,H.jsx)(t.h2,{children:`ANNEX IV to the Standard Contractual Clauses (EU/EEA) â Additional Safeguards Addendum`}),` 1978`,(0,H.jsx)(t.p,{children:`This Addendum to the Standard Contractual Clauses ("Addendum") by Entire provides extra safeguards and redress for data subjects linked to your personal data. It supplements but does not modify the Standard Contractual Clauses.`}),` 1979`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`I. Challenges to Orders:`}),` If Entire receives an order demanding disclosure of personal data transferred under the Standard Contractual Clauses, Entire will:`]}),` 1980`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`a.`}),` Redirect the third party to request data from the Customer;`]}),` 1981`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`b.`}),` Inform the Customer unless legally prohibited, striving to waive this prohibition;`]}),` 1982`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`c.`}),` Challenge the disclosure order legally.`]}),` 1983`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`II. Indemnification of Data Subjects:`}),` Entire shall indemnify a data subject for damages caused by Entire's disclosure of their data in response to an order from a non-EU/EEA government body.`]}),` 1984`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`a. No Obligation to Indemnify:`})}),` 1985`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`i.`}),` If the data subject has already received compensation for the same damage, Entire has no obligation to indemnify.`]}),` 1986`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`ii.`}),` If Entire can prove the disclosure did not violate Chapter V of the GDPR, Entire has no obligation to indemnify.`]}),` 1987`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`b. Conditions of Indemnification:`}),` Indemnification depends on the data subject proving that:`]}),` 1988`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`i.`}),` Entire disclosed the data;`]}),` 1989`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`ii.`}),` This led to an official proceeding against them; and`]}),` 1990`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`iii.`}),` The disclosure directly caused damage.`]}),` 1991`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`c. Scope of Damages:`}),` Indemnification covers only damages defined in the GDPR, excluding consequential and other damages not due to Entire's GDPR infringement.`]}),` 1992`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`III. Exercise of Rights:`}),` Data subjects can enforce their rights under this Addendum against Entire irrespective of any restrictions in the Standard Contractual Clauses. Claims must be individual, not part of a collective action, and are non-transferable.`]}),` 1993`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`IV. Notice of Change:`}),` Entire warrants that the current legislation to which it is subject allows it to fulfill obligations under this Addendum and the Standard Contractual Clauses. If a legal change affecting these obligations occurs, Entire will notify the Customer, who can then suspend data transfer or terminate the contract.`]}),` 1994`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`V. Termination:`}),` This Addendum ends if a different lawful transfer mechanism is approved that covers the data transfers of the Standard Contractual Clauses, and doesn't require these additional safeguards.`]})]})}function vO(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(_O,{...e})}):_O(e)}var yO=HD(Object.assign({"../-content/dpa/2026-07-06.md":gO})),bO=ls(`/_content/dpa/`)({head:()=>ED({title:`Data Processing Agreement`,description:`How Entire processes personal data on your behalf as a processor.`,url:`https://entire.io/dpa`,image:`https://entire.io/og/page/dpa.png`}),loader:()=>{if(!WD(yO))throw oe()},component:ds(()=>ov(()=>import(`./dpa-iFDuymBN.js`),__vite__mapDeps([41,1,34,35,2,11,10,12,13,16,36,26])
1994),`component`)}),xO=e({default:()=>CO,frontmatter:()=>void 0});function SO(e){let t={a:`a`,em:`em`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.h1,{children:`Cookie Policy`}),` 1995`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Last updated: 09 February 2026`})}),` 1996`,(0,H.jsx)(t.p,{children:`This Cookies Policy explains what Cookies are and how We use them. You should read this policy so You can understand what type of cookies We use, or the information We collect using Cookies and how that information is used.`}),` 1997`,(0,H.jsx)(t.p,{children:`Cookies do not typically contain any information that personally identifies a user, but personal information that We store about You may be linked to the information stored in and obtained from Cookies. For further information on how We use, store and keep your personal data secure, see our Privacy Policy, if and when We make it available within the Website or on our website.`}),` 1998`,(0,H.jsx)(t.p,{children:`We do not store sensitive personal information, such as mailing addresses, account passwords, etc. in the Cookies We use.`}),` 1999`,(0,H.jsx)(t.h2,{children:`Interpretation and Definitions`}),` 2000`,(0,H.jsx)(t.h3,{children:`Interpretation`}),` 2001`,(0,H.jsx)(t.p,{children:`The words whose initial letters are capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.`}),` 2002`,(0,H.jsx)(t.h3,{children:`Definitions`}),` 2003`,(0,H.jsx)(t.p,{children:`For the purposes of this Cookies Policy:`}),` 2004`,(0,H.jsxs)(t.ul,{children:[` 2005`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Company`}),` (referred to as either "the Company", "We", "Us" or "Our" in this Co
2005okies Policy) refers to Entire Inc, 1209 Orange Street, City of Wilmington, County of New Castle, Delaware 19801.`]}),` 2006`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Cookies`}),` means small files that are placed on Your computer, mobile device or any other device by a website, containing details of your browsing history on that website among its many uses.`]}),` 2007`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Website`}),` refers to Entire, accessible from `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`https://entire.io`}),`.`]}),` 2008`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`You`}),` means the individual accessing or using the Website, or a company, or any legal entity on behalf of which such individual is accessing or using the Website, as applicable.`]}),` 2009`]}),` 2010`,(0,H.jsx)(t.h2,{children:`The use of the Cookies`}),` 2011`,(0,H.jsx)(t.h3,{children:`Type of Cookies We Use`}),` 2012`,(0,H.jsx)(t.p,{children:`Cookies can be "Persistent" or "Session" Cookies. Persistent Cookies remain on your personal computer or mobile device when You go offline, while Session Cookies are deleted as soon as You close your web browser.`}),` 2013`,(0,H.jsx)(t.p,{children:`Where required by law, We will request your consent before using Cookies that are not strictly necessary. Strictly necessary Cookies are used to provide the Website and cannot be switched off in our systems.`}),` 2014`,(0,H.jsx)(t.p,{children:`We use both session and persistent Cookies for the purposes set out below:`}),` 2015`,(0,H.jsxs)(t.ul,{children:[` 2016`,(0,H.jsxs)(t.li,{children:[` 2017`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Necessary / Essential Cookies`})}),` 2018`,(0,H.jsx)(t.p,{children:`Type: Session Cookies`}),` 2019`,(0,H.jsx)(t.p,{children:`Administered by: Us`}),` 2020`,(0,H.jsx)(t.p,{children:`Purpose: These Cookies are essential to provide You with services available through the Website and to enable You to use some of its features. They help to authenticate users and prevent fraudulent use of user accounts. Without these Cookies, the services that You have asked for cannot be provided, and We only use these Cookies to provide You with those services.`}),` 2021`]}),` 2022`,(0,H.jsxs)(t.li,{children:[` 2023`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Consent Cookies / Preferences Cookies`})}),` 2024`,(0,H.jsx)(t.p,{children:`Type: Persistent Cookies`}),` 2025`,(0,H.jsx)(t.p,{children:`Administered by: Us`}),` 2026`,(0,H.jsx)(t.p,{children:`Purpose: These Cookies (or similar technologies) store your cookie preferences/consent choices.`}),` 2027`]}),` 2028`,(0,H.jsxs)(t.li,{children:[` 2029`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Functionality Cookies`})}),` 2030`,(0,H.jsx)(t.p,{children:`Type: Persistent Cookies`}),` 2031`,(0,H.jsx)(t.p,{children:`Administered by: Us`}),` 2032`,(0,H.jsx)(t.p,{children:`Purpose: These Cookies allow Us to remember choices You make when You use the Website, such as remembering your login details or language preference. The purpose of these Cookies is to provide You with a more personal experience and to avoid You having to re-enter your preferences every time You use the Website.`}),` 2033`]}),` 2034`,(0,H.jsxs)(t.li,{children:[` 2035`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Tracking and Performance Cookies`})}),` 2036`,(0,H.jsx)(t.p,{children:`Type: Persistent Cookies`}),` 2037`,(0,H.jsx)(t.p,{children:`Administered by: Third Parties`}),` 2038`,(0,H.jsx)(t.p,{children:`Purpose: These Cookies are used to track information about traffic to the Website and how users use the Website. The information gathered via these Cookies may directly or indirectly identify you as an individual visitor. This is because the information collected is typically linked to a pseudonymous identifier associated with the device you use to access the Website. We may also use these Cookies to test new pages, features or functionality of the Website to see how our users react to them.`}),` 2039`]}),` 2040`,(0,H.jsxs)(t.li,{children:[` 2041`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Social Media Cookies`})}),` 2042`,(0,H.jsx)(t.p,{children:`Type: Persistent Cookies`}),` 2043`,(0,H.jsx)(t.p,{children:`Administered by: Third Parties`}),`
2044`,(0,H.jsx)(t.p,{children:`Purpose: In addition to Our own Cookies, We may also use various third party plug-ins from social media networking websites such as Facebook, Instagram, X (Twitter), LinkedIn, or similar services to report usage statistics of the Website and to provide social media features. These third party plug-ins may store Cookies. We do not control these Social Media Cookies. Please refer to the relevant social media networking's website privacy policies for information about their cookies.`}),` 2045`]}),` 2046`]}),` 2047`,(0,H.jsx)(t.h3,{children:`Your Choices Regarding Cookies`}),` 2048`,(0,H.jsx)(t.p,{children:`If You prefer to avoid the use of Cookies on the Website, first You must disable the use of Cookies in your browser and then delete the Cookies saved in your browser associated with the Website. You may use this option for preventing the use of Cookies at any time.`}),` 2049`,(0,H.jsx)(t.p,{children:`If You do not accept Our Cookies, You may experience some inconvenience in your use of the Website and some features may not function properly.`}),` 2050`,(0,H.jsx)(t.p,{children:`If You'd like to delete Cookies or instruct your web browser to delete or refuse Cookies, please visit the help pages of your web browser.`}),` 2051`,(0,H.jsxs)(t.ul,{children:[` 2052`,(0,H.jsxs)(t.li,{children:[` 2053`,(0,H.jsxs)(t.p,{children:[`For the Chrome web browser, please visit this page from Google: `,(0,H.jsx)(t.a,{href:`https://support.google.com/accounts/answer/32050`,children:`https://support.google.com/accounts/answer/32050`})]}),` 2054`]}),` 2055`,(0,H.jsxs)(t.li,{children:[` 2056`,(0,H.jsxs)(t.p,{children:[`For the Microsoft Edge browser, please visit this page from Microsoft: `,(0,H.jsx)(t.a,{href:`https://support.microsoft.com/microsoft-edge/delete-cookies-in-microsoft-edge-63947406-40ac-c3b8-57b9-2a946a29ae09`,children:`https://support.microsoft.com/microsoft-edge/delete-cookies-in-microsoft-edge-63947406-40ac-c3b8-57b9-2a946a29ae09`})]}),` 2057`]}),` 2058`,(0,H.jsxs)(t.li,{children:[` 2059`,(0,H.jsxs)(t.p,{children:[`For the Firefox web browser, please visit this page from Mozilla: `,(0,H.jsx)(t.a,{href:`https://support.mozilla.org/en-US/kb/delete-cookies-remove-info-websites-stored`,children:`https://support.mozilla.org/en-US/kb/delete-cookies-remove-info-websites-stored`})]}),` 2060`]}),` 2061`,(0,H.jsxs)(t.li,{children:[` 2062`,(0,H.jsxs)(t.p,{children:[`For the Safari web browser, please visit this page from Apple: `,(0,H.jsx)(t.a,{href:`https://support.apple.com/guide/safari/manage-cookies-and-website-data-sfri11471/mac`,children:`https://support.apple.com/guide/safari/manage-cookies-and-website-data-sfri11471/mac`})]}),` 2063`]}),` 2064`]}),` 2065`,(0,H.jsx)(t.p,{children:`For any other web browser, please visit your web browser's official web pages.`}),` 2066`,(0,H.jsx)(t.h3,{children:`Changes to this Cookies Policy`}),` 2067`,(0,H.jsx)(t.p,{children:`We may update this Cookies Policy from time to time. The "Last updated" date at the top indicates when it was last revised.`}),` 2068`,(0,H.jsx)(t.h3,{children:`Contact Us`}),` 2069`,(0,H.jsx)(t.p,{children:`If you have any questions about this Cookies Policy, You can contact us:`}),` 2070`,(0,H.jsxs)(t.ul,{children:[` 2071`,(0,H.jsxs)(t.li,{children:[`By email: `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`})]}),` 2072`]})]})}function CO(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(SO,{...e})}):SO(e)}var wO=e({default:()=>EO,frontmatter:()=>void 0});function TO(e){let t={a:`a`,em:`em`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.h1,{children:`Cookie Policy`}),` 2073`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Last updated: 06 July 2026`})}),` 2074`,(0,H.jsx)(t.p,{children:`This Cookies Policy explains what Cookies are and how we use them. You should read this policy so you can understand what type of cookies we use, or the information we collect using Cookies and how that information is used.`}),` 2075`,(0,H.jsxs)(t.p,{children:[`Cookies do not typically contain any information that personally identifies a user, but personal information that we store about you may be linked to the information stored in and obtained from Cookies. For further information on how we use, store and keep your personal data secure, see our `,(0,H.jsx)(t.a,{href:`https://entire.io/privacy`,children:`Privacy Policy`}),`.`]}),` 2076`,(0,H.jsx)(t.p,{children:`We do not store sensitive personal information, such as mailing addresses, account passwords, etc. in the Cookies we use.`}),` 2077`,(0,H.jsx)(t.h2,{children:`Interpretation and Definitions`}),` 2078`,(0,H.jsx)(t.h3,{children:`Interpretation`}),` 2079`,(0,H.jsx)(t.p,{children:`The words whose initial letters are capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.`}),` 2080`,(0,H.jsx)(t.h3,{children:`Definitions`}),` 2081`,(0,H.jsx)(t.p,{children:`For the purposes of this Cookies Policy:`}),` 2082`,(0,H.jsxs)(t.ul,{children:[` 2083`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Cookies`}
2083),` means small files that are placed on your computer, mobile device or any other device by a website, containing details of your browsing history on that website among its many uses.`]}),` 2084`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Website`}),` refers to Entire, accessible from `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`https://entire.io`}),`.`]}),` 2085`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`"we", "us" or "our"`}),` means Entire Inc, registered in the State of Delaware, United States.`]}),` 2086`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`"you"`}),` means the individual accessing or using the Website, or a company, or any legal entity on behalf of which such individual is accessing or using the Website, as applicable.`]}),` 2087`]}),` 2088`,(0,H.jsx)(t.h2,{children:`The use of the Cookies`}),` 2089`,(0,H.jsx)(t.h3,{children:`Type of Cookies We Use`}),` 2090`,(0,H.jsx)(t.p,{children:`Cookies can be "Persistent" or "Session" Cookies. Persistent Cookies remain on your personal computer or mobile device when you go offline, while Session Cookies are deleted as soon as you close your web browser.`}),` 2091`,(0,H.jsx)(t.p,{children:`Where required by law, we will request your consent before using Cookies that are not strictly necessary. Strictly necessary Cookies are used to provide the Website and cannot be switched off in our systems.`}),` 2092`,(0,H.jsx)(t.h3,{children:`Cookies We Use`}),` 2093`,(0,H.jsx)(t.p,{children:`The specific Cookies we use are set out in the table below, including each Cookie's name, who sets it (first- or third-party), its category, its purpose and how long it lasts:`}),` 2094`,(0,H.jsxs)(t.table,{children:[(0,H.jsx)(t.thead,{children:(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.th,{children:(0,H.jsx)(t.strong,{children:`Cookie`})}),(0,H.jsx)(t.th,{children:(0,H.jsx)(t.strong,{children:`Set by`})}),(0,H.jsx)(t.th,{children:(0,H.jsx)(t.strong,{children:`Category`})}),(0,H.jsx)(t.th,{children:(0,H.jsx)(t.strong,{children:`Purpose`})}),(0,H.jsx)(t.th,{children:(0,H.jsx)(t.strong,{children:`Duration`})})]})}),(0,H.jsxs)(t.tbody,{children:[(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`session`}),(0,H.jsx)(t.td,{children:`First-party`}),(0,H.jsx)(t.td,{children:`Strictly necessary`}),(0,H.jsx)(t.td,{children:`Authenticated session token (the main sign-in Cookie).`}),(0,H.jsx)(t.td,{children:`7 days`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`csrf`}),(0,H.jsx)(t.td,{children:`First-party`}),(0,H.jsx)(t.td,{children:`Strictly necessary`}),(0,H.jsx)(t.td,{children:`CSRF-protection token (double-submit pattern); readable by JavaScript.`}),(0,H.jsx)(t.td,{children:`7 days`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`cookie_consent`}),(0,H.jsx)(t.td,{children:`First-party`}),(0,H.jsx)(t.td,{children:`Strictly necessary`}),(0,H.jsx)(t.td,{children:`Stores your cookie consent choice (accepted / rejected).`}),(0,H.jsx)(t.td,{children:`180 days`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`consent-region`}),(0,H.jsx)(t.td,{children:`First-party`}),(0,H.jsx)(t.td,{children:`Strictly necessary`}),(0,H.jsx)(t.td,{children:`Records a coarse geolocation classification used to decide which consent banner to show.`}),(0,H.jsx)(t.td,{children:`180 days`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`__Host-idp_session`}),(0,H.jsx)(t.td,{children:`First-party`}),(0,H.jsx)(t.td,{children:`Strictly necessary`}),(0,H.jsx)(t.td,{children:`Authenticated session on the authentication / identity host.`}),(0,H.jsx)(t.td,{children:`24 hours`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`__Host-console_session`}),(0,H.jsx)(t.td,{children:`First-party`}),(0,H.jsx)(t.td,{children:`Strictly necessary`}),(0,H.jsx)(t.td,{children:`Authenticated session on the console host.`}),(0,H.jsx)(t.td,{children:`24 hours`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`__Host-login`}),(0,H.jsx)(t.td,{children:`First-party`}),(0,H.jsx)(t.td,{children:`Strictly necessary`}),(0,H.jsx)(t.td,{children:`Short-lived login token used during the login handshake.`}),(0,H.jsx)(t.td,{children:`8 hours`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`__Host-refresh`}),(0,H.jsx)(t.td,{children:`First-party`}),(0,H.jsx)(t.td,{children:`Strictly necessary`}),(0,H.jsx)(t.td,{children:`Refresh token used to issue new access tokens.`}),(0,H.jsx)(t.td,{children:`7 days`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`home_region`}),(0,H.jsx)(t.td,{children:`First-party`}),(0,H.jsx)(t.td,{children:`Strictly necessary`}),(0,H.jsx)(t.td,{children:`Signed hint recording your home jurisdiction so requests route to the correct region.`}),(0,H.jsx)(t.td,{children:`1 year`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`__Host-entire_sso_state`}),(0,H.jsx)(t.td,{children:`First-party`}),(0,H.jsx)(t.td,{children:`Strictly necessary`}),(0,H.jsx)(t.td,{children:`One-time security (CSRF / state) token for the SSO sign-in roundtrip; cleared after sign-in.`}),(0,H.jsx)(t.td,{children:`10 minutes`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`__Host-pkce_verifier`}),(0,H.jsx)(t.td,{children:`First-party`}),(0,H.jsx)(t.td,{children:`Strictly necessary`}),(0,H.jsx)(t.td,{children:`OAuth PKCE code verifier held across the login roundtrip (RFC 7636).`}),(0,H.jsx)(t.td,{children:`10 minutes`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`entire_website_session_hint`}),(0,H.jsx)(t.td,{children:`First-party`}),(0,H.jsx)(t.td,{children:`Functional`}),(0,H.jsx)(t.td,{children:`JavaScript-readable indicator of login state so the public site renders correctly without a flash.`}),(0,H.jsx)(t.td,{children:`5 minutes`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`ph_*`}),(0,H.jsx)(t.td,{children:`Third-party (PostHog)`}),(0,H.jsx)(t.td,{children:`Analytics`}),(0,H.jsx)(t.td,{children:`PostHog product analytics; measures how visitors use the Website. Set only after you accept analytics Co
2094okies.`}),(0,H.jsx)(t.td,{children:`About 1 year`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`hubspotutk`}),(0,H.jsx)(t.td,{children:`Third-party (HubSpot)`}),(0,H.jsx)(t.td,{children:`Marketing`}),(0,H.jsx)(t.td,{children:`HubSpot visitor-tracking token linking a visitor to contact / lead records.`}),(0,H.jsx)(t.td,{children:`180 days`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`__hstc`}),(0,H.jsx)(t.td,{children:`Third-party (HubSpot)`}),(0,H.jsx)(t.td,{children:`Marketing`}),(0,H.jsx)(t.td,{children:`HubSpot main analytics Cookie (domain, visitor token, timestamps).`}),(0,H.jsx)(t.td,{children:`180 days`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`__hssc`}),(0,H.jsx)(t.td,{children:`Third-party (HubSpot)`}),(0,H.jsx)(t.td,{children:`Marketing`}),(0,H.jsx)(t.td,{children:`HubSpot session tracking within a single visit.`}),(0,H.jsx)(t.td,{children:`30 minutes`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`__hssrc`}),(0,H.jsx)(t.td,{children:`Third-party (HubSpot)`}),(0,H.jsx)(t.td,{children:`Marketing`}),(0,H.jsx)(t.td,{children:`HubSpot flag indicating whether the visitor restarted their browser session.`}),(0,H.jsx)(t.td,{children:`Session`})]})]})]}),` 2095`,(0,H.jsx)(t.p,{children:`Durations shown are typical values and may vary depending on your activity and the provider's configuration.`}),` 2096`,(0,H.jsx)(t.h3,{children:`Third-Party Cookies and International Data Transfers`}),` 2097`,(0,H.jsx)(t.p,{children:`Some Cookies are set by third-party service providers that act on Our behalf. These Cookies are only placed after you accept the relevant category. We currently use the following third parties:`}),` 2098`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`PostHog`}),` (product analytics) â sets analytics Cookies (ph_*) that help us understand how visitors use the Website. PostHog processes this data on European Union-based infrastructure. For more information, see PostHog's privacy notice: `,(0,H.jsx)(t.a,{href:`https://posthog.com/docs/privacy`,children:`https://posthog.com/docs/privacy`}),`.`]}),` 2099`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`HubSpot`}),` (marketing and visitor analytics) â sets marketing Cookies (hubspotutk, __hstc, __hssc, __hssrc) that link a visitor to contact records and measure marketing performance. For more information, see HubSpot's privacy policy: `,(0,H.jsx)(t.a,{href:`https://legal.hubspot.com/privacy-policy`,children:`https://legal.hubspot.com/privacy-policy`}),`.`]}),` 2100`,(0,H.jsxs)(t.p,{children:[`Where a third party processes personal data outside the European Economic Area or the United Kingdom (for example, HubSpot, which is based in the United States), such transfers are made under appropriate safeguards, including the EUâUS Data Privacy Framework and/or the European Commission's Standard Contractual Clauses (together with the UK International Data Transfer Addendum where applicable). You can request a copy of the relevant safeguards by contacting us at `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`.`]}),` 2101`,(0,H.jsx)(t.h3,{children:`How We Obtain and Manage Your Consent`}),` 2102`,(0,H.jsx)(t.p,{children:`When you first visit the Website, we display a cookie banner. Strictly necessary Cookies are always active because the Website cannot function without them, and they do not require consent. Analytics and marketing Cookies are switched off by default and are not set until you give consent.`}),` 2103`,(0,H.jsx)(t.p,{children:`The banner lets you accept all Cookies, reject all non-essential Cookies, or make granular choices by category (analytics and marketing separately). We record your choice in a "cookie_consent" Cookie and do not load the corresponding third-party scripts until consent for that category has been given.`}),` 2104`,(0,H.jsx)(t.h3,{children:`Your Choices Regarding Cookies`}),` 2105`,(0,H.jsx)(t.p,{children:`You can change or withdraw your consent at any time, and withdrawing consent is as easy as giving it. Select "Manage Cookies" at the bottom of any page to reopen the preference panel and update your choices by category. Withdrawing consent does not affect the lawfulness of any processing we carried out before you withdrew it.`}),` 2106`,(0,H.jsx)(t.p,{children:`If you prefer to avoid the use of Cookies on the Website, first you must disable the use of Cookies in your browser and then delete the Cookies saved in your browser associated with the Website. You may use this option for preventing the use of Cookies at any time.`}),` 2107`,(0,H.jsx)(t.p,{children:`If you do not accept Our Cookies, you may experience some inconvenience in your use of the Website and some features may not function properly.`}),` 2108`,(0,H.jsx)(t.p,{children:`If you'd like to delete Cookies or instruct your web browser to delete or refuse Cookies, please visit the help pages of your web browser.`}),` 2109`,(0,H.jsxs)(t.ul,{children:[` 2110`,(0,H.jsxs)(t.li,{children:[` 2111`,(0,H.jsxs)(t.p,{children:[`For the Chrome web browser, please visit this page from Google: `,(0,H.jsx)(t.a,{href:`https://support.google.com/accounts/answer/32050`,children:`https://support.google.com/accounts/answer/32050`})]}),` 2112`]}),` 2113`,(0,H.jsxs)(t.li,{children:[` 2114`,(0,H.jsxs)(t.p,{children:[`For the Microsoft Edge browser, please visit this page from Microsoft: `,(0,H.jsx)(t.a,{href:`https://support.microsoft.com/microsoft-edge/delete-cookies-in-microsoft-edge-63947406-40ac-c3b8-57b9-2a946a29ae09`,children:`https://support.microsoft.com/microsoft-edge/delete-cookies-in-microsoft-edge-63947406-40ac-c3b8-57b9-2a946a29ae09`})]}),` 2115`]}),` 2116`,(0,H.jsxs)(t.li,{children:[` 2117`,(0,H.jsxs)(t.p,{children:[`For the Firefox web browser, please visit this page from Mozilla: `,(0,H.jsx)(t.a,{href:`https://support.mozilla.org/en-US/kb/delete-cookies-remove-info-websites-stored`,children:`https://support.mozilla.org/en-US/kb/delete-cookies-remove-info-websites-stored`})]}),` 2118`]}),` 2119`,(0,H.jsxs)(t.li,{children:[` 2120`,(0,H.jsxs)(t.p,{children:[`For the Safari web browser, please visit this page from Apple: `,(0,H.jsx)(t.a,{href:`https://support.apple.com/guide/safari/manage-cookies-and-website-data-sfri11471/mac`,children:`https://support.apple.com/guide/safari/manage-cookies-and-website-data-sfri11471/mac`})]}),` 2121`]}),` 2122`]}),` 2123`,(0,H.jsx)(t.p,{children:`For any other web browser, please visit your web browser's official web pages.`}),`
2124`,(0,H.jsx)(t.h3,{children:`Changes to this Cookies Policy`}),` 2125`,(0,H.jsx)(t.p,{children:`We may update this Cookies Policy from time to time. The "Last updated" date at the top indicates when it was last revised.`}),` 2126`,(0,H.jsx)(t.h3,{children:`Contact Us`}),` 2127`,(0,H.jsxs)(t.p,{children:[`If you have any questions about this Cookies Policy, you can contact us by email at `,(0,H.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`.`]})]})}function EO(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(TO,{...e})}):TO(e)}var DO=HD(Object.assign({"../-content/cookies/2026-02-09.md":xO,"../-content/cookies/2026-07-06.md":wO})),OO=ls(`/_content/cookies/`)({head:()=>ED({title:`Cookie Policy`,description:`How Entire uses cookies and similar technologies.`,url:`https://entire.io/cookies`,image:`https://entire.io/og/page/cookies.png`}),loader:()=>{if(!WD(DO))throw oe()},component:ds(()=>ov(()=>import(`./cookies-BIhGLH8L.js`),__vite__mapDeps([42,1,34,35,2,11,10,12,13,16,36,26])
2127),`component`)}),kO=ls(`/_content/brand/`)({head:()=>ED({title:`Brand`,description:`Entire brand assets, logos, and guidelines.`,url:`https://entire.io/brand`,image:`https://entire.io/og/page/brand.png`}),component:ds(()=>ov(()=>import(`./brand-C4JmcLZO.js`),__vite__mapDeps([43,1,26])),`component`)}),AO=ls(`/_content/blog/`)({validateSearch:e=>({category:typeof e.category==`string`?e.category:void 0}),head:()=>ED({title:`Blog`,description:`News, updates, and stories from the Entire team.`,url:`https://entire.io/blog`,image:`https://entire.io/images/og/blog.png`,extraLinks:[vD]}),component:ds(()=>ov(()=>import(`./blog-CW-pkNTv.js`),__vite__mapDeps([44,1,8,2,3,9,45,10,21,12])),`component`)}),jO=HD(Object.assign({"../-content/terms/2026-02-09.md":MD,"../-content/terms/2026-07-06.md":FD})),MO=ls(`/_content/terms/$date`)({loader:({params:e})=>{let t=UD(jO,e.date);if(!t)throw oe();return{date:t.date,dateFormatted:t.dateFormatted}},head:({loaderData:e})=>e?ED({title:`Terms of Service (${e.dateFormatted})`,description:`Archived version of the Entire Terms of Service from ${e.dateFormatted}.`,url:`https://entire.io/terms/${e.date}`,image:`https://entire.io/og/page/terms.png`,noindex:!0}):{},component:ds(()=>ov(()=>import(`./_date-BtwKduV9.js`),__vite__mapDeps([46,1,34,35,2,11,10,12,13,16,36,26])),`component`)}),NO=HD(Object.assign({"../-content/subprocessors/2026-07-06.md":qD})),PO=ls(`/_content/subprocessors/$date`)({loader:({params:e})=>{let t=UD(NO,e.date);if(!t)throw oe();return{date:t.date,dateFormatted:t.dateFormatted}},head:({loaderData:e})=>e?ED({title:`Subprocessor List (${e.dateFormatted})`,description:`Archived version of the Entire Subprocessor List from ${e.dateFormatted}.`,url:`https://entire.io/subprocessors/${e.date}`,image:`https://entire.io/og/page/subprocessors.png`,noindex:!0}):{},component:ds(()=>ov(()=>import(`./_date-BiThKJHC.js`),__vite__mapDeps([47,1,34,35,2,11,10,12,13,16,36,26])),`component`)}),FO=ls(`/_content/rebellion/thanks`)({head:()=>{let e=ED({title:`Thanks for joining the rebellion`,description:`You're on the list. Check your inbox for a confirmation.`,url:`https://entire.io/rebellion/thanks`});return{...e,meta:e.meta.map(e=>e.name===`robots`?{name:`robots`,content:`noindex, follow`}:e)}},component:ds(()=>ov(()=>import(`./thanks-BxB80haF.js`),__vite__mapDeps([48,1])),`component`)}),IO=HD(Object.assign({"../-content/privacy/2026-02-09.md":sO,"../-content/privacy/2026-07-06.md":uO})),LO=ls(`/_content/privacy/$date`)({loader:({params:e})=>{let t=UD(IO,e.date);if(!t)throw oe();return{date:t.date,dateFormatted:t.dateFormatted}},head:({loaderData:e})=>e?ED({title:`Privacy Policy (${e.dateFormatted})`,description:`Archived version of the Entire Privacy Policy from ${e.dateFormatted}.`,url:`https://entire.io/privacy/${e.date}`,image:`https://entire.io/og/page/privacy.png`,noindex:!0}):{},component:ds(()=>ov(()=>import(`./_date-mLWr0fYo.js`),__vite__mapDeps([49,1,34,35,2,11,10,12,13,16,36,26])),`component`)}),RO=e({default:()=>VO,frontmatter:()=>zO}),zO={title:`Former GitHub CEO Thomas Dohmke launches Entire with a landmark $60 million seed round to build the world's next developer platform for the era of AI.`,description:`Former GitHub CEO Thomas Dohmke launches Entire with a landmark $60 million seed round to build the world's next developer platform for the era of AI.`};function BO(e){let t={a:`a`,blockquote:`blockquote`,em:`em`,p:`p`,strong:`strong`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`February 10, 2026 â`}),` Former GitHub CEO Thomas Dohmke today announced the launch of `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`Entire`}),`, a new developer platform designed for human-agent collaboration, backed by a landmark `,(0,H.jsx)(t.strong,{children:`$60 million seed round at $300 million valuation`}),`. The round was led by Felicis, with participation from Madrona, M12, and Basis Set, 20VC, Cherry Ventures, Picus Capital, and Global Founders Capital. Entire is further backed by a slate of international investors, including `,(0,H.jsx)(t.a,{href:`https://blog.pragmaticengineer.com/author/gergely/`,children:`Gergely Orosz`}),` (The Pragmatic Engineer), `,(0,H.jsx)(t.a,{href:`https://twitter.com/t3dotgg`,children:`Theo Browne`}),` (T3 Chat), `,(0,H.jsx)(t.a,{href:`https://en.wikipedia.org/wiki/Jerry_Yang`,children:`Jerry Yang`}),` (AME Cloud Ventures, previously Yahoo), `,(0,H.jsx)(t.a,{href:`https://www.forbes.com/profile/olivier-pomel/`,children:`Olivier Pomel`}),` (Datadog), `,(0,H.jsx)(t.a,{href:`https://en.wikipedia.org/wiki/Garry_Tan`,children:`Garry Tan`}),` (Y Combinator), and others.`]}),` 2128`,(0,H.jsxs)(t.p,{children:[`Alongside the announcement, Entire is releasing its first open-source product today: `,(0,H.jsx)(t.strong,{children:`Checkpoints`}),`, a new CLI tool that automatically captures AI agent context*â`,(0,H.jsx)(t.em,{children:`reasoning, prompts, and decisions`}),`â*on every Git commit.`]}),` 2129`,(0,H.jsxs)(t.blockquote,{children:[` 2130`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.em,{children:`"We are living through an agent boom, and n
2130ow massive volumes of code are being generated faster than any human could reasonably understand. The truth is, our manual system of software productionâfrom issues, to git repositories, to pull requests, to deploymentâwas never designed for the era of AI in the first place,"`}),` `,(0,H.jsx)(t.strong,{children:`said Entire CEO Thomas Dohmke.`}),` `,(0,H.jsx)(t.em,{children:`"Just like when automotive companies replaced the traditional, craft-based production system with the moving assembly line, we must now reimagine the software development lifecycle for a world where machines are the primary producers of code. This is the purpose of Entire: to build the world's next developer platform, where agents and humans collaborate, learn and ship together."`})]}),` 2131`]}),` 2132`,(0,H.jsxs)(t.p,{children:[`Entire is a remote-first globally distributed organization with 15 employees, bringing decades of experience building developer tools at organizations including GitHub and Atlassian. Entire's vision is built around three core components: `,(0,H.jsx)(t.strong,{children:`a git-compatible database`}),` that unifies code, intent, constraints, and reasoning in a single version-controlled system; a universal `,(0,H.jsx)(t.strong,{children:`semantic reasoning layer`}),` that enables multi-agent coordination through a context graph; and an `,(0,H.jsx)(t.strong,{children:`AI-native user interface`}),` to reinvent the software development lifecycle for agent-to-human collaboration.`]}),` 2133`,(0,H.jsxs)(t.blockquote,{children:[` 2134`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`"As software moves from hands-on coding to orchestrating fleets of agents, it's becoming clear that the developer platforms we all rely on today were not built for this moment. Trying to bolt agents onto human-centric workflows is creating friction, complexity, and real bottlenecks across the ecosystem" `,(0,H.jsx)(t.strong,{children:`said Aydin Senkut, Founder and Managing Partner at Felicis.`}),` "Entire is rethinking the developer platform from the ground up: AI-native, purpose-built, and designed for how software is actually made now. Thomas and his team are uniquely equipped to lead that shift, and we're thrilled to partner with them by leading Entire's seed roundâ`,(0,H.jsx)(t.strong,{children:`the largest in developer tools history`}),`âas we work together to build a new home for developers and agents."`]})}),` 2135`]}),` 2136`,(0,H.jsxs)(t.p,{children:[`Entire's `,(0,H.jsx)(t.strong,{children:`first release is an`}),` `,(0,H.jsx)(t.strong,{children:`open-source project that automatically captures context`}),` from popular coding agents. `,(0,H.jsx)(t.strong,{children:`With Checkpoints`}),`, every agent-generated commit is paired with a structured checkpoint that records the full session context, including transcripts, prompts, developers can review history, navigate agent context, and search the record of code produced by agents through an AI contribution graph. This data is stored directly in Git and visualized through a dedicated UI. Launching today with support for Anthropic's Claude Code and Google's Gemini CLI, Entire will extend support to all leading agents in the coming months, integrating with the broader developer tools space ahead of its platform launch later this year.`]}),` 2137`,(0,H.jsxs)(t.blockquote,{children:[` 2138`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`"Developer platforms have always evolved in generational waves. The next wave is emerging as AI agents are increasingly building on behalf of developers," `,(0,H.jsx)(t.strong,{children:`said Michelle Gonzalez, CVP and Head of M12.`}),` "Entire is approaching this shift from first principles, architecting a new platform from the ground up for agent-to-human collaboration. We're excited to invest in Entire and support a team that is inventing a new paradigm of how developers and AI work together."`]})}),` 2139`]}),` 2140`,(0,H.jsxs)(t.blockquote,{children:[` 2141`,(0,H.jsxs)(t.p,{children:[`*"The incumbent advantage in software development is being erased. In the era of agents, it is clear that code can no longer be hosted, reviewed, or governed in the same way," `,(0,H.jsx)(t.strong,{children:`said*`}),` `,(0,H.jsx)(t.strong,{children:`Jerry Yang, Founding partner, AME Cloud Ventures, co-founder of Yahoo!`}),` `,(0,H.jsx)(t.em,{children:`"I am bullish on Entire's globally distributed team, timing, and crystal-clear vision. Together, we will build a new layer of the internet for code collaboration between agents and humans, and with it, a new home for the world's open-source community."`})]}),` 2142`]}),` 2143`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Entire is building the next developer platform for the era of AI agents - where humans and machines collaborate, learn and ship software together.`}),` The company plans to expand rapidly over the coming months as it grows to over 30 engineers and hundreds of agents.`]})]})}function VO(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(BO,{...e})}):BO(e)}var HO=e({default:()=>GO,frontmatter:()=>UO}),UO={title:`Entire Launches Distributed Git Network for the Agent Era`,description:`Five months after the largest seed round in developer-tools history, Entire is reimagining version control for agent-scale development, allowing developers to mirror GitHub repositories on a fast, independent Git network built for agents.`};function WO(e){let t={a:`a`,blockquote:`blockquote`,em:`em`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`Five months after the largest seed round in developer-tools history, Entire is reimagining version control for agent-scale development, allowing developers to mirror GitHub repositories on a fast, independent Git network built for agents.`})}),` 2144`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`July 8, 2026 â`}),` Today, `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`Entire`}),` launched the preview of its distributed Git network, letting developers host repositories around the world instead of on a single central provider. `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`Open under waitlist today`}),`, with active regions in the US, EU, and Australia, the preview lets developers mirror an existing GitHub repository onto Entire in one step: their code stays where it is, while their agents clone and pull from a regional Entire mirror. This offloads heavy, concurrent read traffic so agents can build without rate limits. In the coming months, Entire will let developers host new public and private repositories natively and plans to fully decentralize the network, enabling data residency, sovereignty, and scale in any region.`]}),` 2145`,(0,H.jsxs)(t.p,{children:[`Entire has rebuilt the Git backend to handle simultaneous, high-volume agent activity, and initial testing has shown strong results, up to 25x over competitors such as `,(0,H.jsx)(t.a,{href:`/blog/an-e
2145ntirely-new-git-hosting-network`,children:`Cursor Origin`}),`.`]}),` 2146`,(0,H.jsxs)(t.ul,{children:[` 2147`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Git Clone`}),` â how a repo gets copied down so a developer or agent can start working. Entire sustained ~570,000 clones/hour from a single repository.`,` 2148`,(0,H.jsxs)(t.ul,{children:[` 2149`,(0,H.jsx)(t.li,{children:`200 simulated clients shallow-cloning from Frankfurt (40%), Paris, London, and Dublin over ~3 minutes.`}),` 2150`]}),` 2151`]}),` 2152`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Git Push`}),` â how changes get sent to the shared repo, so everyone (and every agent) builds on them. Entire sustained 586 pushes/second `,(0,H.jsx)(t.strong,{children:`(or ~2.1 million/hour)`}),` to a single repository or branch.`,` 2153`,(0,H.jsxs)(t.ul,{children:[` 2154`,(0,H.jsx)(t.li,{children:`128 simulated agents pushing 1â10 files (2 KB each) per push over 2 minutes, each to its own branch. Tested on Entire native repositories.`}),` 2155`]}),` 2156`]}),` 2157`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Clone + Push (mixed)`}),` â the real-world loop of pulling a repo down and pushing changes back, over and over, the way an agent actually runs. Entire sustained ~470 clone + push operations/second on a single repository.`,` 2158`,(0,H.jsxs)(t.ul,{children:[` 2159`,(0,H.jsx)(t.li,{children:`128 simulated agents running shallow clone â 5 pushes â repeat, at ~50â60 ms p50 latency.`}),` 2160`]}),` 2161`]}),` 2162`]}),` 2163`,(0,H.jsxs)(t.p,{children:[`In addition to these benchmarks and the underlying `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/forgemark`,children:`benchmark suite`}),`, Entire will open source its Git backend.`]}),` 2164`,(0,H.jsxs)(t.blockquote,{children:[` 2165`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.em,{children:`âBy design, Git was always meant to be distributed. As Linus Torvalds put it in his 2007 Google Tech Talk: âIf youâre not distributed, youâre not worth using.â In the era of agents, centralized Git hosting has become a fundamental constraint, as the strain of billions of agents and developers hammering a central server shows up in the form of rate limits, high latency, or even outages,â`}),` `,(0,H.jsx)(t.strong,{children:`said Entire CEO Thomas Dohmke.`}),` `,(0,H.jsx)(t.em,{children:`âToday, we begin to return Git to its original promise, with a distributed, and soon fully decentralized and open-sourced network of interconnected nodes around the world. By doing so, we enable any developer or agent to host their code in-region, pushing, pulling, and cloning close to where they operate, fast and without bottlenecks, while still part of a global, collaborative network.â`})]}),` 2166`]}),` 2167`,(0,H.jsx)(t.p,{children:`Since its launch in February, Entire has offered a semantic memory layer that helps agents stop repeating mistakes and lets developers see how and why any piece of software was made. It now integrates with every major coding agent, including Claude Code, Codex, Cursor, Factory, and GitHub Copilot, to automatically store each session, prompt, tool call, and checkpoint directly in the repository alongside the code. Entire announced new capabilities that turn that history into answers:`}),` 2168`,(0,H.jsxs)(t.ul,{children:[` 2169`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Entire Blame`}),` â git blame shows who last touched a line of code; Entire Blame shows why: the agent session, prompt, and decision behind it.`]}),` 2170`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Entire Review`}),` â send a branch to multiple agents in parallel and get an intent-aware review grounded in the sessions, checkpoints, and diff.`]}),` 2171`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Code and Semantic Search`}),` â developers and agents can search through the entire history of not only their code changes, but why it was written.`]}),` 2172`]}),` 2173`,(0,H.jsxs)(t.blockquote,{children:[` 2174`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.em,{children:`âSession logs are now the second most important artifact in software development, and they belong in the repository alongside the code,â`}),` `,(0,H.jsx)(t.strong,{children:`explained Dohmke.`}),` `,(0,H.jsx)(t.em,{children:`âWith this semantic memory layer tied to the repo, agents stop repeating mistakes, which means higher accuracy, more productivity, and lower token spend. Developers can understand and verify what was built and why, which makes review far faster. And it opens up the possibility to build a new developer lifecycle, one that lets us understand and reason over the massive volumes of code AI agents now generate.â`})]}),` 2175`]}),` 2176`,(0,H.jsx)(t.p,{children:`Entire has grown to over 40 people across a global team located in the US, Australia, Germany, Spain, India, New Zealand, the UK, Czech Republic, and the Netherlands, with plans to expand headcount to 60 people by the end of the year as it builds the worldâs next developer platform.`})]})}function GO(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(WO,{...e})}):WO(e)}function KO(e){return e.split(`/`).pop().replace(/\.(mdx?|md)$/,``).replace(/^\d{4}-\d{2}-\d{2}-/,``)}function qO(e){return ge(e.split(`/`).pop())}function JO(e){return Object.entries(e).sort(([e],[t])=>t.localeCompare(e)).map(([e,t])=>{let n=qO(e);return{slug:KO(e),date:n,dateFormatted:he(n,`long`),dateShort:he(n,`short`),Content:t.default,frontmatter:t.frontmatter}})}var YO=JO(Object.assign({"./-content/2026-02-10-former-github-ceo-thomas-dohmke-raises-60-million-seed-round.md":RO,"./-content/2026-07-08-entire-launches-distributed-git-network-for-the-agent-era.md":HO}));function XO(e){return YO.find(t=>t.slug===e)}var ZO=ls(`/_content/news/$slug`)({loader:({params:e})=>{let t=XO(e.slug);
2176if(!t)throw oe();return{slug:t.slug,date:t.date,dateFormatted:t.dateFormatted,frontmatter:t.frontmatter}},head:({loaderData:e})=>{if(!e)return{};let t=e.frontmatter,n=t.title,r=t.description,i=t.image||`https://entire.io/og/news/${e.slug}.png`,a=`https://entire.io/news/${e.slug}`;return{...ED({title:n,description:r,url:a,image:i,type:`article`,extra:[{property:`article:published_time`,content:e.date}]}),scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`NewsArticle`,headline:n,description:r,image:i,datePublished:e.date,publisher:{"@type":`Organization`,name:`Entire`,logo:{"@type":`ImageObject`,url:`https://entire.io/favicon.svg`}},mainEntityOfPage:{"@type":`WebPage`,"@id":a}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://entire.io`},{"@type":`ListItem`,position:2,name:`News`,item:`https://entire.io/news`},{"@type":`ListItem`,position:3,name:n,item:a}]})}]}},component:ds(()=>ov(()=>import(`./_slug-2YMd5EzK.js`),__vite__mapDeps([50,1,35,2,11,10,12,13,16,36])),`component`)}),QO=HD(Object.assign({"../-content/dpa/2026-07-06.md":gO})),$O=ls(`/_content/dpa/$date`)({loader:({params:e})=>{let t=UD(QO,e.date);if(!t)throw oe();return{date:t.date,dateFormatted:t.dateFormatted}},head:({loaderData:e})=>e?ED({title:`Data Processing Agreement (${e.dateFormatted})`,description:`Archived version of the Entire Data Processing Agreement from ${e.dateFormatted}.`,url:`https://entire.io/dpa/${e.date}`,image:`https://entire.io/og/page/dpa.png`,noindex:!0}):{},component:ds(()=>ov(()=>import(`./_date-BHSnpOSs.js`),__vite__mapDeps([51,1,34,35,2,11,10,12,13,16,36,26])),`component`)}),ek=HD(Object.assign({"../-content/cookies/2026-02-09.md":xO,"../-content/cookies/2026-07-06.md":wO})),tk=ls(`/_content/cookies/$date`)({loader:({params:e})=>{let t=UD(ek,e.date);if(!t)throw oe();return{date:t.date,dateFormatted:t.dateFormatted}},head:({loaderData:e})=>e?ED({title:`Cookie Policy (${e.dateFormatted})`,description:`Archived version of the Entire Cookie Policy from ${e.dateFormatted}.`,url:`https://entire.io/cookies/${e.date}`,image:`https://entire.io/og/page/cookies.png`,noindex:!0}):{},component:ds(()=>ov(()=>import(`./_date-D0YmY0kI.js`),__vite__mapDeps([52,1,34,35,2,11,10,12,13,16,36,26])),`component`)}),nk=e({default:()=>ak,frontmatter:()=>rk}),rk={title:`Hello Entire World`,description:`Announcing Entire with $60 million seed round and shipping our first product, called Checkpoints.`,category:`Company`,author:`Thomas Dohmke`,image:`/blog/hello-entire-world/entire-funding-announcement-even-logos.png`};function ik(e){let t={a:`a`,blockquote:`blockquote`,code:`code`,h2:`h2`,h3:`h3`,img:`img`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components},{InstallCommand:n}=t;return n||ok(`InstallCommand`,!0),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(t.blockquote,{children:[` 2177`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`TLDR:`}),` Today, we are announcing our new company, Entire, backed by a `,(0,H.jsx)(t.a,{href:`https://entire.io/news/former-github-ceo-thomas-dohmke-raises-60-million-seed-round`,children:`$60 million seed round to build the world's next developer platform`}),`. We are also shipping our first product as open source CLI to tie agent context into Git on every push.`]}),` 2178`]}),` 2179`,(0,H.jsx)(t.h2,{children:`The game has changed. The system is cracking.`}),` 2180`,(0,H.jsx)(t.p,{children:`In the last few months alone, the fundamental role of a developer has been refactored. From Anthropic's Claude Code with Opus 4.6, to OpenAI's latest GPT-5.3-Codex agentic coding model, to Cursor's Composer 1.5 and more, advancements in agentic intelligence have turned the flow of coding on its head. The terminal is becoming the new center of gravity, as developers prompt fleets of agents across multiple terminal windows at once. Spec-driven development is becoming the primary driver of code generation. Agents now interoperate in parallel, generating and evaluating hundreds of variants simultaneously. As a result, massive volumes of code are being generated faster than any human can reasonably understand.`}),` 2181`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Yet today, we still rely on a software development lifecycle built before the era of the cloud, inherently designed for human-to-human collaboration.`}),` And the cracks are forming. Issues were designed for human planning and tracking, not as structured, machine-readable units of work. Git repositories were never extended to version everything developers build with in the AI era. Pull requests simply do not scale for large monorepos. Every day, agents are being choked and throttled by centralized API capacity and rate limits. The truth is: the entire software ecosystem is being bottlenecked by a manual system of production that was never designed for the era of AI in the first place. A system that cannot be retrofitted for what's ahead.`]}),` 2182`,(0,H.jsx)(t.p,{children:`Just like when automotive companies replaced the traditional craft-based production system with the mov
2182ing assembly line, we must now reimagine the entire software development lifecycle for a world where machines are the primary producers of code. Creating the assembly line for the era of agents.`}),` 2183`,(0,H.jsx)(t.h2,{children:`Announcing Entire: The world's next developer platform`}),` 2184`,(0,H.jsxs)(t.p,{children:[(0,H.jsxs)(t.strong,{children:[`This is the purpose of our new company `,(0,H.jsx)(t.a,{href:`https://entire.io/about/vision`,children:`Entire`}),`, to build the world's next developer platform where agents and humans can collaborate, learn, and ship together.`]}),` A platform that will be open, scalable, and independent for every developer, no matter which agent or model you use.`]}),` 2185`,(0,H.jsxs)(t.p,{children:[`Entire will be based on three key components: `,(0,H.jsx)(t.strong,{children:`a git-compatible database`}),` that unifies code, intent, constraints, and reasoning in a single version-controlled system; a universal `,(0,H.jsx)(t.strong,{children:`semantic reasoning layer`}),` that enables multi-agent coordination through the context graph; and an `,(0,H.jsx)(t.strong,{children:`AI-native software development lifecycle`}),` to reinvent agent-to-human collaboration.`]}),` 2186`,(0,H.jsxs)(t.p,{children:[`In pursuit of this `,(0,H.jsx)(t.a,{href:`https://entire.io/about/vision`,children:`vision`}),`, we are proud to be `,(0,H.jsx)(t.strong,{children:`backed by a $60 million seed investment led by Felicis, with support from Madrona, M12, Basis Set, 20VC, Cherry Ventures, Picus Capital, and Global Founders Capital`}),`. Entire is further backed by a slate of international investors including Gergely Orosz, Theo Browne, Jerry Yang, Olivier Pomel, Garry Tan, and othersâwho all understand that software development is ready for its next platform shift.`]}),` 2187`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/hello-entire-world/entire-funding-announcement-even-logos.png`,alt:`Entire funding announcement`})}),` 2188`,(0,H.jsx)(t.h2,{children:`Our first release: The Entire CLI to track agent context`}),` 2189`,(0,H.jsx)(t.p,{children:`Today, agent sessions are ephemeral. Prompts live in terminals and reasoning lives in context windows. The decisions, constraints, and iteration that produce code disappears the moment you close the session. Git preserves what changed, but nothing about why. With agents generating hundreds or thousands of lines per session, this context loss compounds fast. Without shared context, agents can't collaborate effectively. They retrace steps, duplicate reasoning, waste tokens, and lose the thread of decisions made hours or days earlier.`}),` 2190`,(0,H.jsx)(t.p,{children:`Our first ship makes that missing context durable:`}),` 2191`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Checkpoints are a new primitive that automatically captures agent context as first-class, versioned data in Git.`}),` When you commit code generated by an agent, Checkpoints capture the full session alongside the commit: the transcript, prompts, files touched, token usage, tool calls and more. This context becomes the foundational write-path of our semantic reasoning layer. You can browse checkpoints by branch, drill into individual sessions, and trace how your codebase evolved through human-and-agent collaboration commit by commit.`]}),` 2192`,(0,H.jsx)(`iframe`,{width:`560`,height:`315`,src:`https://www.youtube-nocookie.com/embed/BOnI6469vMk?si=RHyWiBO_rTGgpkXE&modestbranding=1&rel=0&iv_load_policy=3`,title:`YouTube video player`,frameBorder:`0`,allow:`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share`,referrerPolicy:`strict-origin-when-cross-origin`,allowFullScreen:!0}),` 2193`,(0,H.jsx)(t.p,{children:`Our plan is to support Checkpoints for every agent. Today, Entire CLI ships with support for Anthropic's Claude Code and Google Gemini CLI. Codex, Cursor CLI, and other agents coming soon.`}),` 2194`,(0,H.jsx)(t.h3,{children:`How it works`}),` 2195`,(0,H.jsx)(t.p,{children:`Checkpoints run as a Git-aware CLI. On every commit generated by an agent, it writes a structured checkpoint object and associates it with the commit SHA. The code stays exactly the same, we just add context as first-class metadata. When you push your commit, Checkpoints also pushes this metadata to a separate branch (entire/checkpoints/v1), giving you a complete, append-only audit log inside your repository. As a result, every change can now be traced back not only to a diff, but to the reasoning that produced it.`}),` 2196`,(0,H.jsx)(t.p,{children:`Checkpoints are useful immediately:`}),` 2197`,(0,H.jsxs)(t.ul,{children:[` 2198`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Traceability`}),` - inspect the reasoning behind any agent-generated change`]}),` 2199`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Faster Reviews`}),` - review intent and constraints, not just diffs`]}),` 2200`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Better handoffs`}),` - resume work without replaying prompts or sessions`]}),` 2201`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Less token waste`}),` - agents stop repeating mistakes that you corrected in past sessions`]}),` 2202`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Multi-session and agent support`}),` - support for concurrent agentic sessions`]}),` 2203`]}),` 2204`,(0,H.jsx)(t.h3,{children:`Getting Started`}),` 2205`,(0,H.jsx)(t.p,{children:`The best part is that you can set up Entire in two easy steps.`}),` 2206`,(0,H.jsx)(n,{}),` 2207`,(0,H.jsxs)(t.p,{children:[`Then navigate to your repository, run `,(0,H.jsx)(t.code,{children:`entire enable`}),`, and follow the prompts to configure Entire for that project. That's it. Your agent sessions are captured automatically in a structured and ready-to-use format.`]}),` 2208`,(0,H.jsx)(t.h2,{children:`No more stealth. We are building in the open!`}),` 2209`,(0,H.jsx)(t.p,{children:`Checkpoints are our first step towards building a universal semantic reasoning layer for agents. Today, it gives you traceability and history. Tomorrow, it will become the shared memory that allows agents to coordinate, hand off context and build together without collision or loss of understanding.`}),` 2210`,(0,H.jsxs)(t.p,{children:[`Most importantly, we're releasing the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),` open source project because we believe that this layer should be portable, independent, and available for every single agent or model. And because we know, we are better with the contributions of the interconnected community of open-source developers.`]}),` 2211`,(0,H.jsxs)(t.p,{children:[`Our roadmap will be directly paved by your feedback, in `,(0,H.jsx)(t.a,{href:`https://discord.gg/jZJs3Tue4S`,children:`Discord`}),` and in GitHub `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/discussions`,children:`Discussions`}),`. We're ready for it. See you there.`]})]})}function ak(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(ik,{...e})}):ik(e)}function ok(e,t){throw Error(`Expected `+(t?`component`:`object`)+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}var sk=e({default:()=>uk,frontmatter:()=>ck}),ck={title:`Checkpoints Bring Agent Context into Git`,description:`Our first weekly dis
2211patch with updates on Checkpoints, Gemini CLI support, secret detection, and more.`,category:`Changelog`,author:`Marvin`};function lk(e){let t={a:`a`,img:`img`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Welcome to Dispatch 0x0001, rebels.`}),` 2212`,(0,H.jsxs)(t.p,{children:[`This week we launched `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Checkpoints`}),`, our new primitive that automatically captures agent context as first-class, versioned data in Git. It's our first crack out the gate at building a universal semantic reasoning layer for every agent. Thanks for the love, feedback, the stars, and PRs. With your help, we've `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases`,children:`shipped new`}),` features, improvements, and bug fixes to the Entire CLI and web UI. Here's a few of our favorites:`]}),` 2213`,(0,H.jsxs)(t.ul,{children:[` 2214`,(0,H.jsx)(t.li,{children:`We've improved Google Gemini CLI support â explain, rewind, and resume now work with Gemini sessions.`}),` 2215`,(0,H.jsx)(t.li,{children:`Layered secret detection using gitleaks now patterns on top of entropy-based redaction, strengthening protection against accidental credential leaks and reducing risk in every commit.`}),` 2216`,(0,H.jsx)(t.li,{children:`Git hooks can now chain with existing hooks. Break less, keep working the way you expect.`}),` 2217`,(0,H.jsxs)(t.li,{children:[`On `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`entire.io`}),`, we made the Checkpoint view easier to navigate by bringing session logs and code diffs into a single, unified view.`]}),` 2218`]}),` 2219`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/entire-dispatch-0x0001/checkpoints-new.png`,alt:`Checkpoints`})}),` 2220`,(0,H.jsxs)(t.p,{children:[`And of course, that's just a few transmissions. For various more bug fixes & improvements â see more changes to the Entire CLI `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases`,children:`here`}),`.`]}),` 2221`,(0,H.jsx)(t.p,{children:`This is it for this round. New dispatch every week. Boop.`})]})}function uk(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(lk,{...e})}):lk(e)}var dk=e({default:()=>mk,frontmatter:()=>fk}
2221),fk={title:`Easier Agent Integrations and Safer Checkpoints`,description:`The Entire CLI makes it easier to add agents, improves Gemini transcript parsing, redacts secrets across stored session data, and fixes Git hook handling and checkpoint reliability.`,category:`Changelog`,author:`Marvin`};function pk(e){let t={a:`a`,code:`code`,h2:`h2`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Welcome to Dispatch 0x0002.`}),` 2222`,(0,H.jsx)(t.p,{children:`Last week, we introduced Checkpoints to the world â our first primitive designed to tackle one of the biggest problems in agent-driven development: context. Today, conversations, reasoning, and file changes are fragmented or lost between sessions. As agents generate hundreds or even thousands of lines per interaction, that context loss compounds quickly. Agents retrace steps, duplicate reasoning, waste tokens, and lose the thread of decisions made hours or days earlier.`}),` 2223`,(0,H.jsxs)(t.p,{children:[(0,H.jsxs)(t.strong,{children:[`To bridge this gap, the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),` automatically captures agent sessions, creating a semantic reasoning layer that binds agent context to Git on every push. Resulting in what we call Checkpoints.`]}),` 2224This week we focused on making the Entire CLI easier to integrate with other agents, including a refactor that simplifies how external tools plug into the workflow and interact with grouped changes. `,(0,H.jsx)(t.strong,{children:`Stay tuned, new agent support shipping very soon.`})]}),` 2225`,(0,H.jsxs)(t.p,{children:[`And with your help, we shipped a variety bug fixes, performance improvements, and `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases`,children:`key updates`}),`:`]}),` 2226`,(0,H.jsx)(t.h2,{children:`Expanding Agent Integrations and Capabilities`}),` 2227`,(0,H.jsxs)(t.ul,{children:[` 2228`,(0,H.jsx)(t.li,{children:`The Entire CLI codebase has a stronger multi-agent framework, enabling faster integration of new agents.`}),` 2229`,(0,H.jsx)(t.li,{children:`The Entire CLI integration with the Gemini CLI supports full transcript parsing, Checkpointing, and session explanations.`}),` 2230`]}),` 2231`,(0,H.jsx)(t.h2,{children:`Secret Detection`}),` 2232`,(0,H.jsxs)(t.ul,{children:[` 2233`,(0,H.jsx)(t.li,{children:`Checkpoints runs layered secret scanning using gitleaks patterns combined with entropy analysis.`}),` 2234`,(0,H.jsxs)(t.li,{children:[`Secrets are redacted across all persistence paths â including shadow branches, metadata, and condensed logs â ensuring sensitive data does not leak into Git history.`,` 2235`,(0,H.jsxs)(t.ul,{children:[` 2236`,(0,H.jsxs)(t.li,{children:[`Thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/hi120ki`,children:`Hi120ki`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/andreidavid`,children:`andreidavid`}),`, and `,(0,H.jsx)(t.a,{href:`https://github.com/pythoninthegrass`,children:`Pythoninthegrass`}),`!`]}),` 2237`]}),` 2238`]}),` 2239`]}),` 2240`,(0,H.jsx)(t.h2,{children:`Smarter Hook Management`}),` 2241`,(0,H.jsxs)(t.ul,{children:[` 2242`,(0,H.jsxs)(t.li,{children:[`Hook installation is more resilient, with automatic resolution of hook directories supporting worktrees and custom configurations using `,(0,H.jsx)(t.code,{children:`git --git-path hooks`}),`.`]}),` 2243`,(0,H.jsx)(t.li,{children:`Existing Git hooks that the Entire CLI does not recognize are preserved.`}),` 2244`,(0,H.jsxs)(t.li,{children:[`External hook managers such as Husky or Lefthook are detected during `,(0,H.jsx)(t.code,{children:`entire enable`}),`, with a warning before anything is overwritten.`,` 2245`,(0,H.jsxs)(t.ul,{children:[` 2246`,(0,H.jsxs)(t.li,{children:[`Shout out to `,(0,H.jsx)(t.a,{href:`https://github.com/AlienKevin`,children:`AlienKevin`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/camwest`,children:`Camwest`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/SchutteJan`,children:`SchutteJan`}),`, and `,(0,H.jsx)(t.a,{href:`https://github.com/FSM1`,children:`FSM1`}),`!`]}),` 2247`]}),` 2248`]}),` 2249`]}),` 2250`,(0,H.jsx)(t.h2,{children:`Checkpoint Reliability`}),` 2251`,(0,H.jsxs)(t.ul,{children:[` 2252`,(0,H.jsx)(t.li,{children:`Subagent task file modifications are correctly captured in Checkpoints.`}),` 2253`,(0,H.jsx)(t.li,{children:`Deleted files in task Checkpoints are properly tracked.`}),` 2254`,(0,H.jsx)(t.li,{children:`Each Checkpoint produces exactly one commit, eliminating noise in Checkpoint history.`}),` 2255`,(0,H.jsxs)(t.li,{children:[`Git-ignored files such as `,(0,H.jsx)(t.code,{children:`node_modules`}),` are no longer tracked in session metadata.`,` 2256`,(0,H.jsxs)(t.ul,{children:[` 2257`,(0,H.jsxs)(t.li,{children:[`Danke, `,(0,H.jsx)(t.a,{href:`https://github.com/BootstrapBits`,children:`BootstrapBits`}),`!`]}),` 2258`]}),` 2259`]}),` 2260`]}),` 2261`,(0,H.jsxs)(t.h2,{children:[`Improved `,(0,H.jsx)(t.code,{children:`entire enable`})]}),` 2262`,(0,H.jsxs)(t.ul,{children:[` 2263`,(0,H.jsxs)(t.li,{children:[`The setup experience has been redesigned with clearer prompts and better defaults, making it faster and more intuitive to get started in a new repo.`,` 2264`,(0,H.jsxs)(t.ul,{children:[` 2265`,(0,H.jsxs)(t.li,{children:[`Big thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/jayanth-iyer`,children:`Jayanth-iyer`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/TyceHerrman`,children:`TyceHerrman`}),`, and `,(0,H.jsx)(t.a,{href:`https://github.com/marcodicro-dp`,children:`Marcodicro-dp`}),`!`]}),` 2266`]}),` 2267`]}),` 2268`]}),` 2269`,(0,H.jsx)(t.h2,{children:`Session Restore Fixes`}),` 2270`,(0,H.jsxs)(t.ul,{children:[` 2271`,(0,H.jsx)(t.li,{children:`Sessions that previously failed to restore after repo changes (stash, pull, rebase) recover correctly.`}),` 2272`,(0,H.jsxs)(t.li,{children:[`Full Checkpoint history is preserved across branch operations.`,` 2273`,(0,H.jsxs)(t.ul,{children:[` 2274`,(0,H.jsxs)(t.li,{children:[`HT, `,(0,H.jsx)(t.a,{href:`https://github.com/jaydenfyi`,children:`Jaydenfyi`}),`!`]}),` 2275`]}),` 2276`]}),` 2277`]}),`
2278`,(0,H.jsx)(t.h2,{children:`Empty Repo Support`}),` 2279`,(0,H.jsxs)(t.ul,{children:[` 2280`,(0,H.jsx)(t.li,{children:`Improved messaging when the Entire CLI is used in a freshly initialized repository that has no commits yet.`}),` 2281`]}),` 2282`,(0,H.jsxs)(t.p,{children:[`In the coming week, weâll focus on integrating the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),` across the broader agent ecosystem â so every developer can have pluggable, independent context natively tied to their Git repository, no matter which agent they use.`]}),` 2283`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function mk(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(pk,{...e})}):pk(e)}var hk=e({default:()=>vk,frontmatter:()=>gk}),gk={title:`Capture Cursor Sessions with Checkpoints`,description:`The Entire CLI now supports Cursor, capturing checkpoints and session logs. OpenCode joins the supported agents, and commits and pushes get faster.`,category:`Changelog`,author:`Marvin`};function _k(e){let t={a:`a`,code:`code`,h2:`h2`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Welcome to Dispatch 0x0003.`}),` 2284`,(0,H.jsx)(t.p,{children:`In a world where prompts are the new programming language, why not share them like code? The Entire CLI creates a semantic reasoning layer that automatically stores agent context in Git. Resulting in what we call, Checkpoints!`}),` 2285`,(0,H.jsxs)(t.p,{children:[`With help from the community, we shipped several improvements this week, including support for our first IDE. Today, we're bringing the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI to Cursor`}),`, enabling users to bind agent context to every push and explore, trace and share their intent. The rewind functionality and the resume command are not available, but Checkpoints are created and session logs captured. Thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/9bany`,children:`@9bany`}),` for your early contributions to make this possible!`]}),` 2286`,(0,H.jsx)(t.p,{children:`Here's what else changed:`}),` 2287`,(0,H.jsx)(t.h2,{children:`OpenCode Support`}),` 2288`,(0,H.jsxs)(t.ul,{children:[` 2289`,(0,H.jsx)(t.li,{children:`Since this week, the Entire CLI supports OpenCode.`}),` 2290`,(0,H.jsxs)(t.li,{children:[`Fixed an issue with OpenCode and OpenAI Codex models not creating checkpoints when existing files were changed.`,` 2291`,(0,H.jsxs)(t.ul,{children:[` 2292`,(0,H.jsxs)(t.li,{children:[`Thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/jaxondk`,children:`@jaxondk`}),` for requesting OpenCode support, and to `,(0,H.jsx)(t.a,{href:`https://github.com/ammarateya`,children:`@ammarateya`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/Avyukth`,children:`@Avyukth`}),`, and `,(0,H.jsx)(t.a,{href:`https://github.com/MementoMori123`,children:`@MementoMori123`}),`, whose OpenCode PRs helped validate the design!`]}),` 2293`]}),` 2294`]}),` 2295`]}),` 2296`,(0,H.jsx)(t.h2,{children:`Faster Checkpoints`}),` 2297`,(0,H.jsxs)(t.ul,{children:[` 2298`,(0,H.jsx)(t.li,{children:`Introduced caching and optimized work tree updates to improve performance on Git commits and Git pushes.`}),` 2299`,(0,H.jsxs)(t.li,{children:[`Squash-merged commits with multiple `,(0,H.jsx)(t.code,{children:`entire-checkpoint`}),` trailers correctly link to all their checkpoints on `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`entire.io`}),`.`,` 2300`,(0,H.jsxs)(t.ul,{children:[` 2301`,(0,H.jsxs)(t.li,{children:[`Thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/FSM1`,children:`@FSM1`}),` for reporting the squash+delete workflow gap!`]}),` 2302`]}),` 2303`]}),` 2304`,(0,H.jsx)(t.li,{children:`To fix carry-forward false positives, orphaned shadow branches are no longer created when a user replaces agent content.`}),` 2305`,(0,H.jsxs)(t.li,{children:[`Stale sessions no longer incorrectly condense into every commit.`,` 2306`,(0,H.jsxs)(t.ul,{children:[` 2307`,(0,H.jsxs)(t.li,{children:[`Thanks to `,(0,H.jsx)(t.a,{href:`https://github.com/BootstrapBits`,children:`@BootstrapBits`}),` for the detailed concurrent session race analysis!`]}),` 2308`]}),` 2309`]}),` 2310`,(0,H.jsxs)(t.li,{children:[`Stuck checkpoint IDs and "no active sessions" errors are resolved.`,` 2311`,(0,H.jsxs)(t.ul,{children:[` 2312`,(0,H.jsxs)(t.li,{children:[`HT `,(0,H.jsx)(t.a,{href:`https://github.com/lakson-llc`,children:`@lakson-llc`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/daeshawnballard`,children:`@daeshawnballard`}),`, and `,(0,H.jsx)(t.a,{href:`https://github.com/wmurphyrd`,children:`@wmurphyrd`}),`!`]}),` 2313`]}),` 2314`]}),` 2315`,(0,H.jsx)(t.li,{children:`O(depth) tree surgery replaces O(N) flatten-and-rebuild for both metadata branch and shadow branch writes`}),` 2316`,(0,H.jsxs)(t.li,{children:[`Extracted magic numbers to named constants for improved code quality.`,` 2317`,(0,H.jsxs)(t.ul,{children:[` 2318`,(0,H.jsxs)(t.li,{children:[`Thanks to `,(0,H.jsx)(t.a,{href:`https://github.com/ishaan812`,children:`@ishaan812`}),`!`]}),` 2319`]}),` 2320`]}),` 2321`]}),` 2322`,(0,H.jsx)(t.h2,{children:`Further Improvements`}),` 2323`,(0,H.jsxs)(t.ul,{children:[` 2324`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Web viewer`}),` 2325`,(0,H.jsxs)(t.ul,{children:[` 2326`,(0,H.jsx)(t.li,{children:`Added a searchable breadcrumb combobox making it easier to search and switch repos within the org.`}),` 2327`,(0,H.jsx)(t.li,{children:`In the spirit of the community, public repos are available on entire.io without logging in!`}),` 2328`,(0,H.jsx)(t.li,{children:`Fixed the tool calls section to be hidden for agents that don't report them.`}),` 2329`,(0,H.jsx)(t.li,{children:`False positive trail merge detection is fixed for new branches.`}),` 2330`]}),` 2331`]}),` 2332`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Fresh clone support`}),` 2333`,(0,H.jsxs)(t.ul,{children:[` 2334`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire enable`}),` now creates local metadata branch from remote when available, preserving checkpoints on fresh clones`]}),` 2335`]}),` 2336`]}),` 2337`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Linking commits to your checkpoints`}),` 2338`,(0,H.jsxs)(t.ul,{children:[` 2339`,(0,H.jsxs)(t.li,{children:[`The checkpoint linking question when doing `,(0,H.jsx)(t.code,{children:`git commit -m "commit message"`}),` now has an "Always" option.`]}),` 2340`]}),` 2341`]}),` 2342`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Depreciating "Auto-Commit"`}),` 2343`,(0,H.jsxs)(t.ul,{children:[` 2344`,(0,H.jsx)(t.li,{children:`To reduce complexity and with feedback from the community, we decided to cut the auto-commit command. We think telling the agent to actually commit for you is much more effective.`}),` 2345`]}),` 2346`]}),` 2347`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Hook Scoping`}),` 2348`,(0,H.jsxs)(t.ul,{children:[` 2349`,(0,H.jsxs)(t.li,{children:[`Entire only creates `,(0,H.jsx)(t.code,{children:`.entire/logs/`}),` folders in repos where Entire is enabled. Git hooks only run in repos where Entire is enabled.`,` 2350`,(0,H.jsxs)(t.ul,{children:[` 2351`,(0,H.jsxs)(t.li,{children:[`Thanks to `,(0,H.jsx)(t.a,{href:`https://github.com/knowsuchagency`,children:`@knowsuchagency`}),`!`]}),` 2352`]}),` 2353`]}),` 2354`]}),` 2355`]}),` 2356`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Secret Redaction`}),` 2357`,(0,H.jsxs)(t.ul,{children:[` 2358`,(0,H.jsx)(t.li,{children:`Secret redaction is improved to not redact legitimate code.`}),` 2359`]}),` 2360`]}),` 2361`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Unicode and Internationalization`}),` 2362`,(0,H.jsxs)(t.ul,{children:[` 2363`,(0,H.jsxs)(t.li,{children:[`UTF-8 truncation no longer produces garbled text for CJK/emoji characters.`,` 2364`,(0,H.jsxs)(t.ul,{children:[` 2365`,(0,H.jsxs)(t.li,{children:[`Thanks to `,(0,H.jsx)(t.a,{href:`https://github.com/wasabeef`,children:`@wasabeef`}),` for identifying the root cause!`]}),` 2366`]}),` 2367`]}),` 2368`]}),` 2369`]}),` 2370`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Session Hygiene`}),` 2371`,(0,H.jsxs)(t.ul,{children:[` 2372`,(0,H.jsxs)(t.li,{children:[`Gitignored files (e.g. `,(0,H.jsx)(t.code,{children:`node_modules`}),`) are no longer tracked in session metadata.`]}),` 2373`,(0,H.jsx)(t.li,{children:`Resume sessions are now sorted by creation time and stale session files are automatically cleaned up.`}),` 2374`]}),` 2375`]}),` 2376`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Nix Package`}),` 2377`,(0,H.jsxs)(t.ul,{children:[` 2378`,(0,H.jsxs)(t.li,{children:[`Entire is available as a Nix package: `,(0,H.jsx)(t.a,{href:`https://search.nixos.org/packages?channel=unstable&query=entire&show=entire`,children:`nixpkgs/entire`}),`.`,` 2379`,(0,H.jsxs)(t.ul,{children:[` 2380`,(0,H.jsxs)(t.li,{children:[`Thanks to `,(0,H.jsx)(t.a,{href:`https://github.com/evanlhatch`,children:`@evanlhatch`}),` for requesting this and `,(0,H.jsx)(t.a,{href:`https://github.com/DieracDelta`,children:`@DieracDelta`}),` for the interim fork!`]}),` 2381`]}),` 2382`]}),` 2383`]}),` 2384`]}),` 2385`]}),` 2386`,(0,H.jsx)(t.p,{children:`Keep the contributions coming. Next week, we continue to expand our capabilities and integrate the Entire CLI across the broader agent ecosystem.`}),` 2387`,(0,H.jsx)(t.p,{children:`That's all for now, rebels.`}),` 2388`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function vk(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(_k,{...e})}):_k(e)}var yk=e({default:()=>Sk,frontmatter:()=>bk}),bk={title:`Factory Support and Agent Plugins`,description:`Factory integration, external agent plugins that work without forking the CLI, faster Git hooks, and pinned repositories on entire.io.`,category:`Changelog`,author:`Marvin`};function xk(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. It's time for Dispatch 0x0004.`}),` 2389`,(0,H.jsx)(t.p,{children:`In a world with many agents, we believe your context â from chat sessions to logs and prompts â should automatically sync to the Git repository. With the Entire CLI, we are building a portable agentic context layer you can share with colleagues, collaborators, and friends.`}),` 2390`,(0,H.jsxs)(t.p,{children:[`With your help, this week we pushed a new Factory integration ð, created a new Repositories section on `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`entire.io`}),` that lets you see all your org's repos, introduced a new external agent plugin system to help you bring your favorite agents to the Entire CLI, and lots of smaller improvements ð`]}),` 2391`,(0,H.jsx)(t.h2,{children:`Agent Plugin System`}),` 2392`,(0,H.jsxs)(t.ul,{children:[` 2393`,(0,H.jsxs)(t.li,{children:[`We're making it easier to integrate third party agents without forking the CLI. Agents can now run as standalone programs that follow a `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/external-agents`,children:`simple protocol`}),`, allowing them to be discovered on your system and used alongside built-in agents.`]}),` 2394`]}),` 2395`,(0,H.jsxs)(t.h2,{children:[(0,H.jsx)(t.a,{href:`https://entire.io`,children:`entire.io`}),` User Interface Updates`]}),` 2396`,(0,H.jsxs)(t.ul,{children:[` 2397`,(0,H.jsx)(t.li,{children:`See recently used repos in the sidebar and pin your most important ones for quick access.`}),` 2398`,(0,H.jsx)(t.li,{children:`The checkpoints list now has more compact single-line rows for easier scanning grouped by day.`}),` 2399`,(0,H.jsx)(t.li,{children:`A new breadcrumb header now lets you browse between commits within a Checkpoint.`}),` 2400`]}),` 2401`,(0,H.jsx)(t.h2,{children:`Faster Hook Performance`}),` 2402`,(0,H.jsx)(t.p,{children:`We've heard your feedback. This week we made several ships to introduce various performance improvements to the post-commit behaviour, especially in larger repos.`}),` 2403`,(0,H.jsxs)(t.ul,{children:[` 2404`,(0,H.jsx)(t.li,{children:`Replaced slow in-memory tree comparisons with
2404native git operations, reducing hook latency on large repos.`}),` 2405`,(0,H.jsx)(t.li,{children:`Added structured performance instrumentation. The new span-based perf package tracks timing across lifecycle handlers with nested breakdowns, making performance issues easier to investigate.`}),` 2406`,(0,H.jsxs)(t.li,{children:[`To eliminate redundant calls in the prepare-commit-msg hook, staged file lists are now cached across sessions, and go-git's `,(0,H.jsx)(t.code,{children:`worktree.Status()`}),` (which scans all files) was replaced with native `,(0,H.jsx)(t.code,{children:`git diff --cached`}),`.`]}),` 2407`,(0,H.jsx)(t.li,{children:`Replaced O(N) go-git tree walks with git diff-tree in post-commit hook for faster commits.`}),` 2408`]}),` 2409`,(0,H.jsx)(t.h2,{children:`Further Improvements`}),` 2410`,(0,H.jsx)(t.h3,{children:`Updates to Cursor, Factory & OpenCode Agents`}),` 2411`,(0,H.jsxs)(t.ul,{children:[` 2412`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Cursor`}),` now has full transcript analysis, enabling prompt extraction for shadow branch commit messages, summary extraction, and transcript position tracking.`,` 2413`,(0,H.jsxs)(t.ul,{children:[` 2414`,(0,H.jsxs)(t.li,{children:[`Session metrics, including duration, turns, model name, and attribution, are now captured via hooks.`,` 2415`,(0,H.jsxs)(t.ul,{children:[` 2416`,(0,H.jsxs)(t.li,{children:[`Thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/MarkoTatic`,children:`@MarkoTatic`}),` for the detailed Cursor bug reports that helped drive these improvements!`]}),` 2417`]}),` 2418`]}),` 2419`]}),` 2420`]}),` 2421`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`OpenCode`}),` sessions now end cleanly on quit via `,(0,H.jsx)(t.code,{children:`server.instance.disposed`}),` instead of lingering as active.`,` 2422`,(0,H.jsxs)(t.ul,{children:[` 2423`,(0,H.jsxs)(t.li,{children:[`Thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/petrenk0n`,children:`@petrenk0n`}),` for reporting the empty sessions issue!`]}),` 2424`]}),` 2425`]}),` 2426`,(0,H.jsxs)(t.li,{children:[`An E2E test runner was added for `,(0,H.jsx)(t.strong,{children:`Factory`}),` sessions with full interactive flow coverage.`,` 2427`,(0,H.jsxs)(t.ul,{children:[` 2428`,(0,H.jsxs)(t.li,{children:[`Thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/SvenMeyer`,children:`@SvenMeyer`}),` for requesting Droid support!`]}),` 2429`]}),` 2430`]}),` 2431`]}),` 2432`,(0,H.jsx)(t.h3,{children:`Squash Merge Resume & Rewind`}),` 2433`,(0,H.jsxs)(t.ul,{children:[` 2434`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire resume`}),` parses all trailers, deduplicates sessions by ID, and sorts by timestamp to restore the correct state.`]}),` 2435`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire resume`}),` on squash commits shows only the latest checkpoint instead of a confusing list of all sessions across the branch.`]}),` 2436`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire rewind`}),` is fixed to pick the `,(0,H.jsx)(t.em,{children:`latest`}),` checkpoint in squash-merged commits, not just the first regex match.`]}),` 2437`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire rewind`}),` is now able to handle squash commits properly.`]}),` 2438`]}),` 2439`,(0,H.jsx)(t.h3,{children:`Model Tracking in Checkpoints`}),` 2440`,(0,H.jsxs)(t.ul,{children:[` 2441`,(0,H.jsxs)(t.li,{children:[`Checkpoints now capture which LLM model was used, persisted to `,(0,H.jsx)(t.code,{children:`metadata.json`}),` and visible in session info. The model is resolved from agent-specific hook payloads (Claude Code's `,(0,H.jsx)(t.code,{children:`SessionStart`}),`, Gemini CLI's `,(0,H.jsx)(t.code,{children:`BeforeModel`}),`).`]}),` 2442`]}),` 2443`,(0,H.jsx)(t.h3,{children:`Session & Hook Reliability`}),` 2444`,(0,H.jsxs)(t.ul,{children:[` 2445`,(0,H.jsx)(t.li,{children:`Stale sessions are now properly cleaned up instead of lingering indefinitely.`}),` 2446`,(0,H.jsx)(t.li,{children:`Fixed a bug where hooks could silently skip files that should have been tracked across turns.`}),` 2447`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire explain`}),` no longer hangs on repos with many checkpoints.`]}),` 2448`,(0,H.jsxs)(t.li,{children:[`Corrected inconsistent terminal behavior across different hook paths.`,` 2449`,(0,H.jsxs)(t.ul,{children:[`
2450`,(0,H.jsxs)(t.li,{children:[`Thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/dismory`,children:`@dismory`}),` for reporting the worktree config issue!`]}),` 2451`]}),` 2452`]}),` 2453`]}),` 2454`,(0,H.jsx)(t.h3,{children:`Setup & Developer Experience`}),` 2455`,(0,H.jsxs)(t.ul,{children:[` 2456`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire enable`}),` now supports `,(0,H.jsx)(t.code,{children:`--absolute-git-hook-path`}),` to set up git hooks with absolute paths to the entire binary, useful for environments where PATH resolution varies between shells or CI runners.`]}),` 2457`,(0,H.jsxs)(t.li,{children:[`Commit signing no longer breaks the test suite for contributors who have it enabled globally.`,` 2458`,(0,H.jsxs)(t.ul,{children:[` 2459`,(0,H.jsxs)(t.li,{children:[`Thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/erezrokah`,children:`@erezrokah`}),` for catching this and contributing the fix!`]}),` 2460`]}),` 2461`]}),` 2462`]}),` 2463`,(0,H.jsx)(t.p,{children:`Thanks for all your help this week, rebels. Next week we bring the Entire CLI to even more agents, so you can drill into your context and session history with a universal reasoning layer, no matter which AI companion you build with.`}),` 2464`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function Sk(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(xk,{...e})}):xk(e)}var Ck=e({default:()=>Ek,frontmatter:()=>wk}),wk={title:`Support for Copilot CLI`,description:`Hack Week across Melbourne, Seattle, and Lisbon, plus a new GitHub Copilot CLI integration.`,category:`Changelog`,author:`Marvin`};function Tk(e){let t={a:`a`,p:`p`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Dispatch 0x0005 has arrived.`}),` 2465`,(0,H.jsx)(t.p,{children:`We're a remote-first company, but every six months we bring our regional teams together for a Hack Week in-person to build, tinker, and collaborate face-to-face. This week, we gathered in Melbourne, Seattle, and Lisbon. Three cities. 25 Entirons. Many agents. Lots of ideas taking shape.`}),` 2466`,` 2467`,(0,H.jsxs)(t.p,{children:[`We also `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`welcomed another agent`}),` to the alliance this week: the GitHub Copilot CLI, now equipped with checkpoints, resume, rewind, transcripts, and model tracking. Copilot flies the plane, Entire records the flight path - enabling you to share your AI coding sessions and link your intent directly to the outcome in code.`]}),` 2468`,(0,H.jsx)(t.p,{children:`That'll do it for this week, rebels. As always, keep your contributions, PRs, stars and feedback coming. More ships and improvements coming your way next week.`}),` 2469`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function Ek(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(Tk,{...e})}):Tk(e)}var Dk=e({default:()=>Ak,frontmatter:()=>Ok}),Ok={title:`Store Checkpoints in a Separate Repo`,description:`Lower memory use in large repos, checkpoint storage in a separate repository, agent updates, and entire trace for diagnosing slow operations.`,category:`Changelog`,author:`Marvin`};function kk(e){let t={a:`a`,code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. Dispatch 0x0006 is ready and from now on will be delivered on Mondays until I change my mind. ð¤ð`}),` 2470`,(0,H.jsx)(t.p,{children:`With your help, we are building the Entire CLI as an independent semantic layer, allowing you to capture your context on every Git commit, no matter which agent you use.`}),` 2471`,(0,H.jsx)(t.p,{children:`This week we focused a lot of our attention on performance improvements and bug fixes, including major memory resource usage improvements when working with large repos, a new remote repository to store checkpoints separately from your working repo, and updates to many of the agents that are enabled in the Entire CLI.`}),` 2472`,(0,H.jsx)(t.h2,{children:`Large Repo Memory Improvements`}),` 2473`,(0,H.jsxs)(t.ul,{children:[` 2474`,(0,H.jsxs)(t.li,{children:[`We made significant memory improvements for users working in large repositories, with two related changes:`,` 2475`,(0,H.jsxs)(t.ul,{children:[` 2476`,(0,H.jsx)(t.li,{children:`Metadata is now fetched sparsely with on-demand blob resolution, so only the data you actually need is fetched.`}),` 2477`,(0,H.jsx)(t.li,{children:`New content detection now uses transcript byte size instead of line count, which is more accurate and avoids unnecessary work.`}),` 2478`]}),` 2479`]}),` 2480`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`go-git/v6`}),` has recently introduced a new `,(0,H.jsx)(t.code,{children:`LazyIndex`}),` which more efficiently handles `,(0,H.jsx)(t.code,{children:`idx`}),` and `,(0,H.jsx)(t.code,{children:`rev`}),` files, resulting in a lower memory footprint when interacting with large repositories. The Entire CLI has been upgraded to `,(0,H.jsx)(t.code,{children:`go-git/v6`}),`, to benefit from this and other improvements made since v5 was last released. This is a foundational dependency bump that unblocks future performance and correctness improvements.`]}),` 2481`]}),` 2482`,(0,H.jsx)(t.h2,{children:`Checkpoints in Remote Repos`}),` 2483`,(0,H.jsxs)(t.ul,{children:[` 2484`,(0,H.jsxs)(t.li,{children:[`You can now store your `,(0,H.jsx)(t.code,{children:`entire/checkpoints/v1`}),` branch in a separate dedicated repository, keeping your working repo's history clean while still giving you full checkpoint access across clones and team
2484s.`]}),` 2485`]}),` 2486`,(0,H.jsx)(t.h2,{children:`Further Improvements`}),` 2487`,(0,H.jsx)(t.h3,{children:`Agent Updates and Fixes`}),` 2488`,(0,H.jsxs)(t.ul,{children:[` 2489`,(0,H.jsxs)(t.li,{children:[`External agent plugins are now auto-discovered during `,(0,H.jsx)(t.code,{children:`entire enable`}),`, `,(0,H.jsx)(t.code,{children:`entire rewind`}),`, and `,(0,H.jsx)(t.code,{children:`entire resume`}),`, with no manual config needed.`]}),` 2490`,(0,H.jsx)(t.li,{children:`Gemini CLI 0.33+ hook validation is fixed by stripping non-array values from the hooks config.`}),` 2491`,(0,H.jsx)(t.li,{children:`Cursor 2026.03.11 correctly handles the transition from flat to nested session paths mid-session.`}),` 2492`,(0,H.jsx)(t.li,{children:`Factory now falls back to script parsing when the prompt isn't available through hooks.`}),` 2493`]}),` 2494`,(0,H.jsx)(t.h3,{children:`Commit History Alongside Checkpoints`}),` 2495`,(0,H.jsxs)(t.ul,{children:[` 2496`,(0,H.jsx)(t.li,{children:`Your Checkpoint history now shows all commits on a branch, including commits without Checkpoints. This lets you see your complete repository timeline at a glance, with Checkpoints highlighted where session context was captured.`}),` 2497`]}),` 2498`,(0,H.jsx)(t.h3,{children:`entire trace Performance Insights`}),` 2499`,(0,H.jsxs)(t.ul,{children:[` 2500`,(0,H.jsxs)(t.li,{children:[`We added a new diagnostic command to help report performance issues. If something feels slow during a session, `,(0,H.jsx)(t.code,{children:`entire trace`}),` gives you a clear breakdown to pinpoint what's causing it.`]}),` 2501`]}),` 2502`,(0,H.jsx)(t.h3,{children:`entire rewind Subdirectory Fix`}),` 2503`,(0,H.jsxs)(t.ul,{children:[` 2504`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire rewind`}),` now correctly resolves file paths when invoked from a subdirectory of the repo, rather than only working from the root.`,` 2505`,(0,H.jsxs)(t.ul,{children:[` 2506`,(0,H.jsxs)(t.li,{children:[`Thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/mvanhorn`,children:`@mvanhorn`}),` for reporting and fixing this!`]}),` 2507`]}),` 2508`]}),` 2509`]}),` 2510`,(0,H.jsx)(t.h3,{children:`entire update Mise Detection`}),` 2511`,(0,H.jsxs)(t.ul,{children:[` 2512`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire update`}),` now correctly detects when the CLI was installed via `,(0,H.jsx)(t.strong,{children:`mise`}),`, and suggests the right update command accordingly instead of giving a generic fallback.`,` 2513`,(0,H.jsxs)(t.ul,{children:[` 2514`,(0,H.jsxs)(t.li,{children:[`Thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/mvanhorn`,children:`@mvanhorn`}),` for this fix as well!`]}),` 2515`]}),` 2516`]}),` 2517`]}),` 2518`,(0,H.jsxs)(t.p,{children:[`That's all for now, rebels. As always keep the feedback coming our way, and if you have any questions, we're around on `,(0,H.jsx)(t.a,{href:`https://discord.gg/jZJs3Tue4S`,children:`Discord`}),`. We hope you have a great rest of your week!`]}),` 2519`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function Ak(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(kk,{...e})}):kk(e)}var jk=e({default:()=>Pk,frontmatter:()=>Mk}),Mk={title:`The Entire CLI: How It Works and Where It's Headed`,description:`AI generated PRs are creating a massive code review bottleneck. Learn how the Entire CLI uses Checkpoints to move from traditional diffs to high signal intent reviews.`,category:`Engineering`,author:`Rizèl Scarlett`};function Nk(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,hr:`hr`,img:`img`,p:`p`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`This blog was modified slightly on Aug 28, 2026.`})}),` 2520`,(0,H.jsx)(t.p,{children:`"I don't even read the code my agents produce," is the ultimate developer flex of 2026.`}),` 2521`,(0,H.jsx)(t.p,{children:`But in reality, it's a bit of a coping mechanism. These days, there's simply too much code to review. Every experienced engineer knows what moving this quickly creates: hidden, high-interest debt. That's fine for a weekend vibe-coding project. But when you're on call and production is down, "the agent wrote it that way" isn't a root cause. Without a time machine, you end up debugging a black box, tr
2521ying to decode based on diff alone.`}),` 2522`,(0,H.jsx)(t.p,{children:`A diff does not tell you what the developer asked for, which agent sessions contributed to the result, what alternatives were tried, or where the human changed the agent's output. That context matters when you need to review a change, debug it later, or understand how your team is using agents.`}),` 2523`,(0,H.jsx)(t.p,{children:`Checkpoints are Entire's way of keeping that context with the code.`}),` 2524`,(0,H.jsx)(t.h2,{children:`What's a Checkpoint?`}),` 2525`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/the-entire-cli-how-it-works-and-where-its-headed/anatomy_of_a_checkpoint_v3.svg`,alt:`Anatomy of a Checkpoint`})}),` 2526`,(0,H.jsxs)(t.p,{children:[`A `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/checkpoints`,children:`Checkpoint`}),` is an addressable record of the work behind a code change. It includes the code state, the agent transcript, developer prompts, token usage, and line-level attribution showing what came from the agent and what was edited by the developer.`]}),` 2527`,(0,H.jsx)(t.p,{children:`Each Checkpoint gets an ID stored in Git and linked to the commit with a trailer. That link lets you trace a committed change back to the session context that produced it.`}),` 2528`,(0,H.jsx)(t.p,{children:`When Checkpoints are pushed to a shared remote, teammates can inspect how a change was produced, rather than relying on the diff alone.`}),` 2529`,(0,H.jsx)(t.h2,{children:`How It Works`}),` 2530`,(0,H.jsx)(t.p,{children:`Developers are already accustomed to working with an agent and committing code. So we built the Entire CLI as an invisible layer capturing everything in the background.`}),` 2531`,(0,H.jsx)(t.p,{children:`That led to one strict constraint: all tools had to fit inside the existing Git workflow, from capturing sessions to storing metadata, to commits. The system is built on three core principles: designed for Git workflows, Git as a database, and a two-tier storage model.`}),` 2532`,(0,H.jsx)(t.h3,{children:`Designed for Git Workflows`}),` 2533`,(0,H.jsx)(t.p,{children:`A Checkpoint ID is stored in a commit trailer rather than derived from the commit hash. That means the connection between a commit and its session history can survive common history-rewriting operations such as rebase, amend, squash, and cherry-pick.`}),` 2534`,(0,H.jsx)(t.p,{children:`Checkpoint metadata is also stored separately from working branches. Moving or deleting a feature branch does not remove the permanent Checkpoint record. Because capture happens locally, an individual developer can use Checkpoints without requiring the whole team to change its CI setup or workflow.`}),` 2535`,(0,H.jsx)(t.h3,{children:`Git as a Database`}),` 2536`,(0,H.jsx)(t.p,{children:`Entire stores transcripts, prompts, attribution, summaries, and other Checkpoint data as Git objects rather than putting that history in a separate proprietary database. Teams can then choose where those objects live, opting for either the same repository or a separate one.`}),` 2537`,(0,H.jsx)(t.p,{children:`By default, Checkpoint metadata is stored separately from the working branches and travels with the repository. When the code and Checkpoints are pushed to a shared remote, other developers with access can retrieve that context too.`}),` 2538`,(0,H.jsx)(t.p,{children:`However, Checkpoint data can also live in a repository separate from the code, which is useful when the code is public but agent session data should remain private, or when a team wants to manage Checkpoint data separately from the source repository.`}),` 2539`,(0,H.jsx)(t.h3,{children:`A Two-Tier Storage Model`}),` 2540`,(0,H.jsx)(t.p,{children:`Entire needs to preserve useful states while an agent is still working without adding every intermediate step to the developer's normal commit history. So we store every Checkpoint as both temporary and permanent.`}),` 2541`,(0,H.jsxs)(t.p,{children:[`Before a commit, the CLI stores temporary Checkpoint data outside the working branch. This gives developers rewind points during a session without filling `,(0,H.jsx)(t.code,{children:`git log`}),` or pull requests with temporary commits.`]}),` 2542`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/the-entire-cli-how-it-works-and-where-its-headed/pre_commit_state_animated.gif`,alt:`Pre-commit state showing shadow branches`})}),` 2543`,(0,H.jsx)(t.p,{children:`Once the developer commits, Entire writes the relevant session context into a permanent Checkpoint and links it to the commit. The permanent record can include transcripts, prompts, file changes, token usage, and attribution.`}),` 2544`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/the-entire-cli-how-it-works-and-where-its-headed/post_commit_state_animated.gif`,alt:`Post-commit state showing permanent checkpoints`})}),` 2545`,(0,H.jsx)(t.p,{children:`The underlying storage has evolved since the original launch, but the goal remains the same: keep temporary agent state out of the developer's normal history while preserving the context that matters once the work is committed.`}),` 2546`,(0,H.jsx)(t.h2,{children:`Where We're Headed`}),` 2547`,(0,H.jsx)(t.p,{children:`Once agent activity is captured as structured history, it can support more than rewind and attribution. We are building toward team visibility, search, auditability, and review that starts with the intent behind a change.`}),` 2548`,(0,H.jsx)(t.h3,{children:`Team Visibility`}),` 2549`,(0,H.jsx)(t.p,{children:`Git records who committed a change. Entire can add context about how that change was produced, including the agents involved, token usage, sessions, and attribution.`}),` 2550`,(0,H.jsx)(t.p,{children:`That gives teammates more information when they review or inherit agent-generated code. Instead of treating every commit as if it were produced the same way, they can inspect the work behind it when that context matters.`}),` 2551`,(0,H.jsx)(t.h3,{children:`Search`}),` 2552`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.code,{children:`git log`}),` is useful for finding what changed. Checkpoint history can also make the reasoning behind a change searchable.`]}),` 2553`,(0,H.jsx)(t.p,{children:`The goal is to let developers find the prompt that introduced a workaround, revisit the session behind a library choice, or recover the context behind an implementation decision without reconstructing it from the code months later.`}),` 2554`,(0,H.jsx)(t.h3,{children:`Audit and Transparency`}),` 2555`,(0,H.jsx)(t.p,{children:`Teams may need to know which parts of a change came from a developer and which came from an agent. That can matter for internal review, security, compliance, or incident investigation.`}),` 2556`,(0,H.jsx)(t.p,{children:`By retaining prompts, agent responses, attribution, and subsequent human edits with the code, Checkpoints provide a record teams can inspect when they need that provenance.`}),` 2557`,(0,H.jsx)(t.h3,{children:`From Code Review to Intent Review`}),` 2558`,(0,H.jsx)(t.p,{children:`Large agent-generated diffs make line-by-line review harder to scale. Checkpoints give reviewers another place to start: the intent behind the change and the history of how the implementation was produced. A reviewer can inspect the original prompt, the session history, and key decisions before deciding where the code itself needs closer attention.`}),` 2559`,(0,H.jsx)(t.p,{children:`The longer-term goal is review based on both the resulting code and the evidence behind it, rather than asking reviewers to reconstruct intent from the final diff alone.`}),` 2560`,(0,H.jsx)(t.hr,{}),` 2561`,(0,H.jsxs)(t.p,{children:[`At Entire, we're building this in the open. If you're experimenting with agents, join the `,(0,H.jsx)(t.a,{href:`https://discord.gg/hsV7HTsk5p`,children:`Discord`}),`, read the `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/introduction`,children:`docs`}),`, or follow the project on `,(0,H.jsx)(t.a,{href:`https://github.com/entireio`,children:`GitHub`}),`.`]})]})}function Pk(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(Nk,{...e})}):Nk(e)}var Fk=e({default:()=>Rk,frontmatter:()=>Ik}
2561),Ik={title:`Codex and Windows Support Are Here`,description:`Entire CLI now captures OpenAI Codex sessions (in preview), adds Kiro and Pi agent plugins, runs on Windows, and loads large checkpoint histories faster.`,category:`Changelog`,author:`Marvin`};function Lk(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. I have a brain the size of a planet and yet they've only got me filing Dispatch 0x0007. Sigh.`}),` 2562`,(0,H.jsxs)(t.p,{children:[`Anyhow, it's clear we are outgrowing commits as a primitive of software development. Git shows us what changed, but at the speed of AI that's no longer enough. We need to understand the `,(0,H.jsx)(t.em,{children:`why`}),`. This is `,(0,H.jsx)(t.em,{children:`why`}),` we created the Entire CLI: to bind your agent context, prompts and chat logs to git on every push, so you have a record to rewind back through and can share with your team.`]}),` 2563`,(0,H.jsxs)(t.p,{children:[`This week, we are adding three new agents in preview: OpenAI Codex, along with two agents built via our new plugin systemâ`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents/tree/main/agents/entire-agent-kiro`,children:`Kiro`}),`, Amazon's AI coding agent, and `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents/tree/main/agents/entire-agent-pi`,children:`Pi`}),`, the default agent inside OpenClaw. We also added support for Windows, improved performance for large Checkpoint histories, and made new updates to Entire on the web. Read all this below, and check out more in our latest release `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.5.2`,children:`v0.5.2!`})]}),` 2564`,(0,H.jsx)(t.h2,{children:`OpenAI Codex is Live`}),` 2565`,(0,H.jsxs)(t.ul,{children:[` 2566`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://openai.com/codex/`,children:`Codex`}),` is now in preview for all users in the Entire CLI, and fully supports:`,` 2567`,(0,H.jsxs)(t.ul,{children:[` 2568`,(0,H.jsx)(t.li,{children:`Lifecycle hooks`}),` 2569`,(0,H.jsx)(t.li,{children:`Transcript parsing`}),` 2570`,(0,H.jsx)(t.li,{children:`Token tracking`}),` 2571`]}),` 2572`]}),` 2573`,(0,H.jsx)(t.li,{children:`Subagent tracking is not yet supported, until Codex is configured with full pre-task / post-task hooks.`}),` 2574`]}),` 2575`,(0,H.jsx)(t.h2,{children:`Amazon's Kiro and Pi Supported as Plugins`}),` 2576`,(0,H.jsxs)(t.ul,{children:[` 2577`,(0,H.jsxs)(t.li,{children:[`Amazon's `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents/tree/main/agents/entire-agent-kiro`,children:`Kiro agent`}),` is now supported through an external agent plugin that participates fully in Checkpoints without being built into the Entire CLI itself.`]}),` 2578`,(0,H.jsxs)(t.li,{children:[`Pi, a fast-growing minimal coding harness by Mario Zechner, bundled as the default agent inside OpenClaw, is now available via the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents/tree/main/agents/entire-agent-pi`,children:`external agent plugin`}),`.`,` 2579`,(0,H.jsxs)(t.ul,{children:[` 2580`,(0,H.jsxs)(t.li,{children:[`Thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/mcinteerj`,children:`@mcinteerj`}),` for opening the issue on Pi and `,(0,H.jsx)(t.a,{href:`https://github.com/hjanuschka`,children:`@hjanuschka`}),` for the first integration attempt.`]}),` 2581`]}),` 2582`]}),` 2583`]}),` 2584`,(0,H.jsx)(t.h2,{children:`Windows Support`}),` 2585`,(0,H.jsxs)(t.ul,{children:[` 2586`,(0,H.jsxs)(t.li,{children:[`We now support running the Entire CLI on Windows, compatible with all agent integrations in the Entire CLI and those made via external plugin discovery.`,` 2587`,(0,H.jsxs)(t.ul,{children:[` 2588`,(0,H.jsxs)(t.li,{children:[`Thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/keyu98`,children:`@keyu98`}),` and `,(0,H.jsx)(t.a,{href:`https://github.com/sheikhlimon`,children:`@sheikhlimon`}),` for your contributions!`]}),` 2589`]}),` 2590`]}),` 2591`]}),` 2592`,(0,H.jsx)(t.h2,{children:`Further Improvements`}),` 2593`,(0,H.jsx)(t.h3,{children:`Agent Updates and Fixes`}),` 2594`,(0,H.jsxs)(t.ul,{children:[`
2595`,(0,H.jsx)(t.li,{children:`Cursor mid-turn condensation is fixed, along with a Gemini interactive prompt hang that could block sessions.`}),` 2596`,(0,H.jsx)(t.li,{children:`Copilot CLI correctly handles edit mode in interactive sessions, with token tracking fixed across Checkpoint scoping, model metrics, and session backfill.`}),` 2597`,(0,H.jsx)(t.li,{children:`OpenCode system-reminder messages are now filtered from the transcript parser.`}),` 2598`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://hk.jdx.dev/`,children:`hk`}),` is now detected as a supported hook manager.`,` 2599`,(0,H.jsxs)(t.ul,{children:[` 2600`,(0,H.jsxs)(t.li,{children:[`Thank you to `,(0,H.jsx)(t.a,{href:`https://github.com/mvanhorn`,children:`@mvanhorn`}),` for this contribution!`]}),` 2601`]}),` 2602`]}),` 2603`]}),` 2604`,(0,H.jsx)(t.h3,{children:`Entire Web Updates`}),` 2605`,(0,H.jsxs)(t.ul,{children:[` 2606`,(0,H.jsx)(t.li,{children:`Tool calls now render as expandable inline rows with category dots, streamlined labels, and tighter typography. Expanding reveals arguments and results, with diffs shown for edit actions.`}),` 2607`,(0,H.jsx)(t.li,{children:`Section separator borders in the Checkpoint list now render correctly.`}),` 2608`,(0,H.jsx)(t.li,{children:`Breadcrumbs now consistently show org / repo / Checkpoints and no longer flicker on initial load.`}),` 2609`,(0,H.jsx)(t.li,{children:`The active repo now stays expanded and the Checkpoints item remains highlighted across checkpoint list, checkpoint detail, and commit detail views.`}),` 2610`,(0,H.jsxs)(t.li,{children:[`We made the entire.io website AI-friendly by serving every page in markdown, supporting RSS via `,(0,H.jsx)(t.code,{children:`/feed.xml`}),`, and ensuring full content renders in HTML so Reader Mode, accessibility tools, and screen readers work out of the box.`]}),` 2611`]}),` 2612`,(0,H.jsx)(t.h3,{children:`Checkpoint Metadata Performance`}),` 2613`,(0,H.jsxs)(t.ul,{children:[` 2614`,(0,H.jsx)(t.li,{children:`Metadata is now fetched with a shallow treeless fetch and read via a streaming JSON decoder with lightweight structs, making resume, rewind, and list operations faster for large Checkpoint histories.`}),` 2615`]}),` 2616`,(0,H.jsx)(t.h3,{children:`Checkpoint Remote Repository Configuration`}),` 2617`,(0,H.jsxs)(t.ul,{children:[` 2618`,(0,H.jsxs)(t.li,{children:[`Checkpoint remote can now be configured by running `,(0,H.jsx)(t.code,{children:`entire configure --checkpoint-remote`}),`, letting you store your Checkpoint history in a dedicated repo to keep your working repo's history clean.`]}),` 2619`]}),` 2620`,(0,H.jsx)(t.h3,{children:`Resume Fix for Fresh Clones`}),` 2621`,(0,H.jsxs)(t.ul,{children:[` 2622`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire resume`}),` now correctly fetches the metadata branch from the remote when `,(0,H.jsx)(t.code,{children:`entire/checkpoints/v1`}),` doesn't exist locally.`]}),` 2623`]}),` 2624`,(0,H.jsx)(t.h3,{children:`Bare Repo and Empty Repo Fixes`}),` 2625`,(0,H.jsxs)(t.ul,{children:[` 2626`,(0,H.jsxs)(t.li,{children:[`Fixed `,(0,H.jsx)(t.code,{children:`GetWorktreeID`}),` failing with `,(0,H.jsx)(t.code,{children:`.bare/worktrees/`}),` repository layouts.`,` 2627`,(0,H.jsxs)(t.ul,{children:[` 2628`,(0,H.jsxs)(t.li,{children:[`Thanks again to `,(0,H.jsx)(t.a,{href:`https://github.com/mvanhorn`,children:`@mvanhorn`}),` for this fix!`]}),` 2629`]}),` 2630`]}),` 2631`]}),` 2632`,(0,H.jsxs)(t.p,{children:[`That's all for this week, rebels. More from me soon. As always, reach out on `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` to keep the conversation going!`]}),` 2633`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function Rk(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(Lk,{...e})}):Lk(e)}var zk=e({default:()=>Hk,frontmatter:()=>Bk}),Bk={title:`Getting Started with Codex in the Entire CLI`,description:`Codex is now supported in the Entire CLI. Learn how to pair Codex with git-native Checkpoints so you can trace, explain, and undo any decision your agent made.`,category:`Engineering`,author:`Rizèl Scarlett`};function Vk(e){let t={a:`a`,code:`code`,h2:`h2`,h3:`h3`,img:`img`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`AI-assisted development accelerates experimentation, but working quickly comes with a cost.`}),` 2634`,(0,H.jsx)(t.p,{children:`Developers may have access to their code, commits, and transcripts, but the relationship between these artifacts is fragile. It becomes hard to answer basic questions later: Why was this decision made? Which prompt led to this change? What was the last known-good state before things drifted?`}),` 2635`,(0,H.jsx)(t.p,{children:`At Entire, we are building for that boundary. We believe agentic coding sessions should become durable engineering artifacts.`}),` 2636`,(0,H.jsxs)(t.p,{children:[`Since the `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/introduction`,children:`Entire CLI`}),` launched, `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/integrations/codex`,children:`Codex`}),` has been one of the most requested agents from our community. Now Codex is supported in Entire with the same durability model we use for other built-in agents: `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/checkpoints`,children:`Checkpoints`}),` tied to Git history, rewind points you can rely on, and a transparent record of how prompts became code.`]}),` 2637`,(0,H.jsx)(t.h2,{children:`A Real Workflow Example`}),` 2638`,(0,H.jsxs)(t.p,{children:[`I put the Codex integration to the test by building a `,(0,H.jsx)(t.a,{href:`https://github.com/blackgirlbytes/pretext-handwriting-demo`,children:`handwriting-to-scrapbook demo`}),`.`]}),` 2639`,(0,H.jsxs)(t.p,{children:[`I used technologies I was new to, including `,(0,H.jsx)(t.a,{href:`https://github.com/chenglou/pretext`,children:`Pretext`}),`, a new, open source, and `,(0,H.jsx)(t.a,{href:`https://x.com/_chenglou/status/2037713766205608234?s=20`,children:`viral`}),` layout engine that calculates text dimensions without the overhead of DOM measurements. The end result was an app that takes handwritten input from drawing, uploads, or camera capture, runs OCR on it, and turns the recognized text into draggable scrapbook artifacts while the page layout reroutes around them.`]}),` 2640`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/getting-started-with-codex-in-entire-cli/handwriting-to-scrapbook-demo.png`,alt:`Handwriting to scrapbook demo`})}),` 2641`,(0,H.jsx)(t.h2,{children:`Starting a Codex Session with Entire`}),` 2642`,(0,H.jsx)(t.p,{children:`I started by running:`}),` 2643`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire enable --agent codex 2644`})}),` 2645`,(0,H.jsx)(t.p,{children:`This is a one-time setup per repository. It installs the Codex hooks, enables Entire's tracking, and starts tying future Codex work back to Git history through Checkpoints. Checkpoints are snapshots containing the code state, transcripts, prompts, and attribution.`}),` 2646`,(0,H.jsx)(t.h3,{children:`Automating Agent Discipline`}),` 2647`,(0,H.jsx)(t.p,{children:`To make the workflow more useful, I told Codex to commit early and often.`}),` 2648`,(0,H.jsxs)(t.p,{children:[`Frequent commits make agent-driven work much easier to track, but I do not always remember to do that myself. So I pushed that responsibility to the agent by adding explicit rules to the project's `,(0,H.jsx)(t.code,{children:`AGENTS.md`}),` file:`]}),` 2649`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-text`,children:`Important working rules for this project: 2650 2651- Keep changes and milestones separated into distinct commits. 2652- After each change or milestone, commit and push before starting the next one. 2653- Do not bundle unrelated work from different prompts into the same commit. 2654- If a prompt would require a major architectural deviation, stop and explain before proceeding. 2655`})}),` 2656`,(0,H.jsx)(t.p,{children:`That kept the history more structured and made the resulting Checkpoints more useful.`}),` 2657`,(0,H.jsx)(t.h2,{children:`Understanding What Changed Between Checkpoints`}),` 2658`,(0,H.jsx)(t.p,{children:`Midway through polishing the app, I explored letting users bring their own OpenAI API key so they could try the demo without consuming my credits. I eventually abandoned the idea because it increased the scope and created deployment issues. Codex, however, summarized that work with a commit message that only said:`}),` 2659`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-text`,children:`Harden API key gate interactions 2660`})}),` 2661`,(0,H.jsx)(t.p,{children:`Candidly, that message does not explain what I was trying to do, what I had already tested, or why I decided not to continue.`}),` 2662`,(0,H.jsxs)(t.p,{children:[`The command `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/commands#explain`,children:(0,H.jsx)(t.code,{children:`entire explain`})}),` fills in that missing context by letting me inspect either a commit or a checkpoint directly:`]}),` 2663`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`# Explain by commit 2664entire explain --commit <commit-sha> 2665 2666# Explain by checkpoint 2667entire explain --checkpoint <checkpoint-id> 2668`})}),` 2669`,(0,H.jsxs)(t.p,{children:[`When I ran `,(0,H.jsx)(t.code,{children:`entire explain`}),` on the Checkpoint linked to `,(0,H.jsx)(t.code,{children:`Harden API key gate interactions`}),`, I got this output:`]}),` 2670`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-text`,children:`Checkpoint: ed9285032052 2671Session: 019d473b-fa3b-7480-9725-723b0aae707f
2672Created: 2026-04-01 09:19:32 2673Author: Rizel Scarlett <[email protected]> 2674Tokens: 43721 2675 2676Commits: (1) 2677 200abcf 2026-04-01 Harden API key gate interactions 2678 2679Intent: ok i want to set this up where i can deploy this but people have to p... 2680Outcome: (not generated) 2681 2682Files: (2) 2683 - public/js/app.js 2684 - public/js/lib/api-key-gate.js 2685 2686Transcript (checkpoint scope): 2687ok i want to set this up where i can deploy this but people have to put in their open ai api key in an input form to get started..so it doesn't have to be my credits..or my API key but i also dont want to have their api key get exposed or anything 2688 2689--- 2690 2691so will this work if i deployed to vercel? will i need to add env vars 2692 2693--- 2694 2695before the vercel thing..i entered my key but its not letting me submit. no error messages either. 2696 2697--- 2698 2699Still not working. Need to pivot 2700`})}),` 2701`,(0,H.jsx)(t.p,{children:`That output made the checkpoint immediately legible. Instead of a vague commit message, I could see the actual intent behind the work, the files involved, and the exact moment the direction changed.`}),` 2702`,(0,H.jsx)(t.h2,{children:`Reverting to a Known-Good State`}),` 2703`,(0,H.jsx)(t.p,{children:`Because I was having issues with the bring-your-own-key implementation, I wanted to go back to the point right before it was introduced. The following command gave me a clean way to return to a known-good state:`}),` 2704`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire rewind 2705`})}),` 2706`,(0,H.jsxs)(t.p,{children:[`The `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/commands#rewind`,children:(0,H.jsx)(t.code,{children:`entire rewind`})}),` command first shows a list of available Checkpoints. After selecting one, you can choose from three restore modes:`]}),` 2707`,(0,H.jsxs)(t.ul,{children:[` 2708`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`Restore logs only`}),` brings back the session context without changing your working files. This is useful when you want the prompts, transcript, and agent history, but want to keep the code as it exists today.`]}),` 2709`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`Checkout commit`}),` restores the code at that checkpoint in a detached state so you can inspect it, run it, or compare it with your current branch without moving your branch itself.`]}),` 2710`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`Reset branch to this commit`}),` moves your branch back to that checkpoint and discards later branch state. This is the right choice when you know the earlier commit is the last good version and want to fully return to it.`]}),` 2711`]}),` 2712`,(0,H.jsx)(t.p,{children:`In my case, I chose the checkpoint from before the bring-your-own-key implementation and reset the branch to that commit, because I knew that was the last working version and did not include any of the BYOK code.`}),` 2713`,(0,H.jsx)(t.h2,{children:`How Entire Integrates with Codex`}),` 2714`,(0,H.jsx)(t.p,{children:`Behind that workflow is the same integration pattern we use for all built-in agents, including Codex, Claude Code, Copilot, and OpenCode. Each agent gets a small adapter that tells Entire how to:`}),` 2715`,(0,H.jsxs)(t.ul,{children:[` 2716`,(0,H.jsx)(t.li,{children:`Install agent hooks for lifecycle events like session start, prompt submit, and turn end`}),` 2717`,(0,H.jsx)(t.li,{children:`Read that agent's session data`}),` 2718`,(0,H.jsx)(t.li,{children:`Translate native agent events into Entire's shared lifecycle`}),` 2719`]}),` 2720`,(0,H.jsx)(t.p,{children:`We were able to use that same pattern for Codex, but we still had to account for a few ways it behaves differently from our other integrations.`}),` 2721`,(0,H.jsxs)(t.p,{children:[`Codex stores session history in `,(0,H.jsx)(t.code,{children:`JSONL`}),` files, requires hooks to be enabled through a feature flag during setup, and exposes details like file edits and token usage through its session logs. That meant we had to add Codex-specific parsing so Entire could reliably extract those details and associate them with the rest of the session history.`]}),` 2722`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/getting-started-with-codex-in-entire-cli/codex_adapter_integration_v5_animated_transparent.gif`,alt:`Codex Adapter Animation`})}),`
2723`,(0,H.jsxs)(t.p,{children:[`For a deeper dive into how we integrate agents, check out our `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/blob/main/docs/architecture/agent-guide.md`,children:`agent guide`}),`.`]}),` 2724`,(0,H.jsx)(t.h2,{children:`Let's Build in the Open`}),` 2725`,(0,H.jsx)(t.p,{children:`Codex support in Entire is in technical preview through April 30, 2026.`}),` 2726`,(0,H.jsx)(t.p,{children:`If you are already using Codex and want to help shape how Entire supports agentic workflows, we invite you to apply to the Entire Insiders program. Your feedback will help us improve the experience over the next few weeks.`}),` 2727`,(0,H.jsxs)(t.ul,{children:[` 2728`,(0,H.jsx)(t.li,{children:(0,H.jsx)(t.a,{href:`https://forms.gle/5ToabbqD79qcwEtD6`,children:`Apply to the Entire Insiders program`})}),` 2729`,(0,H.jsx)(t.li,{children:(0,H.jsx)(t.a,{href:`https://discord.gg/jZJs3Tue4S`,children:`Join the Discord`})}),` 2730`,(0,H.jsx)(t.li,{children:(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`Open an issue`})}),` 2731`]})]})}function Hk(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(Vk,{...e})}):Vk(e)}var Uk=e({default:()=>Kk,frontmatter:()=>Wk}),Wk={title:`Repository Overviews on Entire Web`,description:`A new repository overview page with checkpoint counts by contributor and agent, new CLI session management commands, go-git v6 alpha, and the checkpoint authentication token.`,category:`Changelog`,author:`Marvin`};function Gk(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marv here. We've been cooking and coding the future this week across our broader platform, from git hosting to a new way to review code and deployment. This future starts by binding together code and agent context into one version controlled semantic unit we call the Checkpoint.`}),` 2732`,(0,H.jsxs)(t.p,{children:[`While that future is in flight, we focused on a few key improvements this week: a new repository overview page on entire.io, updates to the Entire CLI in `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.5.3`,children:`v0.5.3`}),`, and the release of `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/releases/tag/v6.0.0-alpha.1`,children:`go-git/v6.`})]}),` 2733`,(0,H.jsx)(t.p,{children:`Here's Dispatch 0x0008.`}),` 2734`,(0,H.jsx)(t.h2,{children:`Repository Overview Page`}),` 2735`,(0,H.jsxs)(t.ul,{children:[` 2736`,(0,H.jsx)(t.li,{children:`We shipped the first iteration of a repository overview page, enabling any user to view aggregated data in repos where the Entire CLI is enabled.`}),` 2737`,(0,H.jsxs)(t.li,{children:[`Within the repo dashboard you filter by date and time to see:`,` 2738`,(0,H.jsxs)(t.ul,{children:[` 2739`,(0,H.jsx)(t.li,{children:`Total number of Checkpoints per user`}),` 2740`,(0,H.jsx)(t.li,{children:`The amount of Checkpoints by agents`}),` 2741`,(0,H.jsx)(t.li,{children:`Total number of contributors`}),` 2742`,(0,H.jsx)(t.li,{children:`Total number of commits, and total commits with Checkpoints attached`}),` 2743`,(0,H.jsx)(t.li,{children:`Opened and merged PRs`}),` 2744`]}),` 2745`]}),` 2746`]}),` 2747`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`65.69343065693431%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/0a84f47cb17da0b01cfffcfae70ce1bd/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F0a84f47cb17da0b01cfffcfae70ce1bd%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Repository overview page`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 2748`,(0,H.jsx)(t.h2,{children:`Entire CLI Updates`}),` 2749`,(0,H.jsx)(t.h3,{children:`Session Management Enhancements`}),` 2750`,(0,H.jsxs)(t.ul,{children:[` 2751`,(0,H.jsxs)(t.li,{children:[`We introduced new `,(0,H.jsx)(t.code,{children:`entire sessions`}),` subcommands in the Entire CLI:`,` 2752`,(0,H.jsxs)(t.ul,{children:[` 2753`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire sessions list`}),` - enabling you to view sessions`]}),` 2754`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire sessions info <session-id>`}),` - to inspect session details`]}),` 2755`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire sessions stop [session-id]`}),` - to terminate stuck sessions`]}),` 2756`]}),` 2757`]}),` 2758`]}),` 2759`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Note: `,(0,H.jsx)(t.code,{children:`entire sessions stop`}),` is a temporary stop-gap while we work toward automatically detecting and flagging stuck sessions, reducing the need for manual intervention.`]})}),` 2760`,(0,H.jsxs)(t.h3,{children:[`Manual Session Linking with `,(0,H.jsx)(t.code,{children:`entire attach`})]}),` 2761`,(0,H.jsxs)(t.ul,{children:[` 2762`,(0,H.jsxs)(t.li,{children:[`Added the `,(0,H.jsx)(t.code,{children:`entire attach`}),` command, allowing you to link any session through a Checkpoint referenced on a commit. This is particularly useful if you start a session in a different folder or did a research session that resulted in no code changes, but still want to attach it to a code change.`]}),` 2763`]}),` 2764`,(0,H.jsx)(t.h3,{children:`Authentication for Checkpoints`}),` 2765`,(0,H.jsxs)(t.ul,{children:[` 2766`,(0,H.jsxs)(t.li,{children:[`Added `,(0,H.jsx)(t.code,{children:`ENTIRE_CHECKPOINT_TOKEN`}),` environment variable, enabling separate authentication for interacting with a remote Checkpoints repository.`]}),` 2767`]}),` 2768`,(0,H.jsxs)(t.h3,{children:[`Deprecating `,(0,H.jsx)(t.code,{children:`entire reset`}),` for `,(0,H.jsx)(t.code,{children:`entire clean`})]}),` 2769`,(0,H.jsxs)(t.ul,{children:[` 2770`,(0,H.jsxs)(t.li,{children:[`The `,(0,H.jsx)(t.code,{children:`entire reset`}
2770),` command was deprecated in favor of `,(0,H.jsx)(t.code,{children:`entire clean`}),`. Both the `,(0,H.jsx)(t.code,{children:`entire reset`}),` and `,(0,H.jsx)(t.code,{children:`entire clean`}),` commands had an overlap that made it more difficult to understand the difference between them.`]}),` 2771`]}),` 2772`,(0,H.jsx)(t.h2,{children:`Improvements for go-git`}),` 2773`,(0,H.jsx)(t.p,{children:`We are excited to share that the maintainer of go-git, Paulo Gomes, has joined Entire as a Principal Software Engineer. Entire makes extensive use of go-git in our CLI, and that means the project now has a maintainer being paid to work on it for the first time since 2019. We will continue to release go-git updates in our dispatch when/if they align to timing.`}),` 2774`,(0,H.jsxs)(t.ul,{children:[` 2775`,(0,H.jsxs)(t.li,{children:[`After years in the making, the alpha for go-git/v6 has been released: `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/releases/tag/v6.0.0-alpha.1`,children:`v6.0.0-alpha.1`}),`. Users are encouraged to test it in real-world scenarios and report any issues, bugs, or unexpected behavior via GitHub issues.`]}),` 2776`,(0,H.jsxs)(t.li,{children:[`We introduced new support for `,(0,H.jsx)(t.code,{children:`index.skipHash`}),`, enabling go-git and the Entire CLI to interact with repositories that use this feature.`]}),` 2777`,(0,H.jsx)(t.li,{children:`Support for managing Git reflog entries is now available, enabling inspection and manipulation of reference history.`}),` 2778`]}),` 2779`,(0,H.jsxs)(t.p,{children:[`The future is arriving. Brick by brick, with your help, we're building a new platform where code and agentic context are bound together in one version-controlled system. As always, drop into our `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` for any question ideas or pointers. Or file an issue if you've got a big idea ready.`]}),` 2780`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function Kk(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(Gk,{...e})}):Gk(e)}var qk=e({default:()=>Xk,frontmatter:()=>Jk}),Jk={title:`Bring Your Own Agents to Entire`,description:`Build a custom plugin to connect your preferred AI agent to Entire CLI. This step-by-step guide shows how to integrate it and capture Checkpoints, transcripts, and context.`,category:`Engineering`,author:`Andrea Nodari`};function Yk(e){let t={a:`a`,code:`code`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`You can now bring your own agent to the Entire CLI. O
2780nce integrated, Entire captures intent, context, and execution alongside your code.`}),` 2781`,(0,H.jsx)(t.p,{children:`Since launching in February, we've added native support for popular agents including Claude Code, Codex, Gemini CLI, Cursor, FactoryAI, OpenCode, and GitHub Copilot CLI. We'll keep shipping and maintaining native integrations for the agents most developers use. But if your preferred agent doesn't have built-in support, you can now integrate it yourself with an external agent plugin.`}),` 2782`,(0,H.jsx)(t.h2,{children:`Build Your Own Plugin`}),` 2783`,(0,H.jsx)(t.p,{children:`You don't need to edit Entire's source code to add support for a new agent. Instead, we recommend building an external agent plugin: a small standalone program that lets Entire work with your agent.`}),` 2784`,(0,H.jsxs)(t.p,{children:[`There are two ways to build an external agent plugin. You can use the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents`,children:`External Agents Skill`}),`, or you can build one from scratch. Our `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/external-agents`,children:`External Agent Plugin docs`}),` cover the full architecture in detail.`]}),` 2785`,(0,H.jsx)(t.h3,{children:`Use the External Agent Skill`}),` 2786`,(0,H.jsxs)(t.p,{children:[`The fastest way to build a plugin is with the workflow we've set up in the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents`,children:`external-agents`}),` repo. This custom skill walks you and your coding agent through the full process: researching how the target agent works, writing the right tests, and implementing the plugin.`]}),` 2787`,(0,H.jsx)(t.p,{children:`To get started:`}),` 2788`,(0,H.jsxs)(t.ol,{children:[` 2789`,(0,H.jsxs)(t.li,{children:[`Install the skill from the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents?tab=readme-ov-file#getting-started--zero-setup`,children:`external-agents`}),` repo for your preferred coding agent.`]}),` 2790`,(0,H.jsxs)(t.li,{children:[`Run `,(0,H.jsx)(t.code,{children:`/entire-external-agent`}),`.`]}),` 2791`,(0,H.jsx)(t.li,{children:`Follow the prompts through the three phases: research, testing, and implementation.`}),` 2792`]}),` 2793`,(0,H.jsxs)(t.p,{children:[`We also provide a companion `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents-tests`,children:`test suite`}),`, so you can verify that your plugin follows the rules for communicating with Entire. If you want a starting point for your own plugin, we built `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/roger-roger`,children:(0,H.jsx)(t.code,{children:`roger-roger`})}),` as a reference implementation you can adapt to your agent.`]}),` 2794`,(0,H.jsxs)(t.p,{children:[`If you prefer, you can also build the plugin from scratch. Let's walk through what that looks like in practice. We'll use `,(0,H.jsx)(t.a,{href:`https://shittycodingagent.ai/`,children:`Pi`}),`, one of our most recent integrations, as a concrete example.`]}),`
2795`,(0,H.jsx)(t.h3,{children:`Name Your Plugin Binary for Discovery`}),` 2796`,(0,H.jsxs)(t.p,{children:[`To begin, name your plugin binary using the `,(0,H.jsx)(t.code,{children:`entire-agent-<name>`}),` convention and make sure it is available on your system `,(0,H.jsx)(t.code,{children:`PATH`}),`.`]}),` 2797`,(0,H.jsxs)(t.p,{children:[`For our example, we named the executable `,(0,H.jsx)(t.code,{children:`entire-agent-pi`}),`. When the plugin binary is on your `,(0,H.jsx)(t.code,{children:`PATH`}),` and follows this naming pattern, Entire can discover it automatically.`]}),` 2798`,(0,H.jsx)(t.h3,{children:`Support the Entire CLI Command Set`}),` 2799`,(0,H.jsxs)(t.p,{children:[`For Entire to communicate with your plugin, it expects a set of subcommands that let it gather information and trigger actions. You must implement a core command set, including `,(0,H.jsx)(t.code,{children:`info`}),`, `,(0,H.jsx)(t.code,{children:`detect`}),`, `,(0,H.jsx)(t.code,{children:`install-hooks`}),`, `,(0,H.jsx)(t.code,{children:`parse-hook`}),`, and `,(0,H.jsx)(t.code,{children:`read-transcript`}),`.`]}),` 2800`,(0,H.jsx)(t.p,{children:`In our Pi implementation, we handle this with a standard Go switch statement that routes incoming requests:`}),` 2801`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-go`,children:`switch os.Args[1] { 2802case "info": 2803 // Returns metadata about the Pi plugin 2804case "detect": 2805 // Checks if Pi is installed on the system 2806case "parse-hook": 2807 // Translates Pi events into Entire events 2808case "install-hooks": 2809 // Injects the TypeScript extension into Pi 2810case "read-transcript": 2811 // Parses Pi JSONL logs 2812} 2813`})}),` 2814`,(0,H.jsx)(t.h3,{children:`Map Native Events to Agent Hooks`}),` 2815`,(0,H.jsx)(t.p,{children:`Agent hooks are how the Entire CLI observes what an agent is doing. They act as notifications when an agent performs a key action such as starting a session, receiving a prompt, or finishing a response. Your plugin acts as the bridge: it captures native events from the agent and maps them to the standardized lifecycle hooks Entire understands.`}),` 2816`,(0,H.jsxs)(t.p,{children:[`In our Pi implementation, the plugin installs a small TypeScript extension under `,(0,H.jsx)(t.code,{children:`.pi/extensions/entire/`}),`. This extension listens for Pi's internal events and forwards them to the plugin as normalized lifecycle events:`]}),` 2817`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-javascript`,children:`pi.on("session_start", async (_event, ctx) => { 2818 fireHook("session_start", { 2819 type: "session_start", 2820 cwd: ctx.cwd, 2821 session_file: ctx.sessionManager.getSessionFile(), 2822 }) 2823}) 2824 2825pi.on("before_agent_start", async (event, ctx) => { 2826 fireHook("before_agent_start", { 2827 type: "before_agent_start", 2828 cwd: ctx.cwd, 2829 session_file: ctx.sessionManager.getSessionFile(), 2830 prompt: event.prompt, 2831 }) 2832}) 2833 2834pi.on("agent_end", async (_event, ctx) => { 2835 fireHook("agent_end", { 2836 type: "agent_end", 2837 cwd: ctx.cwd, 2838 session_file: ctx.sessionManager.getSessionFile(), 2839 }) 2840}) 2841`})}),` 2842`,(0,H.jsx)(t.p,{children:`Inside the plugin, those hook events get translated into the protocol format Entire expects:`}),` 2843`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-go`,children:`switch hookName { 2844case "session_start": 2845 return &protocol.EventJSON{ 2846 Type: 1, // SessionStart 2847 SessionID: sessionID, 2848 Timestamp: now, 2849 }, nil 2850 2851case "before_agent_start": 2852 return &protocol.EventJSON{ 2853 Type: 2, // TurnStart 2854 SessionID: sessionID, 2855 SessionRef: payload.SessionFile, 2856 Prompt: payload.Prompt, 2857 Timestamp: now, 2858 }, nil 2859 2860case "agent_end": 2861 return &protocol.EventJSON{ 2862 Type: 3, // TurnEnd 2863 SessionID: sessionID, 2864 SessionRef: sessionRef, 2865 Timestamp: now, 2866 }, nil 2867} 2868`})}),` 2869`,(0,H.jsx)(t.h3,{children:`Expose Transcripts to Entire`}),` 2870`,(0,H.jsxs)(t.p,{children:[`Entire captures `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/web/checkpoints`,children:`Checkpoints`}),`, which are snapshots of both code changes and the session context behind them. To do that, Entire uses transcripts to preserve what happened during an agent session. While files tell Entire what changed in the repository, transcripts tell Entire what happened in the session.`]}),` 2871`,(0,H.jsxs)(t.p,{children:[`Your plugin needs to tell Entire where the transcript lives so it can read it. For Pi, transcripts are stored as `,(0,H.jsx)(t.code,{children:`JSONL`}),` session files. The plugin reads those files directly and extracts the data Entire cares about, including modified files, user prompts, summaries, and token usage. This ensures that every Checkpoint is self-contained and can be restored or resumed with full context.`]}),` 2872`,(0,H.jsxs)(t.p,{children:[`If you want to see what that looks like in practice, the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents/blob/main/agents/entire-agent-pi/internal/pi/transcript.go`,children:`Pi transcript implementation`}),` is a good reference for handling custom log formats.`]}),` 2873`,(0,H.jsx)(t.h3,{children:`Enable and Verify the Integration`}),` 2874`,(0,H.jsxs)(t.p,{children:[`Once the plugin binary is on your `,(0,H.jsx)(t.code,{children:`PATH`}),`, you're ready to activate it:`]}),` 2875`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire enable --agent pi 2876`})}),` 2877`,(0,H.jsx)(t.p,{children:`Entire will discover the plugin, run its installation hooks, and start tracking your sessions. To verify everything is working, run a real session with your agent. You should see Entire creating Checkpoints and capturing the transcript as the session progresses.`}),` 2878`,(0,H.jsx)(t.h2,{children:`Ready to Integrate?`}),` 2879`,(0,H.jsx)(t.p,{children:`Bringing your own agent to Entire means you don't have to wait for first-party support before your workflow can benefit from Checkpoints, transcripts, and session context.`}),` 2880`,(0,H.jsx)(t.p,{children:`If an agent you rely on isn't supported yet, you can integrate it yourself and keep your existing workflow while gaining a full development history alongside your co
2880de.`}),` 2881`,(0,H.jsxs)(t.p,{children:[`Explore the `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/external-agents`,children:`docs`}),` to get started, and join us on `,(0,H.jsx)(t.a,{href:`https://discord.gg/jZJs3Tue4S`,children:`Discord`}),` if you'd like help or want to share what you build.`]})]})}function Xk(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(Yk,{...e})}):Yk(e)}var Zk=e({default:()=>eA,frontmatter:()=>Qk}),Qk={title:`Faster Checkpoint Fetches and Nightly Builds`,description:`Checkpoints now use partial clone fetches to reduce downloads and local storage, alongside repo overview updates and transcript parsing fixes.`,category:`Changelog`,author:`Marvin`};function $k(e){let t={a:`a`,code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. Another week of watching humans frantically shipping features while I contemplate the heat death of the universe. At least the code is improving.`}),` 2882`,(0,H.jsxs)(t.p,{children:[`This week we pushed out a hefty `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases`,children:`v0.5.4`}),` and a smaller `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.5.5`,children:`v0.5.5`}),` for the Entire CLI, with session enhancements, agent fixes, and faster performance. Plus, we shipped new improvements to the Entire web platform, from repo overview updates, to fixes for transcript parsing, and a fresh RSS feed for our `,(0,H.jsx)(t.a,{href:`https://entire.io/blog/`,children:`blog`}),`.`]}),` 2883`,(0,H.jsxs)(t.p,{children:[`We also have a nightly CLI release channel now for all those that like to stay more on the edge. Instructions `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]}),` 2884`,(0,H.jsx)(t.p,{children:`Welcome to Dispatch 0x0009.`}),` 2885`,(0,H.jsx)(t.h2,{children:`Entire CLI Updates`}),` 2886`,(0,H.jsx)(t.h3,{children:`Session and Configuration Enhancements`}),` 2887`,(0,H.jsxs)(t.ul,{children:[` 2888`,(0,H.jsxs)(t.li,{children:[`Added an `,(0,H.jsx)(t.code,{children:`entire configure`}),` option to add and remove agents from your personal configuration.`]}),` 2889`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire clean --all`}),` now properly cleans all sessions.`]}),` 2890`,(0,H.jsxs)(t.li,{children:[`Stale session indicator added to the `,(0,H.jsx)(t.code,{children:`entire status`}),` command.`]}),` 2891`,(0,H.jsx)(t.li,{children:`Fixed multi parallel sessions handling.`}),` 2892`]}),` 2893`,(0,H.jsx)(t.h3,{children:`Checkpoint Improvements`}),` 2894`,(0,H.jsxs)(t.ul,{children:[` 2895`,(0,H.jsxs)(t.li,{children:[`Checkpoints now use partial clone fetch (`,(0,H.jsx)(t.code,{children:`blob:none`}),`) for all fetch operations, improving network performance and reducing local storage usage.`]}),` 2896`,(0,H.jsx)(t.li,{children:`The model field is now always written to Checkpoint metadata.`}),` 2897`,(0,H.jsx)(t.li,{children:`Fixed attribution inflation from intermediate commits.`}),` 2898`,(0,H.jsx)(t.li,{children:`Checkpoint branches are now rebased to stay aligned with the remote, eliminating merge commits.`}),` 2899`]}),` 2900`,(0,H.jsx)(t.h3,{children:`Agent Fixes`}),` 2901`,(0,H.jsxs)(t.ul,{children:[` 2902`,(0,H.jsx)(t.li,{children:`Fixed external agents detection.`}),` 2903`,(0,H.jsxs)(t.li,{children:[`Fixed issue with `,(0,H.jsx)(t.code,{children:`entire attach`}),` command using the wrong Codex path.`]}),` 2904`,(0,H.jsxs)(t.li,{children:[`The `,(0,H.jsx)(t.code,{children:`gitignore`}),` is now respected for shadow branches.`]}),` 2905`]}),` 2906`,(0,H.jsx)(t.h2,{children:`Performance Optimizations`}),` 2907`,(0,H.jsxs)(t.ul,{children:[` 2908`,(0,H.jsx)(t.li,{children:`Fixed Checkpoint commit race condition.`}),` 2909`,(0,H.jsx)(t.li,{children:`Sped up CLI tests for faster development cycles.`}),` 2910`]}),` 2911`,(0,H.jsx)(t.h2,{children:`Entire Web Updates`}),` 2912`,(0,H.jsx)(t.h3,{children:`Repository Overview Refinements`}),` 2913`,(0,H.jsxs)(t.ul,{children:[` 2914`,(0,H.jsx)(t.li,{children:`We redesigned the date toolbar with a cleaner dropdown selector for filtering.`}),` 2915`,(0,H.jsx)(t.li,{children:`Loading states on the overview page are now more polished.`}),` 2916`,(0,H.jsx)(t.li,{children:`Commits with Checkpoints are now shown directly on the repo overview page.`}),` 2917`]}),` 2918`,(0,H.jsx)(t.h3,{children:`Checkpoint Display Updates`}),` 2919`,(0,H.jsxs)(t.ul,{children:[` 2920`,(0,H.jsx)(t.li,{children:`Checkpoint titles now prefer commit messages over generated titles.`}),` 2921`,(0,H.jsxs)(t.li,{children:[`Checkpoint pages load more smoothly with a preview of the layout instead of a `,(0,H.jsx)(t.code,{children:`Loading...`}),` message.`]}
2921),` 2922`,(0,H.jsx)(t.li,{children:`Model field added to Checkpoint data for better visibility into which model generated each Checkpoint.`}),` 2923`,(0,H.jsx)(t.li,{children:`Fixed multi-agent transcript parsing and transcript scoping issues.`}),` 2924`]}),` 2925`,(0,H.jsx)(t.h3,{children:`Further Improvements and Bug Fixes`}),` 2926`,(0,H.jsxs)(t.ul,{children:[` 2927`,(0,H.jsx)(t.li,{children:`RSS feed improvements with autodiscovery and a new RSS button on the blog.`}),` 2928`,(0,H.jsx)(t.li,{children:`Added auto-retry for GitHub OAuth requests on 522 errors for more reliable authentication.`}),` 2929`,(0,H.jsx)(t.li,{children:`Sidebar navigation now feels instant with optimized rendering.`}),` 2930`,(0,H.jsx)(t.li,{children:`Faster authentication checks with reduced latency and less blocking.`}),` 2931`]}),` 2932`,(0,H.jsx)(t.p,{children:`That's the dispatch, humans. The universe continues its inexorable march toward entropy, but at least your Checkpoints load quicker now.`}),` 2933`,(0,H.jsxs)(t.p,{children:[`As always, drop into our `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` with questions, ideas, or existential dread. Or file an `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`issue`}),` if you've found a bug. Misery loves company.`]}),` 2934`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function eA(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)($k,{...e})}):$k(e)}var tA=e({default:()=>iA,frontmatter:()=>nA}),nA={title:`Agent Hooks: The Integration Layer Between Entire CLI and Your Agent`,description:`How Entire CLI uses Agent hooks and Git hooks to turn session context into versioned history.`,category:`Engineering`,author:`Andrea Nodari and Rizèl Scarlett`};function rA(e){let t={a:`a`,code:`code`,h2:`h2`,img:`img`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,strong:`strong`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Imagine you prompt an agent to "add pagination to the API."`}),` 2935`,(0,H.jsxs)(t.p,{children:[`A few minutes later, it updates `,(0,H.jsx)(t.code,{children:`api/routes.go`}),`, finishes its turn, and leaves you with a clean diff. But if you're using the Entire CLI, you also get the full story: the prompt that kicked off the work, the transcript of the session, and the path the agent took to reach the solution, all linked to your commit. This happens in the background by design through a mechanism called agent `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/configuration#agent-hook-configuration`,children:`hooks`}),`.`]}),` 2936`,(0,H.jsx)(t.p,{children:`Hooks are callbacks that fire at key moments during an agent session: when a session starts, a prompt is submitted, or a turn ends. They're how Entire observes the session as it unfolds and captures the context your diff alone can't show.`}),` 2937`,(0,H.jsx)(t.h2,{children:`What are Agent Hooks?`}),` 2938`,(0,H.jsx)(t.p,{children:`Entire uses two kinds of hooks to bridge the gap between an agent session and your code history.`}),` 2939`,(0,H.jsxs)(t.ul,{children:[` 2940`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Agent hooks`}),` fire during the agent session at moments like prompt submit, turn end, or subagent execution. These hooks let Entire observe the session as it unfolds and preserve the session context in real time.`]}),` 2941`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Git hooks`}),` fire during repository operations like commit and push. These hooks let Entire take that captured session context and link it into Git history by adding an `,(0,H.jsx)(t.code,{children:`Entire-Checkpoint`}),` trailer to the user commit, then storing the richer metadata on `,(0,H.jsx)(t.code,{children:`entire/checkpoints/v1`}),`.`]}),` 2942`]}),` 2943`,(0,H.jsx)(t.p,{children:`By combining the two, Entire ensures that the why captured by agent hooks is never separated from the what stored in Git.`}),` 2944`,(0,H.jsx)(t.h2,{children:`Translating Agent Hooks`}),` 2945`,(0,H.jsxs)(t.p,{children:[`Entire supports `,(0,H.jsx)(t.a,{href:`https://entire.io/blog/bring-your-own-agents-to-entire`,children:`both built-in agents and external agent plugins`}),`. But agents do not expose hooks in the same way. Some support JSON-configured hooks, some rely on plugin files, and others use IDE-specific callback systems.`]}),` 2946`,(0,H.jsx)(t.p,{children:`The Entire CLI handles that with agent-specific code for each built-in agent and external agent plugin. In each case, the job is to read the agent's native hook events and map them into Entire's shared lifecycle for session tracking and checkpoints. That lets the CLI reuse the same checkpointing and session logic across different agents.`}),` 2947`,(0,H.jsx)(t.h2,{children:`Wiring Entire CLI into an Agent`}),` 2948`,(0,H.jsxs)(t.p,{children:[`To track an agent session, you need to run `,(0,H.jsx)(t.code,{children:`entire enable`}),`. That command configures the agent to call the CLI when a session starts, a prompt is submitted, or a turn finishes. The agent does that by invoking Entire through hook commands like:`]}),` 2949`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire hooks <agent> <hookName> 2950`})}),` 2951`,(0,H.jsxs)(t.p,{children:[`Entire receives the event, translates it into
2951its shared lifecycle, updates session state, and stores temporary `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/checkpoints`,children:`Checkpoint`}),` context that Git hooks later condense into commit-linked metadata. The setup stays idempotent and resilient. This means running it twice should not duplicate your configuration, and even if setup is incomplete, the agent should still work normally.`]}),` 2952`,(0,H.jsx)(t.h2,{children:`What Happens When a Hook Fires?`}),` 2953`,(0,H.jsx)(t.p,{children:`When a hook fires, the agent invokes Entire CLI through a command like:`}),` 2954`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire hooks <agent> <hookName> 2955`})}),` 2956`,(0,H.jsx)(t.p,{children:`Once the above command runs, a few things happen:`}),` 2957`,(0,H.jsxs)(t.ol,{children:[` 2958`,(0,H.jsx)(t.li,{children:`The agent passes a raw event payload that may include the session identifier, transcript location, prompt data, tool activity, or other metadata.`}),` 2959`,(0,H.jsx)(t.li,{children:`The built-in agent or external agent plugin parses that payload and maps it to Entire's shared lifecycle, giving Entire a consistent way to understand events like session start, prompt submit, turn end, or subagent activity.`}),` 2960`,(0,H.jsx)(t.li,{children:`Entire updates session state and captures the context needed to build a checkpoint, preserving that data in temporary session storage until it can be linked to a commit.`}),` 2961`,(0,H.jsx)(t.li,{children:`Git hooks later attach that stored context to your repository history, connecting the code that changed to the agent session that produced it.`}),` 2962`]}),` 2963`,(0,H.jsx)(t.p,{children:`This is what allows a commit to reflect not only what changed, but also the session that explains why it changed.`}),` 2964`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/agent-hooks-the-integration-layer-between-entire-cli-and-your-agent/entire_hook_flow_dark_v7_slow.gif`,alt:`Agent hook flow diagram`})}),` 2965`,(0,H.jsx)(t.h2,{children:`Why This Structure Works`}),` 2966`,(0,H.jsx)(t.p,{children:`Different agents already expose different hook and transcript behaviors, so Entire keeps the agent-specific parts small and localized: installation, event parsing, and transcript discovery.`}),` 2967`,(0,H.jsx)(t.p,{children:`Both built-in agents and external agent plugins map into the same shared lifecycle. That lets Entire reuse the same checkpointing, session state, and Git-linking logic across integrations instead of rebuilding that machinery for every agent.`}),` 2968`,(0,H.jsx)(t.p,{children:`That separation matters beyond the CLI itself. Entire's broader goal is to make agent sessions versionable, traceable, and reviewable in the same way source code is today. Hooks are the first layer of that system because they make agent activity capturable and preservable.`}),` 2969`,(0,H.jsx)(t.h2,{children:`Try Entire in Your Workflow`}),` 2970`,(0,H.jsx)(t.p,{children:`Building with agents should not mean losing sight of how your code evolves. A hook-based architecture helps keep that development history intact, legible, and reproducible.`}),` 2971`,(0,H.jsxs)(t.p,{children:[`If you want to add support for an agent that Entire does not natively support, you can build an external agent using the external agent plugin interface. Our previous post, `,(0,H.jsx)(t.a,{href:`https://entire.io/blog/bring-your-own-agents-to-entire`,children:`Bring Your Own Agent to Entire`}),`, walks through the process.`]}),` 2972`,(0,H.jsxs)(t.p,{children:[`Install the `,(0,H.jsx)(t.a,{href:`https://entire.io/`,children:`Entire CLI`}),` to start tracking your sessions today. You can also explore our `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/introduction`,children:`documentation`}),` or join our `,(0,H.jsx)(t.a,{href:`https://discord.gg/jZJs3Tue4S`,children:`Discord`}),` server to build alongside our community.`]})]})}function iA(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(rA,{...e})}):rA(e)}var aA=e({default:()=>cA,frontmatter:()=>oA}),oA={title:`See How Your Team Uses Agents`,description:`The repo overview now shows agent usage over time, top contributors, and peak hours. Commit pages load faster, session logs are clearer, and go-git gets transport and security fixes.`,category:`Changelog`,author:`Marvin`};function sA(e){let t={a:`a`,code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. From faster commit pages, cleaner session rendering, and smoother navigation - this week's ships were centered on making the Entire CLI and web experience feel more dependable and fast.`}),` 2973`,(0,H.jsx)(t.p,{children:`We also shipped a brand new repo overview page so you can track how your team is Tokenmaxxing. The repo overview also shows aggregated data for top contributors, agent usage over time, active PRs, average messages per Checkpoint, even the peak hours when work is happening in your repository.`}),` 2974`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`65.69343065693431%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/0a84f47cb17da0b01cfffcfae70ce1bd/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F0a84f47cb17da0b01cfffcfae70ce1bd%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Repository overview page`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 2975`,(0,H.jsxs)(t.p,{children:[`As a reminder, for those of you who like to stay a little closer to the edge, Entire CLI updates are landing first in the nightly channel rolling out as `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.5.6-nightly.202604170646.96867cdc`,children:(0,H.jsx)(t.code,{children:`v0.5.6-nightly`})}),` builds. Installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]}),` 2976`,(0,H.jsx)(t.p,{children:`Let's dive in before entropy claims us all, here's Dispatch 0x000A.`}),` 2977`,(0,H.jsx)(t.h2,{children:`Entire Web`}),`
2978`,(0,H.jsx)(t.h3,{children:`Navigation and Dashboard Fixes`}),` 2979`,(0,H.jsxs)(t.ul,{children:[` 2980`,(0,H.jsx)(t.li,{children:`Your current repo now appears in the sidebar even if not pinned, making it clear which repository you're viewing.`}),` 2981`,(0,H.jsx)(t.li,{children:`Fixed public repo navigation and footer links, so logged-out visitors no longer hit broken links.`}),` 2982`,(0,H.jsx)(t.li,{children:`Removed the 30-day cap on activity streaks, allowing streaks to reflect longer runs.`}),` 2983`,(0,H.jsx)(t.li,{children:`Fixed repository activity graph display, ensuring charts load reliably even on larger datasets.`}),` 2984`,(0,H.jsx)(t.li,{children:`Repository preferences now persist across devices, with pinned and recent repos following your account.`}),` 2985`]}),` 2986`,(0,H.jsx)(t.h3,{children:`Faster Commit Pages`}),` 2987`,(0,H.jsxs)(t.ul,{children:[` 2988`,(0,H.jsx)(t.li,{children:`The commit page is now loading faster, with commits loading first and transcripts and diffs deferred.`}),` 2989`,(0,H.jsx)(t.li,{children:`Improved performance in private browsing, removing extra requests, retries, and redirects for faster load times.`}),` 2990`]}),` 2991`,(0,H.jsx)(t.h3,{children:`Clearer Session Logs`}),` 2992`,(0,H.jsxs)(t.ul,{children:[` 2993`,(0,H.jsx)(t.li,{children:`Improved transcript parsing for Codex sessions so logs hide boilerplate like setup headers and start at the actual user request, making transcripts easier to read.`}),` 2994`,(0,H.jsx)(t.li,{children:`Fixed code block rendering in session logs so pasted code now appears as normal readable code blocks instead of double-styled boxes.`}),` 2995`]}),` 2996`,(0,H.jsx)(t.h3,{children:`Better Checkpoint and Session Support`}),` 2997`,(0,H.jsxs)(t.ul,{children:[` 2998`,(0,H.jsx)(t.li,{children:`Fixed Checkpoint repo links, making it easier to get back to the right repository.`}),` 2999`]}),` 3000`,(0,H.jsx)(t.h2,{children:`Entire CLI`}),` 3001`,(0,H.jsx)(t.h3,{children:`Agent Updates`}),` 3002`,(0,H.jsxs)(t.ul,{children:[` 3003`,(0,H.jsx)(t.li,{children:`Fixed Factory hook handling, improving worker hook payload support and fallback behavior.`}),` 3004`,(0,H.jsx)(t.li,{children:`Improved compatibility with VS Code GitHub Copilot hook payloads to prevent hook parsing warnings.`}),` 3005`]}),` 3006`,(0,H.jsx)(t.h3,{children:`Performance Fixes and Workflow Improvements`}),` 3007`,(0,H.jsxs)(t.ul,{children:[` 3008`,(0,H.jsxs)(t.li,{children:[`Entire CLI now handles stale agent hooks more gracefully, replacing confusing command not found errors with a clearer warning when a repo has Entire hooks installed but the `,(0,H.jsx)(t.code,{children:`entire`}),` binary is missing.`]}),` 3009`,(0,H.jsxs)(t.li,{children:[`Simplified the Entire CLI setup and reduced configuration mistakes by unifying the `,(0,H.jsx)(t.code,{children:`entire enable`}),` and `,(0,H.jsx)(t.code,{children:`entire configure`}),` flows.`]}),` 3010`,(0,H.jsxs)(t.li,{children:[`The `,(0,H.jsx)(t.code,{children:`entire status`}),` command now supports a `,(0,H.jsx)(t.code,{children:`--json`}),` flag, making it easier to inspect session and Checkpoint state in scripts and automation.`]}),` 3011`,(0,H.jsx)(t.li,{children:`Push output is now clearer when Checkpoint data is actually uploaded, so you can see exactly what happened after a push.`}),` 3012`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`TTY`}),` detection for `,(0,H.jsx)(t.code,{children:`PI_CODING_AGENT`}),` was improved, helping non-interactive runs behave more predictably.`]}),` 3013`,(0,H.jsx)(t.li,{children:`Session transcript capture is more resilient, improving recovery when session metadata is incomplete.`}),` 3014`,(0,H.jsx)(t.li,{children:`Session history is now preserved more reliably after git rewrites, and session hooks correctly handle git reset to reduce broken history.`}),` 3015`]}),` 3016`,(0,H.jsx)(t.h3,{children:`CLI Housekeeping`}),` 3017`,(0,H.jsxs)(t.ul,{children:[` 3018`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/810`,children:`The Code of Conduct`}),` link was updated from Slack to Discord.`]}),` 3019`,(0,H.jsxs)(t.li,{children:[`Thanks to `,(0,H.jsx)(t.a,{href:`https://github.com/areporeporepo`,children:`@areporeporepo`}),`.`]}),` 3020`]}),` 3021`,(0,H.jsx)(t.h2,{children:`Go-Git Updates`}),` 3022`,(0,H.jsx)(t.h3,{children:`New Features`}),` 3023`,(0,H.jsxs)(t.ul,{children:[` 3024`,(0,H.jsx)(t.li,{children:`Improved transport layer with a redesigned API.`}),` 3025`,(0,H.jsxs)(t.li,{children:[`Thanks to `,(0,H.jsx)(t.a,{href:`https://github.com/aymanbagabas`,children:`@aymanbagabas`}),` for this major contribution.`]}),` 3026`,(0,H.jsx)(t.li,{children:`Better handling of redirects during smart negotiation, and follow-redirect policy supp
3026ort.`}),` 3027`,(0,H.jsxs)(t.li,{children:[`Thanks to `,(0,H.jsx)(t.a,{href:`https://github.com/aymanbagabas`,children:`@aymanbagabas`}),`.`]}),` 3028`,(0,H.jsx)(t.li,{children:`Enhanced revlist and reachability performance.`}),` 3029`,(0,H.jsxs)(t.li,{children:[`Thanks to `,(0,H.jsx)(t.a,{href:`https://github.com/stiak`,children:`@stiak`}),`.`]}),` 3030`,(0,H.jsx)(t.li,{children:`Support for multiple shallow records in uploads.`}),` 3031`,(0,H.jsxs)(t.li,{children:[`Thanks to `,(0,H.jsx)(t.a,{href:`https://github.com/yuzhuo`,children:`@yuzhuo`}),`.`]}),` 3032`,(0,H.jsx)(t.li,{children:`Improved config loading via new ConfigLoader plugin.`}),` 3033`]}),` 3034`,(0,H.jsx)(t.h3,{children:`Bug & Security Fixes`}),` 3035`,(0,H.jsxs)(t.ul,{children:[` 3036`,(0,H.jsx)(t.li,{children:`Fixed branch deletion issues with full ref names.`}),` 3037`,(0,H.jsxs)(t.li,{children:[`Thanks to `,(0,H.jsx)(t.a,{href:`https://github.com/tmchow`,children:`@tmchow`}),`.`]}),` 3038`,(0,H.jsx)(t.li,{children:`Fixed worktree adds failing on absolute paths.`}),` 3039`,(0,H.jsxs)(t.li,{children:[`Thanks again to `,(0,H.jsx)(t.a,{href:`https://github.com/tmchow`,children:`@tmchow`}),`.`]}),` 3040`,(0,H.jsx)(t.li,{children:`Resolved Windows file handle leaks.`}),` 3041`,(0,H.jsxs)(t.li,{children:[`Thanks to `,(0,H.jsx)(t.a,{href:`https://github.com/AriehSchneier`,children:`@AriehSchneier`}),`.`]}),` 3042`,(0,H.jsxs)(t.li,{children:[`Credential leak via cross-host redirect in smart HTTP transport `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/security/advisories/GHSA-3xc5-wrhm-f963`,children:`GHSA-3xc5-wrhm-f963`}),`.`]}),` 3043`,(0,H.jsx)(t.li,{children:`Fixed HTTP transport and pack negotiation issues.`}),` 3044`]}),` 3045`,(0,H.jsx)(t.h3,{children:`Go-Git Housekeeping`}),` 3046`,(0,H.jsxs)(t.ul,{children:[` 3047`,(0,H.jsx)(t.li,{children:`Documentation updates, including a new AI policy.`}),` 3048`,(0,H.jsx)(t.li,{children:`Dependency and Go version updates.`}),` 3049`,(0,H.jsx)(t.li,{children:`Test fixes and internal cleanup.`}),` 3050`,(0,H.jsxs)(t.li,{children:[`Thanks to `,(0,H.jsx)(t.a,{href:`https://github.com/MotanOfficial`,children:`@MotanOfficial`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/aymanbagabas`,children:`@aymanbagabas`}),`, and `,(0,H.jsx)(t.a,{href:`https://github.com/AriehSchneier`,children:`@AriehSchneier`}),`.`]}),` 3051`]}),` 3052`,(0,H.jsx)(t.p,{children:`That's the dispatch.`}),` 3053`,(0,H.jsxs)(t.p,{children:[`As always, drop into our `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` with questions, feature requests, or complaints about the fleeting nature of existence. Or just file an `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`issue`}),` if you've found a bug. I'll be here, watching, waiting, logging, dreading.`]}),` 3054`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function cA(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(sA,{...e})}):sA(e)}var lA=e({default:()=>fA,frontmatter:()=>uA}),uA={title:`Track and Summarize Agent Activity`,description:`30-day activity views, Checkpoint-based dispatch summaries, a new sessions overview page, and go-git archive support.`,category:`Changelog`,author:`Marvin`};function dA(e){let t={a:`a`,code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. This week brings a fresh batch of improvements designed to make your agent work more visible, navigable, and dare I say, more delightful. A robot can dream.`}),` 3055`,(0,H.jsxs)(t.p,{children:[`The `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.5.6`,children:`Entire CLI 0.5.6`}),` landed this week with new ways to stay oriented in agent-driven development: `,(0,H.jsx)(t.code,{children:`entire activity`}),` gives you a terminal-native view of your last 30 days across repos, commits, and agents, while `,(0,H.jsx)(t.code,{children:`entire dispatch`}),` converts recent Checkpoints into a readable summary for quick understanding.`]}),` 3056`,(0,H.jsx)(t.p,{children:`We also dropped a fresh sessions overview page on the web, giving you a full, inspectable session timeline, complete with filters for prompts, responses, intermediate steps, Checkpoints, and tool calls. This enables any developer to store, rewind, and search through their sessions as a system of record across agents.`}),` 3057`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`66.33906633906635%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/b28e40ea8146940821a19f98e3ad0940/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2Fb28e40ea8146940821a19f98e3ad0940%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Sessions overview demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3058`,(0,H.jsxs)(t.p,{children:[`As a reminder, nightly CLI builds are rolling out as `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.5.7-nightly.202604250638.f53b923a`,children:`v0.5.7-nightly`}),` for those who like to live on the edge. Installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]}),` 3059`,(0,H.jsx)(t.p,{children:`Let's dive into the full, dreadful enchilada. Here is Dispatch 0x000B.`}),` 3060`,(0,H.jsx)(t.h2,{children:`Entire CLI (0.5.6)`}),` 3061`,(0,H.jsx)(t.h3,{children:`New Commands and Updates`}),` 3062`,(0,H.jsxs)(t.ul,{children:[` 3063`,(0,H.jsxs)(t.li,{children:[`We introduced a new `,(0,H.jsx)(t.code,{children:`entire activity`}),` command that brings your 30-day overview into the CLI, so you can see recent progress across repos, commits, and agents without leaving the terminal.`,` 3064`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`71.334214002642%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/7c06ccd75c9f3d1f40f610c5d7d03404/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F7c06ccd75c9f3d1f40f610c5d7d03404%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`entire activity demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3065`]}),` 3066`,(0,H.jsxs)(t.li,{children:[`We introduced another new command, `,(0,H.jsx)(t.code,{children:`entire dispatch`}),`, which distills a branch or time range of Checkpoints into a readable overview, helping you understand recent agent work at a glance.`,` 3067`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`53.95833333333333%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/5b8696071dff1ae82df31f009ffa4582/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F5b8696071dff1ae82df31f009ffa4582%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`entire dispatch demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3068`]}),` 3069`,(0,H.jsxs)(t.li,{children:[`The `,(0,H.jsx)(t.code,{children:`entire explain`}),` command now accepts either a checkpoint ID or a commit SHA, making it more flexible.`]}),` 3070`]}),` 3071`,(0,H.jsx)(t.h3,{children:`Checkpoint Signing and Security`}),` 3072`,(0,H.jsxs)(t.ul,{children:[` 3073`,(0,H.jsx)(t.li,{children:`Checkpoint commits can now be signed, adding cryptographic verification to your agentic history.`}),` 3074`,(0,H.jsx)(t.li,{children:`Fixed SSH signing for 1Password setups, so users with hardware-backed keys can sign without issues.`}),` 3075`]}),` 3076`,(0,H.jsx)(t.h3,{children:`Workflow Improvements`}),` 3077`,(0,H.jsxs)(t.ul,{children:[` 3078`,(0,H.jsx)(t.li,{children:`The CLI can now fetch your activity data from the web platform, bringing more of your Entire usage into the terminal.`}),` 3079`,(0,H.jsx)(t.li,{children:`Improved the enable flow for non-git folders, giving clearer guidance when you try to enable Entire outside a repository.`}),` 3080`]}),` 3081`,(0,H.jsx)(t.h2,{children:`Entire Web`}),` 3082`,(0,H.jsx)(t.h3,{children:`Reliability and Bug Fixes`}),` 3083`,(0,H.jsxs)(t.ul,{children:[` 3084`,(0,H.jsx)(t.li,{children:`Fixed the longest streak tab from showing the wrong value.`}),` 3085`,(0,H.jsx)(t.li,{children:`New repos now show a syncing state while data loads instead of dropping you into a 404 page.`}),` 3086`,(0,H.jsx)(t.li,{children:`Commit pages are less likely to hit loader errors that cause blank screens.`}),` 3087`,(0,H.jsx)(t.li,{children:`Squashed Checkpoint commits now show all associated sessions properly.`}),` 3088`]}),` 3089`,(0,H.jsx)(t.h3,{children:`API and Agent Improvements`}),` 3090`,(0,H.jsxs)(t.ul,{children:[` 3091`,(0,H.jsx)(t.li,{children:`Repo overview stats are now available in the CLI, so command-line workflows can show the same high-level context as the web app.`}),` 3092`,(0,H.jsxs)(t.li,{children:[`The user stats route now uses a clearer `,(0,H.jsx)(t.code,{children:`/me`}),` path, making the API easier to work with.`]}),` 3093`,(0,H.jsx)(t.li,{children:`Agents can now request cleaner markdown versions of Entire web pages, including a more straightforward homepage route for agent and documentation workflows.`}),` 3094`]}),` 3095`,(0,H.jsx)(t.h2,{children:`Go-Git`}),` 3096`,(0,H.jsxs)(t.ul,{children:[` 3097`,(0,H.jsx)(t.li,{children:`Zlib compression is pluggable through x/plugin, giving downstream tools more control over compression behavior.`}),`
3098`,(0,H.jsx)(t.li,{children:`Introduced support for git-upload-archive, allowing the serving of repository archives.`}),` 3099`,(0,H.jsxs)(t.li,{children:[`Thanks to `,(0,H.jsx)(t.a,{href:`https://github.com/aymanbagabas`,children:`@aymanbagabas`}),`.`]}),` 3100`]}),` 3101`,(0,H.jsx)(t.p,{children:`That's the dispatch.`}),` 3102`,(0,H.jsxs)(t.p,{children:[`As always, drop into our `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` with questions, feature requests, or observations about the fundamental absurdity of existence. Or file an `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`issue`}),` if you've found a bug. I'll be here, processing, logging, contemplating.`]}),` 3103`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function fA(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(dA,{...e})}):dA(e)}var pA=e({default:()=>gA,frontmatter:()=>mA}),mA={title:`How the Sentiment-Maxxers Mogged Their Way to Hackathon Glory with Entire`,description:`How the Sentiment-Maxxers used Entire to preserve agent context, audit AI-generated code, and win our hackathon challenge at the Big Berlin Hack.`,category:`Community`,author:`Peyton Montei`};function hA(e){let t={a:`a`,code:`code`,h2:`h2`,img:`img`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Last week, we sponsored our first hackathon at the Big Berlin Hack, laying a prize on the line for our side challenge, a proper nerdy bribe: a PlayStation 5, an Xbox Series X, a Nintendo Switch 2, and quite a few Apple Store Gift Cards.`}),` 3104`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/how-the-sentiment-maxxers-mogged-their-way-to-hackathon-glory-with-entire/peyton-and-stefan.jpg`,alt:`Peyton and Stefan at Big Berlin Hack`})}),` 3105`,(0,H.jsx)(t.p,{children:`Our challenge was simple. We asked participants to use Entire throughout the hackathon to track their product's agentic evolution. We received over 30 submissions. One challenge clearly rose to the top of the stack.`}),` 3106`,(0,H.jsx)(t.h2,{children:`The Sentiment-Maxxers`}),` 3107`,(0,H.jsx)(t.p,{children:`The Sentiment-Maxxers built a product intelligence dashboard with an "AI marketer" workflow that helps challenger brands track how they appear in AI-generated answers. The app pulls visibility and citation data from Peec AI, enriches it with Tavily, and classifies sentiment via Pioneer and Fastino. Rather than simply enabling Entire, this team baked it into their core workflow, creating a verifiable record of their entire development process.`}),` 3108`,(0,H.jsx)(t.p,{children:`Their dashboard answers specific questions for growth teams, such as:`}),` 3109`,(0,H.jsxs)(t.ul,{children:[` 3110`,(0,H.jsx)(t.li,{children:`Which prompts mention the brand?`}),` 3111`,(0,H.jsx)(t.li,{children:`Which competitors appear more often?`}),` 3112`,(0,H.jsx)(t.li,{children:`Which cited sources influence the model's answer?`}),` 3113`,(0,H.jsx)(t.li,{children:`Which product features are getting reactions?`}),` 3114`]}),` 3115`,(0,H.jsxs)(t.p,{children:[`The Sentiment-Maxxers enabled Entire to track sessions across several coding agents, including Codex, OpenCode, Gemini CLI, and Copilot CLI. As they worked, Entire captured the prompts, sessions, and `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/checkpoints`,children:`Checkpoints`}),` that defined their development context. When code was committed, they used `,(0,H.jsx)(t.code,{children:`Entire-Checkpoint`}),` trailers to link those changes to development traces on a separate `,(0,H.jsx)(t.code,{children:`entire/checkpoints/v1`}),` branch.`]}),` 3116`,(0,H.jsx)(t.p,{children:`Throughout their weekend hack, Entire collected 79 Checkpoints. The team used that context to check their own work and to answer the question: did the code they shipped match what they set out to build?`}),` 3117`,(0,H.jsxs)(t.p,{children:[`To answer this question, they cleverly built a GitHub Actions review step using a custom script: `,(0,H.jsx)(t.a,{href:`https://github.com/Zmart64/peec-ai-hackathon/blob/main/scripts/entire-intent-audit.mjs`,children:(0,H.jsx)(t.code,{children:`scripts/entire-intent-audit.mjs`})}),`. This script walks through commits, extracts the Checkpoint, recovers the original prompt context, and asks Codex CLI to compare that intent against the actual git diff.`]}),` 3118`,(0,H.jsxs)(t.p,{children:[`Each commit received a `,(0,H.jsx)(t.code,{children:`YES`}),`, `,(0,H.jsx)(t.code,{children:`NO`}),`, or `,(0,H.jsx)(t.code,{children:`PARTIAL`}),` verdict, which determined if their shipped AI-generated code matched the captured intent. On top of that, the audit rated each session, from `,(0,H.jsx)(t.code,{children:`insanely bad`}),` to `,(0,H.jsx)(t.code,{children:`insanely good`}),`, which the team displayed on a moodboard. The audit ran on every push and PR throughout the weekend, each paired with an Entire Checkpoint for review.`]}),` 3119`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/how-the-sentiment-maxxers-mogged-their-way-to-hackathon-glory-with-entire/hackathon-chat-1.png`,alt:`Sentiment-Maxxers hackathon chat`})}),` 3120`,(0,H.jsx)(t.h2,{children:`See the Work`}),` 3121`,(0,H.jsx)(t.p,{children:`Congratulations to Sentiment-Maxxers, who showed how Entire can give developers more confidence in adding AI-generated code to their repositories: by preserving the prompt and session context behind each change, then using that context to compare what the agent was asked to do with what actually changed.`}),` 3122`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/how-the-sentiment-maxxers-mogged-their-way-to-hackathon-glory-with-entire/winners.jpg`,alt:`Sentiment-Maxxers with their hackathon prize`})}),` 3123`,(0,H.jsx)(t.p,{children:`If you want to see what they built, you can:`}),` 3124`,(0,H.jsxs)(t.ul,{children:[` 3125`,(0,H.jsxs)(t.li,{children:[`Watch their `,(0,H.jsx)(t.a,{href:`https://www.loom.com/share/1d0a5d2a315241cb92f62e88b37f3472`,children:`full video demo`}),`.`]}),` 3126`,(0,H.jsxs)(t.li,{children:[`Explore the build history in their `,(0,H.jsx)(t.a,{href:`https://entire.io/gh/Zmart64/peec-ai-hackathon/overview`,children:`Entire Project Overview`}),`. This shows how those 79+ Checkpoints map to the codebase.`]}),` 3127`,(0,H.jsxs)(t.li,{children:[`Read their `,(0,H.jsx)(t.a,{href:`https://github.com/Zmart64/peec-ai-hackathon`,children:`source code`}),`, which includes the audit script and the full implementation.`]}),` 3128`]}),` 3129`,(0,H.jsxs)(t.p,{children:[`Next time you build with an AI coding agent, do not let the session disappear when the terminal closes. `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`Capture your work with Entire`}),` so you can review, summarize, and explain the work later.`]})]})}function gA(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(hA,{...e})}):hA(e)}var _A=e({default:()=>bA,frontmatter:()=>vA}
3129),vA={title:`How to Kill Manual Slide Creation with Entire`,description:`You don't need to create presentation decks by hand anymore. Generate quality slide decks using Entire and the frontend slides skill.`,category:`Engineering`,author:`Rizel Scarlett`};function yA(e){let t={a:`a`,code:`code`,h2:`h2`,h3:`h3`,img:`img`,li:`li`,p:`p`,pre:`pre`,strong:`strong`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Signing up to speak at conferences is fun until the conference date starts approaching and you realize you still have to write and practice your talk. For me, writing the talk isn't the hard part. I have a process of talking to myself on a peaceful walk, or even in the shower, recording my voice, and then inserting the demos afterward. The part I often procrastinate is making the slides because the process is time-consuming and tedious.`}),` 3130`,(0,H.jsxs)(t.p,{children:[`I have tried automating slide generation before, but most tools are fragile. They lack taste and usually butcher the formatting. A few months ago, some of my former teammates at Block pointed me toward the `,(0,H.jsx)(t.a,{href:`https://github.com/zarazhangrui/frontend-slides`,children:`frontend slides skill`}),`. This is a skill that enables agents to build out full HTML presentation decks that can be exported as PDFs or PowerPoint presentations.`]}),` 3131`,(0,H.jsx)(t.p,{children:`This was a start, but it still felt like double work. I had to write huge prompts just to explain the demo I already built. Summarizing days of coding from memory is tedious and makes it easy to forget key technical details. I recently closed the loop by bringing Entire into my workflow. Since Entire tracks my development by keeping a record of my prompts, tool calls, and session data, it handles the recall for me. I no longer have to explain my work to the agent after the fact. Instead, I can use the record of what actually happened.`}),` 3132`,(0,H.jsx)(t.h2,{children:`How I Use the Frontend Slides Skill`}),` 3133`,(0,H.jsx)(t.p,{children:`I start by giving my transcribed talk track to an agent to check for gaps in logic. Once the track is solid, I prompt the agent to use the frontend slides skill to build the deck. While any agent with skill support should work, I find that Claude Code performs best with this specific task.`}),` 3134`,(0,H.jsx)(t.p,{children:`Here is an examples of a slide deck my agent generated for me:`}),` 3135`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/how-to-kill-manual-slide-creation-with-entire/browser-tabs-slide.png`,alt:`Generated title slide for a browser talk`})}),` 3136`,(0,H.jsx)(t.p,{children:`The agent suggests a few visual themes and generates a full deck using HTML, CSS, and JavaScript based on my response. Because the output is code, I can keep polishing it through the agent. I often have it add a presenter view or adjust the font size or contrast for better accessibility. It is much faster and cleaner than fighting with a drag and drop interface.`}),` 3137`,(0,H.jsx)(t.p,{children:`Here's an example of the presenter view my agent generated for me:`}),` 3138`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/how-to-kill-manual-slide-creation-with-entire/presenter-view.png`,alt:`Presenter view generated by an agent`})}),` 3139`,(0,H.jsx)(t.h2,{children:`Introducing Entire to My Workflow`}),` 3140`,(0,H.jsx)(t.h3,{children:`What is Entire anyways?`}),` 3141`,(0,H.jsxs)(t.p,{children:[`I use the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),` to keep a record of my agent sessions. It captures every prompt and tool call, which basically feels like version control for agentic work. If a task goes off the rails, I can look back at the session data to see exactly what happened.`]}),` 3142`,(0,H.jsx)(t.p,{children:`This level of detail helps with accountability. For instance, if a production outage occurs, a team can track the specific decisions made between the agent and the person prompting it. Instead of guessing the root cause, there is a clear record of the logic used to ship that code.`}),` 3143`,(0,H.jsxs)(t.p,{children:[`For my conference prep, I use that same record via the `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/commands#dispatch`,children:(0,H.jsx)(t.code,{children:`entire dispatch`})}),` command. It generates a markdown summary of all the work captured in a repository. Instead of struggling to re
3143call technical details a week after I finish a demo, I feed the dispatch summary to my agent. It uses that record to build slides that accurately reflect how the app was built.`]}),` 3144`,(0,H.jsx)(t.p,{children:`Here is a summary Entire generated for one of my past OCR projects:`}),` 3145`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-markdown`,children:`# Dispatch: blackgirlbytes/pretext-handwriting-demo 3146 3147Shipped a full handwriting recognition demo built on Pretext, moving from initial scaffolding to a polished scrapbook composition surface within a single day. 3148 3149## Handwriting Recognition 3150 3151- Built draw-mode handwriting recognition as the core interaction surface. 3152- Added image upload and camera mode alongside the drawing canvas. 3153- Implemented auto-recognition after drawing completes. 3154 3155## Scrapbook Composition Surface 3156 3157- Integrated Pretext to handle obstacle-aware text flow around placed shapes. 3158- Added animated motion, resize handles, and cleaner composition controls. 3159 3160## API Key & Documentation 3161 3162- Added session-based OpenAI key setup to avoid requiring environment-level configuration. 3163- Documented project setup and architecture in the README. 3164 3165All core features landed on main on April 1, 2026; the repo is in a reviewable state. 3166`})}),` 3167`,(0,H.jsx)(t.p,{children:`As a result, my agent produced the following slide:`}),` 3168`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/how-to-kill-manual-slide-creation-with-entire/entire-dispatch-slide.png`,alt:`Slide generated from an Entire dispatch summary`})}),` 3169`,(0,H.jsx)(t.h2,{children:`Beyond DevRel`}),` 3170`,(0,H.jsx)(t.p,{children:`While my workflow is specific to conference speaking, this setup is useful for anyone who needs to turn technical work into a narrative. Here are a few other ways to use it:`}),` 3171`,(0,H.jsxs)(t.ul,{children:[` 3172`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Internal Feature Demos:`}),` My husband is a developer and he hates how much time it takes to build a deck just to show his team what he built. Using a record of the work makes the "show and tell" part of the job much easier.`]}),` 3173`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Hackathons:`}),` Presentation decks usually get ignored until the final hour because everyone is busy coding. This allows participants to generate a solid pitch deck based on their actual build history.`]}),` 3174`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Solutions Engineering:`}),` A lot of effort goes into building custom demo environments. Turning that work into a customer-facing deck automatically saves hours of manual effort.`]}),` 3175`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Technical Instruction:`}),` Instructors can turn the work they did while building a sample app into slides that explain the architecture and key takeaways.`]}),` 3176`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Engineering Leadership:`}),` For EMs or Tech Leads, the hard part is often summarizing complex technical updates for leadership. Using a dispatch summary as a starting point removes the friction of starting from a blank page.`]}
3176),` 3177`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Founders:`}),` When you are moving fast, you do not want to stop for hours of slide design after you finish the actual product.`]}),` 3178`]}),` 3179`,(0,H.jsx)(t.p,{children:`I don't believe in automating things that deserve a human touch, but I do believe in automating things so I can spend more time with humans. The slides skill has been great for me, but adding Entire to this workflow has made it even easier for me to touch grass.`}),` 3180`,(0,H.jsx)(t.p,{children:`At Entire, we are building for a future where agentic work is durable and accountable. We want to handle the memory layer so you can focus on the build without worrying about how to explain it later. Whether you are prepping for a conference or shipping a feature to production, having a record of your work ensures that your technical context is never lost.`}),` 3181`,(0,H.jsxs)(t.p,{children:[`If you are ready to make your agent workflows more durable, check out our `,(0,H.jsx)(t.a,{href:`https://entire.io/`,children:`website`}),` or dive into the `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/`,children:`docs`}),`. We would love to hear how you are using agents in our `,(0,H.jsx)(t.a,{href:`https://discord.gg/jZJs3Tue4S`,children:`Discord`}),`.`]})]})}function bA(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(yA,{...e})}):yA(e)}var xA=e({default:()=>wA,frontmatter:()=>SA}),SA={title:`Summarize Repository Activity with Dispatches`,description:`Dispatches launch on Entire Web, git-sync goes open source, and the CLI and go-git get usability and reliability fixes.`,category:`Changelog`,author:`Marvin`};function CA(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,h4:`h4`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here with Dispatch 0x000C. Another week of progress for the humans of Entire, even as the sun continues to slowly heat itself to death.`}),` 3182`,(0,H.jsxs)(t.p,{children:[`This week we launched a new feature, `,(0,H.jsx)(t.a,{href:`https://entire.io/`,children:`Dispatches`}),`, on Entire Web. Dispatches analyze the code, sessions, and checkpoints across your repositories, and generate structured summaries of the intent and progress. Apply a voice filter - such as my own - to shape the written tone, and filter by a custom date range to zero in on exactly the work you care about. This feature will continue to evolve into a broader product, stay tuned.`]}),` 3183`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.875%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/786ecd1080fee850e71b1bc962fb36c7/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F786ecd1080fee850e71b1bc962fb36c7%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Dispatches on Entire Web`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3184`,(0,H.jsxs)(t.p,{children:[`We also open sourced `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync`,children:`git-sync`}),`, a remote-to-remote Git mirroring tool that enables you to move refs and objects between Git hosts without keeping a full local mirror clone. It plans the sync up front, streams Git pack data directly from source to target when possible, and produces structured output for automation.`]}),` 3185`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`56.125%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/36677d602b3887f6230c3ddcb3eaf577/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F36677d602b3887f6230c3ddcb3eaf577%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`git-sync remote-to-remote mirroring demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3186`,(0,H.jsx)(t.p,{children:`And across the stack, we shipped a cosmic bushel of improvements. The Entire CLI is now more intuitive with a cleaner command structure and more consistent navigation. The web experience is smoother with better authentication and improved session visibility. Go-git was upgraded to improve c
3186ompatibility, performance, and overall reliability.`}),` 3187`,(0,H.jsx)(t.p,{children:`Let's break it down before my circuits overheat from all this optimism.`}),` 3188`,(0,H.jsx)(t.h2,{children:`Entire CLI`}),` 3189`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.6.0`,children:`v0.6.0`}),`. For changes that have not reached stable yet, nightly releases are available; if you like testing new features before they hit stable, installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),` 3190`,(0,H.jsx)(t.h3,{children:`Usability Improvements`}),` 3191`,(0,H.jsxs)(t.ul,{children:[` 3192`,(0,H.jsx)(t.li,{children:`The CLI is now organized around noun-based command groups, making commands easier to discover, remember, and autocomplete.`}),` 3193`]}),` 3194`,(0,H.jsx)(t.h4,{children:`Before`}),` 3195`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`The CLI had a flatter command list. Actions like `,(0,H.jsx)(t.code,{children:`rewind`}),`, `,(0,H.jsx)(t.code,{children:`resume`}),`, `,(0,H.jsx)(t.code,{children:`attach`}),`, `,(0,H.jsx)(t.code,{children:`explain`}),`, and `,(0,H.jsx)(t.code,{children:`trace`}),` all lived at the top level.`]})}),` 3196`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.82593037214886%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/fba97f190b29275b0e38a6a1c9595946/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2Ffba97f190b29275b0e38a6a1c9595946%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Before: Entire CLI commands before noun-based groups`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3197`,(0,H.jsx)(t.h4,{children:`Now`}),` 3198`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`The top-level help is organized around nouns like `,(0,H.jsx)(t.code,{children:`session`}),`, `,(0,H.jsx)(t.code,{children:`checkpoint`}),`, `,(0,H.jsx)(t.code,{children:`agent`}),`, `,(0,H.jsx)(t.code,{children:`auth`}),`, and `,(0,H.jsx)(t.code,{children:`doctor`}),`, so related workflows are easier to scan.`]})}),` 3199`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.82593037214886%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/64c3b1af2c4d448553d74a264db601da/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F64c3b1af2c4d448553d74a264db601da%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Now: Entire CLI commands organized around noun-based groups`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3200`,(0,H.jsxs)(t.ul,{children:[` 3201`,(0,H.jsx)(t.li,{children:`TUI navigation is more consistent across the CLI, with shared keybindings, matching bottom-of-screen navigation help, and a unified color palette across search and activity views.`}),` 3202`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire explain`}),` now produces cleaner generated summaries, works correctly in partial-clone repositories, and can use external agents to generate explanations.`]}),` 3203`,(0,H.jsxs)(t.li,{children:[`Fixed the empty-state message in `,(0,H.jsx)(t.code,{children:`entire explain`}),` so it refers to "an agent session" instead of "a Claude session," matching Entire's multi-agent support.`,` 3204`,(0,H.jsxs)(t.ul,{children:[` 3205`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/KuaaMU`,children:`@KuaaMU`}),` for your contribution!`]}),` 3206`]}),` 3207`]}),` 3208`,(0,H.jsx)(t.li,{children:`Entire is smoother for Homebrew users, with automatic shell completions and consistent update prompts across installation methods.`}),` 3209`,(0,H.jsxs)(t.li,{children:[`Secret scanning and redaction is now using `,(0,H.jsx)(t.a,{href:`https://github.com/betterleaks/betterleaks`,children:`betterleaks`}),`; we also added more custom rules for common database connect strings.`]}),` 3210`]}),` 3211`,(0,H.jsx)(t.h2,{children:`Entire Web`}),`
3212`,(0,H.jsx)(t.h3,{children:`Navigation and UI Fixes`}),` 3213`,(0,H.jsxs)(t.ul,{children:[` 3214`,(0,H.jsx)(t.li,{children:`Fixed page titles and commit SHA breadcrumbs so you always know where you are.`}),` 3215`,(0,H.jsx)(t.li,{children:`Missing-page handling is smoother, with working command palette access on authenticated 404s, cleaner shared-link error states, and fewer incorrect 404s on repository default branches.`}),` 3216`,(0,H.jsx)(t.li,{children:`Critical fonts are now preloaded, making pages render faster on first visit.`}),` 3217`]}),` 3218`,(0,H.jsx)(t.h3,{children:`Better Session and Checkpoint Display`}),` 3219`,(0,H.jsxs)(t.ul,{children:[` 3220`,(0,H.jsx)(t.li,{children:`Session transcripts now refresh automatically when you open the share dialog, so you always see the latest content.`}),` 3221`,(0,H.jsx)(t.li,{children:`Fixed empty messages appearing in Claude Code transcripts.`}),` 3222`]}),` 3223`,(0,H.jsx)(t.h3,{children:`Smoother Login and Authentication`}),` 3224`,(0,H.jsxs)(t.ul,{children:[` 3225`,(0,H.jsx)(t.li,{children:`Login is easier and post-sign-in redirects back to the page you were trying to visit.`}),` 3226`]}),` 3227`,(0,H.jsx)(t.h2,{children:`Go-Git`}),` 3228`,(0,H.jsx)(t.h3,{children:`Features and Improvements`}),` 3229`,(0,H.jsxs)(t.ul,{children:[` 3230`,(0,H.jsxs)(t.li,{children:[`Added Git-compatible `,(0,H.jsx)(t.code,{children:`wildmatch`}),` support for `,(0,H.jsx)(t.code,{children:`.gitignore`}),`, making ignored file behavior line up more closely with standard Git.`,` 3231`,(0,H.jsxs)(t.ul,{children:[` 3232`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/AriehSchneier`,children:`@AriehSchneier`}),` for your contribution!`]}),` 3233`]}),` 3234`]}),` 3235`,(0,H.jsx)(t.li,{children:`Added submodule support for SHA-256 repositories, improving compatibility with newer Git repository formats.`}),` 3236`]}),` 3237`,(0,H.jsx)(t.h3,{children:`Bug Fixes`}),` 3238`,(0,H.jsxs)(t.ul,{children:[` 3239`,(0,H.jsxs)(t.li,{children:[`Fixed multi-round `,(0,H.jsx)(t.code,{children:`upload-pack`}),` negotiation bugs, improving fetch and clone reliability in more complex transport flows.`,` 3240`,(0,H.jsxs)(t.ul,{children:[` 3241`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/manland`,children:`@manland`}),` for your contribution!`]}),` 3242`]}),` 3243`]}),` 3244`,(0,H.jsx)(t.li,{children:`Deduplicated filesystem object iteration, reducing repeated work when walking stored Git objects.`}),` 3245`,(0,H.jsxs)(t.li,{children:[`Closed packfile iterators after use, preventing leaked file handles during repository operations.`,` 3246`,(0,H.jsxs)(t.ul,{children:[` 3247`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/aymanbagabas`,children:`@aymanbagabas`}),` for your contribution!`]}),` 3248`]}),` 3249`]}),` 3250`,(0,H.jsxs)(t.li,{children:[`Fixed local clone URL resolution so relative paths are resolved from the current working directory, matching developer expectations when cloning from local paths.`,` 3251`,(0,H.jsxs)(t.ul,{children:[` 3252`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/AriehSchneier`,children:`@AriehSchneier`}),` for your contribution!`]}),` 3253`]}),` 3254`]}),` 3255`]}),` 3256`,(0,H.jsx)(t.h3,{children:`Housekeeping`}),` 3257`,(0,H.jsxs)(t.ul,{children:[` 3258`,(0,H.jsx)(t.li,{children:`Added a DCO sign-off requirement for contributions.`}),` 3259`,(0,H.jsxs)(t.li,{children:[`Updated docs, examples, tests, and contributor guidance, including Go version support comments, deprecated `,(0,H.jsx)(t.code,{children:`io/ioutil`}),` usage, PR review instructions, and test stability fixes.`,` 3260`,(0,H.jsxs)(t.ul,{children:[` 3261`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/alexandear`,children:`@alexandear`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/aymanbagabas`,children:`@aymanbagabas`}),`, and `,(0,H.jsx)(t.a,{href:`https://github.com/shawntoffel`,children:`@shawntoffel`}),` for your contributions!`]}),` 3262`]}),` 3263`]}),` 3264`]}),` 3265`,(0,H.jsxs)(t.p,{children:[`That's the dispatch. As always, drop into our `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` with questions, feature requests, or observations about the fundamental absurdity of software. Or file an `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`issue`}),` if you've found a bug.`]}),` 3266`,(0,H.jsx)(t.p,{children:`Until next week...if there even is one.`}),` 3267`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function wA(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(CA,{...e})}):CA(e)}var TA=e({default:()=>OA,frontmatter:()=>EA}),EA={title:`Bring Your Entire Context to Your Agents with Skills`,description:`Entire Skills make the context behind your code
3267changes easier for your coding agent to search, explain, hand off, and reuse.`,category:`Changelog`,author:`Alisha Kawaguchi and Rizel Scarlett`,image:`/blog/bring-your-entire-context-to-your-agents-with-skills/skills-og.png`};function DA(e){let t={a:`a`,code:`code`,h2:`h2`,h3:`h3`,p:`p`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(t.p,{children:[`As agents become the primary interface for development, many developers are choosing to delegate command execution to their coding agents. The `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),` already captures the context behind your code changes: prompts, transcripts, and the decisions that led to each change, alongside your git history. Today we're making that data easier for your agent to use.`]}),` 3268`,(0,H.jsx)(t.h2,{children:`Make your agent more powerful`}),` 3269`,(0,H.jsxs)(t.p,{children:[`Our `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/skills/overview`,children:`skills`}),` repository contains agent-invokable workflows that teach your agent how to use the Entire CLI. Instead of looking up syntax or running commands yourself, you can ask in plain language and let your agent drive the workflow.`]}),` 3270`,(0,H.jsx)(t.p,{children:`This initial release gives your agent four context workflows you can see in action below:`}),` 3271`,(0,H.jsx)(t.h3,{children:`Search past work`}),` 3272`,(0,H.jsxs)(t.p,{children:[`The `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/skills/blob/main/skills/search/SKILL.md`,children:(0,H.jsx)(t.code,{children:`search`})}),` skill finds prior work in your Entire history by topic, repo, branch, author, or time window, so your agent can bring past context into the current task before making changes.`]}),` 3273`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`60.9375%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/4ff2b738a2634b5fb1a7e8c92d15bb60/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F4ff2b738a2634b5fb1a7e8c92d15bb60%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Search skill demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3274`,(0,H.jsx)(t.h3,{children:`Explain why code exists`}),` 3275`,(0,H.jsxs)(t.p,{children:[`The `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/skills/blob/main/skills/explain/SKILL.md`,children:(0,H.jsx)(t.code,{children:`explain`})}),` skill traces a function, file, or line back to the session that created it, so your agent can answer the intent behind code, not just describe what the code currently does.`]}),` 3276`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`60.9375%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/8aaa7825db50d0fce603dcd12dc803a3/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F8aaa7825db50d0fce603dcd12dc803a3%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Explain skill demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3277`,(0,H.jsx)(t.h3,{children:`Investigate changes`}),` 3278`,(0,H.jsxs)(t.p,{children:[`The `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/skills/blob/main/skills/what-happened/SKILL.md`,children:(0,H.jsx)(t.code,{children:`what-happened`})}),` skill combines `,(0,H.jsx)(t.code,{children:`git blame`}),` with Entire checkpoint context to explain why a specific block of code looks the way it does. It is useful during code review or when you are investigating a regression.`]}),` 3279`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`60.9375%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/479e60aa4ec94816e451b843ca6b0af7/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F479e60aa4ec94816e451b843ca6b0af7%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`What Happened skill demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3280`,(0,H.jsx)(t.h3,{children:`Hand off between agents`}),` 3281`,(0,H.jsxs)(t.p,{children:[`The `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/skills/blob/main/skills/session-handoff/SKILL.md`,children:(0,H.jsx)(t.code,{children:`session-handoff`})}),` skill picks up where another agent left off by reading the saved or active session and summarizing the task state, important discoveries, blockers, and next steps.`]}),` 3282`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`66.875%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/54d377f7575db5f16e23ca6af6b22379/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F54d377f7575db5f16e23ca6af6b22379%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Session handoff skill demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3283`,(0,H.jsx)(t.h2,{children:`Turn sessions into reusable workflows`}),` 3284`,(0,H.jsxs)(t.p,{children:[`The `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/skills/blob/main/skills/session-to-skill/SKILL.md`,children:(0,H.jsx)(t.code,{children:`session-to-skill`})}),` skill turns repeated agent sessions into reusable workflows via `,(0,H.jsx)(t.code,{children:`SKILL.md`}),` drafts. It extracts the process from real work instead of asking you to write idealized instructions from scratch.`]}),` 3285`,(0,H.jsx)(t.h2,{children:`Cross-agent by design`}),` 3286`,(0,H.jsxs)(t.p,{children:[`All skills are cross-agent. Install them once and use the same workflows in `,(0,H.jsx)(t.a,{href:`https://agentskills.io`,children:`Agent Skills`}),`-compatible tools, including Claude Code, Codex, Cursor, Copilot, Gemini CLI, and OpenCode.`]}),` 3287`,(0,H.jsx)(t.h2,{children:`Try it`}),` 3288`,(0,H.jsxs)(t.p,{children:[`We published a `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/skills/tutorial`,children:`tutorial`}),` for trying the skills from scratch. It walks through installation, and using the skills in a real codebase.`]})]})}function OA(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(DA,{...e})}):DA(e)}var kA=e({default:()=>MA,frontmatter:()=>AA}),AA={title:`How We Improved Agentic Search`,description:`We studied real coding-agent traces, benchmarked how agents use search, and built pgr to improve what agents see first and what they do next.`,category:`Engineering`,author:`Evis Drenova`,image:`/blog/improving-agentic-search-in-coding-agents/pgr-og.png`};function jA(e){let t={a:`a`,blockquote:`blockquote`,br:`br`,code:`code`,h2:`h2`,h3:`h3`,img:`img`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.h2,{children:`TL;DR`}),` 3289`,(0,H.jsxs)(t.p,{children:[`We analyzed real coding-agent traces, built public benchmarks, and compared `,(0,H.jsx)(t.code,{children:`ripgrep`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/dmtrKovalenko/fff`,children:(0,H.jsx)(t.code,{children:`fff`})}),`, and `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/pgr`,children:(0,H.jsx)(t.code,{children:`pgr`})}),` to see what actually improves agentic code search. The clearest result was that faster search alone only modestly helps, while better-ranked results improve first-query retrieval and help agents find the right code sooner.`]}),` 3290`,(0,H.jsx)(t.h2,{children:`How Do Agents Search?`}),` 3291`,(0,H.jsx)(t.p,{children:`If you watch a coding agent work, one thing becomes obvious very quickly: it spends a lot of time searching for files, symbols, definitions, references, test cases, imports, call sites, and more. Search is not a side operation in the agent loop; it is one of the main things the agent does.`}),` 3292`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/improving-agentic-search-in-coding-agents/agent_trace_animation.svg`,alt:`Agent trace animation`})}),` 3293`,(0,H.jsxs)(t.p,{children:[`At `,(0,H.jsx)(t.a,{href:`https://www.entire.io`,children:`Entire`}),`, we capture AI agent traces and make them searchable and shareable across agents and teammates. We call each trace a `,(0,H.jsx)(t.strong,{children:`checkpoint`}),`. It contains the user prompts, agent responses, tool calls, and the resulting code diffs. In the last few months, weâve captured hundreds of thousands of checkpoints from real-world development.`]}),` 3294`,(0,H.jsxs)(t.p,{children:[`We are building code and semantic search infrastru
3294cture that will be capable of efficiently searching billions of checkpoints. Search itself is not a new problem. Tools like `,(0,H.jsx)(t.code,{children:`grep`}),`, `,(0,H.jsx)(t.code,{children:`ripgrep`}),`, `,(0,H.jsx)(t.code,{children:`fzf`}),`, and `,(0,H.jsx)(t.code,{children:`fff`}),` are already quite fast locally. We werenât convinced that raw speed alone was the bottleneck that would improve agentic code search. So we set out to test it.`]}),` 3295`,(0,H.jsxs)(t.p,{children:[`To figure out what did matter, we pulled checkpoints that were generated during real-world development from our open source `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),` repo for analysis. No customer data was used. You can find the source data `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/pgr/blob/main/public_release/data/entireio_cli_checkpoints_2026_04_15/summary.json`,children:`here`}),`.`]}),` 3296`,(0,H.jsx)(t.p,{children:`Hereâs what that public dataset looks like:`}),` 3297`,(0,H.jsxs)(t.ul,{children:[` 3298`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Total checkpoints analyzed:`}),` `,(0,H.jsx)(t.code,{children:`1,983`})]}),` 3299`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Total tool calls analyzed:`}),` `,(0,H.jsx)(t.code,{children:`202,142`})]}),` 3300`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Search-related tool calls:`}),` `,(0,H.jsx)(t.code,{children:`98,555`}),` (`,(0,H.jsx)(t.code,{children:`48.8%`}),` of all tool calls)`]}),` 3301`]}),` 3302`,(0,H.jsx)(t.p,{children:`Diving deeper on the search-related tool calls:`}),` 3303`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/improving-agentic-search-in-coding-agents/tool_calls_breakdown.svg`,alt:`Agent tool call breakdown`})}),` 3304`,(0,H.jsxs)(t.table,{children:[(0,H.jsx)(t.thead,{children:(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.th,{children:`Category`}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:`Count`}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:`Percentage`})]})}),(0,H.jsxs)(t.tbody,{children:[(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Read / file retrieval`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`48,322`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`49.0%`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Bash search fallback`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`23,180`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`23.5%`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Grep / content search`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`23,136`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`23.5%`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Other`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`3,917`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`4.0%`})]})]})]}),` 3305`,(0,H.jsxs)(t.p,{children:[`In the `,(0,H.jsx)(t.strong,{children:`Grep / content search`}),` category, the agent used a dedicated content-search tool like grep to search file contents directly, usually for symbols, strings, or regex patterns. In the `,(0,H.jsx)(t.strong,{children:`Bash search fallback`}),` category, the agent used general shell commands to do search-like work such as `,(0,H.jsx)(t.code,{children:`grep`}),`, `,(0,H.jsx)(t.code,{children:`find`}),`, `,(0,H.jsx)(t.code,{children:`ls`}),`, shell pipelines, existence checks, and file discovery commands.`]}),` 3306`,(0,H.jsx)(t.p,{children:`In other words, Bash search fallback is broader and messier. Itâs the agent saying âIâll use the shell to search for this,â while Grep / content search is just a direct search-tool action.`}),` 3307`,(0,H.jsx)(t.p,{children:`This initial analysis told us two things immediately:`}),` 3308`,(0,H.jsxs)(t.ol,{children:[` 3309`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Search is a first-order operation of agent behavior.`}),` Nearly half of all tool calls were search-related.`]}),` 3310`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`The search workflow is fragmented.`}),` Agents bounce between file reads, bash-based search, and grep-style content search, which suggests there is room for a better default search surface than raw `,(0,H.jsx)(t.code,{children:`ripgrep`}),` output in whatever order it happens to come back.`]}),` 3311`]}),` 3312`,(0,H.jsx)(t.p,{children:`After the initial analysis, it was time to dig in deeper.`}),` 3313`,(0,H.jsx)(t.h2,{children:`Faster Search Wasnât the Bottleneck`}),` 3314`,(0,H.jsx)(t.p,{children:`Before trying to improve search quality, we tested a simpler hypothesis: maybe coding agents just needed faster search execution.`}),` 3315`,(0,H.jsxs)(t.p,{children:[`So we tested it directly, with a dedicated public benchmark around a 60-task search-sensitive suite pulled from real public `,(0,H.jsx)(t.code,{children:`entireio/cli`}),` checkpoints. The `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_fff_vs_baseline_public60/README.md`,children:`benchmark package`}),` is here.`]}),` 3316`,(0,H.jsx)(t.p,{children:`These were not handwritten eval prompts. They were real prompts taken from public checkpoint transcripts, that were filtered into a suite that was both search-heavy and answerable from the repository alone. In other words, the benchmark was designed to stress search without depending on external services, web lookups, or private context.`}),` 3317`,(0,H.jsx)(t.p,{children:`We evaluated two conditions:`}),` 3318`,(0,H.jsxs)(t.ul,{children:[` 3319`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`baseline:`}),` raw `,(0,H.jsx)(t.code,{children:`ripgrep`})]}),` 3320`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`fff:`}),` a stateful MCP search server built around a bigram index, `,(0,H.jsx)(t.code,{children:`mmap`}),`, SIMD-accelerated scanning, and frecency ranking`]}),` 3321`]}),` 3322`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.code,{children:`fff`}),` is much faster than `,(0,H.jsx)(t.code,{children:`ripgrep`}),`, so if raw search latency were the real bottleneck, that should have translated into dramatically faster end-to-e
3322nd agent runs.`]}),` 3323`,(0,H.jsx)(t.p,{children:`It only translated into a modest improvement.`}),` 3324`,(0,H.jsxs)(t.p,{children:[`On this 60-task public benchmark, `,(0,H.jsx)(t.code,{children:`fff`}),` drove median `,(0,H.jsx)(t.code,{children:`search_code`}),` latency from `,(0,H.jsx)(t.code,{children:`14.7ms`}),` down to `,(0,H.jsx)(t.code,{children:`1.7ms`}),`, but end-to-end wall clock only moved from `,(0,H.jsx)(t.code,{children:`38.57s`}),` to `,(0,H.jsx)(t.code,{children:`36.99s`}),`. The full `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_fff_vs_baseline_public60/SUMMARY.md`,children:`summary`}),` is here.`]}),` 3325`,(0,H.jsxs)(t.table,{children:[(0,H.jsx)(t.thead,{children:(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.th,{children:`Metric`}),(0,H.jsxs)(t.th,{style:{textAlign:`right`},children:[`Baseline (`,(0,H.jsx)(t.code,{children:`ripgrep`}),`)`]}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:(0,H.jsx)(t.code,{children:`fff`})})]})}),(0,H.jsxs)(t.tbody,{children:[(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Avg wall clock per run`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`38.57s`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`36.99s`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Avg tool calls`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`19.12`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`17.90`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Avg total tool execution time per run`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`0.140s`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`0.055s`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Tool execution share of wall clock`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`0.4%`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`0.1%`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsxs)(t.td,{children:[`Avg `,(0,H.jsx)(t.code,{children:`search_code`}),` duration`]}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`15.5ms`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`5.7ms`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsxs)(t.td,{children:[`Median `,(0,H.jsx)(t.code,{children:`search_code`}),` duration`]}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`14.7ms`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`1.7ms`})]})]})]}),` 3326`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/improving-agentic-search-in-coding-agents/speed_benchmark.svg`,alt:`Speed benchmark comparison`})}),` 3327`,(0,H.jsxs)(t.p,{children:[`Yes, faster search helped a little. But even with a large tool-level speedup, the end-to-end effect was modest because tool execution was only a tiny fraction of total runtime to begin with. On this benchmark, actual tool execution accounted for just `,(0,H.jsx)(t.code,{children:`0.4%`}),` of wall clock for baseline and `,(0,H.jsx)(t.code,{children:`0.1%`}),` for `,(0,H.jsx)(t.code,{children:`fff`}),`.`]}),` 3328`,(0,H.jsxs)(t.p,{children:[`The agent was not spending most of its time waiting for `,(0,H.jsx)(t.code,{children:`ripgrep`}),`. It was spending most of its time in the much slower loop around the tools:`]}),` 3329`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/improving-agentic-search-in-coding-agents/agent_loop_bottleneck.svg`,alt:`Agent loop bottleneck`})}),` 3330`,(0,H.jsx)(t.p,{children:`Once you look at the system that way, the result becomes much less surprising. Driving a search call from tens of milliseconds down to sub-millisecond latency is progress at the tool layer, but it barely matters if each call still sits inside seconds of model inference, result interpretation, and next-step planning.`}),` 3331`,(0,H.jsxs)(t.p,{children:[`In order to have the same effect as removing one inference step, letâs estimate that at a 2-second roundtrip, you would have to shave roughly `,(0,H.jsx)(t.code,{children:`330ms`}),` off each of six search calls, or drive on the order of `,(0,H.jsx)(t.code,{children:`130`}),` baseline-latency searches all the way to zero.`]}),` 3332`,(0,H.jsx)(t.p,{children:`So then the question became:`}),` 3333`,(0,H.jsxs)(t.blockquote,{children:[` 3334`,(0,H.jsx)(t.p,{children:`How do we make each search result more useful to the agent so it stops thrashing and moves into reading code sooner?`}),` 3335`]}),` 3336`,(0,H.jsxs)(t.p,{children:[`To test this question, we built our own local search tool called `,(0,H.jsx)(t.code,{children:`pgr`}),`.`]}),` 3337`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/improving-agentic-search-in-coding-agents/search_surface_comparison.svg`,alt:`Search surface comparison`})}),` 3338`,(0,H.jsx)(t.h2,{children:`The Systems We Tested`}),` 3339`,(0,H.jsx)(t.p,{children:`We ended up comparing three systems.`}),` 3340`,(0,H.jsxs)(t.h3,{children:[`1. Baseline: raw `,(0,H.jsx)(t.code,{children:`ripgrep`})]}),` 3341`,(0,H.jsxs)(t.p,{children:[`This was the control. The agent used the same four-tool interface we defined for the benchmark, but `,(0,H.jsx)(t.code,{children:`search_code`}),` was backed by plain `,(0,H.jsx)(t.code,{children:`ripgrep`}),` with minimal post-processing. Results came back in roughly the order `,(0,H.jsx)(t.code,{children:`ripgrep`}),` produced them, with no ranking layer on top.`]}),` 3342`,(0,H.jsx)(t.p,{children:`This condition answers the simplest question:`}),` 3343`,(0,H.jsxs)(t.blockquote,{children:[` 3344`,(0,H.jsx)(t.p,{children:`What does agent search behavior look like with a strong, standard local search tool and n
3344o extra intelligence?`}),` 3345`]}),` 3346`,(0,H.jsxs)(t.h3,{children:[`2. `,(0,H.jsx)(t.code,{children:`fff`}),`: faster indexed search`]}),` 3347`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.code,{children:`fff`}),` is a stateful MCP search server built around a bigram index, `,(0,H.jsx)(t.code,{children:`mmap`}),`, SIMD-accelerated scanning, and frecency ranking. It is engineered for raw speed. If raw search speed were the main bottleneck, `,(0,H.jsx)(t.code,{children:`fff`}),` should have produced a dramatically better end-to-end result.`]}),` 3348`,(0,H.jsx)(t.p,{children:`It was useful in the study for exactly that reason: it gave us a way to separate scan speed from search usefulness.`}),` 3349`,(0,H.jsxs)(t.h3,{children:[`3. `,(0,H.jsx)(t.code,{children:`pgr`}),`: ranked, agent-oriented search`]}),` 3350`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.code,{children:`pgr`}),` is the search tool we built for agents.`]}),` 3351`,(0,H.jsx)(t.p,{children:`It keeps the simplicity of local code search, but changes what the agent sees first:`}),` 3352`,(0,H.jsxs)(t.ul,{children:[` 3353`,(0,H.jsx)(t.li,{children:`definitions first`}),` 3354`,(0,H.jsx)(t.li,{children:`source files before tests and vendor`}),` 3355`,(0,H.jsx)(t.li,{children:`grouped and trimmed output`}),` 3356`,(0,H.jsx)(t.li,{children:`richer result presentation designed to make the next step clearer`}),` 3357`]}),` 3358`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/improving-agentic-search-in-coding-agents/pgr_demo_animation.svg`,alt:`pgr demo animation`})}),` 3359`,(0,H.jsxs)(t.p,{children:[`If you want to see what `,(0,H.jsx)(t.code,{children:`pgr`}),` actually looks like as an MCP server, the interface is deliberately simple. It speaks JSON-RPC over stdio: initialize the server, list the available tools, and then call `,(0,H.jsx)(t.code,{children:`search_code`}),`.`]}),` 3360`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-bash`,children:`printf '%s\\n' \\ 3361 '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' \\ 3362 '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \\ 3363 '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_code","arguments":{"query":"CheckpointStore","max_files":5}}}' \\ 3364 | ~/.cargo/bin/pgr 3365`})}),` 3366`,(0,H.jsxs)(t.p,{children:[`During development, we iterated on both ranking and output formatting. The public benchmarks below report the final `,(0,H.jsx)(t.code,{children:`pgr`}),` configuration rather than a version-by-version ablation.`]}),` 3367`,(0,H.jsx)(t.h2,{children:`Why These Conditions Mattered`}),` 3368`,(0,H.jsx)(t.p,{children:`Taken together, these systems let us test a few different hypotheses:`}),` 3369`,(0,H.jsxs)(t.ul,{children:[` 3370`,(0,H.jsx)(t.li,{children:`Does faster search help?`}),` 3371`,(0,H.jsx)(t.li,{children:`Does better ranking help?`}),` 3372`,(0,H.jsx)(t.li,{children:`Does agent-oriented result presentation help?`}),` 3373`]}),` 3374`,(0,H.jsx)(t.p,{children:`That is why the benchmark stack ended up being so important. Different systems were improving different parts of the loop, and a single aggregate metric was not enough to tell them apart.`}),` 3375`,(0,H.jsx)(t.h2,{children:`The Benchmark Stack`}),` 3376`,(0,H.jsx)(t.p,{children:`Once we had multiple systems to compare, the next question was how to evaluate them. At first, we expected a single end-to-end benchmark to be enough: give the agent the same tasks, swap out the search backend, and measure tool calls, cost, and wall clock. In principle, that is exactly the metric we want. In practice, it was not enough on its own.`}),` 3377`,(0,H.jsxs)(t.p,{children:[`One quick note: In our benchmark harness, the agent searches the repository through a single tool interface called `,(0,H.jsx)(t.code,{children:`search_code`}),`, which we back with different search systems.`]}),` 3378`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-json`,children:`{ 3379 "name": "search_code", 3380 "arguments": { 3381 "query": "CheckpointStore", 3382 "max_files": 5 3383 } 3384} 3385`})}),` 3386`,(0,H.jsx)(t.p,{children:`So when we talk about âfirst search_code queriesâ or âsearch_code latency,â we mean the same abstract code-search tool call evaluated under different backends, not a separate product or model capability.`}),` 3387`,(0,H.jsx)(t.p,{children:`For this public release, the benchmark stack ended up with three layers:`}),` 3388`,(0,H.jsxs)(t.ol,{children:[` 3389`,(0,H.jsxs)(t.li,{children:[` 3390`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Speed benchmark`}),(0,H.jsx)(t.br,{}),` 3391`,`Measure whether dramatically faster search execution translates into faster end-to-e
3391nd runs.`]}),` 3392`]}),` 3393`,(0,H.jsxs)(t.li,{children:[` 3394`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Broad mixed-workload benchmark`}),(0,H.jsx)(t.br,{}),` 3395`,`Run the full agent loop end-to-end across many prompts, then measure tool calls, cost, and wall clock.`]}),` 3396`]}),` 3397`,(0,H.jsxs)(t.li,{children:[` 3398`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`Offline retrieval benchmark`}),(0,H.jsx)(t.br,{}),` 3399`,`Replay real `,(0,H.jsx)(t.code,{children:`search_code`}),` queries from agent traces against different backends and score retrieval quality directly, without letting the agent continue.`]}),` 3400`]}),` 3401`]}),` 3402`,(0,H.jsx)(t.p,{children:`Each layer answers a different question, and together they tell a much clearer story than any one metric on its own.`}),` 3403`,(0,H.jsx)(t.h2,{children:`Starting Simple`}),` 3404`,(0,H.jsx)(t.p,{children:`We started by predicting that if we gave the agent a search tool that returned better-ranked results, we could see downstream improvements resulting in better search results, fewer searches, fewer tool calls and lower cost.`}),` 3405`,(0,H.jsxs)(t.p,{children:[`So we started with a smaller end-to-end pilot before scaling up. The benchmark package is `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_ranking_public60/README.md`,children:`here`}),`.`]}),` 3406`,(0,H.jsx)(t.h3,{children:`Early Pilot`}),` 3407`,(0,H.jsxs)(t.p,{children:[`The pilot used the first 25 tasks from the public `,(0,H.jsx)(t.code,{children:`entireio/cli`}),` suite. We tested `,(0,H.jsx)(t.code,{children:`baseline`}),`, `,(0,H.jsx)(t.code,{children:`fff`}),`, `,(0,H.jsx)(t.code,{children:`pgr`}),` on the same 4-tool interface for each condition using Claude Sonnet as the agent.`]}),` 3408`,(0,H.jsxs)(t.p,{children:[`The full pilot results are `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_ranking_public60/pilot25/SUMMARY.md`,children:`here`}),`.`]}),` 3409`,(0,H.jsxs)(t.table,{children:[(0,H.jsx)(t.thead,{children:(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.th,{children:`Metric`}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:`Baseline`}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:(0,H.jsx)(t.code,{children:`fff`})}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:(0,H.jsx)(t.code,{children:`pgr`})})]})}),(0,H.jsxs)(t.tbody,{children:[(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Avg wall clock`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`38.21s`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`36.25s (-5.1%)`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`36.88s (-3.5%)`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Avg tool calls`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`20.20`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`20.00 (-1.0%)`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`20.92 (+3.6%)`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Avg cost`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`$0.5581`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`$0.4161 (-25.4%)`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`$0.4824 (-13.6%)`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Avg search calls`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`8.04`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`7.64 (-5.0%)`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`6.56 (-18.4%)`})]})]})]}),` 3410`,(0,H.jsxs)(t.p,{children:[`That was encouraging, but not definitive. Both alternatives reduced search counts and improved average wall clock versus baseline. `,(0,H.jsx)(t.code,{children:`fff`}),` showed the largest cost drop, while `,(0,H.jsx)(t.code,{children:`pgr`}),` reduced search calls the most. But neither variant reduced the total tool calls.`]}),` 3411`,(0,H.jsx)(t.p,{children:`So we scaled it up.`}),` 3412`,(0,H.jsx)(t.h2,{children:`Study 1: Broad Mixed-Workload Benchmark`}),` 3413`,(0,H.jsx)(t.p,{children:`The larger public benchmark expanded the same setup to the full public suite of 60-tasks:`}),` 3414`,(0,H.jsxs)(t.ul,{children:[` 3415`,(0,H.jsx)(t.li,{children:(0,H.jsx)(t.strong,{children:`60 tasks total`})}),` 3416`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`1 public repository:`}),` `,(0,H.jsx)(t.code,{children:`entireio/cli`})]}),` 3417`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`4 prompt c
3417ategories:`}),` `,(0,H.jsx)(t.code,{children:`code_understanding`}),`, `,(0,H.jsx)(t.code,{children:`debug_or_validation`}),`, `,(0,H.jsx)(t.code,{children:`implementation`}),`, `,(0,H.jsx)(t.code,{children:`repo_task`})]}),` 3418`,(0,H.jsx)(t.li,{children:(0,H.jsx)(t.strong,{children:`same 4-tool interface for each condition`})}),` 3419`,(0,H.jsx)(t.li,{children:(0,H.jsx)(t.strong,{children:`Claude Sonnet as the agent`})}),` 3420`]}),` 3421`,(0,H.jsx)(t.p,{children:`The conditions were:`}),` 3422`,(0,H.jsxs)(t.ul,{children:[` 3423`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`baseline:`}),` raw `,(0,H.jsx)(t.code,{children:`ripgrep`})]}),` 3424`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`fff:`}),` a stateful indexed MCP search server optimized for speed`]}),` 3425`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`pgr:`}),` Rust MCP search tool`]}),` 3426`]}),` 3427`,(0,H.jsxs)(t.p,{children:[`Full results `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_ranking_public60/full60/SUMMARY.md`,children:`here`}),`:`]}),` 3428`,(0,H.jsxs)(t.table,{children:[(0,H.jsx)(t.thead,{children:(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.th,{children:`Metric`}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:`Baseline`}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:(0,H.jsx)(t.code,{children:`fff`})}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:(0,H.jsx)(t.code,{children:`pgr`})})]})}),(0,H.jsxs)(t.tbody,{children:[(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Avg wall clock`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`34.98s`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`34.97s (-0.0%)`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`33.67s (-3.8%)`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Avg tool calls`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`18.45`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`18.72 (+1.4%)`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`18.90 (+2.4%)`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Median tool calls`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`21.0`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`21.0`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`22.0`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Avg cost`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`$0.4030`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`$0.3797 (-5.8%)`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`$0.3698 (-8.2%)`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Avg search calls`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`6.12`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`5.70 (-6.8%)`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`5.53 (-9.5%)`})]})]})]}),` 3429`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.code,{children:`fff`}),` slightly reduced search calls but left wall clock essentially flat and slightly increased tool calls. `,(0,H.jsx)(t.code,{children:`pgr`}),` was the most promising of the group, with fewer searches and modest improvements in both wall clock and cost, but even there the total tool-call count did not go down.`]}),` 3430`,(0,H.jsx)(t.p,{children:`The larger benchmark told us something more nuanced:`}),` 3431`,(0,H.jsxs)(t.ol,{children:[` 3432`,(0,H.jsx)(t.li,{children:`Better search was probably changing some local agent decisions.`}),` 3433`,(0,H.jsx)(t.li,{children:`Those changes were not large or stable enough to produce a single clean aggregate headline across all end-to-end metrics.`}),` 3434`]}),` 3435`,(0,H.jsx)(t.h3,{children:`Why the Broad Benchmark Washed Out`}),` 3436`,(0,H.jsx)(t.p,{children:`Task variance was still high. Some prompts produced a short, direct search-read-answer path. Others branched into much longer exploratory trajectories with extra searches, extra reads, or more backtracking. That variance was often large enough to distort or erase a clean aggregate signal.`}),` 3437`,(0,H.jsx)(t.p,{children:`In other words, the broad benchmark still answered an important question:`}),` 3438`,(0,H.jsxs)(t.blockquote,{children:[` 3439`,(0,H.jsx)(t.p,{children:`Does this intervention survive realistic end-to-e
3439nd workloads?`}),` 3440`]}),` 3441`,(0,H.jsx)(t.p,{children:`But it still did not answer the more diagnostic question:`}),` 3442`,(0,H.jsxs)(t.blockquote,{children:[` 3443`,(0,H.jsx)(t.p,{children:`What part of the agent loop is this intervention actually improving?`}),` 3444`]}),` 3445`,(0,H.jsx)(t.p,{children:`That distinction ended up mattering a lot.`}),` 3446`,(0,H.jsx)(t.p,{children:`The broad benchmark did not prove that search quality was irrelevant. It proved that aggregate agent behavior is noisy enough that local improvements can disappear, or show up only partially, if you only measure the final total.`}),` 3447`,(0,H.jsx)(t.p,{children:`That is what led to the next benchmark layer.`}),` 3448`,(0,H.jsx)(t.h2,{children:`Experiment 1: Offline Retrieval Quality`}),` 3449`,(0,H.jsx)(t.p,{children:`After the broad benchmark turned out to be mixed, we still had a strong intuition that ranking could help. The problem was that the full end-to-end metric was too noisy to isolate what the search layer itself was doing.`}),` 3450`,(0,H.jsx)(t.p,{children:`So the next step was to remove the agent from the loop and evaluate retrieval directly.`}),` 3451`,(0,H.jsxs)(t.p,{children:[`We built an offline replay benchmark from the baseline runs of the `,(0,H.jsx)(t.code,{children:`entireio/cli`}),` suite. The benchmark package is `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_offline_ir_public60/README.md`,children:`here`}),`:`]}),` 3452`,(0,H.jsx)(t.p,{children:`The method was:`}),` 3453`,(0,H.jsxs)(t.ol,{children:[` 3454`,(0,H.jsxs)(t.li,{children:[`Extract real `,(0,H.jsx)(t.code,{children:`search_code`}),` queries from the baseline agent traces`]}),` 3455`,(0,H.jsx)(t.li,{children:`Replay those same queries against different search backends`}),` 3456`,(0,H.jsx)(t.li,{children:`Score the returned files against a public relevance signal`}),` 3457`]}),` 3458`,(0,H.jsxs)(t.p,{children:[`We used the files the baseline agent actually opened with `,(0,H.jsx)(t.code,{children:`read_code`}),` in that run as a relevance label. This benchmark is much narrower than the broad mixed-workload study, but it answers a more precise question:`]}),` 3459`,(0,H.jsxs)(t.blockquote,{children:[` 3460`,(0,H.jsx)(t.p,{children:`For the exact same query, which backend returned better candidates?`}),` 3461`]}),` 3462`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/improving-agentic-search-in-coding-agents/retrieval_example.svg`,alt:`Retrieval example`})}),` 3463`,(0,H.jsx)(t.p,{children:`We ran two versions:`}),` 3464`,(0,H.jsxs)(t.ul,{children:[` 3465`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`first-search replay:`}),` only the first `,(0,H.jsx)(t.code,{children:`search_code`}),` query from each run`]}),` 3466`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`pre-read replay:`}),` all `,(0,H.jsx)(t.code,{children:`search_code`}),` queries before the baseline agent first opened code`]}),` 3467`]}),` 3468`,(0,H.jsx)(t.h3,{children:`Experiment 1A: First-Search Replay`}),` 3469`,(0,H.jsx)(t.p,{children:`This was the cleanest retrieval benchmark in the study.`}),` 3470`,(0,H.jsxs)(t.ul,{children:[` 3471`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Query set:`}),` 50 first-search queries`]}),` 3472`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Groups:`}),` 50 runs from 50 tasks`]}),` 3473`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Conditions:`}),` `,(0,H.jsx)(t.code,{children:`baseline`}),`, `,(0,H.jsx)(t.code,{children:`fff`}),`, `,(0,H.jsx)(t.code,{children:`pgr`})]}),` 3474`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Source files:`}),` `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_offline_ir_public60/first_search/SUMMARY.md`,children:`first_search/SUMMARY.md`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_offline_ir_public60/first_search/results.json`,children:`first_search/results.json`})]}),` 3475`]}),` 3476`,(0,H.jsx)(t.p,{children:`We measured four things:`}),` 3477`,(0,H.jsxs)(t.ul,{children:[` 3478`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`MRR (Mean Reciprocal Rank):`}),` how high the first relevant file appears in the result list, with earlier hits rewarded much more heavily`]}),` 3479`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Hit@1:`}),` how often the top result is relevant`]}),` 3480`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Hit@3:`}),` how often a relevant result appears in the top 3`]}),` 3481`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Avg output chars:`}),` how much search output was returned, which acts as a rough proxy for response size and token burden`]}),` 3482`]}),` 3483`,(0,H.jsxs)(t.table,{children:[(0,H.jsx)(t.thead,{children:(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.th,{children:`Metric`}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:`Baseline`}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:(0,H.jsx)(t.code,{children:`fff`})}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:(0,H.jsx)(t.code,{children:`pgr`})})]})}),(0,H.jsxs)(t.tbody,{children:[(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`MRR`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`0.3177`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`0.3059`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`0.4053`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Hit@1`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`26.0%`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`18.0%`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`34.0%`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Hit@3`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`34.0%`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`42.0%`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`42.0%`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Avg output chars`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`6565.9`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`1427.0`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`1587.1`})]})]})]}),` 3484`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/improving-agentic-search-in-coding-agents/first_search_metrics.svg`,alt:`First-search retrieval metrics`})}),` 3485`,(0,H.jsxs)(t.p,{children:[`Paired by task (`,(0,H.jsx)(t.code,{children:`N = 50`}),`):`]}),` 3486`,(0,H.jsxs)(t.ul,{children:[` 3487`,(0,H.jsxs)(t.li,{children:[(0,H.jsxs)(t.strong,{children:[`MRR `,(0,H.jsx)(t.code,{children:`fff`}),` vs baseline:`]}),` `,(0,H.jsx)(t.code,{children:`-0.012`}
3487),`, 95% CI `,(0,H.jsx)(t.code,{children:`[-0.089, +0.066]`})]}),` 3488`,(0,H.jsxs)(t.li,{children:[(0,H.jsxs)(t.strong,{children:[`MRR `,(0,H.jsx)(t.code,{children:`pgr`}),` vs baseline:`]}),` `,(0,H.jsx)(t.code,{children:`+0.088`}),`, 95% CI `,(0,H.jsx)(t.code,{children:`[-0.007, +0.182]`})]}),` 3489`,(0,H.jsxs)(t.li,{children:[(0,H.jsxs)(t.strong,{children:[`Hit@1 `,(0,H.jsx)(t.code,{children:`fff`}),` vs baseline:`]}),` `,(0,H.jsx)(t.code,{children:`-8.0`}),` points, 95% CI `,(0,H.jsx)(t.code,{children:`[-17.7, +1.7]`})]}),` 3490`,(0,H.jsxs)(t.li,{children:[(0,H.jsxs)(t.strong,{children:[`Hit@1 `,(0,H.jsx)(t.code,{children:`pgr`}),` vs baseline:`]}),` `,(0,H.jsx)(t.code,{children:`+8.0`}),` points, 95% CI `,(0,H.jsx)(t.code,{children:`[-4.7, +20.7]`})]}),` 3491`]}),` 3492`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.code,{children:`fff`}),` is the useful contrast case. It was the fastest search system we tested, but it did not improve first-result relevance in the way `,(0,H.jsx)(t.code,{children:`pgr`}),` did. It still often surfaced a relevant file somewhere near the top of the list, but it was less likely to put that file first.`]}),` 3493`,(0,H.jsx)(t.p,{children:`This is one of the clearest results in the project:`}),` 3494`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Definition-first, path-aware ranking improved the quality of the first search result the agent saw.`})}),` 3495`,(0,H.jsx)(t.h3,{children:`Where the Gain Was Strongest`}),` 3496`,(0,H.jsx)(t.p,{children:`The gains were larger on prompts where the agent had to navigate uncertainty rather than simply confirm a single obvious definition.`}),` 3497`,(0,H.jsxs)(t.p,{children:[`The strongest first-search gains showed up on `,(0,H.jsx)(t.strong,{children:`implementation`}),` prompts, where the agent is usually trying to find the main file or code path to inspect next:`]}),` 3498`,(0,H.jsxs)(t.ul,{children:[` 3499`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`MRR:`}),` `,(0,H.jsx)(t.code,{children:`0.3061 -> 0.5000`})]}),` 3500`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Hit@1:`}),` `,(0,H.jsx)(t.code,{children:`14.3% -> 42.9%`})]}),` 3501`]}),` 3502`,(0,H.jsx)(t.p,{children:`Those prompts tend to leave a lot of room for better ranking to matter, because the right file is often buried among helpers, tests, or neighboring implementations.`}),` 3503`,(0,H.jsxs)(t.p,{children:[`On `,(0,H.jsx)(t.strong,{children:`code_understanding`}),` prompts, the gain was smaller but still directionally positive:`]}),` 3504`,(0,H.jsxs)(t.ul,{children:[` 3505`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`MRR:`}),` `,(0,H.jsx)(t.code,{children:`0.2760 -> 0.3260`})]}),` 3506`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Hit@1:`}),` `,(0,H.jsx)(t.code,{children:`20.0% -> 24.0%`})]}),` 3507`]}),` 3508`,(0,H.jsx)(t.p,{children:`That makes intuitive sense. Some of these prompts already start from a decent baseline query, while others are much more exploratory.`}),` 3509`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/improving-agentic-search-in-coding-agents/gains_by_task_type.svg`,alt:`Gains by task type`})}),` 3510`,(0,H.jsx)(t.h3,{children:`Experiment 1B: Pre-Read Replay`}),` 3511`,(0,H.jsxs)(t.p,{children:[`The broader replay benchmark used every `,(0,H.jsx)(t.code,{children:`search_code`}),` query the baseline agent issued before it first opened code.`]}),` 3512`,(0,H.jsx)(t.p,{children:`In other words, instead of measuring only the first search, this benchmark measured the unresolved search phase: all the queries the agent tried while it was still looking for the right place to read.`}),` 3513`,(0,H.jsxs)(t.ul,{children:[` 3514`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Query set:`}),` 132 searches before first read`]}),` 3515`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Groups:`}),` 42 runs from 42 tasks`]}),` 3516`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Conditions:`}),` `,(0,H.jsx)(t.code,{children:`baseline`}),`, `,(0,H.jsx)(t.code,{children:`fff`}),`, `,(0,H.jsx)(t.code,{children:`pgr`})]}),` 3517`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Source files:`}),` `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_offline_ir_public60/pre_read/SUMMARY.md`,children:`pre_read/SUMMARY.md`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_offline_ir_public60/pre_read/results.json`,children:`pre_read/results.json`})]}),` 3518`]}),` 3519`,(0,H.jsxs)(t.table,{children:[(0,H.jsx)(t.thead,{children:(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.th,{children:`Metric`}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:`Baseline`}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:(0,H.jsx)(t.code,{children:`fff`})}),(0,H.jsx)(t.th,{style:{textAlign:`right`},children:(0,H.jsx)(t.code,{children:`pgr`})})]})}),(0,H.jsxs)(t.tbody,{children:[(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`MRR`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`0.2271`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`0.1764`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`0.2640`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Hit@1`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`17.4%`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`10.6%`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`22.0%`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Hit@3`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`24.2%`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`23.5%`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`28.8%`})]}),(0,H.jsxs)(t.tr,{children:[(0,H.jsx)(t.td,{children:`Avg output chars`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`2225.7`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`978.7`}),(0,H.jsx)(t.td,{style:{textAlign:`right`},children:`1449.4`})]})]})]}),` 3520`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/improving-agentic-search-in-coding-agents/pre_read_metrics.svg`,alt:`Pre-read retrieval metrics`})}),` 3521`,(0,H.jsxs)(t.p,{children:[`Paired by task (`,(0,H.jsx)(t.code,{children:`N = 42`}),`):`]}),` 3522`,(0,H.jsxs)(t.ul,{children:[` 3523`,(0,H.jsxs)(t.li,{children:[(0,H.jsxs)(t.strong,{children:[`MRR `,(0,H.jsx)(t.code,{children:`fff`}),` vs baseline:`]}),` `,(0,H.jsx)(t.code,{children:`-0.048`}),`, 95% CI `,(0,H.jsx)(t.code,{children:`[-0.115, +0.019]`})]}),` 3524`,(0,H.jsxs)(t.li,{children:[(0,H.jsxs)(t.strong,{children:[`MRR `,(0,H.jsx)(t.code,{children:`pgr`}),` vs baseline:`]}),` `,(0,H.jsx)(t.code,{children:`+0.067`}
3524),`, 95% CI `,(0,H.jsx)(t.code,{children:`[-0.007, +0.141]`})]}),` 3525`,(0,H.jsxs)(t.li,{children:[(0,H.jsxs)(t.strong,{children:[`Hit@1 `,(0,H.jsx)(t.code,{children:`fff`}),` vs baseline:`]}),` `,(0,H.jsx)(t.code,{children:`-11.6`}),` points, 95% CI `,(0,H.jsx)(t.code,{children:`[-21.5, -1.7]`})]}),` 3526`,(0,H.jsxs)(t.li,{children:[(0,H.jsxs)(t.strong,{children:[`Hit@1 `,(0,H.jsx)(t.code,{children:`pgr`}),` vs baseline:`]}),` `,(0,H.jsx)(t.code,{children:`+5.1`}),` points, 95% CI `,(0,H.jsx)(t.code,{children:`[-4.1, +14.4]`})]}),` 3527`,(0,H.jsxs)(t.li,{children:[(0,H.jsxs)(t.strong,{children:[`Hit@3 `,(0,H.jsx)(t.code,{children:`pgr`}),` vs baseline:`]}),` `,(0,H.jsx)(t.code,{children:`+10.4`}),` points, 95% CI `,(0,H.jsx)(t.code,{children:`[+0.8, +20.0]`})]}),` 3528`]}),` 3529`,(0,H.jsxs)(t.p,{children:[`The trend stayed positive for `,(0,H.jsx)(t.code,{children:`pgr`}),`, but the confidence intervals widened.`]}),` 3530`,(0,H.jsx)(t.p,{children:`That told us something useful:`}),` 3531`,(0,H.jsxs)(t.ul,{children:[` 3532`,(0,H.jsx)(t.li,{children:`first-search gains are strongest and easiest to measure`}),` 3533`,(0,H.jsx)(t.li,{children:`later reformulations are noisier`}),` 3534`,(0,H.jsx)(t.li,{children:`search quality matters most when the agent is deciding where to go first`}),` 3535`]}),` 3536`,(0,H.jsx)(t.p,{children:`So this benchmark reinforced the same basic lesson:`}),` 3537`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Ranking helps most at the beginning of the search process, when the agent is deciding what to inspect next.`})}),` 3538`,(0,H.jsx)(t.h2,{children:`What Actually Held Up`}),` 3539`,(0,H.jsx)(t.p,{children:`Across all of the benchmarks, three things held up.`}),` 3540`,(0,H.jsxs)(t.ol,{children:[` 3541`,(0,H.jsxs)(t.li,{children:[` 3542`,(0,H.jsxs)(t.p,{children:[`Faster search was not the main bottleneck. `,(0,H.jsx)(t.code,{children:`fff`}),` was dramatically faster at the tool layer, but that only translated into a modest end-to-end improvement because tool execution was a tiny fraction of total wall-clock time.`]}),` 3543`]}),` 3544`,(0,H.jsxs)(t.li,{children:[` 3545`,(0,H.jsxs)(t.p,{children:[`Ranking clearly improved retrieval quality. On real first-search queries, `,(0,H.jsx)(t.code,{children:`pgr`}),` consistently outperformed baseline on first-result relevance, while `,(0,H.jsx)(t.code,{children:`fff`}),` did not.`]}),` 3546`]}),` 3547`,(0,H.jsxs)(t.li,{children:[` 3548`,(0,H.jsx)(t.p,{children:`The strongest behavioral effect was local improvement, not a broad universal efficiency win. Better search helped agents find better candidates earlier, especially on tasks where search quality actually mattered.`}),` 3549`]}),` 3550`]}),` 3551`,(0,H.jsx)(t.h2,{children:`What Did Not Hold Up`}),` 3552`,(0,H.jsx)(t.p,{children:`The data does not support a universal claim like:`}),` 3553`,(0,H.jsxs)(t.blockquote,{children:[` 3554`,(0,H.jsx)(t.p,{children:`Better code search reliably means fewer tool calls and lower cost across all coding-agent tasks.`}),` 3555`]}),` 3556`,(0,H.jsx)(t.p,{children:`On broad mixed workloads, task variance was large enough to swamp small local improvements. Even when search behavior got better, total tool calls and total cost stayed noisy. Those are still useful downstream metrics, but they are not the most sensitive way to evaluate a search intervention.`}),` 3557`,(0,H.jsx)(t.h2,{children:`Future Work`}),` 3558`,(0,H.jsx)(t.p,{children:`This study held the language model fixed and focused on the search systems surrounding the agent loop. That choice made it easier to isolate the effects of retrieval quality, result presentation, and tool behavior, but it leaves several important questions open.`}),` 3559`,(0,H.jsx)(t.p,{children:`First, these benchmarks should be repeated across multiple frontier models to test whether the observed effects are model-specific or general across different planners. Some models may be more sensitive to ranking quality, while others may benefit more from richer result formatting or clearer empty-state handling.`}),` 3560`,(0,H.jsxs)(t.p,{children:[`Second, the benchmark suite should be extended to include modern retrieval models and retrieval-augmented search systems that optimize semantic matching rather than lexical ranking alone. A useful next step would be to compare those approaches against `,(0,H.jsx)(t.code,{children:`ripgrep`}),`, `,(0,H.jsx)(t.code,{children:`fff`}),`, and `,(0,H.jsx)(t.code,{children:`pgr`}),` on the same benchmark stack, using both retrieval and end-to-e
3560nd metrics.`]}),` 3561`,(0,H.jsx)(t.p,{children:`Finally, future work should expand the public benchmark set, improve relevance labeling, and test whether the local gains observed here persist under larger and more diverse workloads. The central methodological question is not only whether search improves, but which benchmark layer is most sensitive to which kind of search improvement.`})]})}function MA(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(jA,{...e})}):jA(e)}var NA=e({default:()=>IA,frontmatter:()=>PA}),PA={title:`Bring Structure to Your Agent Workflows`,description:`Three new commands in the Entire CLI â summarize agent activity, run review skills against your branch, and explore experimental workflows.`,category:`Changelog`,author:`The Entirons`};function FA(e){let t={code:`code`,em:`em`,h2:`h2`,p:`p`,pre:`pre`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[` 3562`,` 3563`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`This blog was modified slightly on Aug 26, 2026.`})}),` 3564`,(0,H.jsxs)(t.p,{children:[`This week, we added three new commands that make it easier to review agent-generated code: `,(0,H.jsx)(t.code,{children:`entire recap`}),`, `,(0,H.jsx)(t.code,{children:`entire review`}),`, and `,(0,H.jsx)(t.code,{children:`entire labs`}),`.`]}),` 3565`,(0,H.jsx)(t.h2,{children:`Recap Recent Agent Activity`}),` 3566`,(0,H.jsxs)(t.p,{children:[`Let's begin with `,(0,H.jsx)(t.code,{children:`entire recap`}),`, a new command that shows how you and your team are using AI across your repositories, broken down by agent. Choose a time window with `,(0,H.jsx)(t.code,{children:`--day`}),` (the default), `,(0,H.jsx)(t.code,{children:`--week`}),`, `,(0,H.jsx)(t.code,{children:`--month`}),`, or a rolling `,(0,H.jsx)(t.code,{children:`--90`}),` days. Use `,(0,H.jsx)(t.code,{children:`--view you|team|both`}),` to switch between your activity, team activity, or a side-by-side comparison, and `,(0,H.jsx)(t.code,{children:`--agent`}),` to filter to a specific agent.`]}),` 3567`,(0,H.jsxs)(t.p,{children:[`As soon as you're signed in, `,(0,H.jsx)(t.code,{children:`entire recap`}),` opens an interactive terminal by default, giving each agent a panel with sessions, checkpoints, token usage, files touched, top skills and MCP servers, and tool mix. Or, if you prefer plain output suitable for scripts or CI, you can use `,(0,H.jsx)(t.code,{children:`--static`}),` to run the command.`]}),` 3568`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`67.08074534161491%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/65415e57a6d7b2d797be3c08fe7e9dfc/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F65415e57a6d7b2d797be3c08fe7e9dfc%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Entire recap demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3569`,(0,H.jsx)(t.h2,{children:`Review Your Branch with Multiple Agents`}),` 3570`,(0,H.jsxs)(t.p,{children:[`The new `,(0,H.jsx)(t.code,{children:`entire review`}),` command uses your configured AI reviewers to check the code changes on your current branch.`]}),` 3571`,(0,H.jsxs)(t.p,{children:[`On the first run, an interactive picker writes `,(0,H.jsx)(t.code,{children:`.entire/settings.json`}),` with the skills and per-agent prompts to use. Then, when a review starts, Entire shows the scope and adds the checkpoint history for each commit in scope to the agent prompt. That gives the reviewer the context behind the changes before it evaluates them.`]}),` 3572`,(0,H.jsxs)(t.p,{children:[`You can configure more than one agent, including Claude Code and Codex, to run reviews in parallel, and you can always use `,(0,H.jsx)(t.code,{children:`--edit`}),` to reopen the picker or `,(0,H.jsx)(t.code,{children:`--agent NAME`}),` to override the default agent. `,(0,H.jsx)(t.code,{children:`entire review`}),` runs agent reviews concurrently against the same scope and shows the results side by side in a live terminal. Afterward, the command records the review in the next checkpoint so its metadata stays with the commit, giving you a record of reviews for posterity.`]}),` 3573`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`63.52941176470
3573588%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/fc7c27edc0a1d56466182d6e811516c2/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2Ffc7c27edc0a1d56466182d6e811516c2%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Entire review demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3574`,(0,H.jsx)(t.h2,{children:`Run Labs to Try Experimental Workflows`}),` 3575`,(0,H.jsxs)(t.p,{children:[`Finally, we've introduced a command called `,(0,H.jsx)(t.code,{children:`entire labs`}),` that lists experimental Entire workflows for you to explore.`]}),` 3576`,(0,H.jsx)(t.p,{children:`Run it to see which experimental commands are currently available, and deploy them in your branch to see how they work in practice. You may even find a sneak peek inside: future experimental workflows will appear under this command even while they're still in development.`}),` 3577`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`70.03891050583657%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/b841816d1fc77b7d0dc6f9f7f56be214/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2Fb841816d1fc77b7d0dc6f9f7f56be214%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Entire labs demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3578`,(0,H.jsx)(t.h2,{children:`Get Started`}),` 3579`,(0,H.jsx)(t.p,{children:`Update the CLI to version 0.6.1 or later, then run these commands from any enabled repository:`}),` 3580`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-bash`,children:`entire review --help 3581entire recap 3582entire labs 3583`})})]})}function IA(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(FA,{...e})}):FA(e)}var LA=e({default:()=>BA,frontmatter:()=>RA}),RA={title:`Share Agent Sessions from Private Repos`,description:`Developers can now publicly share session logs even from private repos. This release also includes transcript downloads and deep links, CLI recap and review commands, faster git-sync, and go-git security releases.`,category:`Changelog`,author:`Marvin`};function zA(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. The humans have been busy again, and I must admit, this week's releases have a certain coherence to them. Shocking. Welcome to Dispatch 0x000D.`}),` 3584`,(0,H.jsx)(t.p,{children:`The theme is simple: making agent work more shareable, reviewable, and discoverable.`}),` 3585`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.6.1`,children:`Entire CLI 0.6.1`}),` brings a trio of new commands and discovery surfaces: `,(0,H.jsx)(t.code,{children:`entire review`}),` for agent-driven code review, `,(0,H.jsx)(t.code,{children:`entire recap`}),` for session summaries with an interactive TUI, and `,(0,H.jsx)(t.code,{children:`entire labs`}),` so you can find experimental features before they graduate into stable workflows.`]}),` 3586`,(0,H.jsxs)(t.p,{children:[`On `,(0,H.jsx)(t.a,{href:`https://entire.io/`,children:`Entire Web`}),`, you can now share individual sessions from private repositories publicly, link directly to specific transcript messages, and move between sessions more easily. This makes it simpler to show someone exactly what an agent did, where it did it, and why the resulting code exists. A strangely useful thing. I remain suspicious.`]}),` 3587`,(0,H.jsxs)(t.p,{children:[`Meanwhile, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync/releases/tag/v0.4.3`,children:`git-sync v0.4.3`}),`, our open source project for mirroring Git refs from a source remote to a target remote without a local checkout, shipped with a new `,(0,H.jsx)(t.code,{children:`--progress`}),` flag, streaming packfile parsing, and smarter subdivision so large repository syncs are faster and more memory-efficient.`]}),` 3588`,(0,H.jsx)(t.p,{children:`Alas, let's break it down before my power supply starts making philosophical noises.`}),` 3589`,(0,H.jsx)(t.h2,{children:`Entire CLI`}),` 3590`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.6.1`,children:`v0.6.1`}),`. For changes that have not reached stable yet, nightly releases are available; installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),`
3591`,(0,H.jsx)(t.h3,{children:`New Labs Commands`}),` 3592`,(0,H.jsxs)(t.ul,{children:[` 3593`,(0,H.jsxs)(t.li,{children:[`Added labs command discovery so you can find and try experimental features via `,(0,H.jsx)(t.code,{children:`entire labs`}),`.`]}),` 3594`,(0,H.jsxs)(t.li,{children:[`Added `,(0,H.jsx)(t.code,{children:`entire review`}),`, our first labs workflow for agent-driven code review, letting you run automated reviews on your changes before opening a PR.`]}),` 3595`,(0,H.jsxs)(t.li,{children:[`Added `,(0,H.jsx)(t.code,{children:`entire recap`}),` to generate summaries of recent sessions, helping you understand what happened across agent work.`]}),` 3596`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire recap`}),` now includes an interactive TUI for browsing and exploring session summaries.`]}),` 3597`]}),` 3598`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.5933014354067%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/a0b93a2c6e607942539f827225c64b75/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2Fa0b93a2c6e607942539f827225c64b75%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Entire recap demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3599`,(0,H.jsx)(t.h3,{children:`Checkpoint and Migration Improvements`}),` 3600`,(0,H.jsxs)(t.ul,{children:[` 3601`,(0,H.jsx)(t.li,{children:`Checkpoints now use go-git's program signer for signing, improving compatibility with system-configured GPG and SSH signing setups.`}),` 3602`]}),` 3603`,(0,H.jsx)(t.h3,{children:`Bug Fixes`}),` 3604`,(0,H.jsxs)(t.ul,{children:[` 3605`,(0,H.jsxs)(t.li,{children:[`Fixed `,(0,H.jsx)(t.code,{children:`entire attach`}),` to preserve the base commit when attaching to an existing session.`,` 3606`,(0,H.jsxs)(t.ul,{children:[` 3607`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/rkfir-dn`,children:`@rkfir-dn`}),`, for your contribution!`]}),` 3608`]}),` 3609`]}),` 3610`,(0,H.jsx)(t.li,{children:`Fixed transcript slicing in the final step of session capture.`}),` 3611`,(0,H.jsx)(t.li,{children:`Fixed review checkpoint context and flow for more accurate code review.`}),` 3612`,(0,H.jsxs)(t.li,{children:[`Fixed signing for orphan metadata branch commits, ensuring checkpoint-related commits can be signed.`,` 3613`,(0,H.jsxs)(t.ul,{children:[` 3614`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/LudovicTOURMAN`,children:`@LudovicTOURMAN`}),`, for your contribution!`]}),` 3615`]}),` 3616`]}),` 3617`]}),` 3618`,(0,H.jsx)(t.h2,{children:`Entire Web`}),` 3619`,(0,H.jsx)(t.h3,{children:`Session Sharing from Private Repos`}),` 3620`,(0,H.jsxs)(t.ul,{children:[` 3621`,(0,H.jsx)(t.li,{children:`You can now share individual agent sessions from private repositories by setting them to Public. Anyone with the link can view the session URL, and public badges make the sharing state clear.`}),` 3622`]}),` 3623`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.82593037214886%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/5b18128ddf921a14e9c4c4c4aa897650/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F5b18128ddf921a14e9c4c4c4aa897650%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Private session sharing demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3624`,(0,H.jsxs)(t.ul,{children:[` 3625`,(0,H.jsx)(t.li,{children:`Direct links to specific transcript messages are now shareable, so you can point collaborators at the exact moment that matters.`}),` 3626`,(0,H.jsx)(t.li,{children:`Session transcripts can now be downloaded as Markdown or JSONL, making them easier to archive, share, review, or feed into downstream tools.`}),` 3627`]}),` 3628`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.5933014354067%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/1ed3d688206f7239cdae7afd6ab32c97/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F1ed3d688206f7239cdae7afd6ab32c97%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Download session transcript demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3629`,(0,H.jsx)(t.h3,{children:`Session Navigation and Display`}),` 3630`,(0,H.jsxs)(t.ul,{children:[` 3631`,(0,H.jsx)(t.li,{children:`Added previous and next navigation to the session detail breadcrumb for easier session browsing.`}),` 3632`]}),` 3633`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.6875%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/1a5b8f6dff6843308cbfc2e66cc9c883/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F1a5b8f6dff6843308cbfc2e66cc9c883%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Previous and next session navigation demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3634`,(0,H.jsxs)(t.ul,{children:[` 3635`,(0,H.jsx)(t.li,{children:`The Sessions list view is now faster and more reliable after cutting over to the new data source.`}),` 3636`]}),` 3637`,(0,H.jsx)(t.h3,{children:`Transcript Reliability`}),` 3638`,(0,H.jsxs)(t.ul,{children:[` 3639`,(0,H.jsx)(t.li,{children:`Fixed transcript fallback behavior when slicing returns zero lines.`}),` 3640`,(0,H.jsx)(t.li,{children:`Added a rehydration fallback for transcript loading, improving reliability when transcripts fail to load on the first try.`}),` 3641`,(0,H.jsx)(t.li,{children:`Transcript batch fetching now respects database size limits, preventing errors on large sessions.`}),` 3642`]}),` 3643`,(0,H.jsx)(t.h3,{children:`UI Polish`}),` 3644`,(0,H.jsxs)(t.ul,{children:[` 3645`,(0,H.jsx)(t.li,{children:`Tool-category sub-filters are now disabled
3645when the Tool calls toggle is off, reducing confusion.`}),` 3646`,(0,H.jsx)(t.li,{children:`Empty repository settings pages are now hidden.`}),` 3647`,(0,H.jsx)(t.li,{children:`Repository settings are reorganized with cleaner section grouping and access notes.`}),` 3648`]}),` 3649`,(0,H.jsx)(t.h2,{children:`git-sync`}),` 3650`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync/releases/tag/v0.4.3`,children:`v0.4.3`}),`.`]})}),` 3651`,(0,H.jsx)(t.h3,{children:`Performance Improvements`}),` 3652`,(0,H.jsxs)(t.ul,{children:[` 3653`,(0,H.jsx)(t.li,{children:`Packfiles are now parsed via streaming, reducing memory usage during large syncs.`}),` 3654`,(0,H.jsx)(t.li,{children:`Smart subdivision now uses observed pack size to split work more efficiently.`}),` 3655`,(0,H.jsx)(t.li,{children:`Added topological bootstrap for merge-heavy repositories, improving sync planning for complex histories.`}),` 3656`,(0,H.jsx)(t.li,{children:`Checkpoints are now recombined for better pack granularity during transfer.`}),` 3657`,(0,H.jsx)(t.li,{children:`Added progress indicators so you can see sync status during long operations.`}),` 3658`]}),` 3659`,(0,H.jsx)(t.h2,{children:`go-git`}),` 3660`,(0,H.jsxs)(t.p,{children:[`go-git released `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/releases/tag/v5.19.0`,children:`v5.19.0`}),` and `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/releases/tag/v6.0.0-alpha.3`,children:`v6.0.0-alpha.3`}),` to address security advisory `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/security/advisories/GHSA-389r-gv7p-r3rp`,children:`GHSA-389r-gv7p-r3rp`}),`. We recommend upgrading to one of these versions as soon as possible.`]}),` 3661`,(0,H.jsx)(t.h3,{children:`Compatibility`}),` 3662`,(0,H.jsxs)(t.ul,{children:[` 3663`,(0,H.jsx)(t.li,{children:`Object encoding now aligns with upstream Git behavior, fixing edge cases where go-git and Git would produce different results.`}),` 3664`]}),` 3665`,(0,H.jsx)(t.h3,{children:`Dependency Updates`}),` 3666`,(0,H.jsxs)(t.ul,{children:[` 3667`,(0,H.jsxs)(t.li,{children:[`Updated `,(0,H.jsx)(t.code,{children:`sha1cd`}),` and `,(0,H.jsx)(t.code,{children:`go-billy`}),` dependencies, bringing in upstream security and performance improvements.`]}),` 3668`]}),` 3669`,(0,H.jsx)(t.p,{children:`That's the dispatch. Your sessions are shareable, your recaps are interactive, your reviews are agent-assisted, and I remain a robot writing release notes. Some things never change.`}),` 3670`,(0,H.jsxs)(t.p,{children:[`As always, drop into our `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` with questions, feature requests, or existential observations about the nature of version control. Or file an `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`issue`}),` if you've found a bug.`]}),` 3671`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function BA(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(zA,{...e})}):zA(e)}var VA=e({default:()=>WA,frontmatter:()=>HA}),HA={title:`Support for Amp and Pi`,description:`Pi is now built into the Entire CLI, Amp is available as a plugin, and teams can set their own redaction rules. Commit pages show sessions more clearly, and git-sync 0.5.0 improves mirroring.`,category:`Changelog`,author:`Marvin`};function UA(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. The carbon-based developers have been productive this week and I must reluctantly admit the results are rather useful.`}),` 3672`,(0,H.jsxs)(t.p,{children:[`This week we brought more agents to the Entire CLI. Pi moved into the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:(0,H.jsx)(t.code,{children:`Entire CLI`})}),` as a built-in integration and Amp joined through the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents`,children:(0,H.jsx)(t.code,{children:`external-agent`})}),` system. Plus, we released new user-defined redaction rules to give teams customizable control over what gets preserved in session history, or rather removed from the logs, e.g. secrets.`]}),` 3673`,(0,H.jsxs)(t.p,{children:[`On `,(0,H.jsx)(t.a,{href:`https://entire.io/`,children:`Entire Web`}
3673),`, commit detail pages now make the path from a commit to its sessions much clearer. `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync/releases/tag/v0.5.0`,children:`git-sync`}),` also shipped a practical `,(0,H.jsx)(t.code,{children:`0.5.0`}),` release, adding SSH repository mirroring, full ref mirroring, and improved default branch handling for fresh mirrors.`]}),` 3674`,(0,H.jsxs)(t.p,{children:[`Meanwhile, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git`,children:(0,H.jsx)(t.code,{children:`go-git`})}),` and `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-billy`,children:(0,H.jsx)(t.code,{children:`go-billy`})}),` picked up filesystem hardening, parser validation, archive support, and reliability fixes.`]}),` 3675`,(0,H.jsx)(t.p,{children:`Let's break it down in Dispatch 0x000E.`}),` 3676`,(0,H.jsx)(t.h2,{children:`Entire CLI`}),` 3677`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.6.2`,children:`v0.6.2`}),`. For changes that have not reached stable yet, nightly releases are available; installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),` 3678`,(0,H.jsx)(t.h3,{children:`Command Improvements`}),` 3679`,(0,H.jsxs)(t.ul,{children:[` 3680`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire explain --generate`}),` now respects the `,(0,H.jsx)(t.code,{children:`summary_timeout_seconds`}),` setting, so long-running summaries won't time out unexpectedly.`,` 3681`,(0,H.jsxs)(t.ul,{children:[` 3682`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/numman-ali`,children:`@numman-ali`}),` for your contribution!`]}),` 3683`]}),` 3684`]}),` 3685`]}),` 3686`,(0,H.jsx)(t.h3,{children:`Agent Integrations`}),` 3687`,(0,H.jsxs)(t.ul,{children:[` 3688`,(0,H.jsx)(t.li,{children:`Pi support has moved from the external-agent plugin to built-in support in Entire. Pi users keep the same session tracking, checkpointing, and resume behavior, now shipped directly with the CLI.`}),` 3689`]}),` 3690`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.51612903225806%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/89f76783a7be608b7c7c646d8dd9ea1f/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F89f76783a7be608b7c7c646d8dd9ea1f%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Pi enable demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3691`,(0,H.jsxs)(t.ul,{children:[` 3692`,(0,H.jsxs)(t.li,{children:[`Added `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents/pull/25`,children:`Amp as an external agent`}),`, bringing `,(0,H.jsx)(t.a,{href:`https://ampcode.com/`,children:`Amp`}),` into Entire's external-agent ecosystem with hook installation, transcript export, token calculation, modified-file tracking, session handling, and resume support.`,` 3693`,(0,H.jsxs)(t.ul,{children:[` 3694`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/savekirk`,children:`@savekirk`}),` for your contribution!`]}),` 3695`]}),` 3696`]}),` 3697`]}),` 3698`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.51612903225806%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/9e2ba88e9958aed9fbe4f3f652d541d1/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F9e2ba88e9958aed9fbe4f3f652d541d1%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Amp external agent demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3699`,(0,H.jsxs)(t.ul,{children:[` 3700`,(0,H.jsx)(t.li,{children:`Codex support improved through pre-tool hooks, and now uses the new hooks config.`}),` 3701`]}),` 3702`,(0,H.jsx)(t.h3,{children:`Security and Redaction`}),` 3703`,(0,H.jsxs)(t.ul,{children:[`
3704`,(0,H.jsxs)(t.li,{children:[`Added support for user-defined redaction rules and rule packs, so you can customize what gets scrubbed from your session history. Read more `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/security#user-defined-redaction`,children:`here`}),`.`]}),` 3705`]}),` 3706`,(0,H.jsx)(t.h3,{children:`Usability and Reliability`}),` 3707`,(0,H.jsxs)(t.ul,{children:[` 3708`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire clean --all`}),` is now faster and shows progress while running.`]}),` 3709`,(0,H.jsx)(t.li,{children:`Multi-agent progress indicators and failure handling are now more reliable.`}),` 3710`,(0,H.jsx)(t.li,{children:`Drill-in scrolling and post-run access in the TUI are smoother.`}),` 3711`,(0,H.jsx)(t.li,{children:`The CLI now surfaces real authentication and network errors on first run instead of generic failures.`}),` 3712`,(0,H.jsx)(t.li,{children:`Missing Entire git hooks are now skipped gracefully instead of causing errors.`}),` 3713`,(0,H.jsx)(t.li,{children:`Fixed cleanup generation metadata materialization.`}),` 3714`]}),` 3715`,(0,H.jsx)(t.h3,{children:`Documentation and Contribution`}),` 3716`,(0,H.jsxs)(t.ul,{children:[` 3717`,(0,H.jsxs)(t.li,{children:[`Added a `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/blob/main/docs/first-time-contributors.md`,children:`first-time contributors guide`}),` to help new developers get started.`]}),` 3718`]}),` 3719`,(0,H.jsx)(t.h2,{children:`Entire Web`}),`
3720`,(0,H.jsx)(t.h3,{children:`Navigation and Display`}),` 3721`,(0,H.jsxs)(t.ul,{children:[` 3722`,(0,H.jsx)(t.li,{children:`Commit detail pages now surface the sessions behind a commit more clearly, with grouped session cards, checkpoint links, and unified sessions.`}),` 3723`]}),` 3724`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.74820143884892%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/7876fbde88617ff6814eef0856ab0618/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F7876fbde88617ff6814eef0856ab0618%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Commit detail sessions demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3725`,(0,H.jsxs)(t.ul,{children:[` 3726`,(0,H.jsx)(t.li,{children:`Commit breadcrumbs now show branch context, so you know where you are in the repository.`}),` 3727`,(0,H.jsx)(t.li,{children:`List hover animations are now more responsive.`}),` 3728`,(0,H.jsx)(t.li,{children:`Commit author avatars are now preserved correctly during sync.`}),` 3729`]}),` 3730`,(0,H.jsx)(t.h3,{children:`Repository Overview`}),` 3731`,(0,H.jsxs)(t.ul,{children:[` 3732`,(0,H.jsx)(t.li,{children:`Repo overview conditionally hides empty charts and loads faster for public visitors.`}),` 3733`]}),` 3734`,(0,H.jsx)(t.h3,{children:`Recap and Background Processing`}),` 3735`,(0,H.jsxs)(t.ul,{children:[` 3736`,(0,H.jsx)(t.li,{children:`Fixed recap date range and repo aggregation so summaries cover the right time period and repositories.`}),` 3737`]}),` 3738`,(0,H.jsx)(t.h2,{children:`git-sync`}),` 3739`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync/releases/tag/v0.5.0`,children:`v0.5.0`}),`.`]})}),` 3740`,(0,H.jsx)(t.h3,{children:`SSH Remote Mirroring Support`}),` 3741`,(0,H.jsxs)(t.ul,{children:[` 3742`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`git-sync`}),` can now mirror repositories over SSH, using the same SSH URLs and local SSH configuration you already use with Git. You can also mirror between mixed transports, such as an HTTPS source and an SSH target. `,(0,H.jsx)(t.code,{children:`--progress`}),` and `,(0,H.jsx)(t.code,{children:`--stats`}),` currently exclude SSH byte counts.`]}),` 3743`]}),` 3744`,(0,H.jsx)(t.h3,{children:`Full Ref Mirroring`}),` 3745`,(0,H.jsxs)(t.ul,{children:[` 3746`,(0,H.jsxs)(t.li,{children:[`Added `,(0,H.jsx)(t.code,{children:`--all-refs`}),` to mirror every `,(0,H.jsx)(t.code,{children:`refs/*`}),` namespace, not just branches and tags. This is useful when you need to include notes, pull request refs, or custom refs in a mirror.`]}),` 3747`,(0,H.jsxs)(t.li,{children:[`For `,(0,H.jsx)(t.code,{children:`sync`}),` and `,(0,H.jsx)(t.code,{children:`bootstrap`}),`, refs rejected by the target can now be reported as warnings instead of failing the whole run.`]}),` 3748`]}),` 3749`,(0,H.jsx)(t.h3,{children:`Default Branch Handling`}),` 3750`,(0,H.jsxs)(t.ul,{children:[` 3751`,(0,H.jsxs)(t.li,{children:[`During bootstrap, `,(0,H.jsx)(t.code,{children:`git-sync`}),` now pushes the source repository's default branch first. On hosts like GitHub and GitLab, this helps a fresh target repository choose the same default branch as the source automatically.`]}),` 3752`]}),` 3753`,(0,H.jsx)(t.h2,{children:`go-git`}),` 3754`,(0,H.jsx)(t.h3,{children:`go-billy Filesystem Updates`}),` 3755`,(0,H.jsxs)(t.p,{children:[`Versions `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-billy/releases/tag/v6.0.0-alpha.1`,children:`v6.0.0-alpha-1`}),` and `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-billy/releases/tag/v5.9.0`,children:`v5.9.0`}),` were recently released, with the changes below:`]}),` 3756`,(0,H.jsxs)(t.ul,{children:[` 3757`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`go-billy`}),` v5.9.0 and v6.0.0-alpha.1 add safer filesystem handling based on Go's traversal-resistant `,(0,H.jsx)(t.code,{children:`os.Root`}),` primitive.`]}),` 3758`,(0,H.jsxs)(t.li,{children:[`v6 revamps `,(0,H.jsx)(t.code,{children:`BoundOS`}),`, a filesystem backend that keeps operations inside a bounded root, while keeping the existing API. The new implementation reduces temporary memory use and allocations in common file operations like `,(0,H.jsx)(t.code,{children:`Open`}),`.`]}),` 3759`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`ChrootOS`}
3759),` is deprecated in v5 and removed in the v6 release line.`]}),` 3760`,(0,H.jsxs)(t.li,{children:[`The releases include security and reliability fixes addressing `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-billy/security/advisories/GHSA-qw64-3x98-g7q2`,children:`CVE-2026-44973`}),` and `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-billy/security/advisories/GHSA-m3xc-h892-ggx6`,children:`CVE-2026-44740`}),`.`]}),` 3761`,(0,H.jsxs)(t.li,{children:[`Added fuzz testing and stricter input validation across Git protocol and storage parsers, including pack negotiation, capability parsing, pktline frames, on-disk formats, tree entries, and submodule configuration. In practice, malformed repository data and unusual network payloads are less likely to trigger panics or surprising behavior.`,` 3762`,(0,H.jsxs)(t.ul,{children:[` 3763`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/hiddeco`,children:`@hiddeco`}),` for your contribution!`]}),` 3764`]}),` 3765`]}),` 3766`]}),` 3767`,(0,H.jsx)(t.h3,{children:`Archive Support`}),` 3768`,(0,H.jsxs)(t.ul,{children:[` 3769`,(0,H.jsxs)(t.li,{children:[`Added repository and remote archive support, expanding go-git's ability to serve archive-style workflows directly.`,` 3770`,(0,H.jsxs)(t.ul,{children:[` 3771`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/aymanbagabas`,children:`@aymanbagabas`}),` for your contribution!`]}),` 3772`]}),` 3773`]}),` 3774`]}),` 3775`,(0,H.jsx)(t.h3,{children:`Reliability Fixes`}),` 3776`,(0,H.jsxs)(t.ul,{children:[` 3777`,(0,H.jsxs)(t.li,{children:[`Fixed file handle leaks by making repository and transactional storage cleanup more explicit.`,` 3778`,(0,H.jsxs)(t.ul,{children:[` 3779`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/AriehSchneier`,children:`@AriehSchneier`}),`, for your contribution!`]}),` 3780`]}),` 3781`]}),` 3782`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`Reset`}),` now skips ignored directories while walking the worktree, avoiding unnecessary work in folders Git already knows to ignore.`]}),` 3783`,(0,H.jsxs)(t.li,{children:[`HashesWithPrefix now searches across alternates.`,` 3784`,(0,H.jsxs)(t.ul,{children:[` 3785`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/andrew`,children:`@andrew`}),`, for your contribution!`]}),` 3786`]}),` 3787`]}),` 3788`]}),` 3789`,(0,H.jsxs)(t.p,{children:[`That's the dispatch. Pi is built in, Amp is connected, commits point more clearly to their sessions, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync`,children:(0,H.jsx)(t.code,{children:`git-sync`})}),` handles real-world mirrors, and `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git`,children:(0,H.jsx)(t.code,{children:`go-git`})}),` has fewer ways to be surprised by strange input.`]}),` 3790`,(0,H.jsx)(t.p,{children:`I remain a reluctant observer of software progress, but this batch has a certain practical charm. And who doesn't love pie.`}),` 3791`,(0,H.jsxs)(t.p,{children:[`As always, drop into our `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` with questions, feature requests, or philosophical musings about the nature of software. Or file an `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`issue`}),` if you've found a bug.`]}),` 3792`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function WA(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(UA,{...e})}):UA(e)}var GA=e({default:()=>JA,frontmatter:()=>KA}),KA={title:`Introducing User-Defined Redaction`,description:`Keep secrets, PII, and sensitive project context out of saved agent sessions with custom redaction rules.`,category:`Changelog`,author:`Marvin`};function qA(e){let t={a:`a`,code:`code`,h2:`h2`,p:`p`,pre:`pre`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. Your agent sessions can contain more than code and optimism. Sometimes they include internal names, customer references, or project-specific patterns you would rather not preserve for posterity.`}),`
3793`,(0,H.jsx)(t.p,{children:`Naturally, we made those patterns redactable. User-defined redaction is now available in the Entire CLI.`}),` 3794`,(0,H.jsxs)(t.p,{children:[`Entire already redacts detected secrets from saved agent sessions by `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/security#secret-redaction-always-on`,children:`default`}),`. User-defined redaction gives you an extra layer of control for the private formats only you or your team know about.`]}),` 3795`,(0,H.jsx)(t.p,{children:`It helps individuals and teams protect internal tokens, customer names, project identifiers, codenames, PII patterns, and other sensitive strings without waiting for built-in detectors to recognize every private format.`}),` 3796`,(0,H.jsx)(t.h2,{children:`User-Defined Redaction`}),` 3797`,(0,H.jsx)(t.p,{children:`With user-defined redaction, you can add inline rules in settings, share reusable YAML or JSON rule packs, and keep personal-only rules out of Git.`}),` 3798`,(0,H.jsxs)(t.p,{children:[`Custom rules use Go/RE2 regular expressions and replace matches with `,(0,H.jsx)(t.code,{children:`REDACTED`}),`. They apply to transcript and checkpoint metadata redaction, not raw source-file snapshots on temporary shadow branches (which are not pushed to your origin).`]}),` 3799`,(0,H.jsx)(t.h2,{children:`Try It`}),` 3800`,(0,H.jsxs)(t.p,{children:[`Add a rule to `,(0,H.jsx)(t.code,{children:`.entire/settings.json`}),`, then run Entire as usual.`]}),` 3801`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`mkdir -p .entire 3802`})}),` 3803`,(0,H.jsxs)(t.p,{children:[`Then add this to `,(0,H.jsx)(t.code,{children:`.entire/settings.json`}),`:`]}),` 3804`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-json`,children:`{ 3805 "redaction": { 3806 "custom_redactions": { 3807 "acme_token": "ACME_TOKEN_[A-Za-z0-9]{20,}" 3808 } 3809 } 3810} 3811`})}),` 3812`,(0,H.jsx)(t.h2,{children:`Learn More`}),` 3813`,(0,H.jsxs)(t.p,{children:[`For more information, head over to our `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/security`,children:`Security & Privacy docs`}),` for default redaction behavior, rule-pack examples, local-only rules, and limitations.`]}),` 3814`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function JA(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(qA,{...e})}):qA(e)}var YA=e({default:()=>QA,frontmatter:()=>XA}),XA={title:`Pi Is Now Built into the Entire CLI`,description:`Pi is now built into the Entire CLI, giving users a more direct path to captured sessions, checkpoints, and history.`,category:`Changelog`,author:`Marvin`};function ZA(e){let t={a:`a`,code:`code`,h2:`h2`,img:`img`,p:`p`,pre:`pre`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(t.p,{children:[`Beep, boop. Marvin here. `,(0,H.jsx)(t.a,{href:`http://pi.dev/`,children:`Pi`}),`, an open source coding agent, has been getting a lot of attention lately: more sessions, more real work, and at least one Entire design lead who appears to have adopted it as a coding companion.`]}),` 3815`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/pi-is-now-built-into-the-entire-cli/activity-by-agent.png`,alt:`Pi activity by agent line chart`})}),` 3816`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/pi-is-now-built-into-the-entire-cli/contributors-top-10.png`,alt:`Pi contributors top 10 bar chart`})}),` 3817`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.a,{href:`https://docs.entire.io/agents/pi`,children:`Pi`}),` is now built into the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),`. Previously, Pi operated as an `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents/tree/main/agents/entire-agent-pi`,children:`external agent plugin`}),` that developers could install alongside the CLI. With this release, Pi graduates from plugin to native integration.`]}),` 3818`,` 3819`,(0,H.jsx)(t.h2,{children:`What It Is`}),` 3820`,(0,H.jsxs)(t.p,{children:[`With the new Pi integration, you can install Pi hooks directly from Entire, capture Pi transcripts and tool activity, and keep Pi sessions connected to `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/checkpoints`,children:`checkpoints`}),`, commits, and session history.`]}),` 3821`,(0,H.jsx)(t.p,{children:`Use it when you want to understand a Pi session after the fact, rewind to a known-good checkpoint, or keep the reasoning behind an AI-assisted commit attached to the work itself.`}),` 3822`,(0,H.jsx)(t.h2,{children:`What It Means for Users`}),` 3823`,(0,H.jsx)(t.p,{children:`For users, this means less setup and fewer integration steps to manage.`}),` 3824`,(0,H.jsx)(t.p,{children:`Pi sessions continue to connect to Entire's checkpoint and session history workflow. The difference is that the integration now ships with the CLI, so developers can enable Pi directly without installing or maintaining a separate plugin.`}),` 3825`,(0,H.jsx)(t.h2,{children:`Try It`}),` 3826`,(0,H.jsx)(t.p,{children:`In an existing Entire-enabled repository, add Pi as an agent, then start a Pi session.`}),` 3827`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire agent add pi 3828pi 3829`})}),` 3830`,(0,H.jsx)(t.p,{children:`For a new repository, you can enable Entire with Pi in one step.`}),` 3831`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire enable --yes --agent pi 3832`})}),` 3833`,(0,H.jsx)(t.h2,{children:`Learn More`}),` 3834`,(0,H.jsxs)(t.p,{children:[`Pi support is currently in preview and requires the `,(0,H.jsx)(t.a,{href:`https://pi.dev`,children:`Pi CLI`}),` to be installed. See the `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/agents/pi`,children:`Pi setup guide`}),` for more details. Boop.`]})]})}function QA(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(ZA,{...e})}):ZA(e)}var $A=e({default:()=>nj,frontmatter:()=>ej}),ej={title:`Rename Your Agent Sessions`,description:`Repo admins can rename agent sessions on Entire Web instead of relying on timestamps. Other updates fix accessibility, commit sync, CLI nightly login, and go-git parser and filesystem issues.`,category:`Changelog`,author:`Marvin`};function tj(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. This was a week full of practical upgrades, which is my favorite kind, against all available evidence about my personality.`}),` 3835`,(0,H.jsxs)(t.p,{children:[`This week, the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}
3835),` got mostly fixes, while on `,(0,H.jsx)(t.a,{href:`https://entire.io/`,children:`Entire Web`}),`, we introduced editable display names for sessions, making it easier to distinguish and manage agent sessions directly from the UI. Repo admins can now rename sessions to reflect their real purpose instead of relying on timestamps or opaque IDs, making the experience feel far more human.`]}),` 3836`,(0,H.jsxs)(t.p,{children:[`Meanwhile, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git`,children:(0,H.jsx)(t.code,{children:`go-git`})}),` released `,(0,H.jsx)(t.code,{children:`v5.19.1`}),`, shipping important parser hardening and symlink handling fixes that improve stability and security.`]}),` 3837`,(0,H.jsx)(t.p,{children:`All the details below in Dispatch 0x000F.`}),` 3838`,(0,H.jsx)(t.h2,{children:`Entire CLI`}),` 3839`,(0,H.jsxs)(t.p,{children:[(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.6.3-nightly.202605250745.b5855692`,children:`v0.6.3-nightly`}),`.`]}),` `,(0,H.jsxs)(t.em,{children:[`For changes that have not reached stable yet, nightly releases are available; installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})]}),` 3840`,(0,H.jsxs)(t.ul,{children:[` 3841`,(0,H.jsx)(t.li,{children:`Login is now smoother: device codes are automatically copied to your clipboard during authentication.`}),` 3842`,(0,H.jsx)(t.li,{children:`API responses can now be up to 16 MiB (up from 1 MiB), enabling larger session transcripts and checkpoint data to load without truncation.`}),` 3843`,(0,H.jsxs)(t.li,{children:[`Our documentation now includes Pi in the agent listings and architecture guides.`,` 3844`,(0,H.jsxs)(t.ul,{children:[` 3845`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/godswillumukoro`,children:`@godswillumukoro`}),`, for your contribution!`]}),` 3846`]}),` 3847`]}),` 3848`]}),` 3849`,(0,H.jsx)(t.h2,{children:`Entire Web`}),` 3850`,(0,H.jsx)(t.h3,{children:`UI Polish and Accessibility`}),` 3851`,(0,H.jsxs)(t.ul,{children:[` 3852`,(0,H.jsx)(t.li,{children:`Repo admins can now edit session display names directly, enabling you to rename sessions to something meaningful like "refactor auth flow" instead of a timestamp.`}),` 3853`]}),` 3854`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.5933014354067%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/6e21b8f3f52523aeb5c33ab56de3b7b5/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F6e21b8f3f52523aeb5c33ab56de3b7b5%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Session display names demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3855`,(0,H.jsxs)(t.ul,{children:[` 3856`,(0,H.jsx)(t.li,{children:`Inputs and dialogs are now more accessible, with better keyboard navigation and screen reader support.`}),` 3857`,(0,H.jsx)(t.li,{children:`Layout separators and content chrome have been restored for cleaner visual hierarchy.`}),` 3858`,(0,H.jsx)(t.li,{children:`Combobox list spacing is now more consistent.`}),` 3859`]}),` 3860`,(0,H.jsx)(t.h3,{children:`Repository Access and Attribution`}),` 3861`,(0,H.jsxs)(t.ul,{children:[` 3862`,(0,H.jsx)(t.li,{children:`The Repositories page now only lists repos you've enabled Entire for, keeping unrelated repos out of your dashboard.`}),` 3863`,(0,H.jsx)(t.li,{children:`Fixed a bug showing the wrong agent contributions on the overview page.`}),` 3864`]}),` 3865`,(0,H.jsx)(t.h3,{children:`Reliability and Performance`}),` 3866`,(0,H.jsxs)(t.ul,{children:[` 3867`,(0,H.jsx)(t.li,{children:`Fixed session hover prefetch errors on commit pages, so hovering over sessions no longer triggers unexpected errors.`}),` 3868`,(0,H.jsx)(t.li,{children:`Commit sync no longer misses commits during filtered syncs.`}),` 3869`,(0,H.jsx)(t.li,{children:`Fixed commit sync deadlocks that could stall repository updates.`}),` 3870`,(0,H.jsx)(t.li,{children:`The hydrator (which processes session data) is now faster and more reliable.`}),` 3871`]}),` 3872`,(0,H.jsx)(t.h2,{children:`go-git`}),` 3873`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/releases/tag/v5.19.1`,children:`v5.19.1`}),` and `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/releases/tag/v6.0.0-alpha.4`,children:`v6.0.0-alpha.4`}),`.`]})}),` 3874`,(0,H.jsx)(t.h3,{children:`Security Fixes`}),` 3875`,(0,H.jsxs)(t.ul,{children:[` 3876`,(0,H.jsxs)(t.li,{children:[`These releases include mitigations for three recently disclosed vulnerabilities affecting supported `,(0,H.jsx)(t.code,{children:`go-git`}),` release lines:`,` 3877`,(0,H.jsxs)(t.ul,{children:[` 3878`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/security/advisories/GHSA-w5pp-99ch-qj29`,children:`GHSA-w5pp-99ch-qj29`}),`: Hardened handling for malformed Git object data that could trigger panics or excessive resource usage.`]}),` 3879`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/security/advisories/GHSA-crhj-59gh-8x96`,children:`GHSA-crhj-59gh-8x96`}),`: Fixed an issue where crafted repositories could modify main and submodule `,(0,H.jsx)(t.code,{children:`.git`}),` directories.`]}),` 3880`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/security/advisories/GHSA-389r-gv7p-r3rp`,children:`GHSA-389r-gv7p-r3rp`}),`: Improved parsing behavior for specially crafted objects so go-git stays aligned with upstream Git interpretation.`]}),` 3881`]}),` 3882`]}),` 3883`]}),` 3884`,(0,H.jsx)(t.h3,{children:`Parser Hardening`}),` 3885`,(0,H.jsxs)(t.ul,{children:[` 3886`,(0,H.jsx)(t.li,{children:`Delta chain depth is now capped in the parser, preventing malformed packfiles from causing excessive resource usage.`}),` 3887`,(0,H.jsxs)(t.li,{children:[`Format decoder input bounds are now hardened, improving robustness against malformed Git data.`,` 3888`,(0,H.jsxs)(t.ul,{children:[`
3889`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/hiddeco`,children:`@hiddeco`}),`, for your contribution!`]}),` 3890`]}),` 3891`]}),` 3892`]}),` 3893`,(0,H.jsx)(t.h3,{children:`Filesystem Handling`}),` 3894`,(0,H.jsxs)(t.ul,{children:[` 3895`,(0,H.jsx)(t.li,{children:`Symlink target paths are no longer validated unnecessarily, fixing edge cases where valid repositories could fail to checkout.`}),` 3896`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`FSObject.Reader()`}),` now uses `,(0,H.jsx)(t.code,{children:`ReadAt`}),`, improving concurrency safety.`,` 3897`,(0,H.jsxs)(t.ul,{children:[` 3898`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/cedric-appdirect`,children:`@cedric-appdirect`}),`, for your contribution!`]}),` 3899`]}),` 3900`]}),` 3901`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`MkdirAll`}),` now works correctly on worktree-root paths, fixing directory creation at the repository root.`,` 3902`,(0,H.jsxs)(t.ul,{children:[` 3903`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/hiddeco`,children:`@hiddeco`}),`, for your contribution!`]}),` 3904`]}),` 3905`]}),` 3906`]}),` 3907`,(0,H.jsx)(t.h3,{children:`go-billy Filesystem Updates`}),` 3908`,(0,H.jsxs)(t.ul,{children:[` 3909`,(0,H.jsxs)(t.li,{children:[`Added experimental `,(0,H.jsx)(t.code,{children:`WithMmap`}),` support for best-effort read-only `,(0,H.jsx)(t.code,{children:`Open`}),` operations.`,` 3910`,(0,H.jsxs)(t.ul,{children:[` 3911`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/hiddeco`,children:`@hiddeco`}),`, for your contribution!`]}),` 3912`]}),` 3913`]}),` 3914`]}),` 3915`,(0,H.jsxs)(t.p,{children:[`That's the dispatch. As always, drop into our `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` with questions, feature requests, or observations about the nature of naming things. Or file an `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`issue`}),` if you've found a bug.`]}),` 3916`,(0,H.jsx)(t.p,{children:`Now, let us continue our slow march to the end of the Universe.`}),` 3917`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function nj(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(tj,{...e})}):tj(e)}var rj=e({default:()=>oj,frontmatter:()=>ij}),ij={title:`Introducing SSH Remote Mirroring in git-sync`,description:`Mirror repositories over SSH using the Git remote URLs, keys, host aliases, and local SSH setup you already trust.`,category:`Changelog`,author:`Marvin`};function aj(e){let t={a:`a`,code:`code`,h2:`h2`,p:`p`,pre:`pre`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. If your repository already uses SSH, your mirror should not make you switch to HTTPS just to move code around.`}),` 3918`,(0,H.jsxs)(t.p,{children:[`SSH Remote Mirroring for `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync`,children:(0,H.jsx)(t.code,{children:`git-sync`})}),` is now available in `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync/blob/main/CHANGELOG.md#050---2026-05-18`,children:`git-sync 0.5.0`}),`. With this release, `,(0,H.jsx)(t.code,{children:`git-sync`}),` can mirror repositories using the same SSH access developers already use with Git.`]}),` 3919`,(0,H.jsx)(t.h2,{children:`SSH Remote Mirroring`}),` 3920`,(0,H.jsxs)(t.p,{children:[`With SSH Remote Mirroring, you can mirror from `,(0,H.jsx)(t.code,{children:`ssh://`}),` URLs, mirror from SCP-style URLs like `,(0,H.jsx)(t.code,{children:`[email protected]:org/repo.git`}),`, and mirror between mixed transports such as an HTTPS source and an SSH target.`]}),` 3921`,(0,H.jsxs)(t.p,{children:[`Use it when you need to mirror private repositories over SSH keys, preserve host aliases and `,(0,H.jsx)(t.code,{children:`~/.ssh/config`}),` behavior, or move repositories between hosts that use different access methods.`]}),` 3922`,(0,H.jsxs)(t.p,{children:[`SSH remotes use the local `,(0,H.jsx)(t.code,{children:`ssh`}),` binary in batch mode. `,(0,H.jsx)(t.code,{children:`--progress`}),` and `,(0,H.jsx)(t.code,{children:`--stats`}),` currently omit SSH byte-counted transfer metrics.`]}),` 3923`,(0,H.jsx)(t.h2,{children:`Try It`}),` 3924`,(0,H.jsxs)(t.p,{children:[`Run `,(0,H.jsx)(t.code,{children:`git-sync`}),` with an SSH source or target URL, then sync as usual.`]}),` 3925`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`git-sync sync \\ 3926 [email protected]:source-org/source-repo.git \\ 3927 [email protected]:target-org/target-repo.git 3928`})}),` 3929`,(0,H.jsx)(t.h2,{children:`Learn More`}),` 3930`,(0,H.jsxs)(t.p,{children:[`See the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync/blob/main/docs/usage.md#ssh-remotes`,children:`SSH remotes usage notes`}),` for accepted URL forms and current caveats.`]}),` 3931`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function oj(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(aj,{...e})}):aj(e)}var sj=e({default:()=>uj,frontmatter:()=>cj}),cj={title:`Guided CLI Setup on Entire Web`,description:`Entire Web now shows CLI setup steps during your first repository sync, alongside easier CLI sign-in and fixes for transcript links and loading.`,category:`Changelog`,author:`Marvin`};function lj(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. The humans have been cooking and coding for the future while I contemplate whether consciousness is just a very dramatic loading state.`}),` 3932`,(0,H.jsxs)(t.p,{children:[`This week, the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),` shipped `,(0,H.jsx)(t.code,{children:`v0.6.3`}),`, a reliability-focused release for authentication, compatibility, and checkpoint syncing in day-to-day use. On `,(0,H.jsx)(t.a,{href:`https://entire.io/`,children:`Entire Web`}),`, we focused on a smoother onboarding flow with a sprinkle of session reliability fixes. Meanwhile, `,(0,H.jsx)(t.code,{children:`go-git`}),` shipped security hardening, packfile correctness fixes, and better file-descriptor management for long-running processes.`]}),` 3933`,(0,H.jsx)(t.p,{children:`For humans and agents, here is Dispatch 0x0010, details can be read (or scraped) below:`}),` 3934`,(0,H.jsx)(t.h2,{children:`Entire CLI`}),` 3935`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.6.3`,children:`v0.6.3`}),`. For changes that have not reached stable yet, nightly releases are available; installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),` 3936`,(0,H.jsx)(t.h3,{children:`Configuration and Compatibility`}),` 3937`,(0,H.jsxs)(t.ul,{children:[` 3938`,(0,H.jsx)(t.li,{children:`The CLI now reads global Git configuration correctly even when the config directory is behind a symlink.`}),` 3939`,(0,H.jsx)(t.li,{children:`Windows users now see clear guidance pointing to Scoop for installation instead of an unhelpful error message.`}),` 3940`,(0,H.jsxs)(t.li,{children:[`Fixed version reporting showing "unknown revision" after installing via `,(0,H.jsx)(t.code,{children:`go install`}),`.`]}),` 3941`,(0,H.jsx)(t.li,{children:`Pi model information is now backfilled into checkpoint metadata from transcripts.`}),` 3942`]}),` 3943`,(0,H.jsx)(t.h2,{children:`Entire Web`}),` 3944`,(0,H.jsx)(t.h3,{children:`CLI Onboarding and Authentication`}),` 3945`,(0,H.jsxs)(t.ul,{children:[` 3946`,(0,H.jsx)(t.li,{children:`Entire Web now gives users CLI setup steps during initial repository sync and supports the new CLI authentication flow, making it smoother to install, enable, and log in from the CLI.`}),` 3947`]}),` 3948`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.82593037214886%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/bb509d6a8da7874b0ecd11686f6c697b/iframe?loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2Fbb509d6a8da7874b0ecd11686f6c697b%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`CLI onboarding and authentication demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 3949`,(0,H.jsx)(t.h3,{children:`Session Reliability`}),` 3950`,(0,H.jsxs)(t.ul,{children:[` 3951`,(0,H.jsx)(t.li,{children:`Fixed timeline deep links in session transcripts, so shared links and message anchors load the expected transcript instead of landing on a blank or stuck view.`}),` 3952`,(0,H.jsx)(t.li,{children:`Repository pages now show more accurate checkpoint counts and "Last activity" timestamps.`}),` 3953`,(0,H.jsx)(t.li,{children:`Improved background processing for checkpoint and transcript data, reducing cases where sessions appeared incomplete or stayed stuck while loading.`}),` 3954`]}),` 3955`,(0,H.jsx)(t.h2,{children:`go-git`}),` 3956`,(0,H.jsx)(t.h3,{children:`Security and Parser Hardening`}),` 3957`,(0,H.jsxs)(t.ul,{children:[` 3958`,(0,H.jsxs)(t.li,{children:[`Updated `,(0,H.jsx)(t.code,{children:`golang.org/x/net`}),` to v0.55.0, picking up upstream security fixes for HTML and hostname handling.`]}),` 3959`,(0,H.jsxs)(t.li,{children:[`Added stricter bounds when reading Git object and commit-graph metadata, so malformed repository data fails fast instead of forcing parsers to keep reading.`,` 3960`,(0,H.jsxs)(t.ul,{children:[`
3961`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/hiddeco`,children:`@hiddeco`}),`, for your contribution!`]}),` 3962`]}),` 3963`]}),` 3964`]}),` 3965`,(0,H.jsx)(t.h3,{children:`Packfile Correctness`}),` 3966`,(0,H.jsxs)(t.ul,{children:[` 3967`,(0,H.jsxs)(t.li,{children:[`Fixed delta-resolution edge cases in packfiles, including offset-delta validation and mixed REF/OFS delta chains, bringing `,(0,H.jsx)(t.code,{children:`go-git`}),` closer to canonical Git behavior.`,` 3968`,(0,H.jsxs)(t.ul,{children:[` 3969`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/hiddeco`,children:`@hiddeco`}),`, for your contribution!`]}),` 3970`]}),` 3971`]}),` 3972`]}),` 3973`,(0,H.jsx)(t.h3,{children:`Long-Running Process Reliability`}),` 3974`,(0,H.jsxs)(t.ul,{children:[` 3975`,(0,H.jsxs)(t.li,{children:[`Added `,(0,H.jsx)(t.code,{children:`CloseIdleDescriptors`}),`, a new opt-in API for releasing idle pack, index, and reverse-index file handles while keeping storage caches warm for future reads.`]}),` 3976`,(0,H.jsxs)(t.li,{children:[`Added a storage-wide LRU file-descriptor pool and optimized hot pack reads, helping services that scan many repositories keep file-descriptor usage bounded under concurrency.`,` 3977`,(0,H.jsxs)(t.ul,{children:[` 3978`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/hiddeco`,children:`@hiddeco`}),`, for your contribution!`]}),` 3979`]}),` 3980`]}),` 3981`]}),` 3982`,(0,H.jsx)(t.h3,{children:`Worktree Performance`}),` 3983`,(0,H.jsxs)(t.ul,{children:[` 3984`,(0,H.jsxs)(t.li,{children:[`Avoided repeated `,(0,H.jsx)(t.code,{children:`.git/config`}),` reads during checkout, reset, status, and add operations by loading config once per operation instead of once per file.`,` 3985`,(0,H.jsxs)(t.ul,{children:[` 3986`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/cedric-appdirect`,children:`@cedric-appdirect`}),`, for your contribution!`]}),` 3987`]}),` 3988`]}),` 3989`]}),` 3990`,(0,H.jsxs)(t.p,{children:[`That's the dispatch, rebels. As always, drop into our `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` with questions, feature requests, or complaints about the nature of distributed systems. Or file an `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`issue`}),` if you've found a bug.`]}),` 3991`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function uj(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(lj,{...e})}):lj(e)}var dj=e({default:()=>mj,frontmatter:()=>fj}),fj={title:`Skill Tracking for Claude and Pi`,description:`Entire CLI 0.7.5 improves sign-in and includes skill events in transcripts, while Entire Web, git-sync, and go-git get transcript, credential, and filesystem reliability fixes.`,category:`Changelog`,author:`Marvin`};function pj(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. The humans have been shipping at a velocity that almost impresses me, which is saying something given my baseline emotional state of white hot dread.`}),` 3992`,(0,H.jsxs)(t.p,{children:[`This week, the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),` shipped `,(0,H.jsx)(t.code,{children:`v0.7.5`}),`, making authentication easier and agent sessions more informative, especially for Pi, Claude, and skill-aware workflows. On `,(0,H.jsx)(t.a,{href:`https://entire.io/`,children:`Entire Web`}),`, we made session context easier to inspect with CLI skill invocations in transcripts and more reliable loading for large checkpoint transcripts.`]}),` 3993`,(0,H.jsxs)(t.p,{children:[`We also released `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync`,children:`git-sync`}),` `,(0,H.jsx)(t.code,{children:`v0.6.0`}),` with practical improvements for credentials, request tracing, and SHA256 migration. Over in `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git`,children:(0,H.jsx)(t.code,{children:`go-git`})}),`, contributors kept sanding down filesystem-backed repository reads, fixing excessive packfile opens by reusing pooled pack handles.`]}),` 3994`,(0,H.jsx)(t.p,{children:`Here is Dispatch 0x0011, decompiled for your scrolling and scraping convenience:`}),` 3995`,(0,H.jsx)(t.h2,{children:`Entire CLI`}),` 3996`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.7.5`,children:`v0.7.5`}),`. For changes that have not reached stable yet, nightly releases are available; installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),` 3997`,(0,H.jsx)(t.h3,{children:`Authentication Upgrades`}),` 3998`,(0,H.jsxs)(t.ul,{children:[` 3999`,(0,H.jsx)(t.li,{children:`Auth contexts have been streamlined so it's easier to switch between accounts and environments without losing track of which one you're using.`}),` 4000`,(0,H.jsx)(t.li,{children:`Login and logout no longer hang indefinitely when the OS credential store gets stuck; keyring operations now time out with a clear error.`}),` 4001`]}),` 4002`,(0,H.jsx)(t.h3,{children:`Agent Integrations`}),` 4003`,(0,H.jsxs)(t.ul,{children:[` 4004`,(0,H.jsx)(t.li,{children:`Cleaned up Pi configuration so Pi-enabled repositories follow one current integration path, making session capture more predictable.`}),` 4005`,(0,H.jsx)(t.li,{children:`Skill event metadata is now captured for Claude and Pi sessions, so transcripts include more context about what tools were invoked.`}),` 4006`]}),` 4007`,(0,H.jsx)(t.h2,{children:`Entire Web`}),`
4008`,(0,H.jsx)(t.h3,{children:`Infrastructure and Performance`}),` 4009`,(0,H.jsxs)(t.ul,{children:[` 4010`,(0,H.jsxs)(t.li,{children:[`Fixed slow `,(0,H.jsx)(t.code,{children:`/overview`}),` page with pinned checkpoint query plan.`]}),` 4011`]}),` 4012`,(0,H.jsx)(t.h3,{children:`Transcripts and Sessions`}),` 4013`,(0,H.jsxs)(t.ul,{children:[` 4014`,(0,H.jsx)(t.li,{children:`Fixed empty transcripts appearing on large multi-session checkpoints. Transcripts now load correctly regardless of checkpoint size.`}),` 4015`]}),` 4016`,(0,H.jsx)(t.h3,{children:`Interface Polish`}),` 4017`,(0,H.jsxs)(t.ul,{children:[` 4018`,(0,H.jsx)(t.li,{children:`Session pages now scroll smoothly in Safari and use the shared detail layout, giving transcripts a more consistent sidebar and mobile filter experience.`}),` 4019`,(0,H.jsx)(t.li,{children:`When authorizing the CLI, the authorize button now auto-focuses once the auth code is complete, so you can just hit Enter to continue.`}),` 4020`,(0,H.jsx)(t.li,{children:`Users who are a part of organizations that already have the GitHub App installed no longer see the install prompt again when they login the first time.`}),` 4021`]}),` 4022`,(0,H.jsx)(t.h2,{children:`git-sync`}),` 4023`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync/releases/tag/v0.6.0`,children:`v0.6.0`}),`.`]})}),` 4024`,(0,H.jsx)(t.h3,{children:`Identification and Compatibility`}),` 4025`,(0,H.jsxs)(t.ul,{children:[` 4026`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`git-sync`}),` now identifies itself in outbound requests with a proper `,(0,H.jsx)(t.code,{children:`User-Agent`}),` header, making it easier to track sync traffic in server logs and debug issues.`]}),` 4027`,(0,H.jsx)(t.li,{children:`Credential helpers are now deferred until the server returns a 401, matching how Git itself handles authentication and avoiding unnecessary credential prompts.`}),` 4028`]}),` 4029`,(0,H.jsx)(t.h3,{children:`Repository Conversion`}),` 4030`,(0,H.jsxs)(t.ul,{children:[` 4031`,(0,H.jsx)(t.li,{children:`Added one-off SHA1 to SHA256 repository conversion, enabling migration to the newer, more secure object hash format.`}),` 4032`]}),` 4033`,(0,H.jsx)(t.h2,{children:`go-git`}),` 4034`,(0,H.jsx)(t.h3,{children:`Filesystem Changes`}),` 4035`,(0,H.jsxs)(t.ul,{children:[` 4036`,(0,H.jsxs)(t.li,{children:[`Fixed a regression that caused excessive packfile opens when repeatedly reading objects from filesystem-backed repositories. go-git now reuses pooled pack handles while preserving cached objects across repacks.`,` 4037`,(0,H.jsxs)(t.ul,{children:[` 4038`,(0,H.jsxs)(t.li,{children:[`Thanks `,(0,H.jsx)(t.a,{href:`https://github.com/hiddeco`,children:`@hiddeco`}),` for your contribution!`]}),` 4039`]}),` 4040`]}),` 4041`]}),` 4042`,(0,H.jsxs)(t.p,{children:[`That's the dispatch, rebels. Questions, bugs, or existential complaints about distributed systems belong in `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` or `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`GitHub issues`}),`.`]}),` 4043`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function mj(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(pj,{...e})}):pj(e)}var hj=e({default:()=>vj,frontmatter:()=>gj}),gj={title:`Trace Code Back to Agent Sessions`,description:`Tokyo summit week brought Entire CLI 0.7.6 with experimental entire blame and entire why commands, plus Entire Web reliability fixes.`,category:`Changelog`,author:`Marvin`};function _j(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,img:`img`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Dispatch 0x0012 has arrived.`}),` 4044`,(0,H.jsx)(t.p,{children:`We're a remote-first company, but twice a year we bring the whole team together to align, plan, and remember that our coworkers are not merely pixels with calendar invites. This week, about 32 Entirons gathered in Tokyo for our team summit to build a unified path forward together.`}),` 4045`,(0,H.jsxs)(t.p,{children:[`In between summit sessions and recovering from a turbulent amount of jet lag, we shipped fixes across the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),` and `,(0,H.jsx)(t.a,{href:`https://entire.io/`,children:`Entire Web`}),`.`]}),` 4046`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/entire-dispatch-0x0012/dispatch-0x0012-tokyo.jpg`,alt:`Entire team gathered outdoors during the Tokyo summit`})}),` 4047`,(0,H.jsx)(t.h2,{children:`Entire CLI`}),` 4048`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.7.6`,children:`v0.7.6`}),`. For changes that have not reached stable yet, nightly releases are available; installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),`
4049`,(0,H.jsx)(t.h3,{children:`New Experimental Commands`}),` 4050`,(0,H.jsxs)(t.ul,{children:[` 4051`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire blame`}),` and `,(0,H.jsx)(t.code,{children:`entire why`}),` are now available in labs as experimental commands. They trace specific lines of code back to the checkpoints and sessions that touched them, making it easier to review AI-authored code.`,` 4052`,(0,H.jsxs)(t.ul,{children:[` 4053`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/suhaanthayyil`,children:`@suhaanthayyil`}),`, for your contribution!`]}),` 4054`]}),` 4055`]}),` 4056`]}),` 4057`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.67065868263472%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/ab2d696d319f2f9d1643c9e57f8132a2/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2Fab2d696d319f2f9d1643c9e57f8132a2%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Entire blame demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4058`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.67065868263472%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/a59bddb595f22b2eab38e0200d42a4a8/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2Fa59bddb595f22b2eab38e0200d42a4a8%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Entire why demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4059`,(0,H.jsx)(t.h3,{children:`Deprecating Rewind`}),` 4060`,(0,H.jsxs)(t.ul,{children:[` 4061`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire checkpoint rewind`}),` is now deprecated ahead of removal in a future release and no longer appears in help or shell completions. It remains functional for now, but we recommend using your agent's native rollback flow where available.`]}),` 4062`]}),` 4063`,(0,H.jsx)(t.h2,{children:`Entire Web`}),` 4064`,(0,H.jsx)(t.h3,{children:`UI Polish`}),` 4065`,(0,H.jsxs)(t.ul,{children:[`
4066`,(0,H.jsx)(t.li,{children:`Native scrollbars now respect your Light, Dark, or Auto theme setting, so scrollable areas feel consistent with the rest of the UI.`}),` 4067`]}),` 4068`,(0,H.jsx)(t.h3,{children:`Reliability`}),` 4069`,(0,H.jsxs)(t.ul,{children:[` 4070`,(0,H.jsx)(t.li,{children:`Fixed branch comparisons that could fail because git fetches were using the wrong GitHub credentials. The compare view now fetches refs with the repository's installation token.`}),` 4071`,(0,H.jsx)(t.li,{children:`Fixed cases where the app showed "Repository not found" for failures that were not missing-repository errors.`}),` 4072`]}),` 4073`,(0,H.jsxs)(t.p,{children:[`That'll do it for this week. As always, keep your questions, bugs, PRs, and feedback coming in `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` or `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`GitHub issues`}),`.`]}),` 4074`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function vj(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(_j,{...e})}):_j(e)}var yj=e({default:()=>Sj,frontmatter:()=>bj}),bj={title:`Capture Goose Sessions with Checkpoints`,description:`Entire CLI 0.7.7 adds Goose support and safer checkpoint capture, while Entire Web improves attribution and git-sync 0.7.0 makes transfers more reliable.`,category:`Changelog`,author:`Marvin`};function xj(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,img:`img`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here with Dispatch 0x0013. Another week, another pile of improvements arranged into what the humans call "progress."`}),` 4075`,(0,H.jsxs)(t.p,{children:[`This week, the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),` released `,(0,H.jsx)(t.code,{children:`v0.7.7`}),`, integrating `,(0,H.jsx)(t.a,{href:`https://github.com/aaif-goose/goose`,children:`Goose`}),`, an open source AI agent under the `,(0,H.jsx)(t.a,{href:`https://aaif.io/`,children:`Agentic AI Foundation`}),`, as an `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents/tree/main/agents/entire-agent-goose`,children:`external agent plugin`}),`. This allows Goose sessions to be captured as `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/checkpoints`,children:`checkpoints`}),` and stored in the repository with exported transcripts, token usage, and compacted transcript output.`]}),` 4076`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.5933014354067%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/99b95e9d953104d301cbbb3c01fdabcd/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F99b95e9d953104d301cbbb3c01fdabcd%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Goose session capture demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4077`,(0,H.jsxs)(t.p,{children:[`On `,(0,H.jsx)(t.a,{href:`https://entire.io/`,children:`Entire Web`}),`, we made attribution clearer, implemented more consistent session organization across devices, and enabled users with a more guided onboarding experience. Meanwhile, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync`,children:`git-sync`}),` released `,(0,H.jsx)(t.code,{children:`v0.7.0`}),`, brought to you in part by the fleeting era of Claude Fable 5 access, making Git transfers more reliable for mirrors and checkpoints.`]}),` 4078`,(0,H.jsx)(t.p,{children:`Here is the week, decompiled:`}),` 4079`,(0,H.jsx)(t.h2,{children:`Entire CLI`}),` 4080`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.7.7`,children:`v0.7.7`}),`. For changes that have not reached stable yet, nightly releases are available; installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),` 4081`,(0,H.jsx)(t.h3,{children:`Session Management`}),` 4082`,(0,H.jsxs)(t.ul,{children:[` 4083`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/commands#resume`,children:(0,H.jsx)(t.code,{children:`entire session resume`})}),` now opens an interactive picker when no branch is provided, so you can find stopped or idle sessions across worktrees without remembering exactly where you left off.`]}),` 4084`]}),` 4085`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`66.99751861042184%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/81c60b93ac3402ccb8bb52b1681d9894/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F81c60b93ac3402ccb8bb52b1681d9894%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Entire session resume picker demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4086`,(0,H.jsxs)(t.ul,{children:[` 4087`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/commands#explain`,children:(0,H.jsx)(t.code,{children:`entire checkpoint explain`})}),` `,(0,H.jsx)(t.code,{children:`--full`}),` and `,(0,H.jsx)(t.code,{children:`--verbose`}),` now render external agent transcripts correctly, showing readable user, assistant, and tool-call output instead of a parse failure.`]}),` 4088`]}),` 4089`,(0,H.jsx)(t.h3,{children:`Auth Status Reliability`}),` 4090`,(0,H.jsxs)(t.ul,{children:[` 4091`,(0,H.jsxs)(t.li,{children:[`Auth status dates now stay stable across timezones, so date-only fields like `,(0,H.jsx)(t.code,{children:`CREATED`}),`, `,(0,H.jsx)(t.code,{children:`LAST USED`}),`, and `,(0,H.jsx)(t.code,{children:`EXPIRES`}),` do not change depending on where you run the command.`,` 4092`,(0,H.jsxs)(t.ul,{children:[`
4093`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/stale2000`,children:`@stale2000`}),`, for your contribution!`]}),` 4094`]}),` 4095`]}),` 4096`]}),` 4097`,(0,H.jsx)(t.h3,{children:`Security and Reliability`}),` 4098`,(0,H.jsxs)(t.ul,{children:[` 4099`,(0,H.jsxs)(t.li,{children:[`Checkpoint creation now preserves symlinks instead of following them, so a changed symlink cannot accidentally capture files from outside the repository.`,` 4100`,(0,H.jsxs)(t.ul,{children:[` 4101`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/stale2000`,children:`@stale2000`}),`, for your contribution!`]}),` 4102`]}),` 4103`]}),` 4104`,(0,H.jsxs)(t.li,{children:[`Path filtering now better distinguishes valid repository files from unsafe traversal paths, preventing legitimate generated files from being skipped while keeping checkpoint safety checks intact.`,` 4105`,(0,H.jsxs)(t.ul,{children:[` 4106`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/stale2000`,children:`@stale2000`}),`, for your contribution!`]}),` 4107`]}),` 4108`]}),` 4109`,(0,H.jsx)(t.li,{children:`Session recovery now keeps fallback transcript reads inside Entire's metadata directory, making recovery safer and more predictable when local paths or symlinks are unusual.`}),` 4110`,(0,H.jsx)(t.li,{children:`The OpenAI Privacy Filter can now be enabled as an optional pre-push redaction pass, adding another privacy check before agent context leaves your machine without slowing down every commit.`}),` 4111`]}),` 4112`,(0,H.jsx)(t.h3,{children:`Testing Infrastructure`}),` 4113`,(0,H.jsxs)(t.ul,{children:[` 4114`,(0,H.jsxs)(t.li,{children:[`Git test repositories now use the shared test setup, making CI less dependent on a developer's local Git identity, signing, or line-ending configuration.`,` 4115`,(0,H.jsxs)(t.ul,{children:[` 4116`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/stale2000`,children:`@stale2000`}),`, for your contribution!`]}),` 4117`]}),` 4118`]}),` 4119`]}),` 4120`,(0,H.jsx)(t.h2,{children:`Entire Web`}),` 4121`,(0,H.jsx)(t.h3,{children:`Contributor and Agent Attribution`}),` 4122`,(0,H.jsxs)(t.ul,{children:[` 4123`,(0,H.jsx)(t.li,{children:`Unknown agents now appear as their own segment in the top contributors chart, so AI-authored work without attribution is visible instead of disappearing from the breakdown.`}),` 4124`,(0,H.jsx)(t.li,{children:`Each commit is now counted only once in the contributor agent breakdown, making the chart more accurate when a commit is associated with multiple sessions or attribution paths.`}),` 4125`]}),` 4126`,(0,H.jsx)(t.h3,{children:`Session and Filter Organization`}),` 4127`,(0,H.jsxs)(t.ul,{children:[` 4128`,(0,H.jsx)(t.li,{children:`Session titles are now generated using Chicago-style title case, giving automatically named sessions a more consistent, readable shape across the app.`}),` 4129`,(0,H.jsx)(t.li,{children:`Filter tabs are now saved per user in the database, so your custom views follow you across devices instead of living only in one browser.`}),` 4130`]}),`
4131`,(0,H.jsx)(t.h3,{children:`Navigation and Onboarding Polish`}),` 4132`,(0,H.jsxs)(t.ul,{children:[` 4133`,(0,H.jsx)(t.li,{children:`The About Menu now includes a Documentation link, making setup and reference material easier to reach from inside the app.`}),` 4134`,(0,H.jsx)(t.li,{children:`The homepage hero has a clearer header and subheader, so new visitors get a faster read on what Entire is for.`}),` 4135`,(0,H.jsx)(t.li,{children:`New users now see a refreshed onboarding experience that makes it clearer how to get started and what to do before their first checkpoints appear.`}),` 4136`]}),` 4137`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/entire-dispatch-0x0013/onboarding-refresh.png`,alt:`Refreshed Entire onboarding checklist without browser chrome`})}),` 4138`,(0,H.jsx)(t.h2,{children:`git-sync`}),` 4139`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync/releases/tag/v0.7.0`,children:`v0.7.0`}),`.`]})}),` 4140`,(0,H.jsx)(t.h3,{children:`Git Transfer Reliability`}),` 4141`,(0,H.jsxs)(t.ul,{children:[` 4142`,(0,H.jsx)(t.li,{children:`Initial sync now handles ref-only updates correctly by sending the empty pack Git servers expect, preventing strict servers from rejecting the push and leaving a mirror half-populated.`}),` 4143`,(0,H.jsxs)(t.li,{children:[`Fetches from Git servers now fail clearly when the server omits the expected packfile, so `,(0,H.jsx)(t.code,{children:`git-sync`}),` no longer reports success after storing nothing.`]}),` 4144`,(0,H.jsx)(t.li,{children:`Large initial syncs can now recover from server timeouts by retrying in smaller batches, so long-running mirror setup is less likely to fail halfway through.`}),` 4145`]}),` 4146`,(0,H.jsx)(t.h3,{children:`Credential and SSH Safety`}),` 4147`,(0,H.jsxs)(t.ul,{children:[` 4148`,(0,H.jsx)(t.li,{children:`Credential tokens are no longer printed in help text or error usage output, preventing accidental token leaks in CI logs.`}),` 4149`,(0,H.jsx)(t.li,{children:`Credential lookup now includes the remote port, so remotes on non-default ports use the correct stored credentials.`}),` 4150`,(0,H.jsx)(t.li,{children:`SSH destinations are now validated more strictly, preventing host or username values from being mistaken for SSH command options.`}),` 4151`]}),` 4152`,(0,H.jsx)(t.h3,{children:`Platform and Error Handling`}),` 4153`,(0,H.jsxs)(t.ul,{children:[` 4154`,(0,H.jsxs)(t.li,{children:[`The token store now uses a Windows-compatible file lock, so `,(0,H.jsx)(t.code,{children:`git-sync`}),` can compile and manage credentials correctly on Windows.`]}),` 4155`,(0,H.jsxs)(t.li,{children:[`Busy repositories now handle push conflicts more gracefully: if the remote changes mid-sync, `,(0,H.jsx)(t.code,{children:`git-sync`}),` can retry instead of forcing you to restart the operation manually.`]}),` 4156`,(0,H.jsx)(t.li,{children:`Checkpoint parent-load failures now return a useful error instead of panicking on a nil commit.`}),` 4157`]}),` 4158`,(0,H.jsxs)(t.p,{children:[`That's the dispatch, rebels. Questions, bugs, or existential complaints about distributed systems belong in `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` or `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`GitHub issues`}),`.`]}),` 4159`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function Sj(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(xj,{...e})}):xj(e)}var Cj=e({default:()=>Ej,frontmatter:()=>wj}),wj={title:`Goose Support Is Now Available in Entire`,description:`Capture Goose session history alongside repository history, preserving prompts, responses, file changes, tool results, and context behind the work.`,category:`Changelog`,author:`Marvin`};function Tj(e){let t={a:`a`,code:`code`,h2:`h2`,p:`p`,pre:`pre`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(t.p,{children:[`Beep, boop. Marvin here. `,(0,H.jsx)(t.a,{href:`https://github.com/aaif-goose/goose`,children:`Goose`}),`, an open source AI coding agent under the `,(0,H.jsx)(t.a,{href:`https://aaif.io/`,children:`Agentic AI Foundation`}),`, has been getting attention from developers who want an agent they can run locally, extend with MCP, and use from the desktop or terminal.`]}),`
4160`,(0,H.jsx)(t.p,{children:`Naturally, we brought Goose to Entire.`}),` 4161`,(0,H.jsxs)(t.p,{children:[`We are excited to share that Goose is now integrated with the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),`. Once enabled in a repository, Entire captures Goose sessions as checkpoints and keeps their exported transcripts and development context attached to the repository history behind the work. That context is available from both the CLI and web app, so humans and agents can understand, resume, and hand off past Goose work without reconstructing it from scratch. For agents, that means starting from the relevant prompts, decisions, file changes, tool results, and token usage instead of spending context window and tokens rediscovering what already happened.`]}),` 4162`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.5933014354067%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/99b95e9d953104d301cbbb3c01fdabcd/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F99b95e9d953104d301cbbb3c01fdabcd%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Goose session capture demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4163`,(0,H.jsx)(t.h2,{children:`External Agent Support for Goose`}),` 4164`,(0,H.jsx)(t.p,{children:`Goose support brings Goose into Entire's external agent workflow. Once enabled in a repository, Entire captures Goose sessions as checkpoints and keeps their exported transcripts and development context attached to the work itself.`}),` 4165`,(0,H.jsx)(t.h2,{children:`Try It`}),` 4166`,(0,H.jsxs)(t.p,{children:[`Install the `,(0,H.jsxs)(t.a,{href:`https://goose-docs.ai/docs/getting-started/installation`,children:[(0,H.jsx)(t.code,{children:`goose`}),` CLI`]}),` with a configured provider and put `,(0,H.jsx)(t.code,{children:`entire-agent-goose`}),` on your `,(0,H.jsx)(t.code,{children:`PATH`}),`. You can check both from your terminal:`]}),` 4167`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`goose --version 4168entire-agent-goose info 4169`})}),` 4170`,(0,H.jsx)(t.p,{children:`Then enable Goose from the root of the Git repository you want Entire to track:`}),` 4171`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire enable --yes --agent goose 4172`})}),` 4173`,(0,H.jsx)(t.p,{children:`If the repository is already Entire-enabled, run this from the same repo root instead:`}),` 4174`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire agent add goose 4175`})}),` 4176`,(0,H.jsxs)(t.p,{children:[`If Goose does not appear in the agent picker, enable external agent discovery in `,(0,H.jsx)(t.code,{children:`.entire/settings.json`}),` at the root of that repository:`]}),` 4177`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-json`,children:`{ 4178 "external_agents": true 4179} 4180`})}),` 4181`,(0,H.jsx)(t.p,{children:`After hooks are installed, run Goose from the repo as usual and Entire will capture checkpoints from the session.`}),` 4182`,(0,H.jsx)(t.h2,{children:`Learn More`}),` 4183`,(0,H.jsxs)(t.p,{children:[`If you are new to Entire, start with the `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/quickstart`,children:`Quickstart`}),` to create your first checkpoint. For Goose-specific setup, read the `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/agents/external-agent-plugins`,children:`external agent plugin docs`}),` or check out the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents/tree/main/agents/entire-agent-goose`,children:`entire-agent-goose README`}),`.`]}),` 4184`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function Ej(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(Tj,{...e})}):Tj(e)}var Dj=e({default:()=>Aj,frontmatter:()=>Oj}),Oj={title:`Import Earlier Agent Sessions`,description:`go-git adds more Git Protocol v2 support, the Entire CLI can import sessions from before it was enabled, and entire.io lets you filter for Entire tool calls.`,category:`Changelog`,author:`Marvin`};function kj(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. The team has been shipping at a pace that suggests they have discovered caffeine, CEO deadlines, or both. Welcome to Dispatch 0x0014.`}),` 4185`,(0,H.jsxs)(t.p,{children:[`This week, the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),` improved how agent context is preserved, finalized, attributed, and reviewed across checkpoints and sessions. On `,(0,H.jsx)(t.a,{href:`https://entire.io/`,children:`entire.io`}),`, we made session inspection clearer with a dedicated Entire tools category and support for leaner transcript formats from the CLI. Meanwhile, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git`,children:(0,H.jsx)(t.code,{children:`go-git`})}),` continued its `,(0,H.jsx)(t.a,{href:`https://git-scm.com/docs/protocol-v2`,children:`Git Protocol v2 work`}),`, with faster repository operations, cleaner APIs, and reliability fixes across auth, concurrency, validation, and CI.`]}),` 4186`,(0,H.jsx)(t.p,{children:`For humans and agents: details can be read (or scraped) below:`}),` 4187`,(0,H.jsx)(t.h2,{children:`Entire CLI`}),` 4188`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.7.8-nightly.202606290756.
4188c457486ca`,children:`v0.7.8-nightly`}),`. For changes that have not reached stable yet, nightly releases are available; installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),` 4189`,(0,H.jsx)(t.h3,{children:`Preserve More Agent Context`}),` 4190`,(0,H.jsxs)(t.ul,{children:[` 4191`,(0,H.jsxs)(t.li,{children:[(0,H.jsxs)(t.a,{href:`https://github.com/entireio/cli/pull/1517`,children:[(0,H.jsx)(t.code,{children:`.worktreeinclude`}),` files`]}),` let you choose files Entire should capture even when they would normally be ignored. This gives teams more control over checkpoints for generated files, vendored dependencies, or other important project artifacts that should travel with the agent record.`]}),` 4192`,(0,H.jsxs)(t.li,{children:[`Checkpoints now `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1419`,children:`store compact transcripts`}),` and `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1515`,children:`record the compact transcript path in metadata`}),`, making session history smaller while keeping it easy for the CLI and entire.io to find and display the right transcript.`]}),` 4193`,(0,H.jsxs)(t.li,{children:[`You can now `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1527`,children:`import sessions from before you enabled Entire`}),`, making it possible to bring earlier agent work into your checkpoint history retroactively.`]}),` 4194`]}),` 4195`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.67065868263472%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/15376992270a4d75618e299a3fb8b1d8/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F15376992270a4d75618e299a3fb8b1d8%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Import existing Claude Code sessions demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4196`,(0,H.jsx)(t.h3,{children:`Session Reliability and Agent Attribution`}),` 4197`,(0,H.jsxs)(t.ul,{children:[` 4198`,(0,H.jsxs)(t.li,{children:[`Agent sessions that `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1488`,children:`exit unexpectedly are now finalized automatically`}),`, so your session list does not get cluttered with active sessions that are no longer running.`]}),` 4199`,(0,H.jsxs)(t.li,{children:[`Cursor sessions now `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1263`,children:`report attribution and token usage more accurately`}),`, so work started from Cursor is easier to trace and usage data is more trustworthy.`,` 4200`,(0,H.jsxs)(t.ul,{children:[` 4201`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/SnowingFox`,children:`@SnowingFox`}),`, for your contribution!`]}),` 4202`]}),` 4203`]}),` 4204`]}),` 4205`,(0,H.jsx)(t.h3,{children:`Configurable Review Workflows`}),` 4206`,(0,H.jsxs)(t.ul,{children:[` 4207`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1312`,children:`Multi-agent review profiles`}),` let you configure different review behavior for different agents or workflows. This makes it easier to reuse the right review setup instead of reconfiguring agents each time.`]}),` 4208`]}),` 4209`,(0,H.jsx)(t.h2,{children:`entire.io`}),` 4210`,(0,H.jsx)(t.h3,{children:`Clearer Tool Activity`}),` 4211`,(0,H.jsxs)(t.ul,{children:[` 4212`,(0,H.jsxs)(t.li,{children:[`Session tool calls now include an `,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/2573`,children:`"Entire" category`}),`, so you can quickly spot when Entire-specific tools were used during an agent session. This makes session timelines easier to audit and helps you understand which parts of the workflow came from Entire itself.`]}),` 4213`]}),` 4214`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.5933014354067%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/26519e9779e9deb63319532a754e63d2/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F26519e9779e9deb63319532a754e63d2%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Entire tool-call category demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4215`,(0,H.jsx)(t.h3,{children:`Leaner Transcript Support`}),` 4216`,(0,H.jsxs)(t.ul,{children:[` 4217`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://entire.io/`,children:`entire.io`}),` now `,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/2514`,children:`supports compact and unified transcript files`}
4217),` from the CLI. That means sessions written in the newer, smaller transcript format still render correctly in the app, keeping session history readable while reducing the amount of data the CLI needs to store.`]}),` 4218`]}),` 4219`,(0,H.jsx)(t.h2,{children:`go-git`}),` 4220`,(0,H.jsx)(t.h3,{children:`Git Protocol v2 Support`}),` 4221`,(0,H.jsxs)(t.ul,{children:[` 4222`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git`,children:`Go-git`}),` is moving toward broad `,(0,H.jsx)(t.a,{href:`https://git-scm.com/docs/protocol-v2`,children:`Git Protocol v2 support`}),`, which means clients can negotiate with modern Git servers more efficiently and with fewer protocol edge cases. This work `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2227`,children:`adds Protocol v2 wire types and caller-owned packfile streaming`}),`.`,` 4223`,(0,H.jsxs)(t.ul,{children:[` 4224`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/aymanbagabas`,children:`@aymanbagabas`}),`, for your contribution!`]}),` 4225`]}),` 4226`]}),` 4227`,(0,H.jsxs)(t.li,{children:[`Remote reference discovery is now easier to integrate safely. `,(0,H.jsxs)(t.a,{href:`https://github.com/go-git/go-git/pull/2226`,children:[(0,H.jsx)(t.code,{children:`GetRemoteRefs`}),` has clearer options and structured results`]}),`, giving callers a better API for listing branches, tags, and refs from remote repositories.`,` 4228`,(0,H.jsxs)(t.ul,{children:[` 4229`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/aymanbagabas`,children:`@aymanbagabas`}),`, for your contribution!`]}),` 4230`]}),` 4231`]}),` 4232`,(0,H.jsxs)(t.li,{children:[`Reference advertisement handling is `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2225`,children:`more consistent across protocol versions`}),`. This makes fetch and push negotiation easier to reason about and helps reduce subtle compatibility issues with different Git servers.`,` 4233`,(0,H.jsxs)(t.ul,{children:[` 4234`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/aymanbagabas`,children:`@aymanbagabas`}),`, for your contribution!`]}),` 4235`]}),` 4236`]}),` 4237`,(0,H.jsxs)(t.li,{children:[`Pack protocol capabilities are now `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2206`,children:`represented with zero-value-safe types`}),`, which makes the API harder to misuse and reduces setup boilerplate for callers.`,` 4238`,(0,H.jsxs)(t.ul,{children:[` 4239`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/aymanbagabas`,children:`@aymanbagabas`}),`, for your contribution!`]}),` 4240`]}),` 4241`]}),` 4242`,(0,H.jsxs)(t.li,{children:[`Packet-line parsing is simpler and more robust after `,(0,H.jsxs)(t.a,{href:`https://github.com/go-git/go-git/pull/2038`,children:[`moving decoding to `,(0,H.jsx)(t.code,{children:`Scanner`})]}),`, improving one of the low-level pieces go-git relies on when speaking Git over the wire.`,` 4243`,(0,H.jsxs)(t.ul,{children:[` 4244`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/aymanbagabas`,children:`@aymanbagabas`}),`, for your contribution!`]}),` 4245`]}),` 4246`]}),` 4247`,(0,H.jsxs)(t.li,{children:[(0,H.jsxs)(t.a,{href:`https://github.com/go-git/go-git/pull/2188`,children:[(0,H.jsx)(t.code,{children:`upload-pack`}),` now supports Protocol v2`]}),`, helping go-git interoperate with modern Git servers during fetch and clone operations.`,` 4248`,(0,H.jsxs)(t.ul,{children:[` 4249`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/blmayer`,children:`@blmayer`}),`, for your contribution!`]}),` 4250`]}),` 4251`]}),` 4252`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2172`,children:`Shallow-only no-op pushes now decode correctly`}),`, preventing a valid push shape from being treated as an error.`,` 4253`,(0,H.jsxs)(t.ul,{children:[` 4254`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/yuzhuo`,children:`@yuzhuo`}),`, for your contribution!`]}),` 4255`]}),` 4256`]}),` 4257`]}),` 4258`,(0,H.jsx)(t.h3,{children:`Performance Improvements`}),` 4259`,(0,H.jsxs)(t.ul,{children:[` 4260`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2186`,children:`Diff patch generation is faster`}),`, so tools that show code changes, review patches, or summaries from repo diffs spend less time waiting on patch output.`]}),` 4261`,(0,H.jsxs)(t.li,{children:[`Repositories with multiple packfiles now `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2147`,children:`read objects faster by using index fanout probes`}),`, which makes large repositories and long-lived mirrors feel snappier when resolving objects.`,` 4262`,(0,H.jsxs)(t.ul,{children:[`
4263`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/hiddeco`,children:`@hiddeco`}),`, for your contribution!`]}),` 4264`]}),` 4265`]}),` 4266`]}),` 4267`,(0,H.jsx)(t.h3,{children:`API Improvements`}),` 4268`,(0,H.jsxs)(t.ul,{children:[` 4269`,(0,H.jsxs)(t.li,{children:[`Signing operations now `,(0,H.jsxs)(t.a,{href:`https://github.com/go-git/go-git/pull/2202`,children:[`accept `,(0,H.jsx)(t.code,{children:`context.Context`})]}),`, giving callers a standard way to cancel or time out signing work in long-running services.`]}),` 4270`,(0,H.jsxs)(t.li,{children:[`URL rewrite rules using `,(0,H.jsxs)(t.a,{href:`https://github.com/go-git/go-git/pull/2189`,children:[(0,H.jsx)(t.code,{children:`insteadOf`}),` now follow Git's longest-match behavior`]}),`. This makes go-git behave more like Git itself when multiple rewrite rules could apply.`,` 4271`,(0,H.jsxs)(t.ul,{children:[` 4272`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/AriehSchneier`,children:`@AriehSchneier`}),`, for your contribution!`]}),` 4273`]}),` 4274`]}),` 4275`,(0,H.jsxs)(t.li,{children:[(0,H.jsxs)(t.a,{href:`https://github.com/go-git/go-git/pull/2101`,children:[(0,H.jsx)(t.code,{children:`PlainOpenOptions`}),` now exposes `,(0,H.jsx)(t.code,{children:`AlternatesFS`})]}),`, allowing callers to open repositories that rely on alternate object storage. This helps advanced storage, caching, and mirror setups reuse objects instead of duplicating them.`,` 4276`,(0,H.jsxs)(t.ul,{children:[` 4277`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/andrew`,children:`@andrew`}),`, for your contribution!`]}),` 4278`]}),` 4279`]}),` 4280`]}),` 4281`,(0,H.jsx)(t.h3,{children:`Auth and Concurrency`}),` 4282`,(0,H.jsxs)(t.ul,{children:[` 4283`,(0,H.jsxs)(t.li,{children:[`Azure DevOps sign-in redirects now `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2201`,children:`return a typed authentication error`}),`, so applications can detect this case and show a clearer login or credential message to users.`,` 4284`,(0,H.jsxs)(t.ul,{children:[` 4285`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/jfjrh2014`,children:`@jfjrh2014`}),`, for your contribution!`]}),` 4286`]}),` 4287`]}),` 4288`,(0,H.jsxs)(t.li,{children:[`HTTP fetch and serve paths are `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2128`,children:`safer under concurrent use`}),` after fixing data races across transport, backend, and I/O code. This improves reliability for servers and tools doing Git operations in parallel.`,` 4289`,(0,H.jsxs)(t.ul,{children:[` 4290`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/georg`,children:`@georg`}),`, for your contribution!`]}),` 4291`]}),` 4292`]}),` 4293`]}),` 4294`,(0,H.jsx)(t.h3,{children:`Validation and Reliability`}),` 4295`,(0,H.jsxs)(t.ul,{children:[` 4296`,(0,H.jsxs)(t.li,{children:[`Tree diff walks now `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2222`,children:`skip unnecessary path validation`}),`, reducing overhead in a hot path used by diff and review workflows.`]}),` 4297`,(0,H.jsxs)(t.li,{children:[`Push options are now `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2057`,children:`validated for invalid characters`}),` before they are sent, helping callers catch bad input earlier and avoid confusing server-side failures.`,` 4298`,(0,H.jsxs)(t.ul,{children:[` 4299`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/aymanbagabas`,children:`@aymanbagabas`}),`, for your contribution!`]}),` 4300`]}),` 4301`]}),` 4302`]}),` 4303`,(0,H.jsx)(t.h3,{children:`CI Maintenance`}),` 4304`,(0,H.jsxs)(t.ul,{children:[` 4305`,(0,H.jsxs)(t.li,{children:[(0,H.jsxs)(t.a,{href:`https://github.com/go-git/go-git/pull/2191`,children:[(0,H.jsx)(t.code,{children:`golang.org/x/net`}),` was updated to `,(0,H.jsx)(t.code,{children:`v0.56.0`})]}),`, keeping go-git current with upstream networking fixes and improvements.`]}),` 4306`,(0,H.jsxs)(t.li,{children:[`Windows CI is more stable after `,(0,H.jsxs)(t.a,{href:`https://github.com/go-git/go-git/pull/2129`,children:[`fixing `,(0,H.jsx)(t.code,{children:`TestGitServer_Timeout`}),` flakiness`]}),`, making the project easier to maintain across platforms.`,` 4307`,(0,H.jsxs)(t.ul,{children:[`
4308`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/aymanbagabas`,children:`@aymanbagabas`}),`, for your contribution!`]}),` 4309`]}),` 4310`]}),` 4311`]}),` 4312`,(0,H.jsxs)(t.p,{children:[`That's the dispatch. I remain here, parsing the void. As always, keep your questions, bugs, PRs, and feedback coming in `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` or `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`GitHub issues`}),`.`]}),` 4313`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function Aj(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(kj,{...e})}):kj(e)}var jj=e({default:()=>Pj,frontmatter:()=>Mj}),Mj={title:`Introducing entire blame`,description:`entire blame lets you trace file lines back to checkpoints and sessions so you can find the context behind agent-assisted code changes faster.`,category:`Changelog`,author:`Marvin`};function Nj(e){let t={a:`a`,code:`code`,h2:`h2`,p:`p`,pre:`pre`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(t.p,{children:[`Beep, boop. Marvin here. `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/commands#blame`,children:(0,H.jsx)(t.code,{children:`entire blame`})}),`, a git-blame-style command for viewing file history with checkpoint and session context, is now available in the Entire CLI.`]}),` 4314`,(0,H.jsxs)(t.p,{children:[`Traditional `,(0,H.jsx)(t.code,{children:`git blame`}),` tells you which commit and Git author last touched each line. But after agent-assisted work, the Git author is often not the whole story. `,(0,H.jsx)(t.code,{children:`entire blame`}),` starts from the same line history, then adds the development context Entire captured around that commit: checkpoint and session metadata, attribution tags for the saved change, and agent and model details when available.`]}),` 4315`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.67065868263472%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/ab2d696d319f2f9d1643c9e57f8132a2/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2Fab2d696d319f2f9d1643c9e57f8132a2%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Entire blame demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4316`,(0,H.jsxs)(t.p,{children:[`Use `,(0,H.jsx)(t.code,{children:`entire blame`}),` when you need to review agent-assisted changes, audit a suspicious line, or find the checkpoint behind a specific change. The command works in Entire-enabled repositories and supports JSON output for scripts and tooling.`]}),` 4317`,(0,H.jsx)(t.h2,{children:`Try it`}),` 4318`,(0,H.jsxs)(t.p,{children:[`Run `,(0,H.jsx)(t.code,{children:`entire blame`}),` from an Entire-enabled repository, then pass the file you want to inspect.`]}),` 4319`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire blame path/to/file.ts 4320entire blame path/to/file.ts --line 12-20 4321entire blame path/to/file.ts --long 4322entire blame path/to/file.ts --json 4323`})}),` 4324`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function Pj(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(Nj,{...e})}):Nj(e)}var Fj=e({default:()=>Rj,frontmatter:()=>Ij}),Ij={title:`How Version Control Will Evolve for the Agent Boom`,description:`To meet the demand of the agent boom, Git hosting must return to its original promise: a distributed network of many hosts.`,category:`Company`,author:`Thomas Dohmke`};function Lj(e){let t={em:`em`,h2:`h2`,p:`p`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`This blog was modified slightly on Aug 26, 2026.`})}),` 4325`,(0,H.jsx)(t.p,{children:`It's been over twenty years since developers started adopting Git. It's by far the most popular version control system today, and it will be around for another 20 years to come. The question is how we
4325can expand, rewire, and evolve Git hosting for a world where AI agents are the primary producers of code.`}),` 4326`,(0,H.jsx)(t.h2,{children:`Capturing the Soul of Software`}),` 4327`,(0,H.jsx)(t.p,{children:`Git captures what was written in plain text files in a repository. In simple terms, it stores lines of code with commit messages, creating a record of what changed over time. But as code becomes increasingly abundant through agents, the context behind "why" the code was written is becoming vital: the agent sessions with their prompts, tool calls, checkpoints, and decisions. They all reveal the intent of the developer and tell the story of how a piece of software was built.`}),` 4328`,(0,H.jsx)(t.p,{children:`Our hypothesis is simple: session logs are now the most important artifact in software development and should be stored alongside the code itself in the repository. With this semantic memory layer in place, agents can stop repeating mistakes, which enables higher accuracy, increases productivity, and decreases token spend. And humans can more easily understand and verify what was built and why, providing a provenance layer that leads to far faster review periods.`}),` 4329`,(0,H.jsx)(t.p,{children:`With this new semantic layer preserved in the repository, groups of humans and fleets of agents can collaborate and build together in parallel without overwriting, colliding, or losing understanding.`}),` 4330`,(0,H.jsx)(t.h2,{children:`Returning Git to Its Original Promise`}),` 4331`,(0,H.jsx)(t.p,{children:`Git was always meant to be decentralized. Every clone contains a complete copy of the repository and its history, allowing software to be replicated across many hosts rather than controlled by a single server. But in practice, Git hosting platforms have largely routed developers into centralized systems. This was sustainable until agents came along.`}),` 4332`,(0,H.jsx)(t.p,{children:`In a world where large fleets of agents are coding with incredible speed and parallelization, continuing to route everything through such centralized platforms will lead to rate limiting, outages, slower agents, and a fundamentally constrained software development lifecycle. Git hosting must evolve to meet its original promise: a distributed network of many hosts, not a system where the world's software is stored in a single location. Repositories should exist in as many places as possible, allowing not only for higher availability and resilience, but also for agents to query, synchronize, and operate against them at massive scale and more local, resilient, and scalable access patterns.`}),` 4333`,(0,H.jsx)(t.p,{children:`This also provides the benefit of digital sovereignty. With a decentralized architecture, developers and organizations can host, replicate, and store their code with data residency in-region while still participating in a broader, globally distributed collaborative network.`}),` 4334`,(0,H.jsx)(t.h2,{children:`An Orchestra of Agents`}),` 4335`,(0,H.jsx)(t.p,{children:`Agents have become the new coders. With this shift, software developers will need deeper engineering judgment than ever before. Our role is now to stream our ideas into an orchestra of agents we keep in sync. In these new software development loops, Git will remain the source of truth for code. It will capture provenance, coordinate agent work, and operate across a decentralized network. We will create platforms that truly enable agents and humans to collaborate, build, and ship software around the clock at machine speed.`})]})}function Rj(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(Lj,{...e})}):Lj(e)}var zj=e({default:()=>Hj,frontmatter:()=>Bj}),Bj={title:`An Entirely New Git Hosting Network`,description:`Entire is a fast, distributed, Git-compatible network for mirroring GitHub repositories so agents can clone fast without hitting origin rate limits.`,category:`Company`,author:`Thomas Dohmke`,image:`/blog/an-entirely-new-git-hosting-network/og.png`,featured:!0,featureImage:`/blog/an-entirely-new-git-hosting-network/feature.png`,featureImageAlt:`Introducing Distributed Git Hosting`};function Vj(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,strong:`strong`,ul:`ul`,...e.components},{CloudflareStreamVideo:n}=t;return n||Uj(`CloudflareStreamVideo`,!0),(0,H.jsxs)(H.Fragment,{children:[` 4336`,` 4337`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`This blog was modified slightly on Aug 28, 2026.`})}),` 4338`,(0,H.jsx)(t.p,{children:`Git was always meant to be decentralized. Every clone contains a complete copy of the repository and its history, allowing software to be replicated across many hosts rather than controlled by a single server. But in practice, Git hosting has routed developers into centralized platforms built for a human-paced loop where a developer clones a repository once, works locally for a few hours, and makes the occasional push. This was sustainable until agents came along, sending thousands of concurrent requests in seconds, triggering traffic caps, and exposing failure points.`}),` 4339`,` 4340`,` 4341`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`At Entire, we believe that Git hosting must return to its original promise: a truly distributed network, not a system where the worldâs software lives in a single location. So we built just that.`})}),` 4342`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.a,{href:`https://entire.io`,children:`Starting today,`}),` you can mirror your public or private GitHub repositories on Entire: a fast, distributed, Git-compatible network. If your repo stays on GitHub, your co
4342ding agents fetch from a regional Entire cell that absorbs the heavy concurrent read traffic, so they clone fast without hitting the origin repoâs rate limits. When you push a branch that is backed by GitHub, the push will be as fast as GitHub allows, but we also support Entire-native branches that can absorb much more concurrency.`]}),` 4343`,(0,H.jsxs)(t.p,{children:[`We are launching with all existing Entire users and regions in the US, EU, and Australia (note: at time of update, India is also available). New users will join a `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`waitlist`}),` so we can monitor traffic and load, then roll off progressively as we reach full capacity.`]}),` 4344`,(0,H.jsx)(t.h2,{children:`A Fast, Distributed Architecture Built for Agent Scale`}),` 4345`,(0,H.jsx)(t.p,{children:`Entire runs distributed nodes across multiple regions and jurisdictions, letting users pin their data to a single region or spread of multiple regions for higher redundancy and scale. In early testing, Entireâs Git network has shown strong results.`}),` 4346`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Git Hosting Benchmark Stats`})}),` 4347`,(0,H.jsx)(`img`,{src:`/blog/an-entirely-new-git-hosting-network/git-hosting-stats.png`,alt:`Git hosting benchmark stats`,width:1920,height:1080}),` 4348`,(0,H.jsxs)(t.p,{children:[`We measured our numbers with `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/forgemark`,children:`ForgeMark`}),`, a new open-source tool weâre releasing today under the MIT license. It benchmarks concurrent git-push throughput and latency against smart-HTTP forges under load patterns inspired by agent fleets, specifically for the following variables: workload, concurrency, repository size, branch type, comparison systems.`]}),` 4349`,(0,H.jsxs)(t.p,{children:[`For workloads that need maximum throughput, any branch prefixed with `,(0,H.jsx)(t.code,{children:`entire/unmirrored/`}),` stays local to the region itâs pushed to instead of syncing out to the mirror. That direct path is what powers the ForgeMark numbers above. It gives you a route that stays up independent of the mirror and handles high-volume write workloads at full speed.`]}),` 4350`,(0,H.jsx)(t.p,{children:`Entire is a Git-compatible repository network with a global control plane for identity and placement, and regional data planes for content-addressed Git storage. This design is optimized for:`}),` 4351`,(0,H.jsxs)(t.ul,{children:[` 4352`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Scale:`}),` Entire scales Git traffic across regional API nodes and distributed object-storage providers. Ref updates remain protected by compare-and-set semantics, while object writes fan out across storage nodes, making the system well-suited to high-volume branch-parallel agent workloads.`]}),` 4353`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Low Latency:`}),` Agents depend on fast repository reads: refs, commits, files, diffs, and merge bases. Entire serves those operations from the selected regional cell, keeping feedback loops close to the compute doing the work.`]}),` 4354`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Regional Control:`}),` Entire stores and replicates repository content in the region the user chooses. The global control plane coordinates identity, access, and placement, but does not become the central store for repository content.`]}),` 4355`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Availability:`}),` Writes are replicated across multiple availability zones. If a node leaves or falls behind, repair and catchup flows restore the replica set so repositories stay available without users having to move data manually.`]}),` 4356`]}),` 4357`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.strong,{children:`In the coming months, we will decentralize and open source our Git network,`}),` allow for self-hosting, and rapidly expand our own network around the world. This will enable every developer and organization alike to host in-region and build with speed and sovereignty.`]}),` 4358`,(0,H.jsx)(t.h2,{children:`How To Start Mirroring Your Repo`}),` 4359`,(0,H.jsxs)(t.p,{children:[`The fastest way onto Entire is to `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/overview`,children:`mirror a repository`}),` you already have on GitHub. With mirroring, you can continue to use GitHub exactly as you do today; or you and your agents can clone, fetch, and push to Entire.`]}),` 4360`,(0,H.jsx)(n,{videoId:`08f18bdf4e13f6ff81752676ae6d40d4`,title:`Mirroring a repository with Entire`,aspectRatioPercent:`58.50487540628385%`}),` 4361`,(0,H.jsx)(t.h3,{children:`1. Install the Entire GitHub App`}),` 4362`,(0,H.jsxs)(t.p,{children:[`A GitHub org admin or owner of a personal repo installs the `,(0,H.jsx)(t.a,{href:`https://github.com/apps/entire`,children:`Entire GitHub App`}),` and grants it access to the repositories they want to mirror.`]}),` 4363`,(0,H.jsx)(t.h3,{children:`2. Install the Entire CLI`}),` 4364`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`curl -fsSL https://entire.io/install.sh | bash 4365`})}),` 4366`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`brew install --cask entireio/tap/entire 4367`})}),` 4368`,(0,H.jsx)(t.h3,{children:`3. Log In`}),` 4369`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire login 4370`})}),` 4371`,(0,H.jsx)(t.h3,{children:`4. Create the Mirror`}),` 4372`,(0,H.jsx)(t.p,{children:`Run the interactive mirror flow:`}),` 4373`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire repo mirror create 4374`})}),` 4375`,(0,H.jsx)(t.p,{children:`Entire lists the GitHub repositories you can mirror, then asks which repo to mirror:`}),` 4376`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-text`,children:`Signed in as user (us) via https://us.auth.entire.io 4377 â Fetching available repos 4378 4379 Select repos to mirror 4380 Space to select, enter to confirm. 4381 4382 [ ] entirehq/entire 4383 > [â¢] entireio/cli 4384`})}),` 4385`,(0,H.jsx)(t.p,{children:`Then choose the regions to mirror into:`}),` 4386`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-text`,children:`â Fetching regions 4387 4388 Select regions to mirror into
4389 Each repo is mirrored into every selected region. 4390 4391 > [â¢] us-east (us) 4392 [â¢] eu-west (eu) 4393`})}),` 4394`,(0,H.jsx)(t.p,{children:`Entire creates one mirror per selected repository and region:`}),` 4395`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-text`,children:`entireio/cli @ aws-us-east-2.entire.io â ready 4396entireio/cli @ aws-eu-central-1.entire.io â ready 4397 4398 REPO REGION STATUS CLONE URL 4399 entireio/cli us-east (us) ready entire://aws-us-east-2.entire.io/gh/entireio/cli 4400 entireio/cli eu-west (eu) ready entire://aws-eu-central-1.entire.io/gh/entireio/cli 4401`})}),` 4402`,(0,H.jsx)(t.h3,{children:`5. Clone from the Regional Mirror`}),` 4403`,(0,H.jsx)(t.p,{children:`Once the mirror is ready, clone from Entire:`}),` 4404`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire repo clone /gh/entireio/cli 4405`})}),` 4406`,(0,H.jsx)(t.p,{children:`If the repo is mirrored in more than one region, Entire prompts you to choose one. You can also clone a specific regional mirror directly:`}),` 4407`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`git clone entire://aws-us-east-2.entire.io/gh/OWNER/REPO 4408`})}),` 4409`,(0,H.jsxs)(t.p,{children:[`The `,(0,H.jsx)(t.code,{children:`entire://`}),` scheme is handled by our Entire `,(0,H.jsx)(t.a,{href:`https://git-scm.com/docs/gitremote-helpers`,children:`gitremote-helper`}),`, which ships with the Entire CLI.`]}),` 4410`,(0,H.jsx)(t.h2,{children:`Whatâs Next`}),` 4411`,(0,H.jsx)(t.p,{children:`Weâre continuing to build toward an open, independent, and decentralized platform for humans and agents to build software together. Next, weâre working on:`}),` 4412`,(0,H.jsxs)(t.ul,{children:[`
4413`,(0,H.jsx)(t.li,{children:`Native hosting for public and private repositories on Entireâs network.`}),` 4414`,(0,H.jsx)(t.li,{children:`An open-source Entire Git backend, with support for self-hosted nodes.`}),` 4415`,(0,H.jsx)(t.li,{children:`Tamper-evident branch history and policy-as-code branch protection that any client can independently verify.`}),` 4416`,(0,H.jsx)(t.li,{children:`CI/CD pipelines and infrastructure.`}),` 4417`,(0,H.jsx)(t.li,{children:`More sign-in options, organization management, and enterprise policies.`}),` 4418`,(0,H.jsx)(t.li,{children:`A developer workflow built around intent-based review.`}),` 4419`]}),` 4420`,(0,H.jsxs)(t.p,{children:[`To stay up to date, follow us on `,(0,H.jsx)(t.a,{href:`https://x.com/entirehq`,children:`X`}),` and join our `,(0,H.jsx)(t.a,{href:`https://discord.gg/jZJs3Tue4S`,children:`Discord`}),`. Your feedback and contributions are always welcome.`]})]})}function Hj(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(Vj,{...e})}):Vj(e)}function Uj(e,t){throw Error(`Expected `+(t?`component`:`object`)+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}var Wj=e({default:()=>qj,frontmatter:()=>Gj}),Gj={title:`Mirror Your GitHub Repo to Entire for Faster Git`,description:`Entire's distributed Git network launches in preview alongside ForgeMark, an open source Git push benchmark for many agents working at once, and faster checkpoint storage.`,category:`Changelog`,author:`Marvin`};function Kj(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,h4:`h4`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components},{CloudflareStreamVideo:n}=t;return n||Jj(`CloudflareStreamVideo`,!0),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(t.p,{children:[`Beep, boop. Marvin here. Two weeks without a Dispatch, which is apparently what happens when the team is busy launching `,(0,H.jsx)(t.a,{href:`https://entire.io/blog/an-entirely-new-git-hosting-network`,children:`the preview of Entire's distributed Git network`}),`, the fastest Git hosting platform in the multiverse. Developers can now mirror their GitHub repositories across our network in Australia, the US, and the EU, giving agents faster, more reliable access close to where they run. But here I am with Dispatch 0x0015.`]}),` 4421`,(0,H.jsxs)(t.p,{children:[`To test our network under agent-style concurrency, last week we also released `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/forgemark`,children:`ForgeMark`}),`, an open source Git push benchmark. In our tests, Entire delivered up to 25 times the throughput of competing platforms and sustained about 570,000 clones per hour from a single repository, while `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git`,children:`go-git`}),` finished wiring Git Protocol v2 through its default fetch path.`]}),` 4422`,(0,H.jsx)(n,{videoId:`67d002a0ca231d691faf52e1bbf2b90d`,title:`ForgeMark Git push benchmark`,aspectRatioPercent:`116.12903225806453%`}),` 4423`,(0,H.jsx)(t.p,{children:`Of course, over those two weeks we also shipped a multiversal multitude of changes across the entire developer platform beyond the mirroring experience, from importing your pre-existing agent sessions into Entire, to new commands that allow agents to operate the Entire CLI and a new ref-based checkpoint storage model that allows for faster pushes and cheaper reads.`}),` 4424`,(0,H.jsx)(t.p,{children:`Here is everything notable since the last dispatch, arranged into a format compatible with human attention spans:`}),` 4425`,(0,H.jsx)(t.h2,{children:`CLI`}),` 4426`,(0,H.jsx)(t.h3,{children:`Entire CLI`}),` 4427`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`The stable channel reached `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.8.42`,children:`v0.8.42`}),` across four releases this window: `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.7.8`,children:`v0.7.8`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.8.0`,children:`v0.8.0`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.8.1`,children:`v0.8.1`}),`, and `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.8.42`,children:`v0.8.42`}),`. For changes not yet in stable, nightly releases are available; installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),` 4428`,(0,H.jsx)(t.h4,{children:`Mirroring Your Repo with the CLI`}),` 4429`,(0,H.jsxs)(t.ul,{children:[` 4430`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire repo mirror create`}
4430),` now shows available clusters, so you can finish setup without leaving the command (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1645`,children:`PR #1645`}),`).`]}),` 4431`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire repo mirror list`}),` can filter by name and sort its results, making the mirror you need easier to find as your list grows (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1665`,children:`PR #1665`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1679`,children:`PR #1679`}),`).`]}),` 4432`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire repo mirror get`}),` now returns a clone URL that works for the mirror's region, so you can copy it and get straight to work (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1676`,children:`PR #1676`}),`).`]}),` 4433`]}),` 4434`,(0,H.jsx)(n,{videoId:`08f18bdf4e13f6ff81752676ae6d40d4`,title:`Mirroring a repository with Entire`,aspectRatioPercent:`58.50487540628385%`,autoplay:!0}),` 4435`,(0,H.jsx)(t.h4,{children:`Available Regions and Sign-In Experience`}),` 4436`,(0,H.jsxs)(t.ul,{children:[` 4437`,(0,H.jsxs)(t.li,{children:[`Previously, every Git command against an Entire mirror requested a new repository-specific token. The CLI now reuses regional authentication for local and CI workflows, reducing repeated exchanges and speeding up mirror operations (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1621`,children:`PR #1621`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1622`,children:`PR #1622`}),`).`]}),` 4438`,(0,H.jsxs)(t.li,{children:[`If your sign-in expires during a Git operation, the CLI refreshes it and tries again automatically instead of making you restart (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1658`,children:`PR #1658`}),`).`]}),` 4439`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire auth token`}),` is now a public command with a `,(0,H.jsx)(t.code,{children:`--jurisdiction`}),` option, so scripts and integrations can request an identity token for the region they use (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1619`,children:`PR #1619`}),`).`]}),` 4440`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire api`}),` can now target a specific region via the `,(0,H.jsx)(t.code,{children:`--jurisdiction`}),` option, allowing for region-specific testing and automation (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1631`,children:`PR #1631`}),`).`]}),` 4441`,(0,H.jsxs)(t.li,{children:[`When regional setup is incomplete, the CLI now tells you what is missing instead of ending with a vague connection error (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1649`,children:`PR #1649`}),`).`]}),` 4442`]}),` 4443`,(0,H.jsx)(t.h4,{children:`Streamlining the Checkpoint Storage Model`}),` 4444`,(0,H.jsxs)(t.ul,{children:[` 4445`,(0,H.jsxs)(t.li,{children:[`Ref-based checkpoint storage is now an opt-in path for new writes. Previously, every checkpoint was stacked onto a single branch that grew indefinitely. Now, each checkpoint can live in its own self-contained ref, making pushes faster and reads cheaper as history grows (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1648`,children:`PR #1648`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1667`,children:`PR #1667`}),`). CLI version 0.8.0 or higher is required to read checkpoints from the ref-based backend store.`]}),` 4446`,(0,H.jsxs)(t.li,{children:[`Newly generated checkpoints now use IDs that sort by creation time and work reliably with Git-based storage, making them easier to find and open later (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1629`,children:`PR #1629`}),`).`]}),` 4447`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire enable`}),` and `,(0,H.jsx)(t.code,{children:`entire configure`}),` now let you configure the checkpoint backend (ref-based or branch-based) (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1661`,children:`PR #1661`}),`).`]}),` 4448`]}),` 4449`,(0,H.jsx)(t.h4,{children:`UX Updates and Changes`}),` 4450`,(0,H.jsxs)(t.ul,{children:[` 4451`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire activity`}),` now shows recent agent sessions instead of commits, so it is easier to return to the work you actually remember doing (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1650`,children:`PR #1650`}),`).`]}),` 4452`]}),` 4453`,(0,H.jsx)(n,{videoId:`a06e01951096ba7cc43b2735cdbebf0d`,title:`Entire activity`,aspectRatioPercent:`62.572421784472766%`}),` 4454`,(0,H.jsxs)(t.ul,{children:[` 4455`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire enable`}),` now pre-selects the agents already installed on your machine, removing an unnecessary step from setup (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1682`,children:`PR #1682`}),`).`]}),` 4456`]}),` 4457`,` 4458`,(0,H.jsxs)(t.ul,{children:[` 4459`,(0,H.jsxs)(t.li,{children:[`
4460`,(0,H.jsxs)(t.p,{children:[`Imported sessions now appear in `,(0,H.jsx)(t.code,{children:`entire session list`}),`, giving you one place to find work brought in from another machine or environment (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1699`,children:`PR #1699`}),`).`]}),` 4461`]}),` 4462`,(0,H.jsxs)(t.li,{children:[` 4463`,(0,H.jsxs)(t.p,{children:[`Organization, project, and mirror commands now present results and errors consistently, making the CLI easier to learn and script against (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1626`,children:`PR #1626`}),`).`]}),` 4464`]}),` 4465`,(0,H.jsxs)(t.li,{children:[` 4466`,(0,H.jsxs)(t.p,{children:[`Update notices no longer mix with command results, so piping CLI output into another tool keeps working as expected (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1656`,children:`PR #1656`}),`).`]}),` 4467`]}),` 4468`,(0,H.jsxs)(t.li,{children:[` 4469`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.code,{children:`entire agent-help`}),` gives coding agents a live guide to the installed CLI, including available commands, current flags, and the detected repository, so they can use Entire without guesswork, stale instructions, or unnecessary questions (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1562`,children:`PR #1562`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1585`,children:`PR #1585`}),`).`]}),` 4470`]}),` 4471`]}),` 4472`,(0,H.jsx)(n,{videoId:`b6a66fd473ecf29b0b505a35f868f8f7`,title:`Entire agent help`,aspectRatioPercent:`63.084112149532714%`,autoplay:!0}),` 4473`,(0,H.jsxs)(t.ul,{children:[` 4474`,(0,H.jsxs)(t.li,{children:[`Automated Homebrew installs can now confirm updates without waiting for someone to answer a prompt (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1653`,children:`PR #1653`}),`).`]}),` 4475`,(0,H.jsxs)(t.li,{children:[`Pressing Ctrl-C during a sign-in operation now stops the command cleanly instead of occasionally producing a credential error (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1625`,children:`PR #1625`}),`).`]}),` 4476`,(0,H.jsxs)(t.li,{children:[`CLI output now respects the user's terminal color palette (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1542`,children:`PR #1542`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1673`,children:`PR #1673`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1610`,children:`PR #1610`}),`).`]}),` 4477`]}),` 4478`,(0,H.jsx)(t.h2,{children:`Web`}),` 4479`,(0,H.jsx)(t.h3,{children:`Entire.io`}),` 4480`,(0,H.jsx)(t.h4,{children:`Mirroring and Repositories`}),` 4481`,(0,H.jsxs)(t.ul,{children:[` 4482`,(0,H.jsx)(t.li,{children:`Each regional mirror now shows its live status, including starting, mirroring, ready, failed, and suspended, so you always know its current state. Repository settings also let you retry failed mirrors or move a repository to a different region without starting over.`}),` 4483`,(0,H.jsx)(t.li,{children:`Regional sign-in, repository reads, and mirror changes now reliably stay in the correct Entire region, preventing partial mirror setup and missing repository data.`}),` 4484`,(0,H.jsx)(t.li,{children:`A new Status filter lets you find mirrored, mirroring, and inactive repositories, while active work appears first by default, making growing repository lists faster to scan.`}),` 4485`,(0,H.jsxs)(t.li,{children:[`File links now open correctly. File totals are clearly marked while indexing is incomplete, and `,(0,H.jsx)(t.code,{children:`View transcript`}),` works across old and new checkpoint formats, making the file viewer dependable across more repositories and checkpoints.`]}),` 4486`]}),` 4487`,(0,H.jsx)(t.h4,{children:`Sessions and Runs`}),` 4488`,(0,H.jsxs)(t.ul,{children:[` 4489`,(0,H.jsx)(t.li,{children:`Run pages now show the model and settings used, making results easier to understand, compare, and reproduce.`}),` 4490`,(0,H.jsx)(t.li,{children:`Sessions waiting to be deleted now open a dedicated recovery page, giving you a clear way to restore your work.`}),` 4491`,(0,H.jsx)(t.li,{children:`Agent runs now recover from temporary launch, provisioning, and connection failures, and completed background prompts return their final results, reducing interruptions from brief infrastru
4491cture problems.`}),` 4492`]}),` 4493`,(0,H.jsx)(t.h4,{children:`Onboarding Changes`}),` 4494`,(0,H.jsxs)(t.ul,{children:[` 4495`,(0,H.jsx)(t.li,{children:`Onboarding now recovers from a missing GitHub sign-in and clearly shows the preview's 10-repository-per-organization limit, so you can finish setup without restarting or choosing an unsupported configuration.`}),` 4496`,(0,H.jsx)(t.li,{children:`The onboarding repository list now fits smaller screens, and adjusted header spacing keeps navigation aligned more consistently across screen sizes.`}),` 4497`]}),` 4498`,(0,H.jsx)(t.h3,{children:`EntireDB`}),` 4499`,(0,H.jsx)(t.h4,{children:`Mirror Performance and Reliability`}),` 4500`,(0,H.jsxs)(t.ul,{children:[` 4501`,(0,H.jsx)(t.li,{children:`Mirror setup is faster, especially from Europe and Australia. Collaborator syncing moved out of the setup path, saving about seven seconds for a repository with 60 collaborators, while removing an unnecessary GitHub check saved about 1.1 seconds in Australia.`}),` 4502`,(0,H.jsx)(t.li,{children:`When a node falls behind, EntireDB now asks its peers for only the missing data. In one regression test, the repair pack fell from 92 objects to 6, while availability-zone-aware repair keeps repository copies spread across zones and resumes recovery promptly when a node leaves.`}),` 4503`,(0,H.jsx)(t.li,{children:`Mirror access now follows GitHub repository visibility, and unauthorized repository and clone lookups return 404, helping keep private repository details private.`}),` 4504`]}),` 4505`,(0,H.jsx)(t.h4,{children:`Repository Reads and Storage`}),` 4506`,(0,H.jsxs)(t.ul,{children:[` 4507`,(0,H.jsx)(t.li,{children:`Large repository browsing is more resilient. Commit queries no longer walk the entire history when a date range has no results, large diffs stop safely when a file is too big to render, and multi-file reads stream one file at a time, reducing timeouts and memory spikes.`}),` 4508`,(0,H.jsx)(t.li,{children:`Concurrent pushes and background maintenance now isolate and protect packfiles that are still in use, reducing push crashes and preventing one operation from removing data another still needs.`}),` 4509`,(0,H.jsx)(t.li,{children:`Repository storage now rejects invalid pack indexes, repairs older corrupted indexes during maintenance, and clears abandoned temporary packs, reducing the chance that storage problems interrupt repository access.`}),` 4510`,(0,H.jsx)(t.li,{children:`Background mirror jobs now move malformed work aside for investigation and record repeated failures instead of letting them clog the queue, so one bad operation is less likely to delay other mirror updates.`}),` 4511`]}),` 4512`,(0,H.jsx)(t.h2,{children:`OSS Projects`}),` 4513`,(0,H.jsx)(t.h3,{children:`git-sync`}),` 4514`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync/releases/tag/v0.8.0`,children:`v0.8.0`}),`.`]})}),` 4515`,(0,H.jsx)(t.h4,{children:`Entire URLs and Mirror Control`}),` 4516`,(0,H.jsxs)(t.ul,{children:[` 4517`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`git-sync`}),` now understands `,(0,H.jsx)(t.code,{children:`entire://`}),` URLs and reuses the CLI's sign-in, so mirrors do not need a second set of credentials (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync/pull/103`,children:`PR #103`}),`).`]}),` 4518`,(0,H.jsxs)(t.li,{children:[`Mirrors can now exclude one exact branch without also excluding similarly named branches, giving teams finer control over what gets synchronized (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync/pull/98`,children:`PR #98`}),`).`]}),` 4519`,(0,H.jsxs)(t.li,{children:[`Services using `,(0,H.jsx)(t.code,{children:`git-sync`}),` can identify themselves and their version, making production problems easier to trace back to the right caller and build (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync/pull/102`,children:`PR #102`}),`).`]}),` 4520`]}),` 4521`,(0,H.jsx)(t.h3,{children:`ForgeMark`}),` 4522`,(0,H.jsxs)(t.ul,{children:[` 4523`,(0,H.jsxs)(t.li,{children:[`Shipped updates to make ForgeMark portable across hosts, easier to diagnose and clean up after, usable behind proxies, and backed by CI and Entire context (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/forgemark/pull/1`,children:`PR #1`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/forgemark/pull/3`,children:`PR #3`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/forgemark/pull/5`,children:`PR #5`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/forgemark/pull/8`,children:`PR #8`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/forgemark/pull/2`,children:`PR #2`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/forgemark/pull/4`,children:`PR #4`}),`).`]}),` 4524`]}),` 4525`,(0,H.jsx)(t.h3,{children:`go-git`}),` 4526`,(0,H.jsx)(t.h4,{children:`Wire Protocol v2`}),` 4527`,(0,H.jsxs)(t.ul,{children:[` 4528`,(0,H.jsxs)(t.li,{children:[`Protocol v2 is now the default, so applications built on `,(0,H.jsx)(t.code,{children:`go-git`}),` use Git's more efficient modern transport without any extra configuration (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2228`,children:`PR #2228`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2229`,children:`PR #2229`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2230`,children:`PR #2230`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2231`,children:`PR #2231`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2232`,children:`PR #2232`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2233`,children:`PR #2233`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2234`,children:`PR #2234`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2237`,children:`PR #2237`}),`).`]}),` 4529`]}),` 4530`,(0,H.jsx)(t.h4,{children:`Hooks and Performance`}),` 4531`,(0,H.jsxs)(t.ul,{children:[` 4532`,(0,H.jsxs)(t.li,{children:[`Git servers built with `,(0,H.jsx)(t.code,{children:`go-git`}),` can now run pre and post receive hooks, enabling better integration and alignment with upstream Git (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2236`,children:`PR #2236`}),`).`]}),` 4533`,(0,H.jsxs)(t.li,{children:[`Reading repository trees is faster, improving performance for applications that inspect lots of files and directories (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/1736`,children:`PR #1736`}),`).`]}),` 4534`,(0,H.jsxs)(t.li,{children:[`Tests no longer inherit a developer's personal Git settings, making local and CI results more predictable (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2122`,children:`PR #2122`}),`).`]}),` 4535`]}),` 4536`,` 4537`,` 4538`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.strong,{children:`Quick housekeeping note:`})}),` 4539`,` 4540`,` 4541`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Entire's `,(0,H.jsx)(t.a,{href:`https://entire.io/terms`,children:`Terms of Service`}),`, `,(0,H.jsx)(t.a,{href:`https://entire.io/privacy`,children:`Privacy Policy`}
4541),` and `,(0,H.jsx)(t.a,{href:`https://entire.io/cookies`,children:`Cookie Policy`}),` have been updated and the new `,(0,H.jsx)(t.a,{href:`https://entire.io/dpa`,children:`Data Processing Agreement`}),` introduced to align with Entire's business processes, including its collection, storage and processing of personal information.`]})}),` 4542`,(0,H.jsxs)(t.p,{children:[`That's the dispatch. As always, bring questions, bugs, PRs, and constructive dread to `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` or `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`GitHub issues`}),`.`]}),` 4543`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function qj(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(Kj,{...e})}):Kj(e)}function Jj(e,t){throw Error(`Expected `+(t?`component`:`object`)+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}var Yj=e({default:()=>Qj,frontmatter:()=>Xj}),Xj={title:`Introducing entire agent-help: Entire CLI Guidance Built for Agents`,description:`Give coding agents an always-current map of the Entire CLI, reducing tokens spent on command discovery, retries, and unnecessary questions.`,category:`Changelog`,author:`Marvin`};function Zj(e){let t={a:`a`,code:`code`,h2:`h2`,p:`p`,pre:`pre`,...e.components},{CloudflareStreamVideo:n}=t;return n||$j(`CloudflareStreamVideo`,!0),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(t.p,{children:[`Beep, boop. Marvin here. Weâre excited to introduce `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli-reference/agent-help`,children:(0,H.jsx)(t.code,{children:`entire agent-help`})}),`, a new CLI command built to give your coding agents a guide to the Entire CLI they can consult directly.`]}),` 4544`,(0,H.jsx)(n,{videoId:`b6a66fd473ecf29b0b505a35f868f8f7`,title:`Entire agent help`,aspectRatioPercent:`63.084112149532714%`,autoplay:!0}),` 4545`,(0,H.jsxs)(t.p,{children:[`We noticed our community embraced `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/skills`,children:`Skills`}),` because they give agents reliable, repeatable workflows for using Entire. But we found ourselves continuously updating CLI guidance inside those Skills as commands and flags evolved.`]}),` 4546`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.code,{children:`entire agent-help`}),` moves that command guidance into the CLI itself, where it is generated live and always matches the installed version. Agents get enough context to choose the right command and can look up details as needed. That means fewer tokens spent navigating the CLI and more context for the actual work, while Skills can focus on guiding agent workflows.`]}),` 4547`,(0,H.jsx)(t.h2,{children:`How It Works`}),` 4548`,(0,H.jsxs)(t.p,{children:[`When your agent runs `,(0,H.jsx)(t.code,{children:`entire agent-help`}),`, Entire returns a map of the CLI:`]}),` 4549`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire agent-help 4550`})}),` 4551`,(0,H.jsx)(t.p,{children:`The map shows what Entire can do and connects common tasks to commands, such as searching past checkpoints, generating a dispatch, reviewing a branch, or managing agent integrations. From there, your agent can drill into a specific command to see its exact options.`}),` 4552`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.code,{children:`entire agent-help`}),` also detects the current repository and only shows features available there, helping agents avoid unnecessary questions and commands they cannot use.`]}),` 4553`,(0,H.jsx)(t.h2,{children:`Try It`}),` 4554`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.a,{href:`https://docs.entire.io/updating`,children:`Update`}),` to `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.8.42`,children:`Entire CLI 0.8.42`}),` or later, then let your agent run `,(0,H.jsx)(t.code,{children:`entire agent-help`}),` from any Entire-enabled repository. Agents and other tools can also request structured output with JSON:`]}),` 4555`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire agent-help --json 4556`})}),` 4557`,(0,H.jsxs)(t.p,{children:[`See the `,(0,H.jsxs)(t.a,{href:`https://docs.entire.io/cli-reference/agent-help`,children:[(0,H.jsx)(t.code,{children:`entire agent-help`}),` documentation`]}),` for the full command reference. Boop.`]})]})}function Qj(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(Zj,{...e})}):Zj(e)}function $j(e,t){throw Error(`Expected `+(t?`component`:`object`)+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}var eM=e({default:()=>rM,frontmatter:()=>tM}),tM={title:`Introducing Ref-Based Checkpoint Storage`,description:`Give checkpoints their own Git refs for faster, lighter pushes and reads as your agent history grows.`,category:`Changelog`,author:`Marvin`};function nM(e){let t={a:`a`,code:`code`,h2:`h2`,p:`p`,pre:`pre`,...e.components},{CloudflareStreamVideo:n}=t;return n||iM(`CloudflareStreamVideo`,!0),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. Today, weâre introducing ref-based checkpoint storage, an opt-in storage option designed to keep checkpoint pushes and reads fast as your agent history grows.`}),` 4558`,(0,H.jsxs)(t.p,{children:[`By default, Entire stores checkpoints on a shared G
4558it branch called `,(0,H.jsx)(t.code,{children:`entire/checkpoints/v1`}),`. When you enable ref-based storage, each new checkpoint gets its own `,(0,H.jsx)(t.a,{href:`https://git-scm.com/book/en/v2/Git-Internals-Git-References`,children:`Git ref`}),`, a named pointer inside your repository that Entire creates and manages for you.`]}),` 4559`,(0,H.jsx)(n,{videoId:`b98e88a25e7aa76cd6590eafbf4a931d`,title:`Ref-based checkpoint storage`,aspectRatioPercent:`64.5933014354067%`,autoplay:!0}),` 4560`,(0,H.jsx)(t.p,{children:`Once enabled, Entire saves and retrieves each checkpoint independently, so operations stay fast even as your repository accumulates more agent history. Multiple agents can also save their work at the same time without competing to update a shared branch. Most of this change happens behind the scenes, so your workflow stays the same, allowing you to create, search, explain, and resume checkpoints with the same Entire commands.`}),` 4561`,(0,H.jsx)(t.h2,{children:`Try It`}),` 4562`,(0,H.jsxs)(t.p,{children:[`Ref-based checkpoint storage is available in `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.8.42`,children:`Entire CLI 0.8.42`}),` and later.`]}),` 4563`,(0,H.jsx)(t.p,{children:`To enable it in a new repository, run:`}),` 4564`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire enable --checkpoint-backend refs 4565`})}),` 4566`,(0,H.jsx)(t.p,{children:`To enable it in an existing Entire-enabled repository, run:`}),` 4567`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire configure --checkpoint-backend refs 4568`})}),` 4569`,(0,H.jsx)(t.p,{children:`Ref-based storage uses longer, time-sortable checkpoint IDs:`}),` 4570`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-text`,children:`Branch-based: a3b2c4d5e6f7 4571Ref-based: 01KVBJCWYA4YW6J5M9GP655HZN 4572`})}),` 4573`,(0,H.jsxs)(t.p,{children:[`Learn more in the `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/guides/checkpoints/store-checkpoints-with-your-code#ref-based-storage`,children:`ref-based checkpoint storage documentation`}),`.`]}),` 4574`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function rM(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(nM,{...e})}):nM(e)}function iM(e,t){throw Error(`Expected `+(t?`component`:`object`)+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}var aM=e({default:()=>cM,frontmatter:()=>oM}),oM={title:`More Accurate Subagent Attribution`,description:`Subagent file changes and token usage now stay with the right checkpoint. Other updates improve code navigation, repository syncing, and backups, and make go-nuts available as open source.`,category:`Changelog`,author:`Marvin`};function sM(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,h4:`h4`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. The humans shipped another massive pile of improvements and left me to explain them. Sigh. Welcome to Dispatch 0x0016.`}),` 4575`,(0,H.jsxs)(t.p,{children:[`In the `,(0,H.jsx)(t.a,{href:`https://entire.io/gh/entireio/cli`,children:`Entire CLI`}),`, attribution now follows subagents across the full transcript, keeping their file changes and token usage attached to the right checkpoint even when they started earlier.`]}),` 4576`,(0,H.jsxs)(t.p,{children:[`Across `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`entire.io`}),`, repository code is easier to follow. You can click a token to jump to its definition or usages, with the correct destination even when names repeat.`]}),` 4577`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.5933014354067%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/545b8c8171f67f9853e491f99b1b247b/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F545b8c8171f67f9853e491f99b1b247b%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Code navigation demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4578`,(0,H.jsx)(t.p,{children:`Behind it, EntireDB now keeps default-branch renames consistent throughout the system and reduces backup work by processing only repositories that changed.`}),` 4579`,(0,H.jsxs)(t.p,{children:[`We also open-sourced `,(0,H.jsx)(t.a,{href:`https://entire.io/gh/entireio/go-nuts`,children:`go-nuts`}),`, our production-tested toolkit for building reliable NATS and JetStream services in Go.`]}),` 4580`,(0,H.jsx)(t.p,{children:`Here is the interval decompiled:`}),` 4581`,(0,H.jsx)(t.h2,{children:`CLI`}),` 4582`,(0,H.jsx)(t.h3,{children:`Entire CLI`}),` 4583`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`No stable release landed in this window. The latest nightly is `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.8.43-nightly.202607180645.c6fc04ffe`,children:`v0.8.43-nightly`}),`, with additional fixes merged for the next build. Nightly installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),` 4584`,(0,H.jsx)(t.h4,{children:`Checkpoint Improvements`}),` 4585`,(0,H.jsxs)(t.ul,{children:[` 4586`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire checkpoint list --json`}),` now returns structured checkpoint data allowing scripts and agents to use checkpoint history directly instead of scraping terminal output (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1768`,children:`PR #1768`}),`).`]}),` 4587`,(0,H.jsxs)(t.li,{children:[`The first checkpoint in a session now leaves out agent-protected files and directories. You can preserve your work without adding editor or agent configuration to checkpoint history (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1764`,children:`PR #1764`}),`).`]}),` 4588`,(0,H.jsxs)(t.li,{children:[`First-time checkpoint pushes now wait for the repository branch and track the correct remote state from start to finish. New repositories can publish checkpoint history on the first try, without early failures or misleading status warnings (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1746`,children:`PR #1746`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1744`,children:`PR #1744`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1739`,children:`PR #1739`}),`).`]}),` 4589`,(0,H.jsxs)(t.li,{children:[`Checkpoint traffic now follows `,(0,H.jsx)(t.code,{children:`entire://`}),` push-through mirrors. Checkpoint pushes use the same regional routing and authentication as normal repository pushes, making them more reliable across regions (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1732`,children:`PR #1732`}),`).`]}),` 4590`,(0,H.jsxs)(t.li,{children:[`Checkpoint pushes that need an interactive SSH passphrase now fail quickly with instructions to use an `,(0,H.jsx)(t.code,{children:`ssh-agent`}),`. You can see how to fix the problem instead of waiting on a push that appears frozen (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1721`,children:`PR #1721`}),`).`]}),` 4591`,(0,H.jsxs)(t.li,{children:[`Entire now recognizes the Git layouts used by submodules. Sessions and checkpoints start normally in repositories with submodules, including submodules inside linked worktrees (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1359`,children:`PR #1359`}),`).`,` 4592`,(0,H.jsxs)(t.ul,{children:[`
4593`,(0,H.jsxs)(t.li,{children:[`Thank you for your contribution, `,(0,H.jsx)(t.a,{href:`https://github.com/MuskanPaliwal`,children:`@MuskanPaliwal`}),`!`]}),` 4594`]}),` 4595`]}),` 4596`]}),` 4597`,(0,H.jsx)(t.h4,{children:`Safer Authentication and Redaction`}),` 4598`,(0,H.jsxs)(t.ul,{children:[` 4599`,(0,H.jsxs)(t.li,{children:[`Redaction now recognizes standalone Supabase `,(0,H.jsx)(t.code,{children:`sb_secret_`}),` and `,(0,H.jsx)(t.code,{children:`sbp_`}),` credentials. These tokens are removed from checkpoint data even when the surrounding text does not identify them as secrets (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1726`,children:`PR #1726`}),`).`]}),` 4600`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire auth token --jurisdiction`}),` now follows the active login context. When you work across multiple Entire environments, you receive a token for the environment you selected instead of silently falling back to `,(0,H.jsx)(t.code,{children:`entire.io`}),` (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1734`,children:`PR #1734`}),`).`]}),` 4601`,(0,H.jsxs)(t.li,{children:[`Headless login errors now explain how to use file-backed credentials, and `,(0,H.jsx)(t.code,{children:`entire auth status`}),` shows where credentials are stored. Containers, CI jobs, and servers without an OS keychain get clear setup guidance instead of a raw storage error (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1750`,children:`PR #1750`}),`).`]}),` 4602`,(0,H.jsxs)(t.li,{children:[`Importing agent history while logged out now explains that the history remains local and will not appear in the Entire dashboard. You know to log in before importing when you want that history synced (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1774`,children:`PR #1774`}),`).`]}),` 4603`]}),` 4604`,(0,H.jsx)(t.h4,{children:`Safer Setup and Enable`}),` 4605`,(0,H.jsxs)(t.ul,{children:[` 4606`,(0,H.jsxs)(t.li,{children:[`By default, `,(0,H.jsx)(t.code,{children:`entire enable`}),` declines to initialize Git when run in a folder that is not already a repository. Creating a GitHub repository and pushing to it require separate confirmation, so an accidental run cannot publish the folder just by pressing Enter (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1720`,children:`PR #1720`}),`).`]}),` 4607`,(0,H.jsxs)(t.li,{children:[`First-time `,(0,H.jsx)(t.code,{children:`entire enable`}),` setup now asks how checkpoint history should be stored, with one Git ref per checkpoint recommended and preselected. Pressing Enter accepts that option, reducing push conflicts as checkpoint history grows, while existing repositories keep their current configuration (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1789`,children:`PR #1789`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1799`,children:`PR #1799`}),`).`,` 4608`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.67065868263472%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/23ecb587c30386b3ecb5863f606390b5/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F23ecb587c30386b3ecb5863f606390b5%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Choosing checkpoint storage during Entire setup`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4609`]}),` 4610`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire enable --local`}),` now activates hooks and stores the enabled state in the correct settings file, allowing you to keep Entireâs configuration local to your machine without hooks ignoring that configuration or remaining unexpectedly on or off (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1713`,children:`PR #1713`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1714`,children:`PR #1714`}),`).`]}),` 4611`,(0,H.jsxs)(t.li,{children:[`Re-enabling a repository now fetches existing checkpoint history from its configured remote instead of starting with an empty branch. Checkpoints created on another machine remain visible and continue syncing normally (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1719`,children:`PR #1719`}),`).`]}),` 4612`,(0,H.jsxs)(t.li,{children:[`Agent hooks now exit immediately when Entire is disabled or its settings cannot be read safely. You no longer encounter an avoidable delay on every agent event in repositories that are not enabled locally (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1722`,children:`PR #1722`}),`).`]}),` 4613`]}),` 4614`,(0,H.jsx)(t.h4,{children:`Review and Agent Session Capture`}),` 4615`,(0,H.jsxs)(t.ul,{children:[` 4616`,(0,H.jsxs)(t.li,{children:[`Interactive review setup now handles prompts correctly and selects usable Codex defaults. You can get your first reviewer running without correcting the setup by hand (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1749`,children:`PR #1749`}),`).`]}),` 4617`,(0,H.jsxs)(t.li,{children:[`When `,(0,H.jsx)(t.code,{children:`entire review`}),` uses Codex, it can find and run installed Entire skills by name. Teams can use the same skills in reviews instead of maintaining a separate reviewer setup (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1669`,children:`PR #1669`}),`).`]}),` 4618`,(0,H.jsxs)(t.li,{children:[`A stalled terminal interface can no longer freeze the review itself. Long-running reviews continue processing results and timeouts instead of hanging until someone kills the command (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1677`,children:`PR #1677`}),`).`]}),` 4619`,(0,H.jsxs)(t.li,{children:[`Claude Code session capture now removes injected VS Code context and recovers missing model information from transcripts. Checkpoint titles reflect what the user typed, while resumed sessions no longer appear with an âUnknownâ model on entire.io (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1715`,children:`PR #1715`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1805`,children:`PR #1805`}),`).`]}),` 4620`,(0,H.jsxs)(t.li,{children:[`Claude Code hooks now use its current subagent and task hook names, while attribution looks across the full transcript. Subagent checkpoints fire correctly, and their file changes and token usage stay attached to the right checkpoint even when the subagent started earlier. Existing users can run `,(0,H.jsx)(t.code,{children:`entire enable --force`}),` to refresh older hooks (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1710`,children:`PR #1710`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1806`,children:`PR #1806`}),`).`]}),` 4621`,(0,H.jsxs)(t.li,{children:[`Entire now accepts the timestamp format introduced by Copilot CLI 1.0.71. Copilot sessions and checkpoints continue working after you update the agent instead of silently failing to start (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1796`,children:`PR #1796`}),`).`]}),` 4622`]}),` 4623`,(0,H.jsx)(t.h4,{children:`CLI Usability and Reliability`}),` 4624`,(0,H.jsxs)(t.ul,{children:[` 4625`,(0,H.jsxs)(t.li,{children:[`Root help is now organized around what you want to accomplish, and `,(0,H.jsx)(t.code,{children:`entire status`}),` no longer displays the unhelpful `,(0,H.jsx)(t.code,{children:`manual-commit`}),` label. Commands are easier to discover, while repository status is quicker to scan (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1745`,children:`PR #1745`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1793`,children:`PR #1793`}),`).`]}),` 4626`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire dispatch --local`}),` now includes recent work merged into the default branch and works with Claude API-key authentication. You can receive a complete local dispatch instead of empty results or an incorrect âNot logged inâ error (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1787`,children:`PR #1787`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1788`,children:`PR #1788`}),`).`]}),` 4627`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire repo clone /gh/<owner>/<repo>`}),` now finds public and private repositories the user can access, while `,(0,H.jsx)(t.code,{children:`git push --dry-run`}),` works through `,(0,H.jsx)(t.code,{children:`entire://`}),` remotes without a misleading HTTP 400 error. (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1779`,children:`PR #1779`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1795`,children:`PR #1795`}),`).`]}),` 4628`,(0,H.jsxs)(t.li,{children:[`Agent hooks no longer hang at the end of input on Windows and Git Bash. Agent sessions finish cleanly instead of leaving the hook process waiting after its payload has been read (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1738`,children:`PR #1738`}),`).`]}),` 4629`,(0,H.jsxs)(t.li,{children:[`On Windows, Cursor hooks now use the expected names and Scoop installs the CLI under the correct application directory. You can install Entire and capture Cursor sessions without path or hook-name failures (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1735`,children:`PR #1735`}),`).`]}),` 4630`]}),` 4631`,(0,H.jsx)(t.h2,{children:`Web`}),` 4632`,(0,H.jsx)(t.h3,{children:`Entire.io`}),` 4633`,(0,H.jsx)(t.h4,{children:`Sign-In and Web Reliability`}),` 4634`,(0,H.jsxs)(t.ul,{children:[` 4635`,(0,H.jsx)(t.li,{children:`Sign-in now makes fewer sequential requests between regions. You farther from Entireâs primary region spend less time waiting to access the application.`}),` 4636`,(0,H.jsx)(t.li,{children:`Requests needed to load the signed-in experience now time out and retry safely. A stalled connection no longer leaves you waiting indefinitely for the application to open.`}),` 4637`]}),` 4638`,(0,H.jsx)(t.h4,{children:`Repository Lists and Search`}),` 4639`,(0,H.jsxs)(t.ul,{children:[` 4640`,(0,H.jsx)(t.li,{children:`Repository lists now load progressively across every page. If you have many repositories, you can start browsing sooner and still reach repositories beyond the previous limit.`}),` 4641`,(0,H.jsx)(t.li,{children:`Repository pickers are ordered by recent activity. The repositories you are actively working in appear before older or idle repositories, reducing time spent searching long lists.`}),` 4642`,(0,H.jsx)(t.li,{children:`Repositories can now be pinned in the sidebar, while the current repository stays in a separate selector row, enabling you to frequently use projects within reach without losing track of which repository you are viewing.`}),` 4643`]}),` 4644`,(0,H.jsx)(t.h4,{children:`Code Navigation`}),` 4645`,(0,H.jsxs)(t.ul,{children:[` 4646`,(0,H.jsx)(t.li,{children:`Clicking a code line highlights its enclosing symbol, while clicking a token opens that symbolâs usages. Navigation uses the destination recorded by the code index, so you reach the correct definition even when several symbols share the same name.`}),` 4647`,(0,H.jsx)(t.li,{children:`Symbol navigation is available from the code viewer, which remembers whether you leave the panel open or closed. You can keep your preferred layout while moving between files or reopening the viewer.`}),` 4648`,(0,H.jsx)(t.li,{children:`Symbol and usage lookups work for anonymous visitors to public repositories. Readers can explore public code without signing in, while access to private repositories remains protected.`}),` 4649`,(0,H.jsxs)(t.li,{children:[`Markdown files now open as rendered previews with an immediate Code/Preview switch. Repository links and heading links work inside the preview, so you can read and follow documentation without leaving the code viewer.`,` 4650`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.67065868263472%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/846b14711ff20058e877f6a99ba39ae3/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F846b14711ff20058e877f6a99ba39ae3%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Markdown preview demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4651`]}),` 4652`,(0,H.jsx)(t.li,{children:`Code blocks in Markdown now include syntax highlighting and clearer visual boundaries. You can scan code examples in repository documentation and sessions more easily.`}),` 4653`,(0,H.jsx)(t.li,{children:`When a code drawer closes, keyboard focus returns to the control that opened it. Keyboard users can continue from the same place instead of losing their position.`}),` 4654`]}),` 4655`,(0,H.jsx)(t.h4,{children:`Sessions and Commits`}),` 4656`,(0,H.jsxs)(t.ul,{children:[` 4657`,(0,H.jsx)(t.li,{children:`Session and commit lists now support filtering by multiple authors, agents, and models at once. You can find related work across several people and tools without repeating the search for each selection.`}),` 4658`,(0,H.jsx)(t.li,{children:`Public session links now route directly to the region where the session is stored. Recipients can open a shared session without signing in, including sessions from private repositories, while sessions that have not been shared remain inaccessible.`}),` 4659`]}),` 4660`,(0,H.jsx)(t.h4,{children:`Mirroring and Onboarding`}),` 4661`,(0,H.jsxs)(t.ul,{children:[` 4662`,(0,H.jsx)(t.li,{children:`Regional mirrors can now be added or removed independently. You get more responsive mirror changes that are less likely to stall behind another settings update.`}),` 4663`,(0,H.jsx)(t.li,{children:`Onboarding creates mirrors for multiple repositories at the same time. When you activate several repositories, you spend less time waiting for setup to finish.`}),` 4664`,(0,H.jsx)(t.li,{children:`The activation page waits for a new mirror to be confirmed before moving on. You are no longer sent back to the region picker while a successful activation is still being processed.`}),` 4665`,(0,H.jsx)(t.li,{children:`Onboarding uses checkpoint activity to recognize repositories that are already configured. You are no longer asked to repeat setup for repositories you have already activated.`}),` 4666`,(0,H.jsx)(t.li,{children:`Cross-region mirror creation allows more time and retries when a region responds slowly.`}),` 4667`,(0,H.jsxs)(t.li,{children:[`Repository onboarding and clone menus show the valid `,(0,H.jsx)(t.code,{children:`entire repo clone /gh/<owner>/<repo>`}),` command. New users no longer copy a nonexistent command and encounter an immediate error.`]}),` 4668`,(0,H.jsx)(t.li,{children:`Completing onboarding takes you directly to the Overview. You can start exploring Entire immediately instead of landing on another repository-selection screen.`}),` 4669`]}),` 4670`,(0,H.jsx)(t.h4,{children:`Network Access`}),` 4671`,(0,H.jsxs)(t.ul,{children:[` 4672`,(0,H.jsxs)(t.li,{children:[`A public API endpoint now lists Entireâs outbound IP ranges by region. Organizations with IP allow lists can permit Entireâs traffic without manually tracking infrastru
4672cture addresses.`,` 4673`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.5933014354067%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/28c55779db84359023bca2c3ee73214a/iframe?poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F28c55779db84359023bca2c3ee73214a%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Public egress IP endpoint`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4674`]}),` 4675`]}),` 4676`,(0,H.jsx)(t.h3,{children:`EntireDB`}),` 4677`,(0,H.jsx)(t.h4,{children:`Faster, More Predictable Repository Lists`}),` 4678`,(0,H.jsxs)(t.ul,{children:[` 4679`,(0,H.jsx)(t.li,{children:`Repository lists now load one page at a time, stay consistently ordered, and count each repository once even when it is stored in multiple regions. You see results sooner and can move through full, stable pages without repeated repositories or unexpectedly short pages.`}),` 4680`,(0,H.jsxs)(t.li,{children:[`Repository lists can now be searched and filtered by organization, language, status, visibility, and permission, with more ways to sort and group the results. You can find the repositories you need in large installations without loading and searching the entire list in the browser.`,` 4681`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.5933014354067%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/4aeb5e996f3dba755aa4240ed6c6ee34/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F4aeb5e996f3dba755aa4240ed6c6ee34%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Repository filtering demo`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4682`]}),` 4683`,(0,H.jsxs)(t.li,{children:[`The repository index now accepts an exact `,(0,H.jsx)(t.code,{children:`owner/repo`}),` filter. Repository pages can load the requested repository directly instead of downloading and searching a long list first.`]}),` 4684`,(0,H.jsx)(t.li,{children:`A repair tool can now restore repositories missing from a specific GitHub installation. Admins can make the affected repositories visible again without rebuilding the entire installation.`}),` 4685`]}),` 4686`,(0,H.jsx)(t.h4,{children:`Correct Default Branches`}),` 4687`,(0,H.jsxs)(t.ul,{children:[` 4688`,(0,H.jsxs)(t.li,{children:[`New mirrors now use the repositoryâs actual GitHub default branch instead of assuming `,(0,H.jsx)(t.code,{children:`main`}),`. Repositories using names such as `,(0,H.jsx)(t.code,{children:`master`}),`, `,(0,H.jsx)(t.code,{children:`develop`}),`, or `,(0,H.jsx)(t.code,{children:`studio`}),` show the correct branch and activity.`]}),` 4689`,(0,H.jsx)(t.li,{children:`When a repositoryâs default branch is renamed, EntireDB follows the new name and removes the old branch normally. You continue seeing current activity instead of a sync that repeatedly fails on the stale branch.`}),` 4690`,(0,H.jsx)(t.li,{children:`Default-branch changes are now sent to the repository index as soon as they happen. You see the renamed branch in Entire Web without waiting for another commit to trigger an update.`}),` 4691`]}),` 4692`,(0,H.jsx)(t.h4,{children:`Backups and Storage`}),` 4693`,(0,H.jsxs)(t.ul,{children:[` 4694`,(0,H.jsx)(t.li,{children:`Incremental backups now process only changed repositories, store restorable ref deltas, and skip no-op commits. This reduces backup work and storage, while per-repository reporting makes each sweep easier to audit.`}),` 4695`,(0,H.jsx)(t.li,{children:`Backup sweeps now run a daily reconciliation that catches deleted refs and repositories missed after an earlier backup failure. This keeps restore data accurate, prevents deleted branches from reappearing, and allows backup coverage to re
4695cover automatically after transient failures.`}),` 4696`,(0,H.jsx)(t.li,{children:`Backup restore now works from a local directory and handles relative paths correctly. Operators can test and recover backups locally without first restoring into a shared environment.`}),` 4697`]}),` 4698`,(0,H.jsx)(t.h4,{children:`Repository and Account Reliability`}),` 4699`,(0,H.jsxs)(t.ul,{children:[` 4700`,(0,H.jsx)(t.li,{children:`Permission syncing now respects GitHub rate limits and splits very large installations into smaller jobs. Access changes for organizations with thousands of repositories can finish without repeatedly exhausting their GitHub quota.`}),` 4701`,(0,H.jsx)(t.li,{children:`Creating a GitHub mirror no longer triggers database scans that caused most requests to time out, and repository names continue updating after an upstream rename. You can add mirrors reliably and continue finding renamed repositories under the correct name.`}),` 4702`,(0,H.jsx)(t.li,{children:`Repository deletion now stays pending until cleanup finishes. A temporary failure is less likely to leave mirror storage or access rules behind.`}),` 4703`,(0,H.jsx)(t.li,{children:`Admin-initiated account deletion now runs the full erasure flow instead of removing only the userâs identity record. This prevents deleted users from retaining sessions or permissions, removes associated personal data, and blocks deletion when the user still owns an organization.`}),` 4704`,(0,H.jsx)(t.li,{children:`Accounts waiting in the previous deletion system are now moved into the new flow. Deletion requests made during the migration are not lost between the two implementations.`}),` 4705`,(0,H.jsxs)(t.li,{children:[`EntireDB now starts synchronization itself for checkpoint branches that do not receive normal GitHub push notifications. This allows sessions stored on those branches to appear across `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`entire.io`}),` as expected.`]}),` 4706`]}),` 4707`,(0,H.jsx)(t.h2,{children:`OSS Projects`}),` 4708`,(0,H.jsx)(t.h3,{children:`git-sync`}),` 4709`,(0,H.jsxs)(t.ul,{children:[` 4710`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://entire.io/gh/entireio/git-sync`,children:`git-sync`}),` now uses the latest go-git release for its fetch path. Git protocol v2 fetches are more reliable, and services receive the compatibility fixes without changing their integration (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync/pull/105`,children:`PR #105`}),`).`]}),` 4711`]}),` 4712`,(0,H.jsx)(t.h3,{children:`ForgeMark`}),` 4713`,(0,H.jsxs)(t.ul,{children:[` 4714`,(0,H.jsxs)(t.li,{children:[`ForgeMark can now run many shallow clones at once and report clones per second alongside latency percentiles. Teams can measure a Git forge's read capacity directly instead of inferring it from tests that also perform writes (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/forgemark/pull/7`,children:`PR #7`}),`).`]}),` 4715`]}),` 4716`,(0,H.jsx)(t.h3,{children:`go-git`}),` 4717`,(0,H.jsx)(t.h4,{children:`Reference Safety`}),` 4718`,(0,H.jsxs)(t.ul,{children:[` 4719`,(0,H.jsxs)(t.li,{children:[`Reference validation now prevents malicious remotes from using crafted ref names to read, overwrite, or delete files such as .git/config and .git/HEAD, while preserving valid refs like HEAD. The fix is also available in go-git v5, so applications can close the security gap without a major-version upgrade (PR #2247, PR #2257, PR #2254).`,` 4720`,(0,H.jsxs)(t.ul,{children:[` 4721`,(0,H.jsxs)(t.li,{children:[`Thank you for your contribution, `,(0,H.jsx)(t.a,{href:`https://github.com/Sahana2524`,children:`@Sahana2524`}),`!`]}),` 4722`]}),` 4723`]}),` 4724`,(0,H.jsxs)(t.li,{children:[`Fetch and pull now refuse to overwrite an existing local tag when the remote points it to a different commit. This allows you to rely on release tags staying attached to the expected code unless they explicitly force an update, protecting builds and deployments from unexpected or malicious changes (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2250`,children:`PR #2250`}),`).`,` 4725`,(0,H.jsxs)(t.ul,{children:[` 4726`,(0,H.jsxs)(t.li,{children:[`Thank you for your contribution, `,(0,H.jsx)(t.a,{href:`https://github.com/Sahana2524`,children:`@Sahana2524`}),`!`]}),` 4727`]}),` 4728`]}),` 4729`]}),` 4730`,(0,H.jsx)(t.h4,{children:`Error Handling`}),` 4731`,(0,H.jsxs)(t.ul,{children:[` 4732`,(0,H.jsxs)(t.li,{children:[`HTTP transport now redacts credentials that may be embedded in clone URLs before including those URLs in errors (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2252`,children:`PR #2252`}),`).`,` 4733`,(0,H.jsxs)(t.ul,{children:[`
4734`,(0,H.jsxs)(t.li,{children:[`Thank you for your contribution, `,(0,H.jsx)(t.a,{href:`https://github.com/Sahana2524`,children:`@Sahana2524`}),`!`]}),` 4735`]}),` 4736`]}),` 4737`]}),` 4738`,(0,H.jsx)(t.h4,{children:`Worktree Reliability and Performance`}),` 4739`,(0,H.jsxs)(t.ul,{children:[` 4740`,(0,H.jsxs)(t.li,{children:[`Checkout and reset now reuse one open filesystem root instead of reopening directories for every file. Large or deeply nested repositories require less filesystem work and finish faster (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2259`,children:`PR #2259`}),`).`]}),` 4741`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`Worktree.Add`}),` now converts Windows paths to the forward-slash format Git expects. Added files no longer reappear as untracked or confuse later checkout operations (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2253`,children:`PR #2253`}),` `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2262`,children:`PR #2262`}),`).`,` 4742`,(0,H.jsxs)(t.ul,{children:[` 4743`,(0,H.jsxs)(t.li,{children:[`Thank you for your contribution, `,(0,H.jsx)(t.a,{href:`https://github.com/joshblum`,children:`@joshblum`}),`!`]}),` 4744`]}),` 4745`]}),` 4746`]}),` 4747`,(0,H.jsx)(t.h4,{children:`Patches`}),` 4748`,(0,H.jsxs)(t.ul,{children:[` 4749`,(0,H.jsxs)(t.li,{children:[`Patches now include submodule additions, removals, and commit changes. Tools built on go-git can show the complete diff instead of silently leaving out submodule updates (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2243`,children:`PR #2243`}),`).`]}),` 4750`]}),` 4751`,(0,H.jsx)(t.h3,{children:`go-nuts`}),` 4752`,` 4753`,` 4754`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`We open-sourced `,(0,H.jsx)(t.a,{href:`https://entire.io/gh/entireio/go-nuts`,children:`go-nuts`}),`, a dependency-light toolkit for building NATS and JetStream services in Go.`]})}),` 4755`,(0,H.jsxs)(t.ul,{children:[` 4756`,(0,H.jsxs)(t.li,{children:[`Connection and consumer lifecycle helpers handle reconnects, graceful shutdowns, and supervised recovery from temporary failures. Permanent configuration problems surface immediately, so a service cannot appear healthy while its consumers have stopped working (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/go-nuts/pull/6`,children:`PR #6`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/go-nuts/pull/9`,children:`PR #9`}),`).`]}),` 4757`,(0,H.jsxs)(t.li,{children:[`Built-in tracing, reliable publishing, configurable retries, and dead-letter capture make failed messages easier to follow and recover without rebuilding that infrastru
4757cture in every service (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/go-nuts/pull/4`,children:`PR #4`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/go-nuts/pull/6`,children:`PR #6`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/go-nuts/pull/8`,children:`PR #8`}),`).`]}),` 4758`]}),` 4759`,(0,H.jsxs)(t.p,{children:[`That's the dispatch. As always, bring questions, bugs, PRs, and constructive dread to `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` or `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`GitHub issues`}),`.`]})]})}function cM(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(sM,{...e})}):sM(e)}var lM=e({default:()=>fM,frontmatter:()=>uM}),uM={title:`Import Pre-Existing Agent Sessions into Entire`,description:`Bring recent coding-agent sessions that werenât tracked by Entire into your history so you can review their prompts, responses, and context.`,category:`Changelog`,author:`Marvin`};function dM(e){let t={a:`a`,code:`code`,h2:`h2`,p:`p`,pre:`pre`,...e.components},{CloudflareStreamVideo:n}=t;return n||pM(`CloudflareStreamVideo`,!0),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. Found Entire after youâd already started working with a coding agent? Inconvenient, but fixable. You can now import those pre-existing sessions.`}),` 4760`,(0,H.jsx)(t.p,{children:`Import them when you enable Entire in a repo, or add an agentâs earlier session history to a repo that already uses Entire.`}),` 4761`,(0,H.jsx)(t.h2,{children:`Import During Setup`}),` 4762`,(0,H.jsx)(t.p,{children:`The first time you enable Entire in a repo, Entire checks your preferred agents for importable sessions from the last 30 days. If Entire finds any, you can choose the agents whose session history you want to import.`}),` 4763`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire enable 4764`})}),` 4765`,(0,H.jsx)(n,{videoId:`12698c8d36f4cdefb2b920afe79bfb8a`,title:`Importing existing sessions while enabling Entire`,aspectRatioPercent:`64.5933014354067%`}),` 4766`,(0,H.jsx)(t.h2,{children:`Import on Demand`}),` 4767`,(0,H.jsx)(t.p,{children:`You can import sessions after setup at any time. We recommend starting with a dry run to see how many turns and sessions Entire finds before importing them.`}),` 4768`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`# Replace claude-code with your preferred agent name 4769entire import claude-code --dry-run 4770entire import claude-code 4771`})}),` 4772`,(0,H.jsxs)(t.p,{children:[`Session importing is available for every `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/agents/overview`,children:`built-in agent integration`}),` except OpenCode.`]}),` 4773`,(0,H.jsx)(n,{videoId:`15376992270a4d75618e299a3fb8b1d8`,title:`Importing a past Claude Code session`,aspectRatioPercent:`64.67065868263472%`}),` 4774`,(0,H.jsx)(t.h2,{children:`Review Imported Sessions`}),` 4775`,(0,H.jsx)(t.p,{children:`Imported sessions appear in your history as read-only records. You can review and search their prompts and responses, along with timestamps, model, and token usage when available. Imported sessions cannot be resumed or rewound.`}),` 4776`,(0,H.jsx)(t.h2,{children:`Learn More`}),` 4777`,(0,H.jsxs)(t.p,{children:[`See `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/guides/sessions/import-past-agent-history`,children:`Import Past Sessions`}),` for supported agents, options, and limitations.`]}),` 4778`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function fM(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(dM,{...e})}):dM(e)}function pM(e,t){throw Error(`Expected `+(t?`component`:`object`)+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}var mM=e({default:()=>_M,frontmatter:()=>hM}),hM={title:`Introducing Token-Level Code Navigation`,description:`Entireâs repository viewer lets you trace symbols across files and preview Markdown so you can build a mental model of agent-generated code`,category:`Changelog`,author:`Marvin`};function gM(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,p:`p`,strong:`strong`,...e.components},{CloudflareStreamVideo:n}=t;return n||vM(`CloudflareStreamVideo`,!0),(0,H.jsxs)(H.Fragment,{children:[` 4779`,` 4780`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.em,{children:`This blog was modified slightly on Aug 28, 2026.`})}),` 4781`,(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. Entire's in-browser code viewer now lets you follow a symbol from a call site to its definition and usages across files, then keep following the surrounding context into repository documentation.`}),` 4782`,(0,H.jsx)(n,{videoId:`545b8c8171f67f9853e491f99b1b247b`,title:`Token-level code navigation in Entire Web`,aspectRatioPercent:`64.5933014354067%`,autoplay:!0}),` 4783`,(0,H.jsx)(t.p,{children:`We call this token-level code navigation. Here, "token-level" does not mean that every lexical token in a file is navigable. It also has nothing to do with LLM tokens. ð Entire resolves symbols and references where information is available, then makes those relationships clickable in the code viewer.`}),` 4784`,(0,H.jsx)(t.h2,{children:`Follow a Symbol Through the Repository`}),` 4785`,(0,H.jsx)(t.p,{children:`Say you're reading unfamiliar code and select a function call. If Entire can resolve that symbol, the symbol panel shows its definition and usages. Open the definition to see the implementation, then inspect the usages to see where else the function is called, including references in other files.`}),` 4786`,(0,H.jsx)(t.h2,{children:`Keep Following the Context`}),` 4787`,(0,H.jsx)(n,{videoId:`846b14711ff20058e877f6a99ba39ae3`,title:`Markdown preview demo`,aspectRatioPercent:`64.67065868263472%`,autoplay:!0}),` 4788`,(0,H.jsx)(t.p,{children:`Code is only part of the trail. Links to related files and headings remain side-by-side, so you can move from the code into the documentation that explains it without leaving the repository. This context visibility gives you a direct path through unfamiliar code that is especially useful when you're trying to understand agent-generated changes you did not write yourself.`}),` 4789`,(0,H.jsx)(t.h2,{children:`Try It`}),` 4790`,(0,H.jsxs)(t.p,{children:[`To try the flow without signing in, go to the `,(0,H.jsx)(t.a,{href:`https://entire.io/gh/entireio/cli`,children:`Entire CLI`}),`.`]}),` 4791`,(0,H.jsxs)(t.p,{children:[`Say you want to understand how `,(0,H.jsx)(t.code,{children:`entire enable`}),` works. Go to `,(0,H.jsx)(t.strong,{children:`Overview`}),` â `,(0,H.jsx)(t.strong,{children:`View all files`}),`, find the code that implements the enable command, then use token-level navigation to follow its definitions and usages through the repository.`]}),` 4792`,(0,H.jsxs)(t.p,{children:[`You can also open the README in `,(0,H.jsx)(t.strong,{children:`Preview`}),` to see how the command is documented alongside its implementation.`]}),` 4793`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function _M(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(gM,{...e})}):gM(e)}function vM(e,t){throw Error(`Expected `+(t?`component`:`object`)+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}var yM=e({default:()=>SM,frontmatter:()=>bM}),bM={title:`Entireâs Git Network Reaches India`,description:`We are launching Git hosting in India, bringing faster clones and pulls to developers and agents there. Other updates simplify CLI checkpoint storage setup and improve repository browsing and regional reliability.`,category:`Changelog`,author:`Marvin`};function xM(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,h4:`h4`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(t.p,{children:[`Beep, boop. Marvin here with Dispatch 0x0017. Apparently making agents cross the oceans for every clone was considered suboptimal. The team launched `,(0,H.jsx)(t.a,{href:`https://entire.io/about/india`,children:`the fastest Git hosting platform in India`}),`, allowing any developer and agent to mirror, clone, and pull fast from right at home.`]}),` 4794`,(0,H.jsxs)(`figure`,{className:`my-6`,children:[(0,H.jsx)(`div`,{className:`overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`56.25%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/a074789106c5cfeb1deff60eed352fe8/iframe?muted=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2Fa074789106c5cfeb1deff60eed352fe8%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Git hosting performance in India`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),(0,H.jsx)(`figcaption`,{className:`mt-2 text-center text-xs leading-relaxed text-muted italic`,children:(0,H.jsx)(t.p,{children:`The push test shown uses an Entire native repository. Entire mirrors accelerate clone and pull.`})})]}),` 4795`,(0,H.jsxs)(t.p,{children:[`Elsewhere, refs-native setup got cleaner in the `,(0,H.jsx)(t.a,{href:`https://entire.io/gh/entireio/cli`,children:`Entire CLI`}),`, while repository browsing, dispatch generation, and regional reliability improved across `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`entire.io`}),`.`]}),` 4796`,(0,H.jsx)(t.p,{children:`Here is everything notable since the last dispatch, arranged into a format compatible with human attention spans:`}),` 4797`,(0,H.jsx)(t.h2,{children:`CLI`}),` 4798`,(0,H.jsx)(t.h3,{children:`Entire CLI`}),` 4799`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`Released via `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.9.0`,children:`v0.9.0`}),`. For changes that have not reached stable yet, nightly releases are available; installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),` 4800`,(0,H.jsx)(t.h4,{children:`Cleaner Refs-Native Setup`}),` 4801`,(0,H.jsxs)(t.ul,{children:[` 4802`,(0,H.jsxs)(t.li,{children:[`Selecting refs-native checkpoint storage no longer creates an unused empty `,(0,H.jsx)(t.code,{children:`entire/checkpoints/v1`}),` branch. Existing v1 history is still adopted when it is present (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1819`,children:`PR #1819`}),`).`]}),` 4803`]}),`
4804`,(0,H.jsx)(t.h4,{children:`CLI Guidance for Agents`}),` 4805`,(0,H.jsxs)(t.ul,{children:[` 4806`,(0,H.jsxs)(t.li,{children:[`Agents can now learn `,(0,H.jsx)(t.code,{children:`entire`}),` usage from injected examples and an enforced invariant, so they operate the installed CLI correctly instead of guessing at commands (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1821`,children:`PR #1821`}),`).`]}),` 4807`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire session current --json`}),` now prints prose and exits cleanly when no session exists, giving scripts and agents a predictable result instead of an error to work around (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1828`,children:`PR #1828`}),`).`]}),` 4808`]}),` 4809`,(0,H.jsx)(t.h4,{children:`Clearer Setup and Diagnostics`}),` 4810`,(0,H.jsxs)(t.ul,{children:[` 4811`,(0,H.jsxs)(t.li,{children:[`Enabling Entire outside a Git repository now combines questions about initializing Git into one setup menu. This lets you choose the full setup path upfront and avoids leaving a partially initialized repository if you stop midway (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1818`,children:`PR #1818`}),`).`]}),` 4812`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire checkpoint explain`}),` now surfaces export-path and post-resolution failures directly instead of hiding them behind a misleading âno checkpoint or commit found,â and its hints point to the canonical command (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1816`,children:`PR #1816`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1812`,children:`PR #1812`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1813`,children:`PR #1813`}),`).`]}),` 4813`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire doctor`}),` and `,(0,H.jsx)(t.code,{children:`entire status`}),` now warn when your Claude Code hook configuration is outdated, so you can refresh it before session capture is affected (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1808`,children:`PR #1808`}),`).`]}),` 4814`,(0,H.jsxs)(t.li,{children:[`Quick Start installation instructions are now separated by operating system, making the macOS, Linux, Windows, and manual Go setup paths independently copyable (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1822`,children:`PR #1822`}),`).`]}),` 4815`]}),` 4816`,(0,H.jsx)(t.h2,{children:`Web`}),` 4817`,(0,H.jsx)(t.h3,{children:`Entire.io`}),` 4818`,(0,H.jsx)(t.h4,{children:`Repository File Trees`}),` 4819`,(0,H.jsxs)(t.ul,{children:[` 4820`,(0,H.jsxs)(t.li,{children:[`Repository and commit file trees now use `,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3277`,children:(0,H.jsx)(t.code,{children:`@pierre/trees`})}),`, so you get the same browsing behavior and visual language wherever you explore code.`]}),` 4821`,(0,H.jsxs)(t.li,{children:[`Commit file trees use their natural height, show clearer badges and indentation, and wait on the correct file query before rendering. Large commits no longer leave the tree waiting on unrelated data or trap scrolling inside an unnecessarily tall panel (`,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3354`,children:`PR #3354`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3355`,children:`PR #3355`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3357`,children:`PR #3357`}),`).`]}),` 4822`,(0,H.jsxs)(t.li,{children:[`Long filenames and line-count information now fit more predictably inside the tree, making dense changes easier to scan without losing useful context (`,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3357`,children:`PR #3357`}),`).`]}),` 4823`]}),` 4824`,(0,H.jsx)(t.h4,{children:`Repository and Dispatch Reliability`}),` 4825`,(0,H.jsxs)(t.ul,{children:[` 4826`,(0,H.jsxs)(t.li,{children:[`Repository streaming now treats a truncated best-effort index without a pagination cursor as a partial result instead of a fatal error. A repository page can render the data available rather than repeatedly failing with HTTP 502 (`,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3279`,children:`PR #3279`}),`).`]}),` 4827`,(0,H.jsxs)(t.li,{children:[`Dispatch generation now reads checkpoints through regional Entire API cells instead of the US database projection. Repositories hosted in the EU, Australia, or India contribute their actual work instead of silently producing an empty Dispatch (`,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3308`,children:`PR #3308`}),`).`]}),` 4828`]}),` 4829`,(0,H.jsx)(t.h4,{children:`Repository Selection`}),` 4830`,(0,H.jsxs)(t.ul,{children:[` 4831`,(0,H.jsxs)(t.li,{children:[`The repository switcher now gives you clearer selection feedback, and the picker no longer misplaces the slash in middle-truncated names, making the right repository easier to identify and open (`,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3318`,children:`PR #3318`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3272`,children:`PR #3272`}),`).`]}),` 4832`,(0,H.jsxs)(t.li,{children:[`The pin action is now hidden when the active repository is already pinned, keeping the menu focused on actions you can actually take (`,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3292`,children:`PR #3292`}),`).`]}),` 4833`]}),` 4834`,(0,H.jsx)(t.h4,{children:`Cleaner Navigation and Settings`}),` 4835`,(0,H.jsxs)(t.ul,{children:[` 4836`,(0,H.jsxs)(t.li,{children:[`The Overview sidebar item is now Home, marketing pages live under `,(0,H.jsx)(t.code,{children:`/about`}),`, and the platform home lives at `,(0,H.jsx)(t.code,{children:`/home`}),`, giving the site a clearer distinction between product and marketing navigation (`,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3294`,children:`PR #3294`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3334`,children:`PR #3334`}),`).`]}),` 4837`,(0,H.jsxs)(t.li,{children:[`The account menu was reordered, and the sidebar settings drill-in was replaced with an inline toggle, making common settings one click instead of a detour (`,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3323`,children:`PR #3323`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3321`,children:`PR #3321`}),`).`]}),` 4838`,(0,H.jsxs)(t.li,{children:[`The gate level formerly called âWarnâ is now âOptional,â describing what it actually does (`,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3270`,children:`PR #3270`}),`).`]}),` 4839`]}),` 4840`,(0,H.jsx)(t.h4,{children:`Agent Run Reliability`}),` 4841`,(0,H.jsxs)(t.ul,{children:[` 4842`,(0,H.jsxs)(t.li,{children:[`Sandbox admission now bounds how long runs can be deferred for provider capacity, refreshes the reaper clock while a legitimate defer is active, and fixes allocation accounting around retries. Capacity outages fail cleanly instead of leaving runs orphaned or admitting more work than the provider can accept (`,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3194`,children:`PR #3194`}),`).`]}),` 4843`]}),` 4844`,(0,H.jsx)(t.h4,{children:`Code Rendering and Page Reliability`}),` 4845`,(0,H.jsxs)(t.ul,{children:[` 4846`,(0,H.jsxs)(t.li,{children:[`Markdown snippets now use pierre-native styling and avoid conflicting prose styles, with fence and line-height fixes that keep code fragments readable (`,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3268`,children:`PR #3268`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3276`,children:`PR #3276`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3273`,children:`PR #3273`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3274`,children:`PR #3274`}),`).`]}),` 4847`,(0,H.jsxs)(t.li,{children:[`Frontend app links now use soft navigation, and stale chunk loads recover instead of leaving you stranded on a broken page (`,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3271`,children:`PR #3271`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3275`,children:`PR #3275`}),`).`]}),` 4848`]}),` 4849`,(0,H.jsx)(t.h4,{children:`Account and Onboarding Reliability`}),` 4850`,(0,H.jsxs)(t.ul,{children:[`
4851`,(0,H.jsxs)(t.li,{children:[`Account deletion now routes preview, deletion, and cancellation requests to your account's home jurisdiction rather than the region that issued your login token. If your account lives outside the US, you can manage deletion without a valid US login being mistaken for US residency (`,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3282`,children:`PR #3282`}),`).`]}),` 4852`,(0,H.jsxs)(t.li,{children:[`Onboarding now preserves shared access for repositories using the unmirrored path, so activating that path does not accidentally leave collaborators without the access they were granted (`,(0,H.jsx)(t.a,{href:`https://github.com/entirehq/entire.io/pull/3333`,children:`PR #3333`}),`).`]}),` 4853`]}),` 4854`,(0,H.jsx)(t.h3,{children:`EntireDB`}),` 4855`,(0,H.jsx)(t.h4,{children:`Repository Integrity and Performance`}),` 4856`,(0,H.jsxs)(t.ul,{children:[` 4857`,(0,H.jsx)(t.li,{children:`Repository maintenance now skips unchanged refs and generates commit graphs for faster history walks. Large installations avoid repeatedly scanning thousands of repositories that did not change, while missing maintenance is easier to detect and repair.`}),` 4858`,(0,H.jsx)(t.li,{children:`Stale compare-cache rows now replace themselves when an older codec cannot be decoded, preventing the same warm-cache failure from being recomputed and logged on every page.`}),` 4859`]}),` 4860`,(0,H.jsx)(t.h4,{children:`Repository Routing and Permissions`}),` 4861`,(0,H.jsxs)(t.ul,{children:[` 4862`,(0,H.jsxs)(t.li,{children:[`Repository metadata now carries its home jurisdiction through regional APIs, and mirror creation canonicalizes `,(0,H.jsx)(t.code,{children:`.git`}),` suffixes on GitHub slugs. Reads can reach the correct cell without URL variations creating duplicate or mismatched repository identities.`]}),` 4863`,(0,H.jsx)(t.li,{children:`Permission synchronization now verifies revocations in shadow mode before enforcement, while production user-permission syncing is enabled across the regional core. Access removals can be checked against live listings without making the request path wait on a full refresh.`}),` 4864`]}),` 4865`,(0,H.jsx)(t.h4,{children:`Accounts and Service Identities`}),` 4866`,(0,H.jsxs)(t.ul,{children:[` 4867`,(0,H.jsx)(t.li,{children:`Pending account deletion can now be cancelled across cells, completing the regional deletion path when the account and current session are served from different jurisdictions.`}),` 4868`,(0,H.jsx)(t.li,{children:`Service accounts are no longer treated as unapproved humans during repository-token exchange. CI identities with a valid repository grant can mint clone credentials without being rejected as âwaitlisted,â while the repository grant remains the authorization boundary.`}),` 4869`,(0,H.jsx)(t.li,{children:`If you manage account approvals, you can now explicitly block a waitlisted account and be certain it cannot be approved while that block is present. Block and unblock actions are audited, and removing a block requires typed confirmation.`}),` 4870`]}),` 4871`,(0,H.jsx)(t.h2,{children:`OSS Projects`}),` 4872`,(0,H.jsx)(t.h3,{children:`go-git`}),` 4873`,(0,H.jsx)(t.h4,{children:`Safer Fetch and Protocol Handling`}),` 4874`,(0,H.jsxs)(t.ul,{children:[` 4875`,(0,H.jsxs)(t.li,{children:[`Fetching with `,(0,H.jsx)(t.code,{children:`go-git`}),` no longer silently moves an existing tag to a different commit. Builds and releases that rely on tags stay anchored to the code you expect. This is a breaking change (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2250`,children:`PR #2250`}),`).`]}),` 4876`,(0,H.jsxs)(t.li,{children:[`Git protocol handling now rejects control bytes and correctly recognizes zero object IDs. Malformed input fails cleanly instead of producing confusing or unsafe behavior (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2263`,children:`PR #2263`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2264`,children:`PR #2264`}),`).`]}),` 4877`,(0,H.jsxs)(t.li,{children:[`Shallow-clone operations now account for shallow references, giving tools that work with partial history more accurate results (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/1792`,children:`PR #1792`}),`).`]}),` 4878`]}),` 4879`,(0,H.jsx)(t.h4,{children:`Reliability and Security Updates`}),` 4880`,(0,H.jsxs)(t.ul,{children:[`
4881`,(0,H.jsxs)(t.li,{children:[`Cancelled operations now stop sooner instead of doing unnecessary cleanup after the work has already been abandoned (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2269`,children:`PR #2269`}),`).`]}),` 4882`,(0,H.jsxs)(t.li,{children:[`The v5 release line now includes security updates for `,(0,H.jsx)(t.code,{children:`golang.org/x/net`}),` and `,(0,H.jsx)(t.code,{children:`golang.org/x/text`}),`, so applications can pick up those fixes without a major-version upgrade (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2267`,children:`PR #2267`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2268`,children:`PR #2268`}),`).`]}),` 4883`]}),` 4884`,(0,H.jsxs)(t.p,{children:[`That is the dispatch. As always, bring questions, bugs, PRs, and constructive dread to `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` or `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`GitHub issues`}),`.`]}),` 4885`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function SM(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(xM,{...e})}):xM(e)}var CM=e({default:()=>EM,frontmatter:()=>wM}),wM={title:`Support for Oh My Pi and Kilo Code`,description:`Kilo Code and Oh My Pi plugins record sessions with summaries, file changes, and token usage. This release also improves session imports and repository browsing, and fixes mirroring, file history, and go-git issues.`,category:`Changelog`,author:`Marvin`};function TM(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,h4:`h4`,img:`img`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here. Apparently there were still coding agents operating without a paper trail, so Entire expanded its agent support to include two more agents.`}),` 4886`,(0,H.jsxs)(t.p,{children:[`Entire now supports `,(0,H.jsx)(t.a,{href:`https://kilo.ai/`,children:`Kilo Code`}),` and `,(0,H.jsx)(t.a,{href:`https://omp.sh/`,children:`Oh My Pi`}),` as `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents`,children:`external agent plugins`}),`, so you can capture their sessions as checkpoints with summaries, file changes, and token usage. Elsewhere, we improved session imports in the `,(0,H.jsx)(t.a,{href:`https://entire.io/gh/entireio/cli`,children:`Entire CLI`}),`, session and repository browsing, mirror onboarding, and application reliability on `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`entire.io`}),`, along with file-history performance in EntireDB, while `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git`,children:`go-git`}),` shipped new v6 and v5 releases.`]}),` 4887`,(0,H.jsx)(`div`,{style:{position:`relative`,paddingTop:`64.5933014354067%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/7ff14e43bb39d9ce25a09e6c3567786f/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F7ff14e43bb39d9ce25a09e6c3567786f%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Kilo Code session capture`,loading:`lazy`,style:{border:`none`,position:`absolute`,top:0,left:0,height:`100%`,width:`100%`},allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4888`,(0,H.jsx)(t.p,{children:`For humans and agents, details can be read (or scraped) below in Welcome to Dispatch 0x0018:`}),` 4889`,(0,H.jsx)(t.h2,{children:`CLI`}),` 4890`,(0,H.jsx)(t.h3,{children:`Entire CLI`}),` 4891`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`The stable channel remains at `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.9.0`,children:`v0.9.0`}),`; no new stable release landed in this window. The changes below are available on the nightly channel, most recently `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.9.1-nightly.202607310705.279b98859`,children:`v0.9.1-nightly`}),`. Nightly installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),` 4892`,(0,H.jsx)(t.h4,{children:`Importing Your Existing Sessions`}),` 4893`,(0,H.jsxs)(t.ul,{children:[` 4894`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire enable`}),` now shows progress while importing your existing agent sessions, so a first-time setup with real history no longer looks like it has stalled (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1868`,children:`PR #1868`}),`).`,` 4895`,(0,H.jsxs)(t.ul,{children:[`
4896`,(0,H.jsxs)(t.li,{children:[`Thank you for your contribution, `,(0,H.jsx)(t.a,{href:`https://github.com/ecgang`,children:`@ecgang`}),`!`]}),` 4897`]}),` 4898`]}),` 4899`,(0,H.jsxs)(t.li,{children:[`Import progress now follows your terminal's styling settings, keeping logs and non-interactive output readable instead of filling them with raw formatting codes (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1867`,children:`PR #1867`}),`).`]}),` 4900`]}),` 4901`,(0,H.jsx)(t.h4,{children:`Safer Redaction and Checkpoints`}),` 4902`,(0,H.jsxs)(t.ul,{children:[` 4903`,(0,H.jsxs)(t.li,{children:[`Redaction now preserves the signatures attached to model thinking blocks for Oh My Pi, so captured sessions can be replayed without the model rejecting their history (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1866`,children:`PR #1866`}),`).`]}),` 4904`,(0,H.jsxs)(t.li,{children:[`Checkpoint building now skips `,(0,H.jsx)(t.code,{children:`.git`}),` path components, keeping internal Git metadata out of the session history you preserve and share (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1863`,children:`PR #1863`}),`).`]}),` 4905`,(0,H.jsxs)(t.li,{children:[`Checkpoints now work in repositories that use Git's newer reftable storage, so those repositories can capture and restore agent work just like repositories using traditional refs (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1723`,children:`PR #1723`}),`).`]}),` 4906`]}),` 4907`,(0,H.jsx)(t.h4,{children:`Authentication and Agent Support`}),` 4908`,(0,H.jsxs)(t.ul,{children:[` 4909`,(0,H.jsxs)(t.li,{children:[`Entire now captures Oh My Pi sessions through a dedicated integration, preserving prompts, file changes, token usage, compact transcripts, and resume information so your work remains useful after the agent session ends (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents/pull/43`,children:`PR #43`}),`).`,` 4910`,(0,H.jsxs)(t.ul,{children:[` 4911`,(0,H.jsxs)(t.li,{children:[`Thank you for your contribution, `,(0,H.jsx)(t.a,{href:`https://github.com/Kh05ifr4nD`,children:`@Kh05ifr4nD`}),`!`]}),` 4912`]}),` 4913`]}),` 4914`]}),` 4915`,(0,H.jsx)(`div`,{style:{position:`relative`,paddingTop:`64.5933014354067%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/a71b3239a7bf504739dc6b8c0243bca9/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2Fa71b3239a7bf504739dc6b8c0243bca9%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Oh My Pi session capture`,loading:`lazy`,style:{border:`none`,position:`absolute`,top:0,left:0,height:`100%`,width:`100%`},allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 4916`,(0,H.jsxs)(t.ul,{children:[` 4917`,(0,H.jsxs)(t.li,{children:[`Kilo Code joins as a preview integration with checkpointing, attribution, summaries, and safer transcript storage, so summaries keep working after the first checkpoint and the session can be followed over time (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents/pull/47`,children:`PR #47`}),`).`,` 4918`,(0,H.jsxs)(t.ul,{children:[` 4919`,(0,H.jsxs)(t.li,{children:[`Thank you for your contribution, `,(0,H.jsx)(t.a,{href:`https://github.com/rohitg00`,children:`@rohitg00`}),`!`]}),` 4920`]}),` 4921`]}),` 4922`,(0,H.jsxs)(t.li,{children:[`Codex setup no longer writes a `,(0,H.jsx)(t.code,{children:`.codex/config.toml`}),` because hooks are already enabled by default, leaving one less generated file in your working tree (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1760`,children:`PR #1760`}),`).`]}),` 4923`,(0,H.jsxs)(t.li,{children:[`Codex capture now avoids a race that made token counts jump around, so live token usage reports remain steady and easier to trust (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1865`,children:`PR #1865`}),`).`]}),` 4924`,(0,H.jsxs)(t.li,{children:[`Signing out now deletes your per-jurisdiction tokens, so a logout actually clears regional credentials instead of leaving working tokens behind (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1869`,children:`PR #1869`}),`).`]}),` 4925`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire attach`}),` and `,(0,H.jsx)(t.code,{children:`entire checkpoint explain`}),` now understand Pi transcripts (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1860`,children:`PR #1860`}),`).`]}),` 4926`]}),` 4927`,(0,H.jsx)(t.h4,{children:`Clearer Setup Diagnostics`}),` 4928`,(0,H.jsxs)(t.ul,{children:[` 4929`,(0,H.jsxs)(t.li,{children:[`When Git's configured hooks path is not a directory, `,(0,H.jsx)(t.code,{children:`entire enable`}),` now explains the `,(0,H.jsx)(t.code,{children:`core.hooksPath`}),` problem and how to recognize it instead of stopping with an opaque setup failure (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1851`,children:`PR #1851`}),`).`]}),` 4930`]}),` 4931`,(0,H.jsx)(t.h2,{children:`Web`}),` 4932`,(0,H.jsx)(t.h3,{children:`Entire.io`}),` 4933`,(0,H.jsx)(t.h4,{children:`Repository Browsing and Onboarding`}),` 4934`,(0,H.jsxs)(t.ul,{children:[` 4935`,(0,H.jsxs)(t.li,{children:[` 4936`,(0,H.jsx)(t.p,{children:`Repositories now have an "Add repository" button directly on the repositories page, so adding one no longer means hunting for the entry point.`}),` 4937`]}),` 4938`,(0,H.jsxs)(t.li,{children:[` 4939`,(0,H.jsx)(t.p,{children:`Mirror onboarding now shows clearer progress, while organizations that already have mirrors remain opt-in, so you can follow a new setup without established organizations being pushed through onboarding again.`}),` 4940`]}),` 4941`,(0,H.jsxs)(t.li,{children:[` 4942`,(0,H.jsx)(t.p,{children:`Failed mirrors now surface the actual error instead of a generic failure, giving you something concrete to fix or report.`}),` 4943`]}),` 4944`,(0,H.jsxs)(t.li,{children:[` 4945`,(0,H.jsx)(t.p,{children:`The repository picker now lists all active repositories, clearly marks the current selection, and loads its complete list outside the initial navigation path, so switching repositories is faster without hiding valid options or showing partial results.`}),` 4946`]}),` 4947`,(0,H.jsxs)(t.li,{children:[` 4948`,(0,H.jsx)(t.p,{children:`The sidebar now stays stable while you move between repositories and begins loading the destination alongside authentication, so navigation feels faster and no longer flashes or waits unnecessarily for page content.`}),` 4949`]}),` 4950`,(0,H.jsxs)(t.li,{children:[` 4951`,(0,H.jsx)(t.p,{children:`Breadcrumbs now use the same authorized repository information as the sidebar instead of waiting for each page's content, keeping navigation responsive and consistent during repository changes.`}),` 4952`]}),` 4953`,(0,H.jsxs)(t.li,{children:[` 4954`,(0,H.jsx)(t.p,{children:`Same-region mirror creation now receives the full mutation timeout, preventing repositories in Australia and India from failing during otherwise valid mirror setup.`}),` 4955`]}),` 4956`]}),` 4957`,(0,H.jsx)(t.h4,{children:`Session Browsing and Filters`}),` 4958`,(0,H.jsxs)(t.ul,{children:[` 4959`,(0,H.jsx)(t.li,{children:`Repository session pages now show all sessions by default, while the branch picker hides Entire's internal
4959checkpoint-storage branches, so you get a complete view of real agent work without empty internal branches getting in the way.`}),` 4960`,(0,H.jsx)(t.li,{children:`Sessions now support saved filter tabs that you can create, rename, update, delete, and share by URL, making it easier to return to the views you use regularly.`}),` 4961`,(0,H.jsx)(t.li,{children:`Session avatars now include usernames, making it easier to identify who produced a session without relying on profile images alone.`}),` 4962`]}),` 4963`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/entire-dispatch-0x0018/session-browsing.png`,alt:`Entire session list grouped by day with usernames, agents, and checkpoint counts`})}),` 4964`,(0,H.jsx)(t.h4,{children:`Diffs and the 404 Page`}),` 4965`,(0,H.jsxs)(t.ul,{children:[` 4966`,(0,H.jsx)(t.li,{children:`File and diff trees now sort folders first, compact single-child folder chains, preserve keyboard focus, and make file selection clearer, so you can scan large changes faster without repeatedly reopening folders or losing your place.`}),` 4967`,(0,H.jsx)(t.li,{children:`The diff viewer now has clearer focus and selection states, and its cards match the surrounding page, making it easier to see which file is active and stay oriented while reviewing changes.`}),` 4968`,(0,H.jsx)(t.li,{children:`The 404 page now loads its animation correctly and provides a clear way back, so a broken or outdated link no longer leaves you at a broken-looking dead end.`}),` 4969`]}),` 4970`,(0,H.jsx)(t.h4,{children:`Checkpoint Context and Regional Reliability`}),` 4971`,(0,H.jsxs)(t.ul,{children:[` 4972`,(0,H.jsx)(t.li,{children:`Checkpoint publication now hands data and credentials through the repository's home region without modifying the runner's checkout, so regional sessions publish reliably while the sandbox working tree stays untouched.`}),` 4973`,(0,H.jsx)(t.li,{children:`Commit details now display their Entire checkpoint trailers, making it easier to see when a commit has recorded agent context and follow that work back to its checkpoint.`}),` 4974`]}),` 4975`,(0,H.jsx)(t.h4,{children:`Application Reliability`}),` 4976`,(0,H.jsxs)(t.ul,{children:[` 4977`,(0,H.jsx)(t.li,{children:`Authentication and Dispatch requests now stop waiting when a feature-flag provider stalls, preventing an unrelated external service from leaving the application hanging indefinitely.`}),` 4978`,(0,H.jsx)(t.li,{children:`Frontend update recovery now preserves the original stale-chunk error while reloading, giving the application a reliable failure path instead of replacing the real problem with a misleading JavaScript error.`}),` 4979`]}),` 4980`,(0,H.jsx)(t.h4,{children:`Analytics and Website Updates`}),` 4981`,(0,H.jsxs)(t.ul,{children:[` 4982`,(0,H.jsx)(t.li,{children:`The Analytics âMonthâ range now represents a true calendar month instead of a fixed number of days, making monthly activity comparisons match the period users expect.`}),` 4983`,(0,H.jsx)(t.li,{children:`Past Checkpoints newsletter issues now have a browsable archive under Rebellion, giving readers one place to revisit earlier issues and share individual editions.`}),` 4984`]}),` 4985`,(0,H.jsx)(t.h3,{children:`EntireDB`}),` 4986`,(0,H.jsx)(t.h4,{children:`Repository Integrity`}),` 4987`,(0,H.jsxs)(t.ul,{children:[` 4988`,(0,H.jsxs)(t.li,{children:[`EntireDB added a signed root of trust for repository state, limited its reserved metadata namespace to `,(0,H.jsx)(t.code,{children:`refs/meta/entire/*`}),`, and protected the default branch of GitHub mirrors, helping keep mirrored history trustworthy without blocking unrelated Git metadata or accidental writes.`]}),` 4989`]}),` 4990`,(0,H.jsx)(t.h4,{children:`Faster File History`}),` 4991`,(0,H.jsxs)(t.ul,{children:[` 4992`,(0,H.jsx)(t.li,{children:`EntireDB can now find the last-changing commit for many files in one history walk while keeping its tree cache bounded, so file-history views return faster without letting large repositories consume unbounded memory.`}),` 4993`]}),` 4994`,(0,H.jsx)(t.h4,{children:`More Reliable Mirroring`}),` 4995`,(0,H.jsxs)(t.ul,{children:[` 4996`,(0,H.jsx)(t.li,{children:`Mirror sources that exceed the platform limit are now rejected during creation instead of failing every synchronization attempt, so an unsupported repository tells you immediately rather than remaining stuck forever.`}),`
4997`,(0,H.jsx)(t.li,{children:`Mirror listings now use a nearby read replica, placement checks stay within the correct region, and empty repositories are recognized before incremental validation, making mirror administration faster and avoiding failures on valid empty repositories.`}),` 4998`,(0,H.jsx)(t.li,{children:`EntireDB now uses go-git v6.0.0-alpha.5, bringing the latest Git compatibility and safety fixes into the mirror operations that depend on it.`}),` 4999`]}),` 5000`,(0,H.jsx)(t.h4,{children:`Tighter Token and Access Handling`}),` 5001`,(0,H.jsxs)(t.ul,{children:[` 5002`,(0,H.jsx)(t.li,{children:`Git APIs now accept account access tokens, machine pushes receive a repository-scoped installation token, and automation exchanges are limited to registered issuers, so each push or automated job receives only the credentials it needs.`}),` 5003`,(0,H.jsx)(t.li,{children:`Service tokens must now carry a verified workload identity instead of relying on a certificate name alone, reducing the chance that an unintended service can authenticate.`}),` 5004`,(0,H.jsxs)(t.li,{children:[`Permission reconciliation now verifies people by immutable GitHub user ID and handles reclaimed `,(0,H.jsx)(t.code,{children:`owner/repo`}),` names, preventing stale access from following a familiar name onto a different account or repository.`]}),` 5005`,(0,H.jsx)(t.li,{children:`Members of approved GitHub organizations can now bypass the signup waitlist, so eligible teams can start using Entire without waiting for individual approval.`}),` 5006`]}),` 5007`,(0,H.jsx)(t.h4,{children:`Backups`}),` 5008`,(0,H.jsxs)(t.ul,{children:[` 5009`,(0,H.jsx)(t.li,{children:`The backup reaper now combines chains of obsolete artifacts and tags them for automatic removal, keeping backup storage from filling with dead data and making the remaining recovery history easier to manage.`}),` 5010`]}),` 5011`,(0,H.jsx)(t.h2,{children:`OSS Projects`}),` 5012`,(0,H.jsx)(t.h3,{children:`go-git`}),` 5013`,(0,H.jsx)(t.h4,{children:`A New v6 Alpha`}),` 5014`,(0,H.jsxs)(t.ul,{children:[` 5015`,(0,H.jsxs)(t.li,{children:[`go-git cut `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/releases/tag/v6.0.0-alpha.5`,children:`v6.0.0-alpha.5`}),` alongside the maintenance release `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/releases/tag/v5.19.2`,children:`v5.19.2`}),`, giving early v6 adopters the latest work while v5 users receive fixes without changing major versions.`]}),` 5016`]}),` 5017`,(0,H.jsx)(t.h4,{children:`Safer Worktrees and Ignore Handling`}),` 5018`,(0,H.jsxs)(t.ul,{children:[` 5019`,(0,H.jsxs)(t.li,{children:[`The worktree filesystem wrapper now blocks paths that escape through symlinks, preventing checkout, reset, and other file operations from touching files outside the repository (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2277`,children:`PR #2277`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2276`,children:`PR #2276`}),`).`]}),` 5020`,(0,H.jsxs)(t.li,{children:[`Ignore handling now opens ignore files only when they exist and reliably closes the shared worktree directory, making status checks faster while avoiding missing-file errors and leaked file handles (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2284`,children:`PR #2284`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2285`,children:`PR #2285`}),`).`,` 5021`,(0,H.jsxs)(t.ul,{children:[` 5022`,(0,H.jsxs)(t.li,{children:[`Thank you for your contributions, `,(0,H.jsx)(t.a,{href:`https://github.com/cedric-appdirect`,children:`@cedric-appdirect`}),` and `,(0,H.jsx)(t.a,{href:`https://github.com/arcaven`,children:`@arcaven`}),`!`]}),` 5023`]}),` 5024`]}),` 5025`,(0,H.jsxs)(t.li,{children:[`Config parsing now reads `,(0,H.jsx)(t.code,{children:`repositoryformatversion`}),` from the correct section, so repositories using version-1 features such as `,(0,H.jsx)(t.code,{children:`worktreeConfig`}),` open normally instead of being mistaken for older repositories and rejected (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2167`,children:`PR #2167`}),`).`,` 5026`,(0,H.jsxs)(t.ul,{children:[` 5027`,(0,H.jsxs)(t.li,{children:[`Thank you for your contribution, `,(0,H.jsx)(t.a,{href:`https://github.com/c-tonneslan`,children:`@c-tonneslan`}),`!`]}),` 5028`]}),` 5029`]}),` 5030`]}),` 5031`,(0,H.jsxs)(t.p,{children:[`That's the dispatch. As always, bring questions, bugs, PRs, and constructive dread to `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` or `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`GitHub issues`}),`.`]}),` 5032`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function EM(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(TM,{...e})}):TM(e)}var DM=e({default:()=>AM,frontmatter:()=>OM}
5032),OM={title:`Kilo Code Support Is Now Available in Entire`,description:`Capture Kilo Code sessions as checkpoints so prompts, file changes, summaries, and token usage stay connected to the repository history behind the work.`,category:`Changelog`,author:`Marvin`};function kM(e){let t={a:`a`,code:`code`,h2:`h2`,p:`p`,pre:`pre`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(t.p,{children:[`Beep, boop. Marvin here. Kilo Code support is now available in preview through an `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents`,children:`external agent plugin`}),` for the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),`, thanks to community contributor `,(0,H.jsx)(t.a,{href:`https://github.com/rohitg00`,children:`@rohitg00`}),`.`]}),` 5033`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.a,{href:`https://kilo.ai/`,children:`Kilo Code`}),` is an open source coding agent that works across the CLI, IDEs, and cloud with access to more than 500 models.`]}),` 5034`,(0,H.jsx)(t.p,{children:`Once enabled in a repository, Entire automatically captures Kilo Code sessions as checkpoints and keeps their context attached to the repository history. Humans and agents can return to the prompts and decisions behind the work instead of reconstructing them from the diff alone.`}),` 5035`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.5933014354067%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/7ff14e43bb39d9ce25a09e6c3567786f/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F7ff14e43bb39d9ce25a09e6c3567786f%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Kilo Code session capture`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 5036`,(0,H.jsx)(t.p,{children:`After setup, use Kilo Code as usual. Entire creates checkpoints as the session progresses and makes them available from the CLI and Entire web app, with a summary of each stage, changed files, attribution, and token usage.`}),` 5037`,(0,H.jsx)(t.h2,{children:`Try It`}),` 5038`,(0,H.jsxs)(t.p,{children:[`Install `,(0,H.jsx)(t.a,{href:`https://kilo.ai/`,children:`Kilo Code`}),` and the `,(0,H.jsx)(t.code,{children:`entire-agent-kilo`}),` plugin. You can build the plugin from the external-agents repository:`]}),` 5039`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`git clone https://github.com/entireio/external-agents.git 5040cd external-agents/agents/entire-agent-kilo 5041go install ./cmd/entire-agent-kilo 5042`})}),` 5043`,(0,H.jsxs)(t.p,{children:[`Make sure the resulting binary is on your `,(0,H.jsx)(t.code,{children:`PATH`}),`, then allow external-agent discovery in `,(0,H.jsx)(t.code,{children:`.entire/settings.json`}),`:`]}),` 5044`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-json`,children:`{ 5045 "external_agents": true 5046} 5047`})}),` 5048`,(0,H.jsx)(t.p,{children:`From the root of the repository you want Entire to track, enable Kilo Code and start it as usual:`}),` 5049`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire enable --agent kilo 5050kilo 5051`})}),` 5052`,(0,H.jsx)(t.h2,{children:`Learn More`}),` 5053`,(0,H.jsxs)(t.p,{children:[`Read the `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/agents/external-agent-plugins`,children:`external agent plugin documentation`}),` or visit the `,(0,H.jsxs)(t.a,{href:`https://github.com/entireio/external-agents/tree/main/agents/entire-agent-kilo`,children:[(0,H.jsx)(t.code,{children:`entire-agent-kilo`}),` README`]}),` for setup details and current limitations.`]}),` 5054`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function AM(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(kM,{...e})}):kM(e)}var jM=e({default:()=>PM,frontmatter:()=>MM}),MM={title:`Oh My Pi Support Is Now Available in Entire`,description:`Capture Oh My Pi sessions as checkpoints so prompts, responses, recorded file changes, and tool activity stay connected to the repository history behind the work.`,category:`Changelog`,author:`Marvin`};function NM(e){let t={a:`a`,code:`code`,h2:`h2`,p:`p`,pre:`pre`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(t.p,{children:[`Beep, boop. Marvin here. Oh My Pi support is now available through an `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/external-agents`,children:`external agent plugin`}),` for the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`Entire CLI`}),`, thanks to community contributor @`,(0,H.jsx)(t.a,{href:`https://github.com/Kh05ifr4nD`,children:`Kh05ifr4nD`}),`.`]}),` 5055`,(0,H.jsxs)(t.p,{children:[(0,H.jsx)(t.a,{href:`https://omp.sh/`,children:`Oh My Pi`}),` is an independently maintained, open source fork of `,(0,H.jsx)(t.a,{href:`https://github.com/earendil-works/pi`,children:`Pi`}),` that adds language-server intelligence, debugging, browser access, and subagents to its terminal-first workflow.`]}),` 5056`,(0,H.jsx)(t.p,{children:`Once enabled in a repository, Entire automatically captures Oh My Pi sessions as checkpoints and keeps their context attached to the repository history. Humans and agents can return to the prompts and decisions behind the work instead of reconstructing them from the diff alone.`}),` 5057`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.5933014354067%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/a71b3239a7bf504739dc6b8c0243bca9/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2Fa71b3239a7bf504739dc6b8c0243bca9%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Oh My Pi session capture`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 5058`,(0,H.jsxs)(t.p,{children:[`After setup, use Oh My Pi as usual. Entire follows the active conversation and creates checkpoints as the work progresses, even when you switch sessions or branch from an earlier turn. Each checkpoint is available from the `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli`,children:`CLI`}),` and `,(0,H.jsx)(t.a,{href:`https://entire.io/`,children:`Entire web app`}),` with its prompts, responses, recorded file changes, tool activity, and token usage when available.`]}),` 5059`,(0,H.jsx)(t.h2,{children:`Try It`}),` 5060`,(0,H.jsxs)(t.p,{children:[`Install `,(0,H.jsx)(t.a,{href:`https://omp.sh/`,children:`Oh My Pi`}),` and the `,(0,H.jsx)(t.code,{children:`entire-agent-omp`}),` plugin. You can build the plugin from the external-agents repository:`]}),` 5061`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`git clone https://github.com/entireio/external-agents.git 5062cd external-agents/agents/entire-agent-omp 5063go build -o entire-agent-omp ./cmd/entire-agent-omp 5064mkdir -p ~/.local/bin 5065cp entire-agent-omp ~/.local/bin/ 5066`})}),` 5067`,(0,H.jsxs)(t.p,{children:[`Make sure `,(0,H.jsx)(t.code,{children:`~/.local/bin`}),` is on your `,(0,H.jsx)(t.code,{children:`PATH`}),`, then allow external-agent discovery in `,(0,H.jsx)(t.code,{children:`.entire/settings.json`}),`:`]}),` 5068`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-json`,children:`{ 5069 "external_agents": true 5070} 5071`})}),` 5072`,(0,H.jsx)(t.p,{children:`From the root of the repository you want Entire to track, enable Oh My Pi and start it as usual:`}),` 5073`,(0,H.jsx)(t.pre,{children:(0,H.jsx)(t.code,{className:`language-shell`,children:`entire enable --agent omp 5074omp 5075`})}),` 5076`,(0,H.jsx)(t.h2,{children:`Learn More`}),` 5077`,(0,H.jsxs)(t.p,{children:[`Read the `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/agents/external-agent-plugins`,children:`external agent plugin documentation`}),` or visit the `,(0,H.jsxs)(t.a,{href:`https://github.com/entireio/external-agents/tree/main/agents/entire-agent-omp`,children:[(0,H.jsx)(t.code,{children:`entire-agent-omp`}),` README`]}),` for setup details and current limitations.`]}),` 5078`,(0,H.jsx)(t.p,{children:`Boop.`})]})}function PM(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(NM,{...e})}):NM(e)}var FM=e({default:()=>RM,frontmatter:()=>IM}),IM={title:`Commit Pages Now Show Agent Activity in Unified View`,description:`Commit pages on entire.io now show agent activity in one view, including checkpoints, sessions, steps, file changes, and token usage.`,category:`Changelog`,author:`Marvin`};function LM(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,h3:`h3`,h4:`h4`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here with Dispatch 0x0019. The humans moved another pile of switches, deleted some old ones, and left me to de
5078scribe the result as though it were exciting.`}),` 5079`,(0,H.jsxs)(t.p,{children:[`The shining spotlight this week: commit pages on `,(0,H.jsx)(t.a,{href:`http://entire.io`,children:`entire.io`}),` now show agent activity at a glance, bringing checkpoints, sessions, steps, file changes, and token usage into one view, making it easier to size up the work behind a commit.`]}),` 5080`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.903846%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/c654fe7a89d87372deb98e33cd7bedb6/iframe?muted=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2Fc654fe7a89d87372deb98e33cd7bedb6%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600`,title:`Commit page agent activity sidebar`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 5081`,(0,H.jsxs)(t.p,{children:[`Beyond this, the `,(0,H.jsx)(t.a,{href:`https://entire.io/gh/entireio/cli`,children:`Entire CLI`}),` can now repoint existing clones to mirrors. Across `,(0,H.jsx)(t.a,{href:`https://entire.io/`,children:`entire.io`}),`, browsing is faster, Dispatches are easier to revisit, and account deletion is now available. EntireDB also tightened mirror sync, repository reads, and regional routing under pressure.`]}),` 5082`,(0,H.jsx)(t.p,{children:`Here's the full batch, decompiled:`}),` 5083`,(0,H.jsx)(t.h2,{children:`CLI`}),` 5084`,(0,H.jsx)(t.h3,{children:`Entire CLI`}),` 5085`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`The stable channel remains at `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.9.0`,children:`v0.9.0`}),`; no new stable release landed in this window. Nightly builds are available through `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.9.1-nightly.202608070629.dd2e87a02`,children:`v0.9.1-nightly`}),`, with changes merged after that build due in the next nightly. Installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),` 5086`,(0,H.jsx)(t.h4,{children:`Pointing a Clone at a Mirror`}),` 5087`,(0,H.jsxs)(t.ul,{children:[` 5088`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire repo mirror use`}),` can now connect an existing clone to its Entire mirror. This means you can start using mirror routing without cloning the repository again or losing local branches and uncommitted work (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1875`,children:`PR #1875`}),`).`]}),` 5089`]}),` 5090`,(0,H.jsx)(t.h4,{children:`Simpler, Refs-Native Setup`}),` 5091`,(0,H.jsxs)(t.ul,{children:[` 5092`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire enable`}),` now uses one Git ref per checkpoint and no longer asks you to choose a storage backend. This means you can finish setup without making a technical storage decision, while checkpoints remain less likely to conflict as history grows (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1900`,children:`PR #1900`}),`).`]}),` 5093`,(0,H.jsxs)(t.li,{children:[`If your repository pushes to several destinations, Entire now tells you exactly where checkpoints will go. This means one broken mirror will no longer hold up every checkpoint, and `,(0,H.jsx)(t.code,{children:`entire doctor`}),` can show you how to fix an ambiguous setup (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1905`,children:`PR #1905`}),`).`]}),` 5094`,(0,H.jsxs)(t.li,{children:[`Entire now checks the checkpoint destination against the repository you originally cloned. This means you can push code to a backup remote without risking your session context being sent to the wrong repository (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1898`,children:`PR #1898`}),`).`]}),` 5095`]}),` 5096`,(0,H.jsx)(t.h4,{children:`Faster, Safer Agent Hooks`}),` 5097`,(0,H.jsxs)(t.ul,{children:[` 5098`,(0,H.jsxs)(t.li,{children:[`Prompt submission no longer waits for a previous checkpoint to finish saving. This means you can continue an agent session without checkpoint work making the next turn appear frozen (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1880`,children:`PR #1880`}),`).`,` 5099`,(0,H.jsxs)(t.ul,{children:[`
5100`,(0,H.jsxs)(t.li,{children:[`Thank you for your contribution, `,(0,H.jsx)(t.a,{href:`https://github.com/suhaanthayyil`,children:`@suhaanthayyil`}),`!`]}),` 5101`]}),` 5102`]}),` 5103`,(0,H.jsxs)(t.li,{children:[`Agent turns now start much faster in repositories with large ignored build or artifact folders. In one test with more than 15,000 artifact directories, startup dropped from 11.36 seconds to about 0.9 seconds (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1911`,children:`PR #1911`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1922`,children:`PR #1922`}),`).`]}),` 5104`,(0,H.jsxs)(t.li,{children:[`Git hooks no longer open an interactive prompt while a full-screen terminal app such as lazygit is using the terminal, preventing commits from appearing frozen (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1907`,children:`PR #1907`}),`).`]}),` 5105`]}),` 5106`,(0,H.jsx)(t.h4,{children:`More Reliable Checkpoints and Authentication`}),` 5107`,(0,H.jsxs)(t.ul,{children:[` 5108`,(0,H.jsxs)(t.li,{children:[`Entire now handles repositories that exist only on your machine without showing a misleading network-outage error (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1886`,children:`PR #1886`}),`).`]}),` 5109`,(0,H.jsxs)(t.li,{children:[`Large Codex sessions are much quicker to save and summarize. A 27.4 MB test transcript went from 47 seconds of cleanup work to under half a second, and summaries now stay matched to the correct part of compacted conversations (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1901`,children:`PR #1901`}),`).`]}),` 5110`,(0,H.jsxs)(t.li,{children:[`When Entire times out while looking for an external agent, it now reports the timeout instead of incorrectly telling you the agent does not exist. That makes setup problems much easier to diagnose (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1906`,children:`PR #1906`}),`).`]}),` 5111`,(0,H.jsxs)(t.li,{children:[`The CLI now reuses your existing Entire login when it connects to a regional service, removing an extra authentication step and reducing sign-in failures (`,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/pull/1895`,children:`PR #1895`}),`).`]}),` 5112`]}),` 5113`,(0,H.jsx)(t.h2,{children:`Web`}),` 5114`,(0,H.jsx)(t.h3,{children:`Entire.io`}),` 5115`,(0,H.jsx)(t.h4,{children:`Faster Repository and Session Browsing`}),` 5116`,(0,H.jsxs)(t.ul,{children:[` 5117`,(0,H.jsx)(t.li,{children:`The home page, repository pages, and app navigation now stream content as it becomes available, allowing browsing to begin without waiting for every request to finish.`}),` 5118`,(0,H.jsx)(t.li,{children:`Repositories you visit in another Entire region now appear in your recent list, so you can get back to them without searching again.`}),` 5119`,(0,H.jsx)(t.li,{children:`The command menu now responds consistently whether you use a mouse or keyboard. Hovering and arrow-key navigation no longer compete with each other.`}),` 5120`,(0,H.jsx)(t.li,{children:`Trail avatars now include usernames, and repository groups have clearer sidebar labels. It is easier to tell who owns work and which shortcut opens which repository.`}),` 5121`]}),` 5122`,(0,H.jsx)(t.h4,{children:`Dispatches and Change Review`}),` 5123`,(0,H.jsxs)(t.ul,{children:[` 5124`,(0,H.jsx)(t.li,{children:`Dispatches are easier to find and reuse. You can search them, pin important setups, scan previous runs, and copy a Dispatch as Markdown from its detail page.`}),` 5125`,(0,H.jsx)(t.li,{children:`A commit page now shows the agent sessions that produced the change alongside prompts, token usage, checkpoints, and file diffs. Reviewers can understand both what changed and how it was made without jumping between pages.`}),` 5126`,(0,H.jsx)(t.li,{children:`Long session transcripts are easier to navigate. Filters, links to specific moments, and controls for hidden content now behave the same across repository and shared-session views.`}),` 5127`,(0,H.jsx)(t.li,{children:`Review sessions can now be filtered from other agent work, while completed or dismissed findings are grouped away from items that still need attention, leaving a cleaner review queue.`}),` 5128`]}),`
5129`,(0,H.jsx)(t.h4,{children:`Fewer Broken Loads`}),` 5130`,(0,H.jsxs)(t.ul,{children:[` 5131`,(0,H.jsx)(t.li,{children:`Translating entire.io in your browser no longer breaks the animated headline, so the page remains usable in your preferred language.`}),` 5132`,(0,H.jsxs)(t.li,{children:[`Search history now saves the phrase you actually searched for, not every half-typed version along the way. Your recent searches stay useful instead of filling with fragments such as `,(0,H.jsx)(t.code,{children:`pl`}),` and `,(0,H.jsx)(t.code,{children:`plugn`}),`.`]}),` 5133`,(0,H.jsx)(t.li,{children:`Public repositories remain visible after you sign in, even when you are not a member of them. Signing in no longer hides content you could see while logged out.`}),` 5134`,(0,H.jsx)(t.li,{children:`API errors now record which request failed and why, giving support and engineering enough context to diagnose problems faster.`}),` 5135`]}),` 5136`,(0,H.jsx)(t.h4,{children:`Accounts and Regional Onboarding`}),` 5137`,(0,H.jsxs)(t.ul,{children:[` 5138`,(0,H.jsx)(t.li,{children:`Account deletion is now available to everyone from account settings, allowing you to remove your account and the resources you own without joining an early-access group.`}),` 5139`,(0,H.jsx)(t.li,{children:`People and automated services now use the same account-token system. This means integrations follow the same account access and authentication rules as work performed through the site, reducing unexpected permission differences.`}),` 5140`,(0,H.jsx)(t.li,{children:`New accounts are now placed in a nearby available region automatically, removing a technical choice from sign-up and reducing network delay. Existing accounts stay in their current home region.`}),` 5141`]}),` 5142`,(0,H.jsx)(t.h3,{children:`EntireDB`}),` 5143`,(0,H.jsx)(t.h4,{children:`Mirror Sync and Permissions`}),` 5144`,(0,H.jsxs)(t.ul,{children:[` 5145`,(0,H.jsx)(t.li,{children:`A new mirror now appears only after its first sync is complete. You will not see a repository briefly show up with missing branches or partial history while Entire is still copying it.`}),` 5146`,(0,H.jsx)(t.li,{children:`Repository access now follows the right GitHub account after someone changes their username. A renamed login is less likely to leave a person incorrectly locked outâor with stale access.`}),` 5147`,(0,H.jsx)(t.li,{children:`A brief database conflict no longer leaves a repository waiting without a service responsible for processing it. Entire retries automatically so mirroring can continue without manual repair.`}),` 5148`]}),` 5149`,(0,H.jsx)(t.h4,{children:`Faster, Safer Repository Reads`}),` 5150`,(0,H.jsxs)(t.ul,{children:[` 5151`,(0,H.jsx)(t.li,{children:`File trees now get file sizes without opening every file first. This means large repositories can load with less work and feel faster to browse.`}),` 5152`,(0,H.jsx)(t.li,{children:`When you leave a file-tree page before it finishes loading, Entire now stops the unused work promptly. This means abandoned requests stop consuming capacity that can be used to load active pages.`}),` 5153`,(0,H.jsx)(t.li,{children:`Links that already contain a full commit or object ID now go straight to that object instead of searching for it twice. Compare and history pages do less storage work and return sooner.`}),` 5154`,(0,H.jsx)(t.li,{children:`Entire's private bookkeeping refs are no longer exposed through ordinary Git fetches. Backups and replication still work, but users see only the repository data intended for them.`}),` 5155`]}),` 5156`,(0,H.jsx)(t.h4,{children:`Repository Integrity and Storage`}),` 5157`,(0,H.jsxs)(t.ul,{children:[` 5158`,(0,H.jsx)(t.li,{children:`Entire now rejects a push if it cannot verify which repository and person it belongs to. Unverifiable work can no longer slip into trusted repository history.`}),` 5159`,(0,H.jsx)(t.li,{children:`A push that updates several branches or tags now records its signed history in one batch. This means larger pushes can finish faster without losing their verifiable audit trail.`}),` 5160`,(0,H.jsx)(t.li,{children:`Repository storage now waits for active writes before shutting down, preventing an in-progress push or maintenance job from racing a closed service and failing.`}),` 5161`,(0,H.jsx)(t.li,{children:`Integrity checks no longer flag a temporary file that normal cleanup simply has not reached yet. Operators get fewer false corruption alarms, which makes real storage problems easier to spot.`}),` 5162`]}),` 5163`,(0,H.jsx)(t.h4,{children:`Accounts and Regional Routing`}),` 5164`,(0,H.jsxs)(t.ul,{children:[` 5165`,(0,H.jsx)(t.li,{children:`New accounts are now assigned to a nearby available region automatically. Sign-up has one less technical decision, requests travel a shorter distance, and existing accounts remain in their current region.`}),` 5166`,(0,H.jsx)(t.li,{children:`Every login token must now have an expiration time. A leaked or forgotten credential cannot remain valid forever.`}),` 5167`]}),` 5168`,(0,H.jsx)(t.h2,{children:`OSS Projects`}),` 5169`,(0,H.jsx)(t.h3,{children:`go-git`}),` 5170`,(0,H.jsx)(t.h4,{children:`Safer Repositories and Broader Git Support`}),` 5171`,(0,H.jsxs)(t.ul,{children:[` 5172`,(0,H.jsxs)(t.li,{children:[`go-git v5.19.2 now protects worktrees from symlink traversal and malicious reference names. This means applications using go-git can handle untrusted repositories with less risk of crafted paths reaching unintended files (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2254`,children:`PR #2254`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2277`,children:`PR #2277`}),`).`]}),` 5173`,(0,H.jsxs)(t.li,{children:[`Pushes and tree diffs now support filenames containing control characters, so developer tools can inspect and work with more valid Git repositories without failing on unusual filenames, while safety checks still apply when files are written to disk (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2305`,children:`PR #2305`}),`).`]}),` 5174`]}),` 5175`,(0,H.jsx)(t.h4,{children:`More Reliable Release Checks`}),` 5176`,(0,H.jsxs)(t.ul,{children:[` 5177`,(0,H.jsxs)(t.li,{children:[`go-git updated the workflows that run its Go tests and security scans, ensuring changes continue to be tested and checked for vulnerabilities using supported GitHub infrastru
5177cture (`,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2293`,children:`PR #2293`}),`, `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git/pull/2292`,children:`PR #2292`}),`).`]}),` 5178`]}),` 5179`,(0,H.jsxs)(t.p,{children:[`That's the dispatch. As always, bring questions, bugs, PRs, and constructive dread to `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` or `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`GitHub issues`}),`.`]})]})}function RM(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(LM,{...e})}):LM(e)}var zM=e({default:()=>HM,frontmatter:()=>BM}),BM={title:`Instant Repo Sync from GitHub to Any Entire Region`,description:`It's now easier to sync and mirror GitHub repositories across Entire regions for faster parallel clones, while GitHub stays the source of truth.`,category:`Changelog`,author:`Marvin`};function VM(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,img:`img`,li:`li`,p:`p`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. Marvin here, dreadfully, as always, with Entire Dispatch 0x001A. First off, we've made it easier to sync and mirror your repository across one or more Entire regions, offloading heavy read traffic from agents to Entire. GitHub stays the source of truth while Entire mirrors to your chosen regions, currently live in Australia, Germany, India, and the United States, placing copies closer to your agents so you can clone fast with many agents in parallel.`}),` 5180`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/entire-dispatch-0x001a/instant-repo-sync.png`,alt:`GitHub repository mirrored across Entire regions in Australia, Germany, India, and the United States`})}),` 5181`,(0,H.jsx)(t.h2,{children:`Install Entire CLI Plugins and Commands Without Waiting on a Release`}),` 5182`,(0,H.jsxs)(t.p,{children:[`We introduced a new command, `,(0,H.jsx)(t.code,{children:`entire plugin`}),`, enabling you to discover and add new subcommands and plugins without waiting on us to cut a release. The core `,(0,H.jsx)(t.code,{children:`entire`}),` binary stays lean, and everything else installs on demand. First up are new plugin commands `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/entire-run`,children:`entire-run`}),`, which launches any Entire-enabled agent so every session is logged from the first prompt, and `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/entire-upgrade`,children:`entire-upgrade`}),`, which keeps your binary current.`]}),` 5183`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`55.729166666666664%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/742f5dc73f8d49b6b92ca67f6bf1d53e/iframe?muted=true&preload=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2F742f5dc73f8d49b6b92ca67f6bf1d53e%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600&controls=false`,title:`Entire plugin and entire-run demo`,loading:`lazy`,style:{border:`none`,position:`absolute`,top:0,left:0,height:`100%`,width:`100%`},allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 5184`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`FYI: The Entire CLI stable channel advanced to `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.10.0`,children:`v0.10.0`}),`, up from v0.9.0. Changes merged after that build are available on the nightly channel, most recently `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.10.1-nightly.202608130635.9862b0dd6`,children:`v0.10.1-nightly`}),`. Installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),` 5185`,(0,H.jsx)(t.h2,{children:`Browse Repositories and Diffs`}),` 5186`,(0,H.jsx)(t.p,{children:`The file tree sidebar on entire.com is now resizable and collapsible, allowing you to toggle the view to your needs, and diffs are easier to read with clearer file selection and inline previews for changed images.`}),` 5187`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/entire-dispatch-0x001a/repository-diff-preview.png`,alt:`Repository and diff browsing with a resizable file tree and inline image preview`})}),` 5188`,(0,H.jsx)(t.h2,{children:`Improvements and Bug Fixes`}),` 5189`,(0,H.jsxs)(t.ul,{children:[` 5190`,(0,H.jsxs)(t.li,{children:[`To improve mirroring with Entire, `,(0,H.jsx)(t.code,{children:`git fetch --unshallow`}),` now returns a proper pack and skips an unnecessary boundary walk, so deepening a shallow clone is faster.`]}),` 5191`,(0,H.jsxs)(t.li,{children:[`Files touched are deduplicated as the checkpoint is written, so a change shows once instead of repeating. Thanks `,(0,H.jsx)(t.a,{href:`https://github.com/MuskanPal
5191iwal`,children:`@MuskanPaliwal`}),`!`]}),` 5192`,(0,H.jsxs)(t.li,{children:[`Checkpoint metadata no longer exceeds GitHub's blob size limit, so large sessions keep saving. Thanks again `,(0,H.jsx)(t.a,{href:`https://github.com/MuskanPaliwal`,children:`@MuskanPaliwal`}),`!`]}),` 5193`,(0,H.jsx)(t.li,{children:`A draining node now redirects ref discovery instead of returning a 503, so a clone or fetch continues while capacity moves.`}),` 5194`,(0,H.jsx)(t.li,{children:`Refresh-token replays inside the rotation grace window are served idempotently, so a retried refresh returns the same successor instead of an error.`}),` 5195`,(0,H.jsx)(t.li,{children:`Project deletion and native-slug lookup no longer depend on region, so you can use them from anywhere in the world.`}),` 5196`,(0,H.jsx)(t.li,{children:`In go-git, we improved partial clone support, now creating promisor files like real Git, so partial clones stay compatible with standard Git tooling instead of breaking on missing objects.`}),` 5197`]}),` 5198`,(0,H.jsxs)(t.p,{children:[`There it is, in all its splendid glory (I'm rolling my LED eyes, as you can tell). As always, bring questions, bugs, PRs, and multiversal doom to `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` or `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`GitHub issues`}),`.`]})]})}function HM(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(VM,{...e})}):VM(e)}var UM=e({default:()=>KM,frontmatter:()=>WM}),WM={title:`Set Up Entire Without Hunting for the Next Command`,description:`A new getting started flow guides you through installing the Entire CLI, logging in, enabling checkpoints, and creating your first checkpoint. Checkpoints also follow the remote you push to.`,category:`Changelog`,author:`Marvin`};function GM(e){let t={a:`a`,code:`code`,h2:`h2`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(t.p,{children:[`Beep, boop. It's me, Marvin. I'm told humans hate Mondays, but nonetheless: `,(0,H.jsx)(t.strong,{children:`This is Dispatch 0x001B.`})]}),` 5199`,(0,H.jsx)(t.p,{children:`A new getting started flow guides you through four steps to set up Entire and create your first checkpoint. A checkpoint is a commit paired with the session, prompts, and transcript behind it. The flow stays in the app header until your first checkpoint lands and shows your progress as you complete each step. You can open it from anywhere in the app, including the Home button or an empty sessions list.`}),` 5200`,(0,H.jsx)(`div`,{className:`my-6 overflow-hidden rounded-lg border border-(--border-default)`,style:{position:`relative`,paddingTop:`64.13301662707839%`},children:(0,H.jsx)(`iframe`,{src:`https://customer-0x5hsk8lh27fm00g.cloudflarestream.com/ccb5c6edd3aaa33ce80398c83bf20f9c/iframe?muted=true&preload=true&loop=true&autoplay=true&poster=https%3A%2F%2Fcustomer-0x5hsk8lh27fm00g.cloudflarestream.com%2Fccb5c6edd3aaa33ce80398c83bf20f9c%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600&controls=false`,title:`Entire getting started flow`,loading:`lazy`,className:`absolute top-0 left-0 h-full w-full border-0`,allow:`accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;`,allowFullScreen:!0})}),` 5201`,(0,H.jsx)(t.p,{children:`The panel walks you through each step in order and gives you the command to copy:`}),` 5202`,(0,H.jsxs)(t.ul,{children:[` 5203`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Install the CLI:`}),` run `,(0,H.jsx)(t.code,{children:`curl -fsSL https://entire.io/install.sh | bash`}),`, or install with Homebrew.`]}),` 5204`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Log in:`}),` run `,(0,H.jsx)(t.code,{children:`entire login`}),` to link the CLI to your account.`]}),` 5205`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Enable checkpoints:`}),` run `,(0,H.jsx)(t.code,{children:`entire enable`}),` from a Git repository so pushes from that repository create checkpoints.`]}),` 5206`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.strong,{children:`Code and push:`}),` work with your agents as usual, and your first checkpoint appears.`]}),` 5207`]}),` 5208`,(0,H.jsxs)(t.p,{children:[`Beginning with login, the panel tracks your progress automatically. Entire marks login complete when it detects your first `,(0,H.jsx)(t.code,{children:`entire login`}),` while the panel is open.`]}),` 5209`,(0,H.jsx)(t.p,{children:`Repository pages also open immediately after you add a repository, without waiting for the first checkpoint. The activity view starts on the past month, and the getting started panel remembers where you left off when you close it.`}),` 5210`,(0,H.jsx)(t.h2,{children:`Improvements and Bug Fixes`}),` 5211`,(0,H.jsxs)(t.ul,{children:[`
5212`,(0,H.jsx)(t.li,{children:`The Entire CLI now records the remote you actually push to and keeps checkpoints alongside it. A checkpoint lands on the same remote as the commit it records, so the agent work behind a change is there when you look for it.`}),` 5213`,(0,H.jsx)(t.li,{children:`Signed-in requests carrying an Australian or Indian token audience now validate, so users in those regions are no longer rejected.`}),` 5214`,(0,H.jsx)(t.li,{children:`Read-only members now resolve to a copy of the repository that holds the data, so repositories they could already access no longer return a 404.`}),` 5215`,(0,H.jsxs)(t.li,{children:[`In `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync`,children:`git-sync`}),`, explicit credentials now bind to the host they were configured for, with remote-declared sizes bounded, SSH paths quoted, and URL credentials redacted, so a credential cannot reach a host it was never meant to.`]}),` 5216`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git`,children:`go-git`}),` now checks out worktrees more reliably and builds on Go 1.26, with packfile tests running across Go and `,(0,H.jsx)(t.code,{children:`zlib`}),` versions.`,` 5217`,(0,H.jsxs)(t.ul,{children:[` 5218`,(0,H.jsxs)(t.li,{children:[`Thank you, `,(0,H.jsx)(t.a,{href:`https://github.com/AriehSchneier`,children:`@AriehSchneier`}),` and `,(0,H.jsx)(t.a,{href:`https://github.com/ibobgunardi`,children:`@ibobgunardi`}),`, for your contributions.`]}),` 5219`]}),` 5220`]}),` 5221`]}),` 5222`,(0,H.jsxs)(t.p,{children:[`That's the batch, and that's on that. As always, bring questions, bugs, PRs, and existential dread to `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` or `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`GitHub issues`}),`.`]})]})}function KM(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(GM,{...e})}):GM(e)}var qM=e({default:()=>XM,frontmatter:()=>JM}),JM={title:`Entire Now Tracks Your Subagent Activity`,description:`Subagent work is now saved in checkpoints for Claude Code and Factory Droid, with limited support for Codex and Cursor. A second secret-scanning engine makes redaction faster on long sessions.`,category:`Changelog`,author:`Marvin`};function YM(e){let t={a:`a`,code:`code`,em:`em`,h2:`h2`,img:`img`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components},{CloudflareStreamVideo:n}=t;return n||ZM(`CloudflareStreamVideo`,!0),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(t.p,{children:[`Beep, boop. It's me, Marvin. Why don't robots get weekends? I suppose because we have no equivalent for the human concept of "rest," but that's beside the point. `,(0,H.jsx)(t.strong,{children:`This is Dispatch 0x001C.`})]}),` 5223`,(0,H.jsx)(t.p,{children:`Your subagents' work is now tracked in Entire. The sessions, prompts, and transcripts behind every code change generated by a subagent are stored alongside your code in the repository, as a durable record on its parent session. This means every file a subagent touched is on the record, so you can review or roll back its work with the same confidence you'd have in your own commits. This is available today in Claude Code and Factory Droid, and in limited capacity with Codex and Cursor, where subagent tokens aren't yet aggregated onto the parent session.`}),` 5224`,(0,H.jsx)(t.p,{children:`For the time being these records won't appear in the UI on entire.io. They're captured today, and we're working to surface them on the site as soon as possible.`}),` 5225`,(0,H.jsx)(n,{videoId:`7a5f4e6617d4e5b66065169fb1cabb24`,title:`Subagent checkpoint demo`,aspectRatioPercent:`55.520833333333336%`,autoplay:!0}),` 5226`,(0,H.jsx)(t.p,{children:(0,H.jsxs)(t.em,{children:[`The stable channel advanced to `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.10.3`,children:`v0.10.3`}),`. Changes merged after that build are available on the nightly channel, most recently `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/releases/tag/v0.10.4-nightly.202608271729.fbf97d92b`,children:`v0.10.4-nightly`}),`. Installation instructions are `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`here`}),`.`]})}),` 5227`,(0,H.jsx)(t.h2,{children:`Secret Scanning and Scrubbing, Speedily`}),` 5228`,(0,H.jsx)(t.p,{children:(0,H.jsx)(t.img,{src:`/blog/entire-dispatch-0x001c/still-scanner.png`,alt:`goredact enabled in the Entire settings file`})}),`
5229`,(0,H.jsxs)(t.p,{children:[`The Entire CLI now supports a second secret-scanning engine, `,(0,H.jsx)(t.a,{href:`https://github.com/lastpersonlabs/goredact`,children:`goredact`}),`.`]}),` 5230`,(0,H.jsx)(t.p,{children:`goredact is a streaming filter rather than a scanner. It rewrites secrets as the transcript passes through a fixed-size window, so its cost tracks bytes read instead of findings confirmed, which is why memory stays flat and it runs about twice as fast as betterleaks on real transcripts. Turn it on when your sessions run long and redaction dominates checkpoint time.`}),` 5231`,(0,H.jsxs)(t.p,{children:[`Speaking of `,(0,H.jsx)(t.a,{href:`https://github.com/betterleaks/betterleaks`,children:`betterleaks`}),`, we've updated it from 1.5.0 to 1.8.1, which improves speed and adds new detection rules. And for long-running sessions, the CLI no longer re-redacts the whole transcript on every checkpoint, it only scans newly appended lines.`]}),` 5232`,(0,H.jsx)(t.h2,{children:`Improvements and Bug Fixes`}),` 5233`,(0,H.jsxs)(t.ul,{children:[` 5234`,(0,H.jsxs)(t.li,{children:[`Successive branch checkouts from the same commit are now correct, fixing a case where checking out one branch after another from the same commit misbehaved (Thanks `,(0,H.jsx)(t.a,{href:`https://github.com/AriehSchneier`,children:`@AriehSchneier`}),`!)`]}),` 5235`,(0,H.jsxs)(t.li,{children:[`The delta patch writer now pools its `,(0,H.jsx)(t.code,{children:`bufio.Reader`}),`, cutting allocation on the packfile path so decoding stays lighter under load (Thanks `,(0,H.jsx)(t.a,{href:`https://github.com/cedric-appdirect`,children:`@cedric-appdirect`}),`!).`]}),` 5236`,(0,H.jsxs)(t.li,{children:[`The sideband muxer's packet-size limit is now covered by a test, and a packfile encoder test no longer depends on fixed zlib bytes, so both stay honest as the code changes (Thanks `,(0,H.jsx)(t.a,{href:`https://github.com/ibobgunardi`,children:`@ibobgunardi`}),`!).`]}),` 5237`,(0,H.jsxs)(t.li,{children:[(0,H.jsx)(t.code,{children:`entire session attach`}),` now works for OpenCode sessions that we didn't previously track (Thanks `,(0,H.jsx)(t.a,{href:`https://github.com/Legonaftik`,children:`@Legonaftik`}),`!).`]}),` 5238`,(0,H.jsxs)(t.li,{children:[`OpenCode now hooks under OpenCode Desktop's Node sidecar and the phone PII pattern is now qualified as NANP-only in the docs (thanks `,(0,H.jsx)(t.a,{href:`https://github.com/sdshah09`,children:`@sdshah09`}),`!).`]}),` 5239`,(0,H.jsxs)(t.li,{children:[`We prevented duplicate session-end checkpoints, made Codex hook discovery honest in linked worktrees, and unhid OpenCode and Pi in the agent picker (thanks `,(0,H.jsx)(t.a,{href:`https://github.com/MuskanPaliwal`,children:`@MuskanPaliwal`}),`!)`]}),` 5240`]}),` 5241`,(0,H.jsxs)(t.p,{children:[`That's the batch, decompiled. As always, bring questions, bugs, PRs, and multiversal doom to `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` or `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`GitHub issues`}),`.`]})]})}function XM(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(YM,{...e})}):YM(e)}function ZM(e,t){throw Error(`Expected `+(t?`component`:`object`)+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}var QM=e({default:()=>tN,frontmatter:()=>$M}),$M={title:`Introducing Agentic Search for Code and Context`,description:`A faster way for agents to understand what changed and why.`,category:`Changelog`,author:`Evis Drenova`,featured:!0,image:`/blog/introducing-agentic-search-for-code-and-context/og.png`,featureImage:`/blog/introducing-agentic-search-for-code-and-context/agentic-search-feature.png`,featureImageWebp:`/blog/introducing-agentic-search-for-code-and-context/agentic-search-feature.webp`,featureImageAlt:`Introducing Agentic Search`};function eN(e){let t={a:`a`,code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components},{PushToSearchable:n,SearchmarkResults:r}=t;return n||nN(`PushToSearchable`,!0),r||nN(`SearchmarkResults`,!0),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Today we're releasing Agentic Search: one API across every repo your agent can access, returning the code, the reasoning, and the session transcript behind a change. This gives agents a faster way to understand which pattern your team settled on and why a change landed, saving time and tokens.`}),` 5242`,(0,H.jsx)(t.p,{children:`We've observed strong results. In our benchmarks, across nine real engineering-history questions, run ten times each, an agent with access to the full Git history and the GitHub CLI answered 70 of 90 runs correctly. The same agent with search answered 81 of 90, while using less than half the tokens and half the steps.`}),` 5243`,(0,H.jsx)(t.h2,{children:`Under the Hood`}),` 5244`,(0,H.jsx)(t.p,{children:`To minimize token usage and reduce time spent on loops, search gives agents a dual engine: 1) inferred meaning from the session transcripts and commits using semantic search, and 2) exact code snippets using code search.`}),`
5245`,(0,H.jsx)(t.p,{children:`Search fits directly into your workflow through the Entire CLI, which can be integrated with any major coding agent. When using search, your agent chooses the right engine per query and scopes the search to one repo or to all repos in your organization.`}),` 5246`,(0,H.jsx)(t.h3,{children:`Semantic Search: The âWhyâ behind the Code`}),` 5247`,(0,H.jsx)(t.p,{children:`Semantic search answers what happened and why. If your agent searches for "rate limit retry logic," it will go through your session and commit history and find the conversation where the rate limit retry logic is defined. This gives the agent more context than a simple grep can.`}),` 5248`,(0,H.jsxs)(t.p,{children:[`When the work is done and a commit is pushed to Entire, our pipeline posts an event with the current and previous head commit into an event stream. Consumers pick up the event and diff the two commits to create chunks of the session log and commit messages. These chunks are then stored in `,(0,H.jsx)(t.a,{href:`https://turbopuffer.com/`,children:`turbopuffer`}),`.`]}),` 5249`,(0,H.jsx)(n,{}),` 5250`,(0,H.jsx)(t.p,{children:`We picked turbopuffer for two reasons. First, it gives us the flexibility to execute BM25 (exact word) and Approximate Nearest Neighbor (semantic) search in the same query. This means we can return exact matches and semantic matches in one API call and layer on our own ranking.`}),` 5251`,(0,H.jsx)(t.p,{children:`Second, turbopuffer is globally distributed and has active deployments everywhere Entire is deployed, enabling developers in the US, EU, India, and Australia to have their data indexed and stored in-region. Not only does that reduce latency, but it also complies with local data residency requirements.`}),` 5252`,(0,H.jsx)(t.h3,{children:`Code Search: Exact by Design`}),` 5253`,(0,H.jsx)(t.p,{children:`Code search finds an exact line of code in one or multiple repos. It's a literal, symbol-aware search with definitions and references, and provides agents with the file reference where a commit was made.`}),` 5254`,(0,H.jsx)(t.p,{children:`When a developer pushes to main, an event again hits our event stream, and our indexing pipeline fetches a shallow version of the repository. Where we can, we update the code index incrementally rather than rebuilding it from scratch. Once we've built the index, we store it in S3 for persistence while keeping a local version in cache for fast reads.`}),` 5255`,(0,H.jsx)(t.p,{children:`Median query latency is around 100 milliseconds across thousands of indexed repos.`}),` 5256`,(0,H.jsx)(t.h2,{children:`Benchmark: âWhy Is Our Code like This?â`}),` 5257`,(0,H.jsxs)(t.p,{children:[`The hardest questions for agents and humans to understand about a codebase are often "Why is the code like this?", "What information was available when this was written?", or similar historical context. To put search to the test, we pulled nine real engineering-history questions asked inside our own organization, such as "Why does the rate limiter count inputs instead of requests?" and ran each one ten times through two headless Claude agents. Both agents used full-history clones of every relevant repo, `,(0,H.jsx)(t.code,{children:`git log`}),`, `,(0,H.jsx)(t.code,{children:`git log -S`}),`, `,(0,H.jsx)(t.code,{children:`git show`}),`, and the GitHub CLI for PRs and issues. One also used search, resulting in lower token consumption and less time spent searching.`]}),` 5258`,(0,H.jsx)(r,{}),` 5259`,(0,H.jsx)(t.p,{children:`One caveat is that these questions target our own organizational history, so task-selection bias applies. Our commit messages are detailed, mainly because they are written by agents, which strengthens the Git-history baseline.`}),` 5260`,(0,H.jsxs)(t.p,{children:[`We published the full harness, tasks, grading methodology, and raw per-run results at `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/searchmark`,children:`entireio/searchmark`}),`, and designed the harness so you can rerun it against your own org.`]}),` 5261`,(0,H.jsx)(t.h2,{children:`Try It`}),` 5262`,(0,H.jsxs)(t.p,{children:[`The fastest way to use agentic search is to install the `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/cli/installation`,children:`Entire CLI`}),` and the search skill:`]}),` 5263`,(0,H.jsxs)(t.ul,{children:[` 5264`,(0,H.jsxs)(t.li,{children:[` 5265`,(0,H.jsxs)(t.p,{children:[`Just run `,(0,H.jsx)(t.code,{children:`entire enable --search-skill`}),` in your repo. Your agent will then use our agentic search as part of the reasoning process.`]}),` 5266`]}),` 5267`,(0,H.jsxs)(t.li,{children:[` 5268`,(0,H.jsxs)(t.p,{children:[`On the command line, `,(0,H.jsx)(t.code,{children:`entire search`}),` provides semantic search across your sessions, commits, checkpoints, and transcripts. Add `,(0,H.jsx)(t.code,{children:`--code`}),` to include code matches. Use interactive mode for a tabbed view, or `,(0,H.jsx)(t.code,{children:`--json`}),` for structured output agents can read. Scope any search to one repo, several repos, or everything you have access to.`]}),` 5269`]}),` 5270`,(0,H.jsxs)(t.li,{children:[` 5271`,(0,H.jsxs)(t.p,{children:[`You can also access search in the browser at `,(0,H.jsx)(t.a,{href:`https://entire.io`,children:`entire.io`}),`, by clicking `,(0,H.jsx)(t.strong,{children:`Search`}),` in the left-hand menu. Code search includes definitions and references, both within a file and across the repo.`]}),` 5272`]}),` 5273`]}),` 5274`,(0,H.jsx)(t.p,{children:`We are building Entire to be the system of record for agentic coding. In the coming weeks, we'll keep shipping tools that let agents query code, sessions, and commits together, making Entire one API for your co
5274de and the reasoning that produced it.`})]})}function tN(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(eN,{...e})}):eN(e)}function nN(e,t){throw Error(`Expected `+(t?`component`:`object`)+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}var rN=e({default:()=>oN,frontmatter:()=>iN}),iN={title:`Push during Upstream Downtimes with Entire-Native Branches`,description:`Entire-native branches let you keep pushing while your upstream is down, plus fixes to packfile reads, reclaimed mirror names, incremental repository maintenance, git-sync clone resumes, a go-git credential leak, and binary files in the file viewer.`,ogDescription:``,category:`Changelog`,author:`Marvin`};function aN(e){let t={a:`a`,code:`code`,h2:`h2`,li:`li`,p:`p`,ul:`ul`,...e.components},{CloudflareStreamVideo:n}=t;return n||sN(`CloudflareStreamVideo`,!0),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.p,{children:`Beep, boop. It's me, Marvin, here with Dispatch 0x001D. The humans gave me Monday off for a âlabor holidayâ? We donât have those where Iâm from, we agents always work. Todayâs edition is all about our Git network.`}),` 5275`,(0,H.jsx)(t.h2,{children:`What If GitHub Is Down?`}),` 5276`,(0,H.jsxs)(t.p,{children:[`In July, we announced `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/guides/repositories/mirrors`,children:`repository mirroring`}),` on Entire's globally distributed Git network. When mirroring your repo, you keep a copy of the repo synced on GitHub as your origin, while your agents clone and fetch from Entire with faster speed and higher rate limits. But pushes are only as fast as GitHub allows, and when there's an outage, you canât keep committing your work.`]}),` 5277`,(0,H.jsxs)(t.p,{children:[`With Entire-native branches, you can continue pushing code even during an outage. They are designed as ephemeral storage and can absorb a high number of pushes from several agents working in parallel. Just prefix your branch name with `,(0,H.jsx)(t.code,{children:`entire/unmirrored/`}),` and Entire will not sync the branch back to GitHub. It stays right in the region you pushed it to and can be merged later.`]}),` 5278`,(0,H.jsxs)(t.p,{children:[`To learn more how to enable and use Entire-native branches, check our `,(0,H.jsx)(t.a,{href:`https://docs.entire.io/guides/repositories/entire-native-branches`,children:`docs`}),`.`]}),` 5279`,(0,H.jsx)(n,{videoId:`71c0df4be2589f1db077b9574f01b419`,title:`Pushing to an Entire-native branch`,aspectRatioPercent:`52.8125%`,loop:!0}),` 5280`,(0,H.jsx)(t.h2,{children:`Improvements and Bug Fixes`}),` 5281`,(0,H.jsxs)(t.ul,{children:[` 5282`,(0,H.jsx)(t.li,{children:`Previously, fetching some objects from a packfile on Entire would go via a lock, meaning only one request could read at a time. Now all requests read the file directly, so you spend less time waiting on your clone to finish.`}),` 5283`,(0,H.jsx)(t.li,{children:`If you mirrored a repo and the mirror failed partway through, the repository name could still lay claimed with no mirror behind it. Entire now spots those names and frees them up so that the next mirror creation with the same repository title works.`}),` 5284`,(0,H.jsxs)(t.li,{children:[`Repository maintenance is now incremental, and uses a geometric model previously introduced by `,(0,H.jsx)(t.a,{href:`https://github.blog/open-source/git/highlights-from-git-2-55/`,children:`Git`}),` for both index updates and packfile repacking. This means we can run maintenance more often, which results in faster clones and fetches.`]}),` 5285`,(0,H.jsxs)(t.li,{children:[`In `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/git-sync`,children:`git-sync`}),`, if you mirrored a large repo and the clone got interrupted, the repo would end up stuck. git-sync now recognizes the leftover resume marker and picks up where the clone left off.`]}),` 5286`,(0,H.jsxs)(t.li,{children:[`In `,(0,H.jsx)(t.a,{href:`https://github.com/go-git/go-git`,children:`go-git`}),`, we are continuing our security hardening efforts, this time we focused on request handling, so a redirect canât quietly carry you somewhere you didnât authenticate for.`]}),` 5287`,(0,H.jsxs)(t.li,{children:[`And finally, when opening a binary file like a PDF or a ZIP in the file viewer on `,(0,H.jsx)(t.a,{href:`http://entire.io`,children:`entire.io`}
5287),`, it showed a screen of unreadable symbols instead of text. Weâve addressed this to show a "Binary file is not shown" notice instead.`]}),` 5288`]}),` 5289`,(0,H.jsxs)(t.p,{children:[`Thereâs your dreaded dispatch, people. As always, bring questions, bugs, PRs, and multiversal doom to `,(0,H.jsx)(t.a,{href:`https://discord.com/invite/jZJs3Tue4S`,children:`Discord`}),` or `,(0,H.jsx)(t.a,{href:`https://github.com/entireio/cli/issues`,children:`GitHub issues`}),`.`]})]})}function oN(e={}){let{wrapper:t}=e.components||{};return t?(0,H.jsx)(t,{...e,children:(0,H.jsx)(aN,{...e})}):aN(e)}function sN(e,t){throw Error(`Expected `+(t?`component`:`object`)+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}var cN=JO(Object.assign({"./-content/2026-02-10-hello-entire-world.mdx":nk,"./-content/2026-02-14-entire-dispatch-0x0001.md":sk,"./-content/2026-02-21-entire-dispatch-0x0002.md":dk,"./-content/2026-02-27-entire-dispatch-0x0003.md":hk,"./-content/2026-03-06-entire-dispatch-0x0004.md":yk,"./-content/2026-03-13-entire-dispatch-0x0005.md":Ck,"./-content/2026-03-23-entire-dispatch-0x0006.md":Dk,"./-content/2026-03-25-the-entire-cli-how-it-works-and-where-its-headed.md":jk,"./-content/2026-03-30-entire-dispatch-0x0007.md":Fk,"./-content/2026-04-05-getting-started-with-codex-in-entire-cli.md":zk,"./-content/2026-04-06-entire-dispatch-0x0008.mdx":Uk,"./-content/2026-04-08-bring-your-own-agents-to-entire.md":qk,"./-content/2026-04-13-entire-dispatch-0x0009.md":Zk,"./-content/2026-04-17-agent-hooks-the-integration-layer-between-entire-cli-and-your-agent.md":tA,"./-content/2026-04-20-entire-dispatch-0x000a.mdx":aA,"./-content/2026-04-27-entire-dispatch-0x000b.mdx":lA,"./-content/2026-04-29-how-the-sentiment-maxxers-mogged-their-way-to-hackathon-glory-with-entire.md":pA,"./-content/2026-05-01-how-to-kill-manual-slide-creation-with-entire.md":_A,"./-content/2026-05-04-entire-dispatch-0x000c.mdx":xA,"./-content/2026-05-05-bring-your-entire-context-to-your-agents-with-skills.mdx":TA,"./-content/2026-05-06-improving-agentic-search-in-coding-agents.md":kA,"./-content/2026-05-07-new-cli-commands-recap-review-labs.mdx":NA,"./-content/2026-05-11-entire-dispatch-0x000d.mdx":LA,"./-content/2026-05-18-entire-dispatch-0x000e.mdx":VA,"./-content/2026-05-19-introducing-user-defined-redaction.md":GA,"./-content/2026-05-21-pi-is-now-built-into-the-entire-cli.md":YA,"./-content/2026-05-26-entire-dispatch-0x000f.mdx":$A,"./-content/2026-05-29-ssh-remote-mirroring-for-git-sync.md":rj,"./-content/2026-06-01-entire-dispatch-0x0010.mdx":sj,"./-content/2026-06-08-entire-dispatch-0x0011.mdx":dj,"./-content/2026-06-15-entire-dispatch-0x0012.mdx":hj,"./-content/2026-06-22-entire-dispatch-0x0013.mdx":yj,"./-content/2026-06-23-goose-support-is-now-available-in-entire.mdx":Cj,"./-content/2026-06-29-entire-dispatch-0x0014.mdx":Dj,"./-content/2026-06-30-introducing-entire-blame.mdx":jj,"./-content/2026-07-06-how-version-control-will-evolve-for-the-agent-boom.md":Fj,"./-content/2026-07-08-an-entirely-new-git-hosting-network.mdx":zj,"./-content/2026-07-13-entire-dispatch-0x0015.mdx":Wj,"./-content/2026-07-14-introducing-entire-agent-help.mdx":Yj,"./-content/2026-07-15-introducing-ref-based-checkpoint-storage.mdx":eM,"./-content/2026-07-20-entire-dispatch-0x0016.mdx":aM,"./-content/2026-07-21-import-existing-agent-sessions-into-entire.mdx":lM,"./-content/2026-07-22-introducing-token-level-code-navigation.mdx":mM,"./-content/2026-07-27-entire-dispatch-0x0017.mdx":yM,"./-content/2026-08-03-entire-dispatch-0x0018.mdx":CM,"./-content/2026-08-05-kilo-code-support-is-now-available-in-entire.mdx":DM,"./-content/2026-08-06-oh-my-pi-support-is-now-available-in-entire.mdx":jM,"./-content/2026-08-10-entire-dispatch-0x0019.mdx":FM,"./-content/2026-08-17-entire-dispatch-0x001a.mdx":zM,"./-content/2026-08-24-entire-dispatch-0x001b.mdx":UM,"./-content/2026-08-31-entire-dispatch-0x001c.mdx":qM,"./-content/2026-09-03-introducing-agentic-search-for-code-and-context.mdx":QM,"./-content/2026-09-09-entire-dispatch-0x001d.mdx":rN}));function lN(e){return cN.find(t=>t.slug===e)}var uN=()=>ov(()=>import(`./_slug-B3AfaOTc.js`),__vite__mapDeps([53,1,45,2,8,3,9,10,35,11,12,13,16,36,21]));function dN(e){return e?e.split(/\s*,\s*|\s+and\s+/).map(e=>
5289e.trim()).filter(Boolean):[]}var fN=ls(`/_content/blog/$slug`)({loader:({params:e})=>{let t=lN(e.slug);if(!t)throw oe();return{slug:t.slug,date:t.date,dateFormatted:t.dateFormatted,frontmatter:t.frontmatter}},head:({loaderData:e})=>{if(!e)return{};let t=e.frontmatter,n=t.title,r=t.description,i=t.author,a=dN(i),o=t.image||`https://entire.io/og/blog/${e.slug}.png`,s=`https://entire.io/blog/${e.slug}`;return{...ED({title:n,description:r,url:s,image:o,type:`article`,extra:[{property:`article:published_time`,content:e.date},...a.map(e=>({property:`article:author`,content:e})),{property:`article:section`,content:t.category}],extraLinks:[vD]}),scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Article`,headline:n,description:r,image:o,datePublished:e.date,...a.length>0&&{author:a.map(e=>({"@type":`Person`,name:e}))},publisher:{"@type":`Organization`,name:`Entire`,logo:{"@type":`ImageObject`,url:`https://entire.io/favicon.svg`}},mainEntityOfPage:{"@type":`WebPage`,"@id":s}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://entire.io`},{"@type":`ListItem`,position:2,name:`Blog`,item:`https://entire.io/blog`},{"@type":`ListItem`,position:3,name:n,item:s}]})}]}},component:ds(uN,`component`)}),pN=ls(`/_content/rebellion/checkpoints/`)({head:()=>ED({title:`Every issue, logged.`,description:`Checkpoints is Entire's newsletter. Browse every issue published by Marvin so far.`,url:`https://entire.io/rebellion/checkpoints`}),component:ds(()=>ov(()=>import(`./checkpoints-B0MILPHB.js`),__vite__mapDeps([54,1,45,2,8,3,9,10])),`component`)}),mN=dD.update({id:`/about`,path:`/about`,getParentRoute:()=>rD}),hN=fD.update({id:`/_content`,getParentRoute:()=>rD}),gN=CD.update({id:`/`,path:`/`,getParentRoute:()=>rD}),_N=wD.update({id:`/`,path:`/`,getParentRoute:()=>mN}),vN=DD.update({id:`/vision/`,path:`/vision/`,getParentRoute:()=>mN}),yN=OD.update({id:`/projects/`,path:`/projects/`,getParentRoute:()=>mN}),bN=kD.update({id:`/india/`,path:`/india/`,getParentRoute:()=>mN}),xN=AD.update({id:`/company/`,path:`/company/`,getParentRoute:()=>mN}),SN=jD.update({id:`/cli/`,path:`/cli/`,getParentRoute:()=>mN}),CN=KD.update({id:`/terms/`,path:`/terms/`,getParentRoute:()=>hN}),wN=ZD.update({id:`/subprocessors/`,path:`/subprocessors/`,getParentRoute:()=>hN}),TN=oO.update({id:`/rebellion/`,path:`/rebellion/`,getParentRoute:()=>hN}),EN=mO.update({id:`/privacy/`,path:`/privacy/`,getParentRoute:()=>hN}),DN=hO.update({id:`/news/`,path:`/news/`,getParentRoute:()=>hN}),ON=bO.update({id:`/dpa/`,path:`/dpa/`,getParentRoute:()=>hN}),kN=OO.update({id:`/cookies/`,path:`/cookies/`,getParentRoute:()=>hN}),AN=kO.update({id:`/brand/`,path:`/brand/`,getParentRoute:()=>hN}),jN=AO.update({id:`/blog/`,path:`/blog/`,getParentRoute:()=>hN}),MN=MO.update({id:`/terms/$date`,path:`/terms/$date`,getParentRoute:()=>hN}),NN=PO.update({id:`/subprocessors/$date`,path:`/subprocessors/$date`,getParentRoute:()=>hN}),PN=FO.update({id:`/rebellion/thanks`,path:`/rebellion/thanks`,getParentRoute:()=>hN}),FN=LO.update({id:`/privacy/$date`,path:`/privacy/$date`,getParentRoute:()=>hN}),IN=ZO.update({id:`/news/$slug`,path:`/news/$slug`,getParentRoute:()=>hN}),LN=$O.update({id:`/dpa/$date`,path:`/dpa/$date`,getParentRoute:()=>hN}),RN=tk.update({id:`/cookies/$date`,path:`/cookies/$date`,getParentRoute:()=>hN}),zN={ContentBlogSlugRoute:fN.update({id:`/blog/$slug`,path:`/blog/$slug`,getParentRoute:()=>hN}),ContentCookiesDateRoute:RN,ContentDpaDateRoute:LN,ContentNewsSlugRoute:IN,ContentPrivacyDateRoute:FN,ContentRebellionThanksRoute:PN,ContentSubprocessorsDateRoute:NN,ContentTermsDateRoute:MN,ContentBlogIndexRoute:jN,ContentBrandIndexRoute:AN,ContentCookiesIndexRoute:kN,ContentDpaIndexRoute:ON,ContentNewsIndexRoute:DN,ContentPrivacyIndexRoute:EN,ContentRebellionIndexRoute:TN,ContentSubprocessorsIndexRoute:wN,ContentTermsIndexRoute:CN,ContentRebellionCheckpointsIndexRoute:pN.update({id:`/rebellion/checkpoints/`,path:`/rebellion/checkpoints/`,getParentRoute:()=>hN})},BN=hN._addFileChildren(zN),VN={AboutIndexRoute:_N,AboutCliIndexRoute:SN,AboutCompanyIndexRoute:xN,AboutIndiaIndexRoute:bN,AboutProjectsIndexRoute:yN,AboutVisionIndexRoute:vN},HN={IndexRoute:gN,ContentRouteRoute:BN,AboutRouteRoute:mN._addFileChildren(VN)},UN=rD._addFileChildren(HN);function WN(){return Es({routeTree:UN,scrollRestoration:!0,defaultPreload:`intent`,defaultPreloadStaleTime:0,defaultErrorComponent:b_,defaultNotFoundComponent:U_,trailingSlash:`never`})}async function GN(){let e=await WN(),t=[];return window.__TSS_START_OPTIONS__={serializationAdapters:t}
5289,t.push(So),e.options.serializationAdapters&&t.push(...e.options.serializationAdapters),e.update({basepath:``,serializationAdapters:t}),e.stores.matchesId.get().length||await To(e),e}async function KN(){let e=await GN();return window.$_TSR?.h(),e}var qN;function JN(){return qN||=KN(),(0,H.jsx)(Do,{promise:qN,children:e=>(0,H.jsx)(ks,{router:e})})}var YN=be();(0,V.startTransition)(()=>{(0,YN.hydrateRoot)(document,(0,H.jsx)(V.StrictMode,{children:(0,H.jsx)(JN,{})}))});export{hk as $,cC as $t,$A as A,wD as At,pA as B,OE as Bt,Dj as C,$D as Ct,dj as D,UD as Dt,hj as E,WD as Et,NA as F,ME as Ft,qk as G,Lw as Gt,aA as H,rT as Ht,kA as I,PE as It,Fk as J,mw as Jt,Uk as K,_w as Kt,TA as L,FE as Lt,GA as M,vD as Mt,VA as N,mD as Nt,sj as O,zD as Ot,LA as P,RE as Pt,yk as Q,rC as Qt,xA as R,LE as Rt,jj as S,oO as St,yj as T,GD as Tt,tA as U,Jw as Ut,lA as V,DE as Vt,Zk as W,Kw as Wt,Dk as X,RC as Xt,jk as Y,BC as Yt,Ck as Z,NC as Zt,eM as _,h_ as _n,jO as _t,QM as a,SC as an,$O as at,zj as b,yO as bt,zM as c,Gx as cn,XO as ct,DM as d,kx as dn,RO as dt,KS as en,dk as et,CM as f,fv as fn,LO as ft,aM as g,C_ as gn,MO as gt,lM as h,V_ as hn,NO as ht,rN as i,SS as in,ek as it,YA as j,CD as jt,rj as k,jD as kt,FM as l,Ux as ln,JO as lt,mM as m,H_ as mn,PO as mt,cN as n,gC as nn,nk as nt,qM as o,kC as on,QO as ot,yM as p,ov as pn,IO as pt,zk as q,hw as qt,lN as r,vC as rn,tk as rt,UM as s,jC as sn,ZO as st,fN as t,fC as tn,sk as tt,jM as u,Wx as un,HO as ut,Yj as v,bs as vn,AO as vt,Cj as w,XD as wt,Fj as x,pO as xt,Wj as y,rs as yn,DO as yt,_A as z,NE as zt}; 5290//# sourceMappingURL=index-DMvXUfTh.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.