skypilot-nightly 1.0.0.dev20250618__py3-none-any.whl → 1.0.0.dev20250620__py3-none-any.whl

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 (40) hide show
  1. sky/__init__.py +2 -2
  2. sky/cli.py +2 -2
  3. sky/client/cli/__init__.py +0 -0
  4. sky/client/{cli.py → cli/command.py} +97 -630
  5. sky/client/cli/deprecation_utils.py +99 -0
  6. sky/client/cli/flags.py +342 -0
  7. sky/dashboard/out/404.html +1 -1
  8. sky/dashboard/out/_next/static/chunks/{webpack-ebc2404fd6ce581c.js → webpack-0263b00d6a10e64a.js} +1 -1
  9. sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  10. sky/dashboard/out/clusters/[cluster].html +1 -1
  11. sky/dashboard/out/clusters.html +1 -1
  12. sky/dashboard/out/config.html +1 -1
  13. sky/dashboard/out/index.html +1 -1
  14. sky/dashboard/out/infra/[context].html +1 -1
  15. sky/dashboard/out/infra.html +1 -1
  16. sky/dashboard/out/jobs/[job].html +1 -1
  17. sky/dashboard/out/jobs.html +1 -1
  18. sky/dashboard/out/users.html +1 -1
  19. sky/dashboard/out/workspace/new.html +1 -1
  20. sky/dashboard/out/workspaces/[name].html +1 -1
  21. sky/dashboard/out/workspaces.html +1 -1
  22. sky/jobs/constants.py +0 -2
  23. sky/jobs/scheduler.py +7 -4
  24. sky/jobs/server/core.py +6 -3
  25. sky/jobs/state.py +9 -8
  26. sky/jobs/utils.py +1 -1
  27. sky/provision/common.py +10 -0
  28. sky/resources.py +7 -6
  29. sky/serve/server/core.py +5 -0
  30. sky/skylet/constants.py +4 -0
  31. sky/utils/env_options.py +6 -0
  32. sky/utils/schemas.py +2 -2
  33. {skypilot_nightly-1.0.0.dev20250618.dist-info → skypilot_nightly-1.0.0.dev20250620.dist-info}/METADATA +1 -1
  34. {skypilot_nightly-1.0.0.dev20250618.dist-info → skypilot_nightly-1.0.0.dev20250620.dist-info}/RECORD +40 -37
  35. /sky/dashboard/out/_next/static/{LRpGymRCqq-feuFyoWz4m → BO0Fgz0CZe-AElSLWzYJk}/_buildManifest.js +0 -0
  36. /sky/dashboard/out/_next/static/{LRpGymRCqq-feuFyoWz4m → BO0Fgz0CZe-AElSLWzYJk}/_ssgManifest.js +0 -0
  37. {skypilot_nightly-1.0.0.dev20250618.dist-info → skypilot_nightly-1.0.0.dev20250620.dist-info}/WHEEL +0 -0
  38. {skypilot_nightly-1.0.0.dev20250618.dist-info → skypilot_nightly-1.0.0.dev20250620.dist-info}/entry_points.txt +0 -0
  39. {skypilot_nightly-1.0.0.dev20250618.dist-info → skypilot_nightly-1.0.0.dev20250620.dist-info}/licenses/LICENSE +0 -0
  40. {skypilot_nightly-1.0.0.dev20250618.dist-info → skypilot_nightly-1.0.0.dev20250620.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,99 @@
1
+ """Utilities for deprecating commands."""
2
+
3
+ import copy
4
+ import functools
5
+ from typing import Any, Dict, Optional
6
+
7
+ import click
8
+
9
+ from sky import sky_logging
10
+
11
+ logger = sky_logging.init_logger(__name__)
12
+
13
+
14
+ def _with_deprecation_warning(
15
+ f,
16
+ original_name: str,
17
+ alias_name: str,
18
+ override_command_argument: Optional[Dict[str, Any]] = None):
19
+
20
+ @functools.wraps(f)
21
+ def wrapper(self, *args, **kwargs):
22
+ override_str = ''
23
+ if override_command_argument is not None:
24
+ overrides = []
25
+ for k, v in override_command_argument.items():
26
+ if isinstance(v, bool):
27
+ if v:
28
+ overrides.append(f'--{k}')
29
+ else:
30
+ overrides.append(f'--no-{k}')
31
+ else:
32
+ overrides.append(f'--{k.replace("_", "-")}={v}')
33
+ override_str = ' with additional arguments ' + ' '.join(overrides)
34
+ click.secho(
35
+ f'WARNING: `{alias_name}` has been renamed to `{original_name}` '
36
+ f'and will be removed in a future release. Please use the '
37
+ f'latter{override_str} instead.\n',
38
+ err=True,
39
+ fg='yellow')
40
+ return f(self, *args, **kwargs)
41
+
42
+ return wrapper
43
+
44
+
45
+ def _override_arguments(callback, override_command_argument: Dict[str, Any]):
46
+
47
+ def wrapper(*args, **kwargs):
48
+ logger.info(f'Overriding arguments: {override_command_argument}')
49
+ kwargs.update(override_command_argument)
50
+ return callback(*args, **kwargs)
51
+
52
+ return wrapper
53
+
54
+
55
+ def _add_command_alias(
56
+ group: click.Group,
57
+ command: click.Command,
58
+ hidden: bool = False,
59
+ new_group: Optional[click.Group] = None,
60
+ new_command_name: Optional[str] = None,
61
+ override_command_argument: Optional[Dict[str, Any]] = None,
62
+ with_warning: bool = True,
63
+ ) -> None:
64
+ """Add a alias of a command to a group."""
65
+ if new_group is None:
66
+ new_group = group
67
+ if new_command_name is None:
68
+ new_command_name = command.name
69
+ if new_group == group and new_command_name == command.name:
70
+ raise ValueError('Cannot add an alias to the same command.')
71
+ new_command = copy.deepcopy(command)
72
+ new_command.hidden = hidden
73
+ new_command.name = new_command_name
74
+
75
+ if override_command_argument:
76
+ new_command.callback = _override_arguments(new_command.callback,
77
+ override_command_argument)
78
+
79
+ orig = f'sky {group.name} {command.name}'
80
+ alias = f'sky {new_group.name} {new_command_name}'
81
+ if with_warning:
82
+ new_command.invoke = _with_deprecation_warning(
83
+ new_command.invoke,
84
+ orig,
85
+ alias,
86
+ override_command_argument=override_command_argument)
87
+ new_group.add_command(new_command, name=new_command_name)
88
+
89
+
90
+ def _deprecate_and_hide_command(group, command_to_deprecate,
91
+ alternative_command):
92
+ """Hide a command and show a deprecation note, hinting the alternative."""
93
+ command_to_deprecate.hidden = True
94
+ if group is not None:
95
+ orig = f'sky {group.name} {command_to_deprecate.name}'
96
+ else:
97
+ orig = f'sky {command_to_deprecate.name}'
98
+ command_to_deprecate.invoke = _with_deprecation_warning(
99
+ command_to_deprecate.invoke, alternative_command, orig)
@@ -0,0 +1,342 @@
1
+ """Flags for the CLI."""
2
+
3
+ import os
4
+ from typing import Optional, Tuple
5
+
6
+ import click
7
+ import dotenv
8
+
9
+ from sky import skypilot_config
10
+ from sky.utils import resources_utils
11
+
12
+
13
+ def _parse_env_var(env_var: str) -> Tuple[str, str]:
14
+ """Parse env vars into a (KEY, VAL) pair."""
15
+ if '=' not in env_var:
16
+ value = os.environ.get(env_var)
17
+ if value is None:
18
+ raise click.UsageError(
19
+ f'{env_var} is not set in local environment.')
20
+ return (env_var, value)
21
+ ret = tuple(env_var.split('=', 1))
22
+ if len(ret) != 2:
23
+ raise click.UsageError(
24
+ f'Invalid env var: {env_var}. Must be in the form of KEY=VAL '
25
+ 'or KEY.')
26
+ return ret[0], ret[1]
27
+
28
+
29
+ def _parse_secret_var(secret_var: str) -> Tuple[str, str]:
30
+ """Parse secret vars into a (KEY, VAL) pair."""
31
+ if '=' not in secret_var:
32
+ value = os.environ.get(secret_var)
33
+ if value is None:
34
+ raise click.UsageError(
35
+ f'{secret_var} is not set in local environment.')
36
+ return (secret_var, value)
37
+ ret = tuple(secret_var.split('=', 1))
38
+ if len(ret) != 2:
39
+ raise click.UsageError(
40
+ f'Invalid secret var: {secret_var}. Must be in the form of KEY=VAL '
41
+ 'or KEY.')
42
+ return ret[0], ret[1]
43
+
44
+
45
+ COMMON_OPTIONS = [
46
+ click.option('--async/--no-async',
47
+ 'async_call',
48
+ required=False,
49
+ is_flag=True,
50
+ default=False,
51
+ help=('Run the command asynchronously.'))
52
+ ]
53
+
54
+ TASK_OPTIONS = [
55
+ click.option(
56
+ '--workdir',
57
+ required=False,
58
+ type=click.Path(exists=True, file_okay=False),
59
+ help=('If specified, sync this dir to the remote working directory, '
60
+ 'where the task will be invoked. '
61
+ 'Overrides the "workdir" config in the YAML if both are supplied.'
62
+ )),
63
+ click.option(
64
+ '--infra',
65
+ required=False,
66
+ type=str,
67
+ help='Infrastructure to use. '
68
+ 'Format: cloud, cloud/region, cloud/region/zone, '
69
+ 'k8s/context-name, or ssh/node-pool-name. '
70
+ 'Examples: aws, aws/us-east-1, aws/us-east-1/us-east-1a, '
71
+ # TODO(zhwu): we have to use `\*` to make sure the docs build
72
+ # not complaining about the `*`, but this will cause `--help`
73
+ # to show `\*` instead of `*`.
74
+ 'aws/\\*/us-east-1a, k8s/my-context, ssh/my-nodes.'),
75
+ click.option(
76
+ '--cloud',
77
+ required=False,
78
+ type=str,
79
+ help=('The cloud to use. If specified, overrides the "resources.cloud" '
80
+ 'config. Passing "none" resets the config.'),
81
+ hidden=True),
82
+ click.option(
83
+ '--region',
84
+ required=False,
85
+ type=str,
86
+ help=('The region to use. If specified, overrides the '
87
+ '"resources.region" config. Passing "none" resets the config.'),
88
+ hidden=True),
89
+ click.option(
90
+ '--zone',
91
+ required=False,
92
+ type=str,
93
+ help=('The zone to use. If specified, overrides the '
94
+ '"resources.zone" config. Passing "none" resets the config.'),
95
+ hidden=True),
96
+ click.option(
97
+ '--num-nodes',
98
+ required=False,
99
+ type=int,
100
+ help=('Number of nodes to execute the task on. '
101
+ 'Overrides the "num_nodes" config in the YAML if both are '
102
+ 'supplied.')),
103
+ click.option(
104
+ '--cpus',
105
+ default=None,
106
+ type=str,
107
+ required=False,
108
+ help=('Number of vCPUs each instance must have (e.g., '
109
+ '``--cpus=4`` (exactly 4) or ``--cpus=4+`` (at least 4)). '
110
+ 'This is used to automatically select the instance type.')),
111
+ click.option(
112
+ '--memory',
113
+ default=None,
114
+ type=str,
115
+ required=False,
116
+ help=(
117
+ 'Amount of memory each instance must have in GB (e.g., '
118
+ '``--memory=16`` (exactly 16GB), ``--memory=16+`` (at least 16GB))'
119
+ )),
120
+ click.option('--disk-size',
121
+ default=None,
122
+ type=int,
123
+ required=False,
124
+ help=('OS disk size in GBs.')),
125
+ click.option('--disk-tier',
126
+ default=None,
127
+ type=click.Choice(resources_utils.DiskTier.supported_tiers(),
128
+ case_sensitive=False),
129
+ required=False,
130
+ help=resources_utils.DiskTier.cli_help_message()),
131
+ click.option('--network-tier',
132
+ default=None,
133
+ type=click.Choice(
134
+ resources_utils.NetworkTier.supported_tiers(),
135
+ case_sensitive=False),
136
+ required=False,
137
+ help=resources_utils.NetworkTier.cli_help_message()),
138
+ click.option(
139
+ '--use-spot/--no-use-spot',
140
+ required=False,
141
+ default=None,
142
+ help=('Whether to request spot instances. If specified, overrides the '
143
+ '"resources.use_spot" config.')),
144
+ click.option('--image-id',
145
+ required=False,
146
+ default=None,
147
+ help=('Custom image id for launching the instances. '
148
+ 'Passing "none" resets the config.')),
149
+ click.option('--env-file',
150
+ required=False,
151
+ type=dotenv.dotenv_values,
152
+ help="""\
153
+ Path to a dotenv file with environment variables to set on the remote
154
+ node.
155
+
156
+ If any values from ``--env-file`` conflict with values set by
157
+ ``--env``, the ``--env`` value will be preferred."""),
158
+ click.option(
159
+ '--env',
160
+ required=False,
161
+ type=_parse_env_var,
162
+ multiple=True,
163
+ help="""\
164
+ Environment variable to set on the remote node.
165
+ It can be specified multiple times.
166
+ Examples:
167
+
168
+ \b
169
+ 1. ``--env MY_ENV=1``: set ``$MY_ENV`` on the cluster to be 1.
170
+
171
+ 2. ``--env MY_ENV2=$HOME``: set ``$MY_ENV2`` on the cluster to be the
172
+ same value of ``$HOME`` in the local environment where the CLI command
173
+ is run.
174
+
175
+ 3. ``--env MY_ENV3``: set ``$MY_ENV3`` on the cluster to be the
176
+ same value of ``$MY_ENV3`` in the local environment.""",
177
+ ),
178
+ click.option(
179
+ '--secret',
180
+ required=False,
181
+ type=_parse_secret_var,
182
+ multiple=True,
183
+ help="""\
184
+ Secret variable to set on the remote node. These variables will be
185
+ redacted in logs and YAML outputs for security. It can be specified
186
+ multiple times. Examples:
187
+
188
+ \b
189
+ 1. ``--secret API_KEY=secret123``: set ``$API_KEY`` on the cluster to
190
+ be secret123.
191
+
192
+ 2. ``--secret JWT_SECRET``: set ``$JWT_SECRET`` on the cluster to be
193
+ the same value of ``$JWT_SECRET`` in the local environment.""",
194
+ )
195
+ ]
196
+
197
+ TASK_OPTIONS_WITH_NAME = [
198
+ click.option('--name',
199
+ '-n',
200
+ required=False,
201
+ type=str,
202
+ help=('Task name. Overrides the "name" '
203
+ 'config in the YAML if both are supplied.')),
204
+ ] + TASK_OPTIONS
205
+
206
+ EXTRA_RESOURCES_OPTIONS = [
207
+ click.option(
208
+ '--gpus',
209
+ required=False,
210
+ type=str,
211
+ help=
212
+ ('Type and number of GPUs to use. Example values: '
213
+ '"V100:8", "V100" (short for a count of 1), or "V100:0.5" '
214
+ '(fractional counts are supported by the scheduling framework). '
215
+ 'If a new cluster is being launched by this command, this is the '
216
+ 'resources to provision. If an existing cluster is being reused, this'
217
+ ' is seen as the task demand, which must fit the cluster\'s total '
218
+ 'resources and is used for scheduling the task. '
219
+ 'Overrides the "accelerators" '
220
+ 'config in the YAML if both are supplied. '
221
+ 'Passing "none" resets the config.')),
222
+ click.option(
223
+ '--instance-type',
224
+ '-t',
225
+ required=False,
226
+ type=str,
227
+ help=('The instance type to use. If specified, overrides the '
228
+ '"resources.instance_type" config. Passing "none" resets the '
229
+ 'config.'),
230
+ ),
231
+ click.option(
232
+ '--ports',
233
+ required=False,
234
+ type=str,
235
+ multiple=True,
236
+ help=('Ports to open on the cluster. '
237
+ 'If specified, overrides the "ports" config in the YAML. '),
238
+ ),
239
+ ]
240
+
241
+
242
+ def config_option(expose_value: bool):
243
+ """A decorator for the --config option.
244
+
245
+ This decorator is used to parse the --config option.
246
+
247
+ Any overrides specified in the command line will be applied to the skypilot
248
+ config before the decorated function is called.
249
+
250
+ If expose_value is True, the decorated function will receive the parsed
251
+ config overrides as 'config_override' parameter.
252
+
253
+ Args:
254
+ expose_value: Whether to expose the value of the option to the decorated
255
+ function.
256
+ """
257
+
258
+ def preprocess_config_options(ctx, param, value):
259
+ del ctx # Unused.
260
+ param.name = 'config_override'
261
+ try:
262
+ if len(value) == 0:
263
+ return None
264
+ else:
265
+ # Apply the config overrides to the skypilot config.
266
+ return skypilot_config.apply_cli_config(value)
267
+ except ValueError as e:
268
+ raise click.BadParameter(f'{str(e)}') from e
269
+
270
+ def return_option_decorator(func):
271
+ return click.option(
272
+ '--config',
273
+ required=False,
274
+ type=str,
275
+ multiple=True,
276
+ expose_value=expose_value,
277
+ callback=preprocess_config_options,
278
+ help=('Path to a config file or a comma-separated '
279
+ 'list of key-value pairs '
280
+ '(e.g. "nested.key1=val1,another.key2=val2").'),
281
+ )(func)
282
+
283
+ return return_option_decorator
284
+
285
+
286
+ def yes_option():
287
+ """A decorator for the --yes/-y option."""
288
+
289
+ def return_option_decorator(func):
290
+ return click.option('--yes',
291
+ '-y',
292
+ is_flag=True,
293
+ default=False,
294
+ required=False,
295
+ help='Skip confirmation prompt.')(func)
296
+
297
+ return return_option_decorator
298
+
299
+
300
+ def verbose_option(helptext: Optional[str] = None):
301
+ """A decorator for the --verbose/-v option."""
302
+
303
+ if helptext is None:
304
+ helptext = 'Show all information in full.'
305
+
306
+ def return_option_decorator(func):
307
+ return click.option('--verbose',
308
+ '-v',
309
+ default=False,
310
+ is_flag=True,
311
+ required=False,
312
+ help=helptext)(func)
313
+
314
+ return return_option_decorator
315
+
316
+
317
+ def all_option(helptext: Optional[str] = None):
318
+ """A decorator for the --all option."""
319
+
320
+ def return_option_decorator(func):
321
+ return click.option('--all',
322
+ '-a',
323
+ is_flag=True,
324
+ default=False,
325
+ required=False,
326
+ help=helptext)(func)
327
+
328
+ return return_option_decorator
329
+
330
+
331
+ def all_users_option(helptext: Optional[str] = None):
332
+ """A decorator for the --all-users option."""
333
+
334
+ def return_option_decorator(func):
335
+ return click.option('--all-users',
336
+ '-u',
337
+ is_flag=True,
338
+ default=False,
339
+ required=False,
340
+ help=helptext)(func)
341
+
342
+ return return_option_decorator
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-ebc2404fd6ce581c.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-1be831200e60c5c0.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"LRpGymRCqq-feuFyoWz4m","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-0263b00d6a10e64a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-1be831200e60c5c0.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"BO0Fgz0CZe-AElSLWzYJk","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- !function(){"use strict";var e,t,n,r,c,o,u,a,i,f={},s={};function d(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}},r=!0;try{f[e](n,n.exports,d),r=!1}finally{r&&delete s[e]}return n.exports}d.m=f,e=[],d.O=function(t,n,r,c){if(n){c=c||0;for(var o=e.length;o>0&&e[o-1][2]>c;o--)e[o]=e[o-1];e[o]=[n,r,c];return}for(var u=1/0,o=0;o<e.length;o++){for(var n=e[o][0],r=e[o][1],c=e[o][2],a=!0,i=0;i<n.length;i++)u>=c&&Object.keys(d.O).every(function(e){return d.O[e](n[i])})?n.splice(i--,1):(a=!1,c<u&&(u=c));if(a){e.splice(o--,1);var f=r();void 0!==f&&(t=f)}}return t},d.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},d.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var c=Object.create(null);d.r(c);var o={};t=t||[null,n({}),n([]),n(n)];for(var u=2&r&&e;"object"==typeof u&&!~t.indexOf(u);u=n(u))Object.getOwnPropertyNames(u).forEach(function(t){o[t]=function(){return e[t]}});return o.default=function(){return e},d.d(c,o),c},d.d=function(e,t){for(var n in t)d.o(t,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},d.f={},d.e=function(e){return Promise.all(Object.keys(d.f).reduce(function(t,n){return d.f[n](e,t),t},[]))},d.u=function(e){return 350===e?"static/chunks/350.9e123a4551f68b0d.js":491===e?"static/chunks/491.b3d264269613fe09.js":937===e?"static/chunks/937.3759f538f11a0953.js":42===e?"static/chunks/42.d39e24467181b06b.js":682===e?"static/chunks/682.4dd5dc116f740b5f.js":211===e?"static/chunks/211.692afc57e812ae1a.js":984===e?"static/chunks/984.ae8c08791d274ca0.js":641===e?"static/chunks/641.c8e452bc5070a630.js":443===e?"static/chunks/443.b2242d0efcdf5f47.js":513===e?"static/chunks/513.211357a2914a34b2.js":"static/chunks/"+e+"-"+({37:"3a4d77ad62932eaf",470:"4d1a5dbe58a8a2b9",616:"d6128fa9e7cae6e6",664:"047bc03493fda379",760:"a89d354797ce7af5",798:"c0525dc3f21e488d",799:"3625946b2ec2eb30",804:"4c9fc53aa74bc191",843:"b3040e493f6e7947",856:"c2c39c0912285e54",901:"b424d293275e1fd7",938:"1493ac755eadeb35",947:"6620842ef80ae879",969:"20d54a9d998dc102",973:"db3c97c2bfbceb65"})[e]+".js"},d.miniCssF=function(e){},d.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},c="_N_E:",d.l=function(e,t,n,o){if(r[e]){r[e].push(t);return}if(void 0!==n)for(var u,a,i=document.getElementsByTagName("script"),f=0;f<i.length;f++){var s=i[f];if(s.getAttribute("src")==e||s.getAttribute("data-webpack")==c+n){u=s;break}}u||(a=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,d.nc&&u.setAttribute("nonce",d.nc),u.setAttribute("data-webpack",c+n),u.src=d.tu(e)),r[e]=[t];var l=function(t,n){u.onerror=u.onload=null,clearTimeout(b);var c=r[e];if(delete r[e],u.parentNode&&u.parentNode.removeChild(u),c&&c.forEach(function(e){return e(n)}),t)return t(n)},b=setTimeout(l.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=l.bind(null,u.onerror),u.onload=l.bind(null,u.onload),a&&document.head.appendChild(u)},d.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.tt=function(){return void 0===o&&(o={createScriptURL:function(e){return e}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(o=trustedTypes.createPolicy("nextjs#bundler",o))),o},d.tu=function(e){return d.tt().createScriptURL(e)},d.p="/dashboard/_next/",u={272:0},d.f.j=function(e,t){var n=d.o(u,e)?u[e]:void 0;if(0!==n){if(n)t.push(n[2]);else if(272!=e){var r=new Promise(function(t,r){n=u[e]=[t,r]});t.push(n[2]=r);var c=d.p+d.u(e),o=Error();d.l(c,function(t){if(d.o(u,e)&&(0!==(n=u[e])&&(u[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;o.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",o.name="ChunkLoadError",o.type=r,o.request=c,n[1](o)}},"chunk-"+e,e)}else u[e]=0}},d.O.j=function(e){return 0===u[e]},a=function(e,t){var n,r,c=t[0],o=t[1],a=t[2],i=0;if(c.some(function(e){return 0!==u[e]})){for(n in o)d.o(o,n)&&(d.m[n]=o[n]);if(a)var f=a(d)}for(e&&e(t);i<c.length;i++)r=c[i],d.o(u,r)&&u[r]&&u[r][0](),u[r]=0;return d.O(f)},(i=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(a.bind(null,0)),i.push=a.bind(null,i.push.bind(i)),d.nc=void 0}();
1
+ !function(){"use strict";var e,t,n,r,c,o,u,a,i,f={},s={};function d(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}},r=!0;try{f[e](n,n.exports,d),r=!1}finally{r&&delete s[e]}return n.exports}d.m=f,e=[],d.O=function(t,n,r,c){if(n){c=c||0;for(var o=e.length;o>0&&e[o-1][2]>c;o--)e[o]=e[o-1];e[o]=[n,r,c];return}for(var u=1/0,o=0;o<e.length;o++){for(var n=e[o][0],r=e[o][1],c=e[o][2],a=!0,i=0;i<n.length;i++)u>=c&&Object.keys(d.O).every(function(e){return d.O[e](n[i])})?n.splice(i--,1):(a=!1,c<u&&(u=c));if(a){e.splice(o--,1);var f=r();void 0!==f&&(t=f)}}return t},d.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},d.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var c=Object.create(null);d.r(c);var o={};t=t||[null,n({}),n([]),n(n)];for(var u=2&r&&e;"object"==typeof u&&!~t.indexOf(u);u=n(u))Object.getOwnPropertyNames(u).forEach(function(t){o[t]=function(){return e[t]}});return o.default=function(){return e},d.d(c,o),c},d.d=function(e,t){for(var n in t)d.o(t,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},d.f={},d.e=function(e){return Promise.all(Object.keys(d.f).reduce(function(t,n){return d.f[n](e,t),t},[]))},d.u=function(e){return 350===e?"static/chunks/350.9e123a4551f68b0d.js":491===e?"static/chunks/491.b3d264269613fe09.js":937===e?"static/chunks/937.3759f538f11a0953.js":42===e?"static/chunks/42.d39e24467181b06b.js":682===e?"static/chunks/682.4dd5dc116f740b5f.js":211===e?"static/chunks/211.692afc57e812ae1a.js":984===e?"static/chunks/984.ae8c08791d274ca0.js":641===e?"static/chunks/641.c8e452bc5070a630.js":513===e?"static/chunks/513.211357a2914a34b2.js":443===e?"static/chunks/443.b2242d0efcdf5f47.js":"static/chunks/"+e+"-"+({37:"3a4d77ad62932eaf",470:"4d1a5dbe58a8a2b9",616:"d6128fa9e7cae6e6",664:"047bc03493fda379",760:"a89d354797ce7af5",798:"c0525dc3f21e488d",799:"3625946b2ec2eb30",804:"4c9fc53aa74bc191",843:"b3040e493f6e7947",856:"c2c39c0912285e54",901:"b424d293275e1fd7",938:"1493ac755eadeb35",947:"6620842ef80ae879",969:"20d54a9d998dc102",973:"db3c97c2bfbceb65"})[e]+".js"},d.miniCssF=function(e){},d.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},c="_N_E:",d.l=function(e,t,n,o){if(r[e]){r[e].push(t);return}if(void 0!==n)for(var u,a,i=document.getElementsByTagName("script"),f=0;f<i.length;f++){var s=i[f];if(s.getAttribute("src")==e||s.getAttribute("data-webpack")==c+n){u=s;break}}u||(a=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,d.nc&&u.setAttribute("nonce",d.nc),u.setAttribute("data-webpack",c+n),u.src=d.tu(e)),r[e]=[t];var l=function(t,n){u.onerror=u.onload=null,clearTimeout(b);var c=r[e];if(delete r[e],u.parentNode&&u.parentNode.removeChild(u),c&&c.forEach(function(e){return e(n)}),t)return t(n)},b=setTimeout(l.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=l.bind(null,u.onerror),u.onload=l.bind(null,u.onload),a&&document.head.appendChild(u)},d.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.tt=function(){return void 0===o&&(o={createScriptURL:function(e){return e}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(o=trustedTypes.createPolicy("nextjs#bundler",o))),o},d.tu=function(e){return d.tt().createScriptURL(e)},d.p="/dashboard/_next/",u={272:0},d.f.j=function(e,t){var n=d.o(u,e)?u[e]:void 0;if(0!==n){if(n)t.push(n[2]);else if(272!=e){var r=new Promise(function(t,r){n=u[e]=[t,r]});t.push(n[2]=r);var c=d.p+d.u(e),o=Error();d.l(c,function(t){if(d.o(u,e)&&(0!==(n=u[e])&&(u[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;o.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",o.name="ChunkLoadError",o.type=r,o.request=c,n[1](o)}},"chunk-"+e,e)}else u[e]=0}},d.O.j=function(e){return 0===u[e]},a=function(e,t){var n,r,c=t[0],o=t[1],a=t[2],i=0;if(c.some(function(e){return 0!==u[e]})){for(n in o)d.o(o,n)&&(d.m[n]=o[n]);if(a)var f=a(d)}for(e&&e(t);i<c.length;i++)r=c[i],d.o(u,r)&&u[r]&&u[r][0](),u[r]=0;return d.O(f)},(i=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(a.bind(null,0)),i.push=a.bind(null,i.push.bind(i)),d.nc=void 0}();
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-ebc2404fd6ce581c.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-89216c616dbaa9c5.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"LRpGymRCqq-feuFyoWz4m","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-0263b00d6a10e64a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-89216c616dbaa9c5.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"BO0Fgz0CZe-AElSLWzYJk","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-ebc2404fd6ce581c.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/798-c0525dc3f21e488d.js" defer=""></script><script src="/dashboard/_next/static/chunks/947-6620842ef80ae879.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/901-b424d293275e1fd7.js" defer=""></script><script src="/dashboard/_next/static/chunks/969-20d54a9d998dc102.js" defer=""></script><script src="/dashboard/_next/static/chunks/856-c2c39c0912285e54.js" defer=""></script><script src="/dashboard/_next/static/chunks/973-db3c97c2bfbceb65.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-1493ac755eadeb35.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-3a4d77ad62932eaf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-36bc0962129f72df.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"LRpGymRCqq-feuFyoWz4m","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-0263b00d6a10e64a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/798-c0525dc3f21e488d.js" defer=""></script><script src="/dashboard/_next/static/chunks/947-6620842ef80ae879.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/901-b424d293275e1fd7.js" defer=""></script><script src="/dashboard/_next/static/chunks/969-20d54a9d998dc102.js" defer=""></script><script src="/dashboard/_next/static/chunks/856-c2c39c0912285e54.js" defer=""></script><script src="/dashboard/_next/static/chunks/973-db3c97c2bfbceb65.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-1493ac755eadeb35.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-3a4d77ad62932eaf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-36bc0962129f72df.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"BO0Fgz0CZe-AElSLWzYJk","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-ebc2404fd6ce581c.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-82a651dbad53ec6e.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"LRpGymRCqq-feuFyoWz4m","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-0263b00d6a10e64a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-82a651dbad53ec6e.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"BO0Fgz0CZe-AElSLWzYJk","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-ebc2404fd6ce581c.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-497a35a7ed49734a.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config","query":{},"buildId":"LRpGymRCqq-feuFyoWz4m","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-0263b00d6a10e64a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-497a35a7ed49734a.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config","query":{},"buildId":"BO0Fgz0CZe-AElSLWzYJk","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-ebc2404fd6ce581c.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-6b0d9e5031b70c58.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"LRpGymRCqq-feuFyoWz4m","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-0263b00d6a10e64a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-6b0d9e5031b70c58.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"BO0Fgz0CZe-AElSLWzYJk","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-ebc2404fd6ce581c.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-d2910be98e9227cb.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra/[context]","query":{},"buildId":"LRpGymRCqq-feuFyoWz4m","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-0263b00d6a10e64a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-d2910be98e9227cb.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra/[context]","query":{},"buildId":"BO0Fgz0CZe-AElSLWzYJk","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-ebc2404fd6ce581c.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-780860bcc1103945.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra","query":{},"buildId":"LRpGymRCqq-feuFyoWz4m","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-0263b00d6a10e64a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-780860bcc1103945.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra","query":{},"buildId":"BO0Fgz0CZe-AElSLWzYJk","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-ebc2404fd6ce581c.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/798-c0525dc3f21e488d.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/969-20d54a9d998dc102.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-cf490d1fa38f3740.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"LRpGymRCqq-feuFyoWz4m","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-0263b00d6a10e64a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/798-c0525dc3f21e488d.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/969-20d54a9d998dc102.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-cf490d1fa38f3740.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"BO0Fgz0CZe-AElSLWzYJk","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-ebc2404fd6ce581c.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-336ab80e270ce2ce.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"LRpGymRCqq-feuFyoWz4m","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-0263b00d6a10e64a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-336ab80e270ce2ce.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"BO0Fgz0CZe-AElSLWzYJk","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-ebc2404fd6ce581c.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-928edf039219e47b.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/LRpGymRCqq-feuFyoWz4m/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/users","query":{},"buildId":"LRpGymRCqq-feuFyoWz4m","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6c12ecc3bd2239b6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-0263b00d6a10e64a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-c416e87d5c2715cf.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-928edf039219e47b.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BO0Fgz0CZe-AElSLWzYJk/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/users","query":{},"buildId":"BO0Fgz0CZe-AElSLWzYJk","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>