docker-client-mx 1.37.1 → 1.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/docker-desktop-mx/browser/chunk-3Xh0zgnl.js +4 -0
  2. package/dist/docker-desktop-mx/browser/{chunk-d2Mr7W8C.js → chunk-86dQWBGy.js} +2 -2
  3. package/dist/docker-desktop-mx/browser/{chunk-ARerY_u8.js → chunk-A1-s5LFW.js} +1 -1
  4. package/dist/docker-desktop-mx/browser/{chunk-BTUpw4iP.js → chunk-B10he8vC.js} +1 -1
  5. package/dist/docker-desktop-mx/browser/{chunk-D0yJpook.js → chunk-B417lX5i.js} +1 -1
  6. package/dist/docker-desktop-mx/browser/{chunk-DO0iZtCc.js → chunk-BJhrBPGr.js} +1 -1
  7. package/dist/docker-desktop-mx/browser/{chunk-A5wKOcG7.js → chunk-BJln0q-L.js} +1 -1
  8. package/dist/docker-desktop-mx/browser/{chunk-DoJ0-JEW.js → chunk-BKqokLUJ.js} +1 -1
  9. package/dist/docker-desktop-mx/browser/{chunk-DmLR4vjP.js → chunk-BNyiHfLm.js} +1 -1
  10. package/dist/docker-desktop-mx/browser/{chunk-B_LO2qP5.js → chunk-Biflawt5.js} +1 -1
  11. package/dist/docker-desktop-mx/browser/{chunk-wHjVeoVE.js → chunk-BuZMCHMG.js} +1 -1
  12. package/dist/docker-desktop-mx/browser/chunk-C2AEaPKl.js +1 -0
  13. package/dist/docker-desktop-mx/browser/{chunk-Dc53d1I5.js → chunk-CJj93ZID.js} +1 -1
  14. package/dist/docker-desktop-mx/browser/chunk-CKKQa1e9.js +1 -0
  15. package/dist/docker-desktop-mx/browser/chunk-CQJfJJJO.js +4 -0
  16. package/dist/docker-desktop-mx/browser/{chunk-C5GyUjf6.js → chunk-CRU66E5W.js} +1 -1
  17. package/dist/docker-desktop-mx/browser/{chunk-C218KaAr.js → chunk-Cc4TZhIN2.js} +1 -1
  18. package/dist/docker-desktop-mx/browser/{chunk-DoVE0m-M.js → chunk-CcSH3zkW.js} +1 -1
  19. package/dist/docker-desktop-mx/browser/{chunk-BD9SGPlI.js → chunk-CcUK35Ba.js} +1 -1
  20. package/dist/docker-desktop-mx/browser/{chunk-CKZAnwkz.js → chunk-ChkLvkqV.js} +1 -1
  21. package/dist/docker-desktop-mx/browser/{chunk-Bd4WPFll.js → chunk-ClFvQPeD.js} +1 -1
  22. package/dist/docker-desktop-mx/browser/{chunk-CRsWWmSK.js → chunk-CleqfF2a.js} +1 -1
  23. package/dist/docker-desktop-mx/browser/{chunk-USWqj2oG.js → chunk-CsmSLtiO.js} +1 -1
  24. package/dist/docker-desktop-mx/browser/{chunk-CzxPdR3J.js → chunk-CtE-C6Yi.js} +1 -1
  25. package/dist/docker-desktop-mx/browser/{chunk-CSf-WGgq.js → chunk-Cxf0K3gA.js} +1 -1
  26. package/dist/docker-desktop-mx/browser/{chunk-CuB3SKfL.js → chunk-D2ip_9iB.js} +1 -1
  27. package/dist/docker-desktop-mx/browser/{chunk-DO4UNcFG.js → chunk-D7w-wcec.js} +1 -1
  28. package/dist/docker-desktop-mx/browser/chunk-DBk_NOEo.js +1 -0
  29. package/dist/docker-desktop-mx/browser/{chunk-C0CE-ryM.js → chunk-DNfHCIbw.js} +1 -1
  30. package/dist/docker-desktop-mx/browser/{chunk-BrDsQn6L.js → chunk-DmnENnOJ.js} +1 -1
  31. package/dist/docker-desktop-mx/browser/{chunk-CUfTRCjA.js → chunk-Dw7M06TM.js} +1 -1
  32. package/dist/docker-desktop-mx/browser/{chunk-Ce9HPQaw.js → chunk-DyCLoZvj.js} +1 -1
  33. package/dist/docker-desktop-mx/browser/{chunk-BiwCCNsK.js → chunk-F0R0gI7h.js} +1 -1
  34. package/dist/docker-desktop-mx/browser/{chunk-BwYNpJJ1.js → chunk-JJCcZGeB.js} +1 -1
  35. package/dist/docker-desktop-mx/browser/{chunk-d9EuDpHJ.js → chunk-Ou7gEgt7.js} +1 -1
  36. package/dist/docker-desktop-mx/browser/{chunk-sLP6RSjc.js → chunk-_hzP4C8y.js} +1 -1
  37. package/dist/docker-desktop-mx/browser/chunk-n7jRjd3_.js +5 -0
  38. package/dist/docker-desktop-mx/browser/index.html +2 -2
  39. package/dist/docker-desktop-mx/browser/main-27BJOEBW.js +1 -0
  40. package/dist/docker-desktop-mx/browser/styles-RGTBYKL7.css +1 -0
  41. package/dist-electron/attention.js +10 -2
  42. package/dist-electron/attention.js.map +1 -1
  43. package/dist-electron/channels.js +3 -0
  44. package/dist-electron/channels.js.map +1 -1
  45. package/dist-electron/ipc.js +4 -0
  46. package/dist-electron/ipc.js.map +1 -1
  47. package/dist-electron/preload.js +7 -1
  48. package/dist-electron/preload.js.map +1 -1
  49. package/dist-electron/project-update.js +120 -0
  50. package/dist-electron/project-update.js.map +1 -0
  51. package/package.json +1 -1
  52. package/dist/docker-desktop-mx/browser/chunk-B2cyL9jQ.js +0 -1
  53. package/dist/docker-desktop-mx/browser/chunk-BU6WXUxF.js +0 -4
  54. package/dist/docker-desktop-mx/browser/chunk-BrBZ51IY.js +0 -1
  55. package/dist/docker-desktop-mx/browser/chunk-CN_jXmBu.js +0 -4
  56. package/dist/docker-desktop-mx/browser/chunk-ai7J7l7m.js +0 -1
  57. package/dist/docker-desktop-mx/browser/main-QH6OTQO6.js +0 -1
  58. package/dist/docker-desktop-mx/browser/styles-QQZVKMBI.css +0 -1
@@ -1,4 +0,0 @@
1
- var xy=Object.defineProperty;var Ay=Object.defineProperties;var _y=Object.getOwnPropertyDescriptors;var zc=Object.getOwnPropertySymbols;var Ry=Object.prototype.hasOwnProperty;var $y=Object.prototype.propertyIsEnumerable;var qc=(e,n,t)=>n in e?xy(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var W=(e,n)=>{for(var t in n||={})Ry.call(n,t)&&qc(e,t,n[t]);if(zc)for(var t of zc(n))$y.call(n,t)&&qc(e,t,n[t]);return e};var G=(e,n)=>Ay(e,_y(n));var f=(e,n,t)=>()=>{if(t)throw t[0];try{return e&&(n=e(e=0)),n}catch(r){throw t=[r],r}};var fk=(e,n)=>()=>{try{return n||e((n={exports:{}}).exports,n),n.exports}catch(t){throw n=0,t}};function y(e){let n=ne;return ne=e,n}function Jr(){return ne}function He(e){if(Yr)throw new Error(``);if(ne===null)return;ne.consumerOnSignalRead(e);let n=ne.producersTail;if(n!==void 0&&n.producer===e)return;let t,r=ne.recomputing;if(r&&(t=n!==void 0?n.nextProducer:ne.producers,t!==void 0&&t.producer===e)){ne.producersTail=t,t.lastReadVersion=e.version,t.knownValidAtEpoch=wn;return}let o=e.consumersTail;if(o!==void 0&&o.consumer===ne&&(!r||o.knownValidAtEpoch===wn))return;let i=Xn(ne),s={producer:e,consumer:ne,nextProducer:t,prevConsumer:void 0,knownValidAtEpoch:wn,lastReadVersion:e.version,nextConsumer:void 0};ne.producersTail=s,n!==void 0?n.nextProducer=s:ne.producers=s,i&&Qc(e,s)}function Wc(){wn++}function Cn(e){if(!(Xn(e)&&!e.dirty)&&!(!e.dirty&&e.lastCleanEpoch===wn)){if(!e.producerMustRecompute(e)&&!Jn(e)){Yn(e);return}e.producerRecomputeValue(e),Yn(e)}}function Xi(e){if(e.consumers===void 0)return;let n=Yr;Yr=!0;try{for(let t=e.consumers;t!==void 0;t=t.nextConsumer){let r=t.consumer;r.dirty||Ly(r)}}finally{Yr=n}}function es(){return ne?.consumerAllowSignalWrites!==!1}function Ly(e){e.dirty=!0,Xi(e),e.consumerMarkedDirty?.(e)}function Yn(e){e.dirty=!1,e.lastCleanEpoch=wn}function Ve(e){return e&&Gc(e),y(e)}function Gc(e){if(e.producersTail?.knownValidAtEpoch===wn){let n=e.producers;for(;n!==void 0;)n.knownValidAtEpoch=null,n=n.nextProducer}e.producersTail=void 0,e.recomputing=!0}function nn(e,n){y(n),e&&Zc(e)}function Zc(e){e.recomputing=!1;let n=e.producersTail,t=n!==void 0?n.nextProducer:e.producers;if(t!==void 0){if(Xn(e))do t=ns(t);while(t!==void 0);n!==void 0?n.nextProducer=void 0:e.producers=void 0}}function Jn(e){for(let n=e.producers;n!==void 0;n=n.nextProducer){let t=n.producer,r=n.lastReadVersion;if(r!==t.version||(Cn(t),r!==t.version))return!0}return!1}function tn(e){if(Xn(e)){let n=e.producers;for(;n!==void 0;)n=ns(n)}e.producers=void 0,e.producersTail=void 0,e.consumers=void 0,e.consumersTail=void 0}function Qc(e,n){let t=e.consumersTail,r=Xn(e);if(t!==void 0?(n.nextConsumer=t.nextConsumer,t.nextConsumer=n):(n.nextConsumer=void 0,e.consumers=n),n.prevConsumer=t,e.consumersTail=n,!r)for(let o=e.producers;o!==void 0;o=o.nextProducer)Qc(o.producer,o)}function ns(e){let n=e.producer,t=e.nextProducer,r=e.nextConsumer,o=e.prevConsumer;if(e.nextConsumer=void 0,e.prevConsumer=void 0,r!==void 0?r.prevConsumer=o:n.consumersTail=o,o!==void 0)o.nextConsumer=r;else if(n.consumers=r,!Xn(n)){let i=n.producers;for(;i!==void 0;)i=ns(i)}return t}function Xn(e){return e.consumerIsAlwaysLive||e.consumers!==void 0}function jt(e){Oy?.(e)}function Ft(e,n){return Object.is(e,n)}function Ht(e,n){let t=Object.create(Py);t.computation=e,n!==void 0&&(t.equal=n);let r=()=>{if(Cn(t),He(t),t.value===_e)throw t.error;return t.value};return r[j]=t,jt(t),r}function jy(){throw new Error}function Yc(e){Kc(e)}function ts(e){Kc=e}function rs(e,n){let t=Object.create(et);t.value=e,n!==void 0&&(t.equal=n);let r=()=>Jc(t);return r[j]=t,jt(t),[r,s=>Ue(t,s),s=>Xr(t,s)]}function Jc(e){return He(e),e.value}function Ue(e,n){es()||Yc(e),e.equal(e.value,n)||(e.value=n,Hy(e))}function Xr(e,n){es()||Yc(e),Ue(e,n(e.value))}function Hy(e){e.version++,Wc(),Xi(e),Fy?.(e)}function is(e){if(e.dirty=!1,e.version>0&&!Jn(e))return;e.version++;let n=Ve(e);try{e.cleanup(),e.fn()}finally{nn(e,n)}}var ne;var Yr;var wn;var Oy;var j;var en;var Dn;var In;var _e;var Py;var Kc;var Fy;var et;var os;var En=f(()=>{ne=null,Yr=!1,wn=1,Oy=null,j=Symbol(`SIGNAL`);en={version:0,lastCleanEpoch:0,dirty:!1,producers:void 0,producersTail:void 0,consumers:void 0,consumersTail:void 0,recomputing:!1,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:`unknown`,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};Dn=Symbol(`UNSET`),In=Symbol(`COMPUTING`),_e=Symbol(`ERRORED`),Py=G(W({},en),{value:Dn,dirty:!0,error:null,equal:Ft,kind:`computed`,producerMustRecompute(e){return e.value===Dn||e.value===In},producerRecomputeValue(e){if(e.value===In)throw new Error(``);let n=e.value;e.value=In;let t=Ve(e),r,o=!1;try{r=e.computation(),y(null),o=n!==Dn&&n!==_e&&r!==_e&&e.equal(n,r)}catch(i){r=_e,e.error=i}finally{nn(e,t)}if(o){e.value=n;return}e.value=r,e.version++}});Kc=jy;Fy=null;et=G(W({},en),{equal:Ft,value:void 0,kind:`signal`});os=G(W({},en),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,kind:`effect`})});function eo(){return ss}function Re(e){let n=ss;return ss=e,n}function nt(e){return e===Xc||e?.name===`ɵNotFound`}var ss;var Xc;var as=f(()=>{Xc=Symbol(`NotFound`)});function ls(e,n,t){let r=Object.create(Vy);r.source=e,r.computation=n,t!=null&&(r.equal=t);let i=()=>{if(Cn(r),He(r),r.value===_e)throw r.error;return r.value};return i[j]=r,jt(r),i}function cs(e,n){Cn(e),Ue(e,n),Yn(e)}function eu(e,n){if(Cn(e),e.value===_e)throw e.error;Xr(e,n),Yn(e)}function nu(e){let n=y(null);try{return e()}finally{y(n)}}var Vy;var tu=f(()=>{En();Vy=G(W({},en),{value:Dn,dirty:!0,error:null,equal:Ft,kind:`linkedSignal`,producerMustRecompute(e){return e.value===Dn||e.value===In},producerRecomputeValue(e){if(e.value===In)throw new Error(``);let n=e.value;e.value=In;let t=Ve(e),r,o=!1;try{let i=e.source(),s=n!==Dn&&n!==_e,a=s?{source:e.sourceValue,value:n}:void 0;r=e.computation(i,a),e.sourceValue=i,y(null),o=s&&r!==_e&&e.equal(n,r)}catch(i){r=_e,e.error=i}finally{nn(e,t)}if(o){e.value=n;return}e.value=r,e.version++}})});var us=f(()=>{En()});var ru=f(()=>{as()});function C(e){return typeof e==`function`}var z=f(()=>{});function tt(e){let t=e(r=>{Error.call(r),r.stack=new Error().stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var no=f(()=>{});var to;var ou=f(()=>{no();to=tt(e=>function(t){e(this),this.message=t?`${t.length} errors occurred during unsubscription:
2
- ${t.map((r,o)=>`${o+1}) ${r.toString()}`).join(`
3
- `)}`:``,this.name=`UnsubscriptionError`,this.errors=t})});function Vt(e,n){if(e){let t=e.indexOf(n);0<=t&&e.splice(t,1)}}var ds=f(()=>{});function ro(e){return e instanceof te||e&&`closed`in e&&C(e.remove)&&C(e.add)&&C(e.unsubscribe)}function iu(e){C(e)?e():e.unsubscribe()}var te;var fs;var Ut=f(()=>{z();ou();ds();te=class e{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;let{_parentage:t}=this;if(t)if(this._parentage=null,Array.isArray(t))for(let i of t)i.remove(this);else t.remove(this);let{initialTeardown:r}=this;if(C(r))try{r()}catch(i){n=i instanceof to?i.errors:[i]}let{_finalizers:o}=this;if(o){this._finalizers=null;for(let i of o)try{iu(i)}catch(s){n=n??[],s instanceof to?n=[...n,...s.errors]:n.push(s)}}if(n)throw new to(n)}}add(n){var t;if(n&&n!==this)if(this.closed)iu(n);else{if(n instanceof e){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=(t=this._finalizers)!==null&&t!==void 0?t:[]).push(n)}}_hasParent(n){let{_parentage:t}=this;return t===n||Array.isArray(t)&&t.includes(n)}_addParent(n){let{_parentage:t}=this;this._parentage=Array.isArray(t)?(t.push(n),t):t?[t,n]:n}_removeParent(n){let{_parentage:t}=this;t===n?this._parentage=null:Array.isArray(t)&&Vt(t,n)}remove(n){let{_finalizers:t}=this;t&&Vt(t,n),n instanceof e&&n._removeParent(this)}};te.EMPTY=(()=>{let e=new te;return e.closed=!0,e})();fs=te.EMPTY});var Ie;var Bt=f(()=>{Ie={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}});var rt;var ps=f(()=>{rt={setTimeout(e,n,...t){let{delegate:r}=rt;return r?.setTimeout?r.setTimeout(e,n,...t):setTimeout(e,n,...t)},clearTimeout(e){let{delegate:n}=rt;return(n?.clearTimeout||clearTimeout)(e)},delegate:void 0}});function oo(e){rt.setTimeout(()=>{let{onUnhandledError:n}=Ie;if(n)n(e);else throw e})}var ms=f(()=>{Bt();ps()});function zt(){}var gs=f(()=>{});function au(e){return hs(`E`,void 0,e)}function lu(e){return hs(`N`,e,void 0)}function hs(e,n,t){return{kind:e,value:n,error:t}}var su;var cu=f(()=>{su=hs(`C`,void 0,void 0)});function ot(e){if(Ie.useDeprecatedSynchronousErrorHandling){let n=!Sn;if(n&&(Sn={errorThrown:!1,error:null}),e(),n){let{errorThrown:t,error:r}=Sn;if(Sn=null,t)throw r}}else e()}function uu(e){Ie.useDeprecatedSynchronousErrorHandling&&Sn&&(Sn.errorThrown=!0,Sn.error=e)}var Sn;var io=f(()=>{Bt();Sn=null});function vs(e,n){return Uy.call(e,n)}function so(e){Ie.useDeprecatedSynchronousErrorHandling?uu(e):oo(e)}function By(e){throw e}function ys(e,n){let{onStoppedNotification:t}=Ie;t&&rt.setTimeout(()=>t(e,n))}var kn;var Uy;var bs;var it;var zy;var ws=f(()=>{z();Ut();Bt();ms();gs();cu();ps();io();kn=class extends te{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,ro(n)&&n.add(this)):this.destination=zy}static create(n,t,r){return new it(n,t,r)}next(n){this.isStopped?ys(lu(n),this):this._next(n)}error(n){this.isStopped?ys(au(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?ys(su,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},Uy=Function.prototype.bind;bs=class{constructor(n){this.partialObserver=n}next(n){let{partialObserver:t}=this;if(t.next)try{t.next(n)}catch(r){so(r)}}error(n){let{partialObserver:t}=this;if(t.error)try{t.error(n)}catch(r){so(r)}else so(n)}complete(){let{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(t){so(t)}}},it=class extends kn{constructor(n,t,r){super();let o;if(C(n)||!n)o={next:n??void 0,error:t??void 0,complete:r??void 0};else{let i;this&&Ie.useDeprecatedNextContext?(i=Object.create(n),i.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&vs(n.next,i),error:n.error&&vs(n.error,i),complete:n.complete&&vs(n.complete,i)}):o=n}this.destination=new bs(o)}};zy={closed:!0,next:zt,error:By,complete:zt}});var st;var ao=f(()=>{st=typeof Symbol==`function`&&Symbol.observable||`@@observable`});function Ce(e){return e}var at=f(()=>{});function qy(...e){return Ds(e)}function Ds(e){return e.length===0?Ce:e.length===1?e[0]:function(t){return e.reduce((r,o)=>o(r),t)}}var Is=f(()=>{at()});function du(e){var n;return(n=e??Ie.Promise)!==null&&n!==void 0?n:Promise}function Wy(e){return e&&C(e.next)&&C(e.error)&&C(e.complete)}function Gy(e){return e&&e instanceof kn||Wy(e)&&ro(e)}var T;var ce=f(()=>{ws();Ut();ao();Is();Bt();z();io();T=class e{constructor(n){n&&(this._subscribe=n)}lift(n){let t=new e;return t.source=this,t.operator=n,t}subscribe(n,t,r){let o=Gy(n)?n:new it(n,t,r);return ot(()=>{let{operator:i,source:s}=this;o.add(i?i.call(o,s):s?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(n){try{return this._subscribe(n)}catch(t){n.error(t)}}forEach(n,t){return t=du(t),new t((r,o)=>{let i=new it({next:s=>{try{n(s)}catch(a){o(a),i.unsubscribe()}},error:o,complete:r});this.subscribe(i)})}_subscribe(n){var t;return(t=this.source)===null||t===void 0?void 0:t.subscribe(n)}[st](){return this}pipe(...n){return Ds(n)(this)}toPromise(n){return n=du(n),new n((t,r)=>{let o;this.subscribe(i=>o=i,i=>r(i),()=>t(o))})}};T.create=e=>new T(e)});function Zy(e){return C(e?.lift)}function A(e){return n=>{if(Zy(n))return n.lift(function(t){try{return e(t,this)}catch(r){this.error(r)}});throw new TypeError(`Unable to lift unknown Observable type`)}}var J=f(()=>{z()});function _(e,n,t,r,o){return new Cs(e,n,t,r,o)}var Cs;var re=f(()=>{ws();Cs=class extends kn{constructor(n,t,r,o,i,s){super(n),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=t?function(a){try{t(a)}catch(l){n.error(l)}}:super._next,this._error=o?function(a){try{o(a)}catch(l){n.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(a){n.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:t}=this;super.unsubscribe(),!t&&((n=this.onFinalize)===null||n===void 0||n.call(this))}}}});var fu;var pu=f(()=>{no();fu=tt(e=>function(){e(this),this.name=`ObjectUnsubscribedError`,this.message=`object unsubscribed`})});var ge;var lo;var Es=f(()=>{ce();Ut();pu();ds();io();ge=class extends T{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(n){let t=new lo(this,this);return t.operator=n,t}_throwIfClosed(){if(this.closed)throw new fu}next(n){ot(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let t of this.currentObservers)t.next(n)}})}error(n){ot(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=n;let{observers:t}=this;for(;t.length;)t.shift().error(n)}})}complete(){ot(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:n}=this;for(;n.length;)n.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var n;return((n=this.observers)===null||n===void 0?void 0:n.length)>0}_trySubscribe(n){return this._throwIfClosed(),super._trySubscribe(n)}_subscribe(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)}_innerSubscribe(n){let{hasError:t,isStopped:r,observers:o}=this;return t||r?fs:(this.currentObservers=null,o.push(n),new te(()=>{this.currentObservers=null,Vt(o,n)}))}_checkFinalizedStatuses(n){let{hasError:t,thrownError:r,isStopped:o}=this;t?n.error(r):o&&n.complete()}asObservable(){let n=new T;return n.source=this,n}};ge.create=(e,n)=>new lo(e,n);lo=class extends ge{constructor(n,t){super(),this.destination=n,this.source=t}next(n){var t,r;(r=(t=this.destination)===null||t===void 0?void 0:t.next)===null||r===void 0||r.call(t,n)}error(n){var t,r;(r=(t=this.destination)===null||t===void 0?void 0:t.error)===null||r===void 0||r.call(t,n)}complete(){var n,t;(t=(n=this.destination)===null||n===void 0?void 0:n.complete)===null||t===void 0||t.call(n)}_subscribe(n){var t,r;return(r=(t=this.source)===null||t===void 0?void 0:t.subscribe(n))!==null&&r!==void 0?r:fs}}});var qt;var mu=f(()=>{Es();qt=class extends ge{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){let t=super._subscribe(n);return!t.closed&&n.next(this._value),t}getValue(){let{hasError:n,thrownError:t,_value:r}=this;if(n)throw t;return this._throwIfClosed(),r}next(n){super.next(this._value=n)}}});var Wt;var co=f(()=>{ce();Wt=new T(e=>e.complete())});function gu(e){return e&&C(e.schedule)}var hu=f(()=>{z()});function vu(e){return e[e.length-1]}function uo(e){return C(vu(e))?e.pop():void 0}function rn(e){return gu(vu(e))?e.pop():void 0}var lt=f(()=>{z();hu()});function bu(e,n,t,r){function o(i){return i instanceof t?i:new t(function(s){s(i)})}return new(t||(t=Promise))(function(i,s){function a(u){try{c(r.next(u))}catch(d){s(d)}}function l(u){try{c(r.throw(u))}catch(d){s(d)}}function c(u){u.done?i(u.value):o(u.value).then(a,l)}c((r=r.apply(e,n||[])).next())})}function yu(e){var n=typeof Symbol==`function`&&Symbol.iterator,t=n&&e[n],r=0;if(t)return t.call(e);if(e&&typeof e.length==`number`)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?`Object is not iterable.`:`Symbol.iterator is not defined.`)}function Tn(e){return this instanceof Tn?(this.v=e,this):new Tn(e)}function wu(e,n,t){if(!Symbol.asyncIterator)throw new TypeError(`Symbol.asyncIterator is not defined.`);var r=t.apply(e,n||[]),o,i=[];return o=Object.create((typeof AsyncIterator==`function`?AsyncIterator:Object).prototype),a(`next`),a(`throw`),a(`return`,s),o[Symbol.asyncIterator]=function(){return this},o;function s(p){return function(g){return Promise.resolve(g).then(p,d)}}function a(p,g){r[p]&&(o[p]=function(h){return new Promise(function(k,D){i.push([p,h,k,D])>1||l(p,h)})},g&&(o[p]=g(o[p])))}function l(p,g){try{c(r[p](g))}catch(h){m(i[0][3],h)}}function c(p){p.value instanceof Tn?Promise.resolve(p.value.v).then(u,d):m(i[0][2],p)}function u(p){l(`next`,p)}function d(p){l(`throw`,p)}function m(p,g){p(g),i.shift(),i.length&&l(i[0][0],i[0][1])}}function Du(e){if(!Symbol.asyncIterator)throw new TypeError(`Symbol.asyncIterator is not defined.`);var n=e[Symbol.asyncIterator],t;return n?n.call(e):(e=typeof yu==`function`?yu(e):e[Symbol.iterator](),t={},r(`next`),r(`throw`),r(`return`),t[Symbol.asyncIterator]=function(){return this},t);function r(i){t[i]=e[i]&&function(s){return new Promise(function(a,l){s=e[i](s),o(a,l,s.done,s.value)})}}function o(i,s,a,l){Promise.resolve(l).then(function(c){i({value:c,done:a})},s)}}var Ss=f(()=>{});var fo;var ks=f(()=>{fo=(e=>e&&typeof e.length==`number`&&typeof e!=`function`)});function po(e){return C(e?.then)}var Ts=f(()=>{z()});function mo(e){return C(e[st])}var Ns=f(()=>{ao();z()});function go(e){return Symbol.asyncIterator&&C(e?.[Symbol.asyncIterator])}var Ms=f(()=>{z()});function ho(e){return new TypeError(`You provided ${e!==null&&typeof e==`object`?`an invalid object`:`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}var xs=f(()=>{});function Qy(){return typeof Symbol!=`function`||!Symbol.iterator?`@@iterator`:Symbol.iterator}var vo;var As=f(()=>{vo=Qy()});function yo(e){return C(e?.[vo])}var _s=f(()=>{As();z()});function bo(e){return wu(this,arguments,function*(){let t=e.getReader();try{for(;;){let{value:r,done:o}=yield Tn(t.read());if(o)return yield Tn(void 0);yield yield Tn(r)}}finally{t.releaseLock()}})}function wo(e){return C(e?.getReader)}var Do=f(()=>{Ss();z()});function U(e){if(e instanceof T)return e;if(e!=null){if(mo(e))return Ky(e);if(fo(e))return Yy(e);if(po(e))return Jy(e);if(go(e))return Iu(e);if(yo(e))return Xy(e);if(wo(e))return eb(e)}throw ho(e)}function Ky(e){return new T(n=>{let t=e[st]();if(C(t.subscribe))return t.subscribe(n);throw new TypeError(`Provided object does not correctly implement Symbol.observable`)})}function Yy(e){return new T(n=>{for(let t=0;t<e.length&&!n.closed;t++)n.next(e[t]);n.complete()})}function Jy(e){return new T(n=>{e.then(t=>{n.closed||(n.next(t),n.complete())},t=>n.error(t)).then(null,oo)})}function Xy(e){return new T(n=>{for(let t of e)if(n.next(t),n.closed)return;n.complete()})}function Iu(e){return new T(n=>{nb(e,n).catch(t=>n.error(t))})}function eb(e){return Iu(bo(e))}function nb(e,n){var t,r,o,i;return bu(this,void 0,void 0,function*(){try{for(t=Du(e);r=yield t.next(),!r.done;){let s=r.value;if(n.next(s),n.closed)return}}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=t.return)&&(yield i.call(t))}finally{if(o)throw o.error}}n.complete()})}var Ee=f(()=>{Ss();ks();Ts();ce();Ns();Ms();xs();_s();Do();z();ms();ao()});function ie(e,n,t,r=0,o=!1){let i=n.schedule(function(){t(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}var ct=f(()=>{});function Io(e,n=0){return A((t,r)=>{t.subscribe(_(r,o=>ie(r,e,()=>r.next(o),n),()=>ie(r,e,()=>r.complete(),n),o=>ie(r,e,()=>r.error(o),n)))})}var Rs=f(()=>{ct();J();re()});function Co(e,n=0){return A((t,r)=>{r.add(e.schedule(()=>t.subscribe(r),n))})}var $s=f(()=>{J()});function Cu(e,n){return U(e).pipe(Co(n),Io(n))}var Eu=f(()=>{Ee();Rs();$s()});function Su(e,n){return U(e).pipe(Co(n),Io(n))}var ku=f(()=>{Ee();Rs();$s()});function Tu(e,n){return new T(t=>{let r=0;return n.schedule(function(){r===e.length?t.complete():(t.next(e[r++]),t.closed||this.schedule())})})}var Nu=f(()=>{ce()});function Mu(e,n){return new T(t=>{let r;return ie(t,n,()=>{r=e[vo](),ie(t,n,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){t.error(s);return}i?t.complete():t.next(o)},0,!0)}),()=>C(r?.return)&&r.return()})}var xu=f(()=>{ce();As();z();ct()});function Eo(e,n){if(!e)throw new Error(`Iterable cannot be null`);return new T(t=>{ie(t,n,()=>{let r=e[Symbol.asyncIterator]();ie(t,n,()=>{r.next().then(o=>{o.done?t.complete():t.next(o.value)})},0,!0)})})}var Os=f(()=>{ce();ct()});function Au(e,n){return Eo(bo(e),n)}var _u=f(()=>{Os();Do()});function Ru(e,n){if(e!=null){if(mo(e))return Cu(e,n);if(fo(e))return Tu(e,n);if(po(e))return Su(e,n);if(go(e))return Eo(e,n);if(yo(e))return Mu(e,n);if(wo(e))return Au(e,n)}throw ho(e)}var $u=f(()=>{Eu();ku();Nu();xu();Os();Ns();Ts();ks();_s();Ms();xs();Do();_u()});function on(e,n){return n?Ru(e,n):U(e)}var Gt=f(()=>{$u();Ee()});function tb(...e){return on(e,rn(e))}var Ou=f(()=>{lt();Gt()});function rb(e,n){let t=C(e)?e:()=>e,r=o=>o.error(t());return new T(n?o=>n.schedule(r,0,o):r)}var Lu=f(()=>{ce();z()});function ob(e){return!!e&&(e instanceof T||C(e.lift)&&C(e.subscribe))}var Pu=f(()=>{ce();z()});var Zt;var So=f(()=>{no();Zt=tt(e=>function(){e(this),this.name=`EmptyError`,this.message=`no elements in sequence`})});function Nn(e,n){return A((t,r)=>{let o=0;t.subscribe(_(r,i=>{r.next(e.call(n,i,o++))}))})}var ko=f(()=>{J();re()});function sb(e,n){return ib(n)?e(...n):e(n)}function To(e){return Nn(n=>sb(e,n))}var ib;var Ls=f(()=>{ko();({isArray:ib}=Array)});function No(e){if(e.length===1){let n=e[0];if(ab(n))return{args:n,keys:null};if(db(n)){let t=ub(n);return{args:t.map(r=>n[r]),keys:t}}}return{args:e,keys:null}}function db(e){return e&&typeof e==`object`&&lb(e)===cb}var ab;var lb;var cb;var ub;var Ps=f(()=>{({isArray:ab}=Array),{getPrototypeOf:lb,prototype:cb,keys:ub}=Object});function Mo(e,n){return e.reduce((t,r,o)=>(t[r]=n[o],t),{})}var js=f(()=>{});function fb(...e){let n=rn(e),t=uo(e),{args:r,keys:o}=No(e);if(r.length===0)return on([],n);let i=new T(pb(r,n,o?s=>Mo(o,s):Ce));return t?i.pipe(To(t)):i}function pb(e,n,t=Ce){return r=>{ju(n,()=>{let{length:o}=e,i=new Array(o),s=o,a=o;for(let l=0;l<o;l++)ju(n,()=>{let c=on(e[l],n),u=!1;c.subscribe(_(r,d=>{i[l]=d,u||(u=!0,a--),a||r.next(t(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}function ju(e,n,t){e?ie(t,e,n):n()}var Fu=f(()=>{ce();Ps();Gt();at();Ls();lt();js();re();ct()});function Hu(e,n,t,r,o,i,s,a){let l=[],c=0,u=0,d=!1,m=()=>{d&&!l.length&&!c&&n.complete()},p=h=>c<r?g(h):l.push(h),g=h=>{i&&n.next(h),c++;let k=!1;U(t(h,u++)).subscribe(_(n,D=>{o?.(D),i?p(D):n.next(D)},()=>{k=!0},void 0,()=>{if(k)try{for(c--;l.length&&c<r;){let D=l.shift();s?ie(n,s,()=>g(D)):g(D)}m()}catch(D){n.error(D)}}))};return e.subscribe(_(n,p,()=>{d=!0,m()})),()=>{a?.()}}var Vu=f(()=>{Ee();ct();re()});function Mn(e,n,t=Infinity){return C(n)?Mn((r,o)=>Nn((i,s)=>n(r,i,o,s))(U(e(r,o))),t):(typeof n==`number`&&(t=n),A((r,o)=>Hu(r,o,e,t)))}var xo=f(()=>{ko();Ee();J();Vu();z()});function Fs(e=Infinity){return Mn(Ce,e)}var Hs=f(()=>{xo();at()});function Uu(){return Fs(1)}var Bu=f(()=>{Hs()});function Ao(...e){return Uu()(on(e,rn(e)))}var Vs=f(()=>{Bu();lt();Gt()});function mb(e){return new T(n=>{U(e()).subscribe(n)})}var zu=f(()=>{ce();Ee()});function gb(...e){let n=uo(e),{args:t,keys:r}=No(e),o=new T(i=>{let{length:s}=t;if(!s){i.complete();return}let a=new Array(s),l=s,c=s;for(let u=0;u<s;u++){let d=!1;U(t[u]).subscribe(_(i,m=>{d||(d=!0,c--),a[u]=m},()=>l--,void 0,()=>{(!l||!d)&&(c||i.next(r?Mo(r,a):a),i.complete())}))}});return n?o.pipe(To(n)):o}var qu=f(()=>{ce();Ps();Ee();lt();re();Ls();js()});function Us(e,n){return A((t,r)=>{let o=0;t.subscribe(_(r,i=>e.call(n,i,o++)&&r.next(i)))})}var Bs=f(()=>{J();re()});var Wu=f(()=>{});function Gu(e){return A((n,t)=>{let r=null,o=!1,i;r=n.subscribe(_(t,void 0,void 0,s=>{i=U(e(s,Gu(e)(n))),r?(r.unsubscribe(),r=null,i.subscribe(t)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(t))})}var Zu=f(()=>{Ee();re();J()});function hb(e,n){return C(n)?Mn(e,n,1):Mn(e,1)}var Qu=f(()=>{xo();z()});function Ku(e){return A((n,t)=>{let r=!1;n.subscribe(_(t,o=>{r=!0,t.next(o)},()=>{r||t.next(e),t.complete()}))})}var Yu=f(()=>{J();re()});function zs(e){return e<=0?()=>Wt:A((n,t)=>{let r=0;n.subscribe(_(t,o=>{++r<=e&&(t.next(o),e<=r&&t.complete())}))})}var qs=f(()=>{co();J();re()});function Ju(e=vb){return A((n,t)=>{let r=!1;n.subscribe(_(t,o=>{r=!0,t.next(o)},()=>r?t.complete():t.error(e())))})}function vb(){return new Zt}var Xu=f(()=>{So();J();re()});function yb(e){return A((n,t)=>{try{n.subscribe(t)}finally{t.add(e)}})}var ed=f(()=>{J()});function bb(e,n){let t=arguments.length>=2;return r=>r.pipe(e?Us((o,i)=>e(o,i,r)):Ce,zs(1),t?Ku(n):Ju(()=>new Zt))}var nd=f(()=>{So();Bs();qs();Yu();Xu();at()});function wb(e){return e<=0?()=>Wt:A((n,t)=>{let r=[];n.subscribe(_(t,o=>{r.push(o),e<r.length&&r.shift()},()=>{for(let o of r)t.next(o);t.complete()},void 0,()=>{r=null}))})}var td=f(()=>{co();J();re()});function Db(...e){let n=rn(e);return A((t,r)=>{(n?Ao(e,t,n):Ao(e,t)).subscribe(r)})}var rd=f(()=>{Vs();lt();J()});function Ib(e,n){return A((t,r)=>{let o=null,i=0,s=!1,a=()=>s&&!o&&r.complete();t.subscribe(_(r,l=>{o?.unsubscribe();let c=0,u=i++;U(e(l,u)).subscribe(o=_(r,d=>r.next(n?n(l,d,u,c++):d),()=>{o=null,a()}))},()=>{s=!0,a()}))})}var od=f(()=>{Ee();J();re()});function Cb(e){return A((n,t)=>{U(e).subscribe(_(t,()=>t.complete(),zt)),!t.closed&&n.subscribe(t)})}var id=f(()=>{J();re();Ee();gs()});function Eb(e,n,t){let r=C(e)||n||t?{next:e,error:n,complete:t}:e;return r?A((o,i)=>{var s;(s=r.subscribe)===null||s===void 0||s.call(r);let a=!0;o.subscribe(_(i,l=>{var c;(c=r.next)===null||c===void 0||c.call(r,l),i.next(l)},()=>{var l;a=!1,(l=r.complete)===null||l===void 0||l.call(r),i.complete()},l=>{var c;a=!1,(c=r.error)===null||c===void 0||c.call(r,l),i.error(l)},()=>{var l,c;a&&((l=r.unsubscribe)===null||l===void 0||l.call(r)),(c=r.finalize)===null||c===void 0||c.call(r)}))}):Ce}var sd=f(()=>{z();J();re();at()});var Ws=f(()=>{ce();Es();mu();Ut();Is();Pu();So();Fu();Vs();zu();qu();Gt();Ou();Lu();co();Wu()});function Sb(e){return`NG0${Math.abs(e)}`}function nr(e,n){return`${Sb(e)}${n?`: `+n:``}`}function R(e){for(let n in e)if(e[n]===R)return n;throw Error(``)}function fd(e,n){for(let t in n)Object.hasOwn(n,t)&&!Object.hasOwn(e,t)&&(e[t]=n[t])}function tr(e){if(typeof e==`string`)return e;if(Array.isArray(e))return`[${e.map(tr).join(`, `)}]`;if(e==null)return``+e;let n=e.overriddenName||e.name;if(n)return`${n}`;let t=e.toString();if(t==null)return``+t;let r=t.indexOf(`
4
- `);return r>=0?t.slice(0,r):t}function Fo(e,n){return e?n?`${e} ${n}`:e:n||``}function Ho(e){return e.__forward_ref__=Ho,e}function q(e){return aa(e)?e():e}function aa(e){return typeof e==`function`&&Object.hasOwn(e,kb)&&e.__forward_ref__===Ho}function X(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function rr(e){return Nb(e,Vo)}function Tb(e){return rr(e)!==null}function Nb(e,n){return Object.hasOwn(e,n)&&e[n]||null}function Mb(e){return(e?.[Vo]??null)||null}function Zs(e){return e&&Object.hasOwn(e,Ro)?e[Ro]:null}function la(e){return e&&!!e.ɵproviders}function pd(e){return Uo(e,`@NgModule`),e[ua]||null}function Ze(e){return Uo(e,`@Component`),e[or]||null}function sr(e){return Uo(e,`@Directive`),e[ir]||null}function da(e){return Uo(e,`@Pipe`),e[ca]||null}function Uo(e,n){if(e==null)throw new S(-919,!1)}function Qe(e){return typeof e==`string`?e:e==null?``:String(e)}function fa(e,n){return gd(``,-200,n)}function Bo(e,n){throw new S(-201,!1)}function gd(e,n,t){let r=new S(n,e);return r[md]=n,r[xb]=e,t&&(r[Ab]=t),r}function _b(e){return e[md]}function hd(){return Qs}function oe(e){let n=Qs;return Qs=e,n}function pa(e,n,t){let r=rr(e);if(r&&r.providedIn==`root`)return r.value===void 0?r.value=r.factory():r.value;if(t&8)return null;if(n!==void 0)return n;Bo(e,``)}function Ob(e,n=0){let t=eo();if(t===void 0)throw new S(-203,!1);if(t===null)return pa(e,void 0,n);{let r=Lb(n),o=t.retrieve(e,r);if(nt(o)){if(r.optional)return null;throw o}return o}}function $e(e,n=0){return(hd()||Ob)(q(e),n)}function I(e,n){return $e(e,An(n))}function An(e){return typeof e>`u`||typeof e==`number`?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Lb(e){return{optional:!!(e&8),host:!!(e&1),self:!!(e&2),skipSelf:!!(e&4)}}function Ys(e){let n=[];for(let t=0;t<e.length;t++){let r=q(e[t]);if(Array.isArray(r)){if(r.length===0)throw new S(900,!1);let o,i=0;for(let s=0;s<r.length;s++){let a=r[s],l=Pb(a);typeof l==`number`?l===-1?o=a.token:i|=l:o=a}n.push($e(o,i))}else n.push($e(r))}return n}function Pb(e){return e[$b]}function an(e,n){return Object.hasOwn(e,Yt)?e[Yt]:null}function vd(e,n,t){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++){let o=e[r],i=n[r];if(t&&(o=t(o),i=t(i)),i!==o)return!1}return!0}function yd(e){return e.flat(Number.POSITIVE_INFINITY)}function zo(e,n){e.forEach(t=>Array.isArray(t)?zo(t,n):n(t))}function ma(e,n,t){n>=e.length?e.push(t):e.splice(n,0,t)}function ar(e,n){return n>=e.length-1?e.pop():e.splice(n,1)[0]}function bd(e,n,t,r){let o=e.length;if(o==n)e.push(t,r);else if(o===1)e.push(r,e[0]),e[0]=t;else{for(o--,e.push(e[o-1],e[o]);o>n;)e[o]=e[o-2],o--;e[n]=t,e[n+1]=r}}function qo(e,n,t){let r=ft(e,n);return r>=0?e[r|1]=t:(r=~r,bd(e,r,n,t)),r}function Wo(e,n){let t=ft(e,n);if(t>=0)return e[t|1]}function ft(e,n){return jb(e,n,1)}function jb(e,n,t){let r=0,o=e.length>>t;for(;o!==r;){let i=r+(o-r>>1),s=e[i<<t];if(n===s)return i<<t;s>n?o=i:r=i+1}return~(o<<t)}function cr(e){return{ɵproviders:e}}function wd(e){return cr([{provide:pt,multi:!0,useValue:e}])}function Dd(...e){return{ɵproviders:Go(!0,e),ɵfromNgModule:!0}}function Go(e,...n){let t=[],r=new Set,o,i=s=>{t.push(s)};return zo(n,s=>{let a=s;$o(a,i,[],r)&&(o||=[],o.push(a))}),o!==void 0&&Id(o,i),t}function Id(e,n){for(let t=0;t<e.length;t++){let{ngModule:r,providers:o}=e[t];ha(o,i=>{n(i,r)})}}function $o(e,n,t,r){if(e=q(e),!e)return!1;let o=null,i=Zs(e),s=!i&&Ze(e);if(!i&&!s){let l=e.ngModule;if(i=Zs(l),i)o=l;else return!1}else{if(s&&!s.standalone)return!1;o=e}let a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){let l=typeof s.dependencies==`function`?s.dependencies():s.dependencies;for(let c of l)$o(c,n,t,r)}}else if(i){if(i.imports!=null&&!a){r.add(o);let c;zo(i.imports,u=>{$o(u,n,t,r)&&(c||=[],c.push(u))}),c!==void 0&&Id(c,n)}if(!a){let c=an(o)||(()=>new o);n({provide:o,useFactory:c,deps:he},o),n({provide:ga,useValue:o,multi:!0},o),n({provide:pt,useValue:()=>$e(o),multi:!0},o)}let l=i.providers;if(l!=null&&!a){let c=e;ha(l,u=>{n(u,c)})}}else return!1;return o!==e&&e.providers!==void 0}function ha(e,n){for(let t of e)la(t)&&(t=t.ɵproviders),Array.isArray(t)?ha(t,n):n(t)}function Cd(e){return e!==null&&typeof e==`object`&&Fb in e}function Hb(e){return!!(e&&e.useExisting)}function Vb(e){return!!(e&&e.useFactory)}function _n(e){return typeof e==`function`}function Ed(e){return!!e.useClass}function ur(){return Gs===void 0&&(Gs=new dt),Gs}function Js(e){let n=rr(e),t=n!==null?n.factory:an(e);if(t!==null)return t;if(e instanceof M)throw new S(-204,!1);if(e instanceof Function)return Ub(e);throw new S(-204,!1)}function Ub(e){if(e.length>0)throw new S(-204,!1);let t=Mb(e);return t!==null?()=>t.factory(e):()=>new e}function Bb(e){if(Cd(e))return ut(void 0,e.useValue);return ut(ya(e),_o)}function ya(e,n,t){let r;if(_n(e)){let o=q(e);return an(o)||Js(o)}else if(Cd(e))r=()=>q(e.useValue);else if(Vb(e))r=()=>e.useFactory(...Ys(e.deps||[]));else if(Hb(e))r=(o,i)=>$e(q(e.useExisting),i!==void 0&&i&8?8:void 0);else{let o=q(e&&(e.useClass||e.provide));if(zb(e))r=()=>new o(...Ys(e.deps));else return an(o)||Js(o)}return r}function Qt(e){if(e.destroyed)throw new S(-205,!1)}function ut(e,n,t=!1){return{factory:e,value:n,multi:t?[]:void 0}}function zb(e){return!!e.deps}function qb(e){return e!==null&&typeof e==`object`&&typeof e.ngOnDestroy==`function`}function Wb(e){return typeof e==`function`||typeof e==`object`&&e.ngMetadataName===`InjectionToken`}function Xs(e,n){for(let t of e)Array.isArray(t)?Xs(t,n):t&&la(t)?Xs(t.ɵproviders,n):n(t)}function Zo(e,n){let t;e instanceof Rn?(Qt(e),t=e):t=new Ks(e);let o=Re(t),i=oe(void 0);try{return n()}finally{Re(o),oe(i)}}function Sd(){return hd()!==void 0||eo()!=null}function Ke(e){return Array.isArray(e)&&typeof e[kd]==`object`}function be(e){return Array.isArray(e)&&e[kd]===!0}function Da(e){return(e.flags&4)!==0}function Ye(e){return e.componentOffset>-1}function vt(e){return(e.flags&1)===1}function Me(e){return!!e.template}function yt(e){return(e[w]&512)!==0}function pn(e){return(e[w]&256)===256}function Gb(){return Kt||(Kt=na(),sn(Q.HTML,void 0,[[`iframe`,[`srcdoc`]],[`*`,[`innerHTML`,`outerHTML`]]]),sn(Q.STYLE,void 0,[[`*`,[`style`]]]),sn(Q.URL,void 0,[[`*`,[`formAction`]],[`area`,[`href`]],[`a`,[`href`,`xlink:href`]],[`form`,[`action`]],[`img`,[`src`]],[`video`,[`src`]]]),sn(Q.URL,Ko,[[`*`,[`href`,`xlink:href`]]]),sn(Q.RESOURCE_URL,void 0,[[`base`,[`href`]],[`embed`,[`src`]],[`frame`,[`src`]],[`iframe`,[`src`]],[`link`,[`href`]],[`object`,[`codebase`,`data`]]]),sn(Q.URL,$n,[[`a`,[`href`,`xlink:href`]]]),sn(Q.ATTRIBUTE_NO_BINDING,$n,[[`animate`,[`attributeName`,`values`,`to`,`from`]],[`set`,[`to`,`attributeName`]],[`animateMotion`,[`attributeName`]],[`animateTransform`,[`attributeName`]]]),sn(Q.ATTRIBUTE_NO_BINDING,void 0,[[`unknown`,[`attributeName`,`values`,`to`,`from`,`sandbox`,`allow`,`allowFullscreen`,`referrerPolicy`,`csp`,`fetchPriority`,`credentialless`]],[`iframe`,[`sandbox`,`allow`,`allowFullscreen`,`referrerPolicy`,`csp`,`fetchPriority`,`credentialless`]]]),Kt)}function sn(e,n,t){let r=n??ea;for(let[o,i]of t){let s=o.toLowerCase();for(let a of i){let l=a.toLowerCase(),c=Kt[l]??=na(),u=c[r]??=na();u[s]=e}}}function Td(e,n,t){let o=Gb()[n.toLowerCase()];if(!o)return Q.NONE;let i=e.toLowerCase(),s;if(t){let a=o[t];a&&(s=a[i]??a[cd])}if(s===void 0){let a=o[ea];a&&(s=a[i]??a[cd])}if(s===void 0&&(!t||t===ea)){let a=o[$n];a&&(s=a[i])}return s??Q.NONE}function K(e){for(;Array.isArray(e);)e=e[Te];return e}function Ia(e,n){return K(n[e])}function we(e,n){return K(n[e.index])}function bt(e,n){return e.data[n]}function Yo(e,n){return e[n]}function fr(e,n,t,r){t>=e.data.length&&(e.data[t]=null,e.blueprint[t]=null),n[t]=r}function De(e,n){let t=n[e];return Ke(t)?t:t[Te]}function Nd(e){return(e[w]&4)===4}function Jo(e){return(e[w]&128)===128}function Md(e){return be(e[B])}function pe(e,n){return n==null?null:e[n]}function Ca(e){e[Ln]=0}function Xo(e){e[w]&1024||(e[w]|=1024,Jo(e)&&Hn(e))}function xd(e,n){for(;e>0;)n=n[un],e--;return n}function pr(e){return!!(e[w]&9216||e[fe]?.dirty)}function ei(e){e[Ne].changeDetectionScheduler?.notify(8),e[w]&64&&(e[w]|=1024),pr(e)&&Hn(e)}function Hn(e){e[Ne].changeDetectionScheduler?.notify(0);let n=We(e);for(;n!==null&&!(n[w]&8192||(n[w]|=8192,!Jo(n)));)n=We(n)}function mr(e,n){if(pn(e))throw new S(911,!1);e[ze]===null&&(e[ze]=[]),e[ze].push(n)}function Ea(e,n){if(e[ze]===null)return;let t=e[ze].indexOf(n);t!==-1&&e[ze].splice(t,1)}function We(e){let n=e[B];return be(n)?n[B]:n}function Sa(e){return e[gt]??=[]}function ka(e){return e.cleanup??=[]}function Ad(e,n,t,r){let o=Sa(n);o.push(t),e.firstCreatePass&&ka(e).push(r,o.length-1)}function _d(){return E.lFrame.elementDepthCount}function Rd(){E.lFrame.elementDepthCount++}function Ta(){E.lFrame.elementDepthCount--}function ni(){return E.bindingsEnabled}function $d(){return E.skipHydrationRootTNode!==null}function Na(e){return E.skipHydrationRootTNode===e}function Ma(){E.skipHydrationRootTNode=null}function b(){return E.lFrame.lView}function $(){return E.lFrame.tView}function Od(e){return E.lFrame.contextLView=e,e[F]}function Ld(e){return E.lFrame.contextLView=null,e}function H(){let e=xa();for(;e!==null&&e.type===64;)e=e.parent;return e}function xa(){return E.lFrame.currentTNode}function Pd(){let e=E.lFrame,n=e.currentTNode;return e.isParent?n:n.parent}function Vn(e,n){let t=E.lFrame;t.currentTNode=e,t.isParent=n}function Aa(){return E.lFrame.isParent}function jd(){E.lFrame.isParent=!1}function _a(){return E.lFrame.contextLView}function Ra(){return ta}function Jt(e){let n=ta;return ta=e,n}function ti(){let e=E.lFrame,n=e.bindingRootIndex;return n===-1&&(n=e.bindingRootIndex=e.tView.bindingStartIndex),n}function $a(){return E.lFrame.bindingIndex}function Fd(e){return E.lFrame.bindingIndex=e}function Je(){return E.lFrame.bindingIndex++}function gr(e){let n=E.lFrame,t=n.bindingIndex;return n.bindingIndex=n.bindingIndex+e,t}function Hd(){return E.lFrame.inI18n}function Vd(e,n){let t=E.lFrame;t.bindingIndex=t.bindingRootIndex=e,ri(n)}function Ud(){return E.lFrame.currentDirectiveIndex}function ri(e){E.lFrame.currentDirectiveIndex=e}function Bd(e){let n=E.lFrame.currentDirectiveIndex;return n===-1?null:e[n]}function oi(){return E.lFrame.currentQueryIndex}function hr(e){E.lFrame.currentQueryIndex=e}function Zb(e){let n=e[v];return n.type===2?n.declTNode:n.type===1?e[se]:null}function Oa(e,n,t){if(t&4){let o=n,i=e;for(;o=o.parent,o===null&&!(t&1);)if(o=Zb(i),o===null||(i=i[un],o.type&10))break;if(o===null)return!1;n=o,e=i}let r=E.lFrame=zd();return r.currentTNode=n,r.lView=e,!0}function ii(e){let n=zd(),t=e[v];E.lFrame=n,n.currentTNode=t.firstChild,n.lView=e,n.tView=t,n.contextLView=e,n.bindingIndex=t.bindingStartIndex,n.inI18n=!1}function zd(){let e=E.lFrame,n=e===null?null:e.child;return n===null?qd(e):n}function qd(e){let n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return e!==null&&(e.child=n),n}function Wd(){let e=E.lFrame;return E.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}function si(){let e=Wd();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Gd(e){return(E.lFrame.contextLView=xd(e,E.lFrame.contextLView))[F]}function me(){return E.lFrame.selectedIndex}function mn(e){E.lFrame.selectedIndex=e}function Un(){let e=E.lFrame;return bt(e.tView,e.selectedIndex)}function vr(){E.lFrame.currentNamespace=$n}function Zd(){Qb()}function Qb(){E.lFrame.currentNamespace=null}function Pa(){return E.lFrame.currentNamespace}function ai(){return Qd}function yr(e){Qd=e}function ra(e,n=null,t=null,r){let o=ja(e,n,t,r);return o.resolveInjectorInitializers(),o}function ja(e,n=null,t=null,r,o=new Set){let i=[t||he,Dd(e)];return new Rn(i,n||ur(),null,o)}function Kb(){return new Oo(b())}function Lo(...e){}function Fa(e){let n,t;function r(){e=Lo;try{t!==void 0&&typeof cancelAnimationFrame==`function`&&cancelAnimationFrame(t),n!==void 0&&clearTimeout(n)}catch{}}return n=setTimeout(()=>{e(),r()}),typeof requestAnimationFrame==`function`&&(t=requestAnimationFrame(()=>{e(),r()})),()=>r()}function Jd(e){return queueMicrotask(()=>e()),()=>{e=Lo}}function Va(e){if(e._nesting==0&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function Xb(e){if(e.isCheckStableRunning||e.callbackScheduled)return;e.callbackScheduled=!0;function n(){Fa(()=>{e.callbackScheduled=!1,ia(e),e.isCheckStableRunning=!0,Va(e),e.isCheckStableRunning=!1})}e.scheduleInRootZone?Zone.root.run(()=>{n()}):e._outer.run(()=>{n()}),ia(e)}function ew(e){let n=()=>{Xb(e)},t=Yb++;e._inner=e._inner.fork({name:`angular`,properties:{[Ha]:!0,[Xt]:t,[Xt+t]:!0},onInvokeTask:(r,o,i,s,a,l)=>{if(nw(l))return r.invokeTask(i,s,a,l);try{return ud(e),r.invokeTask(i,s,a,l)}finally{(e.shouldCoalesceEventChangeDetection&&s.type===`eventTask`||e.shouldCoalesceRunChangeDetection)&&n(),dd(e)}},onInvoke:(r,o,i,s,a,l,c)=>{try{return ud(e),r.invoke(i,s,a,l,c)}finally{e.shouldCoalesceRunChangeDetection&&!e.callbackScheduled&&!tw(l)&&n(),dd(e)}},onHasTask:(r,o,i,s)=>{r.hasTask(i,s),o===i&&(s.change==`microTask`?(e._hasPendingMicrotasks=s.microTask,ia(e),Va(e)):s.change==`macroTask`&&(e.hasPendingMacrotasks=s.macroTask))},onHandleError:(r,o,i,s)=>(r.handleError(i,s),e.runOutsideAngular(()=>e.onError.emit(s)),!1)})}function ia(e){e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&e.callbackScheduled===!0?e.hasPendingMicrotasks=!0:e.hasPendingMicrotasks=!1}function ud(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function dd(e){e._nesting--,Va(e)}function nw(e){return Xd(e,`__ignore_ng_zone__`)}function tw(e){return Xd(e,`__scheduler_tick__`)}function Xd(e,n){return!Array.isArray(e)||e.length!==1?!1:e[0]?.data?.[n]===!0}function ow(){return cr([wd(()=>{I(rw)})])}function wt(e,n){let[t,r,o]=rs(e,n?.equal),i=t;i[j];return i.set=r,i.update=o,i.asReadonly=wr.bind(i),i}function wr(){let e=this[j];if(e.readonlyFn===void 0){let n=()=>this();n[j]=e,e.readonlyFn=n}return e.readonlyFn}function lw(){return new Dt(b(),H())}function rf(e,n){let t=n?.injector??I(Se),r=n?.manualCleanup!==!0?t.get(ve):null,o,i=t.get(Dt,null,{optional:!0}),s=t.get(Oe);return i!==null?(o=sf(i.view,s,e),r instanceof Oo&&r._lView===i.view&&(r=null)):o=dw(e,t.get(li),s),o.injector=t,r!==null&&(o.onDestroyFns=[r.onDestroy(()=>o.destroy())]),new Po(o)}function sf(e,n,t){let r=Object.create(uw);return r.view=e,r.zone=typeof Zone<`u`?Zone.current:null,r.notifier=n,r.fn=af(r,t),e[qe]??=new Set,e[qe].add(r),r.consumerMarkedDirty(r),r}function dw(e,n,t){let r=Object.create(cw);return r.fn=af(r,e),r.scheduler=n,r.notifier=t,r.zone=typeof Zone<`u`?Zone.current:null,r.scheduler.add(r),r.notifier.notify(12),r}function af(e,n){return()=>{n(t=>(e.cleanupFns??=[]).push(t))}}function ci(e){return typeof e==`function`&&e[j]!==void 0}function ui(e){return ci(e)&&typeof e.set==`function`}var jo;var S;var kb;var Vo;var Ro;var M;var or;var ir;var ca;var ua;var Yt;var On;var ad;var md;var xb;var Ab;var Qs;var ln;var Rb;var xn;var $b;var Ks;var cn;var he;var pt;var lr;var ga;var dt;var Fb;var va;var _o;var ld;var Gs;var ue;var Rn;var Te;var v;var w;var B;var ye;var se;var mt;var gt;var F;var ee;var Ne;var O;var ht;var ba;var un;var de;var dn;var Ln;var Le;var Pe;var wa;var ze;var Qo;var qe;var fe;var Pn;var je;var L;var kd;var fn;var jn;var dr;var Fn;var P;var Q;var Kt;var $n;var Ko;var ea;var cd;var na;var E;var ta;var La;var Qd;var Se;var br;var ve;var Oo;var Kd;var Yd;var Bn;var oa;var Be;var Ha;var Xt;var Yb;var ke;var Jb;var er;var Ge;var gn;var ef;var rw;var nf;var iw;var tf;var sw;var aw;var Dt;var Oe;var Dr;var Ua;var li;var sa;var Po;var of;var cw;var uw;var di;var Ir=f(()=>{En();as();us();ru();Ws();jo=`https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss`,S=class extends Error{code;constructor(n,t){super(nr(n,t)),this.code=n}};kb=R({__forward_ref__:R});Vo=R({ɵprov:R}),Ro=R({ɵinj:R}),M=class{_desc;ngMetadataName=`InjectionToken`;ɵprov;constructor(n,t){this._desc=n,this.ɵprov=void 0,typeof t==`number`?this.__NG_ELEMENT_ID__=t:t!==void 0&&(this.ɵprov=X({token:this,providedIn:t.providedIn||`root`,factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};or=R({ɵcmp:R}),ir=R({ɵdir:R}),ca=R({ɵpipe:R}),ua=R({ɵmod:R}),Yt=R({ɵfac:R}),On=R({__NG_ELEMENT_ID__:R}),ad=R({__NG_ENV_ID__:R});md=R({ngErrorCode:R}),xb=R({ngErrorMessage:R}),Ab=R({ngTokenPath:R});ln=globalThis,Rb={},xn=Rb,$b=`__NG_DI_FLAG__`,Ks=class{injector;constructor(n){this.injector=n}retrieve(n,t){let r=An(t)||0;try{return this.injector.get(n,r&8?null:xn,r)}catch(o){if(nt(o))return o;throw o}}};cn={},he=[],pt=new M(``),lr=new M(``,-1),ga=new M(``),dt=class{get(n,t=xn){if(t===xn){let o=gd(``,-201);throw o.name=`ɵNotFound`,o}return t}};Fb=R({provide:String,useValue:R});va=new M(``),_o={},ld={};ue=class{},Rn=class extends ue{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(n,t,r,o){super(),this.parent=t,this.source=r,this.scopes=o,Xs(n,s=>this.processProvider(s)),this.records.set(lr,ut(void 0,this)),o.has(`environment`)&&this.records.set(ue,ut(void 0,this));let i=this.records.get(va);i!=null&&typeof i.value==`string`&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(ga,he,{self:!0}))}retrieve(n,t){let r=An(t)||0;try{return this.get(n,xn,r)}catch(o){if(nt(o))return o;throw o}}destroy(){Qt(this),this._destroyed=!0;let n=y(null);try{for(let r of this._ngOnDestroyHooks)r.ngOnDestroy();let t=this._onDestroyHooks;this._onDestroyHooks=[];for(let r of t)r()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),y(n)}}onDestroy(n){return Qt(this),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){Qt(this);let t=Re(this),r=oe(void 0);try{return n()}finally{Re(t),oe(r)}}get(n,t=xn,r){if(Qt(this),Object.hasOwn(n,ad))return n[ad](this);let o=An(r),s=Re(this),a=oe(void 0);try{if(!(o&4)){let c=this.records.get(n);if(c===void 0){let u=Wb(n)&&rr(n);u&&this.injectableDefInScope(u)?c=ut(Js(n),_o):c=null,this.records.set(n,c)}if(c!=null)return this.hydrate(n,c,o)}let l=o&2?ur():this.parent;return t=o&8&&t===xn?null:t,l.get(n,t)}catch(l){let c=_b(l);throw c===-200||c===-201?new S(c,null):l}finally{oe(a),Re(s)}}resolveInjectorInitializers(){let n=y(null),t=Re(this),r=oe(void 0);try{let i=this.get(pt,he,{self:!0});for(let s of i)s()}finally{Re(t),oe(r),y(n)}}toString(){return`R3Injector[...]`}processProvider(n){n=q(n);let t=_n(n)?n:q(n&&n.provide),r=Bb(n);if(!_n(n)&&n.multi===!0){let o=this.records.get(t);o||(o=ut(void 0,_o,!0),o.factory=()=>Ys(o.multi),this.records.set(t,o)),t=n,o.multi.push(n)}this.records.set(t,r)}hydrate(n,t,r){let o=y(null);try{if(t.value===ld)throw fa(``);return t.value===_o&&(t.value=ld,t.value=t.factory(void 0,r)),typeof t.value==`object`&&t.value&&qb(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}finally{y(o)}}injectableDefInScope(n){if(!n.providedIn)return!1;let t=q(n.providedIn);return typeof t==`string`?t===`any`||this.scopes.has(t):this.injectorDefTypes.has(t)}removeOnDestroy(n){let t=this._onDestroyHooks.indexOf(n);t!==-1&&this._onDestroyHooks.splice(t,1)}};Te=0,v=1,w=2,B=3,ye=4,se=5,mt=6,gt=7,F=8,ee=9,Ne=10,O=11,ht=12,ba=13,un=14,de=15,dn=16,Ln=17,Le=18,Pe=19,wa=20,ze=21,Qo=22,qe=23,fe=24,Pn=25,je=26,L=27,kd=1,fn=6,jn=7,dr=8,Fn=9,P=10;Q=(function(e){return e[e.NONE=0]=`NONE`,e[e.HTML=1]=`HTML`,e[e.STYLE=2]=`STYLE`,e[e.SCRIPT=3]=`SCRIPT`,e[e.URL=4]=`URL`,e[e.RESOURCE_URL=5]=`RESOURCE_URL`,e[e.ATTRIBUTE_NO_BINDING=6]=`ATTRIBUTE_NO_BINDING`,e})(Q||{}),$n=`svg`,Ko=`math`,ea=``,cd=`*`,na=()=>Object.create(null);E={lFrame:qd(null),bindingsEnabled:!0,skipHydrationRootTNode:null},ta=!1;La=Wd;Qd=!0;Se=class e{static THROW_IF_NOT_FOUND=xn;static NULL=new dt;static create(n,t){if(Array.isArray(n))return ra({name:``},t,n,``);{let r=n.name??``;return ra({name:r},n.parent,n.providers,r)}}static ɵprov=X({token:e,providedIn:`any`,factory:()=>$e(lr)});static __NG_ELEMENT_ID__=-1},br=new M(``),ve=class{static __NG_ELEMENT_ID__=Kb;static __NG_ENV_ID__=n=>n},Oo=class extends ve{_lView;constructor(n){super(),this._lView=n}get destroyed(){return pn(this._lView)}onDestroy(n){let t=this._lView;return mr(t,n),()=>Ea(t,n)}};Kd=!1,Yd=new M(``),Bn=(()=>{class e{taskId=0;pendingTasks=new Set;destroyed=!1;pendingTask=new qt(!1);debugTaskTracker=I(Yd,{optional:!0});get hasPendingTasks(){return this.destroyed?!1:this.pendingTask.value}get hasPendingTasksObservable(){return this.destroyed?new T(t=>{t.next(!1),t.complete()}):this.pendingTask}add(){!this.hasPendingTasks&&!this.destroyed&&this.pendingTask.next(!0);let t=this.taskId++;return this.pendingTasks.add(t),this.debugTaskTracker?.add(t),t}has(t){return this.pendingTasks.has(t)}remove(t){this.pendingTasks.delete(t),this.debugTaskTracker?.remove(t),this.pendingTasks.size===0&&this.hasPendingTasks&&this.pendingTask.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks&&this.pendingTask.next(!1),this.destroyed=!0,this.pendingTask.unsubscribe()}static ɵprov=X({token:e,providedIn:`root`,factory:()=>new e})}return e})(),oa=class extends ge{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(n=!1){super(),this.__isAsync=n,Sd()&&(this.destroyRef=I(ve,{optional:!0})??void 0,this.pendingTasks=I(Bn,{optional:!0})??void 0)}emit(n){let t=y(null);try{super.next(n)}finally{y(t)}}subscribe(n,t,r){let o=n,i=t||(()=>null),s=r;if(n&&typeof n==`object`){let l=n;o=l.next?.bind(l),i=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(i=this.wrapInTimeout(i),o&&(o=this.wrapInTimeout(o)),s&&(s=this.wrapInTimeout(s)));let a=super.subscribe({next:o,error:i,complete:s});return n instanceof te&&n.add(a),a}wrapInTimeout(n){return t=>{let r=this.pendingTasks?.add();setTimeout(()=>{try{n(t)}finally{r!==void 0&&this.pendingTasks?.remove(r)}})}}},Be=oa;Ha=`isAngularZone`,Xt=Ha+`_ID`,Yb=0,ke=class e{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new Be(!1);onMicrotaskEmpty=new Be(!1);onStable=new Be(!1);onError=new Be(!1);constructor(n){let{enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:r=!1,shouldCoalesceRunChangeDetection:o=!1,scheduleInRootZone:i=Kd}=n;if(typeof Zone>`u`)throw new S(908,!1);Zone.assertZonePatched();let s=this;s._nesting=0,s._outer=s._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(s._inner=s._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!o&&r,s.shouldCoalesceRunChangeDetection=o,s.callbackScheduled=!1,s.scheduleInRootZone=i,ew(s)}static isInAngularZone(){return typeof Zone<`u`&&Zone.current.get(Ha)===!0}static assertInAngularZone(){if(!e.isInAngularZone())throw new S(909,!1)}static assertNotInAngularZone(){if(e.isInAngularZone())throw new S(909,!1)}run(n,t,r){return this._inner.run(n,t,r)}runTask(n,t,r,o){let i=this._inner,s=i.scheduleEventTask(`NgZoneEvent: `+o,n,Jb,Lo,Lo);try{return i.runTask(s,t,r)}finally{i.cancelTask(s)}}runGuarded(n,t,r){return this._inner.runGuarded(n,t,r)}runOutsideAngular(n){return this._outer.run(n)}},Jb={};er=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new Be;onMicrotaskEmpty=new Be;onStable=new Be;onError=new Be;run(n,t,r){return n.apply(t,r)}runGuarded(n,t,r){return n.apply(t,r)}runOutsideAngular(n){return n()}runTask(n,t,r,o){return n.apply(t,r)}};Ge=class{_console=console;handleError(n){this._console.error(`ERROR`,n)}},gn=new M(``,{factory:()=>{let e=I(ke),n=I(ue),t;return r=>{e.runOutsideAngular(()=>{n.destroyed&&!t?setTimeout(()=>{throw r}):(t??=n.get(Ge),t.handleError(r))})}}}),ef={provide:pt,useValue:()=>{I(Ge,{optional:!0})},multi:!0},rw=new M(``,{factory:()=>{let e=I(br).defaultView;if(!e)return;let n=I(gn),t=i=>{n(i.reason),i.preventDefault()},r=i=>{i.error?n(i.error):n(new Error(i.message,{cause:i})),i.preventDefault()},o=()=>{e.addEventListener(`unhandledrejection`,t),e.addEventListener(`error`,r)};typeof Zone<`u`?Zone.root.run(o):o(),I(ve).onDestroy(()=>{e.removeEventListener(`error`,r),e.removeEventListener(`unhandledrejection`,t)})}});nf=new M(``,{factory:()=>iw}),iw=`ng`,tf=new M(``),sw=new M(``,{providedIn:`platform`,factory:()=>`unknown`}),aw=new M(``,{factory:()=>I(br).body?.querySelector(`[ngCspNonce]`)?.getAttribute(`ngCspNonce`)||null}),Dt=(()=>{class e{view;node;constructor(t,r){this.view=t,this.node=r}static __NG_ELEMENT_ID__=lw}return e})();Oe=class{},Dr=new M(``,{factory:()=>!0}),Ua=new M(``),li=(()=>{class e{static ɵprov=X({token:e,providedIn:`root`,factory:()=>new sa})}return e})(),sa=class{dirtyEffectCount=0;queues=new Map;add(n){this.enqueue(n),this.schedule(n)}schedule(n){n.dirty&&this.dirtyEffectCount++}remove(n){let t=n.zone,r=this.queues.get(t);r.has(n)&&(r.delete(n),n.dirty&&this.dirtyEffectCount--)}enqueue(n){let t=n.zone;this.queues.has(t)||this.queues.set(t,new Set);let r=this.queues.get(t);r.has(n)||r.add(n)}flush(){for(;this.dirtyEffectCount>0;){let n=!1;for(let[t,r]of this.queues)t===null?n||=this.flushQueue(r):n||=t.run(()=>this.flushQueue(r));n||(this.dirtyEffectCount=0)}}flushQueue(n){let t=!1;for(let r of n)r.dirty&&(this.dirtyEffectCount--,t=!0,r.run());return t}},Po=class{[j];constructor(n){this[j]=n}destroy(){this[j].destroy()}};of=G(W({},os),{cleanupFns:void 0,zone:null,onDestroyFns:null,run(){let e=Jt(!1);try{is(this)}finally{Jt(e)}},cleanup(){if(!this.cleanupFns?.length)return;let e=y(null);try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[],y(e)}}}),cw=G(W({},of),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){if(tn(this),this.onDestroyFns!==null)for(let e of this.onDestroyFns)e();this.cleanup(),this.scheduler.remove(this)}}),uw=G(W({},of),{consumerMarkedDirty(){this.view[w]|=8192,Hn(this.view),this.notifier.notify(13)},destroy(){if(tn(this),this.onDestroyFns!==null)for(let e of this.onDestroyFns)e();this.cleanup(),this.view[qe]?.delete(this)}});di=(()=>{class e{internalPendingTasks=I(Bn);scheduler=I(Oe);errorHandler=I(gn);add(){let t=this.internalPendingTasks.add();return()=>{this.internalPendingTasks.has(t)&&(this.scheduler.notify(11),this.internalPendingTasks.remove(t))}}run(t){let r=this.add();try{t().catch(this.errorHandler).finally(r)}catch(o){this.errorHandler(o),r()}}static ɵprov=X({token:e,providedIn:`root`,factory:()=>new e})}return e})()});var lf=f(()=>{Zu();Qu();Bs();ed();nd();ko();Hs();xo();rd();od();qs();td();id();sd()});function ji(e){return{toString:e}.toString()}function Kf(e,n,t,r){n!==null?n.applyValueToInputSignal(n,r):e[t]=r}function Ew(){return Yf}function cf(e){return e.type.prototype.ngOnChanges&&(e.setInput=kw),Sw}function Sw(){let e=Jf(this),n=e?.current;if(n){let t=e.previous;if(t===cn)e.previous=n;else for(let r in n)t[r]=n[r];e.current=null,this.ngOnChanges(n)}}function kw(e,n,t,r,o){let i=this.declaredInputs[r],s=Jf(e)||Tw(e,{previous:cn,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[i];a[i]=new wi(c&&c.currentValue,t,l===cn),Kf(e,n,o,t)}function Jf(e){return Object.hasOwn(e,tl)&&e[tl]||null}function Tw(e,n){return e[tl]=n}function Nw(e,n,t){let{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=n.type.prototype;if(r){let s=Ew()(n);(t.preOrderHooks??=[]).push(e,s),(t.preOrderCheckHooks??=[]).push(e,s)}o&&(t.preOrderHooks??=[]).push(0-e,o),i&&((t.preOrderHooks??=[]).push(e,i),(t.preOrderCheckHooks??=[]).push(e,i))}function Xf(e,n){for(let t=n.directiveStart,r=n.directiveEnd;t<r;t++){let{ngAfterContentInit:s,ngAfterContentChecked:a,ngAfterViewInit:l,ngAfterViewChecked:c,ngOnDestroy:u}=e.data[t].type.prototype;s&&(e.contentHooks??=[]).push(-t,s),a&&((e.contentHooks??=[]).push(t,a),(e.contentCheckHooks??=[]).push(t,a)),l&&(e.viewHooks??=[]).push(-t,l),c&&((e.viewHooks??=[]).push(t,c),(e.viewCheckHooks??=[]).push(t,c)),u!=null&&(e.destroyHooks??=[]).push(t,u)}}function mi(e,n,t){ep(e,n,3,t)}function gi(e,n,t,r){(e[w]&3)===t&&ep(e,n,t,r)}function Ba(e,n){let t=e[w];(t&3)===n&&(t&=16383,t+=1,e[w]=t)}function ep(e,n,t,r){let o=r!==void 0?e[Ln]&65535:0,i=r??-1,s=n.length-1,a=0;for(let l=o;l<s;l++)if(typeof n[l+1]==`number`){if(a=n[l],r!=null&&a>=r)break}else n[l]<0&&(e[Ln]+=65536),(a<i||i==-1)&&(Mw(e,t,n,l),e[Ln]=(e[Ln]&4294901760)+l+2),l++}function df(e,n){x(N.LifecycleHookStart,e,n);let t=y(null);try{n.call(e)}finally{y(t),x(N.LifecycleHookEnd,e,n)}}function Mw(e,n,t,r){let o=t[r]<0,i=t[r+1],a=e[o?-t[r]:t[r]];o?e[w]>>14<e[Ln]>>16&&(e[w]&3)===n&&(e[w]+=16384,df(a,i)):df(a,i)}function xw(e){return(e.flags&8)!==0}function Aw(e){return(e.flags&16)!==0}function _w(e,n,t){let r=0;for(;r<t.length;){let o=t[r];if(typeof o==`number`){if(o!==0)break;r++;let i=t[r++],s=t[r++],a=t[r++];e.setAttribute(n,s,a,i)}else{let i=o,s=t[++r];Rw(i)?e.setProperty(n,i,s):e.setAttribute(n,i,s),r++}}return r}function np(e){return e===3||e===4||e===6}function Rw(e){return e.charCodeAt(0)===64}function Et(e,n){if(!(n===null||n.length===0))if(e===null||e.length===0)e=n.slice();else{let t=-1;for(let r=0;r<n.length;r++){let o=n[r];typeof o==`number`?t=o:t===0||(t===-1||t===2?ff(e,t,o,null,n[++r]):ff(e,t,o,null,null))}}return e}function ff(e,n,t,r,o){let i=0,s=e.length;if(n===-1)s=-1;else for(;i<e.length;){let a=e[i++];if(typeof a==`number`){if(a===n){s=-1;break}else if(a>n){s=i-1;break}}}for(;i<e.length;){let a=e[i];if(typeof a==`number`)break;if(a===t){o!==null&&(e[i+1]=o);return}i++,o!==null&&i++}s!==-1&&(e.splice(s,0,n),i=s+1),e.splice(i++,0,t),o!==null&&e.splice(i++,0,o)}function tp(e){return e!==Ct}function Di(e){return e&32767}function $w(e){return e>>16}function Ii(e,n){let t=$w(e),r=n;for(;t>0;)r=r[un],t--;return r}function Ci(e){let n=rl;return rl=e,n}function Pw(e,n,t){let r;typeof t==`string`?r=t.charCodeAt(0)||0:Object.hasOwn(t,On)&&(r=t[On]),r??=t[On]=Lw++;let o=r&rp,i=1<<o;n.data[e+(o>>op)]|=i}function Ei(e,n){let t=ip(e,n);if(t!==-1)return t;let r=n[v];r.firstCreatePass&&(e.injectorIndex=n.length,za(r.data,e),za(n,null),za(r.blueprint,null));let o=Ol(e,n),i=e.injectorIndex;if(tp(o)){let s=Di(o),a=Ii(o,n),l=a[v].data;for(let c=0;c<8;c++)n[i+c]=a[s+c]|l[s+c]}return n[i+8]=o,i}function za(e,n){e.push(0,0,0,0,0,0,0,0,n)}function ip(e,n){return e.injectorIndex===-1||e.parent&&e.parent.injectorIndex===e.injectorIndex||n[e.injectorIndex+8]===null?-1:e.injectorIndex}function Ol(e,n){if(e.parent&&e.parent.injectorIndex!==-1)return e.parent.injectorIndex;let t=0,r=null,o=n;for(;o!==null;){if(r=up(o),r===null)return Ct;if(t++,o=o[un],r.injectorIndex!==-1)return r.injectorIndex|t<<16}return Ct}function ol(e,n,t){Pw(e,n,t)}function jw(e,n){if(n===`class`)return e.classes;if(n===`style`)return e.styles;let t=e.attrs;if(t){let r=t.length,o=0;for(;o<r;){let i=t[o];if(np(i))break;if(i===0)o=o+2;else if(typeof i==`number`)for(o++;o<r&&typeof t[o]==`string`;)o++;else{if(i===n)return t[o+1];o=o+2}}}return null}function sp(e,n,t){if(t&8||e!==void 0)return e;Bo(n,`NodeInjector`)}function ap(e,n,t,r){if(t&8&&r===void 0&&(r=null),(t&3)===0){let o=e[ee],i=oe(void 0);try{return o?o.get(n,r,t&8):pa(n,r,t&8)}finally{oe(i)}}return sp(r,n,t)}function lp(e,n,t,r=0,o){if(e!==null){if(n[w]&2048&&!(r&2)){let s=Bw(e,n,t,r,Fe);if(s!==Fe)return s}let i=cp(e,n,t,r,Fe);if(i!==Fe)return i}return ap(n,t,r,o)}function cp(e,n,t,r,o){let i=Hw(t);if(typeof i==`function`){if(!Oa(n,e,r))return r&1?sp(o,t,r):ap(n,t,r,o);try{let s;if(s=i(r),s==null&&!(r&8))Bo(t);else return s}finally{La()}}else if(typeof i==`number`){let s=null,a=ip(e,n),l=Ct,c=r&1?n[de][se]:null;for((a===-1||r&4)&&(l=a===-1?Ol(e,n):n[a+8],l===Ct||!mf(r,!1)?a=-1:(s=n[v],a=Di(l),n=Ii(l,n)));a!==-1;){let u=n[v];if(pf(i,a,u.data)){let d=Fw(a,n,t,s,r,c);if(d!==Fe)return d}l=n[a+8],l!==Ct&&mf(r,n[v].data[a+8]===c)&&pf(i,a,n)?(s=u,a=Di(l),n=Ii(l,n)):a=-1}}return o}function Fw(e,n,t,r,o,i){let s=n[v],a=s.data[e+8],u=hi(a,s,t,r==null?Ye(a)&&rl:r!=s&&(a.type&3)!==0,o&1&&i===a);return u!==null?Tr(n,s,u,a,o):Fe}function hi(e,n,t,r,o){let i=e.providerIndexes,s=n.data,a=i&1048575,l=e.directiveStart,c=e.directiveEnd,u=i>>20,d=r?a:a+u,m=o?a+u:c;for(let p=d;p<m;p++){let g=s[p];if(p<l&&t===g||p>=l&&g.type===t)return p}if(o){let p=s[l];if(p&&Me(p)&&p.type===t)return l}return null}function Tr(e,n,t,r,o){let i=e[t],s=n.data;if(i instanceof Wn){let a=i;if(a.resolving)throw fa(``);let l=Ci(a.canSeeViewProviders);a.resolving=!0;s[t].type||s[t];let d=a.injectImpl?oe(a.injectImpl):null;Oa(e,r,0);try{i=e[t]=a.factory(void 0,o,s,e,r),n.firstCreatePass&&t>=r.directiveStart&&Nw(t,s[t],n)}finally{d!==null&&oe(d),Ci(l),a.resolving=!1,La()}}return i}function Hw(e){if(typeof e==`string`)return e.charCodeAt(0)||0;let n=Object.hasOwn(e,On)?e[On]:void 0;return typeof n==`number`?n>=0?n&rp:Vw:n}function pf(e,n,t){let r=1<<e;return!!(t[n+(e>>op)]&r)}function mf(e,n){return!(e&2)&&!(e&1&&n)}function Vw(){return new vn(H(),b())}function Uw(e){return ji(()=>{let n=e.prototype.constructor,t=n[Yt]||il(n),r=Object.prototype,o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){let i=o[Yt]||il(o);if(i&&i!==t)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function il(e){return aa(e)?()=>{let n=il(q(e));return n&&n()}:an(e)}function Bw(e,n,t,r,o){let i=e,s=n;for(;i!==null&&s!==null&&s[w]&2048&&!yt(s);){let a=cp(i,s,t,r|2,Fe);if(a!==Fe)return a;r&=-5;let l=i.parent;if(!l){let c=s[wa];if(c){let u=c.get(t,Fe,r);if(u!==Fe)return u}l=up(s),s=s[un]}i=l}return o}function up(e){let n=e[v],t=n.type;return t===2?n.declTNode:t===1?e[se]:null}function dp(e){return jw(H(),e)}function Lr(e){return{token:e.token,providedIn:e.autoProvided===!1?null:`root`,factory:e.factory,value:void 0}}function Ww(){return Rt(H(),b())}function Rt(e,n){return new Pr(we(e,n))}function pp(e){return e instanceof Pr?e.nativeElement:e}function Gw(){return this._results[Symbol.iterator]()}function mp(e){return(e.flags&128)===128}function Qw(){return Zw++}function Kw(e){gp.set(e[Pe],e)}function al(e){gp.delete(e[Pe])}function St(e,n){Ke(n)?(e[gf]=n[Pe],Kw(n)):e[gf]=n}function hp(e){return yp(e[ht])}function vp(e){return yp(e[ye])}function yp(e){for(;e!==null&&!be(e);)e=e[ye];return e}function Yw(e){ll=e}function bp(){if(ll!==void 0)return ll;if(typeof document<`u`)return document;throw new S(210,!1)}function Jw(e,n){if(e==null||typeof e!=`object`)return;let t=hf.get(e);t||(t=new WeakSet,hf.set(e,t)),t.add(n)}function eD(e,n,t,r){Xw(e,n,t,r)}function Fl(e){return(e.flags&32)===32}function Sp(e,n,t=!1){return nD(e,n,t)}function Hl(e){return e.get(Cp,!1,{optional:!0})}function kp(e,n){let t=e.contentQueries;if(t!==null){let r=y(null);try{for(let o=0;o<t.length;o+=2){let i=t[o],s=t[o+1];if(s!==-1){let a=e.data[s];hr(i),a.contentQueries(2,n[s],s)}}}finally{y(r)}}}function cl(e,n,t){hr(0);let r=y(null);try{n(e,t)}finally{y(r)}}function Vl(e,n,t){if(Da(n)){let r=y(null);try{let o=n.directiveStart,i=n.directiveEnd;for(let s=o;s<i;s++){let a=e.data[s];if(a.contentQueries){let l=t[s];a.contentQueries(1,l,s)}}}finally{y(r)}}}function rD(){if(fi===void 0&&(fi=null,ln.trustedTypes))try{fi=ln.trustedTypes.createPolicy(`angular#unsafe-bypass`,{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return fi}function vf(e){return rD()?.createScriptURL(e)||e}function kt(e){return e instanceof ki?e.changingThisBreaksApplicationSecurity:e}function Ul(e,n){let t=Tp(e);if(t!=null&&t!==n){if(t===`ResourceURL`&&n===`URL`)return!0;throw new Error(`Required a safe ${n}, got a ${t} (see ${jo})`)}return t===n}function Tp(e){return e instanceof ki&&e.getTypeName()||null}function Np(e){return e=String(e),e.match(oD)?e:`unsafe:`+e}function lD(e){return e.replace(iD,n=>n.replace(sD,aD))}function cD(e,n){return e.createText(n)}function uD(e,n,t){e.setValue(n,t)}function dD(e,n){return e.createComment(lD(n))}function Mp(e,n,t){return e.createElement(n,t)}function zn(e,n,t,r,o){e.insertBefore(n,t,r,o)}function xp(e,n,t){e.appendChild(n,t)}function yf(e,n,t,r,o){r!==null?zn(e,n,t,r,o):xp(e,n,t)}function Ap(e,n,t,r){e.removeChild(null,n,t,r)}function fD(e,n,t){e.setAttribute(n,`style`,t)}function pD(e,n,t){t===``?e.removeAttribute(n,`class`):e.setAttribute(n,`class`,t)}function _p(e,n,t){let{mergedAttrs:r,classes:o,styles:i}=t;r!==null&&_w(e,n,r),o!==null&&pD(e,n,o),i!==null&&fD(e,n,i)}function mD(e,n=!0){if(e[0]!=`:`)return[null,e];let t=e.indexOf(`:`,1);if(t===-1){if(n)throw new Error(`Unsupported format "${e}" expecting ":namespace:name"`);return[null,e]}return[e.slice(1,t),e.slice(t+1)]}function Rp(e){let n=Op();return n?n.sanitize(Q.URL,e)||``:Ul(e,`URL`)?kt(e):Np(Qe(e))}function $p(e){let n=Op();if(n)return vf(n.sanitize(Q.RESOURCE_URL,e)||``);if(Ul(e,`ResourceURL`))return vf(kt(e));throw new S(904,!1)}function gD(e,n){switch(vD(e,n)){case Q.RESOURCE_URL:return $p;case Q.URL:return Rp;default:return null}}function hD(e,n,t){return gD(n,t)?.(e)??e}function Op(){let e=b();return e&&e[Ne].sanitizer}function vD(e,n){let[t,r]=yD(e);return Td(r,n,t)}function yD(e){e=e.toLowerCase();let n=mD(e,!1);if(n[0])return n;let r=me()===-1?null:Un(),o=r?.namespace;if(e===`#host`&&r?.type===2){let i=we(r,b());if(i.tagName&&(e=i.tagName.toLowerCase()),o==null){let s=i.namespaceURI;o=s&&tD[s]}}return[o,e]}function bD(e){return e.ownerDocument.defaultView}function wD(e){return e.ownerDocument}function DD(e){return e instanceof Function?e():e}function ID(e,n,t){let r=e.length;for(;;){let o=e.indexOf(n,t);if(o===-1)return o;if(o===0||e.charCodeAt(o-1)<=32){let i=n.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}t=o+1}}function CD(e,n,t,r){let o=0;if(r){for(;o<n.length&&typeof n[o]==`string`;o+=2)if(n[o]===`class`&&ID(n[o+1].toLowerCase(),t,0)!==-1)return!0}else if(Bl(e))return!1;if(o=n.indexOf(1,o),o>-1){let i;for(;++o<n.length&&typeof(i=n[o])==`string`;)if(i.toLowerCase()===t)return!0}return!1}function Bl(e){return e.type===4&&e.value!==Lp}function ED(e,n,t){return n===(e.type===4&&!t?Lp:e.value)}function SD(e,n,t){let r=4,o=e.attrs,i=o!==null?ND(o):0,s=!1;for(let a=0;a<n.length;a++){let l=n[a];if(typeof l==`number`){if(!s&&!xe(r)&&!xe(l))return!1;if(s&&xe(l))continue;s=!1,r=l|r&1;continue}if(!s)if(r&4){if(r=2|r&1,l!==``&&!ED(e,l,t)||l===``&&n.length===1){if(xe(r))return!1;s=!0}}else if(r&8){if(o===null||!CD(e,o,l,t)){if(xe(r))return!1;s=!0}}else{let c=n[++a],u=kD(l,o,Bl(e),t);if(u===-1){if(xe(r))return!1;s=!0;continue}if(c!==``){let d;if(u>i?d=``:d=o[u+1].toLowerCase(),r&2&&c!==d){if(xe(r))return!1;s=!0}}}}return xe(r)||s}function xe(e){return(e&1)===0}function kD(e,n,t,r){if(n===null)return-1;let o=0;if(r||!t){let i=!1;for(;o<n.length;){let s=n[o];if(s===e)return o;if(s===3||s===6)i=!0;else if(s===1||s===2){let a=n[++o];for(;typeof a==`string`;)a=n[++o];continue}else{if(s===4)break;if(s===0){o+=4;continue}}o+=i?1:2}return-1}else return MD(n,e)}function TD(e,n,t=!1){for(let r=0;r<n.length;r++)if(SD(e,n[r],t))return!0;return!1}function ND(e){for(let n=0;n<e.length;n++){let t=e[n];if(np(t))return n}return e.length}function MD(e,n){let t=e.indexOf(4);if(t>-1)for(t++;t<e.length;){let r=e[t];if(typeof r==`number`)return-1;if(r===n)return t;t++}return-1}function bf(e,n){return e?`:not(`+n.trim()+`)`:n}function xD(e){let n=e[0],t=1,r=2,o=``,i=!1;for(;t<e.length;){let s=e[t];if(typeof s==`string`)if(r&2){let a=e[++t];o+=`[`+s+(a.length>0?`="`+a+`"`:``)+`]`}else r&8?o+=`.`+s:r&4&&(o+=` `+s);else o!==``&&!xe(s)&&(n+=bf(i,o),o=``),r=s,i=i||!xe(r);t++}return o!==``&&(n+=bf(i,o)),n}function AD(e){return e.map(xD).join(`,`)}function _D(e){let n=[],t=[],r=1,o=2;for(;r<e.length;){let i=e[r];if(typeof i==`string`)o===2?i!==``&&n.push(i,e[++r]):o===8&&t.push(i);else{if(!xe(o))break;o=i}r++}return t.length&&n.push(1,...t),n}function zl(e,n){return RD(e,n)}function Pp(e){return e?e[un]??e:null}function $D(e,n,t){let r=ul.get(e);if(!r||r.length===0)return;let o=n.parentNode,i=n.previousSibling,s=Pp(t);for(let a=r.length-1;a>=0;a--){let{el:l,declarationView:c}=r[a],u=l.parentNode;l===n?(r.splice(a,1),Er.add(l),l.dispatchEvent(new CustomEvent(`animationend`,{detail:{cancel:!0}}))):i&&l===i?(r.splice(a,1),l.dispatchEvent(new CustomEvent(`animationend`,{detail:{cancel:!0}})),l.parentNode?.removeChild(l)):u&&o&&u!==o&&(s===null||c===null||s===c)&&(r.splice(a,1),l.dispatchEvent(new CustomEvent(`animationend`,{detail:{cancel:!0}})),l.parentNode?.removeChild(l))}}function OD(e,n,t){let r=Pp(t),o=ul.get(e);o?o.some(i=>i.el===n)||o.push({el:n,declarationView:r}):ul.set(e,[{el:n,declarationView:r}])}function Xe(e){wf.has(e)||(wf.add(e),performance?.mark?.(`mark_feature_usage`,{detail:{feature:e}}))}function LD(e,n){let t=n?.injector??I(Se);return Xe(`NgAfterNextRender`),jD(e,t,n,!0)}function PD(e){return e instanceof Function?[void 0,void 0,e,void 0]:[e.earlyRead,e.write,e.mixedReadWrite,e.read]}function jD(e,n,t,r){let o=n.get(Hi);o.impl??=n.get(Wl);let i=n.get(Qn,null,{optional:!0}),s=t?.manualCleanup!==!0?n.get(ve):null,a=n.get(Dt,null,{optional:!0}),l=new Nr(o.impl,PD(e),a?.view,r,s,i?.snapshot(null));return o.impl.register(l),l}function jp(e,n,t){let r=e.get(Gl);if(Array.isArray(n))for(let o of n)r.queue.add(o),t?.detachedLeaveAnimationFns?.push(o);else r.queue.add(n),t?.detachedLeaveAnimationFns?.push(n);r.scheduler&&r.scheduler(e)}function FD(e,n){let t=e.get(Gl);if(Array.isArray(n))for(let r of n)t.queue.delete(r);else t.queue.delete(n)}function HD(e,n){let t=e.get(Gl);if(n.detachedLeaveAnimationFns){for(let r of n.detachedLeaveAnimationFns)t.queue.delete(r);n.detachedLeaveAnimationFns=void 0}}function VD(e,n){for(let[t,r]of n)jp(e,r.animateFns)}function Df(e,n,t,r){let o=e?.[je]?.enter;n!==null&&o&&o.has(t.index)&&VD(r,o)}function If(e,n,t,r){try{t.get(lr)}catch{return r(!1)}let o=e?.[je];o?.enter?.has(n.index)&&FD(t,o.enter.get(n.index).animateFns);let i=UD(e,n,o);if(i.size===0){let s=!1;if(e){let a=[];Vi(e,n,a),s=a.length>0}if(!s)return r(!1)}e&&Tt.add(e[Pe]),jp(t,()=>BD(e,n,o||void 0,i,r),o||void 0)}function UD(e,n,t){let r=new Map,o=t?.leave;if(o&&o.has(n.index)&&r.set(n.index,o.get(n.index)),e&&o)for(let[i,s]of o){if(r.has(i))continue;let l=e[v].data[i].parent;for(;l;){if(l===n){r.set(i,s);break}l=l.parent}}return r}function BD(e,n,t,r,o){let i=[];if(t&&t.leave)for(let[s]of r){if(!t.leave.has(s))continue;let a=t.leave.get(s);for(let l of a.animateFns){let{promise:c}=l();i.push(c)}t.detachedLeaveAnimationFns=void 0}if(e&&Vi(e,n,i),i.length>0){let s=t||e?.[je];if(s){let a=s.running;a&&i.push(a),s.running=Promise.allSettled(i),qD(e,s.running,o)}else Promise.allSettled(i).then(()=>{e&&Tt.delete(e[Pe]),o(!0)})}else e&&Tt.delete(e[Pe]),o(!1)}function Vi(e,n,t){if(n.type&12){let o=e[n.index];if(be(o))for(let i=P;i<o.length;i++){let s=o[i];s[v].type===2&&zD(s,t)}}let r=n.child;for(;r;)Vi(e,r,t),r=r.next}function zD(e,n){let t=e[je];if(t&&t.leave)for(let o of t.leave.values())for(let i of o.animateFns){let{promise:s}=i();n.push(s)}let r=e[v].firstChild;for(;r;)Vi(e,r,n),r=r.next}function qD(e,n,t){n.then(()=>{e[je]?.running===n&&(e[je].running=void 0,Tt.delete(e[Pe])),t(!0)})}function It(e,n,t,r,o,i,s,a){if(o!=null){let l,c=!1;be(o)?l=o:Ke(o)&&(c=!0,o=o[Te]);let u=K(o);e===0&&r!==null?(Df(a,r,i,t),s==null?xp(n,r,u):zn(n,r,u,s||null,!0)):e===1&&r!==null?(Df(a,r,i,t),zn(n,r,u,s||null,!0),$D(i,u,a)):e===2?(a?.[je]?.leave?.has(i.index)&&OD(i,u,a),Er.delete(u),If(a,i,t,d=>{if(Er.has(u)){Er.delete(u);return}Ap(n,u,c,d)})):e===3&&(Er.delete(u),If(a,i,t,()=>{n.destroyNode(u)})),l!=null&&oI(n,e,t,l,i,r,s)}}function WD(e,n){Fp(e,n),n[Te]=null,n[se]=null}function GD(e,n,t,r,o,i){r[Te]=o,r[se]=n,Bi(e,r,t,1,o,i)}function Fp(e,n){n[Ne].changeDetectionScheduler?.notify(9),Bi(e,n,n[O],2,null,null)}function ZD(e){let n=e[ht];if(!n)return qa(e[v],e);for(;n;){let t=null;if(Ke(n))t=n[ht];else{let r=n[P];r&&(t=r)}if(!t){for(;n&&!n[ye]&&n!==e;)Ke(n)&&qa(n[v],n),n=n[B];n===null&&(n=e),Ke(n)&&qa(n[v],n),t=n&&n[ye]}n=t}}function Zl(e,n){let t=e[Fn],r=t.indexOf(n);t.splice(r,1)}function Ui(e,n){if(pn(n))return;let t=n[O];t.destroyNode&&Bi(e,n,t,3,null,null),ZD(n)}function qa(e,n){if(pn(n))return;let t=y(null);try{n[w]&=-129,n[w]|=256,n[fe]&&tn(n[fe]),KD(e,n),QD(e,n),n[v].type===1&&n[O].destroy();let r=n[dn];if(r!==null&&be(n[B])){r!==n[B]&&Zl(r,n);let o=n[Le];o!==null&&o.detachView(e)}al(n)}finally{y(t)}}function QD(e,n){let t=e.cleanup,r=n[gt];if(t!==null)for(let s=0;s<t.length-1;s+=2)if(typeof t[s]==`string`){let a=t[s+3];a>=0?r[a]():r[-a].unsubscribe(),s+=2}else{let a=r[t[s+1]];t[s].call(a)}r!==null&&(n[gt]=null);let o=n[ze];if(o!==null){n[ze]=null;for(let s=0;s<o.length;s++){let a=o[s];a()}}let i=n[qe];if(i!==null){n[qe]=null;for(let s of i)s.destroy()}}function KD(e,n){let t;if(e!=null&&(t=e.destroyHooks)!=null)for(let r=0;r<t.length;r+=2){let o=n[t[r]];if(!(o instanceof Wn)){let i=t[r+1];if(Array.isArray(i))for(let s=0;s<i.length;s+=2){let a=o[i[s]],l=i[s+1];x(N.LifecycleHookStart,a,l);try{l.call(a)}finally{x(N.LifecycleHookEnd,a,l)}}else{x(N.LifecycleHookStart,o,i);try{i.call(o)}finally{x(N.LifecycleHookEnd,o,i)}}}}}function YD(e,n,t){if(n===null)throw new S(510,!1);return JD(e,n.parent,t)}function JD(e,n,t){let r=n;for(;r!==null&&r.type&168;)n=r,r=n.parent;if(r===null)return t[Te];if(Ye(r)){let{encapsulation:o}=e.data[r.directiveStart+r.componentOffset];if(o===Gn.None||o===Gn.Emulated)return null}return we(r,t)}function XD(e,n,t){return nI(e,n,t)}function eI(e,n,t){return e.type&40?we(e,t):null}function Ql(e,n,t,r){let o=YD(e,r,n),i=n[O],a=XD(r.parent||n[se],r,n);if(o!=null)if(Array.isArray(t))for(let l=0;l<t.length;l++)yf(i,o,t[l],a,!1);else yf(i,o,t,a,!1);Cf!==void 0&&Cf(i,r,n,t,o)}function Sr(e,n){if(n!==null){let t=n.type;if(t&3)return we(n,e);if(t&4)return dl(-1,e[n.index]);if(t&8){let r=n.child;if(r!==null)return Sr(e,r);{let o=e[n.index];return be(o)?dl(-1,o):K(o)}}else{if(t&128)return Sr(e,n.next);if(t&32)return zl(n,e)()||K(e[n.index]);{let r=Hp(e,n);if(r!==null){if(Array.isArray(r))return r[0];return Sr(We(e[de]),r)}else return Sr(e,n.next)}}}return null}function Hp(e,n){if(n!==null){let r=e[de][se],o=n.projection;return r.projection[o]}return null}function dl(e,n){let t=P+e+1;if(t<n.length){let r=n[t],o=r[v].firstChild;if(o!==null)return Sr(r,o)}return n[jn]}function Kl(e,n,t,r,o,i,s){for(;t!=null;){let a=r[ee];if(t.type===128){t=t.next;continue}let l=r[t.index],c=t.type;if(s&&n===0&&(l&&St(K(l),r),t.flags|=2),!Fl(t))if(c&8)Kl(e,n,t.child,r,o,i,!1),It(n,e,a,o,l,t,i,r);else if(c&32){let u=zl(t,r),d;for(;d=u();)It(n,e,a,o,d,t,i,r);It(n,e,a,o,l,t,i,r)}else c&16?rI(e,n,r,t,o,i):It(n,e,a,o,l,t,i,r);t=s?t.projectionNext:t.next}}function Bi(e,n,t,r,o,i){e.type===3?tI(t,r,n,o,i):Kl(t,r,e.firstChild,n,o,i,!1)}function tI(e,n,t,r,o){let s=t[v].firstChild,a=s.next,l=K(t[s.index]),c=K(t[a.index]),u=a.index+1,d=t[u];if(n===1||n===0)r!==null&&(d&&d.hasChildNodes()?zn(e,r,d,o,!0):(zn(e,r,l,o,!0),zn(e,r,c,o,!0)));else if(n===2){if(d||(d=document.createDocumentFragment(),t[u]=d),l&&l.parentNode===d)return;let m=l;for(;m!==null;){let p=m.nextSibling;if(d.appendChild(m),m===c)break;m=p}}}function rI(e,n,t,r,o,i){let s=t[de],l=s[se].projection[r.projection];if(Array.isArray(l))for(let c=0;c<l.length;c++){let u=l[c];It(n,e,t[ee],o,u,r,i,t)}else{let c=l,u=s[B];mp(r)&&(c.flags|=128),Kl(e,n,c,u,o,i,!0)}}function oI(e,n,t,r,o,i,s){let a=r[jn];if(a!==K(r)&&It(n,e,t,i,a,o,s),(r[w]&4)===0)for(let c=P;c<r.length;c++){let u=r[c];Bi(u[v],u,e,n,i,a)}}function iI(e,n,t,r,o){if(n)o?e.addClass(t,r):e.removeClass(t,r);else{let i=r.indexOf(`-`)===-1?void 0:Ti.DashCase;o==null?e.removeStyle(t,r,i):(typeof o==`string`&&o.endsWith(`!important`)&&(o=o.slice(0,-10),i|=Ti.Important),e.setStyle(t,r,o,i))}}function Yl(e,n,t,r,o,i,s,a,l,c,u){let d=L+r,m=d+o,p=sI(d,m),g=typeof c==`function`?c():c;return p[v]={type:e,blueprint:p,template:t,queries:null,viewQuery:a,declTNode:n,data:p.slice().fill(null,d),bindingStartIndex:d,expandoStartIndex:m,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:typeof i==`function`?i():i,pipeRegistry:typeof s==`function`?s():s,firstChild:null,schemas:l,consts:g,incompleteFirstPass:!1,ssrId:u}}function sI(e,n){let t=[];for(let r=0;r<n;r++)t.push(r<e?null:Y);return t}function aI(e){let n=e.tView;return n===null||n.incompleteFirstPass?e.tView=Yl(1,null,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts,e.id):n}function Jl(e,n,t,r,o,i,s,a,l,c,u){let d=n.blueprint.slice();return d[Te]=o,d[w]=r|1228,(c!==null||e&&e[w]&2048)&&(d[w]|=2048),Ca(d),d[B]=d[un]=e,d[F]=t,d[Ne]=s||e&&e[Ne],d[O]=a||e&&e[O],d[ee]=l||e&&e[ee]||null,d[se]=i,d[Pe]=Qw(),d[mt]=u,d[wa]=c,d[de]=n.type==2?e[de]:d,d}function lI(e,n,t){let r=we(n,e),o=aI(t),i=e[Ne].rendererFactory,s=Xl(e,Jl(e,o,null,Vp(t),r,n,null,i.createRenderer(r,t),null,null,null));return e[n.index]=s}function Vp(e){let n=16;return e.signals?n=4096:e.onPush&&(n=64),n}function Up(e,n,t,r){if(t===0)return-1;let o=n.length;for(let i=0;i<t;i++)n.push(r),e.blueprint.push(r),e.data.push(null);return o}function Xl(e,n){return e[ht]?e[ba][ye]=n:e[ht]=n,e[ba]=n,n}function ec(e=1){Bp($(),b(),me()+e,!1)}function Bp(e,n,t,r){if(!r)if((n[w]&3)===3){let i=e.preOrderCheckHooks;i!==null&&mi(n,i,t)}else{let i=e.preOrderHooks;i!==null&&gi(n,i,0,t)}mn(t)}function fl(e,n,t,r){let o=y(null);try{let[i,s,a]=e.inputs[t],l=null;(s&zi.SignalBased)!==0&&(l=n[i][j]),l!==null&&l.transformFn!==void 0?r=l.transformFn(r):a!==null&&(r=a.call(n,r)),e.setInput!==null?e.setInput(n,l,r,t,i):Kf(n,l,i,r)}finally{y(o)}}function zp(e,n,t,r,o){let i=me(),s=r&2;try{mn(-1),s&&n.length>L&&Bp(e,n,L,!1);let a=s?N.TemplateUpdateStart:N.TemplateCreateStart;x(a,o,t),t(r,o)}finally{mn(i);let a=s?N.TemplateUpdateEnd:N.TemplateCreateEnd;x(a,o,t)}}function qi(e,n,t){mI(e,n,t),(t.flags&64)===64&&gI(e,n,t)}function jr(e,n,t=we){let r=n.localNames;if(r!==null){let o=n.index+1;for(let i=0;i<r.length;i+=2){let s=r[i+1],a=s===-1?t(n,e):e[s];e[o++]=a}}}function cI(e,n,t,r){let i=r.get(Ip,Dp)||t===Gn.ShadowDom||t===Gn.ExperimentalIsolatedShadowDom,s=e.selectRootElement(n,i);return uI(s),s}function uI(e){dI(e)}function fI(e){return e===`class`?`className`:e===`for`?`htmlFor`:e===`formaction`?`formAction`:e===`innerHtml`?`innerHTML`:e===`readonly`?`readOnly`:e===`tabindex`?`tabIndex`:e}function qp(e,n,t,r,o,i){let s=n[v];if(ic(e,s,n,t,r)){Ye(e)&&pI(n,e.index);return}e.type&3&&(t=fI(t)),Wp(e,n,t,r,o,i)}function Wp(e,n,t,r,o,i){if(e.type&3){let s=we(e,n);r=i!=null?i(r,e.value||``,t):r,o.setProperty(s,t,r)}else e.type&12}function pI(e,n){let t=De(n,e);t[w]&16||(t[w]|=64)}function mI(e,n,t){let r=t.directiveStart,o=t.directiveEnd;Ye(t)&&lI(n,t,e.data[r+t.componentOffset]),e.firstCreatePass||Ei(t,n);let i=t.initialInputs;for(let s=r;s<o;s++){let a=e.data[s],l=Tr(n,e,s,t);if(St(l,n),i!==null&&bI(n,s-r,l,a,t,i),Me(a)){let c=De(t.index,n);c[F]=Tr(n,e,s,t)}}}function gI(e,n,t){let r=t.directiveStart,o=t.directiveEnd,i=t.index,s=Ud();try{mn(i);for(let a=r;a<o;a++){let l=e.data[a],c=n[a];ri(a),(l.hostBindings!==null||l.hostVars!==0||l.hostAttrs!==null)&&hI(l,c)}}finally{mn(-1),ri(s)}}function hI(e,n){e.hostBindings!==null&&e.hostBindings(1,n)}function nc(e,n){let t=e.directiveRegistry,r=null;if(t)for(let o=0;o<t.length;o++){let i=t[o];TD(n,i.selectors,!1)&&(r??=[],Me(i)?r.unshift(i):r.push(i))}return r}function vI(e,n,t,r,o,i){let s=we(e,n);yI(n[O],s,i,e.value,t,r,o)}function yI(e,n,t,r,o,i,s){if(i==null)s?.(i,r||``,o),e.removeAttribute(n,o,t);else{let a=s==null?Qe(i):s(i,r||``,o);e.setAttribute(n,o,a,t)}}function bI(e,n,t,r,o,i){let s=i[n];if(s!==null)for(let a=0;a<s.length;a+=2){let l=s[a],c=s[a+1];fl(r,t,l,c)}}function tc(e,n,t,r,o){let i=L+t,s=n[v],a=o(s,n,e,r,t);n[i]=a,Vn(e,!0);let l=e.type===2;return l?(_p(n[O],a,e),(_d()===0||vt(e))&&St(a,n),Rd()):St(a,n),ai()&&(!l||!Fl(e))&&Ql(s,n,a,e),e}function rc(e){let n=e;return Aa()?jd():(n=n.parent,Vn(n,!1)),n}function oc(e,n){let t=e[ee];if(!t)return;let r;try{r=t.get(gn,null)}catch{r=null}r?.(n)}function ic(e,n,t,r,o){let i=e.inputs?.[r],s=e.hostDirectiveInputs?.[r],a=!1;if(s)for(let l=0;l<s.length;l+=2){let c=s[l],u=s[l+1],d=n.data[c];fl(d,t[c],u,o),a=!0}if(i)for(let l of i){let c=t[l],u=n.data[l];fl(u,c,r,o),a=!0}return a}function wI(e,n){let t=De(n,e),r=t[v];DI(r,t);let o=t[Te];o!==null&&t[mt]===null&&(t[mt]=Sp(o,t[ee])),x(N.ComponentStart);try{sc(r,t,t[F])}finally{x(N.ComponentEnd,t[F])}}function DI(e,n){for(let t=n.length;t<e.blueprint.length;t++)n.push(e.blueprint[t])}function sc(e,n,t){ii(n);try{let r=e.viewQuery;r!==null&&cl(1,r,t);let o=e.template;o!==null&&zp(e,n,o,1,t),e.firstCreatePass&&(e.firstCreatePass=!1),n[Le]?.finishViewCreation(e),e.staticContentQueries&&kp(e,n),e.staticViewQueries&&cl(2,e.viewQuery,t);let i=e.components;i!==null&&II(n,i)}catch(r){throw e.firstCreatePass&&(e.incompleteFirstPass=!0,e.firstCreatePass=!1),r}finally{n[w]&=-5,si()}}function II(e,n){for(let t=0;t<n.length;t++)wI(e,n[t])}function Fr(e,n,t,r){let o=y(null);try{let i=n.tView,l=Jl(e,i,t,e[w]&4096?4096:16,null,n,null,null,r?.injector??null,r?.embeddedViewInjector??null,r?.dehydratedView??null);l[dn]=e[n.index];let u=e[Le];return u!==null&&(l[Le]=u.createEmbeddedView(i)),sc(i,l,t),l}finally{y(o)}}function Nt(e,n){return!n||n.firstChild===null||mp(e)}function Mr(e,n,t,r,o=!1){if(e.type===3){let i=e.firstChild,s=i.next,a=K(n[i.index]),l=K(n[s.index]),c=a;for(;c!==null&&(r.push(c),c!==l);)c=c.nextSibling;return r}for(;t!==null;){if(t.type===128){t=o?t.projectionNext:t.next;continue}let i=n[t.index];if(i!==null)if(be(i)){let a=i[jn];a!==i[Te]&&r.push(K(i)),i[w]&4||Gp(i,r),r.push(a)}else r.push(K(i));let s=t.type;if(s&8)Mr(e,n,t.child,r);else if(s&32){let a=zl(t,n),l;for(;l=a();)r.push(l)}else if(s&16){let a=Hp(n,t);if(Array.isArray(a))r.push(...a);else{let l=We(n[de]);Mr(l[v],l,a,r,!0)}}t=o?t.projectionNext:t.next}return r}function Gp(e,n){for(let t=P;t<e.length;t++){let r=e[t],o=r[v].firstChild;o!==null&&Mr(r[v],r,o,n)}}function Zp(e){if(e[Pn]!==null){for(let n of e[Pn])n.impl.addSequence(n);e[Pn].length=0}}function CI(e){return e[fe]??EI(e)}function EI(e){let n=Qp.pop()??Object.create(kI);return n.lView=e,n}function SI(e){e.lView[fe]!==e&&(e.lView=null,Qp.push(e))}function TI(e){let n=e[fe]??Object.create(NI);return n.lView=e,n}function Kp(e){return e.type!==2}function Yp(e){if(e[qe]===null)return;let n=!0;for(;n;){let t=!1;for(let r of e[qe])if(r.dirty&&(t=!0,r.zone===null||Zone.current===r.zone?r.run():r.zone.run(()=>r.run()),e[qe]===null))return;n=t&&!!(e[w]&8192)}}function Jp(e,n=0){let r=e[Ne].rendererFactory;r.begin?.();try{xI(e,n)}finally{r.end?.()}}function xI(e,n){let t=Ra();try{Jt(!0),pl(e,n);let r=0;for(;pr(e);){if(r===MI)throw new S(103,!1);r++,pl(e,1)}}finally{Jt(t)}}function AI(e,n,t,r){if(pn(n))return;let o=n[w];ii(n);let a=!0,l=null,c=null;Kp(e)?(c=CI(n),l=Ve(c)):Jr()===null?(a=!1,c=TI(n),l=Ve(c)):n[fe]&&(tn(n[fe]),n[fe]=null);try{Ca(n),Fd(e.bindingStartIndex),t!==null&&zp(e,n,t,2,r);let u=(o&3)===3;if(u){let p=e.preOrderCheckHooks;p!==null&&mi(n,p,null)}else{let p=e.preOrderHooks;p!==null&&gi(n,p,0,null),Ba(n,0)}if(_I(n),Yp(n),Xp(n,0),e.contentQueries!==null&&kp(e,n),true)if(u){let p=e.contentCheckHooks;p!==null&&mi(n,p)}else{let p=e.contentHooks;p!==null&&gi(n,p,1),Ba(n,1)}$I(e,n);let d=e.components;d!==null&&nm(n,d,0);let m=e.viewQuery;if(m!==null&&cl(2,m,r),true)if(u){let p=e.viewCheckHooks;p!==null&&mi(n,p)}else{let p=e.viewHooks;p!==null&&gi(n,p,2),Ba(n,2)}if(e.firstUpdatePass===!0&&(e.firstUpdatePass=!1),n[Qo]){for(let p of n[Qo])p();n[Qo]=null}Zp(n),n[w]&=-73}catch(u){throw Hn(n),u}finally{c!==null&&(nn(c,l),a&&SI(c)),si()}}function Xp(e,n){for(let t=hp(e);t!==null;t=vp(t))for(let r=P;r<t.length;r++){let o=t[r];em(o,n)}}function _I(e){for(let n=hp(e);n!==null;n=vp(n)){if(!(n[w]&2))continue;let t=n[Fn];for(let r=0;r<t.length;r++){let o=t[r];Xo(o)}}}function RI(e,n,t){x(N.ComponentStart);let r=De(n,e);try{em(r,t)}finally{x(N.ComponentEnd,r[F])}}function em(e,n){Jo(e)&&pl(e,n)}function pl(e,n){let r=e[v],o=e[w],i=e[fe],s=!!(n===0&&o&16);if(s||=!!(o&64&&n===0),s||=!!(o&1024),s||=!!(i?.dirty&&Jn(i)),s||=!1,i&&(i.dirty=!1),e[w]&=-9217,s)AI(r,e,r.template,e[F]);else if(o&8192){let a=y(null);try{Yp(e),Xp(e,1);let l=r.components;l!==null&&nm(e,l,1),Zp(e)}finally{y(a)}}}function nm(e,n,t){for(let r=0;r<n.length;r++)RI(e,n[r],t)}function $I(e,n){let t=e.hostBindingOpCodes;if(t!==null)try{for(let r=0;r<t.length;r++){let o=t[r];if(o<0)mn(~o);else{let i=o,s=t[++r],a=t[++r];Vd(s,i);let l=n[i];x(N.HostBindingsUpdateStart,l);try{a(2,l)}finally{x(N.HostBindingsUpdateEnd,l)}}}}finally{mn(-1)}}function ac(e,n){let t=Ra()?64:1088;for(e[Ne].changeDetectionScheduler?.notify(n);e;){e[w]|=t;let r=We(e);if(yt(e)&&!r)return e;e=r}return null}function tm(e,n,t,r){return[e,!0,0,n,null,r,null,t,null,null]}function rm(e,n){let t=P+n;if(t<e.length)return e[t]}function Hr(e,n,t,r=!0){let o=n[v];if(OI(o,n,e,t),r){let s=dl(t,e),a=n[O],l=a.parentNode(e[jn]);l!==null&&GD(o,e[se],a,n,l,s)}let i=n[mt];i!==null&&i.firstChild!==null&&(i.firstChild=null)}function lc(e,n){let t=xr(e,n);return t!==void 0&&Ui(t[v],t),t}function xr(e,n){if(e.length<=P)return;let t=P+n,r=e[t];if(r){let o=r[dn];o!==null&&o!==e&&Zl(o,r),n>0&&(e[t-1][ye]=r[ye]);let i=ar(e,P+n);WD(r[v],r);let s=i[Le];s!==null&&s.detachView(i[v]),r[B]=null,r[ye]=null,r[w]&=-129}return r}function OI(e,n,t,r){let o=P+r,i=t.length;r>0&&(t[o-1][ye]=n),r<i-P?(n[ye]=t[o],ma(t,P+r,n)):(t.push(n),n[ye]=null),n[B]=t;let s=n[dn];s!==null&&t!==s&&om(s,n);let a=n[Le];a!==null&&a.insertView(e),ei(n),n[w]|=128}function om(e,n){let t=e[Fn],r=n[B];if(Ke(r))e[w]|=2;else{let o=r[B][de];n[de]!==o&&(e[w]|=2)}t===null?e[Fn]=[n]:t.push(n)}function LI(){return Wi(H(),b())}function Wi(e,n){return e.type&4?new Ar(n,e,Rt(e,n)):null}function $t(e,n,t,r,o){let i=e.data[n];if(i===null)i=PI(e,n,t,r,o),Hd()&&(i.flags|=32);else if(i.type&64){i.type=t,i.value=r,i.attrs=o;let s=Pd();i.injectorIndex=s===null?-1:s.injectorIndex}return Vn(i,!0),i}function PI(e,n,t,r,o){let i=xa(),s=Aa(),a=s?i:i&&i.parent,l=e.data[n]=FI(e,a,t,n,r,o);return jI(e,l,i,s),l}function jI(e,n,t,r){e.firstChild===null&&(e.firstChild=n),t!==null&&(r?t.child==null&&n.parent!==null&&(t.child=n):t.next===null&&(t.next=n,n.prev=t))}function FI(e,n,t,r,o,i){let s=n?n.injectorIndex:-1,a=0;return $d()&&(a|=128),{type:t,index:r,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,controlDirectiveIndex:-1,customControlIndex:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,namespace:Pa(),attrs:i,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:n,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function HI(e){let n=e[fn]??[],r=e[B][O],o=[];for(let i of n)i.data[Pl]!==void 0?o.push(i):VI(i,r);e[fn]=o}function VI(e,n){let t=0,r=e.firstChild;if(r){let o=e.data[wp];for(;t<o;){let i=r.nextSibling;Ap(n,r,!1),r=i,t++}}}function ml(e,n){return UI(e,n)}function im(e,n,t){return BI(e,n,t)}function zI(){let e=b(),t=De(H().index,e);return(Ke(t)?t:e)[O]}function lm(e){return e.debugInfo?.className||e.type.name||null}function cc(e,n,t){return e[n]=t}function qI(e,n){return e[n]}function le(e,n,t){if(t===Y)return!1;let r=e[n];return Object.is(r,t)?!1:(e[n]=t,!0)}function uc(e,n,t,r){let o=le(e,n,t);return le(e,n+1,r)||o}function WI(e,n,t,r,o){let i=uc(e,n,t,r);return le(e,n+2,o)||i}function yi(e,n,t){return function r(o){let i=r.__ngNativeEl__;i!==void 0&&Jw(o,i);ac(Ye(e)?De(e.index,n):n,5);let a=n[F],l=Ef(n,a,t,o),c=r.__ngNextListenerFn__;for(;c;)l=Ef(n,a,c,o)&&l,c=c.__ngNextListenerFn__;return l}}function Ef(e,n,t,r){let o=y(null);try{return x(N.OutputStart,n,t),t(r)!==!1}catch(i){return oc(e,i),!1}finally{x(N.OutputEnd,n,t),y(o)}}function cm(e,n,t,r,o,i,s,a){let l=vt(e),c=!1,u=null;if(!r&&l&&(u=ZI(n,t,i,e.index)),u!==null){let d=u.__ngLastListenerFn__||u;d.__ngNextListenerFn__=s,u.__ngLastListenerFn__=s,c=!0}else{let d=we(e,t),m=r?r(d):d;eD(t,m,i,a),r||(a.__ngNativeEl__=d);let p=o.listen(m,i,a);if(!GI(i))um(r?h=>r(K(h[e.index])):e.index,n,t,i,a,p,!1)}return c}function GI(e){return e.startsWith(`animation`)||e.startsWith(`transition`)}function ZI(e,n,t,r){let o=e.cleanup;if(o!=null)for(let i=0;i<o.length-1;i+=2){let s=o[i];if(s===t&&o[i+1]===r){let a=n[gt],l=o[i+2];return a&&a.length>l?a[l]:null}typeof s==`string`&&(i+=2)}return null}function um(e,n,t,r,o,i,s){let a=n.firstCreatePass?ka(n):null,l=Sa(t),c=l.length;l.push(o,i),a&&a.push(r,e,c,(c+1)*(s?-1:1))}function Sf(e,n,t,r,o,i){let s=n[t],a=n[v],d=s[a.data[t].outputs[r]].subscribe(i);um(e.index,a,n,o,i,d,!0)}function Ni(e,n,t){let r=t?e.styles:null,o=t?e.classes:null,i=0;if(n!==null)for(let s=0;s<n.length;s++){let a=n[s];if(typeof a==`number`)i=a;else if(i==1)o=Fo(o,a);else if(i==2){let l=a,c=n[++s];r=Fo(r,l+`: `+c+`;`)}}t?e.styles=r:e.stylesWithoutHost=r,t?e.classes=o:e.classesWithoutHost=o}function Vr(e,n=0){let t=b();if(t===null)return $e(e,n);return lp(H(),t,q(e),n)}function QI(){throw new Error(`invalid`)}function fm(e,n,t,r,o){let i=r===null?null:{"":-1},s=o(e,t);if(s!==null){let a=s,l=null,c=null;for(let u of s)if(u.resolveHostDirectives!==null){[a,l,c]=u.resolveHostDirectives(s);break}JI(e,n,t,a,i,l,c)}i!==null&&r!==null&&KI(t,r,i)}function KI(e,n,t){let r=e.localNames=[];for(let o=0;o<n.length;o+=2){let i=t[n[o+1]];if(i==null)throw new S(-301,!1);r.push(n[o],i)}}function YI(e,n,t){n.componentOffset=t,(e.components??=[]).push(n.index)}function JI(e,n,t,r,o,i,s){let a=r.length,l=null;for(let m=0;m<a;m++){let p=r[m];l===null&&Me(p)&&(l=p,YI(e,t,m)),ol(Ei(t,n),e,p.type)}oC(t,e.data.length,a),l?.viewProvidersResolver&&l.viewProvidersResolver(l);for(let m=0;m<a;m++){let p=r[m];p.providersResolver&&p.providersResolver(p)}let c=!1,u=!1,d=Up(e,n,a,null);a>0&&(t.directiveToIndex=new Map);for(let m=0;m<a;m++){let p=r[m];if(t.mergedAttrs=Et(t.mergedAttrs,p.hostAttrs),eC(e,t,n,d,p),rC(d,p,o),s!==null&&s.has(p)){let[h,k]=s.get(p);t.directiveToIndex.set(p.type,[d,h+t.directiveStart,k+t.directiveStart])}else(i===null||!i.has(p))&&t.directiveToIndex.set(p.type,d);p.contentQueries!==null&&(t.flags|=4),(p.hostBindings!==null||p.hostAttrs!==null||p.hostVars!==0)&&(t.flags|=64);let g=p.type.prototype;!c&&(g.ngOnChanges||g.ngOnInit||g.ngDoCheck)&&((e.preOrderHooks??=[]).push(t.index),c=!0),!u&&(g.ngOnChanges||g.ngDoCheck)&&((e.preOrderCheckHooks??=[]).push(t.index),u=!0),d++}XI(e,t,i)}function XI(e,n,t){for(let r=n.directiveStart;r<n.directiveEnd;r++){let o=e.data[r];if(t===null||!t.has(o))kf(0,n,o,r),kf(1,n,o,r),Nf(n,r,!1);else{let i=t.get(o);Tf(0,n,i,r),Tf(1,n,i,r),Nf(n,r,!0)}}}function kf(e,n,t,r){let o=e===0?t.inputs:t.outputs;for(let i in o)if(Object.hasOwn(o,i)){let s;e===0?s=n.inputs??={}:s=n.outputs??={},s[i]??=[],s[i].push(r),pm(n,i)}}function Tf(e,n,t,r){let o=e===0?t.inputs:t.outputs;for(let i in o)if(Object.hasOwn(o,i)){let s=o[i],a;e===0?a=n.hostDirectiveInputs??={}:a=n.hostDirectiveOutputs??={},a[s]??=[],a[s].push(r,i),pm(n,s)}}function pm(e,n){n===`class`?e.flags|=8:n===`style`&&(e.flags|=16)}function Nf(e,n,t){let{attrs:r,inputs:o,hostDirectiveInputs:i}=e;if(r===null||!t&&o===null||t&&i===null||Bl(e)){e.initialInputs??=[],e.initialInputs.push(null);return}let s=null,a=0;for(;a<r.length;){let l=r[a];if(l===0){a+=4;continue}else if(l===5){a+=2;continue}else if(typeof l==`number`)break;if(!t&&Object.hasOwn(o,l)){let c=o[l];for(let u of c)if(u===n){s??=[],s.push(l,r[a+1]);break}}else if(t&&Object.hasOwn(i,l)){let c=i[l];for(let u=0;u<c.length;u+=2)if(c[u]===n){s??=[],s.push(c[u+1],r[a+1]);break}}a+=2}e.initialInputs??=[],e.initialInputs.push(s)}function eC(e,n,t,r,o){e.data[r]=o;let i=o.factory||(o.factory=an(o.type,!0)),s=new Wn(i,Me(o),Vr,null);e.blueprint[r]=s,t[r]=s,nC(e,n,r,Up(e,t,o.hostVars,Y),o)}function nC(e,n,t,r,o){let i=o.hostBindings;if(i){let s=e.hostBindingOpCodes;s===null&&(s=e.hostBindingOpCodes=[]);let a=~n.index;tC(s)!=a&&s.push(a),s.push(t,r,i)}}function tC(e){let n=e.length;for(;n>0;){let t=e[--n];if(typeof t==`number`&&t<0)return t}return 0}function rC(e,n,t){if(t){if(n.exportAs)for(let r=0;r<n.exportAs.length;r++)t[n.exportAs[r]]=e;Me(n)&&(t[``]=e)}}function oC(e,n,t){e.flags|=1,e.directiveStart=n,e.directiveEnd=n+t,e.providerIndexes=n}function dc(e,n,t,r,o,i,s,a){let l=n[v],c=l.consts,d=$t(l,e,t,r,pe(c,s));return i&&fm(l,n,d,pe(c,a),o),d.mergedAttrs=Et(d.mergedAttrs,d.attrs),d.attrs!==null&&Ni(d,d.attrs,!1),d.mergedAttrs!==null&&Ni(d,d.mergedAttrs,!0),l.queries!==null&&l.queries.elementStart(l,d),d}function fc(e,n){Xf(e,n),Da(n)&&e.queries.elementEnd(n)}function iC(e,n,t,r,o,i){let s=n.consts,l=$t(n,e,t,r,pe(s,o));if(l.mergedAttrs=Et(l.mergedAttrs,l.attrs),i!=null){let c=pe(s,i);l.localNames=[];for(let u=0;u<c.length;u+=2)l.localNames.push(c[u],-1)}return l.attrs!==null&&Ni(l,l.attrs,!1),l.mergedAttrs!==null&&Ni(l,l.mergedAttrs,!0),n.queries!==null&&n.queries.elementStart(n,l),l}function aC(e){return Object.keys(e).map(n=>{let[t,r,o]=e[n],i={propName:t,templateName:n,isSignal:(r&zi.SignalBased)!==0};return o&&(i.transform=o),i})}function lC(e){return Object.keys(e).map(n=>({propName:e[n],templateName:n}))}function cC(e,n,t){let r=n instanceof ue?n:n?.injector;return r&&e.getStandaloneInjector!==null&&(r=e.getStandaloneInjector(r)||r),r?new qn(t,r):t}function uC(e){let n=e.get(_r,null);if(n===null)throw new S(407,!1);return{rendererFactory:n,sanitizer:e.get(am,null),changeDetectionScheduler:e.get(Oe,null),ngReflect:!1,tracingService:e.get(Qn,null,{optional:!0})}}function dC(e,n,t){let r=gm(e);return Mp(n,r,r===`svg`?$n:r===`math`?Ko:t)}function fC(e){if((e&&`localName`in e&&typeof e.localName==`string`?e.localName:e?.tagName)?.toLowerCase()===`script`)throw new S(905,!1)}function gm(e){return(e.selectors[0][0]||`div`).toLowerCase()}function pC(e,n,t,r){let o=e?[`ng-version`,`22.1.7`]:_D(n.selectors[0]),i=null,s=null,a=0;if(t)for(let u of t)a+=u[hl].requiredVars,u.create&&(u.targetIdx=0,(i??=[]).push(u)),u.update&&(u.targetIdx=0,(s??=[]).push(u));if(r)for(let u=0;u<r.length;u++){let d=r[u];if(typeof d!=`function`)for(let m of d.bindings){a+=m[hl].requiredVars;let p=u+1;m.create&&(m.targetIdx=p,(i??=[]).push(m)),m.update&&(m.targetIdx=p,(s??=[]).push(m))}}let l=[n];if(r)for(let u of r){let m=sr(typeof u==`function`?u:u.type);l.push(m)}return Yl(0,null,gC(i,s),1,a,l,null,null,null,[o],null)}function mC(e,n){let t=e.getRootNode?.();return sC&&t instanceof Document?t.head:t&&mm&&t instanceof ShadowRoot?t:n().head}function gC(e,n){return!e&&!n?null:t=>{if(t&1&&e)for(let r of e)r.create();if(t&2&&n)for(let r of n)r.update()}}function Mf(e){let n=e[hl].kind;return n===`input`||n===`twoWay`}function hC(e,n,t){let r=e.projection=[];for(let o=0;o<n.length;o++){let i=t[o];r.push(i!=null&&i.length?Array.from(i):null)}}function vC(){return hm(H(),b())}function xf(e){return e[dr]}function Wa(e){return e[dr]||(e[dr]=[])}function hm(e,n){let t,r=n[e.index];return be(r)?t=r:(t=tm(r,n,null,e),n[e.index]=t,Xl(n,t)),bC(t,n,e,r),new vl(t,e,n)}function yC(e,n){let t=e[O],r=t.createComment(``),o=we(n,e);return zn(t,t.parentNode(o),r,t.nextSibling(o),!1),r}function vm(e,n,t){return wC(e,n,t)}function DC(e,n,t,r){if(e[jn])return;let o;t.type&8?o=K(r):o=yC(n,t),e[jn]=o}function IC(e,n){let t=e.localNames;if(t!==null){for(let r=0;r<t.length;r+=2)if(t[r]===n)return t[r+1]}return null}function CC(e,n){return e.type&11?Rt(e,n):e.type&4?Wi(e,n):null}function EC(e,n,t,r){return t===-1?CC(n,e):t===-2?SC(e,n,r):Tr(e,e[v],t,n)}function SC(e,n,t){if(t===Pr)return Rt(n,e);if(t===Ar)return Wi(n,e);if(t===Gi)return hm(n,e)}function ym(e,n,t,r){let o=n[Le].queries[r];if(o.matches===null){let i=e.data,s=t.matches,a=[];for(let l=0;s!==null&&l<s.length;l+=2){let c=s[l];if(c<0)a.push(null);else{let u=i[c];a.push(EC(n,u,s[l+1],t.metadata.read))}}o.matches=a}return o.matches}function Il(e,n,t,r){let o=e.queries.getByIndex(t),i=o.matches;if(i!==null){let s=ym(e,n,o,t);for(let a=0;a<i.length;a+=2){let l=i[a];if(l>0)r.push(s[a/2]);else{let c=i[a+1],u=n[-l];for(let d=P;d<u.length;d++){let m=u[d];m[dn]===m[B]&&Il(m[v],m,c,r)}if(u[Fn]!==null){let d=u[Fn];for(let m=0;m<d.length;m++){let p=d[m];Il(p[v],p,c,r)}}}}}return r}function pc(e,n){return e[Le].queries[n].queryList}function bm(e,n,t){let r=new Si((t&4)===4);return Ad(e,n,r,r.destroy),(n[Le]??=new bl).queries.push(new yl(r))-1}function kC(e,n,t){let r=$();return r.firstCreatePass&&(Dm(r,new xi(e,n,t),-1),(n&2)===2&&(r.staticViewQueries=!0)),bm(r,b(),n)}function wm(e,n,t,r){let o=$();if(o.firstCreatePass){let i=H();Dm(o,new xi(n,t,r),i.index),NC(o,e),(t&2)===2&&(o.staticContentQueries=!0)}return bm(o,b(),t)}function TC(e){return e.split(`,`).map(n=>n.trim())}function Dm(e,n,t){e.queries===null&&(e.queries=new wl),e.queries.track(new Dl(n,t))}function NC(e,n){let t=e.contentQueries||(e.contentQueries=[]);n!==(t.length?t[t.length-1]:-1)&&t.push(e.queries.length-1,n)}function mc(e,n){return e.queries.getByIndex(n)}function Im(e,n){let t=e[v],r=mc(t,n);return r.crossesNgTemplate?Il(t,e,n,[]):ym(t,e,r,n)}function gc(e,n,t){let r,o=Ht(()=>{r._dirtyCounter();let i=MC(r,e);if(n&&i===void 0)throw new S(-951,!1);return i});return r=o[j],r._dirtyCounter=wt(0),r._flatValue=void 0,o}function hc(e){return gc(!0,!1,e)}function vc(e){return gc(!0,!0,e)}function Cm(e){return gc(!1,!1,e)}function Em(e,n){let t=e[j];t._lView=b(),t._queryIndex=n,t._queryList=pc(t._lView,n),t._queryList.onDirty(()=>t._dirtyCounter.update(r=>r+1))}function MC(e,n){let t=e._lView,r=e._queryIndex;if(t===void 0||r===void 0||t[w]&4)return n?void 0:he;let o=pc(t,r),i=Im(t,r);return o.reset(i,pp),n?o.first:o._changesDetected||e._flatValue===void 0?e._flatValue=o.toArray():e._flatValue}function yc(e){return!!e&&typeof e.then==`function`}function Sm(e){return!!e&&typeof e.subscribe==`function`}function bc(e,n,t=null){return new Rr({providers:e,parent:n,debugName:t,runEnvironmentInitializers:!0}).injector}function wc(e){return ji(()=>{let n=Tm(e),t=G(W({},n),{decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection!==Ll.Eager,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&e.dependencies||null,getStandaloneInjector:n.standalone?o=>o.get(xC).getOrCreateStandaloneInjector(t):null,getExternalStyles:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||Gn.Emulated,styles:e.styles||he,_:null,schemas:e.schemas||null,tView:null,id:``});n.standalone&&Xe(`NgStandalone`),Nm(t);let r=e.dependencies;return t.directiveDefs=Af(r,AC),t.pipeDefs=Af(r,da),t.id=LC(t),t})}function AC(e){return Ze(e)||sr(e)}function _C(e,n){if(e==null)return cn;let t={};for(let r in e)if(Object.hasOwn(e,r)){let o=e[r],i,s,a,l;Array.isArray(o)?(a=o[0],i=o[1],s=o[2]??i,l=o[3]||null):(i=o,s=o,a=zi.None,l=null),t[i]=[r,a,l],n[i]=s}return t}function RC(e){if(e==null)return cn;let n={};for(let t in e)Object.hasOwn(e,t)&&(n[e[t]]=t);return n}function $C(e){return ji(()=>{let n=Tm(e);return Nm(n),n})}function OC(e){return{type:e.type,name:e.name,factory:null,pure:e.pure!==!1,standalone:e.standalone??!0,onDestroy:e.type.prototype.ngOnDestroy||null}}function Tm(e){let n={};return{type:e.type,providersResolver:null,viewProvidersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:n,inputConfig:e.inputs||cn,exportAs:e.exportAs||null,standalone:e.standalone??!0,signals:e.signals===!0,selectors:e.selectors||he,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,resolveHostDirectives:null,hostDirectives:null,controlDef:null,signalFormsInputPresence:null,inputs:_C(e.inputs,n),outputs:RC(e.outputs),debugInfo:null}}function Nm(e){e.features?.forEach(n=>n(e))}function Af(e,n){return e?()=>{let t=typeof e==`function`?e():e,r=[];for(let o of t){let i=n(o);i!==null&&r.push(i)}return r}:null}function LC(e){let n=0,t=typeof e.consts==`function`?``:e.consts,r=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,t,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery];for(let i of r.join(`|`))n=Math.imul(31,n)+i.charCodeAt(0)<<0;return n+=2147483648,`c`+n}function PC(e){return cr([{provide:Dc,multi:!0,useValue:e}])}function jC(e){let n=t=>{let r=Array.isArray(e);t.hostDirectives===null?(t.resolveHostDirectives=FC,t.hostDirectives=r?e.map(Cl):[e]):r?t.hostDirectives.unshift(...e.map(Cl)):t.hostDirectives.unshift(e)};return n.ngInherit=!0,n}function FC(e){let n=[],t=!1,r=null,o=null;for(let i=0;i<e.length;i++){let s=e[i];if(s.hostDirectives!==null){let a=n.length;r??=new Map,o??=new Map,Mm(s,n,r,e),o.set(s,[a,n.length-1])}i===0&&Me(s)&&(t=!0,n.push(s))}for(let i=t?1:0;i<e.length;i++)n.push(e[i]);return r!==null&&r.forEach((i,s)=>{HC(s.declaredInputs,i.inputs)}),[n,r,o]}function Mm(e,n,t,r){if(e.hostDirectives!==null)for(let o of e.hostDirectives)if(typeof o==`function`){let i=o();for(let s of i)_f(Cl(s),n,t,r)}else _f(o,n,t,r)}function _f(e,n,t,r){let o=sr(e.directive);if(Mm(o,n,t,r),t.has(o)){let i=t.get(o);Rf(i,e.inputs,`input`),Rf(i,e.outputs,`output`)}else r.includes(o)||(t.set(o,e),n.push(o))}function Rf(e,n,t){let r=t===`input`?e.inputs:e.outputs;Object.keys(n).forEach(o=>{let i=n[o];(!Object.hasOwn(r,o)||r[o]===i)&&(r[o]=i)})}function Cl(e){return typeof e==`function`?{directive:q(e),inputs:{},outputs:{}}:{directive:q(e.directive),inputs:$f(e.inputs),outputs:$f(e.outputs)}}function $f(e){let n={};if(e!==void 0&&e.length>0)for(let t=0;t<e.length;t+=2)n[e[t]]=e[t+1];return n}function HC(e,n){for(let t in n)if(Object.hasOwn(n,t)){let r=n[t];e[r]=e[t]}}function VC(e){return Object.getPrototypeOf(e.prototype).constructor}function xm(e){let n=VC(e.type),t=!0,r=[e];for(;n&&n!==Function.prototype&&n!==Object.prototype;){let o,i=Object.hasOwn(n,or)?n[or]:void 0,s=Object.hasOwn(n,ir)?n[ir]:void 0;if(Me(e))o=i??s;else{if(i)throw new S(903,!1);o=s}if(o){if(t){r.push(o);let l=e;l.inputs=Ga(e.inputs),l.declaredInputs=Ga(e.declaredInputs),l.outputs=Ga(e.outputs);let c=o.hostBindings;c&&WC(e,c);let u=o.viewQuery,d=o.contentQueries;if(u&&zC(e,u),d&&qC(e,d),UC(e,o),fd(e.outputs,o.outputs),Me(o)&&o.data.animation){let m=e.data;m.animation=(m.animation||[]).concat(o.data.animation)}}let a=o.features;if(a)for(let l=0;l<a.length;l++){let c=a[l];c&&c.ngInherit&&c(e),c===xm&&(t=!1)}}n=Object.getPrototypeOf(n)}BC(r)}function UC(e,n){for(let t in n.inputs){if(!Object.hasOwn(n.inputs,t)||Object.hasOwn(e.inputs,t))continue;let r=n.inputs[t];r!==void 0&&(e.inputs[t]=r,e.declaredInputs[t]=n.declaredInputs[t])}}function BC(e){let n=0,t=null;for(let r=e.length-1;r>=0;r--){let o=e[r];o.hostVars=n+=o.hostVars,o.hostAttrs=Et(o.hostAttrs,t=Et(t,o.hostAttrs))}}function Ga(e){return e===cn?{}:e===he?[]:e}function zC(e,n){let t=e.viewQuery;t?e.viewQuery=(r,o)=>{n(r,o),t(r,o)}:e.viewQuery=n}function qC(e,n){let t=e.contentQueries;t?e.contentQueries=(r,o,i)=>{n(r,o,i),t(r,o,i)}:e.contentQueries=n}function WC(e,n){let t=e.hostBindings;t?e.hostBindings=(r,o)=>{n(r,o),t(r,o)}:e.hostBindings=n}function Am(e,n,t,r,o,i,s,a){if(t.firstCreatePass){e.mergedAttrs=Et(e.mergedAttrs,e.attrs);let u=e.tView=Yl(2,e,o,i,s,t.directiveRegistry,t.pipeRegistry,null,t.schemas,t.consts,null);t.queries!==null&&(t.queries.template(t,e),u.queries=t.queries.embeddedTView(e))}a&&(e.flags|=a),Vn(e,!1);let l=ZC(t,n,e,r);ai()&&Ql(t,n,l,e),St(l,n);let c=tm(l,n,l,e);n[r+L]=c,Xl(n,c),vm(c,e,n)}function GC(e,n,t,r,o,i,s,a,l,c,u){let d=t+L,m;return n.firstCreatePass?(m=$t(n,d,4,s||null,a||null),ni()&&fm(n,e,m,pe(n.consts,c),nc),Xf(n,m)):m=n.data[d],Am(m,e,n,t,r,o,i,l),vt(m)&&qi(n,e,m),c!=null&&jr(e,m,u),m}function At(e,n,t,r,o,i,s,a,l,c,u){let d=t+L,m;if(n.firstCreatePass){if(m=$t(n,d,4,s||null,a||null),c!=null){let p=pe(n.consts,c);m.localNames=[];for(let g=0;g<p.length;g+=2)m.localNames.push(p[g],-1)}}else m=n.data[d];return Am(m,e,n,t,r,o,i,l),c!=null&&jr(e,m,u),m}function _m(e,n,t,r,o,i,s,a){let l=b(),c=$();return GC(l,c,e,n,t,r,o,pe(c.consts,i),void 0,s,a),_m}function Rm(e,n,t,r,o,i,s,a){let l=b(),c=$();return At(l,c,e,n,t,r,o,pe(c.consts,i),void 0,s,a),Rm}function QC(e,n,t,r){return yr(!0),n[O].createComment(``)}function $m(e,n,t){let r=Lm(e);n[r]===null&&(n[r]=[]),n[r].push(t)}function bi(e,n){let t=Lm(e),r=n[t];if(r!==null){for(let o of r)o();n[t]=null}}function Om(e){bi(1,e),bi(0,e),bi(2,e)}function Lm(e){let n=JC;return e===1?n=XC:e===2&&(n=tE),n}function Zi(e){return e+1}function Kn(e,n){e[v];return e[Zi(n.index)]}function rE(e,n,t){e[v];let o=Zi(n);e[o]=t}function Ot(e,n){let t=Zi(n.index);return e.data[t]}function oE(e,n,t){let r=Zi(n);e.data[r]=t}function iE(e,n,t){let r=n[v],o=Ot(r,t);switch(e){case V.Complete:return o.primaryTmplIndex;case V.Loading:return o.loadingTmplIndex;case V.Error:return o.errorTmplIndex;case V.Placeholder:return o.placeholderTmplIndex;default:return null}}function Lf(e,n){return n===V.Placeholder?e.placeholderBlockConfig?.[Of]??null:n===V.Loading?e.loadingBlockConfig?.[Of]??null:null}function sE(e){return e.loadingBlockConfig?.[KC]??null}function Pf(e,n){if(!e||e.length===0)return n;let t=new Set(e);for(let r of n)t.add(r);return e.length===t.size?e:Array.from(t)}function aE(e,n){return bt(e,n.primaryTmplIndex+L)}function Qa(e,n,t){return e.get(lE).getOrCreateInjector(n,e,t,``)}function cE(e,n,t){if(e instanceof qn){let o=e.injector,i=e.parentInjector,s=Qa(i,n,t);return new qn(o,s)}let r=e.get(ue);if(r!==e){let o=Qa(r,n,t);return new qn(e,o)}return Qa(e,n,t)}function hn(e,n,t,r=!1){let o=t[B],i=o[v];if(pn(o))return;let s=Kn(o,n),a=s[Ur],l=s[nE];if(!(l!==null&&e<l)&&jf(a,e)&&jf(s[YC]??-1,e)){let c=Ot(i,n),d=!r&&(sE(c)!==null||Lf(c,V.Loading)!==null||Lf(c,V.Placeholder))?fE:dE;try{d(e,s,t,n,o)}catch(m){oc(o,m)}}}function uE(e,n){let t=e[fn]?.findIndex(o=>o.data[jl]===n[Ur])??-1;return{dehydratedView:t>-1?e[fn][t]:null,dehydratedViewIx:t}}function dE(e,n,t,r,o){x(N.DeferBlockStateStart);let i=iE(e,o,r);if(i!==null){n[Ur]=e;let s=o[v],l=bt(s,i+L),c=0;lc(t,c);let u;if(e===V.Complete){let g=Ot(s,r),h=g.providers;h&&h.length>0&&(u=cE(o[ee],g,h))}let{dehydratedView:d,dehydratedViewIx:m}=uE(t,n),p=Fr(o,l,null,{injector:u,dehydratedView:d});if(Hr(t,p,c,Nt(l,d)),Xo(p),m>-1&&t[fn]?.splice(m,1),(e===V.Complete||e===V.Error)&&Array.isArray(n[Za])){for(let g of n[Za])g();n[Za]=null}}x(N.DeferBlockStateEnd)}function jf(e,n){return e<n}function jm(e,n){let t=e[n.index];hn(V.Placeholder,n,t)}function Ff(e,n,t){e.loadingPromise.then(()=>{e.loadingState===ae.COMPLETE?hn(V.Complete,n,t):e.loadingState===ae.FAILED&&hn(V.Error,n,t)})}function Fm(e,n){return n[ee].get(Pm,null,{optional:!0})?.behavior!==Cc.Manual}function Um(){ts(()=>{throw new S(600,``)})}function gE(e){return e===void 0||typeof e==`string`||e instanceof Element?{hostElement:e}:e}function kr(e,n){let t=e.indexOf(n);t>-1&&e.splice(t,1)}function hE(e,n,t){let r=n.get(yE),o=()=>r.remove(e);return r.add(e,t),o}function vE(e){return(n,t)=>hE(n,t,e)}function Hf(e){return!e||e.timeout==null?``:`${e.timeout}`}function bE(e){let n=b(),t=H();if(jm(n,t),!Fm(0,n))return;let r=n[ee];$m(0,Kn(n,t),e(()=>zm(0,n,t),r))}function Bm(e,n,t){let r=n[ee],o=n[v];if(e.loadingState!==ae.NOT_STARTED)return e.loadingPromise??Promise.resolve();let i=Kn(n,t),s=aE(o,e);e.loadingState=ae.IN_PROGRESS,bi(1,i);let a=e.dependencyResolverFn,l=r.get(di).add();return a?(e.loadingPromise=Promise.allSettled(a()).then(c=>{let u=!1,m=[],p=[];for(let g=0;g<c.length;g++){let h=c[g];if(h.status===`fulfilled`){let k=h.value,D=Ze(k)||sr(k);if(D)m.push(D);else{let Z=da(k);Z&&p.push(Z)}}else{u=!0,h.reason instanceof Error?h.reason:new Error(String(h.reason));break}}if(u){if(e.loadingState=ae.FAILED,e.errorTmplIndex===null)oc(n,new S(-750,``))}else{e.loadingState=ae.COMPLETE;let g=s.tView;if(m.length>0){g.directiveRegistry=Pf(g.directiveRegistry,m);e.providers=Go(!1,...m.map(D=>D.type))}p.length>0&&(g.pipeRegistry=Pf(g.pipeRegistry,p))}}),e.loadingPromise.finally(()=>{e.loadingPromise=null,l()})):(e.loadingPromise=Promise.resolve().then(()=>{e.loadingPromise=null,e.loadingState=ae.COMPLETE,l()}),e.loadingPromise)}function zm(e,n,t){let r=n[v],o=n[t.index];if(!Fm(e,n))return;let i=Kn(n,t),s=Ot(r,t);switch(Om(i),s.loadingState){case ae.NOT_STARTED:hn(V.Loading,t,o),Bm(s,n,t),s.loadingState===ae.IN_PROGRESS&&Ff(s,t,o);break;case ae.IN_PROGRESS:hn(V.Loading,t,o),Ff(s,t,o);break;case ae.COMPLETE:hn(V.Complete,t,o);break;case ae.FAILED:hn(V.Error,t,o);break;default:}}function qm(e,n,t){return e===0?Vf(n,t):e===2?!Vf(n,t):!0}function wE(e){return e!=null&&(e&1)===1}function Vf(e,n){let t=e[ee],r=Ot(e[v],n),o=Hl(t),i=wE(r.flags),a=Kn(e,n)[eE]!==null;return!(i&&a&&o)}function DE(e,n,t,r,o,i,s,a,l,c){let u=b(),d=$(),m=e+L,p=At(u,d,e,null,0,0),g=u[ee],h=Hl(g);if(d.firstCreatePass){Xe(`NgDefer`);let Pt={primaryTmplIndex:n,loadingTmplIndex:r??null,placeholderTmplIndex:o??null,errorTmplIndex:i??null,placeholderBlockConfig:null,loadingBlockConfig:null,dependencyResolverFn:t??null,loadingState:ae.NOT_STARTED,loadingPromise:null,providers:null,hydrateTriggers:null,debug:null,flags:c??0};l?.(d,Pt,a,s),oE(d,m,Pt)}let k=u[m];vm(k,p,u);let D=null,Z=null;if(k[fn]?.length>0){let Pt=k[fn][0].data;Z=Pt[Pl]??null,D=Pt[jl]}let bn=[null,Ri.Initial,null,null,null,null,Z,D,null,null];rE(u,m,bn);let Ji=null;Z!==null&&h&&(Ji=g.get(Ep),Ji.add(Z,{lView:u,tNode:p,lContainer:k}));let Bc=()=>{Om(bn),Z!==null&&Ji?.cleanup([Z])};$m(0,bn,()=>Ea(u,Bc)),mr(u,Bc)}function IE(e){let n=b(),t=Un();if(!qm(0,n,t))return;if(le(n,Je(),e)){let o=y(null);try{let i=!!e,a=Kn(n,t)[Ur];i===!1&&a===Ri.Initial?jm(n,t):i===!0&&(a===Ri.Initial||a===V.Placeholder)&&zm(0,n,t)}finally{y(o)}}}function CE(e){qm(0,b(),H())&&bE(vE({timeout:e}))}function zr(e,n,t,r){let o=b();if(le(o,Je(),n)){$();vI(Un(),o,e,n,t,r)}return zr}function Ka(e,n,t,r,o){return e===t&&Object.is(n,r)?1:Object.is(o(e,n),o(t,r))?-1:0}function EE(e,n,t,r){let o,i,s=0,a=e.length-1;if(Array.isArray(n)){y(r);let c=n.length-1;for(y(null);s<=a&&s<=c;){let u=e.at(s),d=n[s],m=Ka(s,u,s,d,t);if(m!==0){m<0&&e.updateValue(s,d),s++;continue}let p=e.at(a),g=n[c],h=Ka(a,p,c,g,t);if(h!==0){h<0&&e.updateValue(a,g),a--,c--;continue}let k=t(s,u),D=t(a,p),Z=t(s,d);if(Object.is(Z,D)){let bn=t(c,g);Object.is(bn,k)?(e.swap(s,a),e.updateValue(a,g),c--,a--):e.move(a,s),e.updateValue(s,d),s++;continue}if(o??=new $i,i??=Bf(e,s,a,t),Sl(e,o,s,Z))e.updateValue(s,d),s++,a++;else if(i.has(Z))o.set(k,e.detach(s)),a--;else{let bn=e.create(s,n[s]);e.attach(s,bn),s++,a++}}for(;s<=c;)Uf(e,o,t,s,n[s]),s++}else if(n!=null){y(r);let c=n[Symbol.iterator]();y(null);let u=c.next();for(;!u.done&&s<=a;){let d=e.at(s),m=u.value,p=Ka(s,d,s,m,t);if(p!==0)p<0&&e.updateValue(s,m),s++,u=c.next();else{o??=new $i,i??=Bf(e,s,a,t);let g=t(s,m);if(Sl(e,o,s,g))e.updateValue(s,m),s++,a++,u=c.next();else if(!i.has(g))e.attach(s,e.create(s,m)),s++,a++,u=c.next();else{let h=t(s,d);o.set(h,e.detach(s)),a--}}}for(;!u.done;)Uf(e,o,t,e.length,u.value),u=c.next()}for(;s<=a;)e.destroy(e.detach(a--));o?.forEach(c=>{e.destroy(c)})}function Sl(e,n,t,r){return n!==void 0&&n.has(r)?(e.attach(t,n.get(r)),n.delete(r),!0):!1}function Uf(e,n,t,r,o){if(Sl(e,n,r,t(r,o)))e.updateValue(r,o);else{let i=e.create(r,o);e.attach(r,i)}}function Bf(e,n,t,r){let o=new Set;for(let i=n;i<=t;i++)o.add(r(i,e.at(i)));return o}function SE(e,n,t,r,o,i,s,a){Xe(`NgControlFlow`);let l=b(),c=$();return At(l,c,e,n,t,r,o,pe(c.consts,i),256,s,a),Ec}function Ec(e,n,t,r,o,i,s,a){Xe(`NgControlFlow`);let l=b(),c=$();return At(l,c,e,n,t,r,o,pe(c.consts,i),512,s,a),Ec}function kE(e,n){Xe(`NgControlFlow`);let t=b(),r=Je(),o=t[r]!==Y?t[r]:-1,i=o!==-1?Oi(t,L+o):void 0,s=0;if(le(t,r,e)){let a=y(null);try{if(i!==void 0&&lc(i,s),e!==-1){let l=L+e,c=Oi(t,l),u=Ml(t[v],l),d=im(c,u,t);Hr(c,Fr(t,u,n,{dehydratedView:d}),s,Nt(u,d))}}finally{y(a)}}else if(i!==void 0){let a=rm(i,s);a!==void 0&&(a[F]=n)}}function TE(e){return e}function Sc(e,n){return n}function kc(e,n,t,r,o,i,s,a,l,c,u,d,m){Xe(`NgControlFlow`);let p=b(),g=$(),h=l!==void 0,k=b(),D=a?s.bind(k[de][F]):s,Z=new Tl(h,D);k[L+e]=Z,At(p,g,e+1,n,t,r,o,pe(g.consts,i),256),h&&At(p,g,e+2,l,c,u,d,pe(g.consts,m),512)}function Tc(e){let n=y(null),t=me();try{let r=b(),o=r[v],i=r[t],s=t+1,a=Oi(r,s);if(i.liveCollection===void 0){let c=Ml(o,s);i.liveCollection=new Nl(a,r,c)}else i.liveCollection.reset();let l=i.liveCollection;if(EE(l,e,i.trackByFn,n),l.updateIndexes(),i.hasEmptyBlock){let c=Je(),u=l.length===0;if(le(r,c,u)){let d=t+2,m=Oi(r,d);if(u){let p=Ml(o,d),g=im(m,p,r);Hr(m,Fr(r,p,void 0,{dehydratedView:g}),0,Nt(p,g))}else o.firstUpdatePass&&HI(m),lc(m,0)}}}finally{y(n)}}function Oi(e,n){return e[n]}function NE(e,n){if(e.length<=P)return;let r=e[P+n],o=r?r[je]:void 0;if(r&&o&&o.detachedLeaveAnimationFns&&o.detachedLeaveAnimationFns.length>0){let i=r[ee];HD(i,o),Tt.delete(r[Pe]),o.detachedLeaveAnimationFns=void 0}}function ME(e,n){if(e.length<=P)return;let r=e[P+n],o=r?r[je]:void 0;o&&o.leave&&o.leave.size>0&&(o.detachedLeaveAnimationFns=[])}function xE(e,n){return xr(e,n)}function AE(e,n){return rm(e,n)}function Ml(e,n){return bt(e,n)}function Wm(e,n,t){let r=b();if(le(r,Je(),n)){$();qp(Un(),r,e,n,r[O],t)}return Wm}function xl(e,n,t,r,o){ic(n,e,t,o?`class`:`style`,r)}function Li(e,n,t,r){let o=b(),i=o[v],s=e+L,a=i.firstCreatePass?dc(s,o,2,n,nc,ni(),t,r):i.data[s];if(Ye(a)){let l=o[Ne].tracingService;if(l&&l.componentCreate){let c=i.data[a.directiveStart+a.componentOffset];return l.componentCreate(lm(c),()=>(zf(e,n,o,a,r),Li))}}return zf(e,n,o,a,r),Li}function zf(e,n,t,r,o){if(tc(r,t,e,n,Zm),vt(r)){let i=t[v];qi(i,t,r),Vl(i,r,t)}o!=null&&jr(t,r)}function Nc(){let e=$(),t=rc(H());return e.firstCreatePass&&fc(e,t),Na(t)&&Ma(),Ta(),t.classesWithoutHost!=null&&xw(t)&&xl(e,t,b(),t.classesWithoutHost,!0),t.stylesWithoutHost!=null&&Aw(t)&&xl(e,t,b(),t.stylesWithoutHost,!1),Nc}function Gm(e,n,t,r){return Li(e,n,t,r),Nc(),Gm}function qr(e,n,t,r){let o=b(),i=o[v],s=e+L,a=i.firstCreatePass?iC(s,i,2,n,t,r):i.data[s];return tc(a,o,e,n,Zm),r!=null&&jr(o,a),qr}function Wr(){return Na(rc(H()))&&Ma(),Ta(),Wr}function Qi(e,n,t,r){return qr(e,n,t,r),Wr(),Qi}function Mc(e,n,t){let r=b(),o=r[v],i=e+L,s=o.firstCreatePass?dc(i,r,8,`ng-container`,nc,ni(),n,t):o.data[i];if(tc(s,r,e,`ng-container`,_E),vt(s)){let a=r[v];qi(a,r,s),Vl(a,s,r)}return t!=null&&jr(r,s),Mc}function xc(){let e=$(),t=rc(H());return e.firstCreatePass&&fc(e,t),xc}function Qm(e,n,t){return Mc(e,n,t),xc(),Qm}function RE(){return b()}function Km(e,n,t){let r=b();if(le(r,Je(),n)){$();Wp(Un(),r,e,n,r[O],t)}return Km}function $E(e){let n=Math.floor(Math.abs(e)),t=e.toString().replace(/^[^.]*\.?/,``).length;return n===1&&t===0?1:5}function LE(e){let n=jE(e),t=qf(n);if(t)return t;let r=n.split(`-`)[0];if(t=qf(r),t)return t;if(r===`en`)return OE;throw new S(701,!1)}function qf(e){if(!(e in Ya)){let n=ln.ng&&ln.ng.common&&ln.ng.common.locales&&ln.ng.common.locales[e];return n!==void 0&&(Ya[e]=n),n}return Ya[e]}function jE(e){return e.toLowerCase().replace(/_/g,`-`)}function Ym(e){typeof e==`string`&&(FE=e.toLowerCase().replace(/_/g,`-`))}function Jm(e,n,t){let r=b(),o=$(),i=H();return eg(o,r,r[O],i,e,n,t),Jm}function Xm(e,n,t){let r=b(),o=$(),i=H();return(i.type&3||t)&&cm(i,o,r,t,r[O],e,n,yi(i,r,n)),Xm}function eg(e,n,t,r,o,i,s){let a=!0,l=null;if((r.type&3||s)&&(l??=yi(r,n,i),cm(r,e,n,s,t,o,i,l)&&(a=!1)),a){let c=r.outputs?.[o],u=r.hostDirectiveOutputs?.[o];if(u&&u.length)for(let d=0;d<u.length;d+=2){let m=u[d],p=u[d+1];l??=yi(r,n,i),Sf(r,n,m,p,o,l)}if(c&&c.length)for(let d of c)l??=yi(r,n,i),Sf(r,n,d,o,o,l)}}function HE(e=1){return Gd(e)}function ng(e,n,t,r){return wm(e,n,t,r),ng}function VE(e){let n=b(),t=$(),r=oi();hr(r+1);let o=mc(t,r);if(e.dirty&&Nd(n)===((o.metadata.flags&2)===2)){if(o.matches===null)e.reset([]);else{let i=Im(n,r);e.reset(i,pp),e.notifyOnChanges()}return!0}return!1}function UE(){return pc(b(),oi())}function tg(e,n,t,r,o){return Em(n,wm(e,t,r,o)),tg}function rg(e,n,t,r){return Em(e,kC(n,t,r)),rg}function BE(e=1){hr(oi()+e)}function zE(e){return Yo(_a(),L+e)}function pi(e,n){return e<<17|n<<2}function Zn(e){return e>>17&32767}function qE(e){return(e&2)==2}function WE(e,n){return e&131071|n<<17}function Al(e){return e|2}function _t(e){return(e&131068)>>2}function Ja(e,n){return e&-131069|n<<2}function GE(e){return(e&1)===1}function _l(e){return e|1}function ZE(e,n,t,r,o,i){let s=i?n.classBindings:n.styleBindings,a=Zn(s),l=_t(s);e[r]=t;let c=!1,u;if(Array.isArray(t)){let d=t;u=d[1],(u===null||ft(d,u)>0)&&(c=!0)}else u=t;if(o)if(l!==0){let m=Zn(e[a+1]);e[r+1]=pi(m,a),m!==0&&(e[m+1]=Ja(e[m+1],r)),e[a+1]=WE(e[a+1],r)}else e[r+1]=pi(a,0),a!==0&&(e[a+1]=Ja(e[a+1],r)),a=r;else e[r+1]=pi(l,0),a===0?a=r:e[l+1]=Ja(e[l+1],r),l=r;c&&(e[r+1]=Al(e[r+1])),Wf(e,u,r,!0),Wf(e,u,r,!1),QE(n,u,e,r,i),s=pi(a,l),i?n.classBindings=s:n.styleBindings=s}function QE(e,n,t,r,o){let i=o?e.residualClasses:e.residualStyles;i!=null&&typeof n==`string`&&ft(i,n)>=0&&(t[r+1]=_l(t[r+1]))}function Wf(e,n,t,r){let o=e[t+1],i=n===null,s=r?Zn(o):_t(o),a=!1;for(;s!==0&&(a===!1||i);){let l=e[s],c=e[s+1];KE(l,n)&&(a=!0,e[s+1]=r?_l(c):Al(c)),s=r?Zn(c):_t(c)}a&&(e[t+1]=r?Al(o):_l(o))}function KE(e,n){return e===null||n==null||(Array.isArray(e)?e[1]:e)===n?!0:Array.isArray(e)&&typeof n==`string`?ft(e,n)>=0:!1}function YE(e){return e.substring(Ae.key,Ae.keyEnd)}function JE(e){return XE(e),og(e,ig(e,0,Ae.textEnd))}function og(e,n){let t=Ae.textEnd;return t===n?-1:(n=Ae.keyEnd=eS(e,Ae.key=n,t),ig(e,n,t))}function XE(e){Ae.key=0,Ae.keyEnd=0,Ae.value=0,Ae.valueEnd=0,Ae.textEnd=e.length}function ig(e,n,t){for(;n<t&&e.charCodeAt(n)<=32;)n++;return n}function eS(e,n,t){for(;n<t&&e.charCodeAt(n)>32;)n++;return n}function sg(e,n,t){return lg(e,n,t,!1),sg}function ag(e,n){return lg(e,n,null,!0),ag}function nS(e){rS(cS,tS,e,!0)}function tS(e,n){for(let t=JE(n);t>=0;t=og(n,t))qo(e,YE(n),!0)}function lg(e,n,t,r){let o=b(),i=$(),s=gr(2);if(i.firstUpdatePass&&ug(i,e,s,r),n!==Y&&le(o,s,n)){let a=i.data[me()];dg(i,a,o,o[O],e,o[s+1]=dS(n,t),r,s)}}function rS(e,n,t,r){let o=$(),i=gr(2);o.firstUpdatePass&&ug(o,null,i,r);let s=b();if(t!==Y&&le(s,i,t)){let a=o.data[me()];if(fg(a,r)&&!cg(o,i)){let l=r?a.classesWithoutHost:a.stylesWithoutHost;l!==null&&(t=Fo(l,t||``)),xl(o,a,s,t,r)}else uS(o,a,s,s[O],s[i+1],s[i+1]=lS(e,n,t),r,i)}}function cg(e,n){return n>=e.expandoStartIndex}function ug(e,n,t,r){let o=e.data;if(o[t+1]===null){let i=o[me()],s=cg(e,t);fg(i,r)&&n===null&&!s&&(n=!1),n=oS(o,i,n,r),ZE(o,i,n,t,s,r)}}function oS(e,n,t,r){let o=Bd(e),i=r?n.residualClasses:n.residualStyles;if(o===null)(r?n.classBindings:n.styleBindings)===0&&(t=Xa(null,e,n,t,r),t=$r(t,n.attrs,r),i=null);else{let s=n.directiveStylingLast;if(s===-1||e[s]!==o)if(t=Xa(o,e,n,t,r),i===null){let l=iS(e,n,r);l!==void 0&&Array.isArray(l)&&(l=Xa(null,e,n,l[1],r),l=$r(l,n.attrs,r),sS(e,n,r,l))}else i=aS(e,n,r)}return i!==void 0&&(r?n.residualClasses=i:n.residualStyles=i),t}function iS(e,n,t){let r=t?n.classBindings:n.styleBindings;if(_t(r)!==0)return e[Zn(r)]}function sS(e,n,t,r){let o=t?n.classBindings:n.styleBindings;e[Zn(o)]=r}function aS(e,n,t){let r,o=n.directiveEnd;for(let i=1+n.directiveStylingLast;i<o;i++){let s=e[i].hostAttrs;r=$r(r,s,t)}return $r(r,n.attrs,t)}function Xa(e,n,t,r,o){let i=null,s=t.directiveEnd,a=t.directiveStylingLast;for(a===-1?a=t.directiveStart:a++;a<s&&(i=n[a],r=$r(r,i.hostAttrs,o),i!==e);)a++;return e!==null&&(t.directiveStylingLast=a),r}function $r(e,n,t){let r=t?1:2,o=-1;if(n!==null)for(let i=0;i<n.length;i++){let s=n[i];typeof s==`number`?o=s:o===r&&(Array.isArray(e)||(e=e===void 0?[]:[``,e]),qo(e,s,t?!0:n[++i]))}return e===void 0?null:e}function lS(e,n,t){if(t==null||t===``)return he;let r=[],o=kt(t);if(Array.isArray(o))for(let i=0;i<o.length;i++)e(r,o[i],!0);else if(o instanceof Set)for(let i of o)e(r,i,!0);else if(typeof o==`object`)for(let i in o)Object.hasOwn(o,i)&&e(r,i,o[i]);else typeof o==`string`&&n(r,o);return r}function cS(e,n,t){let r=String(n);r!==``&&!r.includes(` `)&&qo(e,r,t)}function uS(e,n,t,r,o,i,s,a){o===Y&&(o=he);let l=0,c=0,u=0<o.length?o[0]:null,d=0<i.length?i[0]:null;for(;u!==null||d!==null;){let m=l<o.length?o[l+1]:void 0,p=c<i.length?i[c+1]:void 0,g=null,h;u===d?(l+=2,c+=2,m!==p&&(g=d,h=p)):d===null||u!==null&&u<d?(l+=2,g=u):(c+=2,g=d,h=p),g!==null&&dg(e,n,t,r,g,h,s,a),u=l<o.length?o[l]:null,d=c<i.length?i[c]:null}}function dg(e,n,t,r,o,i,s,a){if(!(n.type&3))return;let l=e.data,c=l[a+1];if(!Pi(GE(c)?Gf(l,n,t,o,_t(c),s):void 0)){Pi(i)||qE(c)&&(i=Gf(l,null,t,o,a,s));iI(r,s,Ia(me(),t),o,i)}}function Gf(e,n,t,r,o,i){let s=n===null,a;for(;o>0;){let l=e[o],c=Array.isArray(l),u=c?l[1]:l,d=u===null,m=t[o+1];m===Y&&(m=d?he:void 0);let p=d?Wo(m,r):u===r?m:void 0;if(c&&!Pi(p)&&(p=Wo(l,r)),Pi(p)&&(a=p,s))return a;let g=e[o+1];o=s?Zn(g):_t(g)}if(n!==null){let l=i?n.residualClasses:n.residualStyles;l!=null&&(a=Wo(l,r))}return a}function Pi(e){return e!==void 0}function dS(e,n){return e==null||e===``||(typeof n==`string`?e=kt(e)+n:typeof e==`object`&&(e=tr(kt(e)))),e}function fg(e,n){return(e.flags&(n?8:16))!==0}function fS(e,n=``){let t=b(),r=$(),o=e+L,i=r.firstCreatePass?$t(r,o,1,n,null):r.data[o],s=pS(r,t,i,n);t[o]=s,ai()&&Ql(r,t,s,i),Vn(i,!1)}function mS(e,n,t,r=``){return le(e,Je(),t)?n+Qe(t)+r:Y}function gS(e,n,t,r,o,i=``){let a=uc(e,$a(),t,o);return gr(2),a?n+Qe(t)+r+Qe(o)+i:Y}function hS(e,n,t,r,o,i,s,a=``){let c=WI(e,$a(),t,o,s);return gr(3),c?n+Qe(t)+r+Qe(o)+i+Qe(s)+a:Y}function pg(e){return Ac(``,e),pg}function Ac(e,n,t){let r=b(),o=mS(r,e,n,t);return o!==Y&&_c(r,me(),o),Ac}function mg(e,n,t,r,o){let i=b(),s=gS(i,e,n,t,r,o);return s!==Y&&_c(i,me(),s),mg}function gg(e,n,t,r,o,i,s){let a=b(),l=hS(a,e,n,t,r,o,i,s);return l!==Y&&_c(a,me(),l),gg}function _c(e,n,t){let r=Ia(n,e);uD(e[O],r,t)}function hg(e,n,t){ui(n)&&(n=n());let r=b();if(le(r,Je(),n)){$();qp(Un(),r,e,n,r[O],t)}return hg}function vS(e,n){let t=ui(e);return t&&e.set(n),t}function vg(e,n){let t=b(),r=$(),o=H();return eg(r,t,t[O],o,e,n),vg}function bg(e){Xe(`NgLet`);let n=$(),t=b(),r=e+L;return Vn($t(n,r,128,null,null),!1),fr(n,t,r,yg),bg}function yS(e){return fr($(),b(),me(),e),e}function bS(e){let t=Yo(_a(),L+e);if(t===yg)throw new S(314,!1);return t}function Zf(e,n,t){let r=$();r.firstCreatePass&&wg(n,r.data,r.blueprint,Me(e),t)}function wg(e,n,t,r,o){if(e=q(e),Array.isArray(e))for(let i=0;i<e.length;i++)wg(e[i],n,t,r,o);else{let i=$(),s=b(),a=H(),l=_n(e)?e:q(e.provide),c=ya(e),u=a.providerIndexes&1048575,d=a.directiveStart,m=a.providerIndexes>>20;if(_n(e)||!e.multi){let p=new Wn(c,o,Vr,null),g=nl(l,n,o?u:u+m,d);g===-1?(ol(Ei(a,s),i,l),el(i,e,n.length),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),t.push(p),s.push(p)):(t[g]=p,s[g]=p)}else{let p=nl(l,n,u+m,d),g=nl(l,n,u,u+m),h=p>=0&&t[p],k=g>=0&&t[g];if(o&&!k||!o&&!h){ol(Ei(a,s),i,l);let D=IS(o?DS:wS,t.length,o,r,c,e);!o&&k&&(t[g].providerFactory=D),el(i,e,n.length,0),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),t.push(D),s.push(D)}else{let D=Dg(t[o?g:p],c,!o&&r);el(i,e,p>-1?p:g,D)}!o&&r&&k&&t[g].componentProviders++}}}function el(e,n,t,r){let o=_n(n),i=Ed(n);if(o||i){let l=(i?q(n.useClass):n).prototype.ngOnDestroy;if(l){let c=e.destroyHooks||(e.destroyHooks=[]);if(!o&&n.multi){let u=c.indexOf(t);u===-1?c.push(t,[r,l]):c[u+1].push(r,l)}else c.push(t,l)}}}function Dg(e,n,t){return t&&e.componentProviders++,e.multi.push(n)-1}function nl(e,n,t,r){for(let o=t;o<r;o++)if(n[o]===e)return o;return-1}function wS(e,n,t,r,o){return Rl(this.multi,[])}function DS(e,n,t,r,o){let i=this.multi,s;if(this.providerFactory){let a=this.providerFactory.componentProviders,l=Tr(r,r[v],this.providerFactory.index,o);s=l.slice(0,a),Rl(i,s);for(let c=a;c<l.length;c++)s.push(l[c])}else s=[],Rl(i,s);return s}function Rl(e,n){for(let t=0;t<e.length;t++){let r=e[t];n.push(r())}return n}function IS(e,n,t,r,o,i){let s=new Wn(e,t,Vr,null);return s.multi=[],s.index=n,s.componentProviders=0,Dg(s,o,r&&!t),s}function CS(e,n){return t=>{t.providersResolver=(r,o)=>Zf(r,o?o(e):e,!1),n&&(t.viewProvidersResolver=(r,o)=>Zf(r,o?o(n):n,!0))}}function ES(e,n){let t=ti()+e,r=b();return r[t]===Y?cc(r,t,n()):qI(r,t)}function SS(e,n,t){return kS(b(),ti(),e,n,t)}function Ig(e,n){let t=e[n];return t===Y?void 0:t}function kS(e,n,t,r,o,i){let s=n+t;return le(e,s,o)?cc(e,s+1,i?r.call(i,o):r(o)):Ig(e,s+1)}function TS(e,n,t,r,o,i,s){let a=n+t;return uc(e,a,o,i)?cc(e,a+2,s?r.call(s,o,i):r(o,i)):Ig(e,a+2)}function NS(e,n){let t=$(),r,o=e+L;t.firstCreatePass?(r=MS(n,t.pipeRegistry),t.data[o]=r,r.onDestroy&&(t.destroyHooks??=[]).push(o,r.onDestroy)):r=t.data[o];let i=r.factory||(r.factory=an(r.type,!0)),a=oe(Vr);try{let l=Ci(!1),c=i();return Ci(l),fr(t,b(),o,c),c}finally{oe(a)}}function MS(e,n){if(n)for(let t=n.length-1;t>=0;t--){let r=n[t];if(e===r.name)return r}}function xS(e,n,t,r){let o=e+L,i=b(),s=Yo(i,o);return AS(i,o)?TS(i,ti(),n,s.transform,t,r,s):s.transform(t,r)}function AS(e,n){return e[v].data[n].pure}function _S(e,n){return Wi(e,n)}function Eg(){return[{provide:Oe,useExisting:Cg},{provide:ke,useClass:er},{provide:Dr,useValue:!0}]}function $S(){return typeof $localize<`u`&&$localize.locale||Gr}var Or;var $l;var N;var wi;var Yf;var Cw;var tl;var uf;var x;var Ct;var Wn;var rl;var Ow;var rp;var op;var Lw;var Fe;var vn;var zw;var qw;var fp;var sl;var Pr;var Si;var Ll;var gp;var Zw;var gf;var ll;var wp;var Pl;var jl;var Dp;var Ip;var Cp;var hf;var Xw;var Ep;var nD;var Gn;var tD;var fi;var ki;var oD;var iD;var sD;var aD;var Lp;var Y;var Ti;var RD;var Tt;var ul;var Er;var Fi;var Qn;var wf;var Hi;var ql;var Wl;var Nr;var Gl;var nI;var Cf;var zi;var dI;var Qp;var kI;var NI;var MI;var yn;var Ar;var UI;var BI;var sm;var _r;var gl;var am;var vi;var qn;var hl;var dm;var mm;var sC;var Mt;var Mi;var Gi;var vl;var bC;var wC;var yl;var bl;var xi;var wl;var Dl;var xt;var km;var Ai;var _i;var Rr;var xC;var Dc;var Ic;var ZC;var ae;var Of;var KC;var V;var Ri;var YC;var Ur;var JC;var XC;var eE;var nE;var Za;var tE;var Cc;var lE;var Pm;var fE;var pE;var Hm;var Vm;var mE;var Br;var yE;var El;var $i;var kl;var Tl;var Nl;var Zm;var _E;var Cr;var OE;var Ya;var PE;var Gr;var FE;var Ae;var pS;var yg;var Cg;var RS;var Rc;var $c=f(()=>{Ir();us();En();Ws();lf();Or=Symbol(`InputSignalNode#UNSET`),$l=G(W({},et),{transformFn:void 0,applyValueToInputSignal(e,n){Ue(e,n)}});N=(function(e){return e[e.TemplateCreateStart=0]=`TemplateCreateStart`,e[e.TemplateCreateEnd=1]=`TemplateCreateEnd`,e[e.TemplateUpdateStart=2]=`TemplateUpdateStart`,e[e.TemplateUpdateEnd=3]=`TemplateUpdateEnd`,e[e.LifecycleHookStart=4]=`LifecycleHookStart`,e[e.LifecycleHookEnd=5]=`LifecycleHookEnd`,e[e.OutputStart=6]=`OutputStart`,e[e.OutputEnd=7]=`OutputEnd`,e[e.BootstrapApplicationStart=8]=`BootstrapApplicationStart`,e[e.BootstrapApplicationEnd=9]=`BootstrapApplicationEnd`,e[e.BootstrapComponentStart=10]=`BootstrapComponentStart`,e[e.BootstrapComponentEnd=11]=`BootstrapComponentEnd`,e[e.ChangeDetectionStart=12]=`ChangeDetectionStart`,e[e.ChangeDetectionEnd=13]=`ChangeDetectionEnd`,e[e.ChangeDetectionSyncStart=14]=`ChangeDetectionSyncStart`,e[e.ChangeDetectionSyncEnd=15]=`ChangeDetectionSyncEnd`,e[e.AfterRenderHooksStart=16]=`AfterRenderHooksStart`,e[e.AfterRenderHooksEnd=17]=`AfterRenderHooksEnd`,e[e.ComponentStart=18]=`ComponentStart`,e[e.ComponentEnd=19]=`ComponentEnd`,e[e.DeferBlockStateStart=20]=`DeferBlockStateStart`,e[e.DeferBlockStateEnd=21]=`DeferBlockStateEnd`,e[e.DynamicComponentStart=22]=`DynamicComponentStart`,e[e.DynamicComponentEnd=23]=`DynamicComponentEnd`,e[e.HostBindingsUpdateStart=24]=`HostBindingsUpdateStart`,e[e.HostBindingsUpdateEnd=25]=`HostBindingsUpdateEnd`,e})(N||{}),wi=class{previousValue;currentValue;firstChange;constructor(n,t,r){this.previousValue=n,this.currentValue=t,this.firstChange=r}isFirstChange(){return this.firstChange}};Yf=null,Cw=(()=>{Yf=cf;let e=()=>cf;return e.ngInherit=!0,e})();tl=`__ngSimpleChanges__`;uf=[],x=function(e,n=null,t){for(let r=0;r<uf.length;r++){let o=uf[r];o(e,n,t)}};Ct=-1,Wn=class{factory;name;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(n,t,r,o){this.factory=n,this.name=o,this.canSeeViewProviders=t,this.injectImpl=r}};rl=!0;Ow=256,rp=Ow-1,op=5,Lw=0,Fe={};vn=class{_tNode;_lView;constructor(n,t){this._tNode=n,this._lView=t}get(n,t,r){return lp(this._tNode,this._lView,n,An(r),t)}};zw=()=>(typeof requestIdleCallback<`u`?requestIdleCallback:e=>setTimeout(e)).bind(globalThis),qw=()=>(typeof requestIdleCallback<`u`?cancelIdleCallback:clearTimeout).bind(globalThis),fp=new M(``,{factory:()=>new sl}),sl=class{requestIdleCallback=zw();cancelIdleCallback=qw();requestOnIdle(n,t){return this.requestIdleCallback(n,t)}cancelOnIdle(n){return this.cancelIdleCallback(n)}};Pr=(()=>{class e{nativeElement;constructor(t){this.nativeElement=t}static __NG_ELEMENT_ID__=Ww}return e})();Si=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new ge}constructor(n=!1){this._emitDistinctChangesOnly=n}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,t){return this._results.reduce(n,t)}forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,t){this.dirty=!1;let r=yd(n);(this._changesDetected=!vd(this._results,r,t))&&(this._results=r,this.length=r.length,this.last=r[this.length-1],this.first=r[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(n){this._onDirty=n}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=Gw};Ll=(function(e){return e[e.OnPush=0]=`OnPush`,e[e.Eager=1]=`Eager`,e[e.Default=1]=`Default`,e})(Ll||{}),gp=new Map,Zw=0;gf=`__ngContext__`;wp=`r`,Pl=`di`,jl=`s`,Dp=!1,Ip=new M(``,{factory:()=>Dp}),Cp=new M(``),hf=new WeakMap;Xw=(e,n,t,r)=>{};Ep=new M(``);nD=()=>null;Gn=(function(e){return e[e.Emulated=0]=`Emulated`,e[e.None=2]=`None`,e[e.ShadowDom=3]=`ShadowDom`,e[e.ExperimentalIsolatedShadowDom=4]=`ExperimentalIsolatedShadowDom`,e})(Gn||{}),tD={"http://www.w3.org/2000/svg":$n,"http://www.w3.org/1998/Math/MathML":Ko};ki=class{changingThisBreaksApplicationSecurity;constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${jo})`}};oD=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;iD=/^>|^->|<!--|-->|--!>|<!-$/g,sD=/(<|>)/g,aD=`​$1​`;Lp=`ng-template`;Y={},Ti=(function(e){return e[e.Important=1]=`Important`,e[e.DashCase=2]=`DashCase`,e})(Ti||{});Tt=new Set,typeof document<`u`&&document?.documentElement?.getAnimations,ul=new WeakMap;Er=new WeakSet;Fi=(function(e){return e[e.CHANGE_DETECTION=0]=`CHANGE_DETECTION`,e[e.AFTER_NEXT_RENDER=1]=`AFTER_NEXT_RENDER`,e})(Fi||{}),Qn=new M(``),wf=new Set;Hi=(()=>{class e{impl=null;execute(){this.impl?.execute()}static ɵprov=X({token:e,providedIn:`root`,factory:()=>new e})}return e})(),ql=[0,1,2,3],Wl=(()=>{class e{ngZone=I(ke);scheduler=I(Oe);errorHandler=I(Ge,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){I(Qn,{optional:!0})}execute(){let t=this.sequences.size>0;t&&x(N.AfterRenderHooksStart),this.executing=!0;for(let r of ql)for(let o of this.sequences)if(!(o.erroredOrDestroyed||!o.hooks[r]))try{o.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let i=o.hooks[r];return i(o.pipelinedValue)},o.snapshot))}catch(i){o.erroredOrDestroyed=!0,this.errorHandler?.handleError(i)}this.executing=!1;for(let r of this.sequences)r.afterRun(),r.once&&(this.sequences.delete(r),r.destroy());for(let r of this.deferredRegistrations)this.sequences.add(r);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),t&&x(N.AfterRenderHooksEnd)}register(t){let{view:r}=t;r!==void 0?((r[Pn]??=[]).push(t),Hn(r),r[w]|=8192):this.executing?this.deferredRegistrations.add(t):this.addSequence(t)}addSequence(t){this.sequences.add(t),this.scheduler.notify(7)}unregister(t){this.executing&&this.sequences.has(t)?(t.erroredOrDestroyed=!0,t.pipelinedValue=void 0,t.once=!0):(this.sequences.delete(t),this.deferredRegistrations.delete(t))}maybeTrace(t,r){return r?r.run(Fi.AFTER_NEXT_RENDER,t):t()}static ɵprov=X({token:e,providedIn:`root`,factory:()=>new e})}return e})(),Nr=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(n,t,r,o,i,s=null){this.impl=n,this.hooks=t,this.view=r,this.once=o,this.snapshot=s,this.unregisterOnDestroy=i?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let n=this.view?.[Pn];n&&(this.view[Pn]=n.filter(t=>t!==this))}};Gl=new M(``,{factory:()=>{let e=I(ue),n=new Set;return e.onDestroy(()=>n.clear()),{queue:n,isScheduled:!1,scheduler:null,injector:e}}});nI=eI;zi=(function(e){return e[e.None=0]=`None`,e[e.SignalBased=1]=`SignalBased`,e[e.HasDecoratorInputTransform=2]=`HasDecoratorInputTransform`,e})(zi||{});dI=()=>null;Qp=[];kI=G(W({},en),{consumerIsAlwaysLive:!0,kind:`template`,consumerMarkedDirty:e=>{Hn(e.lView)},consumerOnSignalRead(){this.lView[fe]=this}});NI=G(W({},en),{consumerIsAlwaysLive:!0,kind:`template`,consumerMarkedDirty:e=>{let n=We(e.lView);for(;n&&!Kp(n[v]);)n=We(n);n&&Xo(n)},consumerOnSignalRead(){this.lView[fe]=this}});MI=100;yn=class{_lView;_cdRefInjectingView;_appRef=null;_attachedToViewContainer=!1;exhaustive;get rootNodes(){let n=this._lView,t=n[v];return Mr(t,n,t.firstChild,[])}constructor(n,t){this._lView=n,this._cdRefInjectingView=t}get context(){return this._lView[F]}set context(n){this._lView[F]=n}get destroyed(){return pn(this._lView)}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){let n=this._lView[B];if(be(n)){let t=n[dr],r=t?t.indexOf(this):-1;r>-1&&(xr(n,r),ar(t,r))}this._attachedToViewContainer=!1}Ui(this._lView[v],this._lView)}onDestroy(n){mr(this._lView,n)}markForCheck(){ac(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[w]&=-129}reattach(){ei(this._lView),this._lView[w]|=128}detectChanges(){this._lView[w]|=1024,Jp(this._lView)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new S(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let n=yt(this._lView),t=this._lView[dn];t!==null&&!n&&Zl(t,this._lView),Fp(this._lView[v],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new S(902,!1);this._appRef=n;let t=yt(this._lView),r=this._lView[dn];r!==null&&!t&&om(r,this._lView),ei(this._lView)}},Ar=(()=>{class e{_declarationLView;_declarationTContainer;elementRef;static __NG_ELEMENT_ID__=LI;constructor(t,r,o){this._declarationLView=t,this._declarationTContainer=r,this.elementRef=o}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,r){return this.createEmbeddedViewImpl(t,r)}createEmbeddedViewImpl(t,r,o){let i=Fr(this._declarationLView,this._declarationTContainer,t,{embeddedViewInjector:r,dehydratedView:o});return new yn(i)}}return e})();UI=()=>null,BI=()=>null;sm=class{},_r=class{},gl=class{destroyNode=null;static __NG_ELEMENT_ID__=()=>zI()};am=(()=>{class e{static ɵprov=X({token:e,providedIn:`root`,factory:()=>null})}return e})();vi={},qn=class{injector;parentInjector;constructor(n,t){this.injector=n,this.parentInjector=t}get(n,t,r){let o=this.injector.get(n,vi,r);return o!==vi||t===vi?o:this.parentInjector.get(n,t,r)}};hl=Symbol(`BINDING`),dm=new M(``);mm=typeof ShadowRoot<`u`,sC=typeof Document<`u`;Mt=class{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=aC(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=lC(this.componentDef.outputs),this.cachedOutputs}constructor(n,t){this.componentDef=n,this.ngModule=t,this.componentType=n.type,this.selector=AD(n.selectors),this.ngContentSelectors=n.ngContentSelectors??[],this.isBoundToModule=!!t}create(n,t,r,o,i,s,a){x(N.DynamicComponentStart);let l=y(null);try{let c=this.componentDef,u=cC(c,o||this.ngModule,n),d=uC(u),m=d.tracingService;return m&&m.componentCreate?m.componentCreate(lm(c),()=>this.createComponentRef(d,u,t,r,i,s,a)):this.createComponentRef(d,u,t,r,i,s,a)}finally{y(l)}}createComponentRef(n,t,r,o,i,s,a){let l=this.componentDef,c=pC(o,l,s,i),u=n.rendererFactory.createRenderer(null,l),d=o?cI(u,o,l.encapsulation,t):dC(l,u,a??null);fC(d);let m=t.get(dm,null),p=mC(d,()=>t.get(br,null)??bp());m&&m.addHost(p);let g=s?.some(Mf)||i?.some(D=>typeof D!=`function`&&D.bindings.some(Mf)),h=Jl(null,c,null,512|Vp(l),null,null,n,u,t,null,Sp(d,t,!0));m&&mm&&p instanceof ShadowRoot&&mr(h,()=>{m.removeHost(p)}),h[L]=d,ii(h);let k=null;try{let D=dc(L,h,2,`#host`,()=>c.directiveRegistry,!0,0);_p(u,d,D),St(d,h),qi(c,h,D),Vl(c,D,h),fc(c,D),r!==void 0&&hC(D,this.ngContentSelectors,r),k=De(D.index,h),h[F]=k[F],sc(c,h,null)}catch(D){throw k!==null&&al(k),al(h),D}finally{x(N.DynamicComponentEnd),si()}return new Mi(this.componentType,h,!!g)}};Mi=class extends sm{_rootLView;_hasInputBindings;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(n,t,r){super(),this._rootLView=t,this._hasInputBindings=r,this._tNode=bt(t[v],L),this.location=Rt(this._tNode,t),this.instance=De(this._tNode.index,t)[F],this.hostView=this.changeDetectorRef=new yn(t,void 0),this.componentType=n}setInput(n,t){this._hasInputBindings;let r=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(n)&&Object.is(this.previousInputValues.get(n),t))return;let o=this._rootLView;ic(r,o[v],o,n,t);this.previousInputValues.set(n,t);ac(De(r.index,o),1)}get injector(){return new vn(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(n){this.hostView.onDestroy(n)}};Gi=(()=>{class e{static __NG_ELEMENT_ID__=vC}return e})();vl=class e extends Gi{_lContainer;_hostTNode;_hostLView;constructor(n,t,r){super(),this._lContainer=n,this._hostTNode=t,this._hostLView=r}get element(){return Rt(this._hostTNode,this._hostLView)}get injector(){return new vn(this._hostTNode,this._hostLView)}get parentInjector(){let n=Ol(this._hostTNode,this._hostLView);if(tp(n)){let t=Ii(n,this._hostLView),r=Di(n),o=t[v].data[r+8];return new vn(o,t)}else return new vn(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){let t=xf(this._lContainer);return t!==null&&t[n]||null}get length(){return this._lContainer.length-P}createEmbeddedView(n,t,r){let o,i;typeof r==`number`?o=r:r!=null&&(o=r.index,i=r.injector);let s=ml(this._lContainer,n.ssrId),a=n.createEmbeddedViewImpl(t||{},i,s);return this.insertImpl(a,o,Nt(this._hostTNode,s)),a}createComponent(n,t,r,o,i,s,a){let l,c=t||{};l=c.index,r=c.injector,o=c.projectableNodes,i=c.environmentInjector||c.ngModuleRef,s=c.directives,a=c.bindings;let u=new Mt(Ze(n)),d=r||this.parentInjector;if(!i&&u.ngModule==null){let D=this.parentInjector.get(ue,null);D&&(i=D)}let m=Ze(u.componentType??{}),p=ml(this._lContainer,m?.id??null),g=p?.firstChild??null,h=u.create(d,o,g,i,s,a,this._getHostElementNamespace());return this.insertImpl(h.hostView,l,Nt(this._hostTNode,p)),h}_getHostElementNamespace(){if(this._hostTNode.type&2){let n=this._hostTNode.parent??this._hostLView[se];return n!==null&&n.type&2&&typeof n.value==`string`&&n.value.toLowerCase()===`foreignobject`?null:n?.namespace??null}return this._hostTNode.namespace}insert(n,t){return this.insertImpl(n,t,!0)}insertImpl(n,t,r){let o=n._lView;if(Md(o)){let a=this.indexOf(n);if(a!==-1)this.detach(a);else{let l=o[B],c=new e(l,l[se],l[B]);c.detach(c.indexOf(n))}}let i=this._adjustIndex(t),s=this._lContainer;return Hr(s,o,i,r),n.attachToViewContainerRef(),ma(Wa(s),i,n),n}move(n,t){return this.insert(n,t)}indexOf(n){let t=xf(this._lContainer);return t!==null?t.indexOf(n):-1}remove(n){let t=this._adjustIndex(n,-1),r=xr(this._lContainer,t);r&&(ar(Wa(this._lContainer),t),Ui(r[v],r))}detach(n){let t=this._adjustIndex(n,-1),r=xr(this._lContainer,t);return r&&ar(Wa(this._lContainer),t)!=null?new yn(r):null}_adjustIndex(n,t=0){return n??this.length+t}};bC=DC,wC=()=>!1;yl=class e{queryList;matches=null;constructor(n){this.queryList=n}clone(){return new e(this.queryList)}setDirty(){this.queryList.setDirty()}},bl=class e{queries;constructor(n=[]){this.queries=n}createEmbeddedView(n){let t=n.queries;if(t!==null){let r=n.contentQueries!==null?n.contentQueries[0]:t.length,o=[];for(let i=0;i<r;i++){let s=t.getByIndex(i),a=this.queries[s.indexInDeclarationView];o.push(a.clone())}return new e(o)}return null}insertView(n){this.dirtyQueriesWithMatches(n)}detachView(n){this.dirtyQueriesWithMatches(n)}finishViewCreation(n){this.dirtyQueriesWithMatches(n)}dirtyQueriesWithMatches(n){for(let t=0;t<this.queries.length;t++)mc(n,t).matches!==null&&this.queries[t].setDirty()}},xi=class{flags;read;predicate;constructor(n,t,r=null){this.flags=t,this.read=r,typeof n==`string`?this.predicate=TC(n):this.predicate=n}},wl=class e{queries;constructor(n=[]){this.queries=n}elementStart(n,t){for(let r=0;r<this.queries.length;r++)this.queries[r].elementStart(n,t)}elementEnd(n){for(let t=0;t<this.queries.length;t++)this.queries[t].elementEnd(n)}embeddedTView(n){let t=null;for(let r=0;r<this.length;r++){let o=t!==null?t.length:0,i=this.getByIndex(r).embeddedTView(n,o);i&&(i.indexInDeclarationView=r,t!==null?t.push(i):t=[i])}return t!==null?new e(t):null}template(n,t){for(let r=0;r<this.queries.length;r++)this.queries[r].template(n,t)}getByIndex(n){return this.queries[n]}get length(){return this.queries.length}track(n){this.queries.push(n)}},Dl=class e{metadata;matches=null;indexInDeclarationView=-1;crossesNgTemplate=!1;_declarationNodeIndex;_appliesToNextNode=!0;constructor(n,t=-1){this.metadata=n,this._declarationNodeIndex=t}elementStart(n,t){this.isApplyingToNode(t)&&this.matchTNode(n,t)}elementEnd(n){this._declarationNodeIndex===n.index&&(this._appliesToNextNode=!1)}template(n,t){this.elementStart(n,t)}embeddedTView(n,t){return this.isApplyingToNode(n)?(this.crossesNgTemplate=!0,this.addMatch(-n.index,t),new e(this.metadata)):null}isApplyingToNode(n){if(this._appliesToNextNode&&(this.metadata.flags&1)!==1){let t=this._declarationNodeIndex,r=n.parent;for(;r!==null&&r.type&8&&r.index!==t;)r=r.parent;return t===(r!==null?r.index:-1)}return this._appliesToNextNode}matchTNode(n,t){let r=this.metadata.predicate;if(Array.isArray(r))for(let o=0;o<r.length;o++){let i=r[o];this.matchTNodeWithReadOption(n,t,IC(t,i)),this.matchTNodeWithReadOption(n,t,hi(t,n,i,!1,!1))}else r===Ar?t.type&4&&this.matchTNodeWithReadOption(n,t,-1):this.matchTNodeWithReadOption(n,t,hi(t,n,r,!1,!1))}matchTNodeWithReadOption(n,t,r){if(r!==null){let o=this.metadata.read;if(o!==null)if(o===Pr||o===Gi||o===Ar&&t.type&4)this.addMatch(t.index,-2);else{let i=hi(t,n,o,!1,!1);i!==null&&this.addMatch(t.index,i)}else this.addMatch(t.index,r)}}addMatch(n,t){this.matches===null?this.matches=[n,t]:this.matches.push(n,t)}};xt=class{},km=class{},Ai=class extends xt{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];constructor(n,t,r,o=!0){super(),this.ngModuleType=n,this._parent=t;let i=pd(n);this._bootstrapComponents=DD(i.bootstrap),this._r3Injector=ja(n,t,[{provide:xt,useValue:this},...r],tr(n),new Set([`environment`])),o&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}},_i=class extends km{moduleType;constructor(n){super(),this.moduleType=n}create(n){return new Ai(this.moduleType,n,[])}},Rr=class extends xt{injector;instance=null;constructor(n){super();let t=new Rn([...n.providers,{provide:xt,useValue:this}],n.parent||ur(),n.debugName,new Set([`environment`]));this.injector=t,n.runEnvironmentInitializers&&t.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}};xC=(()=>{class e{_injector;cachedInjectors=new Map;constructor(t){this._injector=t}getOrCreateStandaloneInjector(t){if(!t.standalone)return null;if(!this.cachedInjectors.has(t)){let r=Go(!1,t.type),o=r.length>0?bc([r],this._injector,``):null;this.cachedInjectors.set(t,o)}return this.cachedInjectors.get(t)}ngOnDestroy(){try{for(let t of this.cachedInjectors.values())t!==null&&t.destroy()}finally{this.cachedInjectors.clear()}}static ɵprov=X({token:e,providedIn:`environment`,factory:()=>new e($e(ue))})}return e})();Dc=new M(``);Ic=(()=>{class e{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((t,r)=>{this.resolve=t,this.reject=r});appInits=I(Dc,{optional:!0})??[];injector=I(Se);constructor(){}runInitializers(){if(this.initialized)return;let t=[];for(let o of this.appInits){let i=Zo(this.injector,o);if(yc(i))t.push(i);else if(Sm(i)){let s=new Promise((a,l)=>{i.subscribe({complete:a,error:l})});t.push(s)}}let r=()=>{this.done=!0,this.resolve()};Promise.all(t).then(()=>{r()}).catch(o=>{this.reject(o)}),t.length===0&&r(),this.initialized=!0}static ɵfac=function(r){return new(r||e)};static ɵprov=Lr({token:e,factory:e.ɵfac})}return e})();ZC=QC;ae=(function(e){return e[e.NOT_STARTED=0]=`NOT_STARTED`,e[e.IN_PROGRESS=1]=`IN_PROGRESS`,e[e.COMPLETE=2]=`COMPLETE`,e[e.FAILED=3]=`FAILED`,e})(ae||{}),Of=0,KC=1,V=(function(e){return e[e.Placeholder=0]=`Placeholder`,e[e.Loading=1]=`Loading`,e[e.Complete=2]=`Complete`,e[e.Error=3]=`Error`,e})(V||{}),Ri=(function(e){return e[e.Initial=-1]=`Initial`,e})(Ri||{}),YC=0,Ur=1,JC=4,XC=5,eE=6,nE=7,Za=8,tE=9,Cc=(function(e){return e[e.Manual=0]=`Manual`,e[e.Playthrough=1]=`Playthrough`,e})(Cc||{});lE=(()=>{class e{cachedInjectors=new Map;getOrCreateInjector(t,r,o,i){if(!this.cachedInjectors.has(t)){let s=o.length>0?bc(o,r,i):null;this.cachedInjectors.set(t,s)}return this.cachedInjectors.get(t)}ngOnDestroy(){try{for(let t of this.cachedInjectors.values())t!==null&&t.destroy()}finally{this.cachedInjectors.clear()}}static ɵprov=X({token:e,providedIn:`environment`,factory:()=>new e})}return e})(),Pm=new M(``);fE=null;pE=(()=>{class e{log(t){console.log(t)}warn(t){console.warn(t)}static ɵfac=function(r){return new(r||e)};static ɵprov=X({token:e,factory:e.ɵfac,providedIn:`platform`})}return e})(),Hm=new M(``),Vm=new M(``);mE=10,Br=(()=>{class e{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=I(gn);afterRenderManager=I(Hi);zonelessEnabled=I(Dr);rootEffectScheduler=I(li);dirtyFlags=0;tracingSnapshot=null;allTestViews=new Set;autoDetectTestViews=new Set;includeAllTestViews=!1;afterTick=new ge;get allViews(){return[...(this.includeAllTestViews?this.allTestViews:this.autoDetectTestViews).keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];internalPendingTask=I(Bn);get isStable(){return this.internalPendingTask.hasPendingTasksObservable.pipe(Nn(t=>!t))}constructor(){I(Qn,{optional:!0})}whenStable(){let t;return new Promise(r=>{t=this.isStable.subscribe({next:o=>{o&&r()}})}).finally(()=>{t.unsubscribe()})}_injector=I(ue);_rendererFactory=null;get injector(){return this._injector}bootstrap(t,r){return this.bootstrapImpl(t,r)}bootstrapImpl(t,r,o=Se.NULL){return this._injector.get(ke).run(()=>{if(x(N.BootstrapComponentStart),!this._injector.get(Ic).done)throw new S(405,``);let a=Ze(t),l=this._injector.get(xt),c=new Mt(a,l);this.componentTypes.push(t);let{hostElement:u,directives:d,bindings:m}=gE(r),p=u||c.selector,g=c.create(o,[],p,l.injector,d,m),h=g.location.nativeElement,k=g.injector.get(Hm,null);return k?.registerApplication(h),g.onDestroy(()=>{this.detachView(g.hostView),kr(this.components,g),k?.unregisterApplication(h)}),this._loadComponent(g),x(N.BootstrapComponentEnd,g),g})}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){x(N.ChangeDetectionStart),this.tracingSnapshot!==null?this.tracingSnapshot.run(Fi.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw x(N.ChangeDetectionEnd),new S(101,!1);let t=y(null);try{this._runningTick=!0,this.synchronize()}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,y(t),this.afterTick.next(),x(N.ChangeDetectionEnd)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(_r,null,{optional:!0}));let t=0;for(;this.dirtyFlags!==0&&t++<mE;){x(N.ChangeDetectionSyncStart);try{this.synchronizeOnce()}finally{x(N.ChangeDetectionSyncEnd)}}}synchronizeOnce(){this.dirtyFlags&16&&(this.dirtyFlags&=-17,this.rootEffectScheduler.flush());let t=!1;if(this.dirtyFlags&7){let r=!!(this.dirtyFlags&1);this.dirtyFlags&=-8,this.dirtyFlags|=8;for(let{_lView:o}of this.allViews){if(!r&&!pr(o))continue;Jp(o,r&&!this.zonelessEnabled?0:1),t=!0}if(this.dirtyFlags&=-5,this.syncDirtyFlagsWithViews(),this.dirtyFlags&23)return}t||(this._rendererFactory?.begin?.(),this._rendererFactory?.end?.()),this.dirtyFlags&8&&(this.dirtyFlags&=-9,this.afterRenderManager.execute()),this.syncDirtyFlagsWithViews()}syncDirtyFlagsWithViews(){if(this.allViews.some(({_lView:t})=>pr(t))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(t){let r=t;this._views.push(r),r.attachToAppRef(this)}detachView(t){let r=t;kr(this._views,r),r.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView);try{this.tick()}catch(o){this.internalErrorHandler(o)}this.components.push(t),this._injector.get(Vm,[]).forEach(o=>o(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>kr(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new S(406,!1);let t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}static ɵfac=function(r){return new(r||e)};static ɵprov=Lr({token:e,factory:e.ɵfac})}return e})();yE=(()=>{class e{buckets=new Map;callbackBucket=new Map;applicationRef=I(Br);ngZone=I(ke);idleService=I(fp);add(t,r){let o=Hf(r);this.callbackBucket.set(t,o);let i=this.buckets.get(o);i??(i={idleId:null,queue:new Set},this.buckets.set(o,i)),i.queue.add(t),this.scheduleBucket(i,r)}remove(t){let r=this.callbackBucket.get(t);if(r===void 0)return;this.callbackBucket.delete(t);let o=this.buckets.get(r);o&&(o.queue.delete(t),o.queue.size===0&&(this.cancelBucket(o),this.buckets.delete(r)))}scheduleBucket(t,r){if(t.idleId!==null)return;let o=Hf(r),i=s=>{for(let a of t.queue)if(a(),this.applicationRef._tick(),t.queue.delete(a),this.callbackBucket.delete(a),s&&s.timeRemaining()===0&&!s.didTimeout)break;t.idleId=null,t.queue.size>0?this.scheduleBucket(t,r):this.buckets.delete(o)};t.idleId=this.idleService.requestOnIdle(s=>this.ngZone.run(()=>i(s)),r)}cancelBucket(t){t.idleId!==null&&(this.idleService.cancelOnIdle(t.idleId),t.idleId=null)}ngOnDestroy(){for(let t of this.buckets.values())this.cancelBucket(t);this.buckets.clear(),this.callbackBucket.clear()}static ɵprov=X({token:e,providedIn:`root`,factory:()=>new e})}return e})();El=class{destroy(n){}updateValue(n,t){}swap(n,t){let r=Math.min(n,t),o=Math.max(n,t),i=this.detach(o);if(o-r>1){let s=this.detach(r);this.attach(r,i),this.attach(o,s)}else this.attach(r,i)}move(n,t){this.attach(t,this.detach(n))}};$i=class{kvMap=new Map;_vMap=void 0;has(n){return this.kvMap.has(n)}delete(n){if(!this.has(n))return!1;let t=this.kvMap.get(n);return this._vMap!==void 0&&this._vMap.has(t)?(this.kvMap.set(n,this._vMap.get(t)),this._vMap.delete(t)):this.kvMap.delete(n),!0}get(n){return this.kvMap.get(n)}set(n,t){if(this.kvMap.has(n)){let r=this.kvMap.get(n);this._vMap===void 0&&(this._vMap=new Map);let o=this._vMap;for(;o.has(r);)r=o.get(r);o.set(r,t)}else this.kvMap.set(n,t)}forEach(n){for(let[t,r]of this.kvMap)if(n(r,t),this._vMap!==void 0){let o=this._vMap;for(;o.has(r);)r=o.get(r),n(r,t)}}};kl=class{lContainer;$implicit;$index;constructor(n,t,r){this.lContainer=n,this.$implicit=t,this.$index=r}get $count(){return this.lContainer.length-P}};Tl=class{hasEmptyBlock;trackByFn;liveCollection;constructor(n,t,r){this.hasEmptyBlock=n,this.trackByFn=t,this.liveCollection=r}};Nl=class extends El{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(n,t,r){super(),this.lContainer=n,this.hostLView=t,this.templateTNode=r}get length(){return this.lContainer.length-P}at(n){return this.getLView(n)[F].$implicit}attach(n,t){let r=t[mt];this.needsIndexUpdate||=n!==this.length,Hr(this.lContainer,t,n,Nt(this.templateTNode,r)),NE(this.lContainer,n)}detach(n){return this.needsIndexUpdate||=n!==this.length-1,ME(this.lContainer,n),xE(this.lContainer,n)}create(n,t){let r=ml(this.lContainer,this.templateTNode.tView.ssrId);return Fr(this.hostLView,this.templateTNode,new kl(this.lContainer,t,n),{dehydratedView:r})}destroy(n){Ui(n[v],n)}updateValue(n,t){this.getLView(n)[F].$implicit=t}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let n=0;n<this.length;n++)this.getLView(n)[F].$index=n}getLView(n){return AE(this.lContainer,n)}};Zm=(e,n,t,r,o)=>(yr(!0),Mp(n[O],r,Pa()));_E=(e,n,t,r,o)=>(yr(!0),dD(n[O],``));Cr=void 0;OE=[`en`,[[`a`,`p`],[`AM`,`PM`]],[[`AM`,`PM`]],[[`S`,`M`,`T`,`W`,`T`,`F`,`S`],[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`]],Cr,[[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]],Cr,[[`B`,`A`],[`BC`,`AD`],[`Before Christ`,`Anno Domini`]],0,[6,0],[`M/d/yy`,`MMM d, y`,`MMMM d, y`,`EEEE, MMMM d, y`],[`h:mm a`,`h:mm:ss a`,`h:mm:ss a z`,`h:mm:ss a zzzz`],[`{1}, {0}`,Cr,Cr,Cr],[`.`,`,`,`;`,`%`,`+`,`-`,`E`,`×`,`‰`,`∞`,`NaN`,`:`],[`#,##0.###`,`#,##0%`,`¤#,##0.00`,`#E0`],`USD`,`$`,`US Dollar`,{},`ltr`,$E],Ya=Object.create(null);PE={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,Directionality:19,PluralCase:20,ExtraData:21};Gr=`en-US`;Ae={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};pS=(e,n,t,r)=>(yr(!0),cD(n[O],r));yg={};Cg=(()=>{class e{applicationErrorHandler=I(gn);appRef=I(Br);taskService=I(Bn);ngZone=I(ke);zonelessEnabled=I(Dr);tracing=I(Qn,{optional:!0});zoneIsDefined=typeof Zone<`u`&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new te;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Xt):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(I(Ua,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{let t=this.taskService.add();if(!this.runningTick&&(this.cleanup(),!this.zonelessEnabled||this.appRef.includeAllTestViews)){this.taskService.remove(t);return}this.switchToMicrotaskScheduler(),this.taskService.remove(t)})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()}))}switchToMicrotaskScheduler(){this.ngZone.runOutsideAngular(()=>{let t=this.taskService.add();this.useMicrotaskScheduler=!0,queueMicrotask(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(t)})})}notify(t){if(!this.zonelessEnabled&&t===5)return;switch(t){case 0:case 2:this.appRef.dirtyFlags|=2;break;case 3:case 4:case 5:case 1:this.appRef.dirtyFlags|=4;break;case 6:this.appRef.dirtyFlags|=2;break;case 12:this.appRef.dirtyFlags|=16;break;case 13:this.appRef.dirtyFlags|=2;break;case 11:break;default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick())return;let r=this.useMicrotaskScheduler?Jd:Fa;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>r(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>r(()=>this.tick()))}shouldScheduleTick(){return!(this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Xt+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let t=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(r){this.applicationErrorHandler(r)}finally{this.taskService.remove(t),this.cleanup()}}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let t=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(t)}}static ɵfac=function(r){return new(r||e)};static ɵprov=Lr({token:e,factory:e.ɵfac})}return e})();RS=(()=>{class e{compileModuleSync(t){return new _i(t)}compileModuleAsync(t){return Promise.resolve(this.compileModuleSync(t))}clearCache(){}clearCacheFor(t){}getModuleId(t){}static ɵfac=function(r){return new(r||e)};static ɵprov=Lr({token:e,factory:e.ɵfac})}return e})();Rc=new M(``,{factory:()=>I(Rc,{optional:!0,skipSelf:!0})||$S()})});function OS(e){let n=e.length-1;for(;n>-1;)e[n]===null&&e.splice(n,1),n--}function yR(e){return e.destroyRef}function Lt(e,n){return Ht(e,n?.equal)}function Tg(e){return nu(e)}function PS(e,n){if(typeof e==`function`)return kg(ls(e,LS,n?.equal),n?.debugName,n?.set);else return kg(ls(e.source,e.computation,e.equal),e.debugName,e.set)}function kg(e,n,t){let r=e[j],o=e;if(t!==void 0){let i=s=>cs(r,s);o.set=s=>t(s,i),o.update=s=>t(s(Tg(e)),i)}else o.set=i=>cs(r,i),o.update=i=>eu(r,i);return o.asReadonly=wr.bind(e),o}var Zr;var LS;var Ng=f(()=>{Ir();En();tu();Zr=class{destroyed=!1;listeners=null;errorHandler=I(Ge,{optional:!0});isEmitting=!1;hasNullListeners=!1;destroyRef=I(ve);constructor(){this.destroyRef.onDestroy(()=>{this.destroyed=!0,this.listeners=null})}subscribe(n){if(this.destroyed)throw new S(953,!1);return(this.listeners??=[]).push(n),{unsubscribe:()=>{let t=this.listeners?this.listeners.indexOf(n):-1;t>-1&&(this.isEmitting?(this.hasNullListeners=!0,this.listeners[t]=null):this.listeners.splice(t,1))}}}emit(n){if(this.destroyed){console.warn(nr(953,!1));return}if(this.listeners===null)return;this.isEmitting=!0;let t=y(null);try{for(let r of this.listeners)try{r!==null&&r(n)}catch(o){this.errorHandler?.handleError(o)}}finally{this.hasNullListeners&&(this.hasNullListeners=!1,this.listeners&&OS(this.listeners)),y(t),this.isEmitting=!1}}};(class e extends Error{_brand;constructor(n){super(n)}static IDLE=new e(`IDLE`);static LOADING=new e(`LOADING`)}),LS=e=>e});function Og(e,n){let t=Object.create($l);t.value=e,t.transformFn=n?.transform;function r(){if(He(t),t.value===Or)throw new S(-950,null);return t.value}return r[j]=t,r}function fj(e){return FS(e)?e.default:e}function FS(e){return e&&typeof e==`object`&&`default`in e}function pj(e){return new Zr}function xg(e,n){return Og(e,n)}function HS(e){return Og(Or,e)}function Lg(e,n){let t=Object.create($l),r=new Zr;t.value=e;function o(){return He(t),Ag(t.value),t.value}return o[j]=t,o.asReadonly=wr.bind(o),o.set=i=>{t.equal(t.value,i)||(Ue(t,i),r.emit(i))},o.update=i=>{Ag(t.value),o.set(i(t.value))},o.subscribe=r.subscribe.bind(r),o.destroyRef=r.destroyRef,o}function Ag(e){if(e===Or)throw new S(952,!1)}function _g(e,n){return Lg(e,n)}function VS(e){return Lg(Or,e)}function Rg(e,n){return hc(n)}function US(e,n){return vc(n)}function $g(e,n){return hc(n)}function BS(e,n){return vc(n)}function vj(e,n){return Cm(n)}function qS(e){return WS(H(),b(),(e&16)===16)}function WS(e,n,t){if(Ye(e)&&!t){let r=De(e.index,n);return new yn(r,r)}else if(e.type&175){let r=n[de];return new yn(r,n)}return null}function Qr(e){return!e.moduleRef}function ZS(e){let n=Qr(e)?e.r3Injector:e.moduleRef.injector,t=n.get(ke);return t.run(()=>{Qr(e)?e.r3Injector.resolveInjectorInitializers():e.moduleRef.resolveInjectorInitializers();let r=n.get(gn),o;if(t.runOutsideAngular(()=>{o=t.onError.subscribe({next:r})}),Qr(e)){let i=()=>n.destroy(),s=e.platformInjector.get(Lc);s.add(i),n.onDestroy(()=>{o.unsubscribe(),s.delete(i)})}else{let i=()=>e.moduleRef.destroy(),s=e.platformInjector.get(Lc);s.add(i),e.moduleRef.onDestroy(()=>{kr(e.allPlatformModules,e.moduleRef),o.unsubscribe(),s.delete(i)})}return KS(r,t,()=>{let i=n.get(Bn),s=i.add(),a=n.get(Ic);return a.runInitializers(),a.donePromise.then(()=>{if(Ym(n.get(Rc,Gr)||Gr),!n.get(GS,!0))return Qr(e)?n.get(Br):(e.allPlatformModules.push(e.moduleRef),e.moduleRef);if(Qr(e)){let u=n.get(Br);return e.rootComponent!==void 0&&u.bootstrap(e.rootComponent),u}else return QS?.(e.moduleRef,e.allPlatformModules),e.moduleRef}).finally(()=>{i.remove(s)})})})}function KS(e,n,t){try{let r=t();return yc(r)?r.catch(o=>{throw n.runOutsideAngular(()=>e(o)),o}):r}catch(r){throw n.runOutsideAngular(()=>e(r)),r}}function YS(e=[],n){return Se.create({name:n,providers:[{provide:va,useValue:`platform`},{provide:Lc,useValue:new Set([()=>Ki=null])},...e]})}function JS(e=[]){if(Ki)return Ki;let n=YS(e);return Ki=n,Um(),XS(n),n}function XS(e){let n=e.get(tf,null);Zo(e,()=>{n?.forEach(t=>t())})}function wj(e){let{rootComponent:n,appProviders:t,platformProviders:r,platformRef:o}=e;x(N.BootstrapApplicationStart);try{let i=o?.injector??JS(r),s=[Eg(),ef,...t||[]];return ZS({r3Injector:new Rr({providers:s,parent:i,debugName:``,runEnvironmentInitializers:!1}).injector,platformInjector:i,rootComponent:n})}catch(i){return Promise.reject(i)}finally{x(N.BootstrapApplicationEnd)}}function Dj(e){return typeof e==`boolean`?e:e!=null&&e!==`false`}function Ij(e,n){let t=n?.injector??I(Se),r=t.get(Oe),o=t.get(Hi),i=t.get(Qn,null,{optional:!0});o.impl??=t.get(Wl);let s=e;typeof s==`function`&&(s={mixedReadWrite:e});let a=t.get(Dt,null,{optional:!0}),l=new Pc(o.impl,[s.earlyRead,s.write,s.mixedReadWrite,s.read],a?.view,r,t,i?.snapshot(null));return o.impl.register(l),l}function Cj(e){let n=Ze(e);if(!n)return null;let t=new Mt(n);return{get selector(){return t.selector},get type(){return t.componentType},get inputs(){return t.inputs},get outputs(){return t.outputs},get ngContentSelectors(){return t.ngContentSelectors},get isStandalone(){return n.standalone},get isSignal(){return n.signals}}}function Ej(){return!1}var Mg;var jc;var mj;var gj;var hj;var zS;var bj;var Lc;var GS;var QS;var Ki;var Oc;var Pg;var ek;var Pc;var Kr=f(()=>{Ir();Ir();$c();$c();Ng();En();Mg=class{attributeName;constructor(n){this.attributeName=n}__NG_ELEMENT_ID__=()=>dp(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}};jc=(xg.required=HS,xg);mj=(_g.required=VS,_g);gj=(Rg.required=US,Rg);hj=($g.required=BS,$g);zS=1e4,zS-1e3,bj=(()=>{class e{static __NG_ELEMENT_ID__=qS}return e})();Lc=new M(``),GS=new M(``);Ki=null;Oc=Symbol(`NOT_SET`),Pg=new Set,ek=G(W({},et),{kind:`afterRenderEffectPhase`,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,value:Oc,cleanup:null,consumerMarkedDirty(){if(this.sequence.impl.executing){if(this.sequence.lastPhase===null||this.sequence.lastPhase<this.phase)return;this.sequence.erroredOrDestroyed=!0}this.sequence.scheduler.notify(7)},phaseFn(e){if(this.sequence.lastPhase=this.phase,!this.dirty)return this.signal;if(this.dirty=!1,this.value!==Oc&&!Jn(this))return this.signal;try{for(let o of this.cleanup??Pg)o()}finally{this.cleanup?.clear()}let n=[];e!==void 0&&n.push(e),n.push(this.registerCleanupFn);let t=Ve(this),r;try{r=this.userFn.apply(null,n)}finally{nn(this,t)}return(this.value===Oc||!this.equal(this.value,r))&&(this.value=r,this.version++),this.signal}}),Pc=class extends Nr{scheduler;lastPhase=null;nodes=[void 0,void 0,void 0,void 0];onDestroyFns=null;constructor(n,t,r,o,i,s=null){super(n,[void 0,void 0,void 0,void 0],r,!1,i.get(ve),s),this.scheduler=o;for(let a of ql){let l=t[a];if(l===void 0)continue;let c=Object.create(ek);c.sequence=this,c.phase=a,c.userFn=l,c.dirty=!0,c.signal=()=>(He(c),c.value),c.signal[j]=c,c.registerCleanupFn=u=>(c.cleanup??=new Set).add(u),this.nodes[a]=c,this.hooks[a]=u=>c.phaseFn(u)}}afterRun(){super.afterRun(),this.lastPhase=null}destroy(){if(this.onDestroyFns!==null)for(let n of this.onDestroyFns)n();super.destroy();for(let n of this.nodes)if(n)try{for(let t of n.cleanup??Pg)t()}finally{tn(n)}}}});var Fg;var Hg=f(()=>{Fg={cancel:`Abbrechen`,close:`Schließen`,remove:`Entfernen`,retry:`Erneut versuchen`,refresh:`Aktualisieren`,search:`Suchen`,loading:`Wird geladen…`,save:`Speichern`,copy:`Kopieren`,copied:`Kopiert`,start:`Starten`,stop:`Stoppen`,restart:`Neu starten`,yes:`Ja`,no:`Nein`,none:`Keine`,unknown:`Unbekannt`,nothingToPrune:`Es gab nichts aufzuräumen.`}});var Vg;var Ug=f(()=>{Vg={title:`Compose`,intro:`Projekte aus den Labels Ihrer Container. Ein gestopptes Projekt steht auch in der Liste, solange seine Container noch existieren.`,updating:`Wird aktualisiert…`,state:{running:`läuft`,partial:`teilweise`,stopped:`gestoppt`},runningOf:(e,n)=>`${String(e)} von ${String(n)}`,expand:e=>`Ausklappen: ${e}`,collapse:e=>`Einklappen: ${e}`,menuAria:e=>`Aktionen f\xFCr ${e}`,upAria:e=>`${e} hochfahren`,startAria:e=>`${e} starten`,stopAria:e=>`${e} stoppen`,restartAria:e=>`${e} neu starten`,downAria:e=>`${e} herunterfahren`,up:`Up`,down:`Down`,fileAria:e=>`Die Compose-Datei von ${e} anzeigen`,file:{button:`Datei`,title:e=>`Die Compose-Datei von ${e}`,loading:`Wird geladen…`,raw:`Wie geschrieben`,resolved:`Wie Compose sie liest`,rawHint:`Die Datei auf der Platte, unverändert.`,resolvedHint:"Overrides zusammengeführt und ${VAR} eingesetzt: darauf basiert das laufende Projekt.",empty:`Diese Datei ist leer.`,copyFailed:e=>`Kopieren fehlgeschlagen: ${e}`},noCli:`Die docker-CLI ist nicht verfügbar`,noWorkingDir:`Es ist nicht bekannt, wo dieses Projekt liegt`,busy:`Läuft… ein Up kann dauern, wenn Images geholt werden müssen.`,empty:`Keine Compose-Projekte gefunden. Sie erscheinen hier, sobald es Container mit Compose-Labels gibt.`,downDialog:{title:`Projekt herunterfahren?`,description:e=>`Die Container und Netzwerke von '${e}' werden gestoppt und entfernt. Volumes bleiben erhalten, Ihre Daten bleiben also bestehen.`,confirm:`Herunterfahren`},recreate:`Neu`,recreateAria:e=>`${e} neu aufbauen`,recreateTitle:`docker compose up -d --no-deps --force-recreate`,recreateDone:e=>`${e} wurde neu aufgebaut.`,upDone:e=>`'${e}' l\xE4uft.`,downDone:e=>`'${e}' wurde heruntergefahren.`}});var Bg;var zg=f(()=>{Bg={actions:{pause:`Pausieren`,resume:`Fortsetzen`,copyDiagnosis:`Diagnose kopieren`,copyRunCommand:`Run-Befehl kopieren`,restartPolicy:`Restart Policy…`,memoryLimit:`Speichergrenze…`,recreate:`Neu aufbauen`},page:{title:`Container`,cpuUsage:`CPU-Auslastung`,memoryUsage:`Speicherauslastung`,search:`Nach Name, Image oder ID suchen`,onlyRunning:`Nur laufende Container`,updating:`Wird aktualisiert…`,selected:e=>`${String(e)} ausgew\xE4hlt`,empty:`Keine Container gefunden.`,columns:{name:`Name`,id:`Container-ID`,image:`Image`,ports:`Ports`,cpu:`CPU`,memory:`Speicher`,actions:`Aktionen`},group:{loose:`Einzelne Container`,expand:e=>`Ausklappen: ${e}`,collapse:e=>`Einklappen: ${e}`,count:e=>e===1?`1 Container`:`${String(e)} Container`,running:e=>`${String(e)} laufend`,startAll:`Alle starten`,stopAll:`Alle stoppen`,restartAll:`Alle neu starten`,removeAll:`Alle entfernen`,menu:e=>`Aktionen f\xFCr alle in ${e}`,manual:`Eigene Gruppe`,addToGroup:`Zu Gruppe hinzufügen…`,removeFromGroup:`Aus Gruppe nehmen`,rename:`Gruppe umbenennen…`,dissolve:`Gruppe auflösen`},groupDialog:{assignTitle:`Zu Gruppe hinzufügen`,assignOne:e=>`'${e}' kommt in die Gruppe, die du hier benennst.`,assignMany:e=>`${String(e)} Container kommen in die Gruppe, die du hier benennst.`,renameTitle:`Gruppe umbenennen`,renameDescription:e=>`Alles in '${e}' zieht mit dem neuen Namen um.`,nameLabel:`Gruppenname`,namePlaceholder:`zum Beispiel mein-stack`,existing:`Vorhandene Gruppen`,hint:`Eine eigene Gruppe lebt in dieser App und folgt dem Containernamen; Docker selbst weiß nichts davon.`,empty:`Bitte einen Namen eingeben.`,reserved:e=>`'${e}' ist bereits ein Compose-Projekt.`,submit:`Speichern`},row:{diagnosisOf:e=>`Diagnose von ${e}`,missingNetwork:e=>`L\xE4uft, h\xE4ngt aber nicht an ${e}`,menu:e=>`Aktionen f\xFCr ${e}`},confirm:{title:`Container entfernen?`,one:e=>`'${e}' wird gestoppt und entfernt. Das l\xE4sst sich nicht r\xFCckg\xE4ngig machen; Volumes bleiben erhalten.`,many:e=>`${e===1?`1 Container wird`:`${String(e)} Container werden`} gestoppt und entfernt. Das l\xE4sst sich nicht r\xFCckg\xE4ngig machen; Volumes bleiben erhalten.`,group:(e,n)=>`Die ${String(e)} Container von '${n}' werden gestoppt und entfernt. Das l\xE4sst sich nicht r\xFCckg\xE4ngig machen; Volumes bleiben erhalten.`}},detail:{back:`‹ Container`,menu:`Aktionen für diesen Container`,gone:` existiert nicht mehr. Ein Container mit --rm verschwindet, sobald er stoppt, und compose legt beim Up einen neuen an.`,goneUnnamed:`Diesen Container gibt es nicht mehr.`,successor:(e,n)=>`Zum aktuellen ${e} (${n})`,tabsLabel:`Container-Details`,tabs:{logs:`Logs`,health:`Health`,events:`Ereignisse`,inspect:`Inspect`,stats:`Stats`,terminal:`Terminal`,files:`Dateien`,networks:`Netzwerke`,assistant:`Claude`},wiring:{network:e=>`L\xE4uft, h\xE4ngt aber nicht an ${e}. \xDCber dieses Netzwerk erreicht ihn nichts, und er nichts.`,networkWhy:`Das passiert, wenn das Netzwerk entfernt und neu erstellt wurde, während der Container existierte.`,connect:e=>`An ${e} anh\xE4ngen`,ports:e=>`L\xE4uft, ver\xF6ffentlicht ${e} aber nicht.`,portsWhy:`Das passiert, wenn er nach einem Start, der an einem belegten Port scheiterte, noch einmal gestartet wurde.`,portsFromNetwork:`Das folgt aus dem fehlenden Netzwerk oben: Ports laufen über ein Netzwerk.`,restart:`Neu starten`},events:{loading:`Wird geladen…`,empty:`Noch nichts aufgezeichnet. Die App zeichnet ab ihrem Start auf, plus was Docker dann noch wusste.`,scope:`In der App seit ihrem Start aufgezeichnet, bis zu 100 pro Containername; nach einem Neustart der App ergänzt Docker, was es noch weiß.`,crashLoop:e=>`In der letzten Stunde ${String(e)}-mal abgest\xFCrzt.`,create:`Erstellt`,start:`Gestartet`,exited:e=>e===0?`Normal beendet`:`Beendet mit Code ${String(e)}`,exitedUnknown:`Beendet`,exitHint137:`SIGKILL: von außen beendet, oft Speicher voll oder ein Stopp, der zu lange dauerte`,exitHint143:`SIGTERM: zum Beenden aufgefordert`,kill:e=>`${e} gesendet`,oom:`Vom Kernel beendet: Speicher voll`,stop:`Gestoppt`,restart:`Neu gestartet`,pause:`Pausiert`,unpause:`Fortgesetzt`,destroy:`Entfernt`,rename:e=>`Umbenannt, war ${e}`,renamed:`Umbenannt`,health:{starting:`Healthcheck beginnt`,healthy:`Healthy geworden`,unhealthy:`Unhealthy geworden`}},health:{loading:`Wird geladen…`,refresh:`Aktualisieren`,status:{starting:`starting`,healthy:`healthy`,unhealthy:`unhealthy`,unknown:`noch nicht gelaufen`},failingStreak:e=>e===1?`einmal fehlgeschlagen`:`${String(e)} mal hintereinander fehlgeschlagen`,command:`Befehl`,fromImage:`Kommt aus dem Image; der Daemon nennt den Befehl nicht.`,rhythm:`Rhythmus`,every:e=>`alle ${e}`,timeout:e=>`Timeout ${e}`,startPeriod:e=>`Start period ${e}`,retries:e=>e===1?`1 Versuch bis unhealthy`:`${String(e)} Versuche bis unhealthy`,defaults:`die Standardwerte von Docker`,probes:`Letzte Ergebnisse`,noProbes:`Die Prüfung ist noch nicht gelaufen.`,exitCode:e=>`Exit-Code ${String(e)}`,unknownExitCode:`kein Exit-Code`,noOutput:`keine Ausgabe`},networks:{title:`Hängt an diesen Netzwerken`,loading:`Wird geladen…`,empty:`Dieser Container hängt an keinem Netzwerk.`,noAddress:`keine Adresse`,alsoKnownAs:e=>`auch erreichbar als ${e}`,disconnect:`Trennen`,disconnectFrom:e=>`Von ${e} trennen`,addTitle:`Mit einem Netzwerk verbinden`,addHint:`Wirkt sofort, auch während der Container läuft.`,allConnected:`Dieser Container hängt schon an jedem Netzwerk.`,networkLabel:`Netzwerk`,choose:`Netzwerk wählen…`,alias:`Zusätzlicher Name im Netzwerk`,aliasHint:`Ein zusätzlicher Name, unter dem die anderen Container in diesem Netzwerk ihn ansprechen können, neben dem Containernamen.`,aliasPlaceholder:`datenbank`,connect:`Verbinden`,working:`Läuft…`,invalidAlias:e=>`'${e}' ist kein g\xFCltiger Name. Nehmen Sie Buchstaben, Ziffern, Punkte, Bindestriche und Unterstriche.`},fetching:`Wird geladen…`,terminalLoading:`Terminal wird geladen…`,shellOnlyRunning:`Eine Shell lässt sich nur in einem laufenden Container öffnen.`,cpu:`CPU`,lastMinute:e=>`letzte Minute \xB7 Spitze ${e} %`,chartPending:`das Diagramm erscheint nach ein paar Messwerten`,memory:`Speicher`,ofLimit:e=>`${e} % des Limits`,noLimit:`kein Limit gesetzt`,nearLimit:`Nahe an der Grenze: darüber beendet der Kernel Prozesse im Container.`,statsOnlyRunning:`Stats werden nur für einen laufenden Container erfasst.`,confirmTitle:`Container entfernen?`,confirmDescription:`Dieser Container wird gestoppt und entfernt. Das lässt sich nicht rückgängig machen; Volumes bleiben erhalten.`},diagnosis:{title:`Diagnose kopieren`,description:`Status, Health, Mounts, Events und die letzten Logzeilen, zum Einfügen in einen Chat oder ein Issue. Genau das wird kopiert.`,collecting:`Wird gesammelt…`,noRedactions:`Nichts ausgelassen; kein Wert sah nach einem Geheimnis aus.`,redactions:e=>`${e===1?`1 Wert`:`${String(e)} Werte`} ausgelassen: Umgebungsvariablen und alles, was nach einem Passwort, Token oder Schl\xFCssel aussah.`,copyFailed:e=>`Kopieren fehlgeschlagen: ${e}`},memoryLimit:{title:`Speichergrenze`,description:`Wie viel Speicher der Container nutzen darf. Wirkt sofort; der Container wird dafür nicht neu erstellt.`,loading:`Wird geladen…`,current:e=>`Jetzt: ${e}`,none:`Jetzt: keine Grenze`,label:`Grenze`,unit:`Einheit`,noRemove:`Eine Grenze entfernen geht so nicht: Docker ändert sie nur. Für keine Grenze muss der Container neu erstellt werden.`,compose:`Das ist ein Compose-Container: compose up stellt wieder her, was in der Compose-Datei steht.`,save:`Speichern`,saving:`Wird gespeichert…`,saved:e=>`Die Speichergrenze ist jetzt ${e}.`,invalid:`Geben Sie eine Zahl größer als null ein.`},restartPolicy:{title:`Restart Policy`,description:`Was der Daemon tut, wenn dieser Container stoppt. Wirkt sofort; der Container wird dafür nicht neu erstellt.`,loading:`Wird geladen…`,label:`Richtlinie`,names:{no:`Nie`,always:`Immer`,"unless-stopped":`Außer wenn Sie ihn selbst gestoppt haben`,"on-failure":`Nur nach einem Fehlercode`},maximum:`Höchstens so viele Versuche`,maximumHint:`0 bedeutet, es weiter zu versuchen.`,save:`Speichern`,saving:`Wird gespeichert…`,saved:e=>`Die Restart Policy steht jetzt auf ${e}.`},runCommand:{title:`Run-Befehl kopieren`,description:`Der Befehl, der diesen Container neu erstellt, abgeleitet aus inspect. Was aus dem Image kommt, bleibt weg.`,building:`Wird abgeleitet…`,composeNote:e=>`Dieser Container geh\xF6rt zum Compose-Projekt ${e}; dort ist docker compose up die Antwort. So l\xE4uft er gerade.`,envWarning:e=>`${e===1?`1 Umgebungsvariable steht`:`${String(e)} Umgebungsvariablen stehen`} darin, samt Passw\xF6rtern: der Befehl muss funktionieren.`,noEnv:`Keine eigenen Umgebungsvariablen.`,copyFailed:e=>`Kopieren fehlgeschlagen: ${e}`},logs:{filter:`Nach Text filtern`,follow:`Folgen`,timestamps:`Zeitstempel`,clear:`Leeren`,save:`Speichern…`,saveHint:`Das ganze Log von Docker, mit Zeitstempeln; nicht nur, was Sie hier sehen.`,saved:(e,n)=>`${String(e)} Zeilen gespeichert in ${n}`,connecting:`Wird verbunden…`,count:(e,n)=>`${String(e)} von ${String(n)} Zeilen`,truncated:`älteste Zeilen verworfen`,empty:`Noch keine Logzeilen.`,noMatches:`Dazu passen keine Zeilen.`},files:{up:`Einen Ordner nach oben`,path:`Pfad im Container`,refresh:`Aktualisieren`,changed:`Geändert`,changesTitle:`Geändert gegenüber dem Image`,changesCount:e=>e===1?`1 Pfad`:`${String(e)} Pfade`,changesEmpty:`Dieser Container hat nichts an seinem Image geändert.`,changesHint:`Ordner, die sich nur geändert haben, weil etwas darin liegt, fehlen hier. Volumes zählen nicht mit.`,changeKind:{added:`hinzugefügt`,modified:`geändert`,deleted:`gelöscht`},openFolderOf:e=>`Den Ordner von ${e} \xF6ffnen`,upload:`Hochladen…`,empty:`Dieser Ordner ist leer.`,downloadFolder:e=>`Ordner als tar herunterladen: ${e}`,downloadFile:e=>`Herunterladen: ${e}`,hint:e=>`Legen Sie Dateien hier ab, um sie in ${e} zu legen. Ein Ordner wird als .tar heruntergeladen, damit Rechte und Symlinks erhalten bleiben.`,savedAs:e=>`Gespeichert als ${e}.`,uploaded:(e,n)=>`${e===1?`1 Datei`:`${String(e)} Dateien`} in ${n} gelegt.`},terminal:{exited:`Die Shell wurde beendet.`,reopen:`Erneut öffnen`,connecting:`Wird verbunden…`,connected:`verbunden`},assistant:{introHost:`Claude bekommt einen Überblick über die Engine und die Container, liest im Terminal mit und fordert Logs und Inspect selbst an. Jede Anfrage steht unten in der Liste, Geheimnisse bleiben draußen. Claude tippt nie selbst etwas: ein vorgeschlagener Befehl wird zu einer Schaltfläche, die ihn auf den Prompt setzt, und Sie drücken Enter.`,introContainer:`Claude bekommt die Diagnose dieses Containers, ohne Geheimnisse, und fordert danach selbst Logs, Inspect, Events oder die anderen Container an. Jede Anfrage steht unten in der Liste. Claude ändert selbst nichts: ein Vorschlag wird zu einer Schaltfläche, und Sie entscheiden.`,defaultQuestion:`Was ist mit diesem Container los, und was kann ich dagegen tun?`,defaultHostQuestion:`Was siehst du im Terminal, und was bedeutet das?`,onPrompt:`Auf dem Prompt`,done:`Fertig`,thinking:`Claude denkt nach…`,questionLabel:`Frage an Claude`,followUp:`Anschlussfrage`,ask:`Claude fragen`,putInTerminal:`Ins Terminal setzen`,composeUp:e=>`compose up f\xFCr ${e}`,start:e=>`${e} starten`,stop:e=>`${e} stoppen`,restart:e=>`${e} neu starten`,panelClosed:`Das Panel wurde geschlossen.`,usage:(e,n,t)=>`${e} Tokens rein, ${n} aus dem Cache, ${t} raus`}}});var qg;var Wg=f(()=>{qg={title:`Dashboard`,engine:{connecting:`Verbindung zu Docker wird hergestellt…`,running:`Engine läuft`,unreachable:`Engine nicht erreichbar`,startDistro:e=>`${e} starten`,startingDistro:e=>`${e} wird gestartet\u2026`,startDaemon:e=>`Docker in ${e} starten`,startingDaemon:e=>`Docker wird in ${e} gestartet\u2026`,daemonHint:e=>`${e} l\xE4uft, es ist also der Daemon darin, der steht. Die App kann ihn dort starten.`,idleHint:{intro:e=>`${e} wurde vorhin gestartet, ist aber wieder gestoppt. WSL f\xE4hrt eine Distro ohne offene Sitzung nach 15 Sekunden herunter; setzen Sie`,under:`unter`,in:`in`,outro:`, damit sie weiterläuft.`}},contexts:{switchFailed:e=>`Wechsel zu ${e} nicht m\xF6glich`},usage:{cpu:`CPU über alle Container`,memory:`Arbeitsspeicher`,memoryChart:`Arbeitsspeicher über alle Container`,network:`Netzwerk über alle Container`,networkChart:`Netzwerkverkehr über alle Container`,received:`Empfangen`,sent:`Gesendet`,receivedAria:`empfangen`,sentAria:`gesendet`,hostNote:`Container mit network_mode: host zählen nicht mit; sie haben keine eigenen Zähler.`},counts:{containers:`Container`,runningOfTotal:`laufend von gesamt`,images:`Images`,volumesNetworks:`Volumes · Netzwerke`},disk:{title:`Speicherbelegung`,total:e=>`${e} insgesamt`,calculating:`wird berechnet…`,prune:`Aufräumen`,pruning:`Wird aufgeräumt…`,unused:e=>`${String(e)} ungenutzt`,labels:{images:`Images`,containers:`Container`,volumes:`Volumes`,buildCache:`Build-Cache`},footnoteBefore:`Dieselben Zahlen wie`,footnoteAfter:`. Wie viel Platz das Aufräumen tatsächlich freigibt, steht hier nicht: das hängt von gemeinsam genutzten Layern ab, und eine Schätzung, die wie eine Tatsache aussieht, ist schlechter als gar keine Zahl.`},attention:{title:`Braucht Aufmerksamkeit`,none:`Alles in Ordnung: keine Absturzschleifen, nichts unhealthy, alles angehängt.`,loading:`Wird geprüft…`,crashLoop:e=>`in der letzten Stunde ${String(e)}-mal abgest\xFCrzt`,restarting:`startet immer wieder neu`,unhealthy:`Healthcheck schlägt fehl`,network:e=>`l\xE4uft, h\xE4ngt aber nicht an ${e}`,ports:e=>`l\xE4uft, ver\xF6ffentlicht ${e} aber nicht`,update:e=>`es gibt eine neuere Version von ${e}`},stopped:{title:`Kürzlich gestoppt`,none:`Es ist nichts gestoppt.`,clean:`sauber beendet`,failed:e=>`beendet mit Code ${String(e)}`,created:e=>`erstellt ${e}`},pruneDialog:{title:`Aufräumen`,description:`Was Sie ankreuzen, wird entfernt und lässt sich nicht wiederherstellen.`,confirm:`Aufräumen`,containers:`Gestoppte Container`,containersHint:`Ein pausierter Container bleibt erhalten.`,networks:`Ungenutzte Netzwerke`,networksHint:`bridge, host und none bleiben immer erhalten.`,images:`Images ohne Tag`,imagesHint:`Meist Überbleibsel eines neueren Builds.`,allImages:`Auch getaggte Images ohne Container`,allImagesHint:`Sie müssen sie danach erneut pullen.`,buildCache:`Build-Cache`,buildCacheHint:`Alles, was nicht in Gebrauch ist. Der nächste Build dauert länger.`,volumes:`Anonyme Volumes`,volumesHint:`Benannte Volumes bleiben erhalten. In denen stehen Daten.`},pruneResult:{removed:{containers:e=>e===1?`1 Container`:`${String(e)} Container`,networks:e=>e===1?`1 Netzwerk`:`${String(e)} Netzwerke`,volumes:e=>e===1?`1 Volume`:`${String(e)} Volumes`,images:e=>e===1?`1 Image`:`${String(e)} Images`,buildCache:e=>e===1?`1 Build-Cache-Eintrag`:`${String(e)} Build-Cache-Eintr\xE4ge`},kinds:{containers:`Container`,networks:`Netzwerke`,volumes:`Volumes`,images:`Images`,buildCache:`Build-Cache`},and:`und`,notice:(e,n)=>`${e} entfernt, ${n} freigegeben.`,problem:e=>`Aufr\xE4umen von ${e} nicht m\xF6glich`}}});var Gg;var Zg=f(()=>{Gg={justNow:`gerade eben`,hoursAgo:e=>e===1?`vor 1 Stunde`:`vor ${String(e)} Stunden`,yesterday:`gestern`,daysAgo:e=>`vor ${String(e)} Tagen`,lastMonth:`letzten Monat`,monthsAgo:e=>`vor ${String(e)} Monaten`,lastYear:`letztes Jahr`,yearsAgo:e=>`vor ${String(e)} Jahren`}});var Qg;var Kg;var Yg;var Jg=f(()=>{Qg=e=>`${String(e)} Image${e===1?``:`s`}`,Kg=e=>`${String(e)} Container`,Yg={title:`Images`,diskSpace:`Speicherplatz`,unused:`Ungenutzt`,menuLabel:`Image-Aktionen`,searchLabel:`Nach Repository, Tag oder ID suchen`,onlyUnused:`Nur ungenutzte Images`,refreshing:`Wird aktualisiert…`,updatesHint:`Beim Aktualisieren wird das neue Image geholt. Ein laufender Container behält das alte, bis er neu angelegt wird; bei einem Container aus einem Compose-Projekt bietet die App das nach dem Pull an.`,selected:e=>`${String(e)} ausgew\xE4hlt`,empty:`Keine Images gefunden.`,columns:{repository:`Repository`,tag:`Tag`,imageId:`Image-ID`,inUse:`In Gebrauch`,created:`Erstellt`,size:`Größe`,actions:`Aktionen`},badge:{newer:`neuere Version`,notInRegistry:`nicht in der Registry`,uncheckable:`nicht prüfbar`},containerCount:Kg,updateTitle:e=>`Aktualisieren: ${e} erneut pullen`,rowMenu:e=>`Aktionen f\xFCr ${e}`,rowUpdate:`Neuere Version pullen`,rowRun:`Container starten…`,rowLayers:`Schichten…`,runLabel:e=>`Einen Container aus ${e} starten`,runLabelDangling:`Einen Container aus diesem Image ohne Tag starten`,layers:{title:e=>`Schichten von ${e}`,description:`Neueste zuerst, so wie docker history sie zeigt: die letzte Zeile des Dockerfiles oben.`,loading:`Wird geladen…`,summary:(e,n)=>`${e===1?`1 Schicht`:`${String(e)} Schichten`} \xB7 Image ${n}`,packed:e=>`Die Schichten ergeben zusammen ${e}: bei diesem Speicher meldet Docker jede Schicht so, wie sie ankam \u2014 gepackt. Auf der Platte ist das Image gr\xF6\xDFer.`,noSize:`ändert nichts auf der Platte`,expand:`Den ganzen Befehl zeigen`,empty:`Dieses Image meldet keine Schichten.`},menu:{pull:`Image pullen`,check:`Nach Updates suchen`,checking:`Wird geprüft…`,pruneDangling:`Ohne Tag aufräumen`,pruneUnused:`Ungenutzte aufräumen`},remove:{title:`Image entfernen?`,description:e=>`'${e}' wird entfernt. Hat dieses Image weitere Tags, verschwindet nur dieser Tag.`,forceTitle:`Image erzwungen entfernen?`,forceDescription:(e,n)=>`'${e}' wird von ${Kg(n)} benutzt. Es l\xE4sst sich nur erzwungen entfernen, und diese Container funktionieren dann nicht mehr.`,forceConfirm:`Trotzdem entfernen`,manyTitle:`Images entfernen?`,manyDescription:e=>`${Qg(e)} werden entfernt. Images, die noch in Gebrauch sind, werden \xFCbersprungen.`},prune:{allTitle:`Alle ungenutzten Images aufräumen?`,allDescription:`Alles ohne angehängten Container wird entfernt, auch Images, die Sie selbst gepullt haben. Sie müssen sie erneut pullen.`,danglingTitle:`Images ohne Tag aufräumen?`,danglingDescription:`Images ohne Tag werden entfernt. Das sind meist Überbleibsel eines neueren Builds.`,confirm:`Aufräumen`},pruned:(e,n)=>`${Qg(e)} entfernt, ${n} freigegeben.`,check:{allCurrent:`Alles ist aktuell`,updates:e=>`${e===1?`1 Image hat`:`${String(e)} Images haben`} eine neuere Version`,notInRegistry:e=>`${String(e)} nicht in einer Registry`,uncheckable:e=>`${String(e)} nicht pr\xFCfbar`,summary:(e,n)=>`${e} (${String(n)} gepr\xFCft).`},pullDialog:{title:`Image pullen`,nameAndTag:`Name und Tag, zum Beispiel`,withoutTag:`Ohne Tag wird`,isUsed:`benutzt.`,inputLabel:`Image`,submit:`Pullen`,staleHeading:`Diese Container laufen noch mit der vorherigen Version:`,inProject:e=>`in ${e}`,notCompose:`nicht mit compose gestartet; legen Sie ihn selbst neu an`,renewed:e=>`Neu angelegt: ${e}.`,renew:`Container neu anlegen`,renewing:`Wird neu angelegt…`,renewHint:`Bei compose nur diese Services.`},runDialog:{title:`Container starten`,fromImage:`Aus Image`,name:`Name`,namePlaceholder:`leer lassen = Docker wählt einen`,autoRestart:`Automatisch neu starten`,autoRestartHint:`Nach einem Absturz oder wenn Docker neu startet. Nicht, wenn Sie ihn selbst stoppen.`,ports:`Ports`,portsHint:`Einen Port des Containers von diesem Rechner aus erreichbar machen, zum Beispiel localhost:8080.`,onThisComputer:`Auf diesem Rechner`,inContainer:`Im Container`,protocolHeader:`Protokoll`,hostPortPlaceholder:`leer = beliebiger freier Port`,addPort:`Port hinzufügen`,hostPort:e=>`Host-Port ${String(e)}`,containerPort:e=>`Container-Port ${String(e)}`,protocol:e=>`Protokoll ${String(e)}`,removePort:e=>`Port ${String(e)} entfernen`,network:`Netzwerk`,networkHint:`Container in einem selbst angelegten Netzwerk erreichen sich gegenseitig über den Namen. Im Standardnetzwerk nicht.`,networkDefault:`Standard (bridge)`,networkAlias:`Zusätzlicher Name im Netzwerk`,networkAliasHint:`Ein zusätzlicher Name, unter dem die anderen Container in diesem Netzwerk ihn ansprechen können, neben dem Containernamen.`,networkAliasPlaceholder:`datenbank`,invalidAlias:e=>`'${e}' ist kein g\xFCltiger Name. Nehmen Sie Buchstaben, Ziffern, Punkte, Bindestriche und Unterstriche.`,volumes:`Volumes`,volumesHint:`Daten, die den Container überleben müssen: ein Volume oder ein Ordner auf der Docker-Maschine.`,source:`Volume oder Ordner`,addVolume:`Volume hinzufügen`,sourcePlaceholder:`my-data oder /srv/data`,targetPlaceholder:`/pfad/im/container`,volumeSource:e=>`Volume-Quelle ${String(e)}`,volumeTarget:e=>`Volume-Ziel ${String(e)}`,readOnly:`nur lesen`,readOnlyHint:`Der Container kann die Dateien lesen, aber nicht ändern.`,removeVolume:e=>`Volume ${String(e)} entfernen`,env:`Umgebungsvariablen`,envHint:`Einstellungen für das Programm im Container. Sie können auch NAME=wert einfügen.`,envNameHeader:`Name`,envValueHeader:`Wert`,addEnv:`Variable hinzufügen`,envName:e=>`Variablenname ${String(e)}`,envValue:e=>`Variablenwert ${String(e)}`,removeEnv:e=>`Variable ${String(e)} entfernen`,submit:`Starten`,starting:`Wird gestartet…`,invalidContainerPort:e=>`'${e}' ist kein g\xFCltiger Container-Port. Nehmen Sie eine Zahl von 1 bis 65535.`,invalidHostPort:e=>`'${e}' ist kein g\xFCltiger Host-Port. Lassen Sie ihn leer, damit Docker einen w\xE4hlt.`,volumeIncomplete:`Ein Volume braucht eine Quelle und ein Ziel.`,notAbsolute:e=>`'${e}' ist kein absoluter Pfad. Das Ziel im Container beginnt mit einem /.`,envNameMissing:`Eine Variable braucht einen Namen.`,envNameWithEquals:e=>`'${e}' darf kein = enthalten; das trennt den Namen vom Wert.`}}});var Xg;var eh=f(()=>{Xg={title:`Logs`,intro:`Alles, was Ihre laufenden Container schreiben, nach Zeit ineinander verschränkt. Ein Container, der startet oder stoppt, kommt von selbst hinzu oder fällt weg.`,projectLabel:`Compose-Projekt`,allProjects:`Alle Container`,searchLabel:`Logs durchsuchen`,searchPlaceholder:`Suchbegriff oder ein Ausdruck wie /error|warn/`,caseSensitive:`Groß-/Kleinschreibung beachten`,containers:`Container`,nothingRunning:`Es läuft nichts.`,showAll:`Alles wieder einschalten`,timestamps:`Zeitstempel`,clear:`Leeren`,columns:{time:`Zeit`,object:`Objekt`,line:`Zeile`},allFiltered:e=>e===1?`Die einzige Zeile wird vom Filter verborgen.`:`Alle ${String(e)} Zeilen werden vom Filter verborgen.`,empty:`Noch keine Zeilen. Sobald ein Container etwas schreibt, erscheint es hier.`,lineCount:e=>e===1?`1 Zeile`:`${String(e)} Zeilen`,filteredOut:e=>`${String(e)} herausgefiltert`,truncated:`Ältere Zeilen sind aus dem Puffer gefallen.`,invalidExpression:e=>`Kein g\xFCltiger Ausdruck: ${e}`,levels:{label:`Stufe`,errors:`Fehler`,warnings:`Warnungen`,unknownHidden:`Zeilen ohne erkennbare Stufe, etwa ein Stacktrace unter einem Fehler, blendet dieser Filter aus.`}}});var nh;var th;var rh;var oh=f(()=>{nh=e=>`${String(e)} ${e===1?`Netzwerk`:`Netzwerke`}`,th=e=>`${String(e)} Container`,rh={title:`Netzwerke`,unused:`Ungenutzt`,menuLabel:`Netzwerkaktionen`,searchLabel:`Nach Name oder Driver suchen`,hideBuiltIn:`Eingebaute Netzwerke ausblenden`,refreshing:`Wird aktualisiert…`,selected:e=>`${String(e)} ausgew\xE4hlt`,empty:`Keine Netzwerke gefunden.`,builtIn:`eingebaut`,internal:`intern`,columns:{name:`Name`,driver:`Driver`,scope:`Scope`,subnet:`Subnetz`,connected:`Verbunden`,actions:`Aktionen`},containerCount:th,rowMenu:e=>`Aktionen f\xFCr ${e}`,rowMembers:`Wer ist verbunden…`,members:{title:e=>`Verbunden mit ${e}`,description:`Dieselben Container, auf denen die Anzahl auf dieser Seite beruht, auch gestoppte.`,loading:`Wird geladen…`,empty:`Kein Container ist mit diesem Netzwerk verbunden.`,noAddress:`keine Adresse`,stopped:`gestoppt`},builtInReason:`Eingebautes Docker-Netzwerk; kann nicht entfernt werden`,connectedReason:e=>`${th(e)} verbunden; trennen Sie sie zuerst`,menu:{create:`Netzwerk anlegen…`,pruneUnused:`Ungenutzte aufräumen`},createDialog:{title:`Netzwerk anlegen`,description:`Ein eigenes Netzwerk, in dem Container einander über den Namen finden.`,nameLabel:`Name`,namePlaceholder:`mein-netzwerk`,internal:`Nur intern`,internalHint:`Die Container erreichen einander, haben aber keine Route nach außen.`,advanced:`Erweitert`,driverLabel:`Driver`,driverHint:`Lassen Sie das auf bridge, außer Sie betreiben einen Swarm oder benutzen ein Netzwerk-Plugin.`,subnetLabel:`Subnetz`,subnetHint:`Leer lassen, dann sucht Docker selbst einen freien Bereich aus.`,gatewayLabel:`Gateway`,gatewayHint:`Muss im Subnetz liegen. Leer bedeutet die erste Adresse des Bereichs.`,submit:`Anlegen`,creating:`Wird angelegt…`},remove:{title:`Netzwerk entfernen?`,description:e=>`'${e}' wird entfernt. Container, die sp\xE4ter daran h\xE4ngen, finden es nicht mehr.`,manyTitle:`Netzwerke entfernen?`,manyDescription:e=>`${nh(e)} werden entfernt. Netzwerke mit verbundenen Containern und die eingebauten Netzwerke werden \xFCbersprungen.`},prune:{title:`Ungenutzte Netzwerke aufräumen?`,description:`Jedes Netzwerk ohne verbundenen Container wird entfernt. Das gibt keinen Speicherplatz frei; es hält die Liste übersichtlich.`,confirm:`Aufräumen`},pruned:e=>`${nh(e)} entfernt.`,created:e=>`Netzwerk ${e} wurde angelegt.`}});var ih;var sh=f(()=>{ih={title:`Einstellungen`,language:{heading:`Sprache`,label:`Sprache der App`,hint:`Fachbegriffe wie container, image und volume bleiben englisch.`},startup:{heading:`Start`,startAtLogin:`Beim Anmelden starten, direkt in den Infobereich`,paletteShortcut:`Strg+Umschalt+Leertaste öffnet die Suche, überall in Windows`,shortcutTaken:`Strg+Umschalt+Leertaste gehört schon einem anderen Programm; die Tastenkombination funktioniert jetzt nicht.`,hintAvailable:`So kommen die Meldungen unten auch an, wenn Sie die App nicht selbst öffnen. Hier ausschalten, oder im Task-Manager unter Autostart-Apps.`,hintUnavailable:`Funktioniert nur in der installierten App. Hier würde Windows eine nackte electron.exe starten.`},notifications:{heading:`Meldungen`,crash:`Wenn ein Container unerwartet stoppt`,unhealthy:`Wenn ein Container unhealthy wird`,wiring:`Wenn ein Container sein Netzwerk oder seine Ports verliert`,hint:`Ein Container, den Sie selbst stoppen — aus der App, dem Terminal oder mit compose down — löst nie eine Meldung aus. Derselbe Container meldet sich höchstens einmal pro Minute.`},update:{heading:`Updates`,version:e=>`Version ${e}`,install:`Neu starten und aktualisieren`,check:`Jetzt prüfen`,auto:`Nach neuen Versionen suchen und sie vorab herunterladen`,unavailable:`Nur die installierte App unter Windows aktualisiert sich selbst. Bei npm aktualisieren Sie über npm.`,idle:`Eine neue Version wird heruntergeladen und installiert, sobald Sie die App schließen.`,checking:`Es wird nach einer neuen Version gesucht…`,upToDate:e=>`Das ist die neueste Version. Gepr\xFCft um ${e}.`,downloading:(e,n)=>`Version ${e} wird heruntergeladen\u2026 ${String(n)} %`,ready:e=>`Version ${e} liegt bereit und wird installiert, wenn Sie die App schlie\xDFen. Starten Sie neu, um sie jetzt zu installieren.`,error:e=>`Pr\xFCfen fehlgeschlagen: ${e}`},servers:{heading:`Server`,hint:`Docker-Hosts über SSH oder TCP. Sie werden als docker-Contexts gespeichert, also kennt die docker-CLI sie auch. Mit der Auswahl in der Statusleiste wechseln Sie zwischen ihnen.`,empty:`Noch keine Server.`,inUse:`in Gebrauch`,cli:`CLI`,test:`Testen`,testing:`Wird getestet…`,remove:`Entfernen`,removeBlocked:`Von der App oder der docker-CLI benutzt. Wechseln Sie zuerst zu einem anderen Context.`,removeTitle:e=>`Server '${e}' entfernen?`,removeDescription:`Das entfernt den docker-Context, auch für die docker-CLI. Auf dem Server selbst ändert sich nichts.`,connected:(e,n,t)=>`Verbunden: Docker ${e} auf ${n}/${t}.`,unknownHostKey:(e,n)=>`${e} ist noch nicht bekannt. Vergleichen Sie diesen ${n}-Fingerabdruck mit dem auf dem Server (ssh-keygen -lf /etc/ssh/ssh_host_*_key.pub), bevor Sie ihm vertrauen:`,trust:`Vertrauen und erneut testen`,add:{heading:`Einen Server hinzufügen`,name:`Name`,namePlaceholder:`heimserver`,kind:`Verbindung`,ssh:`SSH`,tcp:`TCP`,username:`Benutzer`,usernamePlaceholder:`leer: Benutzer dieses Rechners`,host:`Host`,hostPlaceholder:`192.168.1.16`,port:`Port`,description:`Beschreibung`,descriptionPlaceholder:`optional`,submit:`Hinzufügen`,tcpWarning:`Reines TCP hat keine Authentifizierung: wer im Netzwerk den Port erreicht, steuert Docker. Nehmen Sie lieber SSH.`,added:e=>`Server '${e}' hinzugef\xFCgt.`}},assistant:{configured:`Ein Schlüssel ist hinterlegt.`,clearKey:`Schlüssel entfernen`,keyLabel:`API-Schlüssel`,model:`Modell`,modelHint:`Opus denkt am besten über ein hartnäckiges Problem nach; Sonnet und Haiku antworten schneller und kosten weniger. Haiku liest außerdem weniger auf einmal.`,hint:`Mit Ihrem eigenen Claude-API-Schlüssel bekommt jeder Container einen Claude-Tab, der beim Eingrenzen eines Problems hilft. Der Schlüssel wird verschlüsselt auf diesem Rechner gespeichert und ist nur für Ihren Windows-Benutzer lesbar. Jede Frage kostet ein paar Cent API-Nutzung, auf Ihrem Konto.`}}});var ah;var lh=f(()=>{ah={nav:{label:`Hauptnavigation`,dashboard:`Dashboard`,containers:`Container`,images:`Images`,volumes:`Volumes`,networks:`Netzwerke`,compose:`Compose`,logs:`Logs`,terminal:`Terminal`,settings:`Einstellungen`},routes:{container:`Container`},header:{search:`Suchen (Strg+K)`,lightTheme:`Helles Design`,darkTheme:`Dunkles Design`,quit:`Docker Client MX beenden`},statusBar:{connecting:`Verbindung zu Docker wird hergestellt…`,engineRunning:`Engine läuft`,engineUnreachable:`Engine nicht erreichbar`,containers:(e,n)=>`${String(e)} von ${String(n)} Containern`,images:e=>e===1?`1 Image`:`${String(e)} Images`,reconnect:`Neu verbinden`},contextPicker:{label:`Docker-Context`,switching:`Wird gewechselt…`,unsupported:`nicht unterstützt`,inUseByCli:`von der CLI benutzt`},actionMenu:{label:`Aktionen`},confirmDialog:{confirm:`Entfernen`},dataTable:{empty:`Nichts gefunden.`,selectAll:`Alle auswählen`,clearSelection:`Auswahl aufheben`,select:e=>`${e} ausw\xE4hlen`},jsonView:{expand:e=>`Ausklappen: ${e}`,collapse:e=>`Einklappen: ${e}`,empty:`Nichts anzuzeigen.`},toast:{region:`Meldungen (F8)`,close:`Meldung schließen`},usageChart:{ago:e=>`vor ${e}`,max:e=>`max. ${e}`,now:`jetzt`,values:(e,n,t)=>`jetzt ${e}, h\xF6chster Wert ${n}, niedrigster Wert ${t}`,noData:e=>`${e}: noch keine Messwerte.`,summary:(e,n,t)=>`${e} \xFCber die letzten ${n}: ${t}.`},palette:{title:`Gehe zu`,description:`Tippen Sie, um Seiten, Container, Images, Volumes und Netzwerke zu suchen. Pfeiltasten wählen, Enter führt aus.`,placeholder:`Nach einer Seite, einem Container, Image, Volume oder Netzwerk suchen…`,results:`Ergebnisse`,empty:`Nichts gefunden.`,groups:{page:`Seite`,container:`Container`,image:`Image`,volume:`Volume`,compose:`Compose`,network:`Netzwerk`,action:`Aktion`},sections:{page:`Seiten`,container:`Container`,image:`Images`,volume:`Volumes`,compose:`Compose-Projekte`,network:`Netzwerke`,action:`Aktionen`},recent:`Zuletzt`,attention:`Braucht Aufmerksamkeit`,hint:`c Container · i Images · v Volumes · n Netzwerke · p Compose · > Aktionen · → Aktionen einer Zeile`,actions:`Aktionen`,verbs:{start:`Starten`,stop:`Stoppen`,restart:`Neu starten`,pause:`Pausieren`,unpause:`Fortsetzen`,recreate:`Neu aufbauen`},commandHint:`Enter führt es aus`,commandNothing:`Nichts auszuführen`,problems:{unknown:e=>`${e}: nicht gefunden`,ambiguous:(e,n)=>`${e}: ${String(n)} Container, bitte genauer`,state:e=>`${e}: in diesem Zustand nicht m\xF6glich`,notCompose:e=>`${e}: kein Compose-Container`},commandDone:e=>e===1?`1 Befehl ausgeführt.`:`${String(e)} Befehle ausgef\xFChrt.`,events:e=>`Ereignisse von ${e}`,terminal:e=>`Terminal in ${e}`,memory:e=>`Speichergrenze von ${e}\u2026`,copyId:e=>`ID von ${e} kopieren`,imageRun:e=>`${e} starten\u2026`,imageLayers:e=>`Schichten von ${e}`,imagePull:e=>`${e} neu holen`,imageRemove:e=>`${e} entfernen\u2026`,volumeBackup:e=>`Sicherung von ${e}\u2026`,composeLogs:e=>`Logs von ${e} verfolgen`,prune:`Aufräumen…`,checkUpdates:`Images auf Updates prüfen`,theme:`Zwischen hell und dunkel wechseln`,useContext:e=>`Zu ${e} wechseln`,copied:e=>`Kopiert: ${e}`,askClaude:e=>`Claude fragen: ${e}`,askNote:`Nur Ihre Frage geht an Claude`,thinking:`Claude denkt nach…`,claudeSays:e=>`Claude: ${e}`,questionNote:`Dafür hat Claude Ihre Container angesehen, mit denselben Tools wie der Tab Claude.`,commandNote:`Dafür hat Claude die Namen und den Zustand Ihrer Container bekommen.`,aiNothing:`Claude hat nichts Passendes gefunden.`,aiMatches:e=>e===1?`1 Treffer`:`${e} Treffer`,noContainerSize:`Die Größe von Containern kennt die Palette nicht, die von Images und Volumes schon.`,copyCommand:e=>`Kopieren: ${e}`,proposal:(e,n)=>`${e} ${n}`,start:e=>`${e} starten`,stop:e=>`${e} stoppen`,restart:e=>`${e} neu starten`,diagnose:e=>`${e} diagnostizieren`,imageInUse:e=>`Image \xB7 von ${String(e)} Container${e===1?``:`n`} benutzt`,imageUnused:`Image · ungenutzt`,network:e=>`Netzwerk \xB7 ${e}`,composeDetail:(e,n)=>`Compose \xB7 ${String(e)} von ${String(n)} laufen`,composeUp:e=>`${e}: up`,composeFile:e=>`${e}: Compose-Datei anzeigen`,composeDown:e=>`${e}: down\u2026`,recreate:e=>`${e} neu aufbauen`,recreateDetail:`up --force-recreate nur für diesen Service`,volumeBrowse:e=>`In ${e} schauen`,networkMembers:e=>`Wer ist mit ${e} verbunden`}}});var ch;var uh=f(()=>{ch={title:`Terminal`,intro:{start:`Eine Shell auf der Maschine, auf der der Docker-Daemon läuft, etwa Ihrer WSL-Distro.`,afterDocker:` funktioniert hier wie gewohnt. Sie sind `,afterRoot:`: die Shell läuft über einen kurzlebigen, privilegierten `,afterAlpine:`-Container, der verschwindet, sobald Sie die Shell oder diese Seite schließen.`},tabsLabel:`Terminal`,tabs:{terminal:`Terminal`,assistant:`Claude`},loading:`Terminal wird geladen…`}});var dh;var Fc;var fh;var ph=f(()=>{dh=e=>`${String(e)} Volume${e===1?``:`s`}`,Fc=e=>`${String(e)} Container`,fh={title:`Volumes`,diskSpace:`Speicherplatz`,calculating:`wird berechnet…`,unused:`Ungenutzt`,menuLabel:`Volume-Aktionen`,searchLabel:`Nach Name suchen`,onlyUnused:`Nur ungenutzte Volumes`,refreshing:`Wird aktualisiert…`,selected:e=>`${String(e)} ausgew\xE4hlt`,empty:`Keine Volumes gefunden.`,columns:{name:`Name`,driver:`Driver`,inUse:`In Gebrauch`,created:`Erstellt`,size:`Größe`,actions:`Aktionen`},containerCount:Fc,rowMenu:e=>`Aktionen f\xFCr ${e}`,rowBrowse:`Inhalt ansehen…`,browse:{title:e=>`In ${e}`,description:`Nur lesend, über einen kurzlebigen Hilfscontainer. Er verschwindet, wenn Sie dies schließen.`,loading:`Wird geladen…`,empty:`Dieser Ordner ist leer.`,up:`Ordner nach oben`,path:`Pfad im Volume`},rowBackup:`Als .tar sichern`,rowRestore:`Sicherung zurückspielen…`,backupTitle:e=>`${e} als .tar sichern`,backupTitleInUse:e=>`${e} sichern. Es ist in Gebrauch: eine Datenbank, die w\xE4hrend der Sicherung schreibt, kann eine Sicherung hinterlassen, die sich nicht immer zur\xFCckspielen l\xE4sst. Stoppen Sie den Container zuerst, oder nehmen Sie ihren eigenen Dump.`,restoreTitle:e=>`Eine Sicherung in ${e} zur\xFCckspielen`,inUseReason:e=>`Von ${Fc(e)} benutzt; entfernen oder stoppen Sie sie zuerst`,menu:{create:`Volume anlegen…`,pruneAnonymous:`Anonyme aufräumen`,pruneUnused:`Ungenutzte aufräumen`},createDialog:{title:`Volume anlegen`,description:`Ein leeres Volume mit einem Namen, das Sie später an einen Container hängen.`,nameLabel:`Name`,namePlaceholder:`my-data`,storageLabel:`Wo werden die Daten gespeichert?`,storage:{docker:`Von Docker verwaltet`,dockerHint:`Empfohlen. Docker entscheidet, wo die Daten liegen.`,folder:`Ein Ordner auf der Docker-Maschine`,folderHint:`Ein vorhandener Ordner, etwa um Dateien mit einem Container zu teilen.`,nfs:`Eine NFS-Freigabe im Netzwerk`,nfsHint:`Ein freigegebener Ordner auf einem NAS oder Server.`},folderLabel:`Ordner`,folderHint:`Der Ordner muss auf der Maschine, auf der Docker läuft, schon vorhanden sein. Unter WSL ist C:\\data gleich /mnt/c/data.`,nfsServerLabel:`Server`,nfsPathLabel:`Freigegebener Ordner`,nfsHint:`Wird erst geprüft, wenn ein Container dieses Volume benutzt.`,advanced:`Erweitert`,driverLabel:`Driver`,driverHint:`Lassen Sie das auf local, außer Sie benutzen ein Volume-Plugin.`,submit:`Anlegen`,creating:`Wird angelegt…`},restore:{title:e=>`Eine Sicherung in ${e} zur\xFCckspielen?`,description:e=>`Dateien mit demselben Namen werden überschrieben; was nicht in der Sicherung steht, bleibt. `+(e>0?`Stoppen Sie zuerst ${Fc(e)}, die dieses Volume benutzen: eine laufende Datenbank merkt nicht, dass sich ihre Dateien ge\xE4ndert haben. `:``)+`Die Datei wählen Sie als Nächstes.`,confirm:`Datei wählen`},remove:{title:`Volume entfernen?`,description:e=>`Alle Daten in '${e}' gehen verloren. Das l\xE4sst sich nicht r\xFCckg\xE4ngig machen.`,manyTitle:`Volumes entfernen?`,manyDescription:e=>`Alle Daten in ${dh(e)} gehen verloren. Volumes, die noch in Gebrauch sind, werden \xFCbersprungen.`},prune:{allTitle:`Alle ungenutzten Volumes aufräumen?`,allDescription:`Jedes Volume ohne angehängten Container wird entfernt, auch benannte Volumes, die Sie selbst angelegt haben. Die Daten darin sind danach weg.`,anonymousTitle:`Anonyme Volumes aufräumen?`,anonymousDescription:`Volumes ohne Namen, die kein Container mehr benutzt, werden entfernt. Das sind meist Überbleibsel von Containern, die es längst nicht mehr gibt.`,confirm:`Aufräumen`},created:e=>`Volume ${e} wurde angelegt.`,pruned:(e,n)=>`${dh(e)} entfernt, ${n} freigegeben.`,backedUp:(e,n)=>`Sicherung von ${e} gespeichert als ${n}.`,restored:(e,n)=>`${e} wurde in ${n} zur\xFCckgespielt.`}});var mh;var gh=f(()=>{Hg();Ug();zg();Wg();Zg();Jg();eh();oh();sh();lh();uh();ph();mh={common:Fg,compose:Vg,containers:Bg,dashboard:qg,format:Gg,images:Yg,logs:Xg,networks:rh,settings:ih,shell:ah,terminal:ch,volumes:fh}});var hh;var vh=f(()=>{hh={cancel:`Cancelar`,close:`Cerrar`,remove:`Eliminar`,retry:`Reintentar`,refresh:`Actualizar`,search:`Buscar`,loading:`Cargando…`,save:`Guardar`,copy:`Copiar`,copied:`Copiado`,start:`Iniciar`,stop:`Detener`,restart:`Reiniciar`,yes:`Sí`,no:`No`,none:`Ninguno`,unknown:`Desconocido`,nothingToPrune:`No había nada que limpiar.`}});var yh;var bh=f(()=>{yh={title:`Compose`,intro:`Proyectos a partir de las labels de tus contenedores. Un proyecto detenido también aparece, mientras sus contenedores sigan existiendo.`,updating:`Actualizando…`,state:{running:`en marcha`,partial:`parcial`,stopped:`detenido`},runningOf:(e,n)=>`${String(e)} de ${String(n)}`,expand:e=>`Desplegar: ${e}`,collapse:e=>`Plegar: ${e}`,menuAria:e=>`Acciones para ${e}`,upAria:e=>`Levantar ${e}`,startAria:e=>`Iniciar ${e}`,stopAria:e=>`Detener ${e}`,restartAria:e=>`Reiniciar ${e}`,downAria:e=>`Bajar ${e}`,up:`Up`,down:`Down`,fileAria:e=>`Mostrar el archivo compose de ${e}`,file:{button:`Archivo`,title:e=>`El archivo compose de ${e}`,loading:`Cargando…`,raw:`Tal como está escrito`,resolved:`Tal como lo lee compose`,rawHint:`El archivo en el disco, sin cambios.`,resolvedHint:"Overrides combinados y ${VAR} sustituidas: en esto se basa el proyecto en marcha.",empty:`Este archivo está vacío.`,copyFailed:e=>`No se ha podido copiar: ${e}`},noCli:`La CLI de docker no está disponible`,noWorkingDir:`No se sabe dónde está este proyecto`,busy:`Trabajando… un up puede tardar si hay que descargar images.`,empty:`No se han encontrado proyectos de Compose. Aparecen aquí en cuanto haya contenedores con labels de Compose.`,downDialog:{title:`¿Bajar el proyecto?`,description:e=>`Los contenedores y las redes de '${e}' se detendr\xE1n y se eliminar\xE1n. Los volumes se conservan, as\xED que tus datos se mantienen.`,confirm:`Bajar`},recreate:`Recrear`,recreateAria:e=>`Recrear ${e}`,recreateTitle:`docker compose up -d --no-deps --force-recreate`,recreateDone:e=>`${e} se ha recreado.`,upDone:e=>`'${e}' est\xE1 en marcha.`,downDone:e=>`'${e}' se ha bajado.`}});var wh;var Dh=f(()=>{wh={actions:{pause:`Pausar`,resume:`Reanudar`,copyDiagnosis:`Copiar el diagnóstico`,copyRunCommand:`Copiar el comando run`,restartPolicy:`Política de reinicio…`,memoryLimit:`Límite de memoria…`,recreate:`Reconstruir`},page:{title:`Contenedores`,cpuUsage:`Uso de CPU`,memoryUsage:`Uso de memoria`,search:`Buscar por nombre, image o ID`,onlyRunning:`Solo los contenedores en marcha`,updating:`Actualizando…`,selected:e=>`${String(e)} seleccionados`,empty:`No se han encontrado contenedores.`,columns:{name:`Nombre`,id:`ID del contenedor`,image:`Image`,ports:`Puertos`,cpu:`CPU`,memory:`Memoria`,actions:`Acciones`},group:{loose:`Contenedores sueltos`,expand:e=>`Desplegar: ${e}`,collapse:e=>`Plegar: ${e}`,count:e=>e===1?`1 contenedor`:`${String(e)} contenedores`,running:e=>`${String(e)} en marcha`,startAll:`Iniciar todos`,stopAll:`Detener todos`,restartAll:`Reiniciar todos`,removeAll:`Eliminar todos`,menu:e=>`Acciones para todo en ${e}`,manual:`Grupo propio`,addToGroup:`Añadir a un grupo…`,removeFromGroup:`Sacar del grupo`,rename:`Renombrar el grupo…`,dissolve:`Deshacer el grupo`},groupDialog:{assignTitle:`Añadir a un grupo`,assignOne:e=>`'${e}' pasa al grupo al que des nombre aqu\xED.`,assignMany:e=>`${String(e)} contenedores pasan al grupo al que des nombre aqu\xED.`,renameTitle:`Renombrar el grupo`,renameDescription:e=>`Todo lo que hay en '${e}' se mueve al nombre nuevo.`,nameLabel:`Nombre del grupo`,namePlaceholder:`por ejemplo mi-stack`,existing:`Grupos existentes`,hint:`Un grupo propio vive en esta aplicación y sigue el nombre del contenedor; Docker no sabe nada de él.`,empty:`Escribe un nombre.`,reserved:e=>`'${e}' ya es un proyecto de Compose.`,submit:`Guardar`},row:{diagnosisOf:e=>`Diagn\xF3stico de ${e}`,missingNetwork:e=>`Funciona, pero no est\xE1 conectado a ${e}`,menu:e=>`Acciones para ${e}`},confirm:{title:`¿Eliminar el contenedor?`,one:e=>`'${e}' se detendr\xE1 y se eliminar\xE1. Esto no se puede deshacer; los volumes se conservan.`,many:e=>`${e===1?`1 contenedor se detendrá y se eliminará`:`${String(e)} contenedores se detendr\xE1n y se eliminar\xE1n`}. Esto no se puede deshacer; los volumes se conservan.`,group:(e,n)=>`Los ${String(e)} contenedores de '${n}' se detendr\xE1n y se eliminar\xE1n. Esto no se puede deshacer; los volumes se conservan.`}},detail:{back:`‹ Contenedores`,menu:`Acciones para este contenedor`,gone:` ya no existe. Un contenedor con --rm desaparece en cuanto se detiene, y compose crea uno nuevo al hacer up.`,goneUnnamed:`Este contenedor ya no existe.`,successor:(e,n)=>`Ir al ${e} actual (${n})`,tabsLabel:`Detalles del contenedor`,tabs:{logs:`Logs`,health:`Health`,events:`Eventos`,inspect:`Inspect`,stats:`Stats`,terminal:`Terminal`,files:`Archivos`,networks:`Redes`,assistant:`Claude`},wiring:{network:e=>`Funciona, pero no est\xE1 conectado a ${e}. Nada lo alcanza por esa red, y \xE9l no alcanza nada.`,networkWhy:`Esto pasa cuando la red se eliminó y se volvió a crear mientras el contenedor existía.`,connect:e=>`Conectar a ${e}`,ports:e=>`Funciona, pero no publica ${e}.`,portsWhy:`Esto pasa cuando se inició otra vez tras un inicio que falló por un puerto ocupado.`,portsFromNetwork:`Eso se debe a la red que falta arriba: los puertos pasan por una red.`,restart:`Reiniciar`},events:{loading:`Cargando…`,empty:`Aún no hay nada registrado. La app registra desde que arranca, más lo que Docker recordaba entonces.`,scope:`Registrado en la app desde que arrancó, hasta 100 por nombre de contenedor; tras reiniciar la app, Docker completa lo que aún recuerda.`,crashLoop:e=>`Se cay\xF3 ${String(e)} veces en la \xFAltima hora.`,create:`Creado`,start:`Iniciado`,exited:e=>e===0?`Terminó con normalidad`:`Termin\xF3 con el c\xF3digo ${String(e)}`,exitedUnknown:`Terminó`,exitHint137:`SIGKILL: matado desde fuera, a menudo memoria llena o una parada que tardó demasiado`,exitHint143:`SIGTERM: se le pidió parar`,kill:e=>`${e} enviado`,oom:`Detenido por el kernel: memoria llena`,stop:`Detenido`,restart:`Reiniciado`,pause:`En pausa`,unpause:`Reanudado`,destroy:`Eliminado`,rename:e=>`Renombrado, antes ${e}`,renamed:`Renombrado`,health:{starting:`Healthcheck empieza`,healthy:`Pasó a healthy`,unhealthy:`Pasó a unhealthy`}},health:{loading:`Cargando…`,refresh:`Actualizar`,status:{starting:`starting`,healthy:`healthy`,unhealthy:`unhealthy`,unknown:`aún no se ha ejecutado`},failingStreak:e=>e===1?`ha fallado una vez`:`ha fallado ${String(e)} veces seguidas`,command:`Comando`,fromImage:`Viene de la imagen; el daemon no indica el comando.`,rhythm:`Ritmo`,every:e=>`cada ${e}`,timeout:e=>`tiempo de espera ${e}`,startPeriod:e=>`start period ${e}`,retries:e=>e===1?`1 intento antes de unhealthy`:`${String(e)} intentos antes de unhealthy`,defaults:`los valores por defecto de Docker`,probes:`Últimos resultados`,noProbes:`La comprobación aún no se ha ejecutado.`,exitCode:e=>`c\xF3digo de salida ${String(e)}`,unknownExitCode:`sin código de salida`,noOutput:`sin salida`},networks:{title:`En estas redes`,loading:`Cargando…`,empty:`Este contenedor no está en ninguna red.`,noAddress:`sin dirección`,alsoKnownAs:e=>`tambi\xE9n accesible como ${e}`,disconnect:`Desconectar`,disconnectFrom:e=>`Desconectar de ${e}`,addTitle:`Conectar a una red`,addHint:`Surte efecto de inmediato, también mientras el contenedor está en marcha.`,allConnected:`Este contenedor ya está en todas las redes.`,networkLabel:`Red`,choose:`Elige una red…`,alias:`Nombre adicional en la red`,aliasHint:`Un nombre adicional que los demás contenedores de esta red pueden usar, junto al nombre del contenedor.`,aliasPlaceholder:`base-de-datos`,connect:`Conectar`,working:`En curso…`,invalidAlias:e=>`'${e}' no es un nombre v\xE1lido. Use letras, d\xEDgitos, puntos, guiones y guiones bajos.`},fetching:`Cargando…`,terminalLoading:`Cargando la terminal…`,shellOnlyRunning:`Solo se puede abrir un shell en un contenedor en marcha.`,cpu:`CPU`,lastMinute:e=>`\xFAltimo minuto \xB7 pico ${e} %`,chartPending:`el gráfico aparece tras unas cuantas muestras`,memory:`Memoria`,ofLimit:e=>`${e} % del l\xEDmite`,noLimit:`sin límite definido`,nearLimit:`Cerca del límite: por encima, el kernel empieza a matar procesos del contenedor.`,statsOnlyRunning:`Las stats solo se recogen de un contenedor en marcha.`,confirmTitle:`¿Eliminar el contenedor?`,confirmDescription:`Este contenedor se detendrá y se eliminará. Esto no se puede deshacer; los volumes se conservan.`},diagnosis:{title:`Copiar el diagnóstico`,description:`Estado, health, mounts, events y las últimas líneas de log, para pegarlos en un chat o en una issue. Esto es exactamente lo que se copia.`,collecting:`Recogiendo…`,noRedactions:`No se ha omitido nada; ningún valor parecía un secreto.`,redactions:e=>`${e===1?`1 valor omitido`:`${String(e)} valores omitidos`}: las variables de entorno y todo lo que parec\xEDa una contrase\xF1a, un token o una clave.`,copyFailed:e=>`No se ha podido copiar: ${e}`},memoryLimit:{title:`Límite de memoria`,description:`Cuánta memoria puede usar el contenedor. Surte efecto al momento; el contenedor no se vuelve a crear.`,loading:`Cargando…`,current:e=>`Ahora: ${e}`,none:`Ahora: sin límite`,label:`Límite`,unit:`Unidad`,noRemove:`Quitar un límite no se puede así: Docker solo lo cambia. Para no tener límite, hay que volver a crear el contenedor.`,compose:`Es un contenedor de compose: compose up vuelve a poner lo que dice el archivo compose.`,save:`Guardar`,saving:`Guardando…`,saved:e=>`El l\xEDmite de memoria es ahora ${e}.`,invalid:`Escribe un número mayor que cero.`},restartPolicy:{title:`Política de reinicio`,description:`Lo que hace el daemon cuando este contenedor se detiene. Surte efecto de inmediato; el contenedor no se vuelve a crear.`,loading:`Cargando…`,label:`Política`,names:{no:`Nunca`,always:`Siempre`,"unless-stopped":`Salvo si lo has parado tú`,"on-failure":`Solo tras un código de error`},maximum:`Como máximo tantos intentos`,maximumHint:`0 significa seguir intentándolo.`,save:`Guardar`,saving:`Guardando…`,saved:e=>`La pol\xEDtica de reinicio es ahora ${e}.`},runCommand:{title:`Copiar el comando run`,description:`El comando que vuelve a crear este contenedor, deducido de inspect. Lo que viene de la imagen se omite.`,building:`Deduciendo…`,composeNote:e=>`Este contenedor pertenece al proyecto de compose ${e}, donde docker compose up es la respuesta. As\xED es como se ejecuta ahora.`,envWarning:e=>`${e===1?`Incluye 1 variable de entorno`:`Incluye ${String(e)} variables de entorno`}, contrase\xF1as incluidas: el comando tiene que funcionar.`,noEnv:`Sin variables de entorno propias.`,copyFailed:e=>`No se ha podido copiar: ${e}`},logs:{filter:`Filtrar por texto`,follow:`Seguir`,timestamps:`Marcas de tiempo`,clear:`Limpiar`,save:`Guardar…`,saveHint:`Todo el log de Docker, con marcas de tiempo; no solo lo que ves aquí.`,saved:(e,n)=>`${String(e)} l\xEDneas guardadas en ${n}`,connecting:`Conectando…`,count:(e,n)=>`${String(e)} de ${String(n)} l\xEDneas`,truncated:`se han descartado las líneas más antiguas`,empty:`Todavía no hay líneas de log.`,noMatches:`No hay líneas que coincidan.`},files:{up:`Subir una carpeta`,path:`Ruta en el contenedor`,refresh:`Actualizar`,changed:`Modificado`,changesTitle:`Modificado respecto a la imagen`,changesCount:e=>e===1?`1 ruta`:`${String(e)} rutas`,changesEmpty:`Este contenedor no ha cambiado nada de su imagen.`,changesHint:`Las carpetas que solo cambiaron porque algo dentro cambió no aparecen. Los volúmenes no cuentan.`,changeKind:{added:`añadido`,modified:`modificado`,deleted:`eliminado`},openFolderOf:e=>`Abrir la carpeta de ${e}`,upload:`Subir…`,empty:`Esta carpeta está vacía.`,downloadFolder:e=>`Descargar la carpeta como tar: ${e}`,downloadFile:e=>`Descargar: ${e}`,hint:e=>`Suelta archivos aqu\xED para ponerlos en ${e}. Descargar una carpeta da un .tar, as\xED se conservan los permisos y los symlinks.`,savedAs:e=>`Guardado como ${e}.`,uploaded:(e,n)=>`${e===1?`1 archivo puesto`:`${String(e)} archivos puestos`} en ${n}.`},terminal:{exited:`El shell ha terminado.`,reopen:`Volver a abrir`,connecting:`Conectando…`,connected:`conectado`},assistant:{introHost:`Claude recibe una visión general del engine y de los contenedores, va leyendo la terminal y pide logs e inspect por su cuenta. Cada petición aparece abajo, y los secretos quedan fuera. Claude nunca escribe nada él mismo: un comando sugerido se convierte en un botón que lo pone en el prompt, y tú pulsas Intro.`,introContainer:`Claude recibe el diagnóstico de este contenedor, sin secretos, y luego pide por su cuenta logs, inspect, events o los demás contenedores. Cada petición aparece abajo. Claude no cambia nada por su cuenta: una sugerencia se convierte en un botón, y decides tú.`,defaultQuestion:`¿Qué le pasa a este contenedor, y qué puedo hacer al respecto?`,defaultHostQuestion:`¿Qué ves en la terminal, y qué significa?`,onPrompt:`En el prompt`,done:`Listo`,thinking:`Claude está pensando…`,questionLabel:`Pregunta para Claude`,followUp:`Pregunta de seguimiento`,ask:`Preguntar a Claude`,putInTerminal:`Poner en la terminal`,composeUp:e=>`compose up para ${e}`,start:e=>`Iniciar ${e}`,stop:e=>`Detener ${e}`,restart:e=>`Reiniciar ${e}`,panelClosed:`El panel se ha cerrado.`,usage:(e,n,t)=>`${e} tokens de entrada, ${n} de la cach\xE9, ${t} de salida`}}});var Ih;var Ch=f(()=>{Ih={title:`Panel`,engine:{connecting:`Conectando con Docker…`,running:`Engine en marcha`,unreachable:`Engine inaccesible`,startDistro:e=>`Iniciar ${e}`,startingDistro:e=>`Iniciando ${e}\u2026`,startDaemon:e=>`Iniciar Docker en ${e}`,startingDaemon:e=>`Iniciando Docker en ${e}\u2026`,daemonHint:e=>`${e} est\xE1 en marcha, as\xED que es el daemon de dentro el que est\xE1 parado. La app puede iniciarlo ah\xED.`,idleHint:{intro:e=>`${e} arranc\xF3 antes pero se volvi\xF3 a detener. WSL apaga una distro sin sesi\xF3n abierta a los 15 segundos; pon`,under:`en`,in:`en`,outro:`para que siga en marcha.`}},contexts:{switchFailed:e=>`No se ha podido cambiar a ${e}`},usage:{cpu:`CPU de todos los contenedores`,memory:`Memoria`,memoryChart:`Memoria de todos los contenedores`,network:`Red de todos los contenedores`,networkChart:`Tráfico de red de todos los contenedores`,received:`Recibido`,sent:`Enviado`,receivedAria:`recibido`,sentAria:`enviado`,hostNote:`Los contenedores con network_mode: host no cuentan; no tienen contadores propios.`},counts:{containers:`Contenedores`,runningOfTotal:`en marcha del total`,images:`Images`,volumesNetworks:`Volumes · redes`},disk:{title:`Uso de disco`,total:e=>`${e} en total`,calculating:`calculando…`,prune:`Limpiar`,pruning:`Limpiando…`,unused:e=>`${String(e)} sin usar`,labels:{images:`Images`,containers:`Contenedores`,volumes:`Volumes`,buildCache:`Caché de build`},footnoteBefore:`Las mismas cifras que`,footnoteAfter:`. Cuánto espacio libera realmente la limpieza no se muestra: depende de las layers compartidas, y una estimación que parece un hecho es peor que no dar ninguna cifra.`},attention:{title:`Requiere atención`,none:`Todo en orden: sin bucles de caídas, nada unhealthy, todo conectado.`,loading:`Comprobando…`,crashLoop:e=>`se cay\xF3 ${String(e)} veces en la \xFAltima hora`,restarting:`se reinicia una y otra vez`,unhealthy:`el healthcheck falla`,network:e=>`funciona, pero no est\xE1 conectado a ${e}`,ports:e=>`funciona, pero no publica ${e}`,update:e=>`hay una versi\xF3n m\xE1s reciente de ${e}`},stopped:{title:`Detenidos hace poco`,none:`No se ha detenido nada.`,clean:`terminó limpiamente`,failed:e=>`termin\xF3 con el c\xF3digo ${String(e)}`,created:e=>`creado ${e}`},pruneDialog:{title:`Limpiar`,description:`Todo lo que marques se elimina y no se puede recuperar.`,confirm:`Limpiar`,containers:`Contenedores detenidos`,containersHint:`Un contenedor en pausa se conserva.`,networks:`Redes sin usar`,networksHint:`bridge, host y none se conservan siempre.`,images:`Images sin tag`,imagesHint:`Normalmente restos de un build más reciente.`,allImages:`También las images con tag sin contenedor`,allImagesHint:`Después tendrás que volver a descargarlas.`,buildCache:`Caché de build`,buildCacheHint:`Todo lo que no está en uso. El siguiente build tardará más.`,volumes:`Volumes anónimos`,volumesHint:`Los volumes con nombre se conservan. Ahí hay datos.`},pruneResult:{removed:{containers:e=>e===1?`1 contenedor`:`${String(e)} contenedores`,networks:e=>e===1?`1 red`:`${String(e)} redes`,volumes:e=>e===1?`1 volume`:`${String(e)} volumes`,images:e=>e===1?`1 image`:`${String(e)} images`,buildCache:e=>e===1?`1 entrada de caché de build`:`${String(e)} entradas de cach\xE9 de build`},kinds:{containers:`contenedores`,networks:`redes`,volumes:`volumes`,images:`images`,buildCache:`caché de build`},and:`y`,notice:(e,n)=>`${e} eliminados, ${n} liberados.`,problem:e=>`No se ha podido limpiar ${e}`}}});var Eh;var Sh=f(()=>{Eh={justNow:`ahora mismo`,hoursAgo:e=>e===1?`hace 1 hora`:`hace ${String(e)} horas`,yesterday:`ayer`,daysAgo:e=>`hace ${String(e)} d\xEDas`,lastMonth:`el mes pasado`,monthsAgo:e=>`hace ${String(e)} meses`,lastYear:`el año pasado`,yearsAgo:e=>`hace ${String(e)} a\xF1os`}});var kh;var Th;var Nh;var Mh=f(()=>{kh=e=>`${String(e)} image${e===1?``:`s`}`,Th=e=>`${String(e)} contenedor${e===1?``:`es`}`,Nh={title:`Images`,diskSpace:`Espacio en disco`,unused:`Sin usar`,menuLabel:`Acciones de image`,searchLabel:`Buscar por repository, tag o ID`,onlyUnused:`Solo las images sin usar`,refreshing:`Actualizando…`,updatesHint:`Actualizar descarga la image nueva. Un contenedor en marcha conserva la antigua hasta que se vuelva a crear; para un contenedor de un proyecto de Compose, la app ofrece hacerlo tras la descarga.`,selected:e=>`${String(e)} seleccionadas`,empty:`No se han encontrado images.`,columns:{repository:`Repository`,tag:`Tag`,imageId:`ID de la image`,inUse:`En uso`,created:`Creada`,size:`Tamaño`,actions:`Acciones`},badge:{newer:`versión más reciente`,notInRegistry:`no está en el registry`,uncheckable:`no se ha podido comprobar`},containerCount:Th,updateTitle:e=>`Actualizar: volver a descargar ${e}`,rowMenu:e=>`Acciones para ${e}`,rowUpdate:`Descargar la versión más reciente`,rowRun:`Ejecutar un contenedor…`,rowLayers:`Capas…`,runLabel:e=>`Iniciar un contenedor a partir de ${e}`,runLabelDangling:`Iniciar un contenedor a partir de esta image sin tag`,layers:{title:e=>`Capas de ${e}`,description:`Las más nuevas primero, como las muestra docker history: la última línea del Dockerfile arriba.`,loading:`Cargando…`,summary:(e,n)=>`${e===1?`1 capa`:`${String(e)} capas`} \xB7 imagen ${n}`,packed:e=>`Las capas suman ${e}: con este almacenamiento Docker informa de cada capa tal como lleg\xF3, comprimida. En el disco la imagen es mayor.`,noSize:`no cambia nada en el disco`,expand:`Mostrar el comando completo`,empty:`Esta imagen no informa de ninguna capa.`},menu:{pull:`Descargar una image`,check:`Buscar actualizaciones`,checking:`Comprobando…`,pruneDangling:`Limpiar las que no tienen tag`,pruneUnused:`Limpiar las que no se usan`},remove:{title:`¿Eliminar la image?`,description:e=>`'${e}' se eliminar\xE1. Si esta image tiene otros tags, solo se va este tag.`,forceTitle:`¿Forzar la eliminación de la image?`,forceDescription:(e,n)=>`'${e}' la usa ${Th(n)}. Solo se puede eliminar a la fuerza, y esos contenedores dejar\xE1n de funcionar.`,forceConfirm:`Eliminar igualmente`,manyTitle:`¿Eliminar las images?`,manyDescription:e=>`Se eliminar\xE1n ${kh(e)}. Las images que todav\xEDa est\xE1n en uso se omiten.`},prune:{allTitle:`¿Limpiar todas las images sin usar?`,allDescription:`Se elimina todo lo que no tenga un contenedor asociado, incluidas las images que descargaste tú. Tendrás que volver a descargarlas.`,danglingTitle:`¿Limpiar las images sin tag?`,danglingDescription:`Se eliminan las images sin tag. Suelen ser restos de un build más reciente.`,confirm:`Limpiar`},pruned:(e,n)=>`${kh(e)} eliminadas, ${n} liberados.`,check:{allCurrent:`Todo está al día`,updates:e=>`${e===1?`1 image tiene`:`${String(e)} images tienen`} una versi\xF3n m\xE1s reciente`,notInRegistry:e=>`${String(e)} no est\xE1n en ning\xFAn registry`,uncheckable:e=>`${String(e)} no se han podido comprobar`,summary:(e,n)=>`${e} (${String(n)} comprobadas).`},pullDialog:{title:`Descargar una image`,nameAndTag:`Nombre y tag, por ejemplo`,withoutTag:`Sin tag se usa`,isUsed:`.`,inputLabel:`Image`,submit:`Descargar`,staleHeading:`Estos contenedores siguen con la versión anterior:`,inProject:e=>`en ${e}`,notCompose:`no se inició con compose; vuelve a crearlo tú`,renewed:e=>`Vueltos a crear: ${e}.`,renew:`Volver a crear los contenedores`,renewing:`Volviendo a crear…`,renewHint:`Con compose, solo estos servicios.`},runDialog:{title:`Iniciar un contenedor`,fromImage:`A partir de la image`,name:`Nombre`,namePlaceholder:`déjalo vacío = Docker elige uno`,autoRestart:`Reiniciar automáticamente`,autoRestartHint:`Tras un fallo o cuando Docker se reinicie. No cuando lo detienes tú.`,ports:`Puertos`,portsHint:`Hacer accesible un puerto del contenedor desde este ordenador, por ejemplo localhost:8080.`,onThisComputer:`En este ordenador`,inContainer:`En el contenedor`,protocolHeader:`Protocolo`,hostPortPlaceholder:`vacío = cualquier puerto libre`,addPort:`Añadir un puerto`,hostPort:e=>`Puerto del host ${String(e)}`,containerPort:e=>`Puerto del contenedor ${String(e)}`,protocol:e=>`Protocolo ${String(e)}`,removePort:e=>`Eliminar el puerto ${String(e)}`,network:`Red`,networkHint:`Los contenedores de una red que hayas creado tú se alcanzan por su nombre. En la red por defecto, no.`,networkDefault:`Por defecto (bridge)`,networkAlias:`Nombre adicional en la red`,networkAliasHint:`Un nombre adicional que los demás contenedores de esta red pueden usar, junto al nombre del contenedor.`,networkAliasPlaceholder:`base-de-datos`,invalidAlias:e=>`'${e}' no es un nombre v\xE1lido. Usa letras, d\xEDgitos, puntos, guiones y guiones bajos.`,volumes:`Volumes`,volumesHint:`Datos que deben sobrevivir al contenedor: un volume, o una carpeta en la máquina de Docker.`,source:`Volume o carpeta`,addVolume:`Añadir un volume`,sourcePlaceholder:`my-data o /srv/data`,targetPlaceholder:`/ruta/en/contenedor`,volumeSource:e=>`Origen del volume ${String(e)}`,volumeTarget:e=>`Destino del volume ${String(e)}`,readOnly:`solo lectura`,readOnlyHint:`El contenedor puede leer los archivos pero no cambiarlos.`,removeVolume:e=>`Eliminar el volume ${String(e)}`,env:`Variables de entorno`,envHint:`Ajustes para el programa del contenedor. También puedes pegar NOMBRE=valor.`,envNameHeader:`Nombre`,envValueHeader:`Valor`,addEnv:`Añadir una variable`,envName:e=>`Nombre de la variable ${String(e)}`,envValue:e=>`Valor de la variable ${String(e)}`,removeEnv:e=>`Eliminar la variable ${String(e)}`,submit:`Iniciar`,starting:`Iniciando…`,invalidContainerPort:e=>`'${e}' no es un puerto de contenedor v\xE1lido. Usa un n\xFAmero del 1 al 65535.`,invalidHostPort:e=>`'${e}' no es un puerto de host v\xE1lido. D\xE9jalo vac\xEDo para que Docker elija uno.`,volumeIncomplete:`Un volume necesita un origen y un destino.`,notAbsolute:e=>`'${e}' no es una ruta absoluta. El destino en el contenedor empieza por /.`,envNameMissing:`Una variable necesita un nombre.`,envNameWithEquals:e=>`'${e}' no puede contener =; eso separa el nombre del valor.`}}});var xh;var Ah=f(()=>{xh={title:`Logs`,intro:`Todo lo que escriben tus contenedores en marcha, entrelazado por hora. Un contenedor que arranca o se detiene entra o sale por su cuenta.`,projectLabel:`Proyecto de compose`,allProjects:`Todos los contenedores`,searchLabel:`Buscar en los logs`,searchPlaceholder:`Un término, o una expresión como /error|warn/`,caseSensitive:`Distinguir mayúsculas y minúsculas`,containers:`Contenedores`,nothingRunning:`No hay nada en marcha.`,showAll:`Volver a activarlo todo`,timestamps:`Marcas de tiempo`,clear:`Limpiar`,columns:{time:`Hora`,object:`Objeto`,line:`Línea`},allFiltered:e=>e===1?`La única línea está oculta por el filtro.`:`Las ${String(e)} l\xEDneas est\xE1n ocultas por el filtro.`,empty:`Todavía no hay líneas. En cuanto un contenedor escriba algo, aparecerá aquí.`,lineCount:e=>e===1?`1 línea`:`${String(e)} l\xEDneas`,filteredOut:e=>`${String(e)} filtradas`,truncated:`Las líneas más antiguas han salido del búfer.`,invalidExpression:e=>`No es una expresi\xF3n v\xE1lida: ${e}`,levels:{label:`Nivel`,errors:`Errores`,warnings:`Avisos`,unknownHidden:`Las líneas sin un nivel reconocible, como una traza bajo un error, quedan ocultas con este filtro.`}}});var _h;var Rh;var $h;var Oh=f(()=>{_h=e=>`${String(e)} ${e===1?`red`:`redes`}`,Rh=e=>`${String(e)} contenedor${e===1?``:`es`}`,$h={title:`Redes`,unused:`Sin usar`,menuLabel:`Acciones de red`,searchLabel:`Buscar por nombre o driver`,hideBuiltIn:`Ocultar las redes integradas`,refreshing:`Actualizando…`,selected:e=>`${String(e)} seleccionadas`,empty:`No se han encontrado redes.`,builtIn:`integrada`,internal:`interna`,columns:{name:`Nombre`,driver:`Driver`,scope:`Alcance`,subnet:`Subred`,connected:`Conectados`,actions:`Acciones`},containerCount:Rh,rowMenu:e=>`Acciones para ${e}`,rowMembers:`Quién está conectado…`,members:{title:e=>`Conectados a ${e}`,description:`Los mismos contenedores en los que se basa el recuento de esta página, también los detenidos.`,loading:`Cargando…`,empty:`Ningún contenedor está conectado a esta red.`,noAddress:`sin dirección`,stopped:`detenido`},builtInReason:`Red integrada de Docker; no se puede eliminar`,connectedReason:e=>`${Rh(e)} conectado${e===1?``:`s`}; descon\xE9ctalos primero`,menu:{create:`Crear una red…`,pruneUnused:`Limpiar las que no se usan`},createDialog:{title:`Crear una red`,description:`Una red propia, en la que los contenedores se encuentran por su nombre.`,nameLabel:`Nombre`,namePlaceholder:`mi-red`,internal:`Solo interna`,internalHint:`Los contenedores se alcanzan entre sí, pero no tienen ruta hacia fuera.`,advanced:`Avanzado`,driverLabel:`Driver`,driverHint:`Déjalo en bridge salvo que uses un swarm o un plugin de red.`,subnetLabel:`Subred`,subnetHint:`Déjalo vacío y Docker elige por su cuenta un rango libre.`,gatewayLabel:`Puerta de enlace`,gatewayHint:`Debe estar dentro de la subred. Vacío significa la primera dirección del rango.`,submit:`Crear`,creating:`Creando…`},remove:{title:`¿Eliminar la red?`,description:e=>`'${e}' se eliminar\xE1. Los contenedores que se conecten a ella m\xE1s adelante ya no la encontrar\xE1n.`,manyTitle:`¿Eliminar las redes?`,manyDescription:e=>`Se eliminar\xE1n ${_h(e)}. Las redes con contenedores conectados y las redes integradas se omiten.`},prune:{title:`¿Limpiar las redes que no se usan?`,description:`Se elimina toda red sin ningún contenedor conectado. Esto no libera espacio en disco; mantiene la lista ordenada.`,confirm:`Limpiar`},pruned:e=>`${_h(e)} eliminadas.`,created:e=>`La red ${e} se ha creado.`}});var Lh;var Ph=f(()=>{Lh={title:`Ajustes`,language:{heading:`Idioma`,label:`Idioma de la aplicación`,hint:`Los términos técnicos como container, image y volume se quedan en inglés.`},startup:{heading:`Inicio`,startAtLogin:`Iniciar al entrar en la sesión, directo al área de notificación`,paletteShortcut:`Ctrl+Mayús+Espacio abre la búsqueda, en cualquier parte de Windows`,shortcutTaken:`Ctrl+Mayús+Espacio ya lo usa otro programa; el atajo no funciona ahora.`,hintAvailable:`Así las notificaciones de abajo también llegan cuando no abres la aplicación tú. Desactívalo aquí, o en el Administrador de tareas en Aplicaciones de inicio.`,hintUnavailable:`Solo funciona en la aplicación instalada. Aquí Windows iniciaría un electron.exe pelado.`},notifications:{heading:`Notificaciones`,crash:`Cuando un contenedor se detiene de forma inesperada`,unhealthy:`Cuando un contenedor pasa a unhealthy`,wiring:`Cuando un contenedor pierde su red o sus puertos`,hint:`Un contenedor que detienes tú, desde la aplicación, la terminal o con compose down, nunca provoca una notificación. Un mismo contenedor avisa como mucho una vez por minuto.`},update:{heading:`Actualizaciones`,version:e=>`versi\xF3n ${e}`,install:`Reiniciar y actualizar`,check:`Comprobar ahora`,auto:`Buscar versiones nuevas y descargarlas por adelantado`,unavailable:`Solo la aplicación instalada en Windows se actualiza sola. Con npm, actualizas por npm.`,idle:`Se descarga una versión nueva y se instala en cuanto cierras la aplicación.`,checking:`Buscando una versión nueva…`,upToDate:e=>`Esta es la \xFAltima versi\xF3n. Comprobado a las ${e}.`,downloading:(e,n)=>`Descargando la versi\xF3n ${e}\u2026 ${String(n)} %`,ready:e=>`La versi\xF3n ${e} est\xE1 lista y se instalar\xE1 cuando cierres la aplicaci\xF3n. Reinicia para instalarla ahora.`,error:e=>`No se ha podido comprobar: ${e}`},servers:{heading:`Servidores`,hint:`Hosts de Docker por SSH o TCP. Se guardan como contexts de docker, así que la CLI de docker también los conoce. Cambia entre ellos con el selector de la barra de estado.`,empty:`Todavía no hay servidores.`,inUse:`en uso`,cli:`CLI`,test:`Probar`,testing:`Probando…`,remove:`Eliminar`,removeBlocked:`En uso por la aplicación o por la CLI de docker. Cambia antes a otro context.`,removeTitle:e=>`\xBFEliminar el servidor '${e}'?`,removeDescription:`Esto elimina el context de docker, también para la CLI de docker. En el servidor mismo no cambia nada.`,connected:(e,n,t)=>`Conectado: Docker ${e} en ${n}/${t}.`,unknownHostKey:(e,n)=>`${e} todav\xEDa no se conoce. Compara esta huella ${n} con la del servidor (ssh-keygen -lf /etc/ssh/ssh_host_*_key.pub) antes de confiar en ella:`,trust:`Confiar y volver a probar`,add:{heading:`Añadir un servidor`,name:`Nombre`,namePlaceholder:`servidor-casa`,kind:`Conexión`,ssh:`SSH`,tcp:`TCP`,username:`Usuario`,usernamePlaceholder:`vacío: usuario de este ordenador`,host:`Host`,hostPlaceholder:`192.168.1.16`,port:`Puerto`,description:`Descripción`,descriptionPlaceholder:`opcional`,submit:`Añadir`,tcpWarning:`El TCP a secas no tiene autenticación: quien alcance el puerto en la red controla Docker. Mejor usa SSH.`,added:e=>`Servidor '${e}' a\xF1adido.`}},assistant:{configured:`Hay una clave guardada.`,clearKey:`Eliminar la clave`,keyLabel:`Clave de API`,model:`Modelo`,modelHint:`Opus razona mejor sobre un problema difícil; Sonnet y Haiku responden más rápido y cuestan menos. Haiku además lee menos de una vez.`,hint:`Con tu propia clave de API de Claude, cada contenedor tiene una pestaña de Claude que ayuda a mirar un problema. La clave se guarda cifrada en este ordenador, y solo la puede leer tu usuario de Windows. Cada pregunta cuesta unos céntimos de uso de API, en tu cuenta.`}}});var jh;var Fh=f(()=>{jh={nav:{label:`Navegación principal`,dashboard:`Panel`,containers:`Contenedores`,images:`Images`,volumes:`Volumes`,networks:`Redes`,compose:`Compose`,logs:`Logs`,terminal:`Terminal`,settings:`Ajustes`},routes:{container:`Contenedor`},header:{search:`Buscar (Ctrl+K)`,lightTheme:`Tema claro`,darkTheme:`Tema oscuro`,quit:`Salir de Docker Client MX`},statusBar:{connecting:`Conectando con Docker…`,engineRunning:`Engine en marcha`,engineUnreachable:`Engine inaccesible`,containers:(e,n)=>`${String(e)} de ${String(n)} contenedores`,images:e=>e===1?`1 image`:`${String(e)} images`,reconnect:`Reconectar`},contextPicker:{label:`Context de Docker`,switching:`Cambiando…`,unsupported:`no compatible`,inUseByCli:`en uso por la CLI`},actionMenu:{label:`Acciones`},confirmDialog:{confirm:`Eliminar`},dataTable:{empty:`No se ha encontrado nada.`,selectAll:`Seleccionar todo`,clearSelection:`Borrar la selección`,select:e=>`Seleccionar ${e}`},jsonView:{expand:e=>`Desplegar: ${e}`,collapse:e=>`Plegar: ${e}`,empty:`No hay nada que mostrar.`},toast:{region:`Notificaciones (F8)`,close:`Cerrar la notificación`},usageChart:{ago:e=>`hace ${e}`,max:e=>`m\xE1x. ${e}`,now:`ahora`,values:(e,n,t)=>`ahora ${e}, m\xE1ximo ${n}, m\xEDnimo ${t}`,noData:e=>`${e}: todav\xEDa no hay mediciones.`,summary:(e,n,t)=>`${e} en ${n}: ${t}.`},palette:{title:`Ir a`,description:`Escribe para buscar páginas, contenedores, images, volumes y redes. Las flechas eligen, Intro ejecuta.`,placeholder:`Busca una página, un contenedor, una image, un volume o una red…`,results:`Resultados`,empty:`No se ha encontrado nada.`,groups:{page:`Página`,container:`Contenedor`,image:`Image`,volume:`Volume`,compose:`Compose`,network:`Red`,action:`Acción`},sections:{page:`Páginas`,container:`Contenedores`,image:`Imágenes`,volume:`Volúmenes`,compose:`Proyectos compose`,network:`Redes`,action:`Acciones`},recent:`Recientes`,attention:`Requiere atención`,hint:`c contenedores · i imágenes · v volúmenes · n redes · p compose · > acciones · → acciones de una línea`,actions:`Acciones`,verbs:{start:`Iniciar`,stop:`Detener`,restart:`Reiniciar`,pause:`Pausar`,unpause:`Reanudar`,recreate:`Reconstruir`},commandHint:`Intro lo ejecuta`,commandNothing:`Nada que ejecutar`,problems:{unknown:e=>`${e}: no encontrado`,ambiguous:(e,n)=>`${e}: ${String(n)} contenedores, s\xE9 m\xE1s preciso`,state:e=>`${e}: no es posible en este estado`,notCompose:e=>`${e}: no es un contenedor de compose`},commandDone:e=>e===1?`1 orden ejecutada.`:`${String(e)} \xF3rdenes ejecutadas.`,events:e=>`Eventos de ${e}`,terminal:e=>`Terminal en ${e}`,memory:e=>`L\xEDmite de memoria de ${e}\u2026`,copyId:e=>`Copiar el ID de ${e}`,imageRun:e=>`Iniciar ${e}\u2026`,imageLayers:e=>`Capas de ${e}`,imagePull:e=>`Volver a descargar ${e}`,imageRemove:e=>`Eliminar ${e}\u2026`,volumeBackup:e=>`Copia de seguridad de ${e}\u2026`,composeLogs:e=>`Seguir los logs de ${e}`,prune:`Limpiar…`,checkUpdates:`Buscar actualizaciones de imágenes`,theme:`Cambiar entre claro y oscuro`,useContext:e=>`Cambiar a ${e}`,copied:e=>`Copiado: ${e}`,askClaude:e=>`Preguntar a Claude: ${e}`,askNote:`Solo tu pregunta va a Claude`,thinking:`Claude está pensando…`,claudeSays:e=>`Claude: ${e}`,questionNote:`Para esto, Claude miró tus contenedores, con las mismas herramientas que la pestaña Claude.`,commandNote:`Para esto, Claude recibió los nombres y el estado de tus contenedores.`,aiNothing:`Claude no encontró nada que encaje.`,aiMatches:e=>e===1?`1 resultado`:`${e} resultados`,noContainerSize:`La paleta no conoce el tamaño de los contenedores; el de imágenes y volúmenes sí.`,copyCommand:e=>`Copiar: ${e}`,proposal:(e,n)=>`${e} ${n}`,start:e=>`Iniciar ${e}`,stop:e=>`Detener ${e}`,restart:e=>`Reiniciar ${e}`,diagnose:e=>`Diagnosticar ${e}`,imageInUse:e=>`Image \xB7 usada por ${String(e)} contenedor${e===1?``:`es`}`,imageUnused:`Image · sin usar`,network:e=>`Red \xB7 ${e}`,composeDetail:(e,n)=>`Compose \xB7 ${String(e)} de ${String(n)} en marcha`,composeUp:e=>`${e}: up`,composeFile:e=>`${e}: mostrar el archivo compose`,composeDown:e=>`${e}: down\u2026`,recreate:e=>`Recrear ${e}`,recreateDetail:`up --force-recreate solo para este servicio`,volumeBrowse:e=>`Mirar dentro de ${e}`,networkMembers:e=>`Qui\xE9n est\xE1 conectado a ${e}`}}});var Hh;var Vh=f(()=>{Hh={title:`Terminal`,intro:{start:`Un shell en la máquina donde se ejecuta el daemon de Docker, como tu distro de WSL.`,afterDocker:` funciona aquí como siempre. Eres `,afterRoot:`: el shell va por un contenedor `,afterAlpine:` efímero y privilegiado que desaparece en cuanto cierras el shell o esta página.`},tabsLabel:`Terminal`,tabs:{terminal:`Terminal`,assistant:`Claude`},loading:`Cargando la terminal…`}});var Uh;var Hc;var Bh;var zh=f(()=>{Uh=e=>`${String(e)} volume${e===1?``:`s`}`,Hc=e=>`${String(e)} contenedor${e===1?``:`es`}`,Bh={title:`Volumes`,diskSpace:`Espacio en disco`,calculating:`calculando…`,unused:`Sin usar`,menuLabel:`Acciones de volume`,searchLabel:`Buscar por nombre`,onlyUnused:`Solo los volumes sin usar`,refreshing:`Actualizando…`,selected:e=>`${String(e)} seleccionados`,empty:`No se han encontrado volumes.`,columns:{name:`Nombre`,driver:`Driver`,inUse:`En uso`,created:`Creado`,size:`Tamaño`,actions:`Acciones`},containerCount:Hc,rowMenu:e=>`Acciones para ${e}`,rowBrowse:`Ver el contenido…`,browse:{title:e=>`Dentro de ${e}`,description:`Solo lectura, mediante un contenedor auxiliar efímero. Desaparece al cerrar esto.`,loading:`Cargando…`,empty:`Esta carpeta está vacía.`,up:`Carpeta superior`,path:`Ruta en el volumen`},rowBackup:`Hacer copia como .tar`,rowRestore:`Restaurar una copia…`,backupTitle:e=>`Hacer una copia de ${e} como .tar`,backupTitleInUse:e=>`Hacer una copia de ${e}. Est\xE1 en uso: una base de datos que escriba durante la copia puede dejar una copia que no siempre se restaura bien. Det\xE9n antes ese contenedor, o usa su propio dump.`,restoreTitle:e=>`Restaurar una copia en ${e}`,inUseReason:e=>`Lo usa ${Hc(e)}; elim\xEDnalos o detenlos primero`,menu:{create:`Crear un volume…`,pruneAnonymous:`Limpiar los anónimos`,pruneUnused:`Limpiar los que no se usan`},createDialog:{title:`Crear un volume`,description:`Un volume vacío con un nombre, para asociarlo después a un contenedor.`,nameLabel:`Nombre`,namePlaceholder:`my-data`,storageLabel:`¿Dónde se guardan los datos?`,storage:{docker:`Gestionado por Docker`,dockerHint:`Recomendado. Docker decide dónde van los datos.`,folder:`Una carpeta en la máquina de Docker`,folderHint:`Una carpeta que ya exista, por ejemplo para compartir archivos con un contenedor.`,nfs:`Un recurso NFS en la red`,nfsHint:`Una carpeta compartida en un NAS o un servidor.`},folderLabel:`Carpeta`,folderHint:`La carpeta ya debe existir en la máquina donde se ejecuta Docker. En WSL, C:\\data es /mnt/c/data.`,nfsServerLabel:`Servidor`,nfsPathLabel:`Carpeta compartida`,nfsHint:`Solo se comprueba cuando un contenedor empieza a usar este volume.`,advanced:`Avanzado`,driverLabel:`Driver`,driverHint:`Déjalo en local salvo que uses un plugin de volume.`,submit:`Crear`,creating:`Creando…`},restore:{title:e=>`\xBFRestaurar una copia en ${e}?`,description:e=>`Los archivos con el mismo nombre se sobrescriben; lo que no esté en la copia se queda. `+(e>0?`Det\xE9n primero ${Hc(e)} que usan este volume: una base de datos en marcha no se entera de que sus archivos han cambiado. `:``)+`El archivo lo eliges a continuación.`,confirm:`Elegir un archivo`},remove:{title:`¿Eliminar el volume?`,description:e=>`Se perder\xE1n todos los datos de '${e}'. Esto no se puede deshacer.`,manyTitle:`¿Eliminar los volumes?`,manyDescription:e=>`Se perder\xE1n todos los datos de ${Uh(e)}. Los volumes que todav\xEDa est\xE1n en uso se omiten.`},prune:{allTitle:`¿Limpiar todos los volumes sin usar?`,allDescription:`Se elimina todo volume sin un contenedor asociado, incluidos los volumes con nombre que creaste tú. Los datos que contienen se pierden.`,anonymousTitle:`¿Limpiar los volumes anónimos?`,anonymousDescription:`Se eliminan los volumes sin nombre que ya no usa ningún contenedor. Suelen ser restos de contenedores que ya no existen.`,confirm:`Limpiar`},created:e=>`El volume ${e} se ha creado.`,pruned:(e,n)=>`${Uh(e)} eliminados, ${n} liberados.`,backedUp:(e,n)=>`Copia de ${e} guardada como ${n}.`,restored:(e,n)=>`${e} se ha restaurado en ${n}.`}});var qh;var Wh=f(()=>{vh();bh();Dh();Ch();Sh();Mh();Ah();Oh();Ph();Fh();Vh();zh();qh={common:hh,compose:yh,containers:wh,dashboard:Ih,format:Eh,images:Nh,logs:xh,networks:$h,settings:Lh,shell:jh,terminal:Hh,volumes:Bh}});var Gh;var Zh=f(()=>{Gh={cancel:`Annuler`,close:`Fermer`,remove:`Supprimer`,retry:`Réessayer`,refresh:`Actualiser`,search:`Rechercher`,loading:`Chargement…`,save:`Enregistrer`,copy:`Copier`,copied:`Copié`,start:`Démarrer`,stop:`Arrêter`,restart:`Redémarrer`,yes:`Oui`,no:`Non`,none:`Aucun`,unknown:`Inconnu`,nothingToPrune:`Il n’y avait rien à nettoyer.`}});var Qh;var Kh=f(()=>{Qh={title:`Compose`,intro:`Les projets issus des labels de vos conteneurs. Un projet arrêté figure aussi dans la liste, tant que ses conteneurs existent encore.`,updating:`Mise à jour…`,state:{running:`en cours`,partial:`partiel`,stopped:`arrêté`},runningOf:(e,n)=>`${String(e)} sur ${String(n)}`,expand:e=>`D\xE9plier : ${e}`,collapse:e=>`Replier : ${e}`,menuAria:e=>`Actions pour ${e}`,upAria:e=>`D\xE9marrer ${e} (up)`,startAria:e=>`D\xE9marrer ${e}`,stopAria:e=>`Arr\xEAter ${e}`,restartAria:e=>`Red\xE9marrer ${e}`,downAria:e=>`Arr\xEAter ${e} (down)`,up:`Up`,down:`Down`,fileAria:e=>`Afficher le fichier compose de ${e}`,file:{button:`Fichier`,title:e=>`Le fichier compose de ${e}`,loading:`Chargement…`,raw:`Tel qu’écrit`,resolved:`Tel que compose le lit`,rawHint:`Le fichier sur le disque, inchangé.`,resolvedHint:"Overrides fusionnés et ${VAR} remplacées : c’est la base du projet en cours.",empty:`Ce fichier est vide.`,copyFailed:e=>`\xC9chec de la copie : ${e}`},noCli:`La CLI docker n’est pas disponible`,noWorkingDir:`L’emplacement de ce projet est inconnu`,busy:`En cours… un up peut prendre du temps si des images doivent être téléchargées.`,empty:`Aucun projet Compose trouvé. Ils apparaissent ici dès qu’il existe des conteneurs avec des labels Compose.`,downDialog:{title:`Arrêter le projet ?`,description:e=>`Les conteneurs et les r\xE9seaux de '${e}' seront arr\xEAt\xE9s et supprim\xE9s. Les volumes sont conserv\xE9s, vos donn\xE9es sont donc pr\xE9serv\xE9es.`,confirm:`Arrêter`},recreate:`Recréer`,recreateAria:e=>`Recr\xE9er ${e}`,recreateTitle:`docker compose up -d --no-deps --force-recreate`,recreateDone:e=>`${e} a \xE9t\xE9 recr\xE9\xE9.`,upDone:e=>`'${e}' est d\xE9marr\xE9.`,downDone:e=>`'${e}' a \xE9t\xE9 arr\xEAt\xE9.`}});var Yh;var Jh=f(()=>{Yh={actions:{pause:`Mettre en pause`,resume:`Reprendre`,copyDiagnosis:`Copier le diagnostic`,copyRunCommand:`Copier la commande run`,restartPolicy:`Politique de redémarrage…`,memoryLimit:`Limite de mémoire…`,recreate:`Reconstruire`},page:{title:`Conteneurs`,cpuUsage:`Utilisation CPU`,memoryUsage:`Utilisation mémoire`,search:`Rechercher par nom, image ou ID`,onlyRunning:`Seulement les conteneurs en cours`,updating:`Mise à jour…`,selected:e=>`${String(e)} s\xE9lectionn\xE9s`,empty:`Aucun conteneur trouvé.`,columns:{name:`Nom`,id:`ID du conteneur`,image:`Image`,ports:`Ports`,cpu:`CPU`,memory:`Mémoire`,actions:`Actions`},group:{loose:`Conteneurs isolés`,expand:e=>`D\xE9plier : ${e}`,collapse:e=>`Replier : ${e}`,count:e=>e===1?`1 conteneur`:`${String(e)} conteneurs`,running:e=>`${String(e)} en cours`,startAll:`Tout démarrer`,stopAll:`Tout arrêter`,restartAll:`Tout redémarrer`,removeAll:`Tout supprimer`,menu:e=>`Actions pour tout dans ${e}`,manual:`Groupe personnel`,addToGroup:`Ajouter à un groupe…`,removeFromGroup:`Retirer du groupe`,rename:`Renommer le groupe…`,dissolve:`Dissoudre le groupe`},groupDialog:{assignTitle:`Ajouter à un groupe`,assignOne:e=>`'${e}' rejoint le groupe que vous nommez ici.`,assignMany:e=>`${String(e)} conteneurs rejoignent le groupe que vous nommez ici.`,renameTitle:`Renommer le groupe`,renameDescription:e=>`Tout ce qui est dans '${e}' suit le nouveau nom.`,nameLabel:`Nom du groupe`,namePlaceholder:`par exemple mon-stack`,existing:`Groupes existants`,hint:`Un groupe personnel vit dans cette application et suit le nom du conteneur ; Docker lui-même n’en sait rien.`,empty:`Saisissez un nom.`,reserved:e=>`'${e}' est d\xE9j\xE0 un projet Compose.`,submit:`Enregistrer`},row:{diagnosisOf:e=>`Diagnostic de ${e}`,missingNetwork:e=>`Tourne, mais n\u2019est pas reli\xE9 \xE0 ${e}`,menu:e=>`Actions pour ${e}`},confirm:{title:`Supprimer le conteneur ?`,one:e=>`'${e}' sera arr\xEAt\xE9 et supprim\xE9. C\u2019est irr\xE9versible ; les volumes sont conserv\xE9s.`,many:e=>`${e===1?`1 conteneur sera arrêté et supprimé`:`${String(e)} conteneurs seront arr\xEAt\xE9s et supprim\xE9s`}. C\u2019est irr\xE9versible ; les volumes sont conserv\xE9s.`,group:(e,n)=>`Les ${String(e)} conteneurs de '${n}' seront arr\xEAt\xE9s et supprim\xE9s. C\u2019est irr\xE9versible ; les volumes sont conserv\xE9s.`}},detail:{back:`‹ Conteneurs`,menu:`Actions pour ce conteneur`,gone:` n’existe plus. Un conteneur lancé avec --rm disparaît dès qu’il s’arrête, et compose en crée un nouveau au up.`,goneUnnamed:`Ce conteneur n’existe plus.`,successor:(e,n)=>`Aller au ${e} actuel (${n})`,tabsLabel:`Détails du conteneur`,tabs:{logs:`Logs`,health:`Health`,events:`Événements`,inspect:`Inspect`,stats:`Stats`,terminal:`Terminal`,files:`Fichiers`,networks:`Réseaux`,assistant:`Claude`},wiring:{network:e=>`Tourne, mais n\u2019est pas reli\xE9 \xE0 ${e}. Rien ne le joint par ce r\xE9seau, et il ne joint rien.`,networkWhy:`Cela arrive quand le réseau a été supprimé puis recréé alors que le conteneur existait.`,connect:e=>`Relier \xE0 ${e}`,ports:e=>`Tourne, mais ne publie pas ${e}.`,portsWhy:`Cela arrive quand il a été redémarré après un démarrage qui a échoué sur un port pris.`,portsFromNetwork:`Cela découle du réseau manquant ci-dessus : les ports passent par un réseau.`,restart:`Redémarrer`},events:{loading:`Chargement…`,empty:`Rien d’enregistré pour l’instant. L’app enregistre depuis son démarrage, plus ce dont Docker se souvenait alors.`,scope:`Enregistré dans l’app depuis son démarrage, jusqu’à 100 par nom de conteneur ; après un redémarrage de l’app, Docker complète avec ce dont il se souvient.`,crashLoop:e=>`Plant\xE9 ${String(e)} fois dans la derni\xE8re heure.`,create:`Créé`,start:`Démarré`,exited:e=>e===0?`Arrêté normalement`:`Arr\xEAt\xE9 avec le code ${String(e)}`,exitedUnknown:`Arrêté`,exitHint137:`SIGKILL : tué de l’extérieur, souvent mémoire pleine ou un arrêt trop long`,exitHint143:`SIGTERM : prié de s’arrêter`,kill:e=>`${e} envoy\xE9`,oom:`Tué par le noyau : mémoire pleine`,stop:`Arrêté`,restart:`Redémarré`,pause:`En pause`,unpause:`Repris`,destroy:`Supprimé`,rename:e=>`Renomm\xE9, \xE9tait ${e}`,renamed:`Renommé`,health:{starting:`Healthcheck démarre`,healthy:`Devenu healthy`,unhealthy:`Devenu unhealthy`}},health:{loading:`Chargement…`,refresh:`Actualiser`,status:{starting:`starting`,healthy:`healthy`,unhealthy:`unhealthy`,unknown:`pas encore exécuté`},failingStreak:e=>e===1?`a échoué une fois`:`a \xE9chou\xE9 ${String(e)} fois de suite`,command:`Commande`,fromImage:`Vient de l’image ; le daemon ne donne pas la commande.`,rhythm:`Rythme`,every:e=>`toutes les ${e}`,timeout:e=>`d\xE9lai ${e}`,startPeriod:e=>`start period ${e}`,retries:e=>e===1?`1 tentative avant unhealthy`:`${String(e)} tentatives avant unhealthy`,defaults:`les valeurs par défaut de Docker`,probes:`Derniers résultats`,noProbes:`La vérification n’a pas encore été exécutée.`,exitCode:e=>`code de sortie ${String(e)}`,unknownExitCode:`pas de code de sortie`,noOutput:`pas de sortie`},networks:{title:`Sur ces réseaux`,loading:`Chargement…`,empty:`Ce conteneur n’est sur aucun réseau.`,noAddress:`pas d’adresse`,alsoKnownAs:e=>`aussi joignable comme ${e}`,disconnect:`Déconnecter`,disconnectFrom:e=>`D\xE9connecter de ${e}`,addTitle:`Connecter à un réseau`,addHint:`Prend effet tout de suite, même pendant que le conteneur tourne.`,allConnected:`Ce conteneur est déjà sur tous les réseaux.`,networkLabel:`Réseau`,choose:`Choisissez un réseau…`,alias:`Nom supplémentaire dans le réseau`,aliasHint:`Un nom supplémentaire que les autres conteneurs de ce réseau peuvent utiliser, en plus du nom du conteneur.`,aliasPlaceholder:`base-de-donnees`,connect:`Connecter`,working:`En cours…`,invalidAlias:e=>`'${e}' n\u2019est pas un nom valide. Utilisez des lettres, des chiffres, des points, des tirets et des underscores.`},fetching:`Chargement…`,terminalLoading:`Chargement du terminal…`,shellOnlyRunning:`Un shell ne peut être ouvert que dans un conteneur en cours d’exécution.`,cpu:`CPU`,lastMinute:e=>`derni\xE8re minute \xB7 pic ${e} %`,chartPending:`le graphique apparaît après quelques mesures`,memory:`Mémoire`,ofLimit:e=>`${e} % de la limite`,noLimit:`aucune limite définie`,nearLimit:`Proche de la limite : au-delà, le noyau commence à tuer des processus du conteneur.`,statsOnlyRunning:`Les stats ne sont collectées que pour un conteneur en cours d’exécution.`,confirmTitle:`Supprimer le conteneur ?`,confirmDescription:`Ce conteneur sera arrêté et supprimé. C’est irréversible ; les volumes sont conservés.`},diagnosis:{title:`Copier le diagnostic`,description:`Statut, health, mounts, events et les dernières lignes de log, à coller dans un chat ou une issue. C’est exactement ce qui est copié.`,collecting:`Collecte…`,noRedactions:`Rien n’a été omis ; aucune valeur ne ressemblait à un secret.`,redactions:e=>`${e===1?`1 valeur omise`:`${String(e)} valeurs omises`} : les variables d\u2019environnement et tout ce qui ressemblait \xE0 un mot de passe, un token ou une cl\xE9.`,copyFailed:e=>`\xC9chec de la copie : ${e}`},memoryLimit:{title:`Limite de mémoire`,description:`La mémoire que le conteneur peut utiliser. Effet immédiat ; le conteneur n’est pas recréé pour autant.`,loading:`Chargement…`,current:e=>`Actuellement : ${e}`,none:`Actuellement : pas de limite`,label:`Limite`,unit:`Unité`,noRemove:`Supprimer une limite n’est pas possible ainsi : Docker ne fait que la modifier. Sans limite, il faut recréer le conteneur.`,compose:`C’est un conteneur compose : compose up remet ce que dit le fichier compose.`,save:`Enregistrer`,saving:`Enregistrement…`,saved:e=>`La limite de m\xE9moire est maintenant de ${e}.`,invalid:`Saisissez un nombre supérieur à zéro.`},restartPolicy:{title:`Politique de redémarrage`,description:`Ce que fait le daemon quand ce conteneur s’arrête. Effet immédiat ; le conteneur n’est pas recréé.`,loading:`Chargement…`,label:`Politique`,names:{no:`Jamais`,always:`Toujours`,"unless-stopped":`Sauf si vous l’avez arrêté vous-même`,"on-failure":`Seulement après un code d’erreur`},maximum:`Nombre maximal de tentatives`,maximumHint:`0 signifie continuer d’essayer.`,save:`Enregistrer`,saving:`Enregistrement…`,saved:e=>`La politique de red\xE9marrage est maintenant ${e}.`},runCommand:{title:`Copier la commande run`,description:`La commande qui recrée ce conteneur, déduite de inspect. Ce qui vient de l’image est omis.`,building:`Déduction…`,composeNote:e=>`Ce conteneur appartient au projet compose ${e}, o\xF9 docker compose up est la r\xE9ponse. Voici comment il tourne actuellement.`,envWarning:e=>`${e===1?`1 variable d’environnement y figure`:`${String(e)} variables d\u2019environnement y figurent`}, mots de passe compris : la commande doit fonctionner.`,noEnv:`Pas de variables d’environnement propres.`,copyFailed:e=>`\xC9chec de la copie : ${e}`},logs:{filter:`Filtrer par texte`,follow:`Suivre`,timestamps:`Horodatages`,clear:`Effacer`,save:`Enregistrer…`,saveHint:`Tout le log de Docker, avec horodatage ; pas seulement ce que vous voyez ici.`,saved:(e,n)=>`${String(e)} lignes enregistr\xE9es dans ${n}`,connecting:`Connexion…`,count:(e,n)=>`${String(e)} lignes sur ${String(n)}`,truncated:`lignes les plus anciennes supprimées`,empty:`Pas encore de lignes de log.`,noMatches:`Aucune ligne ne correspond.`},files:{up:`Remonter d’un dossier`,path:`Chemin dans le conteneur`,refresh:`Actualiser`,changed:`Modifié`,changesTitle:`Modifié par rapport à l’image`,changesCount:e=>e===1?`1 chemin`:`${String(e)} chemins`,changesEmpty:`Ce conteneur n’a rien changé à son image.`,changesHint:`Les dossiers qui n’ont changé que parce qu’ils contiennent autre chose sont omis. Les volumes ne comptent pas.`,changeKind:{added:`ajouté`,modified:`modifié`,deleted:`supprimé`},openFolderOf:e=>`Ouvrir le dossier de ${e}`,upload:`Envoyer…`,empty:`Ce dossier est vide.`,downloadFolder:e=>`T\xE9l\xE9charger le dossier en tar : ${e}`,downloadFile:e=>`T\xE9l\xE9charger : ${e}`,hint:e=>`D\xE9posez des fichiers ici pour les placer dans ${e}. Le t\xE9l\xE9chargement d\u2019un dossier donne un .tar, ce qui pr\xE9serve les permissions et les liens symboliques.`,savedAs:e=>`Enregistr\xE9 sous ${e}.`,uploaded:(e,n)=>`${e===1?`1 fichier placé`:`${String(e)} fichiers plac\xE9s`} dans ${n}.`},terminal:{exited:`Le shell s’est terminé.`,reopen:`Rouvrir`,connecting:`Connexion…`,connected:`connecté`},assistant:{introHost:`Claude reçoit une vue d’ensemble de l’engine et des conteneurs, suit ce qui se passe dans le terminal et demande logs et inspect de lui-même. Chaque demande est listée ci-dessous, et les secrets sont exclus. Claude ne tape jamais rien lui-même : une commande suggérée devient un bouton qui la place sur le prompt, et vous appuyez sur Entrée.`,introContainer:`Claude reçoit le diagnostic de ce conteneur, sans les secrets, puis demande de lui-même les logs, l’inspect, les events ou les autres conteneurs. Chaque demande est listée ci-dessous. Claude ne modifie rien lui-même : une suggestion devient un bouton, et c’est vous qui décidez.`,defaultQuestion:`Que se passe-t-il avec ce conteneur, et que puis-je y faire ?`,defaultHostQuestion:`Que vois-tu dans le terminal, et qu’est-ce que cela veut dire ?`,onPrompt:`Sur le prompt`,done:`Terminé`,thinking:`Claude réfléchit…`,questionLabel:`Question pour Claude`,followUp:`Question de suivi`,ask:`Demander à Claude`,putInTerminal:`Placer dans le terminal`,composeUp:e=>`compose up pour ${e}`,start:e=>`D\xE9marrer ${e}`,stop:e=>`Arr\xEAter ${e}`,restart:e=>`Red\xE9marrer ${e}`,panelClosed:`Le panneau a été fermé.`,usage:(e,n,t)=>`${e} tokens en entr\xE9e, ${n} depuis le cache, ${t} en sortie`}}});var Xh;var ev=f(()=>{Xh={title:`Tableau de bord`,engine:{connecting:`Connexion à Docker…`,running:`Engine en cours`,unreachable:`Engine injoignable`,startDistro:e=>`D\xE9marrer ${e}`,startingDistro:e=>`D\xE9marrage de ${e}\u2026`,startDaemon:e=>`D\xE9marrer Docker dans ${e}`,startingDaemon:e=>`D\xE9marrage de Docker dans ${e}\u2026`,daemonHint:e=>`${e} tourne : c\u2019est donc le daemon \xE0 l\u2019int\xE9rieur qui est arr\xEAt\xE9. L\u2019application peut l\u2019y d\xE9marrer.`,idleHint:{intro:e=>`${e} a d\xE9marr\xE9 puis s\u2019est arr\xEAt\xE9. WSL \xE9teint une distro sans session ouverte au bout de 15 secondes ; d\xE9finissez`,under:`sous`,in:`dans`,outro:`pour la garder active.`}},contexts:{switchFailed:e=>`Impossible de basculer vers ${e}`},usage:{cpu:`CPU de tous les conteneurs`,memory:`Mémoire`,memoryChart:`Mémoire de tous les conteneurs`,network:`Réseau de tous les conteneurs`,networkChart:`Trafic réseau de tous les conteneurs`,received:`Reçu`,sent:`Envoyé`,receivedAria:`reçu`,sentAria:`envoyé`,hostNote:`Les conteneurs en network_mode: host ne sont pas comptés ; ils n’ont pas de compteurs propres.`},counts:{containers:`Conteneurs`,runningOfTotal:`en cours sur le total`,images:`Images`,volumesNetworks:`Volumes · réseaux`},disk:{title:`Espace disque`,total:e=>`${e} au total`,calculating:`calcul en cours…`,prune:`Nettoyer`,pruning:`Nettoyage…`,unused:e=>`${String(e)} inutilis\xE9s`,labels:{images:`Images`,containers:`Conteneurs`,volumes:`Volumes`,buildCache:`Cache de build`},footnoteBefore:`Les mêmes chiffres que`,footnoteAfter:`. L’espace réellement libéré par un nettoyage n’est pas indiqué : cela dépend des layers partagés, et une estimation qui ressemble à un fait vaut moins que pas de chiffre du tout.`},attention:{title:`À surveiller`,none:`Tout est en ordre : pas de boucle de plantage, rien d’unhealthy, tout est relié.`,loading:`Vérification…`,crashLoop:e=>`plant\xE9 ${String(e)} fois dans la derni\xE8re heure`,restarting:`redémarre sans cesse`,unhealthy:`le healthcheck échoue`,network:e=>`tourne, mais n\u2019est pas reli\xE9 \xE0 ${e}`,ports:e=>`tourne, mais ne publie pas ${e}`,update:e=>`une version plus r\xE9cente de ${e} est disponible`},stopped:{title:`Arrêtés récemment`,none:`Rien ne s’est arrêté.`,clean:`terminé proprement`,failed:e=>`termin\xE9 avec le code ${String(e)}`,created:e=>`cr\xE9\xE9 ${e}`},pruneDialog:{title:`Nettoyer`,description:`Tout ce que vous cochez est supprimé et ne peut pas être récupéré.`,confirm:`Nettoyer`,containers:`Conteneurs arrêtés`,containersHint:`Un conteneur en pause est conservé.`,networks:`Réseaux inutilisés`,networksHint:`bridge, host et none sont toujours conservés.`,images:`Images sans tag`,imagesHint:`En général des restes d’un build plus récent.`,allImages:`Aussi les images taguées sans conteneur`,allImagesHint:`Vous devrez les retélécharger ensuite.`,buildCache:`Cache de build`,buildCacheHint:`Tout ce qui n’est pas utilisé. Le prochain build sera plus long.`,volumes:`Volumes anonymes`,volumesHint:`Les volumes nommés sont conservés. Ils contiennent des données.`},pruneResult:{removed:{containers:e=>e===1?`1 conteneur`:`${String(e)} conteneurs`,networks:e=>e===1?`1 réseau`:`${String(e)} r\xE9seaux`,volumes:e=>e===1?`1 volume`:`${String(e)} volumes`,images:e=>e===1?`1 image`:`${String(e)} images`,buildCache:e=>e===1?`1 entrée de cache de build`:`${String(e)} entr\xE9es de cache de build`},kinds:{containers:`conteneurs`,networks:`réseaux`,volumes:`volumes`,images:`images`,buildCache:`cache de build`},and:`et`,notice:(e,n)=>`${e} supprim\xE9s, ${n} lib\xE9r\xE9s.`,problem:e=>`Impossible de nettoyer ${e}`}}});var nv;var tv=f(()=>{nv={justNow:`à l’instant`,hoursAgo:e=>e===1?`il y a 1 heure`:`il y a ${String(e)} heures`,yesterday:`hier`,daysAgo:e=>`il y a ${String(e)} jours`,lastMonth:`le mois dernier`,monthsAgo:e=>`il y a ${String(e)} mois`,lastYear:`l’an dernier`,yearsAgo:e=>`il y a ${String(e)} ans`}});var rv;var ov;var iv;var sv=f(()=>{rv=e=>`${String(e)} image${e===1?``:`s`}`,ov=e=>`${String(e)} conteneur${e===1?``:`s`}`,iv={title:`Images`,diskSpace:`Espace disque`,unused:`Inutilisées`,menuLabel:`Actions sur les images`,searchLabel:`Rechercher par repository, tag ou ID`,onlyUnused:`Seulement les images inutilisées`,refreshing:`Actualisation…`,updatesHint:`La mise à jour télécharge la nouvelle image. Un conteneur en cours garde l’ancienne jusqu’à ce qu’il soit recréé ; pour un conteneur d’un projet Compose, l’app propose de le faire après le pull.`,selected:e=>`${String(e)} s\xE9lectionn\xE9es`,empty:`Aucune image trouvée.`,columns:{repository:`Repository`,tag:`Tag`,imageId:`ID de l’image`,inUse:`Utilisée`,created:`Créée`,size:`Taille`,actions:`Actions`},badge:{newer:`version plus récente`,notInRegistry:`absente du registry`,uncheckable:`vérification impossible`},containerCount:ov,updateTitle:e=>`Mettre \xE0 jour : ret\xE9l\xE9charger ${e}`,rowMenu:e=>`Actions pour ${e}`,rowUpdate:`Télécharger la version plus récente`,rowRun:`Lancer un conteneur…`,rowLayers:`Couches…`,runLabel:e=>`D\xE9marrer un conteneur depuis ${e}`,runLabelDangling:`Démarrer un conteneur depuis cette image sans tag`,layers:{title:e=>`Couches de ${e}`,description:`Les plus récentes d’abord, comme docker history les montre : la dernière ligne du Dockerfile en haut.`,loading:`Chargement…`,summary:(e,n)=>`${e===1?`1 couche`:`${String(e)} couches`} \xB7 image ${n}`,packed:e=>`Les couches totalisent ${e} : avec ce stockage, Docker indique chaque couche telle qu\u2019elle est arriv\xE9e, compress\xE9e. Sur le disque, l\u2019image est plus grande.`,noSize:`ne change rien sur le disque`,expand:`Afficher toute la commande`,empty:`Cette image ne signale aucune couche.`},menu:{pull:`Télécharger une image`,check:`Rechercher des mises à jour`,checking:`Vérification…`,pruneDangling:`Nettoyer les images sans tag`,pruneUnused:`Nettoyer les inutilisées`},remove:{title:`Supprimer l’image ?`,description:e=>`'${e}' sera supprim\xE9e. Si cette image a d\u2019autres tags, seul ce tag dispara\xEEt.`,forceTitle:`Forcer la suppression de l’image ?`,forceDescription:(e,n)=>`'${e}' est utilis\xE9e par ${ov(n)}. Elle ne peut \xEAtre supprim\xE9e que de force, et ces conteneurs cesseront de fonctionner.`,forceConfirm:`Supprimer quand même`,manyTitle:`Supprimer les images ?`,manyDescription:e=>`${rv(e)} seront supprim\xE9es. Les images encore utilis\xE9es sont ignor\xE9es.`},prune:{allTitle:`Nettoyer toutes les images inutilisées ?`,allDescription:`Tout ce qui n’a pas de conteneur attaché est supprimé, y compris les images que vous avez téléchargées vous-même. Vous devrez les retélécharger.`,danglingTitle:`Nettoyer les images sans tag ?`,danglingDescription:`Les images sans tag sont supprimées. Ce sont en général des restes d’un build plus récent.`,confirm:`Nettoyer`},pruned:(e,n)=>`${rv(e)} supprim\xE9es, ${n} lib\xE9r\xE9s.`,check:{allCurrent:`Tout est à jour`,updates:e=>`${e===1?`1 image a`:`${String(e)} images ont`} une version plus r\xE9cente`,notInRegistry:e=>`${String(e)} absentes d\u2019un registry`,uncheckable:e=>`${String(e)} n\u2019ont pas pu \xEAtre v\xE9rifi\xE9es`,summary:(e,n)=>`${e} (${String(n)} v\xE9rifi\xE9es).`},pullDialog:{title:`Télécharger une image`,nameAndTag:`Nom et tag, par exemple`,withoutTag:`Sans tag,`,isUsed:`est utilisé.`,inputLabel:`Image`,submit:`Télécharger`,staleHeading:`Ces conteneurs tournent encore avec la version précédente :`,inProject:e=>`dans ${e}`,notCompose:`pas démarré avec compose ; recréez-le vous-même`,renewed:e=>`Recr\xE9\xE9s : ${e}.`,renew:`Recréer les conteneurs`,renewing:`Recréation…`,renewHint:`Avec compose, seulement ces services.`},runDialog:{title:`Démarrer un conteneur`,fromImage:`Depuis l’image`,name:`Nom`,namePlaceholder:`laisser vide = Docker en choisit un`,autoRestart:`Redémarrer automatiquement`,autoRestartHint:`Après un crash ou au redémarrage de Docker. Pas quand vous l’arrêtez vous-même.`,ports:`Ports`,portsHint:`Rendre un port du conteneur joignable depuis cet ordinateur, par exemple localhost:8080.`,onThisComputer:`Sur cet ordinateur`,inContainer:`Dans le conteneur`,protocolHeader:`Protocole`,hostPortPlaceholder:`vide = n’importe quel port libre`,addPort:`Ajouter un port`,hostPort:e=>`Port h\xF4te ${String(e)}`,containerPort:e=>`Port du conteneur ${String(e)}`,protocol:e=>`Protocole ${String(e)}`,removePort:e=>`Supprimer le port ${String(e)}`,network:`Réseau`,networkHint:`Les conteneurs d’un réseau que vous avez créé vous-même se joignent par leur nom. Sur le réseau par défaut, non.`,networkDefault:`Par défaut (bridge)`,networkAlias:`Nom supplémentaire dans le réseau`,networkAliasHint:`Un nom supplémentaire que les autres conteneurs de ce réseau peuvent utiliser, en plus du nom du conteneur.`,networkAliasPlaceholder:`base-de-donnees`,invalidAlias:e=>`'${e}' n\u2019est pas un nom valide. Utilisez des lettres, des chiffres, des points, des tirets et des underscores.`,volumes:`Volumes`,volumesHint:`Les données qui doivent survivre au conteneur : un volume, ou un dossier sur la machine Docker.`,source:`Volume ou dossier`,addVolume:`Ajouter un volume`,sourcePlaceholder:`my-data ou /srv/data`,targetPlaceholder:`/chemin/dans/conteneur`,volumeSource:e=>`Source du volume ${String(e)}`,volumeTarget:e=>`Cible du volume ${String(e)}`,readOnly:`lecture seule`,readOnlyHint:`Le conteneur peut lire les fichiers mais pas les modifier.`,removeVolume:e=>`Supprimer le volume ${String(e)}`,env:`Variables d’environnement`,envHint:`Les réglages du programme dans le conteneur. Vous pouvez aussi coller NOM=valeur.`,envNameHeader:`Nom`,envValueHeader:`Valeur`,addEnv:`Ajouter une variable`,envName:e=>`Nom de la variable ${String(e)}`,envValue:e=>`Valeur de la variable ${String(e)}`,removeEnv:e=>`Supprimer la variable ${String(e)}`,submit:`Démarrer`,starting:`Démarrage…`,invalidContainerPort:e=>`'${e}' n\u2019est pas un port de conteneur valide. Utilisez un nombre de 1 \xE0 65535.`,invalidHostPort:e=>`'${e}' n\u2019est pas un port h\xF4te valide. Laissez-le vide pour que Docker en choisisse un.`,volumeIncomplete:`Un volume a besoin d’une source et d’une cible.`,notAbsolute:e=>`'${e}' n\u2019est pas un chemin absolu. La cible dans le conteneur commence par un /.`,envNameMissing:`Une variable a besoin d’un nom.`,envNameWithEquals:e=>`'${e}' ne peut pas contenir de = ; c\u2019est ce qui s\xE9pare le nom de la valeur.`}}});var av;var lv=f(()=>{av={title:`Logs`,intro:`Tout ce qu’écrivent vos conteneurs en cours d’exécution, entrelacé par horodatage. Un conteneur qui démarre ou s’arrête rejoint ou quitte la liste tout seul.`,projectLabel:`Projet compose`,allProjects:`Tous les conteneurs`,searchLabel:`Rechercher dans les logs`,searchPlaceholder:`Un terme, ou une expression telle que /error|warn/`,caseSensitive:`Respecter la casse`,containers:`Conteneurs`,nothingRunning:`Rien ne tourne.`,showAll:`Tout réactiver`,timestamps:`Horodatages`,clear:`Effacer`,columns:{time:`Heure`,object:`Objet`,line:`Ligne`},allFiltered:e=>e===1?`La seule ligne est masquée par le filtre.`:`Les ${String(e)} lignes sont masqu\xE9es par le filtre.`,empty:`Aucune ligne pour l’instant. Dès qu’un conteneur écrit quelque chose, cela apparaît ici.`,lineCount:e=>e===1?`1 ligne`:`${String(e)} lignes`,filteredOut:e=>`${String(e)} filtr\xE9es`,truncated:`Les lignes les plus anciennes sont sorties du tampon.`,invalidExpression:e=>`Expression non valide : ${e}`,levels:{label:`Niveau`,errors:`Erreurs`,warnings:`Avertissements`,unknownHidden:`Les lignes sans niveau reconnaissable, comme une trace de pile sous une erreur, sont masquées par ce filtre.`}}});var cv;var uv;var dv;var fv=f(()=>{cv=e=>`${String(e)} r\xE9seau${e===1?``:`x`}`,uv=e=>`${String(e)} conteneur${e===1?``:`s`}`,dv={title:`Réseaux`,unused:`Inutilisés`,menuLabel:`Actions sur les réseaux`,searchLabel:`Rechercher par nom ou driver`,hideBuiltIn:`Masquer les réseaux intégrés`,refreshing:`Actualisation…`,selected:e=>`${String(e)} s\xE9lectionn\xE9s`,empty:`Aucun réseau trouvé.`,builtIn:`intégré`,internal:`interne`,columns:{name:`Nom`,driver:`Driver`,scope:`Portée`,subnet:`Sous-réseau`,connected:`Connectés`,actions:`Actions`},containerCount:uv,rowMenu:e=>`Actions pour ${e}`,rowMembers:`Qui est connecté…`,members:{title:e=>`Connect\xE9s \xE0 ${e}`,description:`Les mêmes conteneurs que ceux comptés sur cette page, y compris ceux arrêtés.`,loading:`Chargement…`,empty:`Aucun conteneur n’est connecté à ce réseau.`,noAddress:`pas d’adresse`,stopped:`arrêté`},builtInReason:`Réseau Docker intégré ; ne peut pas être supprimé`,connectedReason:e=>`${uv(e)} connect\xE9${e===1?``:`s`} ; d\xE9connectez-les d\u2019abord`,menu:{create:`Créer un réseau…`,pruneUnused:`Nettoyer les inutilisés`},createDialog:{title:`Créer un réseau`,description:`Un réseau à vous, sur lequel les conteneurs se trouvent par leur nom.`,nameLabel:`Nom`,namePlaceholder:`mon-reseau`,internal:`Interne uniquement`,internalHint:`Les conteneurs se joignent entre eux, mais n’ont aucune route vers l’extérieur.`,advanced:`Avancé`,driverLabel:`Driver`,driverHint:`Laissez bridge, sauf si vous faites tourner un swarm ou utilisez un plugin réseau.`,subnetLabel:`Sous-réseau`,subnetHint:`Laissez vide et Docker choisit lui-même une plage libre.`,gatewayLabel:`Passerelle`,gatewayHint:`Doit être dans le sous-réseau. Vide signifie la première adresse de la plage.`,submit:`Créer`,creating:`Création…`},remove:{title:`Supprimer le réseau ?`,description:e=>`'${e}' sera supprim\xE9. Les conteneurs qui s\u2019y rattacheront plus tard ne le trouveront plus.`,manyTitle:`Supprimer les réseaux ?`,manyDescription:e=>`${cv(e)} seront supprim\xE9s. Les r\xE9seaux avec des conteneurs connect\xE9s et les r\xE9seaux int\xE9gr\xE9s sont ignor\xE9s.`},prune:{title:`Nettoyer les réseaux inutilisés ?`,description:`Tout réseau sans conteneur connecté est supprimé. Cela ne libère pas d’espace disque ; cela garde la liste lisible.`,confirm:`Nettoyer`},pruned:e=>`${cv(e)} supprim\xE9s.`,created:e=>`Le r\xE9seau ${e} a \xE9t\xE9 cr\xE9\xE9.`}});var pv;var mv=f(()=>{pv={title:`Paramètres`,language:{heading:`Langue`,label:`Langue de l’application`,hint:`Les termes techniques comme container, image et volume restent en anglais.`},startup:{heading:`Démarrage`,startAtLogin:`Démarrer à l’ouverture de session, directement dans la zone de notification`,paletteShortcut:`Ctrl+Maj+Espace ouvre la recherche, partout dans Windows`,shortcutTaken:`Ctrl+Maj+Espace est déjà pris par un autre programme ; le raccourci ne marche pas pour l’instant.`,hintAvailable:`Ainsi, les notifications ci-dessous arrivent aussi quand vous n’ouvrez pas l’application vous-même. Désactivez-le ici, ou dans le Gestionnaire des tâches sous Applications de démarrage.`,hintUnavailable:`Ne fonctionne que dans l’application installée. Ici, Windows démarrerait un electron.exe nu.`},notifications:{heading:`Notifications`,crash:`Quand un conteneur s’arrête de façon inattendue`,unhealthy:`Quand un conteneur devient unhealthy`,wiring:`Quand un conteneur perd son réseau ou ses ports`,hint:`Un conteneur que vous arrêtez vous-même, depuis l’application, le terminal ou avec compose down, ne déclenche jamais de notification. Un même conteneur ne notifie qu’une fois par minute au maximum.`},update:{heading:`Mises à jour`,version:e=>`version ${e}`,install:`Redémarrer et mettre à jour`,check:`Vérifier maintenant`,auto:`Rechercher les nouvelles versions et les télécharger à l’avance`,unavailable:`Seule l’application installée sous Windows se met à jour toute seule. Avec npm, la mise à jour passe par npm.`,idle:`Une nouvelle version est téléchargée et installée dès que vous fermez l’application.`,checking:`Recherche d’une nouvelle version…`,upToDate:e=>`C\u2019est la derni\xE8re version. V\xE9rifi\xE9 \xE0 ${e}.`,downloading:(e,n)=>`T\xE9l\xE9chargement de la version ${e}\u2026 ${String(n)} %`,ready:e=>`La version ${e} est pr\xEAte et sera install\xE9e \xE0 la fermeture de l\u2019application. Red\xE9marrez pour l\u2019installer maintenant.`,error:e=>`\xC9chec de la v\xE9rification : ${e}`},servers:{heading:`Serveurs`,hint:`Des hôtes Docker via SSH ou TCP. Ils sont enregistrés comme contexts docker, la CLI docker les connaît donc aussi. Basculez de l’un à l’autre avec le sélecteur dans la barre d’état.`,empty:`Pas encore de serveurs.`,inUse:`utilisé`,cli:`CLI`,test:`Tester`,testing:`Test en cours…`,remove:`Supprimer`,removeBlocked:`Utilisé par l’application ou par la CLI docker. Basculez d’abord vers un autre context.`,removeTitle:e=>`Supprimer le serveur '${e}' ?`,removeDescription:`Cela supprime le context docker, y compris pour la CLI docker. Rien ne change sur le serveur lui-même.`,connected:(e,n,t)=>`Connect\xE9 : Docker ${e} sur ${n}/${t}.`,unknownHostKey:(e,n)=>`${e} n\u2019est pas encore connu. Comparez cette empreinte ${n} avec celle du serveur (ssh-keygen -lf /etc/ssh/ssh_host_*_key.pub) avant de lui faire confiance :`,trust:`Faire confiance et tester à nouveau`,add:{heading:`Ajouter un serveur`,name:`Nom`,namePlaceholder:`serveur-maison`,kind:`Connexion`,ssh:`SSH`,tcp:`TCP`,username:`Utilisateur`,usernamePlaceholder:`vide : utilisateur de cet ordinateur`,host:`Hôte`,hostPlaceholder:`192.168.1.16`,port:`Port`,description:`Description`,descriptionPlaceholder:`facultatif`,submit:`Ajouter`,tcpWarning:`Le TCP simple n’a pas d’authentification : quiconque atteint le port sur le réseau contrôle Docker. Préférez SSH.`,added:e=>`Serveur '${e}' ajout\xE9.`}},assistant:{configured:`Une clé est enregistrée.`,clearKey:`Supprimer la clé`,keyLabel:`Clé API`,model:`Modèle`,modelHint:`Opus raisonne le mieux sur un problème tenace ; Sonnet et Haiku répondent plus vite et coûtent moins cher. Haiku lit aussi moins de choses à la fois.`,hint:`Avec votre propre clé API Claude, chaque conteneur reçoit un onglet Claude qui aide à creuser un problème. La clé est stockée chiffrée sur cet ordinateur, lisible seulement par votre utilisateur Windows. Chaque question coûte quelques centimes d’usage API, sur votre compte.`}}});var gv;var hv=f(()=>{gv={nav:{label:`Navigation principale`,dashboard:`Tableau de bord`,containers:`Conteneurs`,images:`Images`,volumes:`Volumes`,networks:`Réseaux`,compose:`Compose`,logs:`Logs`,terminal:`Terminal`,settings:`Paramètres`},routes:{container:`Conteneur`},header:{search:`Rechercher (Ctrl+K)`,lightTheme:`Thème clair`,darkTheme:`Thème sombre`,quit:`Quitter Docker Client MX`},statusBar:{connecting:`Connexion à Docker…`,engineRunning:`Engine en cours`,engineUnreachable:`Engine injoignable`,containers:(e,n)=>`${String(e)} conteneurs sur ${String(n)}`,images:e=>e===1?`1 image`:`${String(e)} images`,reconnect:`Reconnecter`},contextPicker:{label:`Context Docker`,switching:`Basculement…`,unsupported:`non pris en charge`,inUseByCli:`utilisé par la CLI`},actionMenu:{label:`Actions`},confirmDialog:{confirm:`Supprimer`},dataTable:{empty:`Rien trouvé.`,selectAll:`Tout sélectionner`,clearSelection:`Effacer la sélection`,select:e=>`S\xE9lectionner ${e}`},jsonView:{expand:e=>`D\xE9plier : ${e}`,collapse:e=>`Replier : ${e}`,empty:`Rien à afficher.`},toast:{region:`Notifications (F8)`,close:`Fermer la notification`},usageChart:{ago:e=>`il y a ${e}`,max:e=>`max. ${e}`,now:`maintenant`,values:(e,n,t)=>`maintenant ${e}, maximum ${n}, minimum ${t}`,noData:e=>`${e} : pas encore de mesures.`,summary:(e,n,t)=>`${e} sur les ${n} \xE9coul\xE9es : ${t}.`},palette:{title:`Aller à`,description:`Tapez pour rechercher des pages, conteneurs, images, volumes et réseaux. Les flèches choisissent, Entrée exécute.`,placeholder:`Rechercher une page, un conteneur, une image, un volume ou un réseau…`,results:`Résultats`,empty:`Rien trouvé.`,groups:{page:`Page`,container:`Conteneur`,image:`Image`,volume:`Volume`,compose:`Compose`,network:`Réseau`,action:`Action`},sections:{page:`Pages`,container:`Conteneurs`,image:`Images`,volume:`Volumes`,compose:`Projets compose`,network:`Réseaux`,action:`Actions`},recent:`Récents`,attention:`À surveiller`,hint:`c conteneurs · i images · v volumes · n réseaux · p compose · > actions · → actions d’une ligne`,actions:`Actions`,verbs:{start:`Démarrer`,stop:`Arrêter`,restart:`Redémarrer`,pause:`Mettre en pause`,unpause:`Reprendre`,recreate:`Reconstruire`},commandHint:`Entrée l’exécute`,commandNothing:`Rien à exécuter`,problems:{unknown:e=>`${e} : introuvable`,ambiguous:(e,n)=>`${e} : ${String(n)} conteneurs, soyez plus pr\xE9cis`,state:e=>`${e} : impossible dans cet \xE9tat`,notCompose:e=>`${e} : pas un conteneur compose`},commandDone:e=>e===1?`1 commande exécutée.`:`${String(e)} commandes ex\xE9cut\xE9es.`,events:e=>`\xC9v\xE9nements de ${e}`,terminal:e=>`Terminal dans ${e}`,memory:e=>`Limite de m\xE9moire de ${e}\u2026`,copyId:e=>`Copier l\u2019ID de ${e}`,imageRun:e=>`D\xE9marrer ${e}\u2026`,imageLayers:e=>`Couches de ${e}`,imagePull:e=>`R\xE9cup\xE9rer ${e} \xE0 nouveau`,imageRemove:e=>`Supprimer ${e}\u2026`,volumeBackup:e=>`Sauvegarder ${e}\u2026`,composeLogs:e=>`Suivre les logs de ${e}`,prune:`Nettoyer…`,checkUpdates:`Vérifier les mises à jour des images`,theme:`Basculer entre clair et sombre`,useContext:e=>`Passer \xE0 ${e}`,copied:e=>`Copi\xE9 : ${e}`,askClaude:e=>`Demander \xE0 Claude : ${e}`,askNote:`Seule votre question est envoyée à Claude`,thinking:`Claude réfléchit…`,claudeSays:e=>`Claude : ${e}`,questionNote:`Pour cela, Claude a regardé vos conteneurs, avec les mêmes outils que l’onglet Claude.`,commandNote:`Pour cela, Claude a reçu les noms et l’état de vos conteneurs.`,aiNothing:`Claude n’a rien trouvé qui corresponde.`,aiMatches:e=>e===1?`1 résultat`:`${e} r\xE9sultats`,noContainerSize:`La palette ne connaît pas la taille des conteneurs, seulement celle des images et des volumes.`,copyCommand:e=>`Copier : ${e}`,proposal:(e,n)=>`${e} ${n}`,start:e=>`D\xE9marrer ${e}`,stop:e=>`Arr\xEAter ${e}`,restart:e=>`Red\xE9marrer ${e}`,diagnose:e=>`Diagnostiquer ${e}`,imageInUse:e=>`Image \xB7 utilis\xE9e par ${String(e)} conteneur${e===1?``:`s`}`,imageUnused:`Image · inutilisée`,network:e=>`R\xE9seau \xB7 ${e}`,composeDetail:(e,n)=>`Compose \xB7 ${String(e)} sur ${String(n)} en marche`,composeUp:e=>`${e} : up`,composeFile:e=>`${e} : afficher le fichier compose`,composeDown:e=>`${e} : down\u2026`,recreate:e=>`Recr\xE9er ${e}`,recreateDetail:`up --force-recreate pour ce service seulement`,volumeBrowse:e=>`Regarder dans ${e}`,networkMembers:e=>`Qui est connect\xE9 \xE0 ${e}`}}});var vv;var yv=f(()=>{vv={title:`Terminal`,intro:{start:`Un shell sur la machine où tourne le démon Docker, par exemple votre distro WSL.`,afterDocker:` fonctionne ici comme d’habitude. Vous êtes `,afterRoot:` : le shell passe par un conteneur `,afterAlpine:` éphémère et privilégié, qui disparaît dès que vous fermez le shell ou cette page.`},tabsLabel:`Terminal`,tabs:{terminal:`Terminal`,assistant:`Claude`},loading:`Chargement du terminal…`}});var bv;var Vc;var wv;var Dv=f(()=>{bv=e=>`${String(e)} volume${e===1?``:`s`}`,Vc=e=>`${String(e)} conteneur${e===1?``:`s`}`,wv={title:`Volumes`,diskSpace:`Espace disque`,calculating:`calcul en cours…`,unused:`Inutilisés`,menuLabel:`Actions sur les volumes`,searchLabel:`Rechercher par nom`,onlyUnused:`Seulement les volumes inutilisés`,refreshing:`Actualisation…`,selected:e=>`${String(e)} s\xE9lectionn\xE9s`,empty:`Aucun volume trouvé.`,columns:{name:`Nom`,driver:`Driver`,inUse:`Utilisé`,created:`Créé`,size:`Taille`,actions:`Actions`},containerCount:Vc,rowMenu:e=>`Actions pour ${e}`,rowBrowse:`Voir le contenu…`,browse:{title:e=>`Dans ${e}`,description:`En lecture seule, via un conteneur d’appoint éphémère. Il disparaît à la fermeture.`,loading:`Chargement…`,empty:`Ce dossier est vide.`,up:`Dossier parent`,path:`Chemin dans le volume`},rowBackup:`Sauvegarder en .tar`,rowRestore:`Restaurer une sauvegarde…`,backupTitle:e=>`Sauvegarder ${e} en .tar`,backupTitleInUse:e=>`Sauvegarder ${e}. Il est utilis\xE9 : une base de donn\xE9es qui \xE9crit pendant la sauvegarde peut laisser une sauvegarde qui ne se restaure pas toujours. Arr\xEAtez d\u2019abord ce conteneur, ou utilisez son propre dump.`,restoreTitle:e=>`Restaurer une sauvegarde dans ${e}`,inUseReason:e=>`Utilis\xE9 par ${Vc(e)} ; supprimez-les ou arr\xEAtez-les d\u2019abord`,menu:{create:`Créer un volume…`,pruneAnonymous:`Nettoyer les anonymes`,pruneUnused:`Nettoyer les inutilisés`},createDialog:{title:`Créer un volume`,description:`Un volume vide avec un nom, à rattacher plus tard à un conteneur.`,nameLabel:`Nom`,namePlaceholder:`my-data`,storageLabel:`Où les données sont-elles stockées ?`,storage:{docker:`Géré par Docker`,dockerHint:`Recommandé. Docker décide où vont les données.`,folder:`Un dossier sur la machine Docker`,folderHint:`Un dossier existant, par exemple pour partager des fichiers avec un conteneur.`,nfs:`Un partage NFS sur le réseau`,nfsHint:`Un dossier partagé sur un NAS ou un serveur.`},folderLabel:`Dossier`,folderHint:`Le dossier doit déjà exister sur la machine qui fait tourner Docker. Sous WSL, C:\\data correspond à /mnt/c/data.`,nfsServerLabel:`Serveur`,nfsPathLabel:`Dossier partagé`,nfsHint:`Vérifié seulement au moment où un conteneur se met à utiliser ce volume.`,advanced:`Avancé`,driverLabel:`Driver`,driverHint:`Laissez local, sauf si vous utilisez un plugin de volume.`,submit:`Créer`,creating:`Création…`},restore:{title:e=>`Restaurer une sauvegarde dans ${e} ?`,description:e=>`Les fichiers de même nom sont écrasés ; ce qui n’est pas dans la sauvegarde reste en place. `+(e>0?`Arr\xEAtez d\u2019abord ${Vc(e)} qui utilisent ce volume : une base de donn\xE9es en cours ne remarque pas que ses fichiers ont chang\xE9. `:``)+`Vous choisirez le fichier ensuite.`,confirm:`Choisir un fichier`},remove:{title:`Supprimer le volume ?`,description:e=>`Toutes les donn\xE9es de '${e}' seront perdues. C\u2019est irr\xE9versible.`,manyTitle:`Supprimer les volumes ?`,manyDescription:e=>`Toutes les donn\xE9es de ${bv(e)} seront perdues. Les volumes encore utilis\xE9s sont ignor\xE9s.`},prune:{allTitle:`Nettoyer tous les volumes inutilisés ?`,allDescription:`Tout volume sans conteneur attaché est supprimé, y compris les volumes nommés que vous avez créés vous-même. Les données qu’ils contiennent seront perdues.`,anonymousTitle:`Nettoyer les volumes anonymes ?`,anonymousDescription:`Les volumes sans nom qu’aucun conteneur n’utilise plus sont supprimés. Ce sont en général des restes de conteneurs qui n’existent déjà plus.`,confirm:`Nettoyer`},created:e=>`Le volume ${e} a \xE9t\xE9 cr\xE9\xE9.`,pruned:(e,n)=>`${bv(e)} supprim\xE9s, ${n} lib\xE9r\xE9s.`,backedUp:(e,n)=>`Sauvegarde de ${e} enregistr\xE9e sous ${n}.`,restored:(e,n)=>`${e} a \xE9t\xE9 restaur\xE9 dans ${n}.`}});var Iv;var Cv=f(()=>{Zh();Kh();Jh();ev();tv();sv();lv();fv();mv();hv();yv();Dv();Iv={common:Gh,compose:Qh,containers:Yh,dashboard:Xh,format:nv,images:iv,logs:av,networks:dv,settings:pv,shell:gv,terminal:vv,volumes:wv}});var Ev;var Sv=f(()=>{Ev={cancel:`Cancel`,close:`Close`,remove:`Remove`,retry:`Try again`,refresh:`Refresh`,search:`Search`,loading:`Loading…`,save:`Save`,copy:`Copy`,copied:`Copied`,start:`Start`,stop:`Stop`,restart:`Restart`,yes:`Yes`,no:`No`,none:`None`,unknown:`Unknown`,nothingToPrune:`There was nothing to clean up.`}});var kv;var Tv=f(()=>{kv={title:`Compose`,intro:`Projects from the labels on your containers. A project that is stopped is listed too, as long as its containers still exist.`,updating:`Updating…`,state:{running:`running`,partial:`partial`,stopped:`stopped`},runningOf:(e,n)=>`${String(e)} of ${String(n)}`,expand:e=>`Expand: ${e}`,collapse:e=>`Collapse: ${e}`,menuAria:e=>`Actions for ${e}`,upAria:e=>`Up ${e}`,startAria:e=>`Start ${e}`,stopAria:e=>`Stop ${e}`,restartAria:e=>`Restart ${e}`,downAria:e=>`Down ${e}`,up:`Up`,down:`Down`,fileAria:e=>`Show the compose file of ${e}`,file:{button:`File`,title:e=>`The compose file of ${e}`,loading:`Loading…`,raw:`As written`,resolved:`As compose reads it`,rawHint:`The file on disk, unchanged.`,resolvedHint:"Overrides merged and ${VAR} filled in: this is what the running project is based on.",empty:`This file is empty.`,copyFailed:e=>`Copying failed: ${e}`},noCli:`The docker CLI isn't available`,noWorkingDir:`It's not known where this project lives`,busy:`Working… an up can take a while if images need to be pulled.`,empty:`No compose projects found. They show up here as soon as there are containers with compose labels.`,downDialog:{title:`Take project down?`,description:e=>`The containers and networks of '${e}' will be stopped and removed. Volumes are kept, so your data is preserved.`,confirm:`Take down`},recreate:`Rebuild`,recreateAria:e=>`Rebuild ${e}`,recreateTitle:`docker compose up -d --no-deps --force-recreate`,recreateDone:e=>`${e} has been rebuilt.`,upDone:e=>`'${e}' is up.`,downDone:e=>`'${e}' has been taken down.`}});var Nv;var Mv=f(()=>{Nv={actions:{pause:`Pause`,resume:`Resume`,copyDiagnosis:`Copy diagnosis`,copyRunCommand:`Copy run command`,restartPolicy:`Restart policy…`,memoryLimit:`Memory limit…`,recreate:`Rebuild`},page:{title:`Containers`,cpuUsage:`CPU usage`,memoryUsage:`Memory usage`,search:`Search by name, image or ID`,onlyRunning:`Only running containers`,updating:`Updating…`,selected:e=>`${String(e)} selected`,empty:`No containers found.`,columns:{name:`Name`,id:`Container ID`,image:`Image`,ports:`Ports`,cpu:`CPU`,memory:`Memory`,actions:`Actions`},group:{loose:`Standalone containers`,expand:e=>`Expand: ${e}`,collapse:e=>`Collapse: ${e}`,count:e=>e===1?`1 container`:`${String(e)} containers`,running:e=>`${String(e)} running`,startAll:`Start all`,stopAll:`Stop all`,restartAll:`Restart all`,removeAll:`Remove all`,menu:e=>`Actions for all in ${e}`,manual:`Your own group`,addToGroup:`Add to group…`,removeFromGroup:`Remove from group`,rename:`Rename group…`,dissolve:`Dissolve group`},groupDialog:{assignTitle:`Add to group`,assignOne:e=>`'${e}' goes into the group you name here.`,assignMany:e=>`${String(e)} containers go into the group you name here.`,renameTitle:`Rename group`,renameDescription:e=>`Everything in '${e}' moves along to the new name.`,nameLabel:`Group name`,namePlaceholder:`e.g. my-stack`,existing:`Existing groups`,hint:`A group of your own lives in this app and follows the container name; Docker itself knows nothing about it.`,empty:`Fill in a name.`,reserved:e=>`'${e}' is already a Compose project.`,submit:`Save`},row:{diagnosisOf:e=>`Diagnosis of ${e}`,missingNetwork:e=>`Running, but not attached to ${e}`,menu:e=>`Actions for ${e}`},confirm:{title:`Remove container?`,one:e=>`'${e}' will be stopped and removed. This can't be undone; volumes are kept.`,many:e=>`${e===1?`1 container`:`${String(e)} containers`} will be stopped and removed. This can't be undone; volumes are kept.`,group:(e,n)=>`The ${String(e)} containers of '${n}' will be stopped and removed. This can't be undone; volumes are kept.`}},detail:{back:`‹ Containers`,menu:`Actions for this container`,gone:` no longer exists. A container with --rm disappears once it stops, and compose creates a new one on up.`,goneUnnamed:`This container no longer exists.`,successor:(e,n)=>`Go to the current ${e} (${n})`,tabsLabel:`Container details`,tabs:{logs:`Logs`,health:`Health`,events:`Events`,inspect:`Inspect`,stats:`Stats`,terminal:`Terminal`,files:`Files`,networks:`Networks`,assistant:`Claude`},wiring:{network:e=>`Running, but not attached to ${e}. Nothing reaches it over that network, and it reaches nothing.`,networkWhy:`This happens when the network was removed and created again while the container existed.`,connect:e=>`Attach to ${e}`,ports:e=>`Running, but not publishing ${e}.`,portsWhy:`This happens when it was started again after a start that failed on a taken port.`,portsFromNetwork:`That follows from the missing network above: ports are published through a network.`,restart:`Restart`},events:{loading:`Loading…`,empty:`Nothing recorded yet. The app keeps track from the moment it starts, plus what Docker still remembered then.`,scope:`Kept in the app since it started, up to 100 per container name; after a restart of the app, Docker fills in what it still remembers.`,crashLoop:e=>`Crashed ${String(e)} times in the last hour.`,create:`Created`,start:`Started`,exited:e=>e===0?`Exited normally`:`Exited with code ${String(e)}`,exitedUnknown:`Exited`,exitHint137:`SIGKILL: killed from outside, often out of memory or a stop that took too long`,exitHint143:`SIGTERM: asked to stop`,kill:e=>`Sent ${e}`,oom:`Killed by the kernel: out of memory`,stop:`Stopped`,restart:`Restarted`,pause:`Paused`,unpause:`Resumed`,destroy:`Removed`,rename:e=>`Renamed, was ${e}`,renamed:`Renamed`,health:{starting:`Health check starting`,healthy:`Became healthy`,unhealthy:`Became unhealthy`}},health:{loading:`Loading…`,refresh:`Refresh`,status:{starting:`starting`,healthy:`healthy`,unhealthy:`unhealthy`,unknown:`has not run yet`},failingStreak:e=>e===1?`failed once`:`failed ${String(e)} times in a row`,command:`Command`,fromImage:`Comes from the image; the daemon does not report the command itself.`,rhythm:`Rhythm`,every:e=>`every ${e}`,timeout:e=>`timeout ${e}`,startPeriod:e=>`start period ${e}`,retries:e=>e===1?`1 try before unhealthy`:`${String(e)} tries before unhealthy`,defaults:`Docker's own defaults`,probes:`Last results`,noProbes:`The check has not run yet.`,exitCode:e=>`exit code ${String(e)}`,unknownExitCode:`no exit code`,noOutput:`no output`},networks:{title:`On these networks`,loading:`Loading…`,empty:`This container is not on any network.`,noAddress:`no address`,alsoKnownAs:e=>`also reachable as ${e}`,disconnect:`Disconnect`,disconnectFrom:e=>`Disconnect from ${e}`,addTitle:`Connect to a network`,addHint:`Takes effect right away, also while the container is running.`,allConnected:`This container is already on every network.`,networkLabel:`Network`,choose:`Choose a network…`,alias:`Extra name in the network`,aliasHint:`An extra name the other containers on this network can use, next to the container name.`,aliasPlaceholder:`database`,connect:`Connect`,working:`Busy…`,invalidAlias:e=>`'${e}' is not a valid name. Use letters, digits, dots, hyphens and underscores.`},fetching:`Loading…`,terminalLoading:`Loading terminal…`,shellOnlyRunning:`A shell can only be opened in a running container.`,cpu:`CPU`,lastMinute:e=>`last minute \xB7 peak ${e}%`,chartPending:`the chart appears after a few samples`,memory:`Memory`,ofLimit:e=>`${e}% of the limit`,noLimit:`no limit set`,nearLimit:`Close to its limit: above this the kernel starts killing processes in the container.`,statsOnlyRunning:`Stats are only collected for a running container.`,confirmTitle:`Remove container?`,confirmDescription:`This container will be stopped and removed. This can't be undone; volumes are kept.`},diagnosis:{title:`Copy diagnosis`,description:`Status, health, mounts, events and the latest log lines, to paste into a chat or an issue. This is exactly what gets copied.`,collecting:`Collecting…`,noRedactions:`Nothing left out; no value looked like a secret.`,redactions:e=>`${e===1?`1 value`:`${String(e)} values`} left out: environment variables and anything that looked like a password, token or key.`,copyFailed:e=>`Copying failed: ${e}`},memoryLimit:{title:`Memory limit`,description:`How much memory the container may use. Applies immediately; the container is not recreated for it.`,loading:`Loading…`,current:e=>`Now: ${e}`,none:`Now: no limit`,label:`Limit`,unit:`Unit`,noRemove:`Removing a limit cannot be done this way: Docker only changes it. For no limit, the container has to be recreated.`,compose:`This is a compose container: compose up puts back what the compose file says.`,save:`Save`,saving:`Saving…`,saved:e=>`The memory limit is now ${e}.`,invalid:`Enter a number greater than zero.`},restartPolicy:{title:`Restart policy`,description:`What the daemon does when this container stops. Takes effect right away; the container is not recreated.`,loading:`Loading…`,label:`Policy`,names:{no:`Never`,always:`Always`,"unless-stopped":`Unless you stopped it yourself`,"on-failure":`Only after a non-zero exit code`},maximum:`Attempts at most`,maximumHint:`0 means keep trying.`,save:`Save`,saving:`Saving…`,saved:e=>`Restart policy is now ${e}.`},runCommand:{title:`Copy run command`,description:`The command that recreates this container, derived from inspect. Whatever comes from the image is left out.`,building:`Deriving…`,composeNote:e=>`This container belongs to compose project ${e}, where docker compose up is the answer. This is how it runs right now.`,envWarning:e=>`${e===1?`1 environment variable is`:`${String(e)} environment variables are`} in there, passwords and all: the command has to work.`,noEnv:`No environment variables of its own.`,copyFailed:e=>`Copying failed: ${e}`},logs:{filter:`Filter by text`,follow:`Follow`,timestamps:`Timestamps`,clear:`Clear`,save:`Save…`,saveHint:`The whole log from Docker, with timestamps; not just what you see here.`,saved:(e,n)=>`${String(e)} lines saved to ${n}`,connecting:`Connecting…`,count:(e,n)=>`${String(e)} of ${String(n)} lines`,truncated:`oldest lines dropped`,empty:`No log lines yet.`,noMatches:`No lines match that.`},files:{up:`Up one folder`,path:`Path in the container`,refresh:`Refresh`,changed:`Changed`,changesTitle:`Changed compared to the image`,changesCount:e=>e===1?`1 path`:`${String(e)} paths`,changesEmpty:`This container has changed nothing in its image.`,changesHint:`Folders that only changed because something inside them did are left out. Volumes are not part of this.`,changeKind:{added:`added`,modified:`changed`,deleted:`deleted`},openFolderOf:e=>`Open the folder of ${e}`,upload:`Upload…`,empty:`This folder is empty.`,downloadFolder:e=>`Download folder as tar: ${e}`,downloadFile:e=>`Download: ${e}`,hint:e=>`Drop files here to put them in ${e}. Downloading a folder gives a .tar, so permissions and symlinks are kept.`,savedAs:e=>`Saved as ${e}.`,uploaded:(e,n)=>`${e===1?`1 file`:`${String(e)} files`} put in ${n}.`},terminal:{exited:`The shell has exited.`,reopen:`Reopen`,connecting:`Connecting…`,connected:`connected`},assistant:{introHost:`Claude gets an overview of the engine and the containers, reads along in the terminal and requests logs and inspect on its own. Every request is listed below, and secrets are left out. Claude never types anything itself: a suggested command becomes a button that puts it on the prompt, and you press Enter.`,introContainer:`Claude gets the diagnosis of this container, without secrets, and then requests logs, inspect, events or the other containers on its own. Every request is listed below. Claude changes nothing itself: a suggestion becomes a button, and you decide.`,defaultQuestion:`What's going on with this container, and what can I do about it?`,defaultHostQuestion:`What do you see in the terminal, and what does it mean?`,onPrompt:`On the prompt`,done:`Done`,thinking:`Claude is thinking…`,questionLabel:`Question for Claude`,followUp:`Follow-up question`,ask:`Ask Claude`,putInTerminal:`Put in terminal`,composeUp:e=>`compose up for ${e}`,start:e=>`Start ${e}`,stop:e=>`Stop ${e}`,restart:e=>`Restart ${e}`,panelClosed:`The panel was closed.`,usage:(e,n,t)=>`${e} tokens in, ${n} from cache, ${t} out`}}});var xv;var Av=f(()=>{xv={title:`Dashboard`,engine:{connecting:`Connecting to Docker…`,running:`Engine running`,unreachable:`Engine unreachable`,startDistro:e=>`Start ${e}`,startingDistro:e=>`Starting ${e}\u2026`,startDaemon:e=>`Start Docker in ${e}`,startingDaemon:e=>`Starting Docker in ${e}\u2026`,daemonHint:e=>`${e} is running, so it is the daemon inside it that is not. The app can start it there.`,idleHint:{intro:e=>`${e} started earlier but stopped again. WSL shuts down a distro without an open session after 15 seconds; set`,under:`under`,in:`in`,outro:`to keep it running.`}},contexts:{switchFailed:e=>`Couldn't switch to ${e}`},usage:{cpu:`CPU across all containers`,memory:`Memory`,memoryChart:`Memory across all containers`,network:`Network across all containers`,networkChart:`Network traffic across all containers`,received:`Received`,sent:`Sent`,receivedAria:`received`,sentAria:`sent`,hostNote:`Containers with network_mode: host aren't counted; they have no counters of their own.`},counts:{containers:`Containers`,runningOfTotal:`running of total`,images:`Images`,volumesNetworks:`Volumes · networks`},disk:{title:`Disk usage`,total:e=>`${e} total`,calculating:`calculating…`,prune:`Clean up`,pruning:`Cleaning up…`,unused:e=>`${String(e)} unused`,labels:{images:`Images`,containers:`Containers`,volumes:`Volumes`,buildCache:`Build cache`},footnoteBefore:`The same figures as`,footnoteAfter:`. How much space cleaning up actually frees isn't shown: that depends on shared layers, and an estimate that looks like a fact is worse than no number at all.`},attention:{title:`Needs attention`,none:`Everything checks out: no crash loops, nothing unhealthy, everything attached.`,loading:`Checking…`,crashLoop:e=>`crashed ${String(e)} times in the last hour`,restarting:`keeps restarting`,unhealthy:`health check failing`,network:e=>`running, but not attached to ${e}`,ports:e=>`running, but not publishing ${e}`,update:e=>`a newer version of ${e} is available`},stopped:{title:`Recently stopped`,none:`Nothing has stopped.`,clean:`exited cleanly`,failed:e=>`exited with code ${String(e)}`,created:e=>`created ${e}`},pruneDialog:{title:`Clean up`,description:`Whatever you tick is removed and can't be recovered.`,confirm:`Clean up`,containers:`Stopped containers`,containersHint:`A paused container is kept.`,networks:`Unused networks`,networksHint:`bridge, host and none are always kept.`,images:`Untagged images`,imagesHint:`Usually leftovers from a newer build.`,allImages:`Tagged images without a container too`,allImagesHint:`You'll have to pull them again afterwards.`,buildCache:`Build cache`,buildCacheHint:`Everything that isn't in use. The next build will take longer.`,volumes:`Anonymous volumes`,volumesHint:`Named volumes are kept. These hold data.`},pruneResult:{removed:{containers:e=>e===1?`1 container`:`${String(e)} containers`,networks:e=>e===1?`1 network`:`${String(e)} networks`,volumes:e=>e===1?`1 volume`:`${String(e)} volumes`,images:e=>e===1?`1 image`:`${String(e)} images`,buildCache:e=>e===1?`1 build cache item`:`${String(e)} build cache items`},kinds:{containers:`containers`,networks:`networks`,volumes:`volumes`,images:`images`,buildCache:`build cache`},and:`and`,notice:(e,n)=>`${e} removed, ${n} freed.`,problem:e=>`Couldn't clean up ${e}`}}});var _v;var Rv=f(()=>{_v={justNow:`just now`,hoursAgo:e=>e===1?`1 hour ago`:`${String(e)} hours ago`,yesterday:`yesterday`,daysAgo:e=>`${String(e)} days ago`,lastMonth:`last month`,monthsAgo:e=>`${String(e)} months ago`,lastYear:`last year`,yearsAgo:e=>`${String(e)} years ago`}});var $v;var Ov;var Lv;var Pv=f(()=>{$v=e=>`${String(e)} image${e===1?``:`s`}`,Ov=e=>`${String(e)} container${e===1?``:`s`}`,Lv={title:`Images`,diskSpace:`Disk space`,unused:`Unused`,menuLabel:`Image actions`,searchLabel:`Search by repository, tag or ID`,onlyUnused:`Only unused images`,refreshing:`Refreshing…`,updatesHint:`Updating pulls the new image. A running container keeps the old one until it is recreated; for a container from a compose project, the app offers to do that after the pull.`,selected:e=>`${String(e)} selected`,empty:`No images found.`,columns:{repository:`Repository`,tag:`Tag`,imageId:`Image ID`,inUse:`In use`,created:`Created`,size:`Size`,actions:`Actions`},badge:{newer:`newer version`,notInRegistry:`not in registry`,uncheckable:`could not check`},containerCount:Ov,updateTitle:e=>`Update: pull ${e} again`,rowMenu:e=>`Actions for ${e}`,rowUpdate:`Pull newer version`,rowRun:`Run container…`,rowLayers:`Layers…`,runLabel:e=>`Start a container from ${e}`,runLabelDangling:`Start a container from this untagged image`,layers:{title:e=>`Layers of ${e}`,description:`Newest first, the way docker history shows them: the last line of the Dockerfile at the top.`,loading:`Loading…`,summary:(e,n)=>`${e===1?`1 layer`:`${String(e)} layers`} \xB7 image ${n}`,packed:e=>`The layers add up to ${e}: with this storage Docker reports each layer the way it arrived, packed. On disk the image is bigger.`,noSize:`changes nothing on disk`,expand:`Show the whole command`,empty:`This image reports no layers.`},menu:{pull:`Pull image`,check:`Check for updates`,checking:`Checking…`,pruneDangling:`Clean up untagged`,pruneUnused:`Clean up unused`},remove:{title:`Remove image?`,description:e=>`'${e}' will be removed. If this image has other tags, only this tag goes.`,forceTitle:`Force remove image?`,forceDescription:(e,n)=>`'${e}' is used by ${Ov(n)}. It can only be removed by force, and those containers will stop working.`,forceConfirm:`Remove anyway`,manyTitle:`Remove images?`,manyDescription:e=>`${$v(e)} will be removed. Images that are still in use are skipped.`},prune:{allTitle:`Clean up all unused images?`,allDescription:`Everything without a container attached is removed, including images you pulled yourself. You will have to pull them again.`,danglingTitle:`Clean up untagged images?`,danglingDescription:`Images without a tag are removed. These are usually leftovers from a newer build.`,confirm:`Clean up`},pruned:(e,n)=>`${$v(e)} removed, ${n} freed.`,check:{allCurrent:`Everything is up to date`,updates:e=>`${e===1?`1 image has`:`${String(e)} images have`} a newer version`,notInRegistry:e=>`${String(e)} not in a registry`,uncheckable:e=>`${String(e)} could not be checked`,summary:(e,n)=>`${e} (${String(n)} checked).`},pullDialog:{title:`Pull image`,nameAndTag:`Name and tag, for example`,withoutTag:`Without a tag,`,isUsed:`is used.`,inputLabel:`Image`,submit:`Pull`,staleHeading:`These containers are still running the previous version:`,inProject:e=>`in ${e}`,notCompose:`not started with compose; recreate it yourself`,renewed:e=>`Recreated: ${e}.`,renew:`Recreate containers`,renewing:`Recreating…`,renewHint:`With compose, only these services.`},runDialog:{title:`Start container`,fromImage:`From image`,name:`Name`,namePlaceholder:`leave empty = Docker picks one`,autoRestart:`Restart automatically`,autoRestartHint:`After a crash or when Docker restarts. Not when you stop it yourself.`,ports:`Ports`,portsHint:`Make a port of the container reachable from this computer, for example localhost:8080.`,onThisComputer:`On this computer`,inContainer:`In the container`,protocolHeader:`Protocol`,hostPortPlaceholder:`empty = any free port`,addPort:`Add port`,hostPort:e=>`Host port ${String(e)}`,containerPort:e=>`Container port ${String(e)}`,protocol:e=>`Protocol ${String(e)}`,removePort:e=>`Remove port ${String(e)}`,network:`Network`,networkHint:`Containers on a network you made yourself can reach each other by name. On the default network they cannot.`,networkDefault:`Default (bridge)`,networkAlias:`Extra name in the network`,networkAliasHint:`An extra name the other containers on this network can use, next to the container name.`,networkAliasPlaceholder:`database`,invalidAlias:e=>`'${e}' is not a valid name. Use letters, digits, dots, hyphens and underscores.`,volumes:`Volumes`,volumesHint:`Data that must survive the container: a volume, or a folder on the Docker machine.`,source:`Volume or folder`,addVolume:`Add volume`,sourcePlaceholder:`my-data or /srv/data`,targetPlaceholder:`/path/in/container`,volumeSource:e=>`Volume source ${String(e)}`,volumeTarget:e=>`Volume target ${String(e)}`,readOnly:`read-only`,readOnlyHint:`The container can read the files but not change them.`,removeVolume:e=>`Remove volume ${String(e)}`,env:`Environment variables`,envHint:`Settings for the program in the container. You can also paste NAME=value.`,envNameHeader:`Name`,envValueHeader:`Value`,addEnv:`Add variable`,envName:e=>`Variable name ${String(e)}`,envValue:e=>`Variable value ${String(e)}`,removeEnv:e=>`Remove variable ${String(e)}`,submit:`Start`,starting:`Starting…`,invalidContainerPort:e=>`'${e}' is not a valid container port. Use a number from 1 to 65535.`,invalidHostPort:e=>`'${e}' is not a valid host port. Leave it empty to let Docker pick one.`,volumeIncomplete:`A volume needs both a source and a target.`,notAbsolute:e=>`'${e}' is not an absolute path. The target in the container starts with a /.`,envNameMissing:`A variable needs a name.`,envNameWithEquals:e=>`'${e}' cannot contain =; that separates the name from the value.`}}});var jv;var Fv=f(()=>{jv={title:`Logs`,intro:`Everything your running containers write, interleaved by time. A container that starts or stops joins or leaves automatically.`,projectLabel:`Compose project`,allProjects:`All containers`,searchLabel:`Search the logs`,searchPlaceholder:`Search, or an expression such as /error|warn/`,caseSensitive:`Case-sensitive search`,containers:`Containers`,nothingRunning:`Nothing is running.`,showAll:`Turn everything back on`,timestamps:`Timestamps`,clear:`Clear`,columns:{time:`Time`,object:`Object`,line:`Line`},allFiltered:e=>e===1?`The only line is hidden by the filter.`:`All ${String(e)} lines are hidden by the filter.`,empty:`No lines yet. As soon as a container writes something, it shows up here.`,lineCount:e=>e===1?`1 line`:`${String(e)} lines`,filteredOut:e=>`${String(e)} filtered out`,truncated:`Older lines have dropped out of the buffer.`,invalidExpression:e=>`Not a valid expression: ${e}`,levels:{label:`Level`,errors:`Errors`,warnings:`Warnings`,unknownHidden:`Lines without a recognisable level, such as a stack trace under an error, are hidden by this filter.`}}});var Hv;var Vv;var Uv;var Bv=f(()=>{Hv=e=>`${String(e)} network${e===1?``:`s`}`,Vv=e=>`${String(e)} container${e===1?``:`s`}`,Uv={title:`Networks`,unused:`Unused`,menuLabel:`Network actions`,searchLabel:`Search by name or driver`,hideBuiltIn:`Hide built-in networks`,refreshing:`Refreshing…`,selected:e=>`${String(e)} selected`,empty:`No networks found.`,builtIn:`built-in`,internal:`internal`,columns:{name:`Name`,driver:`Driver`,scope:`Scope`,subnet:`Subnet`,connected:`Connected`,actions:`Actions`},containerCount:Vv,rowMenu:e=>`Actions for ${e}`,rowMembers:`Who is connected…`,members:{title:e=>`Connected to ${e}`,description:`The same containers the count on this page is based on, including stopped ones.`,loading:`Loading…`,empty:`No container is connected to this network.`,noAddress:`no address`,stopped:`stopped`},builtInReason:`Built-in Docker network; cannot be removed`,connectedReason:e=>`${Vv(e)} connected; disconnect them first`,menu:{create:`Create network…`,pruneUnused:`Clean up unused`},createDialog:{title:`Create network`,description:`A network of your own, on which containers find each other by name.`,nameLabel:`Name`,namePlaceholder:`my-network`,internal:`Internal only`,internalHint:`The containers reach each other, but have no route to the outside world.`,advanced:`Advanced`,driverLabel:`Driver`,driverHint:`Leave this at bridge unless you run a swarm or use a network plugin.`,subnetLabel:`Subnet`,subnetHint:`Leave this empty and Docker picks a free range itself.`,gatewayLabel:`Gateway`,gatewayHint:`Has to be inside the subnet. Empty means the first address in the range.`,submit:`Create`,creating:`Creating…`},remove:{title:`Remove network?`,description:e=>`'${e}' will be removed. Containers that are attached to it later will no longer find it.`,manyTitle:`Remove networks?`,manyDescription:e=>`${Hv(e)} will be removed. Networks with attached containers and the built-in networks are skipped.`},prune:{title:`Clean up unused networks?`,description:`Every network without a container attached is removed. This frees no disk space; it keeps the list tidy.`,confirm:`Clean up`},pruned:e=>`${Hv(e)} removed.`,created:e=>`Network ${e} has been created.`}});var zv;var qv=f(()=>{zv={title:`Settings`,language:{heading:`Language`,label:`Language of the app`,hint:`Technical terms such as container, image and volume stay in English.`},startup:{heading:`Startup`,startAtLogin:`Start at sign-in, straight to the system tray`,paletteShortcut:`Ctrl+Shift+Space opens search, anywhere in Windows`,shortcutTaken:`Ctrl+Shift+Space is already taken by another program, so the shortcut does not work now.`,hintAvailable:`That way the notifications below also arrive when you don’t open the app yourself. Turn it off here, or in Task Manager under Startup apps.`,hintUnavailable:`Only works in the installed app. Here Windows would start a bare electron.exe.`},notifications:{heading:`Notifications`,crash:`When a container stops unexpectedly`,unhealthy:`When a container becomes unhealthy`,wiring:`When a container loses its network or its ports`,hint:`A container you stop yourself, from the app, the terminal or compose down, never triggers a notification. The same container notifies at most once a minute.`},update:{heading:`Updates`,version:e=>`version ${e}`,install:`Restart and update`,check:`Check now`,auto:`Check for new versions and download them in advance`,unavailable:`Only the installed app on Windows updates itself. With npm, you update through npm.`,idle:`A new version is downloaded and installed as soon as you close the app.`,checking:`Checking for a new version…`,upToDate:e=>`This is the latest version. Checked at ${e}.`,downloading:(e,n)=>`Downloading version ${e}\u2026 ${String(n)}%`,ready:e=>`Version ${e} is ready and will be installed when you close the app. Restart to install it now.`,error:e=>`Checking failed: ${e}`},servers:{heading:`Servers`,hint:`Docker hosts over SSH or TCP. They are stored as docker contexts, so the docker CLI knows them too. Switch between them with the picker in the status bar.`,empty:`No servers yet.`,inUse:`in use`,cli:`CLI`,test:`Test`,testing:`Testing…`,remove:`Remove`,removeBlocked:`In use by the app or the docker CLI. Switch to another context first.`,removeTitle:e=>`Remove server '${e}'?`,removeDescription:`This removes the docker context, also for the docker CLI. Nothing changes on the server itself.`,connected:(e,n,t)=>`Connected: Docker ${e} on ${n}/${t}.`,unknownHostKey:(e,n)=>`${e} is not known yet. Compare this ${n} fingerprint with the one on the server (ssh-keygen -lf /etc/ssh/ssh_host_*_key.pub) before trusting it:`,trust:`Trust and test again`,add:{heading:`Add a server`,name:`Name`,namePlaceholder:`homeserver`,kind:`Connection`,ssh:`SSH`,tcp:`TCP`,username:`User`,usernamePlaceholder:`empty: user of this computer`,host:`Host`,hostPlaceholder:`192.168.1.16`,port:`Port`,description:`Description`,descriptionPlaceholder:`optional`,submit:`Add`,tcpWarning:`Plain TCP has no authentication: anyone on the network who reaches the port controls Docker. Prefer SSH.`,added:e=>`Server '${e}' added.`}},assistant:{configured:`A key is set.`,clearKey:`Remove key`,keyLabel:`API key`,model:`Model`,modelHint:`Opus reasons best about a stubborn problem; Sonnet and Haiku answer faster and cost less. Haiku also reads less at once.`,hint:`With your own Claude API key, every container gets a Claude tab that helps look into a problem. The key is stored encrypted on this computer, readable only by your Windows user. Each question costs a few cents of API usage, on your account.`}}});var Wv;var Gv=f(()=>{Wv={nav:{label:`Main navigation`,dashboard:`Dashboard`,containers:`Containers`,images:`Images`,volumes:`Volumes`,networks:`Networks`,compose:`Compose`,logs:`Logs`,terminal:`Terminal`,settings:`Settings`},routes:{container:`Container`},header:{search:`Search (Ctrl+K)`,lightTheme:`Light theme`,darkTheme:`Dark theme`,quit:`Quit Docker Client MX`},statusBar:{connecting:`Connecting to Docker…`,engineRunning:`Engine running`,engineUnreachable:`Engine unreachable`,containers:(e,n)=>`${String(e)} of ${String(n)} containers`,images:e=>e===1?`1 image`:`${String(e)} images`,reconnect:`Reconnect`},contextPicker:{label:`Docker context`,switching:`Switching…`,unsupported:`not supported`,inUseByCli:`in use by the CLI`},actionMenu:{label:`Actions`},confirmDialog:{confirm:`Remove`},dataTable:{empty:`Nothing found.`,selectAll:`Select all`,clearSelection:`Clear selection`,select:e=>`Select ${e}`},jsonView:{expand:e=>`Expand: ${e}`,collapse:e=>`Collapse: ${e}`,empty:`Nothing to show.`},toast:{region:`Notifications (F8)`,close:`Close notification`},usageChart:{ago:e=>`${e} ago`,max:e=>`max ${e}`,now:`now`,values:(e,n,t)=>`now ${e}, highest ${n}, lowest ${t}`,noData:e=>`${e}: no measurements yet.`,summary:(e,n,t)=>`${e} over the last ${n}: ${t}.`},palette:{title:`Go to`,description:`Type to search pages, containers, images, volumes and networks. Arrow keys choose, Enter runs.`,placeholder:`Search for a page, container, image, volume or network…`,results:`Results`,empty:`Nothing found.`,groups:{page:`Page`,container:`Container`,image:`Image`,volume:`Volume`,compose:`Compose`,network:`Network`,action:`Action`},sections:{page:`Pages`,container:`Containers`,image:`Images`,volume:`Volumes`,compose:`Compose projects`,network:`Networks`,action:`Actions`},recent:`Recent`,attention:`Needs attention`,hint:`c containers · i images · v volumes · n networks · p compose · > actions · → actions of a line`,actions:`Actions`,verbs:{start:`Start`,stop:`Stop`,restart:`Restart`,pause:`Pause`,unpause:`Resume`,recreate:`Rebuild`},commandHint:`Enter runs this`,commandNothing:`Nothing to run`,problems:{unknown:e=>`${e}: not found`,ambiguous:(e,n)=>`${e}: ${String(n)} containers, be more specific`,state:e=>`${e}: not possible in its current state`,notCompose:e=>`${e}: not a compose container`},commandDone:e=>e===1?`1 command run.`:`${String(e)} commands run.`,events:e=>`Events of ${e}`,terminal:e=>`Terminal in ${e}`,memory:e=>`Memory limit of ${e}\u2026`,copyId:e=>`Copy the ID of ${e}`,imageRun:e=>`Run ${e}\u2026`,imageLayers:e=>`Layers of ${e}`,imagePull:e=>`Pull ${e} again`,imageRemove:e=>`Remove ${e}\u2026`,volumeBackup:e=>`Back up ${e}\u2026`,composeLogs:e=>`Follow the logs of ${e}`,prune:`Clean up…`,checkUpdates:`Check images for updates`,theme:`Switch between light and dark`,useContext:e=>`Switch to ${e}`,copied:e=>`Copied: ${e}`,askClaude:e=>`Ask Claude: ${e}`,askNote:`Only your question goes to Claude`,thinking:`Claude is thinking…`,claudeSays:e=>`Claude: ${e}`,questionNote:`For this, Claude looked at your containers, with the same tools as the Claude tab.`,commandNote:`For this, Claude got the names and state of your containers.`,aiNothing:`Claude found nothing that matches.`,aiMatches:e=>e===1?`1 match`:`${e} matches`,noContainerSize:`Containers have no size here; images and volumes do.`,copyCommand:e=>`Copy: ${e}`,proposal:(e,n)=>`${e} ${n}`,start:e=>`Start ${e}`,stop:e=>`Stop ${e}`,restart:e=>`Restart ${e}`,diagnose:e=>`Diagnose ${e}`,imageInUse:e=>`Image \xB7 used by ${String(e)} ${e===1?`container`:`containers`}`,imageUnused:`Image · unused`,network:e=>`Network \xB7 ${e}`,composeDetail:(e,n)=>`Compose \xB7 ${String(e)} of ${String(n)} running`,composeUp:e=>`${e}: up`,composeFile:e=>`${e}: show the compose file`,composeDown:e=>`${e}: down\u2026`,recreate:e=>`Rebuild ${e}`,recreateDetail:`up --force-recreate for this service only`,volumeBrowse:e=>`Look inside ${e}`,networkMembers:e=>`Who is connected to ${e}`}}});var Zv;var Qv=f(()=>{Zv={title:`Terminal`,intro:{start:`A shell on the machine where the Docker daemon runs, such as your WSL distro.`,afterDocker:` works as usual here. You are `,afterRoot:`: the shell runs through a short-lived, privileged `,afterAlpine:` container that disappears as soon as you close the shell or this page.`},tabsLabel:`Terminal`,tabs:{terminal:`Terminal`,assistant:`Claude`},loading:`Loading terminal…`}});var Kv;var Uc;var Yv;var Jv=f(()=>{Kv=e=>`${String(e)} volume${e===1?``:`s`}`,Uc=e=>`${String(e)} container${e===1?``:`s`}`,Yv={title:`Volumes`,diskSpace:`Disk space`,calculating:`calculating…`,unused:`Unused`,menuLabel:`Volume actions`,searchLabel:`Search by name`,onlyUnused:`Only unused volumes`,refreshing:`Refreshing…`,selected:e=>`${String(e)} selected`,empty:`No volumes found.`,columns:{name:`Name`,driver:`Driver`,inUse:`In use`,created:`Created`,size:`Size`,actions:`Actions`},containerCount:Uc,rowMenu:e=>`Actions for ${e}`,rowBrowse:`Look inside…`,browse:{title:e=>`Inside ${e}`,description:`Read-only, through a short-lived helper container. It disappears when you close this.`,loading:`Loading…`,empty:`This folder is empty.`,up:`Up one folder`,path:`Path in the volume`},rowBackup:`Back up as .tar`,rowRestore:`Restore backup…`,backupTitle:e=>`Back up ${e} as .tar`,backupTitleInUse:e=>`Back up ${e}. It is in use: a database that writes during the backup can leave a backup that does not always restore. Stop that container first, or use its own dump.`,restoreTitle:e=>`Restore a backup into ${e}`,inUseReason:e=>`In use by ${Uc(e)}; remove or stop them first`,menu:{create:`Create volume…`,pruneAnonymous:`Clean up anonymous`,pruneUnused:`Clean up unused`},createDialog:{title:`Create volume`,description:`An empty volume with a name, to attach to a container later.`,nameLabel:`Name`,namePlaceholder:`my-data`,storageLabel:`Where is the data stored?`,storage:{docker:`Managed by Docker`,dockerHint:`Recommended. Docker decides where the data goes.`,folder:`A folder on the Docker machine`,folderHint:`An existing folder, for example to share files with a container.`,nfs:`An NFS share on the network`,nfsHint:`A shared folder on a NAS or server.`},folderLabel:`Folder`,folderHint:`The folder must already exist on the machine running Docker. On WSL, C:\\data is /mnt/c/data.`,nfsServerLabel:`Server`,nfsPathLabel:`Shared folder`,nfsHint:`Only checked when a container starts using this volume.`,advanced:`Advanced`,driverLabel:`Driver`,driverHint:`Leave this at local unless you use a volume plugin.`,submit:`Create`,creating:`Creating…`},restore:{title:e=>`Restore a backup into ${e}?`,description:e=>`Files with the same name are overwritten; anything not in the backup stays. `+(e>0?`First stop the ${Uc(e)} using this volume: a running database does not notice that its files have changed. `:``)+`You pick the file next.`,confirm:`Choose file`},remove:{title:`Remove volume?`,description:e=>`All data in '${e}' will be lost. This cannot be undone.`,manyTitle:`Remove volumes?`,manyDescription:e=>`All data in ${Kv(e)} will be lost. Volumes that are still in use are skipped.`},prune:{allTitle:`Clean up all unused volumes?`,allDescription:`Every volume without a container attached is removed, including named volumes you created yourself. The data in them is gone afterwards.`,anonymousTitle:`Clean up anonymous volumes?`,anonymousDescription:`Volumes without a name that no container uses any more are removed. These are usually leftovers from containers that are already gone.`,confirm:`Clean up`},created:e=>`Volume ${e} has been created.`,pruned:(e,n)=>`${Kv(e)} removed, ${n} freed.`,backedUp:(e,n)=>`Backup of ${e} saved as ${n}.`,restored:(e,n)=>`${e} has been restored into ${n}.`}});var Xv;var ey=f(()=>{Sv();Tv();Mv();Av();Rv();Pv();Fv();Bv();qv();Gv();Qv();Jv();Xv={common:Ev,compose:kv,containers:Nv,dashboard:xv,format:_v,images:Lv,logs:jv,networks:Uv,settings:zv,shell:Wv,terminal:Zv,volumes:Yv}});var ny;var ty=f(()=>{ny={cancel:`Annuleren`,close:`Sluiten`,remove:`Verwijderen`,retry:`Opnieuw proberen`,refresh:`Verversen`,search:`Zoeken`,loading:`Laden…`,save:`Bewaren`,copy:`Kopiëren`,copied:`Gekopieerd`,start:`Starten`,stop:`Stoppen`,restart:`Herstarten`,yes:`Ja`,no:`Nee`,none:`Geen`,unknown:`Onbekend`,nothingToPrune:`Er was niets op te ruimen.`}});var ry;var oy=f(()=>{ry={title:`Compose`,intro:`Projecten uit de labels op je containers. Een project dat stilligt staat er ook in, zolang zijn containers nog bestaan.`,updating:`Bijwerken…`,state:{running:`draait`,partial:`deels`,stopped:`gestopt`},runningOf:(e,n)=>`${String(e)} van ${String(n)}`,expand:e=>`Uitklappen: ${e}`,collapse:e=>`Inklappen: ${e}`,menuAria:e=>`Acties voor ${e}`,upAria:e=>`Up ${e}`,startAria:e=>`Start ${e}`,stopAria:e=>`Stop ${e}`,restartAria:e=>`Herstart ${e}`,downAria:e=>`Down ${e}`,up:`Up`,down:`Down`,fileAria:e=>`Toon het compose-bestand van ${e}`,file:{button:`Bestand`,title:e=>`Het compose-bestand van ${e}`,loading:`Ophalen…`,raw:`Zoals het er staat`,resolved:`Zoals compose het leest`,rawHint:`Het bestand op schijf, ongewijzigd.`,resolvedHint:"Overrides samengevoegd en ${VAR} ingevuld: hierop is het draaiende project gebaseerd.",empty:`Dit bestand is leeg.`,copyFailed:e=>`Kopi\xEBren lukte niet: ${e}`},noCli:`De docker CLI is niet beschikbaar`,noWorkingDir:`Van dit project is niet bekend waar het staat`,busy:`Bezig… een up kan even duren als er images opgehaald worden.`,empty:`Geen compose-projecten gevonden. Ze verschijnen hier zodra er containers met compose-labels zijn.`,downDialog:{title:`Project afbreken?`,description:e=>`De containers en netwerken van '${e}' worden gestopt en verwijderd. Volumes blijven staan, dus je gegevens blijven behouden.`,confirm:`Afbreken`},recreate:`Opnieuw`,recreateAria:e=>`${e} opnieuw opbouwen`,recreateTitle:`docker compose up -d --no-deps --force-recreate`,recreateDone:e=>`${e} is opnieuw opgebouwd.`,upDone:e=>`'${e}' is opgestart.`,downDone:e=>`'${e}' is afgebroken.`}});var iy;var sy=f(()=>{iy={actions:{pause:`Pauzeren`,resume:`Hervatten`,copyDiagnosis:`Diagnose kopiëren`,copyRunCommand:`Run-commando kopiëren`,restartPolicy:`Restart policy…`,memoryLimit:`Geheugengrens…`,recreate:`Opnieuw opbouwen`},page:{title:`Containers`,cpuUsage:`CPU-gebruik`,memoryUsage:`Geheugengebruik`,search:`Zoeken op naam, image of ID`,onlyRunning:`Alleen draaiende containers`,updating:`Bijwerken…`,selected:e=>`${String(e)} geselecteerd`,empty:`Geen containers gevonden.`,columns:{name:`Naam`,id:`Container ID`,image:`Image`,ports:`Poorten`,cpu:`CPU`,memory:`Geheugen`,actions:`Acties`},group:{loose:`Losse containers`,expand:e=>`Uitklappen: ${e}`,collapse:e=>`Inklappen: ${e}`,count:e=>`${String(e)} container${e===1?``:`s`}`,running:e=>`${String(e)} ${e===1?`draait`:`draaien`}`,startAll:`Alles starten`,stopAll:`Alles stoppen`,restartAll:`Alles herstarten`,removeAll:`Alles verwijderen`,menu:e=>`Acties voor alles in ${e}`,manual:`Eigen groep`,addToGroup:`Aan groep toevoegen…`,removeFromGroup:`Uit groep halen`,rename:`Groep hernoemen…`,dissolve:`Groep opheffen`},groupDialog:{assignTitle:`Aan groep toevoegen`,assignOne:e=>`'${e}' komt in de groep die je hier een naam geeft.`,assignMany:e=>`${String(e)} containers komen in de groep die je hier een naam geeft.`,renameTitle:`Groep hernoemen`,renameDescription:e=>`Alles in '${e}' verhuist mee naar de nieuwe naam.`,nameLabel:`Groepsnaam`,namePlaceholder:`bijvoorbeeld mijn-stack`,existing:`Bestaande groepen`,hint:`Een eigen groep leeft in deze app en volgt de containernaam; Docker zelf weet er niets van.`,empty:`Vul een naam in.`,reserved:e=>`'${e}' is al de naam van een Compose-project.`,submit:`Opslaan`},row:{diagnosisOf:e=>`Diagnose van ${e}`,missingNetwork:e=>`Draait, maar hangt niet aan ${e}`,menu:e=>`Acties voor ${e}`},confirm:{title:`Container verwijderen?`,one:e=>`'${e}' wordt gestopt en verwijderd. Dit kan niet ongedaan gemaakt worden; volumes blijven staan.`,many:e=>`${String(e)} containers wordt gestopt en verwijderd. Dit kan niet ongedaan gemaakt worden; volumes blijven staan.`,group:(e,n)=>`de ${String(e)} containers van '${n}' wordt gestopt en verwijderd. Dit kan niet ongedaan gemaakt worden; volumes blijven staan.`}},detail:{back:`‹ Containers`,menu:`Acties voor deze container`,gone:` bestaat niet meer. Een container met --rm verdwijnt na het stoppen, en compose maakt bij up een nieuwe aan.`,goneUnnamed:`Deze container bestaat niet meer.`,successor:(e,n)=>`Naar de huidige ${e} (${n})`,tabsLabel:`Containerdetails`,tabs:{logs:`Logs`,health:`Health`,events:`Gebeurtenissen`,inspect:`Inspect`,stats:`Stats`,terminal:`Terminal`,files:`Bestanden`,networks:`Netwerken`,assistant:`Claude`},wiring:{network:e=>`Draait, maar hangt niet aan ${e}. Via dat netwerk bereikt niets hem, en hij niets.`,networkWhy:`Dat gebeurt als het netwerk weggehaald en opnieuw gemaakt werd terwijl de container bestond.`,connect:e=>`Aanhangen aan ${e}`,ports:e=>`Draait, maar publiceert ${e} niet.`,portsWhy:`Dat gebeurt als hij nog eens gestart werd na een start die op een bezette poort mislukte.`,portsFromNetwork:`Dat volgt uit het ontbrekende netwerk hierboven: poorten lopen via een netwerk.`,restart:`Herstarten`},events:{loading:`Ophalen…`,empty:`Nog niets bijgehouden. De app houdt het bij vanaf het moment dat hij start, plus wat Docker dan nog wist.`,scope:`Bijgehouden in de app sinds hij startte, tot 100 per containernaam; na een herstart van de app vult Docker aan wat hij nog weet.`,crashLoop:e=>`Het afgelopen uur ${String(e)} keer omgevallen.`,create:`Aangemaakt`,start:`Gestart`,exited:e=>e===0?`Netjes gestopt`:`Gestopt met code ${String(e)}`,exitedUnknown:`Gestopt`,exitHint137:`SIGKILL: van buitenaf afgeschoten, vaak geheugen vol of een stop die te lang duurde`,exitHint143:`SIGTERM: gevraagd te stoppen`,kill:e=>`${e} gestuurd`,oom:`Door de kernel gestopt: geheugen vol`,stop:`Gestopt`,restart:`Herstart`,pause:`Gepauzeerd`,unpause:`Hervat`,destroy:`Verwijderd`,rename:e=>`Hernoemd, was ${e}`,renamed:`Hernoemd`,health:{starting:`Healthcheck begint`,healthy:`Healthy geworden`,unhealthy:`Unhealthy geworden`}},health:{loading:`Ophalen…`,refresh:`Verversen`,status:{starting:`starting`,healthy:`healthy`,unhealthy:`unhealthy`,unknown:`nog niet gedraaid`},failingStreak:e=>e===1?`één keer mislukt`:`${String(e)} keer op rij mislukt`,command:`Commando`,fromImage:`Komt uit de image; de daemon noemt het commando zelf niet.`,rhythm:`Ritme`,every:e=>`elke ${e}`,timeout:e=>`timeout ${e}`,startPeriod:e=>`start period ${e}`,retries:e=>e===1?`1 poging voor unhealthy`:`${String(e)} pogingen voor unhealthy`,defaults:`de standaard van Docker`,probes:`Laatste uitslagen`,noProbes:`De check heeft nog niet gedraaid.`,exitCode:e=>`exitcode ${String(e)}`,unknownExitCode:`geen exitcode`,noOutput:`geen uitvoer`},networks:{title:`Hangt aan deze netwerken`,loading:`Ophalen…`,empty:`Deze container hangt aan geen enkel netwerk.`,noAddress:`geen adres`,alsoKnownAs:e=>`ook bereikbaar als ${e}`,disconnect:`Loskoppelen`,disconnectFrom:e=>`Loskoppelen van ${e}`,addTitle:`Aan een netwerk koppelen`,addHint:`Werkt meteen, ook terwijl de container draait.`,allConnected:`Deze container hangt al aan elk netwerk.`,networkLabel:`Netwerk`,choose:`Kies een netwerk…`,alias:`Extra naam in het netwerk`,aliasHint:`Een extra naam waarop de andere containers op dit netwerk hem kunnen aanspreken, naast de containernaam.`,aliasPlaceholder:`database`,connect:`Koppelen`,working:`Bezig…`,invalidAlias:e=>`'${e}' is geen geldige naam. Gebruik letters, cijfers, punt, streepje en underscore.`},fetching:`Ophalen…`,terminalLoading:`Terminal laden…`,shellOnlyRunning:`Een shell openen kan alleen in een draaiende container.`,cpu:`CPU`,lastMinute:e=>`laatste minuut \xB7 piek ${e}%`,chartPending:`grafiek verschijnt na een paar metingen`,memory:`Geheugen`,ofLimit:e=>`${e}% van de limiet`,noLimit:`geen limiet ingesteld`,nearLimit:`Dicht bij de grens: daarboven begint de kernel processen in de container af te schieten.`,statsOnlyRunning:`Metingen lopen alleen voor een draaiende container.`,confirmTitle:`Container verwijderen?`,confirmDescription:`Deze container wordt gestopt en verwijderd. Dit kan niet ongedaan gemaakt worden; volumes blijven staan.`},diagnosis:{title:`Diagnose kopiëren`,description:`Status, health, mounts, events en de laatste logregels, om in een chat of een issue te plakken. Dit is precies wat er gekopieerd wordt.`,collecting:`Verzamelen…`,noRedactions:`Niets weggelaten; er stond geen waarde in die op een geheim leek.`,redactions:e=>`${String(e)} ${e===1?`waarde`:`waarden`} weggelaten: omgevingsvariabelen en wat op een wachtwoord, token of sleutel leek.`,copyFailed:e=>`Kopi\xEBren lukte niet: ${e}`},memoryLimit:{title:`Geheugengrens`,description:`Hoeveel geheugen de container mag gebruiken. Werkt meteen; de container wordt er niet voor opnieuw gemaakt.`,loading:`Ophalen…`,current:e=>`Nu: ${e}`,none:`Nu: geen grens`,label:`Grens`,unit:`Eenheid`,noRemove:`Een grens weghalen kan zo niet: Docker verandert hem alleen. Voor geen grens moet de container opnieuw gemaakt worden.`,compose:`Dit is een compose-container: compose up zet terug wat er in het compose-bestand staat.`,save:`Opslaan`,saving:`Opslaan…`,saved:e=>`De geheugengrens is nu ${e}.`,invalid:`Vul een getal groter dan nul in.`},restartPolicy:{title:`Restart policy`,description:`Wat de daemon doet als deze container stopt. Werkt meteen; de container wordt er niet voor opnieuw gemaakt.`,loading:`Ophalen…`,label:`Beleid`,names:{no:`Nooit`,always:`Altijd`,"unless-stopped":`Tenzij je hem zelf stopte`,"on-failure":`Alleen na een foutcode`},maximum:`Hoogstens zoveel pogingen`,maximumHint:`0 betekent blijven proberen.`,save:`Opslaan`,saving:`Opslaan…`,saved:e=>`De restart policy staat nu op ${e}.`},runCommand:{title:`Run-commando kopiëren`,description:`Het commando waarmee je deze container opnieuw maakt, afgeleid uit inspect. Wat uit de image komt, blijft weg.`,building:`Afleiden…`,composeNote:e=>`Deze container hoort bij compose-project ${e}, en daar is docker compose up het antwoord. Dit is hoe hij nu draait.`,envWarning:e=>`${e===1?`Er staat 1 omgevingsvariabele`:`Er staan ${String(e)} omgevingsvariabelen`} in, wachtwoorden en al: het commando moet werken.`,noEnv:`Geen eigen omgevingsvariabelen.`,copyFailed:e=>`Kopi\xEBren lukte niet: ${e}`},logs:{filter:`Filteren op tekst`,follow:`Volgen`,timestamps:`Tijdstempels`,clear:`Wissen`,save:`Opslaan…`,saveHint:`De hele log van Docker, met tijdstempels; niet alleen wat je hier ziet.`,saved:(e,n)=>`${String(e)} regels bewaard in ${n}`,connecting:`Verbinden…`,count:(e,n)=>`${String(e)} van ${String(n)} regels`,truncated:`oudste regels afgevallen`,empty:`Nog geen logregels.`,noMatches:`Geen regels die daarop passen.`},files:{up:`Map omhoog`,path:`Pad in de container`,refresh:`Vernieuwen`,changed:`Gewijzigd`,changesTitle:`Gewijzigd ten opzichte van de image`,changesCount:e=>e===1?`1 pad`:`${String(e)} paden`,changesEmpty:`Deze container heeft niets veranderd aan zijn image.`,changesHint:`Mappen die alleen meeveranderden omdat er iets in zit, staan er niet bij. Volumes tellen niet mee.`,changeKind:{added:`toegevoegd`,modified:`gewijzigd`,deleted:`verwijderd`},openFolderOf:e=>`Open de map van ${e}`,upload:`Uploaden…`,empty:`Deze map is leeg.`,downloadFolder:e=>`Map downloaden als tar: ${e}`,downloadFile:e=>`Downloaden: ${e}`,hint:e=>`Sleep bestanden hierheen om ze in ${e} te zetten. Een map downloaden geeft een .tar, zodat rechten en symlinks bewaard blijven.`,savedAs:e=>`Opgeslagen als ${e}.`,uploaded:(e,n)=>`${String(e)} ${e===1?`bestand`:`bestanden`} in ${n} gezet.`},terminal:{exited:`De shell is afgesloten.`,reopen:`Opnieuw openen`,connecting:`Verbinden…`,connected:`verbonden`},assistant:{introHost:`Claude krijgt een overzicht van de engine en de containers, en leest zelf mee in de terminal of vraagt logs en inspect op. Elke opvraging staat hieronder, en geheimen worden weggelaten. Claude typt zelf niets: een voorgesteld commando wordt een knop die het op de prompt zet, en jij drukt op Enter.`,introContainer:`Claude krijgt de diagnose van deze container, zonder geheimen, en vraagt daarna zelf logs, inspect, events of de andere containers op. Elke opvraging staat hieronder. Claude verandert zelf niets: een voorstel wordt een knop, en jij beslist.`,defaultQuestion:`Wat is er met deze container aan de hand, en wat kan ik eraan doen?`,defaultHostQuestion:`Wat zie je in de terminal, en wat betekent het?`,onPrompt:`Staat op de prompt`,done:`Gedaan`,thinking:`Claude denkt na…`,questionLabel:`Vraag aan Claude`,followUp:`Vervolgvraag`,ask:`Vraag Claude`,putInTerminal:`In de terminal zetten`,composeUp:e=>`compose up voor ${e}`,start:e=>`${e} starten`,stop:e=>`${e} stoppen`,restart:e=>`${e} herstarten`,panelClosed:`Het paneel is gesloten.`,usage:(e,n,t)=>`${e} tokens in, ${n} uit de cache, ${t} uit`}}});var ay;var ly=f(()=>{ay={title:`Dashboard`,engine:{connecting:`Verbinden met Docker…`,running:`Engine draait`,unreachable:`Engine niet bereikbaar`,startDistro:e=>`${e} starten`,startingDistro:e=>`${e} starten\u2026`,startDaemon:e=>`Docker starten in ${e}`,startingDaemon:e=>`Docker starten in ${e}\u2026`,daemonHint:e=>`${e} draait, dus het is de daemon erin die stilstaat. De app kan hem daar starten.`,idleHint:{intro:e=>`${e} is eerder gestart en toch weer gestopt. WSL legt een distro zonder open sessie na 15 seconden stil; zet`,under:`onder`,in:`in`,outro:`om hem te laten draaien.`}},contexts:{switchFailed:e=>`Omschakelen naar ${e} lukte niet`},usage:{cpu:`CPU over alle containers`,memory:`Geheugen`,memoryChart:`Geheugen over alle containers`,network:`Netwerk over alle containers`,networkChart:`Netwerkverkeer over alle containers`,received:`Ontvangen`,sent:`Verzonden`,receivedAria:`ontvangen`,sentAria:`verzonden`,hostNote:`Containers met network_mode: host tellen niet mee; die hebben geen eigen tellers.`},counts:{containers:`Containers`,runningOfTotal:`draaiend van totaal`,images:`Images`,volumesNetworks:`Volumes · netwerken`},disk:{title:`Schijfgebruik`,total:e=>`${e} samen`,calculating:`berekenen…`,prune:`Opruimen`,pruning:`Opruimen…`,unused:e=>`${String(e)} ongebruikt`,labels:{images:`Images`,containers:`Containers`,volumes:`Volumes`,buildCache:`Build cache`},footnoteBefore:`Dezelfde cijfers als`,footnoteAfter:`. Hoeveel ruimte opruimen precies oplevert staat er niet bij: dat verrekent gedeelde lagen, en een schatting die als feit oogt is erger dan geen getal.`},attention:{title:`Aandacht nodig`,none:`Alles klopt: geen crashlussen, niets unhealthy, alles aangesloten.`,loading:`Nakijken…`,crashLoop:e=>`het afgelopen uur ${String(e)} keer omgevallen`,restarting:`blijft herstarten`,unhealthy:`healthcheck faalt`,network:e=>`draait, maar hangt niet aan ${e}`,ports:e=>`draait, maar publiceert ${e} niet`,update:e=>`er is een nieuwere versie van ${e}`},stopped:{title:`Onlangs gestopt`,none:`Er staat niets stil.`,clean:`netjes gestopt`,failed:e=>`afgebroken met code ${String(e)}`,created:e=>`${e} aangemaakt`},pruneDialog:{title:`Opruimen`,description:`Wat je aanvinkt wordt verwijderd en is niet terug te halen.`,confirm:`Opruimen`,containers:`Gestopte containers`,containersHint:`Een gepauzeerde container blijft staan.`,networks:`Ongebruikte netwerken`,networksHint:`bridge, host en none blijven altijd staan.`,images:`Images zonder tag`,imagesHint:`Meestal restanten van een nieuwere build.`,allImages:`Ook getagde images zonder container`,allImagesHint:`Die moet je daarna opnieuw pullen.`,buildCache:`Build cache`,buildCacheHint:`Alles wat niet in gebruik is. Een volgende build duurt langer.`,volumes:`Anonieme volumes`,volumesHint:`Volumes met een naam blijven staan. Hierin zit data.`},pruneResult:{removed:{containers:e=>`${String(e)} containers`,networks:e=>`${String(e)} netwerken`,volumes:e=>`${String(e)} volumes`,images:e=>`${String(e)} images`,buildCache:e=>`${String(e)} build-cache-items`},kinds:{containers:`containers`,networks:`netwerken`,volumes:`volumes`,images:`images`,buildCache:`build-cache-items`},and:`en`,notice:(e,n)=>`${e} verwijderd, ${n} vrijgemaakt.`,problem:e=>`Niet gelukt bij ${e}`}}});var cy;var uy=f(()=>{cy={justNow:`net`,hoursAgo:e=>`${String(e)} uur geleden`,yesterday:`gisteren`,daysAgo:e=>`${String(e)} dagen geleden`,lastMonth:`vorige maand`,monthsAgo:e=>`${String(e)} maanden geleden`,lastYear:`vorig jaar`,yearsAgo:e=>`${String(e)} jaar geleden`}});var dy;var fy=f(()=>{dy={title:`Images`,diskSpace:`Schijfruimte`,unused:`Ongebruikt`,menuLabel:`Acties voor images`,searchLabel:`Zoeken op repository, tag of ID`,onlyUnused:`Alleen ongebruikte images`,refreshing:`Bijwerken…`,updatesHint:`Bijwerken haalt de nieuwe image op. Een container die al draait houdt de oude tot hij opnieuw aangemaakt wordt; voor een container uit een compose-project biedt de app dat na het ophalen aan.`,selected:e=>`${String(e)} geselecteerd`,empty:`Geen images gevonden.`,columns:{repository:`Repository`,tag:`Tag`,imageId:`Image ID`,inUse:`In gebruik`,created:`Aangemaakt`,size:`Grootte`,actions:`Acties`},badge:{newer:`nieuwere versie`,notInRegistry:`niet in registry`,uncheckable:`niet te controleren`},containerCount:e=>`${String(e)} container${e===1?``:`s`}`,updateTitle:e=>`Bijwerken: ${e} opnieuw ophalen`,rowMenu:e=>`Acties voor ${e}`,rowUpdate:`Nieuwere versie ophalen`,rowRun:`Container starten…`,rowLayers:`Lagen…`,runLabel:e=>`Container starten van ${e}`,runLabelDangling:`Container starten van deze ongetagde image`,layers:{title:e=>`Lagen van ${e}`,description:`Nieuwste eerst, zoals docker history ze toont: de laatste regel van de Dockerfile bovenaan.`,loading:`Ophalen…`,summary:(e,n)=>`${e===1?`1 laag`:`${String(e)} lagen`} \xB7 image ${n}`,packed:e=>`De lagen tellen op tot ${e}: bij deze opslag meldt Docker elke laag zoals hij binnenkwam, ingepakt. Op schijf is de image groter.`,noSize:`verandert niets op schijf`,expand:`Het hele commando tonen`,empty:`Deze image meldt geen lagen.`},menu:{pull:`Image ophalen`,check:`Op updates controleren`,checking:`Controleren…`,pruneDangling:`Ongetagd opruimen`,pruneUnused:`Ongebruikt opruimen`},remove:{title:`Image verwijderen?`,description:e=>`'${e}' wordt verwijderd. Heeft deze image nog andere tags, dan verdwijnt alleen deze tag.`,forceTitle:`Image forceren te verwijderen?`,forceDescription:(e,n)=>`'${e}' wordt gebruikt door ${String(n)} container(s). Verwijderen lukt alleen geforceerd, en die containers werken daarna niet meer.`,forceConfirm:`Toch verwijderen`,manyTitle:`Images verwijderen?`,manyDescription:e=>`${String(e)} images worden verwijderd. Images die nog in gebruik zijn worden overgeslagen.`},prune:{allTitle:`Alle ongebruikte images opruimen?`,allDescription:`Alles waar geen container aan hangt wordt verwijderd, ook images die je zelf hebt opgehaald. Je moet ze daarna opnieuw pullen.`,danglingTitle:`Ongetagde images opruimen?`,danglingDescription:`Images zonder tag worden verwijderd. Dat zijn meestal restanten van een nieuwere build.`,confirm:`Opruimen`},pruned:(e,n)=>`${String(e)} images verwijderd, ${n} vrijgemaakt.`,check:{allCurrent:`Alles is bijgewerkt`,updates:e=>`${String(e)} ${e===1?`image heeft`:`images hebben`} een nieuwere versie`,notInRegistry:e=>`${String(e)} niet in een registry`,uncheckable:e=>`${String(e)} niet te controleren`,summary:(e,n)=>`${e} (${String(n)} gecontroleerd).`},pullDialog:{title:`Image ophalen`,nameAndTag:`Naam en tag, bijvoorbeeld`,withoutTag:`Zonder tag wordt`,isUsed:`gebruikt.`,inputLabel:`Image`,submit:`Ophalen`,staleHeading:`Deze containers draaien nog op de vorige versie:`,inProject:e=>`in ${e}`,notCompose:`niet met compose gestart; die maak je zelf opnieuw aan`,renewed:e=>`Vernieuwd: ${e}.`,renew:`Containers vernieuwen`,renewing:`Vernieuwen…`,renewHint:`Met compose, alleen deze services.`},runDialog:{title:`Container starten`,fromImage:`Vanaf image`,name:`Naam`,namePlaceholder:`leeg laten = Docker kiest er een`,autoRestart:`Automatisch herstarten`,autoRestartHint:`Na een crash of als Docker opnieuw opstart. Niet als je hem zelf stopt.`,ports:`Poorten`,portsHint:`Maak een poort van de container bereikbaar vanaf deze computer, bijvoorbeeld localhost:8080.`,onThisComputer:`Op deze computer`,inContainer:`In de container`,protocolHeader:`Protocol`,hostPortPlaceholder:`leeg = een vrije poort`,addPort:`Poort toevoegen`,hostPort:e=>`Hostpoort ${String(e)}`,containerPort:e=>`Containerpoort ${String(e)}`,protocol:e=>`Protocol ${String(e)}`,removePort:e=>`Poort ${String(e)} weghalen`,network:`Netwerk`,networkHint:`Containers op een netwerk dat je zelf gemaakt hebt, kunnen elkaar op naam bereiken. Op het standaardnetwerk niet.`,networkDefault:`Standaard (bridge)`,networkAlias:`Extra naam in het netwerk`,networkAliasHint:`Een extra naam waarop de andere containers op dit netwerk hem kunnen aanspreken, naast de containernaam.`,networkAliasPlaceholder:`database`,invalidAlias:e=>`'${e}' is geen geldige naam. Gebruik letters, cijfers, punt, streepje en underscore.`,volumes:`Volumes`,volumesHint:`Gegevens die de container moeten overleven: een volume, of een map op de Docker-machine.`,source:`Volume of map`,addVolume:`Volume toevoegen`,sourcePlaceholder:`mijn-data of /srv/data`,targetPlaceholder:`/pad/in/container`,volumeSource:e=>`Volumebron ${String(e)}`,volumeTarget:e=>`Volumedoel ${String(e)}`,readOnly:`alleen lezen`,readOnlyHint:`De container kan de bestanden lezen, maar niet veranderen.`,removeVolume:e=>`Volume ${String(e)} weghalen`,env:`Omgevingsvariabelen`,envHint:`Instellingen voor het programma in de container. Je kunt ook NAAM=waarde plakken.`,envNameHeader:`Naam`,envValueHeader:`Waarde`,addEnv:`Variabele toevoegen`,envName:e=>`Naam variabele ${String(e)}`,envValue:e=>`Waarde variabele ${String(e)}`,removeEnv:e=>`Variabele ${String(e)} weghalen`,submit:`Starten`,starting:`Starten…`,invalidContainerPort:e=>`'${e}' is geen geldige containerpoort. Gebruik een getal van 1 tot 65535.`,invalidHostPort:e=>`'${e}' is geen geldige hostpoort. Laat hem leeg om Docker er een te laten kiezen.`,volumeIncomplete:`Een volume heeft zowel een bron als een doel nodig.`,notAbsolute:e=>`'${e}' is geen absoluut pad. Het doel in de container begint met een /.`,envNameMissing:`Een variabele heeft een naam nodig.`,envNameWithEquals:e=>`'${e}' mag geen = bevatten; dat scheidt de naam van de waarde.`}}});var py;var my=f(()=>{py={title:`Logs`,intro:`Alles wat je draaiende containers schrijven, op tijd door elkaar heen. Een container die start of stopt haakt vanzelf aan of af.`,projectLabel:`Compose-project`,allProjects:`Alle containers`,searchLabel:`Zoeken in de logs`,searchPlaceholder:`Zoeken, of een expressie zoals /error|warn/`,caseSensitive:`Hoofdlettergevoelig zoeken`,containers:`Containers`,nothingRunning:`Er draait niets.`,showAll:`Alles weer aanzetten`,timestamps:`Tijdstempels`,clear:`Wissen`,columns:{time:`Tijd`,object:`Object`,line:`Regel`},allFiltered:e=>`Alle ${String(e)} regels vallen weg door het filter.`,empty:`Nog geen regels. Zodra een container iets schrijft staat het hier.`,lineCount:e=>`${String(e)} regels`,filteredOut:e=>`${String(e)} weggefilterd`,truncated:`Oudere regels zijn uit de buffer gevallen.`,invalidExpression:e=>`Geen geldige expressie: ${e}`,levels:{label:`Niveau`,errors:`Fouten`,warnings:`Waarschuwingen`,unknownHidden:`Regels zonder herkenbaar niveau, zoals een stacktrace onder een fout, vallen weg bij dit filter.`}}});var gy;var hy=f(()=>{gy={title:`Networks`,unused:`Ongebruikt`,menuLabel:`Acties voor netwerken`,searchLabel:`Zoeken op naam of driver`,hideBuiltIn:`Ingebouwde netwerken verbergen`,refreshing:`Bijwerken…`,selected:e=>`${String(e)} geselecteerd`,empty:`Geen netwerken gevonden.`,builtIn:`ingebouwd`,internal:`intern`,columns:{name:`Naam`,driver:`Driver`,scope:`Scope`,subnet:`Subnet`,connected:`Aangesloten`,actions:`Acties`},containerCount:e=>`${String(e)} container${e===1?``:`s`}`,rowMenu:e=>`Acties voor ${e}`,rowMembers:`Wie hangt eraan…`,members:{title:e=>`Aan ${e}`,description:`Dezelfde containers als waar het aantal op deze pagina op gebaseerd is, ook de gestopte.`,loading:`Ophalen…`,empty:`Er hangt geen container aan dit netwerk.`,noAddress:`geen adres`,stopped:`gestopt`},builtInReason:`Ingebouwd netwerk van Docker; niet te verwijderen`,connectedReason:e=>`${String(e)} container(s) aangesloten; koppel die eerst los`,menu:{create:`Netwerk aanmaken…`,pruneUnused:`Ongebruikt opruimen`},createDialog:{title:`Netwerk aanmaken`,description:`Een eigen netwerk, waarop containers elkaar op naam vinden.`,nameLabel:`Naam`,namePlaceholder:`mijn-netwerk`,internal:`Alleen intern`,internalHint:`De containers bereiken elkaar, maar hebben geen route naar buiten.`,advanced:`Geavanceerd`,driverLabel:`Driver`,driverHint:`Laat dit op bridge staan, tenzij je een swarm draait of een netwerkplugin gebruikt.`,subnetLabel:`Subnet`,subnetHint:`Laat dit leeg, dan kiest Docker zelf een bereik dat vrij is.`,gatewayLabel:`Gateway`,gatewayHint:`Moet in het subnet liggen. Leeg betekent het eerste adres uit het bereik.`,submit:`Aanmaken`,creating:`Bezig met aanmaken…`},remove:{title:`Netwerk verwijderen?`,description:e=>`'${e}' wordt verwijderd. Containers die er later aan gekoppeld worden, vinden het niet meer.`,manyTitle:`Netwerken verwijderen?`,manyDescription:e=>`${String(e)} netwerken worden verwijderd. Netwerken met aangesloten containers en de ingebouwde netwerken worden overgeslagen.`},prune:{title:`Ongebruikte netwerken opruimen?`,description:`Elk netwerk waar geen container aan hangt wordt verwijderd. Dit levert geen schijfruimte op; het houdt de lijst overzichtelijk.`,confirm:`Opruimen`},pruned:e=>`${String(e)} netwerken verwijderd.`,created:e=>`Netwerk ${e} is aangemaakt.`}});var vy;var yy=f(()=>{vy={title:`Instellingen`,language:{heading:`Taal`,label:`Taal van de app`,hint:`Technische termen zoals container, image en volume blijven Engels.`},startup:{heading:`Opstarten`,startAtLogin:`Starten bij aanmelden, meteen in het systeemvak`,paletteShortcut:`Ctrl+Shift+Spatie opent het zoekvenster, overal in Windows`,shortcutTaken:`Ctrl+Shift+Spatie is al van een ander programma; de sneltoets werkt nu niet.`,hintAvailable:`Zo lopen de meldingen hieronder ook als je de app niet zelf opent. Uitzetten kan hier, of in Taakbeheer onder Opstarten.`,hintUnavailable:`Kan alleen in de geïnstalleerde app. Hier zou Windows een kale electron.exe gaan starten.`},notifications:{heading:`Meldingen`,crash:`Als een container onverwacht stopt`,unhealthy:`Als een container unhealthy wordt`,wiring:`Als een container zijn netwerk of poorten kwijt is`,hint:`Een container die je zelf stopt, uit de app, de terminal of compose down, geeft nooit een melding. Van dezelfde container komt hooguit één melding per minuut.`},update:{heading:`Bijwerken`,version:e=>`versie ${e}`,install:`Herstarten en bijwerken`,check:`Nu zoeken`,auto:`Zelf naar een nieuwe versie zoeken en die alvast binnenhalen`,unavailable:`Alleen de geïnstalleerde app op Windows werkt zichzelf bij. Via npm werk je bij met npm.`,idle:`Een nieuwe versie wordt binnengehaald en geïnstalleerd zodra je de app afsluit.`,checking:`Zoeken naar een nieuwe versie…`,upToDate:e=>`Dit is de nieuwste versie. Gekeken om ${e}.`,downloading:(e,n)=>`Versie ${e} binnenhalen\u2026 ${String(n)}%`,ready:e=>`Versie ${e} staat klaar en wordt ge\xEFnstalleerd als je de app afsluit. Herstarten doet het nu.`,error:e=>`Zoeken lukte niet: ${e}`},servers:{heading:`Servers`,hint:`Docker-hosts via SSH of TCP. Ze worden bewaard als docker contexts, dus de docker CLI kent ze ook. Wisselen doe je met de kiezer in de statusbalk.`,empty:`Nog geen servers.`,inUse:`in gebruik`,cli:`CLI`,test:`Testen`,testing:`Bezig met testen…`,remove:`Verwijderen`,removeBlocked:`In gebruik door de app of de docker CLI. Schakel eerst naar een andere context.`,removeTitle:e=>`Server '${e}' verwijderen?`,removeDescription:`Dit haalt de docker context weg, ook voor de docker CLI. Op de server zelf verandert niets.`,connected:(e,n,t)=>`Verbonden: Docker ${e} op ${n}/${t}.`,unknownHostKey:(e,n)=>`${e} is nog niet bekend. Vergelijk deze ${n}-vingerafdruk met die op de server (ssh-keygen -lf /etc/ssh/ssh_host_*_key.pub) voordat je hem vertrouwt:`,trust:`Vertrouwen en opnieuw testen`,add:{heading:`Server toevoegen`,name:`Naam`,namePlaceholder:`thuisserver`,kind:`Verbinding`,ssh:`SSH`,tcp:`TCP`,username:`Gebruiker`,usernamePlaceholder:`leeg: gebruiker van deze computer`,host:`Host`,hostPlaceholder:`192.168.1.16`,port:`Poort`,description:`Omschrijving`,descriptionPlaceholder:`optioneel`,submit:`Toevoegen`,tcpWarning:`Kaal TCP heeft geen authenticatie: wie de poort op het netwerk bereikt, bestuurt Docker. Kies liever SSH.`,added:e=>`Server '${e}' toegevoegd.`}},assistant:{configured:`Er is een sleutel ingesteld.`,clearKey:`Sleutel weghalen`,keyLabel:`API-sleutel`,model:`Model`,modelHint:`Opus denkt het best na over een hardnekkig probleem; Sonnet en Haiku antwoorden sneller en kosten minder. Haiku leest ook minder in één keer.`,hint:`Met een eigen sleutel van de Claude API krijgt elke container een tab Claude, die meekijkt bij een probleem. De sleutel staat versleuteld op deze computer, alleen leesbaar voor jouw Windows-gebruiker. Elke vraag kost een paar dubbeltjes aan API-gebruik, op jouw rekening.`}}});var by;var wy=f(()=>{by={nav:{label:`Hoofdnavigatie`,dashboard:`Dashboard`,containers:`Containers`,images:`Images`,volumes:`Volumes`,networks:`Networks`,compose:`Compose`,logs:`Logs`,terminal:`Terminal`,settings:`Instellingen`},routes:{container:`Container`},header:{search:`Zoeken (Ctrl+K)`,lightTheme:`Licht thema`,darkTheme:`Donker thema`,quit:`Docker Client MX afsluiten`},statusBar:{connecting:`Verbinden met Docker…`,engineRunning:`Engine draait`,engineUnreachable:`Engine niet bereikbaar`,containers:(e,n)=>`${String(e)} van ${String(n)} containers`,images:e=>`${String(e)} images`,reconnect:`Opnieuw verbinden`},contextPicker:{label:`Docker context`,switching:`Omschakelen…`,unsupported:`niet ondersteund`,inUseByCli:`in gebruik door de CLI`},actionMenu:{label:`Acties`},confirmDialog:{confirm:`Verwijderen`},dataTable:{empty:`Niets gevonden.`,selectAll:`Alles selecteren`,clearSelection:`Selectie opheffen`,select:e=>`Selecteer ${e}`},jsonView:{expand:e=>`Uitklappen: ${e}`,collapse:e=>`Inklappen: ${e}`,empty:`Niets om te tonen.`},toast:{region:`Meldingen (F8)`,close:`Melding sluiten`},usageChart:{ago:e=>`${e} geleden`,max:e=>`max ${e}`,now:`nu`,values:(e,n,t)=>`nu ${e}, hoogste ${n}, laagste ${t}`,noData:e=>`${e}: nog geen metingen.`,summary:(e,n,t)=>`${e} over de laatste ${n}: ${t}.`},palette:{title:`Snel naar`,description:`Typ om te zoeken in pagina's, containers, images, volumes en netwerken. Pijltjes kiezen, Enter voert uit.`,placeholder:`Zoek een pagina, container, image, volume of netwerk…`,results:`Resultaten`,empty:`Niets gevonden.`,groups:{page:`Pagina`,container:`Container`,image:`Image`,volume:`Volume`,compose:`Compose`,network:`Netwerk`,action:`Actie`},sections:{page:`Pagina's`,container:`Containers`,image:`Images`,volume:`Volumes`,compose:`Compose-projecten`,network:`Netwerken`,action:`Acties`},recent:`Onlangs`,attention:`Aandacht nodig`,hint:`c containers · i images · v volumes · n netwerken · p compose · > acties · → acties van een regel`,actions:`Acties`,verbs:{start:`Starten`,stop:`Stoppen`,restart:`Herstarten`,pause:`Pauzeren`,unpause:`Hervatten`,recreate:`Opnieuw opbouwen`},commandHint:`Enter voert dit uit`,commandNothing:`Niets uit te voeren`,problems:{unknown:e=>`${e}: niet gevonden`,ambiguous:(e,n)=>`${e}: ${String(n)} containers, wees preciezer`,state:e=>`${e}: kan niet in deze toestand`,notCompose:e=>`${e}: geen compose-container`},commandDone:e=>e===1?`1 opdracht uitgevoerd.`:`${String(e)} opdrachten uitgevoerd.`,events:e=>`Gebeurtenissen van ${e}`,terminal:e=>`Terminal in ${e}`,memory:e=>`Geheugengrens van ${e}\u2026`,copyId:e=>`ID van ${e} kopi\xEBren`,imageRun:e=>`${e} starten\u2026`,imageLayers:e=>`Lagen van ${e}`,imagePull:e=>`${e} opnieuw ophalen`,imageRemove:e=>`${e} verwijderen\u2026`,volumeBackup:e=>`Back-up van ${e}\u2026`,composeLogs:e=>`De logs van ${e} volgen`,prune:`Opruimen…`,checkUpdates:`Images op updates controleren`,theme:`Wisselen tussen licht en donker`,useContext:e=>`Wisselen naar ${e}`,copied:e=>`Gekopieerd: ${e}`,askClaude:e=>`Vraag Claude: ${e}`,askNote:`Alleen je vraag gaat naar Claude`,thinking:`Claude denkt na…`,claudeSays:e=>`Claude: ${e}`,questionNote:`Hiervoor keek Claude in je containers, met dezelfde tools als de tab Claude.`,commandNote:`Hiervoor kreeg Claude de namen en de toestand van je containers.`,aiNothing:`Claude vond niets dat hierbij past.`,aiMatches:e=>e===1?`1 treffer`:`${e} treffers`,noContainerSize:`Van containers kent het palet de grootte niet; van images en volumes wel.`,copyCommand:e=>`Kopi\xEBren: ${e}`,proposal:(e,n)=>`${e} ${n}`,start:e=>`${e} starten`,stop:e=>`${e} stoppen`,restart:e=>`${e} herstarten`,diagnose:e=>`${e} diagnose`,imageInUse:e=>`Image \xB7 in gebruik door ${String(e)}`,imageUnused:`Image · ongebruikt`,network:e=>`Netwerk \xB7 ${e}`,composeDetail:(e,n)=>`Compose \xB7 ${String(e)} van ${String(n)} draaien`,composeUp:e=>`${e}: up`,composeFile:e=>`${e}: compose-bestand tonen`,composeDown:e=>`${e}: down\u2026`,recreate:e=>`${e} opnieuw opbouwen`,recreateDetail:`up --force-recreate voor alleen deze service`,volumeBrowse:e=>`In ${e} kijken`,networkMembers:e=>`Wie hangt aan ${e}`}}});var Dy;var Iy=f(()=>{Dy={title:`Terminal`,intro:{start:`Een shell op de machine waar de Docker-daemon draait, zoals je WSL-distro.`,afterDocker:` werkt hier gewoon. Je bent `,afterRoot:`: de shell loopt via een kortstondige, privileged `,afterAlpine:`-container die verdwijnt zodra je de shell of deze pagina sluit.`},tabsLabel:`Terminal`,tabs:{terminal:`Terminal`,assistant:`Claude`},loading:`Terminal laden…`}});var Cy;var Ey=f(()=>{Cy={title:`Volumes`,diskSpace:`Schijfruimte`,calculating:`berekenen…`,unused:`Ongebruikt`,menuLabel:`Acties voor volumes`,searchLabel:`Zoeken op naam`,onlyUnused:`Alleen ongebruikte volumes`,refreshing:`Bijwerken…`,selected:e=>`${String(e)} geselecteerd`,empty:`Geen volumes gevonden.`,columns:{name:`Naam`,driver:`Driver`,inUse:`In gebruik`,created:`Aangemaakt`,size:`Grootte`,actions:`Acties`},containerCount:e=>`${String(e)} container${e===1?``:`s`}`,rowMenu:e=>`Acties voor ${e}`,rowBrowse:`Inhoud bekijken…`,browse:{title:e=>`In ${e}`,description:`Alleen lezen, via een kortlevende hulpcontainer. Die gaat weg als je dit sluit.`,loading:`Ophalen…`,empty:`Deze map is leeg.`,up:`Map omhoog`,path:`Pad in het volume`},rowBackup:`Back-up maken (.tar)`,rowRestore:`Back-up terugzetten…`,backupTitle:e=>`Back-up van ${e} als .tar`,backupTitleInUse:e=>`Back-up van ${e}. Het is in gebruik: een database die tijdens de back-up schrijft, levert een back-up op die niet altijd terug te zetten is. Stop die container eerst, of gebruik zijn eigen dump.`,restoreTitle:e=>`Een back-up terugzetten in ${e}`,inUseReason:e=>`In gebruik door ${String(e)} container(s); verwijder of stop die eerst`,menu:{create:`Volume aanmaken…`,pruneAnonymous:`Anoniem opruimen`,pruneUnused:`Ongebruikt opruimen`},createDialog:{title:`Volume aanmaken`,description:`Een leeg volume met een naam, om later aan een container te koppelen.`,nameLabel:`Naam`,namePlaceholder:`mijn-data`,storageLabel:`Waar komen de gegevens te staan?`,storage:{docker:`Door Docker beheerd`,dockerHint:`Aanbevolen. Docker bepaalt zelf waar de gegevens staan.`,folder:`Een map op de Docker-machine`,folderHint:`Een bestaande map, bijvoorbeeld om bestanden met een container te delen.`,nfs:`Een NFS-share op het netwerk`,nfsHint:`Een gedeelde map op een NAS of server.`},folderLabel:`Map`,folderHint:`De map moet al bestaan op de machine waar Docker draait. Onder WSL is C:\\data /mnt/c/data.`,nfsServerLabel:`Server`,nfsPathLabel:`Gedeelde map`,nfsHint:`Dit wordt pas gecontroleerd als een container dit volume gaat gebruiken.`,advanced:`Geavanceerd`,driverLabel:`Driver`,driverHint:`Laat dit op local staan, tenzij je een volume-plugin gebruikt.`,submit:`Aanmaken`,creating:`Aanmaken…`},restore:{title:e=>`Back-up terugzetten in ${e}?`,description:e=>`Bestanden met dezelfde naam worden overschreven; wat niet in de back-up zit, blijft staan. `+(e>0?`Stop eerst de ${String(e)} container(s) die dit volume gebruiken: een database die draait, merkt niet dat zijn bestanden veranderd zijn. `:``)+`Je kiest het bestand hierna.`,confirm:`Bestand kiezen`},remove:{title:`Volume verwijderen?`,description:e=>`Alle gegevens in '${e}' gaan verloren. Dit kan niet ongedaan gemaakt worden.`,manyTitle:`Volumes verwijderen?`,manyDescription:e=>`Alle gegevens in ${String(e)} volumes gaan verloren. Volumes die nog in gebruik zijn worden overgeslagen.`},prune:{allTitle:`Alle ongebruikte volumes opruimen?`,allDescription:`Elk volume waar geen container aan hangt wordt verwijderd, ook de volumes met een naam die je zelf hebt aangemaakt. De gegevens erin zijn daarna weg.`,anonymousTitle:`Anonieme volumes opruimen?`,anonymousDescription:`Volumes zonder naam die geen container meer gebruikt worden verwijderd. Dat zijn meestal restanten van containers die al weg zijn.`,confirm:`Opruimen`},created:e=>`Volume ${e} is aangemaakt.`,pruned:(e,n)=>`${String(e)} volumes verwijderd, ${n} vrijgemaakt.`,backedUp:(e,n)=>`Back-up van ${e} opgeslagen als ${n}.`,restored:(e,n)=>`${e} is teruggezet in ${n}.`}});var Sy;var ky=f(()=>{ty();oy();sy();ly();uy();fy();my();hy();yy();wy();Iy();Ey();Sy={common:ny,compose:ry,containers:iy,dashboard:ay,format:cy,images:dy,logs:py,networks:gy,settings:vy,shell:by,terminal:Dy,volumes:Cy}});function Ty(e){Yi.set(e),document.documentElement.lang=e}var Yi;var nk;var J0;var tk;var rk;var ok;var ik;var Ny;var sk=f(()=>{Kr();gh();Wh();Cv();ey();ky();Kr();Yi=wt(`en`),nk=Yi.asReadonly(),J0={en:`English`,nl:`Nederlands`,de:`Deutsch`,fr:`Français`,es:`Español`},tk={en:Xv,nl:Sy,de:mh,fr:Iv,es:qh},rk={en:`en-GB`,nl:`nl-NL`,de:`de-DE`,fr:`fr-FR`,es:`es-ES`},ok=Lt(()=>tk[Yi()]),ik=Lt(()=>rk[Yi()]);Ny=class e{language=nk;t=ok;locale=ik;async load(){try{Ty((await window.electron.settings.get()).language)}catch{Ty(`en`)}}static ɵfac=function(t){return new(t||e)};static ɵprov=X({token:e,factory:e.ɵfac,providedIn:`root`})}});function eH(e){return(e instanceof Error?e.message:String(e)).replace(ak,``)}var ak;var lk=f(()=>{ak=/^Error invoking remote method '[^']*': (?:[A-Za-z]*Error: )?/});function ck(e,n){if(e&1&&(vr(),Qi(0,`path`)),e&2){let t=n.$implicit;zr(`d`,t)}}var uk;var My;var dk=f(()=>{Kr();Kr();uk={dashboard:[`M4 4h7v7H4z`,`M13 4h7v4h-7z`,`M13 10h7v10h-7z`,`M4 13h7v7H4z`],containers:[`M12 2.5 20.5 7v10L12 21.5 3.5 17V7z`,`M3.5 7 12 11.5 20.5 7`,`M12 11.5V21.5`],images:[`M12 3 3 7.5l9 4.5 9-4.5z`,`M3 12.5 12 17l9-4.5`],volumes:[`M12 3c4.4 0 8 1.1 8 2.5S16.4 8 12 8 4 6.9 4 5.5 7.6 3 12 3z`,`M4 5.5v13C4 19.9 7.6 21 12 21s8-1.1 8-2.5v-13`,`M4 12c0 1.4 3.6 2.5 8 2.5s8-1.1 8-2.5`],networks:[`M12 2.5a2.5 2.5 0 100 5 2.5 2.5 0 100-5`,`M5 16.5a2.5 2.5 0 100 5 2.5 2.5 0 100-5`,`M19 16.5a2.5 2.5 0 100 5 2.5 2.5 0 100-5`,`M12 7.5v4M12 11.5 5.9 15.6M12 11.5l6.1 4.1`],compose:[`M8 3h13v13H8z`,`M3 8v13h13`],sun:[`M12 7.5a4.5 4.5 0 100 9 4.5 4.5 0 100-9`,`M12 1.5v2M12 20.5v2M1.5 12h2M20.5 12h2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4`],moon:[`M20 14.5A8.5 8.5 0 019.5 4a8.5 8.5 0 1010.5 10.5z`],power:[`M12 3v8.5`,`M7 5.8a8 8 0 1010 0`],refresh:[`M20 11a8 8 0 10-.7 4.3`,`M20 5v6h-6`],play:[`M8 5.5v13l11-6.5z`],stop:[`M7 7h10v10H7z`],pause:[`M9.5 5.5v13M14.5 5.5v13`],trash:[`M4 7h16`,`M10 7V4.5h4V7`,`M6 7l1 12.5h10L18 7`,`M10.5 11v5M13.5 11v5`],search:[`M11 3.5a7.5 7.5 0 100 15 7.5 7.5 0 100-15`,`M16.5 16.5 21 21`],external:[`M14 4h6v6`,`M20 4l-8.5 8.5`,`M18 13.5V19a1 1 0 01-1 1H5a1 1 0 01-1-1V7a1 1 0 011-1h5.5`],warning:[`M12 3.5 22 20H2z`,`M12 10v4.5`,`M12 17.2v.1`],chevronRight:[`M9.5 5.5 16 12l-6.5 6.5`],chevronDown:[`M5.5 9.5 12 16l6.5-6.5`],chevronUp:[`M5.5 14.5 12 8l6.5 6.5`],plus:[`M12 5.5v13`,`M5.5 12h13`],close:[`M6.5 6.5l11 11`,`M17.5 6.5l-11 11`],check:[`M5 12.5 10 17.5 19 6.5`],download:[`M12 4v10`,`M7.5 9.5 12 14l4.5-4.5`,`M4.5 19h15`],upload:[`M12 14V4`,`M7.5 8.5 12 4l4.5 4.5`,`M4.5 19h15`],folder:[`M3.5 6.5a1 1 0 0 1 1-1h4.8l2 2.2h8.2a1 1 0 0 1 1 1v9.8a1 1 0 0 1-1 1h-15a1 1 0 0 1-1-1z`],file:[`M6 3.5h8l4 4v13H6z`,`M14 3.5v4h4`],pencil:[`M4.5 19.5h4L20 8a2.1 2.1 0 0 0-3-3L5.5 16.5z`,`M15.5 6.5l3 3`],"arrow-up":[`M12 19V5`,`M6.5 10.5 12 5l5.5 5.5`],sliders:[`M4 7h9`,`M17 7h3`,`M4 17h3`,`M11 17h9`,`M15 5v4`,`M9 15v4`],copy:[`M9 8.5h10.5V19H9z`,`M15 8.5V5H4.5v10.5H9`],broom:[`M16 22l-1-4`,`M19 14a1 1 0 001-1v-1a2 2 0 00-2-2h-3a1 1 0 01-1-1V4a2 2 0 00-4 0v5a1 1 0 01-1 1H6a2 2 0 00-2 2v1a1 1 0 001 1`,`M5 14h14l2 6.8a1 1 0 01-1 1.2H4a1 1 0 01-1-1.2z`,`M8 22l1-4`],eraser:[`M7 21l-4.3-4.3a2.4 2.4 0 010-3.4l9.6-9.6a2.4 2.4 0 013.4 0l5.6 5.6a2.4 2.4 0 010 3.4L13 21`,`M22 21H7`,`M5 11l9 9`],clock:[`M12 3.5a8.5 8.5 0 100 17 8.5 8.5 0 100-17`,`M12 7v5.3l3.5 2`],terminal:[`M5 17l6-5.5L5 6`,`M12.5 18h6.5`],code:[`M16 18l6-6-6-6`,`M8 6l-6 6 6 6`],chart:[`M4 3.5v15a2 2 0 002 2h14`,`M19 9.5l-4.5 4.5-3.5-3.5-3 3`],lines:[`M5 7h14`,`M5 12h14`,`M5 17h9`],menu:[`M4 6h16`,`M4 12h16`,`M4 18h16`],sparkle:[`M12 3.5l1.8 5.2 5.2 1.8-5.2 1.8L12 17.5l-1.8-5.2L5 10.5l5.2-1.8z`,`M18.5 15v5`,`M16 17.5h5`],pulse:[`M3 12h4l2.5-6.5L14 18l2.5-6H21`]},My=class e{name=jc.required();size=jc(18);paths=Lt(()=>uk[this.name()]);static ɵfac=function(t){return new(t||e)};static ɵcmp=wc({type:e,selectors:[[`app-icon`]],hostAttrs:[1,`inline-flex`,`shrink-0`],inputs:{name:[1,`name`],size:[1,`size`]},decls:3,vars:2,consts:[[`viewBox`,`0 0 24 24`,`fill`,`none`,`stroke`,`currentColor`,`stroke-width`,`1.6`,`stroke-linecap`,`round`,`stroke-linejoin`,`round`,`aria-hidden`,`true`,`focusable`,`false`]],template:function(t,r){t&1&&(vr(),qr(0,`svg`,0),kc(1,ck,1,1,`:svg:path`,null,Sc),Wr()),t&2&&(zr(`width`,r.size())(`height`,r.size()),ec(),Tc(r.paths()))},encapsulation:2})}});export{Ny as $,sg as $n,bc as $t,I as A,km as An,Uw as At,LE as B,ob as Bn,Xm as Bt,Ge as C,hj as Cn,yc as Cr,Tc as Ct,Gu as D,kE as Dn,Ty as Dt,Gn as E,jc as En,zs as Er,Tt as Et,J0 as F,mj as Fn,Wm as Ft,M as G,pg as Gn,_S as Gt,Li as H,on as Hn,Zd as Ht,Jm as I,nS as In,Wr as It,My as J,qt as Jn,ag as Jt,Mg as K,pj as Kn,_m as Kt,Km as L,nf as Ln,Ws as Lt,Ib as M,lk as Mn,Vm as Mt,Ij as N,mb as Nn,Vr as Nt,HE as O,kc as On,UE as Ot,Ir as P,mg as Pn,W as Pt,Nn as Q,rg as Qn,bb as Qt,Kr as R,ng as Rn,Wt as Rt,G as S,hg as Sn,yb as Sr,Tb as St,Gm as T,jC as Tn,zr as Tr,Ti as Tt,Lr as U,ow as Un,Zo as Ut,Ld as V,ok as Vn,Yw as Vt,Lt as W,pE as Wn,Zt as Wt,Nc as X,rb as Xn,bD as Xt,NS as Y,qy as Yn,aw as Yt,Ng as Z,rf as Zn,bS as Zt,Dj as _,gj as _n,wt as _r,SS as _t,Ar as a,dm as an,tg as ar,Pr as at,Ej as b,hD as bn,yR as br,T as bt,Bn as c,ec as cn,va as cr,Qm as ct,CS as d,fb as dn,vj as dr,RS as dt,bg as en,sk as er,OC as et,Cb as f,fj as fn,vr as fr,Rc as ft,Db as g,gg as gn,wj as gr,SE as gt,DE as h,ge as hn,wc as hr,S as ht,Ao as i,dk as in,tf as ir,PS as it,IE as j,lf as jn,VE as jt,Ho as k,ke as kn,Us as kt,Br as l,f as ln,ve as lr,Qn as lt,Cw as m,gb as mn,wb as mr,Rp as mt,$e as n,br as nn,tb as nr,PC as nt,BE as o,dp as on,ue as or,QI as ot,Cj as p,fk as pn,wD as pr,Rm as pt,Mn as q,qr as qn,_r as qt,Ac as r,cr as rn,te as rr,PE as rt,Be as s,eH as sn,vS as sr,Qi as st,$C as t,bj as tn,sw as tr,Od as tt,CE as u,fS as un,vg as ur,RE as ut,ES as v,gl as vn,xS as vr,Sc as vt,Gi as w,ik as wn,zE as wr,Tg as wt,Fs as x,hb as xn,yS as xr,TE as xt,Eb as y,gn as yn,xm as yr,Se as yt,LD as z,nr as zn,X as zt};