@profoundlogic/coderflow-server 0.2.7 → 0.2.8
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.
- package/dist/coder-server.js +1 -1
- package/dist/config.js +1 -1
- package/dist/lib/agent-keepalive.js +1 -1
- package/dist/lib/api-keys.js +1 -1
- package/dist/lib/apiKeys.js +1 -1
- package/dist/lib/app-server-ports.js +1 -1
- package/dist/lib/auto-judge.js +1 -1
- package/dist/lib/basic-auth.js +1 -1
- package/dist/lib/build-history.js +1 -1
- package/dist/lib/build-output-service.js +1 -1
- package/dist/lib/build-scheduler.js +1 -1
- package/dist/lib/build-service.js +1 -1
- package/dist/lib/ca-certificates.js +1 -1
- package/dist/lib/claude-oauth-refresh.js +1 -1
- package/dist/lib/cli/build.js +1 -1
- package/dist/lib/cli/config-command.js +1 -1
- package/dist/lib/cli/config.js +1 -1
- package/dist/lib/cli/create-user.js +1 -1
- package/dist/lib/cli/init.js +1 -1
- package/dist/lib/cli/jira.js +1 -1
- package/dist/lib/cli/license.js +1 -1
- package/dist/lib/cli/server-manager.js +1 -1
- package/dist/lib/container-tokens.js +1 -1
- package/dist/lib/data-dir.js +1 -1
- package/dist/lib/deployment-history.js +1 -1
- package/dist/lib/deployment-service.js +1 -1
- package/dist/lib/docker-utils.js +1 -1
- package/dist/lib/email.js +1 -1
- package/dist/lib/emailTemplates.js +1 -1
- package/dist/lib/entitlement.js +1 -1
- package/dist/lib/fetch-utils.js +1 -1
- package/dist/lib/git-commit-details-route.js +1 -1
- package/dist/lib/git-history-diff-guardrails.js +1 -1
- package/dist/lib/git-provider-service.js +1 -1
- package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
- package/dist/lib/git-provider-setup/index.js +1 -1
- package/dist/lib/git-provider-setup/setup-factory.js +1 -1
- package/dist/lib/git-provider-setup/setup-interface.js +1 -1
- package/dist/lib/git-providers/azure-devops-provider.js +1 -1
- package/dist/lib/git-providers/github-app-provider.js +1 -1
- package/dist/lib/git-providers/index.js +1 -1
- package/dist/lib/git-providers/provider-factory.js +1 -1
- package/dist/lib/git-providers/provider-interface.js +1 -1
- package/dist/lib/github-urls.js +1 -1
- package/dist/lib/group-objective-linking.js +1 -1
- package/dist/lib/jira-client.js +1 -1
- package/dist/lib/judge-blinding.js +1 -1
- package/dist/lib/logger.js +1 -1
- package/dist/lib/model-fetcher.js +1 -1
- package/dist/lib/notifications.js +1 -1
- package/dist/lib/oidc-auth.js +1 -1
- package/dist/lib/oidc-device-flow.js +1 -1
- package/dist/lib/passwordTokens.js +1 -1
- package/dist/lib/pin-cascade.js +1 -1
- package/dist/lib/provider-accounts.js +1 -1
- package/dist/lib/provider-oauth.js +1 -1
- package/dist/lib/provider-profile.js +1 -1
- package/dist/lib/provider-token-refresh.js +1 -1
- package/dist/lib/request-url.js +1 -1
- package/dist/lib/rewind.js +1 -1
- package/dist/lib/roles.js +1 -1
- package/dist/lib/secrets.js +1 -1
- package/dist/lib/setup-repo-git-auth.js +1 -1
- package/dist/lib/state-capture.js +1 -1
- package/dist/lib/static-files.js +1 -1
- package/dist/lib/task-name-generator.js +1 -1
- package/dist/lib/user-git-oauth.js +1 -1
- package/dist/lib/user-git-tokens.js +1 -1
- package/dist/lib/users.js +1 -1
- package/dist/middleware/requireAuth.js +1 -1
- package/dist/middleware/requireInit.js +1 -1
- package/dist/middleware/requirePermission.js +1 -1
- package/dist/package.json +1 -1
- package/dist/routes/apiKeys.js +1 -1
- package/dist/routes/auth-oidc.js +1 -1
- package/dist/routes/auth.js +1 -1
- package/dist/routes/build.js +1 -1
- package/dist/routes/containers.js +1 -1
- package/dist/routes/deploy-task.js +1 -1
- package/dist/routes/environment-management.js +1 -1
- package/dist/routes/environments.js +1 -1
- package/dist/routes/external-skills.js +1 -1
- package/dist/routes/git-credentials.js +1 -1
- package/dist/routes/git-oauth.js +1 -1
- package/dist/routes/git-provider-setup.js +1 -1
- package/dist/routes/health.js +1 -1
- package/dist/routes/jira.js +1 -1
- package/dist/routes/objective-management.js +1 -1
- package/dist/routes/password.js +1 -1
- package/dist/routes/prompt.js +1 -1
- package/dist/routes/provider-auth.js +1 -1
- package/dist/routes/qa.js +1 -1
- package/dist/routes/settings.js +1 -1
- package/dist/routes/skill-management.js +1 -1
- package/dist/routes/skills.js +1 -1
- package/dist/routes/tasks.js +1 -1
- package/dist/routes/templates.js +1 -1
- package/dist/routes/test-task.js +1 -1
- package/dist/routes/test.js +1 -1
- package/dist/routes/users.js +1 -1
- package/dist/routes/visualizations.js +1 -1
- package/dist/scripts/create-user.js +1 -1
- package/dist/start.js +1 -1
- package/dist/web-ui/public/activity-detail-modal.js +1 -1
- package/dist/web-ui/public/activity-feed.js +1 -1
- package/dist/web-ui/public/activity-formatters.js +1 -1
- package/dist/web-ui/public/agent-event-parser.js +1 -1
- package/dist/web-ui/public/app.js +1 -1
- package/dist/web-ui/public/approve-dialog.js +1 -1
- package/dist/web-ui/public/comments-widget.js +1 -1
- package/dist/web-ui/public/diff-utils.js +1 -1
- package/dist/web-ui/public/environments.js +1 -1
- package/dist/web-ui/public/feedback-widget.css +28 -0
- package/dist/web-ui/public/feedback-widget.js +1 -1
- package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
- package/dist/web-ui/public/git-history.js +1 -1
- package/dist/web-ui/public/git-status.js +1 -1
- package/dist/web-ui/public/index.js +1 -1
- package/dist/web-ui/public/login.js +1 -1
- package/dist/web-ui/public/markdown-editor.js +1 -1
- package/dist/web-ui/public/markdown-file-editor.js +1 -1
- package/dist/web-ui/public/modal-maximize.js +1 -1
- package/dist/web-ui/public/notifications.js +1 -1
- package/dist/web-ui/public/server-health.js +1 -1
- package/dist/web-ui/public/settings.css +1 -0
- package/dist/web-ui/public/settings.html +5 -5
- package/dist/web-ui/public/settings.js +1 -1
- package/dist/web-ui/public/setup-password.js +1 -1
- package/dist/web-ui/public/skills.js +1 -1
- package/dist/web-ui/public/sse-client.js +1 -1
- package/dist/web-ui/public/sse-shared-worker.js +1 -1
- package/dist/web-ui/public/styles.css +9 -0
- package/dist/web-ui/public/task.js +1 -1
- package/dist/web-ui/public/terminal.js +1 -1
- package/dist/web-ui/public/theme.js +1 -1
- package/dist/web-ui/public/users.js +1 -1
- package/dist/web-ui/public/variant-grouping.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function _0x1064(_0x8054d,_0x52a7a9){_0x8054d=_0x8054d-0x136;const _0x5bbe41=_0x5bbe();let _0x106463=_0x5bbe41[_0x8054d];if(_0x1064['TxiIra']===undefined){var _0x189d13=function(_0x5297cc){const _0x5c7146='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x469089='',_0x398ceb='';for(let _0x482c1f=0x0,_0x9aa8df,_0x4b9294,_0x3ceb68=0x0;_0x4b9294=_0x5297cc['charAt'](_0x3ceb68++);~_0x4b9294&&(_0x9aa8df=_0x482c1f%0x4?_0x9aa8df*0x40+_0x4b9294:_0x4b9294,_0x482c1f++%0x4)?_0x469089+=String['fromCharCode'](0xff&_0x9aa8df>>(-0x2*_0x482c1f&0x6)):0x0){_0x4b9294=_0x5c7146['indexOf'](_0x4b9294);}for(let _0x4cc6b2=0x0,_0x4e9cf7=_0x469089['length'];_0x4cc6b2<_0x4e9cf7;_0x4cc6b2++){_0x398ceb+='%'+('00'+_0x469089['charCodeAt'](_0x4cc6b2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x398ceb);};_0x1064['xMcDfK']=_0x189d13,_0x1064['curHKR']={},_0x1064['TxiIra']=!![];}const _0x2942b5=_0x5bbe41[0x0],_0x5491d5=_0x8054d+_0x2942b5,_0x36741d=_0x1064['curHKR'][_0x5491d5];return!_0x36741d?(_0x106463=_0x1064['xMcDfK'](_0x106463),_0x1064['curHKR'][_0x5491d5]=_0x106463):_0x106463=_0x36741d,_0x106463;}(function(_0x229aaa,_0x2b8022){const _0x26bc1c=_0x1064,_0x3dcdb2=_0x229aaa();while(!![]){try{const _0xf684f6=-parseInt(_0x26bc1c(0x159))/0x1*(-parseInt(_0x26bc1c(0x148))/0x2)+parseInt(_0x26bc1c(0x155))/0x3*(parseInt(_0x26bc1c(0x154))/0x4)+-parseInt(_0x26bc1c(0x15f))/0x5*(parseInt(_0x26bc1c(0x160))/0x6)+parseInt(_0x26bc1c(0x15a))/0x7*(-parseInt(_0x26bc1c(0x142))/0x8)+parseInt(_0x26bc1c(0x149))/0x9+-parseInt(_0x26bc1c(0x153))/0xa*(parseInt(_0x26bc1c(0x145))/0xb)+-parseInt(_0x26bc1c(0x147))/0xc;if(_0xf684f6===_0x2b8022)break;else _0x3dcdb2['push'](_0x3dcdb2['shift']());}catch(_0x45acfc){_0x3dcdb2['push'](_0x3dcdb2['shift']());}}}(_0x5bbe,0xe4c3d));const DEFAULT_DURATION_MS=0xfa;function prefersReducedMotion(){const _0x57fd3b=_0x1064;try{return window[_0x57fd3b(0x13c)]&&window[_0x57fd3b(0x13c)](_0x57fd3b(0x136))[_0x57fd3b(0x162)];}catch{return![];}}function safeCancelAnimations(_0x469089){const _0xb3cef6=_0x1064;if(!_0x469089||typeof _0x469089[_0xb3cef6(0x13a)]!==_0xb3cef6(0x158))return;try{_0x469089['getAnimations']()[_0xb3cef6(0x14c)](_0x398ceb=>_0x398ceb[_0xb3cef6(0x15e)]());}catch{}}function _0x5bbe(){const _0x169d0f=['y29UDgfPBNm','zM9YrwfJAa','C2v0sxrLBq','BgvMDa','AxngAw5PDgu','CMvTB3zL','Dg9WigXLzNq','DhjHBNnPDgLVBG','mtbPD0L1vNK','mJq3otzmvwfYB2G','mtvsy1bns0S','DhjHBNnMB3jTt3jPz2LU','ywrKrxzLBNrmAxn0zw5LCG','zNvUy3rPB24','mK9tvg5ivG','mZv3ufHWvwm','yw5PBwf0zq','BM9Uzq','ChGSia','y2fUy2vS','otvwtNzssfe','mJaZnZmWrNLSt2vP','CxvLCNLtzwXLy3rVCG','Bwf0y2HLCW','Bwf4Aw1PEMvK','khbYzwzLCNmTCMvKDwnLzc1TB3rPB246ihjLzhvJzsK','lM1VzgfSlwnVBNrLBNq','ChGPihnJywXLka','zMLUAxnO','z2v0qw5PBwf0Aw9UCW','C3r5Bgu','Bwf0y2HnzwrPyq','z2v0qM91BMrPBMDdBgLLBNrszwn0','AgvPz2H0','Dg9Nz2XL','D2LSBenOyw5Nzq','y2XHC3nmAxn0','mZe2nZeYAwLvrgjw','Dg9W','D2LKDgG','mJy0ndKZouXTq1jRzG','yM90Aa','mJe2ntq4ng1Is3vTuq','ntG5mZy0CfPor0vX','mtqYmJu5mJjpsuzQC1a','DhjHBNnMB3jT'];_0x5bbe=function(){return _0x169d0f;};return _0x5bbe();}function animateRestoreFlip({contentEl:_0x482c1f,fromRect:_0x9aa8df,toRect:_0x4b9294,durationMs:_0x3ceb68}){const _0x428399=_0x1064;if(!_0x482c1f)return;if(!_0x9aa8df||!_0x4b9294)return;if(prefersReducedMotion())return;const _0x4cc6b2=_0x4b9294[_0x428399(0x144)]||0x0,_0x4e9cf7=_0x4b9294[_0x428399(0x13e)]||0x0,_0x5a94d0=_0x9aa8df['width']||0x0,_0x1c9278=_0x9aa8df[_0x428399(0x13e)]||0x0;if(_0x4cc6b2<=0x0||_0x4e9cf7<=0x0||_0x5a94d0<=0x0||_0x1c9278<=0x0)return;const _0x242e00=_0x9aa8df[_0x428399(0x14e)]-_0x4b9294[_0x428399(0x14e)],_0x70241c=_0x9aa8df[_0x428399(0x143)]-_0x4b9294[_0x428399(0x143)],_0xb8d4d8=_0x5a94d0/_0x4cc6b2,_0x5128d8=_0x1c9278/_0x4e9cf7;if(!Number['isFinite'](_0x242e00)||!Number[_0x428399(0x14f)](_0x70241c)||!Number[_0x428399(0x14f)](_0xb8d4d8)||!Number[_0x428399(0x14f)](_0x5128d8))return;safeCancelAnimations(_0x482c1f);const _0x5d6a96=_0x482c1f[_0x428399(0x13b)][_0x428399(0x152)],_0x8abd68=_0x482c1f[_0x428399(0x13b)][_0x428399(0x156)],_0x513214=_0x482c1f[_0x428399(0x13b)][_0x428399(0x140)];_0x482c1f[_0x428399(0x13b)][_0x428399(0x152)]=_0x428399(0x15c),_0x482c1f[_0x428399(0x13b)][_0x428399(0x156)]=_0x428399(0x151),_0x482c1f[_0x428399(0x13b)]['willChange']=_0x428399(0x14a);const _0x4d147b='translate('+_0x242e00+_0x428399(0x15d)+_0x70241c+_0x428399(0x138)+_0xb8d4d8+',\x20'+_0x5128d8+')',_0x7235a5=_0x482c1f[_0x428399(0x15b)]([{'transform':_0x4d147b},{'transform':'none'}],{'duration':_0x3ceb68,'easing':'ease','fill':_0x428399(0x146)}),_0x32be0b=()=>{const _0x3c0165=_0x428399;_0x482c1f[_0x3c0165(0x13b)][_0x3c0165(0x152)]=_0x5d6a96,_0x482c1f[_0x3c0165(0x13b)][_0x3c0165(0x156)]=_0x8abd68,_0x482c1f[_0x3c0165(0x13b)][_0x3c0165(0x140)]=_0x513214;};_0x7235a5[_0x428399(0x157)](_0x428399(0x139),_0x32be0b,{'once':!![]}),_0x7235a5[_0x428399(0x157)](_0x428399(0x15e),_0x32be0b,{'once':!![]});}export function toggleModalMaximize(_0x301265,_0x5d76be={}){const _0x2d77ef=_0x1064;if(!_0x301265)return;const {storageKey:_0x1e1181,updateIcon:_0x29ecb0,onAfterToggle:_0x46e6e5,durationMs:durationMs=DEFAULT_DURATION_MS}=_0x5d76be,_0x39255a=_0x301265[_0x2d77ef(0x161)](_0x2d77ef(0x137)),_0x50d580=_0x301265[_0x2d77ef(0x141)][_0x2d77ef(0x14b)]('maximized'),_0x21ba1c=!_0x50d580;if(!_0x39255a){_0x301265[_0x2d77ef(0x141)]['toggle'](_0x2d77ef(0x163)),_0x29ecb0?.(_0x21ba1c),_0x46e6e5?.(_0x21ba1c);if(_0x1e1181)try{localStorage[_0x2d77ef(0x14d)](_0x1e1181,String(_0x21ba1c));}catch{}return;}if(_0x50d580&&!prefersReducedMotion()){const _0x53ebbb=_0x39255a[_0x2d77ef(0x13d)]();_0x301265['classList'][_0x2d77ef(0x150)]('maximized');const _0x24727d=_0x39255a[_0x2d77ef(0x13d)]();animateRestoreFlip({'contentEl':_0x39255a,'fromRect':_0x53ebbb,'toRect':_0x24727d,'durationMs':durationMs});}else _0x301265['classList'][_0x2d77ef(0x13f)]('maximized');_0x29ecb0?.(_0x21ba1c),_0x46e6e5?.(_0x21ba1c);if(_0x1e1181)try{localStorage[_0x2d77ef(0x14d)](_0x1e1181,String(_0x21ba1c));}catch{}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _0x3ba1(_0x4ff8b3,_0x5b5236){_0x4ff8b3=_0x4ff8b3-0x1b6;const _0x26473f=_0x2647();let _0x3ba11d=_0x26473f[_0x4ff8b3];if(_0x3ba1['EswjUO']===undefined){var _0x384c5d=function(_0x16f825){const _0x5ae0fe='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x84ddbd='',_0x3df7d6='';for(let _0x2f323d=0x0,_0x32a5fa,_0x577263,_0x488419=0x0;_0x577263=_0x16f825['charAt'](_0x488419++);~_0x577263&&(_0x32a5fa=_0x2f323d%0x4?_0x32a5fa*0x40+_0x577263:_0x577263,_0x2f323d++%0x4)?_0x84ddbd+=String['fromCharCode'](0xff&_0x32a5fa>>(-0x2*_0x2f323d&0x6)):0x0){_0x577263=_0x5ae0fe['indexOf'](_0x577263);}for(let _0x5042a4=0x0,_0xad599c=_0x84ddbd['length'];_0x5042a4<_0xad599c;_0x5042a4++){_0x3df7d6+='%'+('00'+_0x84ddbd['charCodeAt'](_0x5042a4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3df7d6);};_0x3ba1['pCamIr']=_0x384c5d,_0x3ba1['XbjGbj']={},_0x3ba1['EswjUO']=!![];}const _0x1fc27f=_0x26473f[0x0],_0x483b16=_0x4ff8b3+_0x1fc27f,_0x3b1d66=_0x3ba1['XbjGbj'][_0x483b16];return!_0x3b1d66?(_0x3ba11d=_0x3ba1['pCamIr'](_0x3ba11d),_0x3ba1['XbjGbj'][_0x483b16]=_0x3ba11d):_0x3ba11d=_0x3b1d66,_0x3ba11d;}(function(_0x3928f2,_0x24e6b8){const _0x34b0f1=_0x3ba1,_0x59cdb6=_0x3928f2();while(!![]){try{const _0x4a6292=-parseInt(_0x34b0f1(0x1d1))/0x1+parseInt(_0x34b0f1(0x1dd))/0x2+-parseInt(_0x34b0f1(0x1c0))/0x3*(-parseInt(_0x34b0f1(0x1d3))/0x4)+-parseInt(_0x34b0f1(0x1d2))/0x5*(parseInt(_0x34b0f1(0x1e5))/0x6)+-parseInt(_0x34b0f1(0x1bf))/0x7*(-parseInt(_0x34b0f1(0x202))/0x8)+parseInt(_0x34b0f1(0x206))/0x9+-parseInt(_0x34b0f1(0x1d0))/0xa;if(_0x4a6292===_0x24e6b8)break;else _0x59cdb6['push'](_0x59cdb6['shift']());}catch(_0x2f6df5){_0x59cdb6['push'](_0x59cdb6['shift']());}}}(_0x2647,0xa2472));export const NotificationManager={'isSupported'(){const _0x234d82=_0x3ba1;return _0x234d82(0x1c9)in window;},'isEnabled'(){const _0x4b44ad=_0x3ba1;if(!this[_0x4b44ad(0x1c8)]())return![];return localStorage[_0x4b44ad(0x1cc)](_0x4b44ad(0x1ef))===_0x4b44ad(0x1db);},'setEnabled'(_0x84ddbd){const _0x5dffa3=_0x3ba1;localStorage[_0x5dffa3(0x1e9)]('notifications-enabled',_0x84ddbd?'true':_0x5dffa3(0x1f6));},'getPermission'(){const _0x1d99e4=_0x3ba1;if(!this['isSupported']())return _0x1d99e4(0x1ce);return Notification[_0x1d99e4(0x1d5)];},async 'requestPermission'(){const _0xa70d7c=_0x3ba1;if(!this['isSupported']())return _0xa70d7c(0x1ce);if(Notification[_0xa70d7c(0x1d5)]==='granted')return _0xa70d7c(0x1f7);if(Notification[_0xa70d7c(0x1d5)]==='denied')return'denied';try{const _0x3df7d6=await Notification['requestPermission']();return _0x3df7d6;}catch(_0x2f323d){return console['error'](_0xa70d7c(0x1f9),_0x2f323d),_0xa70d7c(0x1dc);}},async 'show'(_0x32a5fa,_0x577263={}){const _0x278f78=_0x3ba1;if(!this[_0x278f78(0x1da)]())return null;if(!this[_0x278f78(0x1c8)]())return console[_0x278f78(0x1bd)]('Notifications\x20are\x20not\x20supported\x20in\x20this\x20browser'),null;if(Notification[_0x278f78(0x1d5)]!==_0x278f78(0x1f7))return console[_0x278f78(0x1bd)](_0x278f78(0x1c3)),null;try{const _0x488419=new Notification(_0x32a5fa,{'icon':_0x577263[_0x278f78(0x1e0)]||'/favicon.ico','badge':_0x577263[_0x278f78(0x1d6)]||'/favicon.ico','body':_0x577263[_0x278f78(0x1c6)]||'','tag':_0x577263['tag']||'','requireInteraction':_0x577263[_0x278f78(0x1fb)]||![],'silent':_0x577263[_0x278f78(0x1be)]||![],'data':_0x577263[_0x278f78(0x201)]||{}});_0x577263['onClick']&&(_0x488419['onclick']=_0x5042a4=>{const _0x41ce05=_0x278f78;_0x5042a4[_0x41ce05(0x1de)](),window[_0x41ce05(0x1e3)](),_0x577263[_0x41ce05(0x1c2)](_0x5042a4,_0x488419),_0x488419[_0x41ce05(0x1b7)]();});if(!_0x577263[_0x278f78(0x1fb)]){const _0xad599c=_0x577263[_0x278f78(0x1b6)]||0x1388;setTimeout(()=>{const _0x21d1d2=_0x278f78;_0x488419[_0x21d1d2(0x1b7)]();},_0xad599c);}return _0x488419;}catch(_0x28e564){return console[_0x278f78(0x1c4)](_0x278f78(0x1eb),_0x28e564),null;}},async 'notifyTaskComplete'(_0x3a9492){const _0x34a920=_0x3ba1,_0x32202f=_0x3a9492[_0x34a920(0x1b9)]!==undefined?_0x3a9492[_0x34a920(0x1b9)]:_0x3a9492[_0x34a920(0x204)],_0x14741a=_0x3a9492['status']==='completed'&&_0x32202f===0x0,_0x358ad5=_0x14741a?_0x34a920(0x1e6):_0x34a920(0x1c1);let _0xfc2d9e;if(_0x3a9492['taskType']===_0x34a920(0x1e7)){const _0x5a5e40=_0x3a9492[_0x34a920(0x205)]||_0x34a920(0x203),_0x470b1b=_0x3a9492[_0x34a920(0x1cf)]||_0x3a9492['description']||'';if(_0x470b1b&&_0x470b1b[_0x34a920(0x1e8)]>0x0){let _0x320e11=_0x470b1b;_0x470b1b[_0x34a920(0x1e8)]>0x50&&(_0x320e11=_0x470b1b[_0x34a920(0x1ee)](0x0,0x4d)+_0x34a920(0x1ff)),_0xfc2d9e=_0x34a920(0x1ed)+_0x5a5e40+_0x34a920(0x1fa)+_0x320e11;}else _0xfc2d9e=_0x34a920(0x1ed)+_0x5a5e40;}else{if(_0x3a9492[_0x34a920(0x1fd)]===_0x34a920(0x1f8)){const _0x3729b3=_0x3a9492['deployProfile']||'Deploy',_0x180c9c=_0x3a9492[_0x34a920(0x1bc)]||_0x3a9492[_0x34a920(0x1d7)]||'';if(_0x180c9c&&_0x180c9c[_0x34a920(0x1e8)]>0x0){let _0x1ede1f=_0x180c9c;_0x180c9c['length']>0x50&&(_0x1ede1f=_0x180c9c[_0x34a920(0x1ee)](0x0,0x4d)+_0x34a920(0x1ff)),_0xfc2d9e=_0x34a920(0x1f2)+_0x3729b3+_0x34a920(0x1fa)+_0x1ede1f;}else _0xfc2d9e=_0x34a920(0x1f2)+_0x3729b3;}else{const _0x46e68e=_0x3a9492[_0x34a920(0x1e2)]?_0x3a9492[_0x34a920(0x1e2)][_0x34a920(0x1c7)]():null,_0x20803e=_0x3a9492['envVars']?.[_0x34a920(0x1fc)]||_0x3a9492[_0x34a920(0x1ec)]?.[_0x34a920(0x1f0)]||_0x34a920(0x1c5),_0x1561f7=_0x20803e['charAt'](0x0)[_0x34a920(0x1df)]()+_0x20803e[_0x34a920(0x1ea)](0x1);let _0x1e723f,_0x278be5=![];if(_0x3a9492['followUpHistory']&&Array[_0x34a920(0x1f4)](_0x3a9492[_0x34a920(0x1d4)])&&_0x3a9492['followUpHistory']['length']>0x0){const _0x48cec6=_0x3a9492['followUpHistory'][_0x3a9492[_0x34a920(0x1d4)][_0x34a920(0x1e8)]-0x1];_0x1e723f=_0x48cec6['instructions'],_0x278be5=!![];}else _0x1e723f=_0x3a9492[_0x34a920(0x1d7)]||_0x3a9492[_0x34a920(0x1e4)]||_0x3a9492[_0x34a920(0x1f1)];_0x1e723f[_0x34a920(0x1e8)]>0x64&&(_0x1e723f=_0x1e723f[_0x34a920(0x1ee)](0x0,0x61)+'...');const _0x2a505e=_0x278be5?_0x34a920(0x1f5):'';_0x46e68e?_0xfc2d9e=_0x46e68e+'\x0a'+_0x1561f7+':\x20'+_0x2a505e+_0x1e723f:_0xfc2d9e=_0x1561f7+':\x20'+_0x2a505e+_0x1e723f;}}return this[_0x34a920(0x1ca)](_0x358ad5,{'body':_0xfc2d9e,'tag':_0x34a920(0x1cb)+_0x3a9492[_0x34a920(0x1f1)],'requireInteraction':![],'duration':0x1f40,'data':{'taskId':_0x3a9492[_0x34a920(0x1f1)]},'onClick':(_0x517edd,_0xd3898f)=>{const _0x31170d=_0x34a920;window[_0x31170d(0x1d8)]('task.html?id='+_0x3a9492[_0x31170d(0x1f1)],'_blank');}});},'shouldNotify'(_0x4974a6,_0x11917b){const _0x379823=_0x3ba1;if(!this[_0x379823(0x1da)]())return![];if(_0x4974a6[_0x379823(0x1fe)]!==_0x379823(0x1e1)&&_0x4974a6[_0x379823(0x1fe)]!==_0x379823(0x1bb))return![];if(!_0x11917b[_0x379823(0x1b8)](_0x4974a6[_0x379823(0x1f1)]))return![];const _0x1fb13d=_0x379823(0x1cd)+_0x4974a6[_0x379823(0x1f1)];if(sessionStorage[_0x379823(0x1cc)](_0x1fb13d)==='true')return![];return!![];},'markNotified'(_0x351ce8){const _0x20ba71=_0x3ba1;sessionStorage[_0x20ba71(0x1e9)](_0x20ba71(0x1cd)+_0x351ce8,_0x20ba71(0x1db));},'clearNotificationHistory'(){const _0x1a5400=_0x3ba1,_0x36f733=[];for(let _0x31691b=0x0;_0x31691b<sessionStorage['length'];_0x31691b++){const _0x18101a=sessionStorage[_0x1a5400(0x1ba)](_0x31691b);_0x18101a[_0x1a5400(0x1d9)](_0x1a5400(0x1cd))&&_0x36f733[_0x1a5400(0x200)](_0x18101a);}_0x36f733['forEach'](_0x4afb63=>sessionStorage[_0x1a5400(0x1f3)](_0x4afb63));}};function _0x2647(){const _0x217566=['4PYfifrHC2SGq29TCgXLDgvKifn1y2nLC3nMDwXSEq','DgvZDa','BgvUz3rO','C2v0sxrLBq','C2XPy2u','rMfPBgvKihrVihnOB3CGBM90AwzPy2f0Aw9UoG','zw52vMfYCW','vgvZDdOG','C3vIC3rYAw5N','BM90AwzPy2f0Aw9UCY1LBMfIBgvK','zgvMyxvSDf9Hz2vUDa','DgfZA0LK','rgvWBg95oIa','CMvTB3zLsxrLBq','AxnbCNjHEq','w0zVBgXVDY11Cf0G','zMfSC2u','z3jHBNrLza','zgvWBg95','rMfPBgvKihrVihjLCxvLC3qGBM90AwzPy2f0Aw9UihbLCM1PC3nPB246','ic0G','CMvXDwLYzuLUDgvYywn0Aw9U','q09ervjFquDftLq','DgfZA1r5Cgu','C3rHDhvZ','lI4U','ChvZAa','zgf0yq','nJa4mtC2r0P4ruvJ','vgvZDa','zxHPDf9JB2rL','DgvZDe5HBwu','mte4mZG0nJvwrLnpDKm','zhvYyxrPB24','y2XVC2u','AgfZ','zxHPDenVzgu','A2v5','zMfPBgvK','zgvWBg95rgvZy3jPChrPB24','D2fYBG','C2LSzw50','otHTyvH3yKS','mtjYqK1OB1q','4P2mifrHC2SGrMfPBgvK','B25dBgLJAW','tM90AwzPy2f0Aw9UihbLCM1PC3nPB24GBM90igDYyw50zwq','zxjYB3i','vw5RBM93BG','yM9KEq','DhjPBq','AxntDxbWB3j0zwq','tM90AwzPy2f0Aw9U','C2HVDW','DgfZAY0','z2v0sxrLBq','BM90AwzPzwqT','Dw5ZDxbWB3j0zwq','DgvZDerLC2nYAxb0Aw9U','mJq3ndK5ntbkzuX5yLy','mZuYmJiZA1f3A2He','ntGWu0fwuLHI','nZaXnty0vMD3vMPi','zM9SBg93vxbiAxn0B3j5','CgvYBwLZC2LVBG','yMfKz2u','zgvZy3jPChrPB24','B3bLBG','C3rHCNrZv2L0Aa','AxnfBMfIBgvK','Dhj1zq','zgvUAwvK','mJa0mJu1mfb4wKXmzG','ChjLDMvUDerLzMf1Bhq','Dg9vChbLCKnHC2u','AwnVBG','y29TCgXLDgvK','BMfTzq','zM9JDxm','Aw5ZDhj1y3rPB25Z','mZe1odrKBMDYqwO'];_0x2647=function(){return _0x217566;};return _0x2647();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x130834=_0x29f0;(function(_0x43300d,_0x3abf74){const _0x331ec4=_0x29f0,_0x575b31=_0x43300d();while(!![]){try{const _0xa2c403=-parseInt(_0x331ec4(0x21d))/0x1*(parseInt(_0x331ec4(0x1f4))/0x2)+-parseInt(_0x331ec4(0x24a))/0x3*(parseInt(_0x331ec4(0x202))/0x4)+parseInt(_0x331ec4(0x24e))/0x5+-parseInt(_0x331ec4(0x228))/0x6*(parseInt(_0x331ec4(0x225))/0x7)+-parseInt(_0x331ec4(0x1e3))/0x8*(-parseInt(_0x331ec4(0x247))/0x9)+-parseInt(_0x331ec4(0x212))/0xa*(-parseInt(_0x331ec4(0x233))/0xb)+-parseInt(_0x331ec4(0x215))/0xc;if(_0xa2c403===_0x3abf74)break;else _0x575b31['push'](_0x575b31['shift']());}catch(_0x2c2be8){_0x575b31['push'](_0x575b31['shift']());}}}(_0x2c3e,0x9291f));import{API}from'./app.js';function _0x2c3e(){const _0x5726a1=['zMLYC3rfBgvTzw50q2HPBgq','zgLZAY1WCM9NCMvZCW','C3rHDhvZlxDHCM5PBMC','zg9JA2vY','Dxb0Aw1L','y2XHC3nmAxn0','BwvTB3j5lxvZywDL','C3rHDhvZ','yxbWzw5Kq2HPBgq','Bwf4','C2vYDMvYlwHLywX0Ac1Hy3rPB24TC3rHDhvZ','C3rVCefSBenVBNrHAw5LCNm','C2vYDMvYlwHLywX0Ac1VAW','CxvLCNLtzwXLy3rVCG','yNvPBgrdywnOzq','D2fYBMLUzW','y3jLyxrLrwXLBwvUDa','y2XLyw51Cc1Zzwn0Aw9U','mtKXmti1oe9nDuLOvG','y3b1lxvZywDL','C3rHDhvZlw9R','mtvyA0rhEem','BwvTB3j5','r0vu','zg9JA2vYlwnVBNrHAw5LCNm','ntG2nty2nuLKr2vtyq','C2vYDMvYlwHLywX0Ac1TB2rHBa','C2vYDMvYlwHLywX0Ac1YzwzYzxnO','CgvYy2vUDa','ndbeEvvVChK','zxHWyw5Kzwq','zgLZCgXHEq','BwvTB3j5lxbYB2DYzxnZ','yM9KEq','uMvTB3zPBMCGC3rVChbLzcbJB250ywLUzxjZ','BwLU','AgLKzgvU','CMvTB3zLu3rVChbLzenVBNrHAw5LCNm','zg9JA2vYlxn0B3jHz2uTy29UDgfPBMvYCW','Chj1BMveB2nRzxjszxnVDxjJzxm','C2vZC2LVBNm','Dg90ywW','ANnVBG','zg9JA2vYlxbYB2DYzxnZ','Dg9mB3DLCKnHC2u','A2v5','mJzmyKX1Be8','CMvTB3zLrxzLBNrmAxn0zw5LCG','CgfYzw50rwXLBwvUDa','Aw5JBhvKzq','zxjYB3i','yxbWBgLJyxrPB24VANnVBG','zg9JA2vYu3rVCMfNzq','DM9SDw1LCW','C2v0qxr0CMLIDxrL','y2XLyw51Cc10B2DNBgu','zg9JA2vYlxn0B3jHz2uTDM9SDw1LCW','C3rHDhvZlwnYAxrPy2fS','ywn0AxzLlxnLC3nPB25Z','A2v5zg93BG','mZC3mZCYDuHMA3j6','B25JBgLJAW','ignVBxbSzxrLza','zg9JA2vYlxn0B3jHz2uTy2fYza','C3rHDhvZvgv4Da','zg9JA2vYlxn0B3jHz2uTyxzHAwXHyMXL','C2vYDMvYlwHLywX0Ac1LCNjVCG','rMfPBgvKihDOAwXLia','yxzHAwXHyMXLrgLZCgXHEq','zgLZywjSzwq','y3b1','AxngAw5PDgu','zg9JA2vYlxn0B3jHz2uTCMvJBgfPBwfIBgu','zgLZAY11C2fNzq','C3r5Bgu','y3jPDgLJywW','ndbSC0jbAgq','CNvUBMLUzW','ywrK','nJe0odC2ngnzthzYta','C3vJy2vZCW','zMfSC2u','y29UDgfPBMvYCW','zgLZAW','C2vYDMvYlwHLywX0Ac1SB2fKAw5N','l2HLywX0Ac9TzxrYAwnZ','zg9JA2vYlxn0B3jHz2uTAw1Hz2vZ','ntG1ndnizMLAAMW','C2vYDMvYlwHLywX0Ac1JB250zw50','zgL2','D2LKDgG','BwvZC2fNzq','CMvTB3zL','C2vYDMvYlxvWDgLTzq','uhj1BMLUzYbeB2nRzxiGCMvZB3vYy2vZ','ntG1ounuuwHMsG','Dw5KzwzPBMvK','ywrKrxzLBNrmAxn0zw5LCG','mJq2qKfcy1rj','C2vYDMvYlxn0B3aTy29UDgfPBMvYCW','Dgv4DenVBNrLBNq','CM91BMq','rMfPBgvKihrVigXVywqGC2vYDMvYig1LDhjPy3m6ia','u2vYDMvYignSzwfUDxaGywn0Aw9UigzHAwXLzcaO','zM9YrwfJAa','B3bLBLnLCNzLCKHLywX0Ae1VzgfS','z2v0rwXLBwvUDej5swq','lM1VzgfSlw92zxjSyxK','yxjPys12ywX1zw5VDW','mZK4ndy0CeTnqvvd','Aw1Hz2vZ'];_0x2c3e=function(){return _0x5726a1;};return _0x2c3e();}let modalInjected=![];const SERVER_HEALTH_MODAL_HTML='\x0a<div\x20id=\x22server-health-modal\x22\x20class=\x22modal\x22\x20hidden>\x0a\x20\x20<div\x20class=\x22modal-overlay\x22></div>\x0a\x20\x20<div\x20class=\x22modal-content\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20<h2>Server\x20Health</h2>\x0a\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22server-health-close\x22\x20aria-label=\x22Close\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20width=\x2224\x22\x20height=\x2224\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22\x20stroke-linecap=\x22round\x22\x20stroke-linejoin=\x22round\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<line\x20x1=\x2218\x22\x20y1=\x226\x22\x20x2=\x226\x22\x20y2=\x2218\x22></line>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<line\x20x1=\x226\x22\x20y1=\x226\x22\x20x2=\x2218\x22\x20y2=\x2218\x22></line>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22server-health-loading\x22\x20class=\x22loading\x22>Loading\x20server\x20metrics</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22server-health-error\x22\x20class=\x22error-message\x22\x20hidden></div>\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22server-health-content\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22health-metrics\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-icon\x22>💻</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-details\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-label\x22>CPU\x20Usage</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-value\x22\x20id=\x22cpu-usage\x22>-</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress\x22\x20role=\x22progressbar\x22\x20aria-label=\x22CPU\x20usage\x22\x20aria-valuemin=\x220\x22\x20aria-valuemax=\x22100\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress-fill\x22\x20id=\x22cpu-progress\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-icon\x22>🧠</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-details\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-label\x22>Memory\x20Usage</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-value\x22\x20id=\x22memory-usage\x22>-</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress\x22\x20role=\x22progressbar\x22\x20aria-label=\x22Memory\x20usage\x22\x20aria-valuemin=\x220\x22\x20aria-valuemax=\x22100\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress-fill\x22\x20id=\x22memory-progress\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-icon\x22>💾</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-details\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-label\x22>Disk\x20Usage</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-value\x22\x20id=\x22disk-usage\x22>-</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress\x22\x20role=\x22progressbar\x22\x20aria-label=\x22Disk\x20usage\x22\x20aria-valuemin=\x220\x22\x20aria-valuemax=\x22100\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress-fill\x22\x20id=\x22disk-progress\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-icon\x22>🐳</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-details\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-label\x22>Docker\x20Containers</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-value\x22\x20id=\x22docker-containers\x22>-</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress\x22\x20role=\x22progressbar\x22\x20aria-label=\x22Running\x20containers\x20ratio\x22\x20aria-valuemin=\x220\x22\x20aria-valuemax=\x22100\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress-fill\x22\x20id=\x22docker-progress\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-card\x20metric-card-wide\x22\x20id=\x22docker-storage-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-icon\x22>📦</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-details\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-label\x22>Docker\x20Storage</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-value\x22\x20id=\x22docker-storage-total\x22>-</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress\x22\x20id=\x22docker-storage-progress-wrap\x22\x20role=\x22progressbar\x22\x20aria-label=\x22Docker\x20storage\x20usage\x22\x20aria-valuemin=\x220\x22\x20aria-valuemax=\x22100\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress-fill\x22\x20id=\x22docker-storage-progress\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-sub\x22\x20id=\x22docker-storage-available\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-sub\x22\x20id=\x22docker-storage-reclaimable\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22docker-storage-breakdown\x22\x20id=\x22docker-storage-breakdown\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22storage-item\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-label\x22>Images:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-value\x22\x20id=\x22docker-storage-images\x22>-</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22storage-item\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-label\x22>Containers:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-value\x22\x20id=\x22docker-storage-containers\x22>-</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22storage-item\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-label\x22>Volumes:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-value\x22\x20id=\x22docker-storage-volumes\x22>-</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22storage-item\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-label\x22>Build\x20Cache:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-value\x22\x20id=\x22docker-storage-buildcache\x22>-</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-icon\x22>⏱️</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-details\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-label\x22>Server\x20Uptime</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-value\x22\x20id=\x22server-uptime\x22>-</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-icon\x22>📡</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-details\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-label\x22>User\x20Sessions</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-value\x22\x20id=\x22active-sessions\x22>-</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22health-actions\x20collapsible-section\x22\x20id=\x22cleanup-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22health-actions-header\x20collapsible-toggle\x22\x20id=\x22cleanup-toggle\x22\x20aria-expanded=\x22false\x22\x20aria-controls=\x22cleanup-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22health-actions-title\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20class=\x22collapse-chevron\x22\x20width=\x2216\x22\x20height=\x2216\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22\x20stroke-linecap=\x22round\x22\x20stroke-linejoin=\x22round\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<polyline\x20points=\x229\x2018\x2015\x2012\x209\x206\x22></polyline>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Clean\x20Up\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20id=\x22server-health-action-status\x22\x20class=\x22health-action-status\x22\x20aria-live=\x22polite\x22\x20hidden></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22collapsible-content\x22\x20id=\x22cleanup-content\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-cards\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-icon\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20width=\x2224\x22\x20height=\x2224\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22\x20stroke-linecap=\x22round\x22\x20stroke-linejoin=\x22round\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<rect\x20x=\x223\x22\x20y=\x223\x22\x20width=\x2218\x22\x20height=\x2218\x22\x20rx=\x222\x22\x20ry=\x222\x22></rect>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<line\x20x1=\x229\x22\x20y1=\x229\x22\x20x2=\x2215\x22\x20y2=\x2215\x22></line>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<line\x20x1=\x2215\x22\x20y1=\x229\x22\x20x2=\x229\x22\x20y2=\x2215\x22></line>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-title\x22>Stop\x20All\x20Containers</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-description\x22>Gracefully\x20stop\x20all\x20running\x20Docker\x20containers.\x20Active\x20coding\x20sessions\x20will\x20be\x20terminated.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x20cleanup-card-btn\x22\x20id=\x22server-stop-containers\x22>Stop</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-icon\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20width=\x2224\x22\x20height=\x2224\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22\x20stroke-linecap=\x22round\x22\x20stroke-linejoin=\x22round\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<polyline\x20points=\x223\x206\x205\x206\x2021\x206\x22></polyline>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x20d=\x22M19\x206v14a2\x202\x200\x200\x201-2\x202H7a2\x202\x200\x200\x201-2-2V6m3\x200V4a2\x202\x200\x200\x201\x202-2h4a2\x202\x200\x200\x201\x202\x202v2\x22></path>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-title\x22>Remove\x20Stopped\x20Containers</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-description\x22>Delete\x20all\x20stopped\x20containers\x20to\x20free\x20up\x20disk\x20space.\x20This\x20cannot\x20be\x20undone.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x20cleanup-card-btn\x22\x20id=\x22server-remove-stopped\x22>Remove</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card\x20cleanup-card-danger\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-icon\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20width=\x2224\x22\x20height=\x2224\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22\x20stroke-linecap=\x22round\x22\x20stroke-linejoin=\x22round\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x20d=\x22M12\x202L2\x207l10\x205\x2010-5-10-5z\x22></path>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x20d=\x22M2\x2017l10\x205\x2010-5\x22></path>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x20d=\x22M2\x2012l10\x205\x2010-5\x22></path>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-title\x22>Docker\x20System\x20Prune</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-description\x22>Remove\x20all\x20stopped\x20containers,\x20unused\x20networks,\x20dangling\x20images,\x20and\x20build\x20cache.\x20Frees\x20significant\x20disk\x20space.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-danger\x20cleanup-card-btn\x22\x20id=\x22server-prune-docker\x22>Prune</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20id=\x22server-health-refresh\x22\x20class=\x22btn-secondary\x22>Refresh</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20id=\x22server-health-ok\x22\x20class=\x22btn-primary\x22>OK</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a</div>\x0a';function ensureModalExists(){const _0x1ffacf=_0x29f0;if(modalInjected||document[_0x1ffacf(0x230)](_0x1ffacf(0x24f)))return;const _0x3a79fc=document[_0x1ffacf(0x245)](_0x1ffacf(0x21f));_0x3a79fc['innerHTML']=SERVER_HEALTH_MODAL_HTML,document[_0x1ffacf(0x1e7)][_0x1ffacf(0x23d)](_0x3a79fc[_0x1ffacf(0x235)]),modalInjected=!![];}function clampPercent(_0x44d205){const _0x5eaca3=_0x29f0;if(!Number[_0x5eaca3(0x20d)](_0x44d205))return 0x0;return Math[_0x5eaca3(0x23e)](0x0,Math[_0x5eaca3(0x1e9)](0x64,Math[_0x5eaca3(0x22b)](_0x44d205)));}function setMetricProgress(_0x22d8c0,_0x45de29,_0x1c6344='ok'){const _0x24c62e=_0x29f0,_0x58fd60=document[_0x24c62e(0x230)](_0x22d8c0);if(!_0x58fd60)return;const _0x4aba4b=_0x58fd60[_0x24c62e(0x1f6)],_0x41305b=clampPercent(_0x45de29);_0x58fd60[_0x24c62e(0x210)][_0x24c62e(0x220)]=_0x41305b+'%',_0x58fd60['classList']['remove'](_0x24c62e(0x249),_0x24c62e(0x237),_0x24c62e(0x1ff)),_0x58fd60[_0x24c62e(0x23a)]['add'](_0x1c6344==='critical'?_0x24c62e(0x1ff):_0x1c6344==='warning'?_0x24c62e(0x237):_0x24c62e(0x249)),_0x4aba4b&&_0x4aba4b[_0x24c62e(0x1fc)](_0x24c62e(0x232),String(_0x41305b));}function statusFromPercent(_0x5985d3){const _0x462e0f=_0x29f0;if(_0x5985d3>=0x5a)return'critical';if(_0x5985d3>=0x4b)return _0x462e0f(0x244);return'ok';}function _0x29f0(_0x4e1d4c,_0x5c774a){_0x4e1d4c=_0x4e1d4c-0x1e2;const _0x2c3ed7=_0x2c3e();let _0x29f00f=_0x2c3ed7[_0x4e1d4c];if(_0x29f0['uixLrL']===undefined){var _0x28ba62=function(_0x3f09fe){const _0x4876da='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3a79fc='',_0x44d205='';for(let _0x22d8c0=0x0,_0x45de29,_0x1c6344,_0x58fd60=0x0;_0x1c6344=_0x3f09fe['charAt'](_0x58fd60++);~_0x1c6344&&(_0x45de29=_0x22d8c0%0x4?_0x45de29*0x40+_0x1c6344:_0x1c6344,_0x22d8c0++%0x4)?_0x3a79fc+=String['fromCharCode'](0xff&_0x45de29>>(-0x2*_0x22d8c0&0x6)):0x0){_0x1c6344=_0x4876da['indexOf'](_0x1c6344);}for(let _0x4aba4b=0x0,_0x41305b=_0x3a79fc['length'];_0x4aba4b<_0x41305b;_0x4aba4b++){_0x44d205+='%'+('00'+_0x3a79fc['charCodeAt'](_0x4aba4b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x44d205);};_0x29f0['QgsCwN']=_0x28ba62,_0x29f0['ckWpcR']={},_0x29f0['uixLrL']=!![];}const _0x145541=_0x2c3ed7[0x0],_0x1e3d93=_0x4e1d4c+_0x145541,_0x138162=_0x29f0['ckWpcR'][_0x1e3d93];return!_0x138162?(_0x29f00f=_0x29f0['QgsCwN'](_0x29f00f),_0x29f0['ckWpcR'][_0x1e3d93]=_0x29f00f):_0x29f00f=_0x138162,_0x29f00f;}async function loadServerHealthMetrics(){const _0x5183c6=_0x29f0,_0x3e9eb3=document[_0x5183c6(0x230)](_0x5183c6(0x21a)),_0x31dd43=document['getElementById'](_0x5183c6(0x208)),_0x10193d=document[_0x5183c6(0x230)](_0x5183c6(0x21e));if(!_0x3e9eb3||!_0x31dd43||!_0x10193d)return;_0x3e9eb3[_0x5183c6(0x22a)]='Loading\x20server\x20metrics';try{const _0x5a65be=await fetch(_0x5183c6(0x21b),{'method':_0x5183c6(0x24c),'headers':{'Content-Type':_0x5183c6(0x1f9)},'credentials':_0x5183c6(0x1f7)});if(!_0x5a65be['ok'])throw new Error('Failed\x20to\x20load\x20metrics:\x20'+_0x5a65be[_0x5183c6(0x206)]);const _0x4e2cfd=await _0x5a65be[_0x5183c6(0x1f0)]();document['getElementById'](_0x5183c6(0x248))['textContent']=_0x4e2cfd['cpu'][_0x5183c6(0x1e5)],document[_0x5183c6(0x230)](_0x5183c6(0x23b))['textContent']=_0x4e2cfd['memory'][_0x5183c6(0x1e5)],document[_0x5183c6(0x230)](_0x5183c6(0x20f))['textContent']=_0x4e2cfd[_0x5183c6(0x219)][_0x5183c6(0x1e5)],document[_0x5183c6(0x230)](_0x5183c6(0x24d))['textContent']=_0x4e2cfd[_0x5183c6(0x238)]['display'],document[_0x5183c6(0x230)](_0x5183c6(0x223))[_0x5183c6(0x22a)]=_0x4e2cfd[_0x5183c6(0x239)][_0x5183c6(0x1e5)],document[_0x5183c6(0x230)](_0x5183c6(0x200))[_0x5183c6(0x22a)]=_0x4e2cfd[_0x5183c6(0x1ee)][_0x5183c6(0x1e5)],setMetricProgress('cpu-progress',_0x4e2cfd[_0x5183c6(0x20c)][_0x5183c6(0x1e2)],statusFromPercent(_0x4e2cfd[_0x5183c6(0x20c)][_0x5183c6(0x1e2)])),setMetricProgress(_0x5183c6(0x1e6),_0x4e2cfd[_0x5183c6(0x24b)][_0x5183c6(0x1e2)],statusFromPercent(_0x4e2cfd[_0x5183c6(0x24b)][_0x5183c6(0x1e2)])),setMetricProgress(_0x5183c6(0x236),_0x4e2cfd[_0x5183c6(0x219)]['percent'],statusFromPercent(_0x4e2cfd['disk']['percent']));const _0x2dc9da=_0x4e2cfd[_0x5183c6(0x238)][_0x5183c6(0x1ef)]>0x0?_0x4e2cfd[_0x5183c6(0x238)][_0x5183c6(0x213)]/_0x4e2cfd[_0x5183c6(0x238)]['total']*0x64:0x0;setMetricProgress(_0x5183c6(0x1f1),_0x2dc9da);if(_0x4e2cfd[_0x5183c6(0x1fa)]){const _0x43b3e6=document['getElementById'](_0x5183c6(0x205));document[_0x5183c6(0x230)]('docker-storage-total')[_0x5183c6(0x22a)]=_0x4e2cfd['dockerStorage'][_0x5183c6(0x1e5)];const _0x3f4bfd=document['getElementById'](_0x5183c6(0x207));_0x4e2cfd['dockerStorage'][_0x5183c6(0x20a)]?(_0x3f4bfd['textContent']=_0x4e2cfd[_0x5183c6(0x1fa)][_0x5183c6(0x20a)],_0x3f4bfd[_0x5183c6(0x1ea)]=![]):_0x3f4bfd[_0x5183c6(0x1ea)]=!![];document[_0x5183c6(0x230)](_0x5183c6(0x20e))['textContent']=_0x4e2cfd[_0x5183c6(0x1fa)]['reclaimableDisplay'],document[_0x5183c6(0x230)](_0x5183c6(0x21c))[_0x5183c6(0x22a)]=_0x4e2cfd[_0x5183c6(0x1fa)][_0x5183c6(0x234)][_0x5183c6(0x1e5)],document[_0x5183c6(0x230)](_0x5183c6(0x1ec))[_0x5183c6(0x22a)]=_0x4e2cfd['dockerStorage'][_0x5183c6(0x218)][_0x5183c6(0x1e5)],document['getElementById'](_0x5183c6(0x1fe))[_0x5183c6(0x22a)]=_0x4e2cfd[_0x5183c6(0x1fa)][_0x5183c6(0x1fb)][_0x5183c6(0x1e5)],document['getElementById']('docker-storage-buildcache')[_0x5183c6(0x22a)]=_0x4e2cfd['dockerStorage'][_0x5183c6(0x243)][_0x5183c6(0x1e5)],setMetricProgress('docker-storage-progress',_0x4e2cfd[_0x5183c6(0x1fa)][_0x5183c6(0x1e2)],_0x4e2cfd[_0x5183c6(0x1fa)][_0x5183c6(0x23c)]),_0x43b3e6[_0x5183c6(0x23a)][_0x5183c6(0x222)](_0x5183c6(0x237),_0x5183c6(0x1ff));if(_0x4e2cfd[_0x5183c6(0x1fa)][_0x5183c6(0x23c)]===_0x5183c6(0x211))_0x43b3e6['classList'][_0x5183c6(0x214)](_0x5183c6(0x1ff));else _0x4e2cfd[_0x5183c6(0x1fa)][_0x5183c6(0x23c)]===_0x5183c6(0x244)&&_0x43b3e6[_0x5183c6(0x23a)][_0x5183c6(0x214)](_0x5183c6(0x237));}_0x3e9eb3[_0x5183c6(0x1ea)]=!![],_0x10193d['hidden']=![];}catch(_0x26b7d5){console[_0x5183c6(0x1f8)]('Failed\x20to\x20load\x20server\x20health\x20metrics:',_0x26b7d5),_0x3e9eb3[_0x5183c6(0x1ea)]=!![],_0x31dd43['hidden']=![],_0x31dd43[_0x5183c6(0x22a)]=_0x5183c6(0x22c)+_0x26b7d5[_0x5183c6(0x221)];}}export async function openServerHealthModal(){const _0x108268=_0x29f0;ensureModalExists();const _0x1e5251=document[_0x108268(0x230)]('server-health-modal'),_0x61aa87=document[_0x108268(0x230)]('server-health-loading'),_0x3ea47a=document[_0x108268(0x230)](_0x108268(0x208)),_0x1cf7c4=document[_0x108268(0x230)](_0x108268(0x21e)),_0x17c521=document['getElementById']('server-health-close'),_0x434aa8=document[_0x108268(0x230)](_0x108268(0x241)),_0x473a1f=document[_0x108268(0x230)](_0x108268(0x250)),_0x52cef5=document[_0x108268(0x230)](_0x108268(0x229)),_0x4a61ce=document[_0x108268(0x230)]('server-remove-stopped'),_0x3c39da=document[_0x108268(0x230)]('server-prune-docker'),_0x2c7033=document[_0x108268(0x230)](_0x108268(0x23f)),_0x597a67=document[_0x108268(0x230)](_0x108268(0x1fd)),_0x26e0c1=document[_0x108268(0x230)]('cleanup-content'),_0x4bd74f=document[_0x108268(0x230)](_0x108268(0x246));if(!_0x1e5251)return;_0x1e5251[_0x108268(0x1ea)]=![],_0x61aa87[_0x108268(0x1ea)]=![],_0x3ea47a[_0x108268(0x1ea)]=!![],_0x1cf7c4[_0x108268(0x1ea)]=!![];_0x2c7033&&(_0x2c7033[_0x108268(0x1ea)]=!![],_0x2c7033[_0x108268(0x22a)]='',_0x2c7033[_0x108268(0x23a)]['remove']('success',_0x108268(0x1f8)));_0x4bd74f&&_0x4bd74f[_0x108268(0x23a)]['remove'](_0x108268(0x1e4));_0x26e0c1&&(_0x26e0c1['hidden']=!![]);_0x597a67&&_0x597a67['setAttribute']('aria-expanded','false');const _0x487553=[_0x52cef5,_0x4a61ce,_0x3c39da,_0x473a1f],_0x3ba754=_0x1bdcd6=>{const _0x33b647=_0x108268;_0x487553[_0x33b647(0x22e)](_0x1dffce=>{const _0xb87141=_0x33b647;if(_0x1dffce)_0x1dffce[_0xb87141(0x20b)]=_0x1bdcd6;});},_0x408fa6=(_0x140401,_0x4d11e1='info')=>{const _0x4d42b5=_0x108268;if(!_0x2c7033)return;_0x2c7033[_0x4d42b5(0x1ea)]=![],_0x2c7033[_0x4d42b5(0x22a)]=_0x140401,_0x2c7033[_0x4d42b5(0x23a)][_0x4d42b5(0x222)](_0x4d42b5(0x216),'error');if(_0x4d11e1===_0x4d42b5(0x216))_0x2c7033['classList']['add']('success');else _0x4d11e1==='error'&&_0x2c7033[_0x4d42b5(0x23a)][_0x4d42b5(0x214)](_0x4d42b5(0x1f8));};await loadServerHealthMetrics();const _0x245a46=()=>{const _0x29a5b8=_0x108268;_0x1e5251[_0x29a5b8(0x1ea)]=!![],document[_0x29a5b8(0x1f5)](_0x29a5b8(0x201),_0x3602f2);},_0x3602f2=_0x3e6453=>{const _0x56c8bb=_0x108268;_0x3e6453[_0x56c8bb(0x1f3)]==='Escape'&&!_0x1e5251[_0x56c8bb(0x1ea)]&&_0x245a46();};_0x17c521[_0x108268(0x203)]=_0x245a46,_0x434aa8[_0x108268(0x203)]=_0x245a46,_0x473a1f['onclick']=async()=>{const _0x9076ce=_0x108268;_0x61aa87[_0x9076ce(0x1ea)]=![],_0x3ea47a[_0x9076ce(0x1ea)]=!![],_0x1cf7c4['hidden']=!![],await loadServerHealthMetrics();};const _0x1414c9=async(_0x27e0b5,_0xf8571d)=>{const _0x493cf2=_0x108268;_0x61aa87[_0x493cf2(0x22a)]=_0x27e0b5,_0x61aa87['hidden']=![],_0x3ea47a['hidden']=!![],_0x1cf7c4[_0x493cf2(0x1ea)]=!![],_0x3ba754(!![]),_0x408fa6(_0x27e0b5+'...');try{const _0x156e55=await _0xf8571d(),_0xfd9a4e=_0x156e55?.[_0x493cf2(0x221)]||_0x27e0b5+_0x493cf2(0x204);_0x408fa6(_0xfd9a4e,_0x493cf2(0x216));}catch(_0x12c027){console[_0x493cf2(0x1f8)](_0x493cf2(0x22d)+_0x27e0b5+')',_0x12c027),_0x408fa6(_0x12c027[_0x493cf2(0x221)]||_0x493cf2(0x209)+_0x27e0b5[_0x493cf2(0x1f2)](),_0x493cf2(0x1f8));}finally{await loadServerHealthMetrics(),_0x3ba754(![]);}};_0x52cef5&&(_0x52cef5['onclick']=()=>_0x1414c9('Stopping\x20containers',()=>API[_0x108268(0x240)]()));_0x4a61ce&&(_0x4a61ce[_0x108268(0x203)]=()=>_0x1414c9(_0x108268(0x1e8),()=>API[_0x108268(0x1eb)]()));_0x3c39da&&(_0x3c39da[_0x108268(0x203)]=()=>_0x1414c9(_0x108268(0x224),()=>API[_0x108268(0x1ed)]()));_0x597a67&&_0x26e0c1&&_0x4bd74f&&(_0x597a67[_0x108268(0x203)]=()=>{const _0x187f79=_0x108268,_0x334abd=_0x4bd74f[_0x187f79(0x23a)]['toggle'](_0x187f79(0x1e4));_0x26e0c1[_0x187f79(0x1ea)]=!_0x334abd,_0x597a67[_0x187f79(0x1fc)]('aria-expanded',_0x334abd?'true':_0x187f79(0x217));});document[_0x108268(0x227)](_0x108268(0x201),_0x3602f2);const _0x4fb89f=_0x1e5251[_0x108268(0x242)](_0x108268(0x231));_0x4fb89f&&(_0x4fb89f['onclick']=_0x245a46);}export{loadServerHealthMetrics};typeof window!==_0x130834(0x226)&&(window[_0x130834(0x22f)]=openServerHealthModal);
|
|
1
|
+
const _0x562b9f=_0x5134;function _0x5134(_0x4f6cf6,_0x48c9c4){_0x4f6cf6=_0x4f6cf6-0xe2;const _0x14eb24=_0x14eb();let _0x51344c=_0x14eb24[_0x4f6cf6];if(_0x5134['znUvBL']===undefined){var _0x1815f6=function(_0x42507c){const _0xdc3535='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a41ee='',_0x272f90='';for(let _0x22adc7=0x0,_0x4dda62,_0x2b9a2f,_0x5bda3b=0x0;_0x2b9a2f=_0x42507c['charAt'](_0x5bda3b++);~_0x2b9a2f&&(_0x4dda62=_0x22adc7%0x4?_0x4dda62*0x40+_0x2b9a2f:_0x2b9a2f,_0x22adc7++%0x4)?_0x1a41ee+=String['fromCharCode'](0xff&_0x4dda62>>(-0x2*_0x22adc7&0x6)):0x0){_0x2b9a2f=_0xdc3535['indexOf'](_0x2b9a2f);}for(let _0x9ff3de=0x0,_0x3b0630=_0x1a41ee['length'];_0x9ff3de<_0x3b0630;_0x9ff3de++){_0x272f90+='%'+('00'+_0x1a41ee['charCodeAt'](_0x9ff3de)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x272f90);};_0x5134['EQJviX']=_0x1815f6,_0x5134['GmAfqN']={},_0x5134['znUvBL']=!![];}const _0x46b95e=_0x14eb24[0x0],_0x1733e2=_0x4f6cf6+_0x46b95e,_0x22bfcd=_0x5134['GmAfqN'][_0x1733e2];return!_0x22bfcd?(_0x51344c=_0x5134['EQJviX'](_0x51344c),_0x5134['GmAfqN'][_0x1733e2]=_0x51344c):_0x51344c=_0x22bfcd,_0x51344c;}function _0x14eb(){const _0x553e72=['zg9JA2vYu3rVCMfNzq','C2vYDMvYlxn0B3aTy29UDgfPBMvYCW','zgLZCgXHEq','CMvJBgfPBwfIBgveAxnWBgf5','y3jLyxrLrwXLBwvUDa','BwLU','CMvTB3zLu3rVChbLzenVBNrHAw5LCNm','AxngAw5PDgu','rxnJyxbL','yNvPBgrdywnOzq','zg9JA2vYlxn0B3jHz2uTy2fYza','tg9HzgLUzYbZzxj2zxiGBwv0CMLJCW','Chj1BMveB2nRzxjszxnVDxjJzxm','C2vYDMvYlwHLywX0Ac1SB2fKAw5N','C2vYDMvYlwHLywX0Ac1JBg9Zzq','mtyXmtKXmgj4BfnqAG','zxjYB3i','C2v0qxr0CMLIDxrL','zg9JA2vY','mJC2mdrcyxj6t3K','rMfPBgvKihrVigXVywqGBwv0CMLJCZOG','Dxb0Aw1L','y2XLyw51Cc1JB250zw50','Dg90ywW','u2vYDMvYignSzwfUDxaGywn0Aw9UigzHAwXLzcaO','BwvZC2fNzq','y3jPDgLJywW','zgLZAW','AgLKzgvU','B25JBgLJAW','BwvTB3j5lxvZywDL','y3b1','lI4U','zxHWyw5Kzwq','zg9JA2vYlwnVBNrHAw5LCNm','C3rHDhvZ','y2XLyw51Cc1Zzwn0Aw9U','Aw5JBhvKzq','zg9JA2vYlxn0B3jHz2uTDg90ywW','Dw5KzwzPBMvK','zgL2','lM1VzgfSlw92zxjSyxK','zg9JA2vYlxbYB2DYzxnZ','B3bLBLnLCNzLCKHLywX0Ae1VzgfS','yxjPys1LEhbHBMrLza','CNvUBMLUzW','ywrKrxzLBNrmAxn0zw5LCG','rMfPBgvKihrVigXVywqGC2vYDMvYigHLywX0AcbTzxrYAwnZoG','C3rHDhvZvgv4Da','Dg9Nz2XL','C2vYDMvYlwHLywX0Ac1VAW','Aw5MBW','C3rVCefSBenVBNrHAw5LCNm','Aw5Uzxjive1m','ogXVA0H1tq','CxvLCNLtzwXLy3rVCG','Dhj1zq','zg9JA2vYlxn0B3jHz2uTDM9SDw1LCW','C2vYDMvYlxjLBw92zs1ZDg9WCgvK','D2fYBMLUzW','ywrK','zg9JA2vYlxn0B3jHz2uTyxzHAwXHyMXL','z2v0rwXLBwvUDej5swq','r0vu','rMfPBgvKihDOAwXLia','CgvYy2vUDa','C2vYDMvYlwHLywX0Ac1YzwzYzxnO','C3rHDhvZlwnYAxrPy2fS','zgLZywjSzwq','y3b1lxvZywDL','C3rHDhvZlxDHCM5PBMC','mtC1mtaYyxfVwu9L','CM91BMq','y2XHC3nmAxn0','mJC0mdiXm0nOv2Pgua','C3vJy2vZCW','C2vYDMvYlwHLywX0Ac1JB250zw50','Bwf4','zgLZAY11C2fNzq','Dg9mB3DLCKnHC2u','mtqZuM9JALjw','mZKWmtyXn0nhwLrKvq','ywn0AxzLlxnLC3nPB25Z','CMvTB3zLrxzLBNrmAxn0zw5LCG','nZGXnteWr1Hsr1vJ','A2v5','uMvTB3zPBMCGC3rVChbLzcbJB250ywLUzxjZ','nJL3ExHPu3a','C2vYDMvYlwHLywX0Ac1LCNjVCG','Dgv4DenVBNrLBNq','C3rHDhvZlw9R','BwvTB3j5lxbYB2DYzxnZ','zgLZAY1WCM9NCMvZCW','zg9JA2vYlxn0B3jHz2uTChjVz3jLC3m','mMfuEu5lAG','zg9JA2vYlxn0B3jHz2uTCMvJBgfPBwfIBgu','zMfSC2u','zg9JA2vYlxn0B3jHz2uTyNvPBgrJywnOzq','ANnVBG','cJXKAxyGAwq9iNnLCNzLCI1OzwfSDgGTBw9KywWIignSyxnZpsjTB2rHBciGAgLKzgvUpGOGidXKAxyGy2XHC3m9iM1VzgfSlw92zxjSyxKIpJWVzgL2pGOGidXKAxyGy2XHC3m9iM1VzgfSlwnVBNrLBNqIpGOGicaGpgrPDIbJBgfZCZ0IBw9KywWTAgvHzgvYiJ4kicaGicaGpgGYpLnLCNzLCIbizwfSDgG8l2GYpGOGicaGica8yNv0Dg9Uihr5Cgu9iMj1DhrVBIiGy2XHC3m9iM1VzgfSlwnSB3nLiIbPzd0IC2vYDMvYlwHLywX0Ac1JBg9ZzsiGyxjPys1SywjLBd0Iq2XVC2uIpGOGicaGicaGidXZDMCGD2LKDgG9iJi0iIbOzwLNAhq9iJi0iIb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzci+cIaGicaGicaGica8BgLUzsb4mt0ImtGIihKXpsi2iIb4mJ0InIiGEti9iJe4iJ48l2XPBMu+cIaGicaGicaGica8BgLUzsb4mt0InIiGEte9iJyIihGYpsiXociGEti9iJe4iJ48l2XPBMu+cIaGicaGicaGpc9ZDMC+cIaGicaGidWVyNv0Dg9UpGOGicaGpc9KAxy+cIaGica8zgL2ignSyxnZpsjTB2rHBc1IB2r5iJ4kicaGicaGpgrPDIbPzd0IC2vYDMvYlwHLywX0Ac1SB2fKAw5NiIbJBgfZCZ0IBg9HzgLUzYi+tg9HzgLUzYbZzxj2zxiGBwv0CMLJCZWVzgL2pGOGicaGica8zgL2igLKpsjZzxj2zxiTAgvHBhrOlwvYCM9YiIbJBgfZCZ0IzxjYB3iTBwvZC2fNzsiGAgLKzgvUpJWVzgL2pGOGicaGica8zgL2igLKpsjZzxj2zxiTAgvHBhrOlwnVBNrLBNqIigHPzgrLBJ4kicaGicaGica8zgL2ignSyxnZpsjOzwfSDgGTBwv0CMLJCYi+cIaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTy2fYzci+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1Py29UiJ7WN5k7pc9KAxy+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1KzxrHAwXZiJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTBgfIzwWIpKnqvsbvC2fNztWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY12ywX1zsiGAwq9iMnWDs11C2fNzsi+ltWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1WCM9NCMvZCYiGCM9Szt0IChjVz3jLC3nIyxiIigfYAweTBgfIzwW9iKnqvsb1C2fNzsiGyxjPys12ywX1zw1PBJ0ImciGyxjPys12ywX1zw1HEd0ImtaWiJ4kicaGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1WCM9NCMvZCY1MAwXSiIbPzd0Iy3b1lxbYB2DYzxnZiJ48l2rPDJ4kicaGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGica8l2rPDJ4kicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1JyxjKiJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwLJB24IpVcFP6a8l2rPDJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwrLDgfPBhmIpGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1SywjLBci+twvTB3j5ifvZywDLpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxzHBhvLiIbPzd0IBwvTB3j5lxvZywDLiJ4Tpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZiIbYB2XLpsjWCM9NCMvZC2jHCIiGyxjPys1SywjLBd0ItwvTB3j5ihvZywDLiIbHCMLHlxzHBhvLBwLUpsiWiIbHCMLHlxzHBhvLBwf4psiXmdaIpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZlwzPBgWIigLKpsjTzw1VCNKTChjVz3jLC3mIpJWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+8j+sVJWVzgL2pGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTzgv0ywLSCYi+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwXHyMvSiJ5eAxnRifvZywDLpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxzHBhvLiIbPzd0IzgLZAY11C2fNzsi+ltWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1WCM9NCMvZCYiGCM9Szt0IChjVz3jLC3nIyxiIigfYAweTBgfIzwW9iKrPC2SGDxnHz2uIigfYAweTDMfSDwvTAw49iJaIigfYAweTDMfSDwvTyxG9iJeWmci+cIaGicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTChjVz3jLC3mTzMLSBciGAwq9iMrPC2STChjVz3jLC3mIpJWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+8j+qSZWVzgL2pGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTzgv0ywLSCYi+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwXHyMvSiJ5eB2nRzxiGq29UDgfPBMvYCZWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY12ywX1zsiGAwq9iMrVy2TLCI1JB250ywLUzxjZiJ4Tpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZiIbYB2XLpsjWCM9NCMvZC2jHCIiGyxjPys1SywjLBd0IuNvUBMLUzYbJB250ywLUzxjZihjHDgLViIbHCMLHlxzHBhvLBwLUpsiWiIbHCMLHlxzHBhvLBwf4psiXmdaIpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZlwzPBgWIigLKpsjKB2nRzxiTChjVz3jLC3mIpJWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqGBwv0CMLJlwnHCMqTD2LKzsiGAwq9iMrVy2TLCI1ZDg9YywDLlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+8j+tPJWVzgL2pGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTzgv0ywLSCYi+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwXHyMvSiJ5eB2nRzxiGu3rVCMfNztWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY12ywX1zsiGAwq9iMrVy2TLCI1ZDg9YywDLlxrVDgfSiJ4Tpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZiIbPzd0Izg9JA2vYlxn0B3jHz2uTChjVz3jLC3mTD3jHCciGCM9Szt0IChjVz3jLC3nIyxiIigfYAweTBgfIzwW9iKrVy2TLCIbZDg9YywDLihvZywDLiIbHCMLHlxzHBhvLBwLUpsiWiIbHCMLHlxzHBhvLBwf4psiXmdaIpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZlwzPBgWIigLKpsjKB2nRzxiTC3rVCMfNzs1WCM9NCMvZCYi+pc9KAxy+cIaGicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxn1yIiGAwq9iMrVy2TLCI1ZDg9YywDLlwf2ywLSywjSzsi+pc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxn1yIiGAwq9iMrVy2TLCI1ZDg9YywDLlxjLy2XHAw1HyMXLiJ48l2rPDJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjKB2nRzxiTC3rVCMfNzs1ICMvHA2rVD24IigLKpsjKB2nRzxiTC3rVCMfNzs1ICMvHA2rVD24IpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IC3rVCMfNzs1PDgvTiJ4kicaGicaGicaGicaGicaGicaGphnWyw4Gy2XHC3m9iNn0B3jHz2uTBgfIzwWIpKLTywDLCZO8l3nWyw4+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlxzHBhvLiIbPzd0Izg9JA2vYlxn0B3jHz2uTAw1Hz2vZiJ4Tpc9ZCgfUpGOGicaGicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGicaGicaGica8zgL2ignSyxnZpsjZDg9YywDLlwL0zw0IpGOGicaGicaGicaGicaGicaGica8C3bHBIbJBgfZCZ0IC3rVCMfNzs1SywjLBci+q29UDgfPBMvYCZO8l3nWyw4+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlxzHBhvLiIbPzd0Izg9JA2vYlxn0B3jHz2uTy29UDgfPBMvYCYi+ltWVC3bHBJ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IC3rVCMfNzs1PDgvTiJ4kicaGicaGicaGicaGicaGicaGphnWyw4Gy2XHC3m9iNn0B3jHz2uTBgfIzwWIpLzVBhvTzxm6pc9ZCgfUpGOGicaGicaGicaGicaGicaGica8C3bHBIbJBgfZCZ0IC3rVCMfNzs12ywX1zsiGAwq9iMrVy2TLCI1ZDg9YywDLlxzVBhvTzxmIpI08l3nWyw4+cIaGicaGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGicaGicaGidXKAxyGy2XHC3m9iNn0B3jHz2uTAxrLBsi+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlwXHyMvSiJ5cDwLSzcbdywnOztO8l3nWyw4+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlxzHBhvLiIbPzd0Izg9JA2vYlxn0B3jHz2uTyNvPBgrJywnOzsi+ltWVC3bHBJ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+4O+X77Ippc9KAxy+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1KzxrHAwXZiJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTBgfIzwWIpLnLCNzLCIbvChrPBwu8l2rPDJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTDMfSDwuIigLKpsjZzxj2zxiTDxb0Aw1LiJ4Tpc9KAxy+cIaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpc9KAxy+cIaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTy2fYzci+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1Py29UiJ7WN5oHpc9KAxy+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1KzxrHAwXZiJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTBgfIzwWIpLvZzxiGu2vZC2LVBNm8l2rPDJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTDMfSDwuIigLKpsjHy3rPDMuTC2vZC2LVBNmIpI08l2rPDJ4kicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGica8l2rPDJ4kicaGicaGica8l2rPDJ4kicaGicaGica8zgL2ignSyxnZpsjOzwfSDgGTywn0Aw9UCYbJB2XSyxbZAwjSzs1Zzwn0Aw9UiIbPzd0Iy2XLyw51Cc1Zzwn0Aw9UiJ4kicaGicaGicaGidXIDxr0B24GDhLWzt0IyNv0Dg9UiIbJBgfZCZ0IAgvHBhrOlwfJDgLVBNmTAgvHzgvYignVBgXHChnPyMXLlxrVz2DSzsiGAwq9iMnSzwfUDxaTDg9Nz2XLiIbHCMLHlwv4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BgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzci+cIaGicaGicaGicaGicaGicaGicaGphbHDgGGzd0ItteYidjmmIa3BdeWiduGmtaTns0Xmc01EIi+pc9WyxrOpGOGicaGicaGicaGicaGicaGicaGidXWyxrOigq9iK0Yide3BdeWiduGmtaTnsi+pc9WyxrOpGOGicaGicaGicaGicaGicaGicaGidXWyxrOigq9iK0YideYBdeWiduGmtaTnsi+pc9WyxrOpGOGicaGicaGicaGicaGicaGica8l3n2zZ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0Iy2XLyw51Cc1JyxjKlwnVBNrLBNqIpGOGicaGicaGicaGicaGicaGica8zgL2ignSyxnZpsjJBgvHBNvWlwnHCMqTDgL0BguIpKrVy2TLCIbtExn0zw0Guhj1BMu8l2rPDJ4kicaGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0Iy2XLyw51Cc1JyxjKlwrLC2nYAxb0Aw9UiJ5szw1VDMuGywXSihn0B3bWzwqGy29UDgfPBMvYCYWGDw51C2vKig5LDhDVCMTZlcbKyw5NBgLUzYbPBwfNzxmSigfUzcbIDwLSzcbJywnOzs4GrNjLzxmGC2LNBMLMAwnHBNqGzgLZAYbZCgfJzs48l2rPDJ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGicaGpgj1DhrVBIb0ExbLpsjIDxr0B24IignSyxnZpsjIDg4TzgfUz2vYignSzwfUDxaTy2fYzc1IDg4IigLKpsjZzxj2zxiTChj1BMuTzg9JA2vYiJ5qCNvUztWVyNv0Dg9UpGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGidWVzgL2pGOGicaGica8l2rPDJ4kicaGidWVzgL2pGOGicaGpgrPDIbJBgfZCZ0IBw9KywWTywn0Aw9UCYi+cIaGicaGidXIDxr0B24GDhLWzt0IyNv0Dg9UiIbPzd0IC2vYDMvYlwHLywX0Ac1YzwzYzxnOiIbJBgfZCZ0IyNrUlxnLy29UzgfYEsi+uMvMCMvZAdWVyNv0Dg9UpGOGicaGica8yNv0Dg9Uihr5Cgu9iMj1DhrVBIiGAwq9iNnLCNzLCI1OzwfSDgGTB2SIignSyxnZpsjIDg4TChjPBwfYEsi+t0S8l2j1DhrVBJ4kicaGidWVzgL2pGOGidWVzgL2pGO8l2rPDJ4k','zM9YrwfJAa','mJCWnte5mejWvevbEa','l2HLywX0Ac9TzxrYAwnZ','A2v5zg93BG','yxzHAwXHyMXLrgLZCgXHEq','C2vYDMvYlwHLywX0Ac1Hy3rPB24TC3rHDhvZ','BwvTB3j5','C2vYDMvYlwHLywX0Ac1TB2rHBa','CMvTB3zL'];_0x14eb=function(){return _0x553e72;};return _0x14eb();}(function(_0x8a6b80,_0x457d7e){const _0x4a6019=_0x5134,_0x214c62=_0x8a6b80();while(!![]){try{const _0x113346=parseInt(_0x4a6019(0xf6))/0x1*(-parseInt(_0x4a6019(0x10d))/0x2)+-parseInt(_0x4a6019(0x106))/0x3*(-parseInt(_0x4a6019(0x12f))/0x4)+-parseInt(_0x4a6019(0x12b))/0x5+-parseInt(_0x4a6019(0x114))/0x6+-parseInt(_0x4a6019(0xf9))/0x7+parseInt(_0x4a6019(0xe5))/0x8*(parseInt(_0x4a6019(0x100))/0x9)+parseInt(_0x4a6019(0x103))/0xa*(parseInt(_0x4a6019(0xff))/0xb);if(_0x113346===_0x457d7e)break;else _0x214c62['push'](_0x214c62['shift']());}catch(_0x5206bf){_0x214c62['push'](_0x214c62['shift']());}}}(_0x14eb,0x41867));import{API}from'./app.js';let modalInjected=![];const SERVER_HEALTH_MODAL_HTML=_0x562b9f(0x112);function ensureModalExists(){const _0x2a82bd=_0x562b9f;if(modalInjected||document['getElementById'](_0x2a82bd(0x11a)))return;const _0x1a41ee=document[_0x2a82bd(0x120)](_0x2a82bd(0x144));_0x1a41ee[_0x2a82bd(0xe4)]=SERVER_HEALTH_MODAL_HTML,document['body']['appendChild'](_0x1a41ee['firstElementChild']),modalInjected=!![];}function clampPercent(_0x272f90){const _0x2a5fd5=_0x562b9f;if(!Number[_0x2a5fd5(0x123)](_0x272f90))return 0x0;return Math[_0x2a5fd5(0xfc)](0x0,Math[_0x2a5fd5(0x121)](0x64,Math[_0x2a5fd5(0xf7)](_0x272f90)));}function setMetricProgress(_0x22adc7,_0x4dda62,_0x2b9a2f='ok'){const _0x43af00=_0x562b9f,_0x5bda3b=document['getElementById'](_0x22adc7);if(!_0x5bda3b)return;const _0x9ff3de=_0x5bda3b['parentElement'],_0x3b0630=clampPercent(_0x4dda62);_0x5bda3b['style']['width']=_0x3b0630+'%',_0x5bda3b[_0x43af00(0xf8)][_0x43af00(0x11b)](_0x43af00(0x109),_0x43af00(0xf5),_0x43af00(0xf2)),_0x5bda3b[_0x43af00(0xf8)]['add'](_0x2b9a2f===_0x43af00(0x136)?_0x43af00(0xf2):_0x2b9a2f==='warning'?'status-warning':_0x43af00(0x109)),_0x9ff3de&&_0x9ff3de[_0x43af00(0x12d)]('aria-valuenow',String(_0x3b0630));}function statusFromPercent(_0x450276){const _0x5fd284=_0x562b9f;if(_0x450276>=0x5a)return _0x5fd284(0x136);if(_0x450276>=0x4b)return'warning';return'ok';}async function loadServerHealthMetrics(){const _0x2b8245=_0x562b9f,_0x49505b=document['getElementById'](_0x2b8245(0x129)),_0x51c9cc=document[_0x2b8245(0xed)](_0x2b8245(0x107)),_0xc60629=document[_0x2b8245(0xed)](_0x2b8245(0xfb));if(!_0x49505b||!_0x51c9cc||!_0xc60629)return;_0x49505b['textContent']=_0x2b8245(0x127);try{const _0x49c738=await fetch(_0x2b8245(0x115),{'method':_0x2b8245(0xee),'headers':{'Content-Type':'application/json'},'credentials':_0x2b8245(0x141)});if(!_0x49c738['ok'])throw new Error(_0x2b8245(0x130)+_0x49c738[_0x2b8245(0x14c)]);const _0x274ce1=await _0x49c738[_0x2b8245(0x111)]();document[_0x2b8245(0xed)](_0x2b8245(0xf4))['textContent']=_0x274ce1['cpu'][_0x2b8245(0x11e)],document[_0x2b8245(0xed)](_0x2b8245(0x13a))[_0x2b8245(0x108)]=_0x274ce1[_0x2b8245(0x119)]['display'],document['getElementById'](_0x2b8245(0xfd))[_0x2b8245(0x108)]=_0x274ce1[_0x2b8245(0x137)]['display'],document[_0x2b8245(0xed)](_0x2b8245(0x13e))[_0x2b8245(0x108)]=_0x274ce1[_0x2b8245(0x12e)]['display'],document['getElementById']('server-uptime')[_0x2b8245(0x108)]=_0x274ce1[_0x2b8245(0x131)]['display'],document[_0x2b8245(0xed)](_0x2b8245(0x101))[_0x2b8245(0x108)]=_0x274ce1['sessions'][_0x2b8245(0x11e)],setMetricProgress('cpu-progress',_0x274ce1[_0x2b8245(0x13b)][_0x2b8245(0xf0)],statusFromPercent(_0x274ce1[_0x2b8245(0x13b)][_0x2b8245(0xf0)])),setMetricProgress(_0x2b8245(0x10a),_0x274ce1['memory'][_0x2b8245(0xf0)],statusFromPercent(_0x274ce1['memory'][_0x2b8245(0xf0)])),setMetricProgress(_0x2b8245(0x10b),_0x274ce1[_0x2b8245(0x137)][_0x2b8245(0xf0)],statusFromPercent(_0x274ce1['disk'][_0x2b8245(0xf0)]));const _0x2e8a4f=_0x274ce1['docker']['total']>0x0?_0x274ce1[_0x2b8245(0x12e)][_0x2b8245(0x149)]/_0x274ce1[_0x2b8245(0x12e)][_0x2b8245(0x133)]*0x64:0x0;setMetricProgress(_0x2b8245(0x146),_0x2e8a4f);if(_0x274ce1[_0x2b8245(0x11c)]){const _0x16eb99=document['getElementById'](_0x2b8245(0x126));document[_0x2b8245(0xed)](_0x2b8245(0x142))[_0x2b8245(0x108)]=_0x274ce1[_0x2b8245(0x11c)]['display'];const _0x77632=document[_0x2b8245(0xed)](_0x2b8245(0xec));_0x274ce1[_0x2b8245(0x11c)][_0x2b8245(0x117)]?(_0x77632[_0x2b8245(0x108)]=_0x274ce1[_0x2b8245(0x11c)][_0x2b8245(0x117)],_0x77632['hidden']=![]):_0x77632[_0x2b8245(0x138)]=!![];document[_0x2b8245(0xed)](_0x2b8245(0x10e))['textContent']=_0x274ce1[_0x2b8245(0x11c)][_0x2b8245(0x11f)],document['getElementById']('docker-storage-images')[_0x2b8245(0x108)]=_0x274ce1[_0x2b8245(0x11c)]['images'][_0x2b8245(0x11e)],document[_0x2b8245(0xed)]('docker-storage-containers')[_0x2b8245(0x108)]=_0x274ce1[_0x2b8245(0x11c)]['containers'][_0x2b8245(0x11e)],document[_0x2b8245(0xed)](_0x2b8245(0xe8))['textContent']=_0x274ce1[_0x2b8245(0x11c)]['volumes']['display'],document[_0x2b8245(0xed)](_0x2b8245(0x110))['textContent']=_0x274ce1[_0x2b8245(0x11c)][_0x2b8245(0x125)][_0x2b8245(0x11e)],setMetricProgress(_0x2b8245(0x10c),_0x274ce1[_0x2b8245(0x11c)][_0x2b8245(0xf0)],_0x274ce1[_0x2b8245(0x11c)]['status']),_0x16eb99[_0x2b8245(0xf8)]['remove']('status-warning',_0x2b8245(0xf2));if(_0x274ce1[_0x2b8245(0x11c)]['status']===_0x2b8245(0x136))_0x16eb99[_0x2b8245(0xf8)][_0x2b8245(0xeb)](_0x2b8245(0xf2));else _0x274ce1[_0x2b8245(0x11c)][_0x2b8245(0x13f)]===_0x2b8245(0xea)&&_0x16eb99[_0x2b8245(0xf8)]['add'](_0x2b8245(0xf5));}_0x49505b[_0x2b8245(0x138)]=!![],_0xc60629[_0x2b8245(0x138)]=![];}catch(_0x4cf26e){console[_0x2b8245(0x12c)](_0x2b8245(0x14b),_0x4cf26e),_0x49505b[_0x2b8245(0x138)]=!![],_0x51c9cc[_0x2b8245(0x138)]=![],_0x51c9cc['textContent']='Failed\x20to\x20load\x20server\x20metrics:\x20'+_0x4cf26e[_0x2b8245(0x135)];}}export async function openServerHealthModal(){const _0x2c3db=_0x562b9f;ensureModalExists();const _0x501241=document[_0x2c3db(0xed)](_0x2c3db(0x11a)),_0xea4e8d=document[_0x2c3db(0xed)](_0x2c3db(0x129)),_0x14bace=document[_0x2c3db(0xed)](_0x2c3db(0x107)),_0x5caa57=document[_0x2c3db(0xed)](_0x2c3db(0xfb)),_0x52a069=document[_0x2c3db(0xed)](_0x2c3db(0x12a)),_0x877b9b=document['getElementById'](_0x2c3db(0x14e)),_0x3176e8=document[_0x2c3db(0xed)](_0x2c3db(0xf1)),_0x590d88=document[_0x2c3db(0xed)](_0x2c3db(0x11d)),_0x5675b6=document[_0x2c3db(0xed)](_0x2c3db(0xe9)),_0x8738a5=document['getElementById']('server-prune-docker'),_0x54b2a3=document[_0x2c3db(0xed)](_0x2c3db(0x118)),_0x1501b8=document[_0x2c3db(0xed)]('cleanup-toggle'),_0x41afae=document[_0x2c3db(0xed)](_0x2c3db(0x132)),_0x36952f=document[_0x2c3db(0xed)](_0x2c3db(0x140));if(!_0x501241)return;_0x501241[_0x2c3db(0x138)]=![],_0xea4e8d[_0x2c3db(0x138)]=![],_0x14bace[_0x2c3db(0x138)]=!![],_0x5caa57[_0x2c3db(0x138)]=!![];_0x54b2a3&&(_0x54b2a3['hidden']=!![],_0x54b2a3[_0x2c3db(0x108)]='',_0x54b2a3[_0x2c3db(0xf8)][_0x2c3db(0x11b)]('success',_0x2c3db(0x12c)));_0x36952f&&_0x36952f[_0x2c3db(0xf8)][_0x2c3db(0x11b)](_0x2c3db(0x13d));_0x41afae&&(_0x41afae['hidden']=!![]);_0x1501b8&&_0x1501b8[_0x2c3db(0x12d)](_0x2c3db(0x148),_0x2c3db(0x10f));const _0x4e4889=[_0x590d88,_0x5675b6,_0x8738a5,_0x3176e8],_0x48a75e=_0x3a4031=>{const _0x1786f4=_0x2c3db;_0x4e4889[_0x1786f4(0x113)](_0x17f800=>{const _0x6a6b12=_0x1786f4;if(_0x17f800)_0x17f800[_0x6a6b12(0xf3)]=_0x3a4031;});},_0x49e65a=(_0x4c8b98,_0x5d06c1=_0x2c3db(0xe2))=>{const _0x35d798=_0x2c3db;if(!_0x54b2a3)return;_0x54b2a3[_0x35d798(0x138)]=![],_0x54b2a3['textContent']=_0x4c8b98,_0x54b2a3[_0x35d798(0xf8)]['remove']('success','error');if(_0x5d06c1===_0x35d798(0xfa))_0x54b2a3[_0x35d798(0xf8)][_0x35d798(0xeb)](_0x35d798(0xfa));else _0x5d06c1==='error'&&_0x54b2a3[_0x35d798(0xf8)]['add']('error');};await loadServerHealthMetrics();const _0x57d9c9=()=>{const _0x59a78f=_0x2c3db;_0x501241[_0x59a78f(0x138)]=!![],document[_0x59a78f(0x102)](_0x59a78f(0x116),_0x40f735);},_0x40f735=_0x10369b=>{const _0x53342b=_0x2c3db;_0x10369b[_0x53342b(0x104)]===_0x53342b(0x124)&&!_0x501241[_0x53342b(0x138)]&&_0x57d9c9();};_0x52a069[_0x2c3db(0x139)]=_0x57d9c9,_0x877b9b[_0x2c3db(0x139)]=_0x57d9c9,_0x3176e8['onclick']=async()=>{const _0x2a0938=_0x2c3db;_0xea4e8d[_0x2a0938(0x138)]=![],_0x14bace[_0x2a0938(0x138)]=!![],_0x5caa57[_0x2a0938(0x138)]=!![],await loadServerHealthMetrics();};const _0x4dcdae=async(_0xe40684,_0x2594dd)=>{const _0x251417=_0x2c3db;_0xea4e8d[_0x251417(0x108)]=_0xe40684,_0xea4e8d['hidden']=![],_0x14bace['hidden']=!![],_0x5caa57['hidden']=!![],_0x48a75e(!![]),_0x49e65a(_0xe40684+_0x251417(0x13c));try{const _0x27db5c=await _0x2594dd(),_0x3546c6=_0x27db5c?.[_0x251417(0x135)]||_0xe40684+'\x20completed';_0x49e65a(_0x3546c6,_0x251417(0xfa));}catch(_0x40a346){console[_0x251417(0x12c)](_0x251417(0x134)+_0xe40684+')',_0x40a346),_0x49e65a(_0x40a346[_0x251417(0x135)]||_0x251417(0xef)+_0xe40684[_0x251417(0xfe)](),_0x251417(0x12c));}finally{await loadServerHealthMetrics(),_0x48a75e(![]);}};_0x590d88&&(_0x590d88[_0x2c3db(0x139)]=()=>_0x4dcdae('Stopping\x20containers',()=>API[_0x2c3db(0xe3)]()));_0x5675b6&&(_0x5675b6['onclick']=()=>_0x4dcdae(_0x2c3db(0x105),()=>API[_0x2c3db(0x122)]()));_0x8738a5&&(_0x8738a5[_0x2c3db(0x139)]=()=>_0x4dcdae('Pruning\x20Docker\x20resources',()=>API[_0x2c3db(0x128)]()));_0x1501b8&&_0x41afae&&_0x36952f&&(_0x1501b8[_0x2c3db(0x139)]=()=>{const _0x46f14e=_0x2c3db,_0x1ac3f4=_0x36952f[_0x46f14e(0xf8)][_0x46f14e(0x14d)](_0x46f14e(0x13d));_0x41afae[_0x46f14e(0x138)]=!_0x1ac3f4,_0x1501b8['setAttribute'](_0x46f14e(0x148),_0x1ac3f4?_0x46f14e(0xe7):_0x46f14e(0x10f));});document[_0x2c3db(0x14a)](_0x2c3db(0x116),_0x40f735);const _0x1edaf0=_0x501241[_0x2c3db(0xe6)](_0x2c3db(0x145));_0x1edaf0&&(_0x1edaf0['onclick']=_0x57d9c9);}export{loadServerHealthMetrics};typeof window!==_0x562b9f(0x143)&&(window[_0x562b9f(0x147)]=openServerHealthModal);
|
|
@@ -140,11 +140,11 @@
|
|
|
140
140
|
</button>
|
|
141
141
|
<button class="settings-nav-item" data-section="ai-providers" role="tab">
|
|
142
142
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
143
|
-
<path d="
|
|
144
|
-
<path d="
|
|
145
|
-
<path d="
|
|
146
|
-
<path d="
|
|
147
|
-
<
|
|
143
|
+
<path d="M12 3l1.912 5.813a2 2 0 0 0 1.275 1.275L21 12l-5.813 1.912a2 2 0 0 0-1.275 1.275L12 21l-1.912-5.813a2 2 0 0 0-1.275-1.275L3 12l5.813-1.912a2 2 0 0 0 1.275-1.275L12 3z"></path>
|
|
144
|
+
<path d="M5 3v4"></path>
|
|
145
|
+
<path d="M3 5h4"></path>
|
|
146
|
+
<path d="M19 17v4"></path>
|
|
147
|
+
<path d="M17 19h4"></path>
|
|
148
148
|
</svg>
|
|
149
149
|
AI Providers
|
|
150
150
|
</button>
|