@alauda-fe/common 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/array-form-table/form/component.d.ts +1 -1
  2. package/authorization/interceptor.service.d.ts +0 -1
  3. package/authorization/state.service.d.ts +13 -13
  4. package/core/abstract/base-nested-form-control.d.ts +1 -1
  5. package/core/constants/patterns.d.ts +4 -0
  6. package/core/directives/scroll-to-first-invalid.directive.d.ts +1 -1
  7. package/core/module.d.ts +21 -21
  8. package/core/pipes/time.pipe.d.ts +1 -1
  9. package/core/services/context.service.d.ts +3 -4
  10. package/core/services/feature-gate.service.d.ts +1 -1
  11. package/core/services/workspace-helper.service.d.ts +3 -1
  12. package/core/utils/common.d.ts +0 -2
  13. package/core/utils/public-api.d.ts +1 -0
  14. package/core/utils/router.d.ts +3 -0
  15. package/core/utils/version.d.ts +1 -1
  16. package/editable/editable.component.d.ts +23 -0
  17. package/editable/editable.directive.d.ts +9 -0
  18. package/editable/editable.type.d.ts +5 -0
  19. package/editable/public-api.d.ts +2 -0
  20. package/esm2022/authorization/guard.service.mjs +2 -2
  21. package/esm2022/authorization/interceptor.service.mjs +7 -22
  22. package/esm2022/authorization/state.service.mjs +58 -92
  23. package/esm2022/core/constants/patterns.mjs +6 -4
  24. package/esm2022/core/module.mjs +7 -12
  25. package/esm2022/core/pipes/time.pipe.mjs +3 -3
  26. package/esm2022/core/services/context.service.mjs +9 -12
  27. package/esm2022/core/services/workspace-helper.service.mjs +7 -1
  28. package/esm2022/core/types/k8s/crd.mjs +1 -1
  29. package/esm2022/core/utils/common.mjs +1 -11
  30. package/esm2022/core/utils/public-api.mjs +2 -1
  31. package/esm2022/core/utils/router.mjs +20 -0
  32. package/esm2022/editable/editable.component.mjs +136 -0
  33. package/esm2022/editable/editable.directive.mjs +25 -0
  34. package/esm2022/editable/editable.type.mjs +6 -0
  35. package/esm2022/editable/public-api.mjs +3 -0
  36. package/esm2022/exec/terminal/component.mjs +12 -19
  37. package/esm2022/k8s-resource-list/footer/component.mjs +57 -21
  38. package/esm2022/k8s-resource-list/k8s-resource-list.module.mjs +18 -6
  39. package/esm2022/k8s-resource-list/utils.mjs +7 -3
  40. package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.component.mjs +55 -53
  41. package/esm2022/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.mjs +4 -4
  42. package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +6 -10
  43. package/esm2022/pie-derivative-chart/pie-derivative-chart.module.mjs +6 -6
  44. package/esm2022/pie-derivative-chart/radial-bar/radial-bar-chart.component.mjs +51 -40
  45. package/esm2022/pie-derivative-chart/units.mjs +14 -0
  46. package/esm2022/public-api.mjs +2 -1
  47. package/esm2022/table/component.mjs +47 -30
  48. package/esm2022/table/module.mjs +1 -1
  49. package/esm2022/view-chart/view-chart.component.mjs +5 -8
  50. package/esm2022/widget/public-api.mjs +2 -1
  51. package/esm2022/widget/resource-label/component.mjs +131 -0
  52. package/esm2022/widget/zero-state/zero-state.component.mjs +36 -21
  53. package/exec/terminal/component.d.ts +1 -3
  54. package/k8s-resource-list/footer/component.d.ts +8 -1
  55. package/k8s-resource-list/k8s-resource-list.module.d.ts +1 -1
  56. package/k8s-resource-list/k8s-resource-paged-list.d.ts +2 -2
  57. package/package.json +1 -1
  58. package/page-scaffold/page-header/common-layout/product-select/component.d.ts +1 -3
  59. package/pie-derivative-chart/radial-bar/radial-bar-chart.component.d.ts +4 -0
  60. package/pie-derivative-chart/units.d.ts +2 -0
  61. package/public-api.d.ts +1 -0
  62. package/styles/global.scss +1 -0
  63. package/styles/tailwind-preset.scss +1 -1
  64. package/table/component.d.ts +5 -4
  65. package/table/helper.d.ts +1 -1
  66. package/table/module.d.ts +1 -1
  67. package/widget/public-api.d.ts +1 -0
  68. package/widget/resource-label/component.d.ts +25 -0
  69. package/widget/zero-state/zero-state.component.d.ts +4 -1
@@ -4,41 +4,42 @@
4
4
  */
5
5
  import { HttpClient } from '@angular/common/http';
6
6
  import { Injectable, inject } from '@angular/core';
7
- import { decodeUrl } from 'ab64';
8
- import { EMPTY, Subject, concat, of, catchError, map, shareReplay, switchMap, tap, pipe, from, } from 'rxjs';
9
- import { API_GATEWAY, NOT_NOTIFY_ON_ERROR_HEADERS, publishRef, getTopWindow, } from '../core/public-api';
7
+ import { EMPTY, of, catchError, map, shareReplay, switchMap, tap, pipe, } from 'rxjs';
8
+ import { NOT_NOTIFY_ON_ERROR_HEADERS, publishRef, getTopWindow, skipError, } from '../core/public-api';
10
9
  import { getInitUrl } from './app-init-url';
11
- import { asyncReadStorageToken, cleanStorageToken, readStorageToken, readStorageType, writeStorageToken, } from './storage-token';
12
10
  import * as i0 from "@angular/core";
13
11
  export const STORAGE_TYPE_KEY = 'token_storage';
14
- export const ID_TOKEN_KEY = 'id_token';
15
- export const REFRESH_TOKEN_KEY = 'refresh_token';
16
12
  export const CODE_KEY = 'code';
17
- const LOGIN_API = '/console/api/v1/token/login';
18
- const CALLBACK_API = '/console/api/v1/token/callback';
19
- const TOKEN_REFRESH_API = '/console/api/v1/token/refresh';
20
- const TOKEN_INFO_API = '/console/api/v1/token/info';
13
+ export const ID_TOKEN = 'id_token';
14
+ const LOGIN_API = '/console/api/v2/token/login';
15
+ const LOGOUT_API = '/console/api/v2/token/logout';
16
+ const CALLBACK_API = '/console/api/v2/token/callback';
17
+ const TOKEN_REFRESH_API = '/console/api/v2/token/refresh';
18
+ const TOKEN_INFO_API = '/console/api/v2/token/info';
19
+ const EXTERNAL_REDIRECT_API = '/console/api/v2/token/redirect';
21
20
  const REDIRECT_URIS = new Set(['redirect_uri', 'post_logout_redirect_uri']);
22
21
  export class AuthorizationStateService {
23
22
  constructor() {
24
23
  this.http = inject(HttpClient);
25
- this.refreshToken$$ = new Subject();
26
- this.state$ = this.getAuthConfiguration().pipe(switchMap(config => concat(this.getExistedToken(config), this.refreshToken$$).pipe(map(token => ({ ...config, ...token })))), tap(state => {
24
+ this.state$ = this.getAuthConfiguration().pipe(switchMap(config => this.getExistedToken(config).pipe(switchMap(token => this.http.get(TOKEN_INFO_API, {}).pipe(skipError(null), map(info => ({
25
+ ...config,
26
+ ...token,
27
+ info,
28
+ })))))), tap(state => {
27
29
  this.stateSnapshot = state;
28
- if (!state.idToken) {
30
+ if (!state.info) {
29
31
  this.logout(true);
30
32
  }
31
- this.payloadSnapshot = getAccountInfo(state);
33
+ this.payloadSnapshot = state.info;
32
34
  }), shareReplay(1));
33
- this.checkTokenCache = {};
35
+ this.checkTokenCache$ = null;
34
36
  this.stateSnapshot = null;
35
37
  }
36
38
  logout(specificUrl = false) {
37
- cleanStorageToken();
38
39
  this.redirectToDex(specificUrl && location.href);
39
40
  }
40
41
  logoutAudit() {
41
- return this.http.post(`${API_GATEWAY}/auth/v1/logout`, {}, {
42
+ return this.http.get(LOGOUT_API, {
42
43
  headers: NOT_NOTIFY_ON_ERROR_HEADERS,
43
44
  });
44
45
  }
@@ -46,17 +47,6 @@ export class AuthorizationStateService {
46
47
  if (!this.stateSnapshot) {
47
48
  return;
48
49
  }
49
- // 主动退出或 session 模式跳转到 dex 前需要主动清除 `user_login` cookie 防止自动授权
50
- if (!!this.stateSnapshot.idToken || readStorageType() === 'session') {
51
- try {
52
- await fetch(`${this.stateSnapshot.logoutUrl}&id_token_hint=${
53
- // 主动退出时禁用现有 token
54
- this.stateSnapshot.idToken || ''}`);
55
- }
56
- catch (e) {
57
- console.error(e);
58
- }
59
- }
60
50
  const href = replaceRedirectUrl(this.stateSnapshot.authUrl,
61
51
  // authUrl 中的 redirectUrl 是根路由,根路由二次重定向回 portal 时会丢失 code 导致登录失败
62
52
  // 如果后期有定制化要求默认首页不是 portal,可以改回之前的方案,使用浏览器导航打开 logoutUrl,然后 dex 重定向到根路由,根路由重定向到默认首页,首页再将 authUrl 中的 redirectUrl 替换为当前 url 跳转到 dex 进行登录;
@@ -71,52 +61,38 @@ export class AuthorizationStateService {
71
61
  }
72
62
  }
73
63
  refreshToken() {
74
- const refreshToken = readStorageToken()?.refreshToken;
75
- if (refreshToken) {
76
- if (!this.refreshTokenCache$) {
77
- this.refreshTokenCache$ = this.getTokenByRefreshToken(refreshToken).pipe(tap(token => {
78
- this.refreshTokenCache$ = null;
79
- this.refreshToken$$.next(token);
80
- }), map(({ idToken }) => idToken), catchError(() => {
81
- this.logout(true);
82
- return EMPTY;
83
- }), publishRef());
84
- }
64
+ if (this.refreshTokenCache$) {
85
65
  return this.refreshTokenCache$;
86
66
  }
87
- this.logout(true);
88
- return EMPTY;
89
- }
90
- checkToken(token) {
91
- if (!this.checkTokenCache[token]) {
92
- this.checkTokenCache[token] = this.http
93
- .get(TOKEN_INFO_API, {
94
- headers: {
95
- Authorization: `Bearer ${token}`,
96
- },
97
- })
98
- .pipe(tap({
67
+ this.refreshTokenCache$ = this.http.get(TOKEN_REFRESH_API).pipe(tap(() => {
68
+ this.refreshTokenCache$ = null;
69
+ }), catchError(() => {
70
+ this.logout(true);
71
+ return EMPTY;
72
+ }), publishRef());
73
+ return this.refreshTokenCache$;
74
+ }
75
+ checkToken() {
76
+ if (!this.checkTokenCache$) {
77
+ this.checkTokenCache$ = this.http.get(TOKEN_INFO_API).pipe(tap({
99
78
  next: () => {
100
- this.checkTokenCache[token] = null;
79
+ this.checkTokenCache$ = null;
101
80
  },
102
81
  error: () => {
103
- this.checkTokenCache[token] = null;
82
+ this.checkTokenCache$ = null;
104
83
  },
105
84
  }), publishRef());
106
85
  }
107
- return this.checkTokenCache[token];
108
- }
109
- getToken() {
110
- return this.state$.pipe(map(state => state.idToken));
86
+ return this.checkTokenCache$;
111
87
  }
112
88
  getTokenPayload() {
113
- return this.state$.pipe(map(state => getAccountInfo(state)));
89
+ return this.state$.pipe(map(state => state.info));
114
90
  }
115
91
  getAccountInfo() {
116
92
  if (this.payloadSnapshot) {
117
93
  return of(this.payloadSnapshot);
118
94
  }
119
- return this.state$.pipe(map(state => getAccountInfo(state) || {}));
95
+ return this.state$.pipe(map(state => state.info || {}));
120
96
  }
121
97
  getAuthConfiguration() {
122
98
  return this.http
@@ -130,41 +106,32 @@ export class AuthorizationStateService {
130
106
  getExistedToken(config) {
131
107
  return this.getTokenFromLocal(config).pipe(catchError(error => {
132
108
  console.error(error);
133
- return of({ idToken: '', refreshToken: '' });
109
+ return of({ expireAt: '', issuedAt: '' });
134
110
  }));
135
111
  }
136
112
  getTokenFromLocal(config) {
137
113
  const { queryParams, hashParams } = this.getParams();
138
114
  const code = queryParams[CODE_KEY] || hashParams[CODE_KEY];
115
+ const idToken = queryParams[ID_TOKEN] || hashParams[ID_TOKEN];
139
116
  if (code) {
140
117
  return this.getTokenByCode(code, config.state);
141
118
  }
142
- const refreshToken = queryParams[REFRESH_TOKEN_KEY] || hashParams[REFRESH_TOKEN_KEY];
143
- if (refreshToken) {
144
- return this.getTokenByRefreshToken(refreshToken);
145
- }
146
- const idToken = queryParams[ID_TOKEN_KEY] || hashParams[ID_TOKEN_KEY];
147
119
  if (idToken) {
148
- writeStorageToken({
149
- storageType: (queryParams[STORAGE_TYPE_KEY] ||
150
- hashParams[STORAGE_TYPE_KEY]),
151
- idToken,
152
- refreshToken: '',
153
- });
120
+ return this.getCookieByToken(idToken);
154
121
  }
155
- return from(asyncReadStorageToken());
122
+ return of(null);
156
123
  }
157
- getTokenByRefreshToken(refreshToken) {
124
+ getTokenByCode(code, state) {
158
125
  return this.http
159
- .get(TOKEN_REFRESH_API, {
160
- params: { refresh_token: refreshToken },
126
+ .get(CALLBACK_API, {
127
+ params: { code, state },
161
128
  })
162
129
  .pipe(mapTokenResponse());
163
130
  }
164
- getTokenByCode(code, state) {
131
+ getCookieByToken(idToken) {
165
132
  return this.http
166
133
  .get(CALLBACK_API, {
167
- params: { code, state },
134
+ params: { idToken },
168
135
  })
169
136
  .pipe(mapTokenResponse());
170
137
  }
@@ -195,6 +162,14 @@ function replaceRedirectUrl(dexUrl, redirectUrl) {
195
162
  .join('&');
196
163
  return `${path}?${replacedQueryParams}`;
197
164
  }
165
+ export function redirectSSOEntry(entry) {
166
+ const hasQuery = entry.includes('?');
167
+ if (hasQuery) {
168
+ const [url, query] = entry.split('?');
169
+ return `${EXTERNAL_REDIRECT_API}?redirect_url=${url}&${query}`;
170
+ }
171
+ return `${EXTERNAL_REDIRECT_API}?redirect_url=${entry}`;
172
+ }
198
173
  function parseParams(query) {
199
174
  if (!query) {
200
175
  return {};
@@ -207,21 +182,12 @@ function parseParams(query) {
207
182
  };
208
183
  }, {});
209
184
  }
210
- function getAccountInfo(state) {
211
- return state.idToken
212
- ? JSON.parse(decodeUrl(state.idToken.split('.')[1]))
213
- : null;
214
- }
215
185
  function mapTokenResponse() {
216
- return pipe(tap(({ token_storage, id_token, refresh_token }) => {
217
- writeStorageToken({
218
- storageType: token_storage,
219
- idToken: id_token,
220
- refreshToken: refresh_token,
221
- });
222
- }), map(({ id_token, refresh_token }) => ({
223
- idToken: id_token,
224
- refreshToken: refresh_token,
186
+ return pipe(map(({ token_type, token_storage, expire_at, issued_at }) => ({
187
+ storageType: token_storage,
188
+ tokenType: token_type,
189
+ expireAt: expire_at,
190
+ issuedAt: issued_at,
225
191
  })));
226
192
  }
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL3N0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUNMLEtBQUssRUFFTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLEVBQUUsRUFDRixVQUFVLEVBQ1YsR0FBRyxFQUNILFdBQVcsRUFDWCxTQUFTLEVBQ1QsR0FBRyxFQUNILElBQUksRUFDSixJQUFJLEdBQ0wsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBRUwsV0FBVyxFQUNYLDJCQUEyQixFQUMzQixVQUFVLEVBQ1YsWUFBWSxHQUNiLE1BQU0sb0JBQW9CLENBQUM7QUFHNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsaUJBQWlCLEdBQ2xCLE1BQU0saUJBQWlCLENBQUM7O0FBa0J6QixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7QUFDaEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQztBQUUvQixNQUFNLFNBQVMsR0FBRyw2QkFBNkIsQ0FBQztBQUNoRCxNQUFNLFlBQVksR0FBRyxnQ0FBZ0MsQ0FBQztBQUN0RCxNQUFN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RyxFQUFFLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdEMsT0FBTztZQUNMLEdBQUcsR0FBRztZQUNOLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSztTQUNiLENBQUM7SUFDSixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsS0FBeUI7SUFDL0MsT0FBTyxLQUFLLENBQUMsT0FBTztRQUNsQixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ1gsQ0FBQztBQUVELFNBQVMsZ0JBQWdCO0lBQ3ZCLE9BQU8sSUFBSSxDQUNULEdBQUcsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQWlCLEVBQUUsRUFBRTtRQUNoRSxpQkFBaUIsQ0FBQztZQUNoQixXQUFXLEVBQUUsYUFBYTtZQUMxQixPQUFPLEVBQUUsUUFBUTtZQUNqQixZQUFZLEVBQUUsYUFBYTtTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwQyxPQUFPLEVBQUUsUUFBUTtRQUNqQixZQUFZLEVBQUUsYUFBYTtLQUM1QixDQUFDLENBQUMsQ0FDSixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIGF1dGhvcml6YXRpb25cbiAqL1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWNvZGVVcmwgfSBmcm9tICdhYjY0JztcbmltcG9ydCB7XG4gIEVNUFRZLFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBjb25jYXQsXG4gIG9mLFxuICBjYXRjaEVycm9yLFxuICBtYXAsXG4gIHNoYXJlUmVwbGF5LFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbiAgcGlwZSxcbiAgZnJvbSxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIFN0cmluZ01hcCxcbiAgQVBJX0dBVEVXQVksXG4gIE5PVF9OT1RJRllfT05fRVJST1JfSEVBREVSUyxcbiAgcHVibGlzaFJlZixcbiAgZ2V0VG9wV2luZG93LFxufSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQWNjb3VudEluZm8gfSBmcm9tICcuLi9wYWdlLXNjYWZmb2xkL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBnZXRJbml0VXJsIH0gZnJvbSAnLi9hcHAtaW5pdC11cmwnO1xuaW1wb3J0IHtcbiAgYXN5bmNSZWFkU3RvcmFnZVRva2VuLFxuICBjbGVhblN0b3JhZ2VUb2tlbixcbiAgcmVhZFN0b3JhZ2VUb2tlbixcbiAgcmVhZFN0b3JhZ2VUeXBlLFxuICB3cml0ZVN0b3JhZ2VUb2tlbixcbn0gZnJvbSAnLi9zdG9yYWdlLXRva2VuJztcblxuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uU3RhdGUge1xuICBpZFRva2VuPzogc3RyaW5nO1xuICByZWZyZXNoVG9rZW4/OiBzdHJpbmc7XG4gIHN0YXRlPzogc3RyaW5nO1xuICBhdXRoVXJsPzogc3RyaW5nO1xuICBsb2dvdXRVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5SZXNwb25zZSB7XG4gIHRva2VuX3N0b3JhZ2U6IFN0b3JhZ2VUeXBlO1xuICBpZF90b2tlbjogc3RyaW5nO1xuICByZWZyZXNoX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFN0b3JhZ2VUeXBlID0gJ2xvY2FsJyB8ICdzZXNzaW9uJztcblxuZXhwb3J0IGNvbnN0IFNUT1JBR0VfVFlQRV9LRVkgPSAndG9rZW5fc3RvcmFnZSc7XG5leHBvcnQgY29uc3QgSURfVE9LRU5fS0VZID0gJ2lkX3Rva2VuJztcbmV4cG9ydCBjb25zdCBSRUZSRVNIX1RPS0VOX0tFWSA9ICdyZWZyZXNoX3Rva2VuJztcbmV4cG9ydCBjb25zdCBDT0RFX0tFWSA9ICdjb2RlJztcblxuY29uc3QgTE9HSU5fQVBJID0gJy9jb25zb2xlL2FwaS92MS90b2tlbi9sb2dpbic7XG5jb25zdCBDQUxMQkFDS19BUEkgPSAnL2NvbnNvbGUvYXBpL3YxL3Rva2VuL2NhbGxiYWNrJztcbmNvbnN0IFRPS0VOX1JFRlJFU0hfQVBJID0gJy9jb25zb2xlL2FwaS92MS90b2tlbi9yZWZyZXNoJztcbmNvbnN0IFRPS0VOX0lORk9fQVBJID0gJy9jb25zb2xlL2FwaS92MS90b2tlbi9pbmZvJztcblxuY29uc3QgUkVESVJFQ1RfVVJJUyA9IG5ldyBTZXQoWydyZWRpcmVjdF91cmknLCAncG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpJ10pO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25TdGF0ZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZWZyZXNoVG9rZW4kJCA9IG5ldyBTdWJqZWN0PHtcbiAgICBpZFRva2VuOiBzdHJpbmc7XG4gICAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gIH0+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZSQgPSB0aGlzLmdldEF1dGhDb25maWd1cmF0aW9uKCkucGlwZShcbiAgICBzd2l0Y2hNYXAoY29uZmlnID0+XG4gICAgICBjb25jYXQodGhpcy5nZXRFeGlzdGVkVG9rZW4oY29uZmlnKSwgdGhpcy5yZWZyZXNoVG9rZW4kJCkucGlwZShcbiAgICAgICAgbWFwKHRva2VuID0+ICh7IC4uLmNvbmZpZywgLi4udG9rZW4gfSkpLFxuICAgICAgKSxcbiAgICApLFxuICAgIHRhcChzdGF0ZSA9PiB7XG4gICAgICB0aGlzLnN0YXRlU25hcHNob3QgPSBzdGF0ZTtcbiAgICAgIGlmICghc3RhdGUuaWRUb2tlbikge1xuICAgICAgICB0aGlzLmxvZ291dCh0cnVlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGF5bG9hZFNuYXBzaG90ID0gZ2V0QWNjb3VudEluZm8oc3RhdGUpO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICApO1xuXG4gIHByaXZhdGUgY2hlY2tUb2tlbkNhY2hlOiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPHVua25vd24+PiA9IHt9O1xuICBwcml2YXRlIHJlZnJlc2hUb2tlbkNhY2hlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIHN0YXRlU25hcHNob3Q6IEF1dGhvcml6YXRpb25TdGF0ZSA9IG51bGw7XG5cbiAgcGF5bG9hZFNuYXBzaG90OiBBY2NvdW50SW5mbztcblxuICBsb2dvdXQoc3BlY2lmaWNVcmwgPSBmYWxzZSkge1xuICAgIGNsZWFuU3RvcmFnZVRva2VuKCk7XG4gICAgdGhpcy5yZWRpcmVjdFRvRGV4KHNwZWNpZmljVXJsICYmIGxvY2F0aW9uLmhyZWYpO1xuICB9XG5cbiAgbG9nb3V0QXVkaXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgYCR7QVBJX0dBVEVXQVl9L2F1dGgvdjEvbG9nb3V0YCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICBoZWFkZXJzOiBOT1RfTk9USUZZX09OX0VSUk9SX0hFQURFUlMsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBhc3luYyByZWRpcmVjdFRvRGV4KHJlZGlyZWN0VXJsOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgaWYgKCF0aGlzLnN0YXRlU25hcHNob3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyDkuLvliqjpgIDlh7rmiJYgc2Vzc2lvbiDmqKHlvI/ot7PovazliLAgZGV4IOWJjemcgOimgeS4u+WKqOa4hemZpCBgdXNlcl9sb2dpbmAgY29va2llIOmYsuatouiHquWKqOaOiOadg1xuICAgIGlmICghIXRoaXMuc3RhdGVTbmFwc2hvdC5pZFRva2VuIHx8IHJlYWRTdG9yYWdlVHlwZSgpID09PSAnc2Vzc2lvbicpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGZldGNoKFxuICAgICAgICAgIGAke3RoaXMuc3RhdGVTbmFwc2hvdC5sb2dvdXRVcmx9JmlkX3Rva2VuX2hpbnQ9JHtcbiAgICAgICAgICAgIC8vIOS4u+WKqOmAgOWHuuaXtuemgeeUqOeOsOaciSB0b2tlblxuICAgICAgICAgICAgdGhpcy5zdGF0ZVNuYXBzaG90LmlkVG9rZW4gfHwgJydcbiAgICAgICAgICB9YCxcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBocmVmID0gcmVwbGFjZVJlZGlyZWN0VXJsKFxuICAgICAgdGhpcy5zdGF0ZVNuYXBzaG90LmF1dGhVcmwsXG4gICAgICAvLyBhdXRoVXJsIOS4reeahCByZWRpcmVjdFVybCDmmK/moLnot6/nlLHvvIzmoLnot6/nlLHkuozmrKHph43lrprlkJHlm54gcG9ydGFsIOaXtuS8muS4ouWksSBjb2RlIOWvvOiHtOeZu+W9leWksei0pVxuICAgICAgLy8g5aaC5p6c5ZCO5pyf5pyJ5a6a5Yi25YyW6KaB5rGC6buY6K6k6aaW6aG15LiN5pivIHBvcnRhbO+8jOWPr+S7peaUueWbnuS5i+WJjeeahOaWueahiO+8jOS9v+eUqOa1j+iniOWZqOWvvOiIquaJk+W8gCBsb2dvdXRVcmzvvIznhLblkI4gZGV4IOmHjeWumuWQkeWIsOaguei3r+eUse+8jOaguei3r+eUsemHjeWumuWQkeWIsOm7mOiupOmmlumhte+8jOmmlumhteWGjeWwhiBhdXRoVXJsIOS4reeahCByZWRpcmVjdFVybCDmm7/mjaLkuLrlvZPliY0gdXJsIOi3s+i9rOWIsCBkZXgg6L+b6KGM55m75b2V77ybXG4gICAgICAvLyDmnIDlpb3njq/looPlj5jph4/lop7liqDpu5jorqTpppbpobXlnLDlnYDmiJbogIUgZGV4IHJlZGlyZWN0VXJsIOebtOaOpeaYr+ato+ehruWcsOWdgFxuICAgICAgcmVkaXJlY3RVcmwgfHwgbG9jYXRpb24ub3JpZ2luICsgJy9jb25zb2xlLXBvcnRhbCcsXG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICBnZXRUb3BXaW5kb3coKS5sb2NhdGlvbi5ocmVmID0gaHJlZjtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIHNob3VsZCBuZXZlciBoYXBwZW4sIGp1c3QgZm9yIHJvYnVzdG5lc3MgaW4gY2FzZSBvZiBjcm9zcy1vcmlnaW4gaWZyYW1lXG4gICAgICBsb2NhdGlvbi5ocmVmID0gaHJlZjtcbiAgICB9XG4gIH1cblxuICByZWZyZXNoVG9rZW4oKSB7XG4gICAgY29uc3QgcmVmcmVzaFRva2VuID0gcmVhZFN0b3JhZ2VUb2tlbigpPy5yZWZyZXNoVG9rZW47XG4gICAgaWYgKHJlZnJlc2hUb2tlbikge1xuICAgICAgaWYgKCF0aGlzLnJlZnJlc2hUb2tlbkNhY2hlJCkge1xuICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbkNhY2hlJCA9IHRoaXMuZ2V0VG9rZW5CeVJlZnJlc2hUb2tlbihcbiAgICAgICAgICByZWZyZXNoVG9rZW4sXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICB0YXAodG9rZW4gPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5DYWNoZSQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW4kJC5uZXh0KHRva2VuKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBtYXAoKHsgaWRUb2tlbiB9KSA9PiBpZFRva2VuKSxcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9nb3V0KHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnJlZnJlc2hUb2tlbkNhY2hlJDtcbiAgICB9XG4gICAgdGhpcy5sb2dvdXQodHJ1ZSk7XG4gICAgcmV0dXJuIEVNUFRZO1xuICB9XG5cbiAgY2hlY2tUb2tlbih0b2tlbjogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrVG9rZW5DYWNoZVt0b2tlbl0pIHtcbiAgICAgIHRoaXMuY2hlY2tUb2tlbkNhY2hlW3Rva2VuXSA9IHRoaXMuaHR0cFxuICAgICAgICAuZ2V0KFRPS0VOX0lORk9fQVBJLCB7XG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwKHtcbiAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5jaGVja1Rva2VuQ2FjaGVbdG9rZW5dID0gbnVsbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNoZWNrVG9rZW5DYWNoZVt0b2tlbl0gPSBudWxsO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBwdWJsaXNoUmVmKCksXG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNoZWNrVG9rZW5DYWNoZVt0b2tlbl07XG4gIH1cblxuICBnZXRUb2tlbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSQucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUuaWRUb2tlbikpO1xuICB9XG5cbiAgZ2V0VG9rZW5QYXlsb2FkPFQ+KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlJC5waXBlKG1hcChzdGF0ZSA9PiBnZXRBY2NvdW50SW5mbyhzdGF0ZSkgYXMgVCkpO1xuICB9XG5cbiAgZ2V0QWNjb3VudEluZm8oKSB7XG4gICAgaWYgKHRoaXMucGF5bG9hZFNuYXBzaG90KSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5wYXlsb2FkU25hcHNob3QpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdGF0ZSQucGlwZShtYXAoc3RhdGUgPT4gZ2V0QWNjb3VudEluZm8oc3RhdGUpIHx8IHt9KSk7XG4gIH1cblxuICBwcml2YXRlIGdldEF1dGhDb25maWd1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8eyBhdXRoX3VybDogc3RyaW5nOyBzdGF0ZTogc3RyaW5nOyBsb2dvdXRfdXJsOiBzdHJpbmcgfT4oTE9HSU5fQVBJKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyZXMgPT4gKHtcbiAgICAgICAgICBhdXRoVXJsOiByZXMuYXV0aF91cmwsXG4gICAgICAgICAgc3RhdGU6IHJlcy5zdGF0ZSxcbiAgICAgICAgICBsb2dvdXRVcmw6IHJlcy5sb2dvdXRfdXJsIHx8ICcnLFxuICAgICAgICB9KSksXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFeGlzdGVkVG9rZW4oY29uZmlnOiBBdXRob3JpemF0aW9uU3RhdGUpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUb2tlbkZyb21Mb2NhbChjb25maWcpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHJldHVybiBvZih7IGlkVG9rZW46ICcnLCByZWZyZXNoVG9rZW46ICcnIH0pO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VG9rZW5Gcm9tTG9jYWwoXG4gICAgY29uZmlnOiBBdXRob3JpemF0aW9uU3RhdGUsXG4gICk6IE9ic2VydmFibGU8eyBpZFRva2VuPzogc3RyaW5nOyByZWZyZXNoVG9rZW4/OiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IHsgcXVlcnlQYXJhbXMsIGhhc2hQYXJhbXMgfSA9IHRoaXMuZ2V0UGFyYW1zKCk7XG5cbiAgICBjb25zdCBjb2RlID0gcXVlcnlQYXJhbXNbQ09ERV9LRVldIHx8IGhhc2hQYXJhbXNbQ09ERV9LRVldO1xuXG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFRva2VuQnlDb2RlKGNvZGUsIGNvbmZpZy5zdGF0ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVmcmVzaFRva2VuID1cbiAgICAgIHF1ZXJ5UGFyYW1zW1JFRlJFU0hfVE9LRU5fS0VZXSB8fCBoYXNoUGFyYW1zW1JFRlJFU0hfVE9LRU5fS0VZXTtcblxuICAgIGlmIChyZWZyZXNoVG9rZW4pIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFRva2VuQnlSZWZyZXNoVG9rZW4ocmVmcmVzaFRva2VuKTtcbiAgICB9XG5cbiAgICBjb25zdCBpZFRva2VuID0gcXVlcnlQYXJhbXNbSURfVE9LRU5fS0VZXSB8fCBoYXNoUGFyYW1zW0lEX1RPS0VOX0tFWV07XG5cbiAgICBpZiAoaWRUb2tlbikge1xuICAgICAgd3JpdGVTdG9yYWdlVG9rZW4oe1xuICAgICAgICBzdG9yYWdlVHlwZTogKHF1ZXJ5UGFyYW1zW1NUT1JBR0VfVFlQRV9LRVldIHx8XG4gICAgICAgICAgaGFzaFBhcmFtc1tTVE9SQUdFX1RZUEVfS0VZXSkgYXMgVG9rZW5SZXNwb25zZVsndG9rZW5fc3RvcmFnZSddLFxuICAgICAgICBpZFRva2VuLFxuICAgICAgICByZWZyZXNoVG9rZW46ICcnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZyb20oYXN5bmNSZWFkU3RvcmFnZVRva2VuKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb2tlbkJ5UmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxUb2tlblJlc3BvbnNlPihUT0tFTl9SRUZSRVNIX0FQSSwge1xuICAgICAgICBwYXJhbXM6IHsgcmVmcmVzaF90b2tlbjogcmVmcmVzaFRva2VuIH0sXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwVG9rZW5SZXNwb25zZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VG9rZW5CeUNvZGUoY29kZTogc3RyaW5nLCBzdGF0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxUb2tlblJlc3BvbnNlPihDQUxMQkFDS19BUEksIHtcbiAgICAgICAgcGFyYW1zOiB7IGNvZGUsIHN0YXRlIH0sXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwVG9rZW5SZXNwb25zZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGFyYW1zKCkge1xuICAgIGNvbnN0IGluaXRVcmwgPSBnZXRJbml0VXJsKCk7XG5cbiAgICBjb25zdCBpbml0TG9jYXRpb24gPSBuZXcgVVJMKGluaXRVcmwpO1xuXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSBwYXJzZVBhcmFtcyhcbiAgICAgIGluaXRMb2NhdGlvbi5zZWFyY2ggPyBpbml0TG9jYXRpb24uc2VhcmNoLnNsaWNlKDEpIDogJycsXG4gICAgKTtcblxuICAgIGNvbnN0IGhhc2hQYXJhbXMgPSBwYXJzZVBhcmFtcyhcbiAgICAgIGluaXRMb2NhdGlvbi5oYXNoID8gaW5pdExvY2F0aW9uLmhhc2guc2xpY2UoMSkgOiAnJyxcbiAgICApO1xuXG4gICAgcmV0dXJuIHsgcXVlcnlQYXJhbXMsIGhhc2hQYXJhbXMgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXBsYWNlUmVkaXJlY3RVcmwoZGV4VXJsOiBzdHJpbmcsIHJlZGlyZWN0VXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgW3BhdGgsIHF1ZXJ5UGFyYW1zXSA9IGRleFVybC5zcGxpdCgnPycpO1xuXG4gIGNvbnN0IHJlcGxhY2VkUXVlcnlQYXJhbXMgPSBxdWVyeVBhcmFtc1xuICAgIC5zcGxpdCgnJicpXG4gICAgLm1hcChwYWlyID0+IHtcbiAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IHBhaXIuc3BsaXQoJz0nKTtcbiAgICAgIHJldHVybiBSRURJUkVDVF9VUklTLmhhcyhrZXkpXG4gICAgICAgID8gYCR7a2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudChyZWRpcmVjdFVybCl9YFxuICAgICAgICA6IGAke2tleX09JHt2YWx1ZX1gO1xuICAgIH0pXG4gICAgLmpvaW4oJyYnKTtcblxuICByZXR1cm4gYCR7cGF0aH0/JHtyZXBsYWNlZFF1ZXJ5UGFyYW1zfWA7XG59XG5cbmZ1bmN0aW9uIHBhcnNlUGFyYW1zKHF1ZXJ5OiBzdHJpbmcpOiBTdHJpbmdNYXAge1xuICBpZiAoIXF1ZXJ5KSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcmV0dXJuIHF1ZXJ5LnNwbGl0KCcmJykucmVkdWNlKChhY2MsIHBhcmFtKSA9PiB7XG4gICAgY29uc3QgW2tleSwgdmFsdWVdID0gcGFyYW0uc3BsaXQoJz0nKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5hY2MsXG4gICAgICBba2V5XTogdmFsdWUsXG4gICAgfTtcbiAgfSwge30pO1xufVxuXG5mdW5jdGlvbiBnZXRBY2NvdW50SW5mbyhzdGF0ZTogQXV0aG9yaXphdGlvblN0YXRlKTogQWNjb3VudEluZm8ge1xuICByZXR1cm4gc3RhdGUuaWRUb2tlblxuICAgID8gSlNPTi5wYXJzZShkZWNvZGVVcmwoc3RhdGUuaWRUb2tlbi5zcGxpdCgnLicpWzFdKSlcbiAgICA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIG1hcFRva2VuUmVzcG9uc2UoKSB7XG4gIHJldHVybiBwaXBlKFxuICAgIHRhcCgoeyB0b2tlbl9zdG9yYWdlLCBpZF90b2tlbiwgcmVmcmVzaF90b2tlbiB9OiBUb2tlblJlc3BvbnNlKSA9PiB7XG4gICAgICB3cml0ZVN0b3JhZ2VUb2tlbih7XG4gICAgICAgIHN0b3JhZ2VUeXBlOiB0b2tlbl9zdG9yYWdlLFxuICAgICAgICBpZFRva2VuOiBpZF90b2tlbixcbiAgICAgICAgcmVmcmVzaFRva2VuOiByZWZyZXNoX3Rva2VuLFxuICAgICAgfSk7XG4gICAgfSksXG4gICAgbWFwKCh7IGlkX3Rva2VuLCByZWZyZXNoX3Rva2VuIH0pID0+ICh7XG4gICAgICBpZFRva2VuOiBpZF90b2tlbixcbiAgICAgIHJlZnJlc2hUb2tlbjogcmVmcmVzaF90b2tlbixcbiAgICB9KSksXG4gICk7XG59XG4iXX0=
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL3N0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFDTCxLQUFLLEVBRUwsRUFBRSxFQUNGLFVBQVUsRUFDVixHQUFHLEVBQ0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxHQUFHLEVBQ0gsSUFBSSxHQUNMLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUVMLDJCQUEyQixFQUMzQixVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsR0FDVixNQUFNLG9CQUFvQixDQUFDO0FBRzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFvQjVDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7QUFFbkMsTUFBTSxTQUFTLEdBQUcsNkJBQTZCLENBQUM7QUFDaEQsTUFBTSxVQUFVLEdBQUcsOEJBQThCLENBQUM7QUFDbEQsTUFBTSxZQUFZLEdBQUcsZ0NBQWdDLENBQUM7QUFDdEQsTUFBTSxpQkFBaUIsR0FBRywrQkFBK0IsQ0FBQztBQUMxRCxNQUFNLGNBQWMsR0FBRyw0QkFBNEIsQ0FBQztBQUNwRCxNQUFNLHFCQUFxQixHQUFHLGdDQUFnQyxDQUFDO0FBRS9ELE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztBQUc1RSxNQUFN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QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdEMsT0FBTztZQUNMLEdBQUcsR0FBRztZQUNOLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSztTQUNiLENBQUM7SUFDSixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0I7SUFDdkIsT0FBTyxJQUFJLENBQ1QsR0FBRyxDQUNELENBQUMsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkUsV0FBVyxFQUFFLGFBQWE7UUFDMUIsU0FBUyxFQUFFLFVBQVU7UUFDckIsUUFBUSxFQUFFLFNBQVM7UUFDbkIsUUFBUSxFQUFFLFNBQVM7S0FDcEIsQ0FBQyxDQUNILENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSBhdXRob3JpemF0aW9uXG4gKi9cblxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRU1QVFksXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBjYXRjaEVycm9yLFxuICBtYXAsXG4gIHNoYXJlUmVwbGF5LFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbiAgcGlwZSxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIFN0cmluZ01hcCxcbiAgTk9UX05PVElGWV9PTl9FUlJPUl9IRUFERVJTLFxuICBwdWJsaXNoUmVmLFxuICBnZXRUb3BXaW5kb3csXG4gIHNraXBFcnJvcixcbn0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEFjY291bnRJbmZvIH0gZnJvbSAnLi4vcGFnZS1zY2FmZm9sZC9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgZ2V0SW5pdFVybCB9IGZyb20gJy4vYXBwLWluaXQtdXJsJztcblxuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uU3RhdGUge1xuICBleHBpcmVBdD86IHN0cmluZztcbiAgaXNzdWVkQXQ/OiBzdHJpbmc7XG4gIHN0YXRlPzogc3RyaW5nO1xuICBhdXRoVXJsPzogc3RyaW5nO1xuICBsb2dvdXRVcmw/OiBzdHJpbmc7XG4gIGluZm8/OiBBY2NvdW50SW5mbztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb2tlblJlc3BvbnNlIHtcbiAgdG9rZW5fc3RvcmFnZTogU3RvcmFnZVR5cGU7XG4gIHRva2VuX3R5cGU6IHN0cmluZztcbiAgZXhwaXJlX2F0OiBzdHJpbmc7XG4gIGlzc3VlZF9hdDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBTdG9yYWdlVHlwZSA9ICdsb2NhbCcgfCAnc2Vzc2lvbic7XG5cbmV4cG9ydCBjb25zdCBTVE9SQUdFX1RZUEVfS0VZID0gJ3Rva2VuX3N0b3JhZ2UnO1xuZXhwb3J0IGNvbnN0IENPREVfS0VZID0gJ2NvZGUnO1xuZXhwb3J0IGNvbnN0IElEX1RPS0VOID0gJ2lkX3Rva2VuJztcblxuY29uc3QgTE9HSU5fQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9sb2dpbic7XG5jb25zdCBMT0dPVVRfQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9sb2dvdXQnO1xuY29uc3QgQ0FMTEJBQ0tfQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9jYWxsYmFjayc7XG5jb25zdCBUT0tFTl9SRUZSRVNIX0FQSSA9ICcvY29uc29sZS9hcGkvdjIvdG9rZW4vcmVmcmVzaCc7XG5jb25zdCBUT0tFTl9JTkZPX0FQSSA9ICcvY29uc29sZS9hcGkvdjIvdG9rZW4vaW5mbyc7XG5jb25zdCBFWFRFUk5BTF9SRURJUkVDVF9BUEkgPSAnL2NvbnNvbGUvYXBpL3YyL3Rva2VuL3JlZGlyZWN0JztcblxuY29uc3QgUkVESVJFQ1RfVVJJUyA9IG5ldyBTZXQoWydyZWRpcmVjdF91cmknLCAncG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpJ10pO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25TdGF0ZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZSQgPSB0aGlzLmdldEF1dGhDb25maWd1cmF0aW9uKCkucGlwZShcbiAgICBzd2l0Y2hNYXAoY29uZmlnID0+XG4gICAgICB0aGlzLmdldEV4aXN0ZWRUb2tlbihjb25maWcpLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCh0b2tlbiA9PlxuICAgICAgICAgIHRoaXMuaHR0cC5nZXQ8QWNjb3VudEluZm8+KFRPS0VOX0lORk9fQVBJLCB7fSkucGlwZShcbiAgICAgICAgICAgIHNraXBFcnJvcihudWxsKSxcbiAgICAgICAgICAgIG1hcChpbmZvID0+ICh7XG4gICAgICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAgICAgLi4udG9rZW4sXG4gICAgICAgICAgICAgIGluZm8sXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKSxcbiAgICB0YXAoc3RhdGUgPT4ge1xuICAgICAgdGhpcy5zdGF0ZVNuYXBzaG90ID0gc3RhdGU7XG4gICAgICBpZiAoIXN0YXRlLmluZm8pIHtcbiAgICAgICAgdGhpcy5sb2dvdXQodHJ1ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLnBheWxvYWRTbmFwc2hvdCA9IHN0YXRlLmluZm87XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICk7XG5cbiAgcHJpdmF0ZSBjaGVja1Rva2VuQ2FjaGUkOiBPYnNlcnZhYmxlPHVua25vd24+ID0gbnVsbDtcbiAgcHJpdmF0ZSByZWZyZXNoVG9rZW5DYWNoZSQ6IE9ic2VydmFibGU8dW5rbm93bj47XG4gIHN0YXRlU25hcHNob3Q6IEF1dGhvcml6YXRpb25TdGF0ZSA9IG51bGw7XG5cbiAgcGF5bG9hZFNuYXBzaG90OiBBY2NvdW50SW5mbztcblxuICBsb2dvdXQoc3BlY2lmaWNVcmwgPSBmYWxzZSkge1xuICAgIHRoaXMucmVkaXJlY3RUb0RleChzcGVjaWZpY1VybCAmJiBsb2NhdGlvbi5ocmVmKTtcbiAgfVxuXG4gIGxvZ291dEF1ZGl0KCkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KExPR09VVF9BUEksIHtcbiAgICAgIGhlYWRlcnM6IE5PVF9OT1RJRllfT05fRVJST1JfSEVBREVSUyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHJlZGlyZWN0VG9EZXgocmVkaXJlY3RVcmw6IHN0cmluZyA9IG51bGwpIHtcbiAgICBpZiAoIXRoaXMuc3RhdGVTbmFwc2hvdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGhyZWYgPSByZXBsYWNlUmVkaXJlY3RVcmwoXG4gICAgICB0aGlzLnN0YXRlU25hcHNob3QuYXV0aFVybCxcbiAgICAgIC8vIGF1dGhVcmwg5Lit55qEIHJlZGlyZWN0VXJsIOaYr+aguei3r+eUse+8jOaguei3r+eUseS6jOasoemHjeWumuWQkeWbniBwb3J0YWwg5pe25Lya5Lii5aSxIGNvZGUg5a+86Ie055m75b2V5aSx6LSlXG4gICAgICAvLyDlpoLmnpzlkI7mnJ/mnInlrprliLbljJbopoHmsYLpu5jorqTpppbpobXkuI3mmK8gcG9ydGFs77yM5Y+v5Lul5pS55Zue5LmL5YmN55qE5pa55qGI77yM5L2/55So5rWP6KeI5Zmo5a+86Iiq5omT5byAIGxvZ291dFVybO+8jOeEtuWQjiBkZXgg6YeN5a6a5ZCR5Yiw5qC56Lev55Sx77yM5qC56Lev55Sx6YeN5a6a5ZCR5Yiw6buY6K6k6aaW6aG177yM6aaW6aG15YaN5bCGIGF1dGhVcmwg5Lit55qEIHJlZGlyZWN0VXJsIOabv+aNouS4uuW9k+WJjSB1cmwg6Lez6L2s5YiwIGRleCDov5vooYznmbvlvZXvvJtcbiAgICAgIC8vIOacgOWlveeOr+Wig+WPmOmHj+WinuWKoOm7mOiupOmmlumhteWcsOWdgOaIluiAhSBkZXggcmVkaXJlY3RVcmwg55u05o6l5piv5q2j56Gu5Zyw5Z2AXG4gICAgICByZWRpcmVjdFVybCB8fCBsb2NhdGlvbi5vcmlnaW4gKyAnL2NvbnNvbGUtcG9ydGFsJyxcbiAgICApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGdldFRvcFdpbmRvdygpLmxvY2F0aW9uLmhyZWYgPSBocmVmO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbiwganVzdCBmb3Igcm9idXN0bmVzcyBpbiBjYXNlIG9mIGNyb3NzLW9yaWdpbiBpZnJhbWVcbiAgICAgIGxvY2F0aW9uLmhyZWYgPSBocmVmO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2hUb2tlbigpIHtcbiAgICBpZiAodGhpcy5yZWZyZXNoVG9rZW5DYWNoZSQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlZnJlc2hUb2tlbkNhY2hlJDtcbiAgICB9XG5cbiAgICB0aGlzLnJlZnJlc2hUb2tlbkNhY2hlJCA9IHRoaXMuaHR0cC5nZXQoVE9LRU5fUkVGUkVTSF9BUEkpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbkNhY2hlJCA9IG51bGw7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICB0aGlzLmxvZ291dCh0cnVlKTtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgfSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLnJlZnJlc2hUb2tlbkNhY2hlJDtcbiAgfVxuXG4gIGNoZWNrVG9rZW4oKSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrVG9rZW5DYWNoZSQpIHtcbiAgICAgIHRoaXMuY2hlY2tUb2tlbkNhY2hlJCA9IHRoaXMuaHR0cC5nZXQoVE9LRU5fSU5GT19BUEkpLnBpcGUoXG4gICAgICAgIHRhcCh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGVja1Rva2VuQ2FjaGUkID0gbnVsbDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrVG9rZW5DYWNoZSQgPSBudWxsO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBwdWJsaXNoUmVmKCksXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jaGVja1Rva2VuQ2FjaGUkO1xuICB9XG5cbiAgZ2V0VG9rZW5QYXlsb2FkPFQ+KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlJC5waXBlKG1hcChzdGF0ZSA9PiBzdGF0ZS5pbmZvIGFzIFQpKTtcbiAgfVxuXG4gIGdldEFjY291bnRJbmZvKCkge1xuICAgIGlmICh0aGlzLnBheWxvYWRTbmFwc2hvdCkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMucGF5bG9hZFNuYXBzaG90KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUobWFwKHN0YXRlID0+IHN0YXRlLmluZm8gfHwge30pKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXV0aENvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDx7IGF1dGhfdXJsOiBzdHJpbmc7IHN0YXRlOiBzdHJpbmc7IGxvZ291dF91cmw6IHN0cmluZyB9PihMT0dJTl9BUEkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiAoe1xuICAgICAgICAgIGF1dGhVcmw6IHJlcy5hdXRoX3VybCxcbiAgICAgICAgICBzdGF0ZTogcmVzLnN0YXRlLFxuICAgICAgICAgIGxvZ291dFVybDogcmVzLmxvZ291dF91cmwgfHwgJycsXG4gICAgICAgIH0pKSxcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldEV4aXN0ZWRUb2tlbihjb25maWc6IEF1dGhvcml6YXRpb25TdGF0ZSkge1xuICAgIHJldHVybiB0aGlzLmdldFRva2VuRnJvbUxvY2FsKGNvbmZpZykucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgcmV0dXJuIG9mKHsgZXhwaXJlQXQ6ICcnLCBpc3N1ZWRBdDogJycgfSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb2tlbkZyb21Mb2NhbChcbiAgICBjb25maWc6IEF1dGhvcml6YXRpb25TdGF0ZSxcbiAgKTogT2JzZXJ2YWJsZTx7IGV4cGlyZUF0Pzogc3RyaW5nOyBpc3N1ZWRBdD86IHN0cmluZyB9PiB7XG4gICAgY29uc3QgeyBxdWVyeVBhcmFtcywgaGFzaFBhcmFtcyB9ID0gdGhpcy5nZXRQYXJhbXMoKTtcblxuICAgIGNvbnN0IGNvZGUgPSBxdWVyeVBhcmFtc1tDT0RFX0tFWV0gfHwgaGFzaFBhcmFtc1tDT0RFX0tFWV07XG4gICAgY29uc3QgaWRUb2tlbiA9IHF1ZXJ5UGFyYW1zW0lEX1RPS0VOXSB8fCBoYXNoUGFyYW1zW0lEX1RPS0VOXTtcblxuICAgIGlmIChjb2RlKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRUb2tlbkJ5Q29kZShjb2RlLCBjb25maWcuc3RhdGUpO1xuICAgIH1cblxuICAgIGlmIChpZFRva2VuKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDb29raWVCeVRva2VuKGlkVG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBvZihudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VG9rZW5CeUNvZGUoY29kZTogc3RyaW5nLCBzdGF0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxUb2tlblJlc3BvbnNlPihDQUxMQkFDS19BUEksIHtcbiAgICAgICAgcGFyYW1zOiB7IGNvZGUsIHN0YXRlIH0sXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwVG9rZW5SZXNwb25zZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29va2llQnlUb2tlbihpZFRva2VuOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PFRva2VuUmVzcG9uc2U+KENBTExCQUNLX0FQSSwge1xuICAgICAgICBwYXJhbXM6IHsgaWRUb2tlbiB9LFxuICAgICAgfSlcbiAgICAgIC5waXBlKG1hcFRva2VuUmVzcG9uc2UoKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFBhcmFtcygpIHtcbiAgICBjb25zdCBpbml0VXJsID0gZ2V0SW5pdFVybCgpO1xuXG4gICAgY29uc3QgaW5pdExvY2F0aW9uID0gbmV3IFVSTChpbml0VXJsKTtcblxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gcGFyc2VQYXJhbXMoXG4gICAgICBpbml0TG9jYXRpb24uc2VhcmNoID8gaW5pdExvY2F0aW9uLnNlYXJjaC5zbGljZSgxKSA6ICcnLFxuICAgICk7XG5cbiAgICBjb25zdCBoYXNoUGFyYW1zID0gcGFyc2VQYXJhbXMoXG4gICAgICBpbml0TG9jYXRpb24uaGFzaCA/IGluaXRMb2NhdGlvbi5oYXNoLnNsaWNlKDEpIDogJycsXG4gICAgKTtcblxuICAgIHJldHVybiB7IHF1ZXJ5UGFyYW1zLCBoYXNoUGFyYW1zIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVwbGFjZVJlZGlyZWN0VXJsKGRleFVybDogc3RyaW5nLCByZWRpcmVjdFVybDogc3RyaW5nKSB7XG4gIGNvbnN0IFtwYXRoLCBxdWVyeVBhcmFtc10gPSBkZXhVcmwuc3BsaXQoJz8nKTtcblxuICBjb25zdCByZXBsYWNlZFF1ZXJ5UGFyYW1zID0gcXVlcnlQYXJhbXNcbiAgICAuc3BsaXQoJyYnKVxuICAgIC5tYXAocGFpciA9PiB7XG4gICAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBwYWlyLnNwbGl0KCc9Jyk7XG4gICAgICByZXR1cm4gUkVESVJFQ1RfVVJJUy5oYXMoa2V5KVxuICAgICAgICA/IGAke2tleX09JHtlbmNvZGVVUklDb21wb25lbnQocmVkaXJlY3RVcmwpfWBcbiAgICAgICAgOiBgJHtrZXl9PSR7dmFsdWV9YDtcbiAgICB9KVxuICAgIC5qb2luKCcmJyk7XG5cbiAgcmV0dXJuIGAke3BhdGh9PyR7cmVwbGFjZWRRdWVyeVBhcmFtc31gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkaXJlY3RTU09FbnRyeShlbnRyeTogc3RyaW5nKSB7XG4gIGNvbnN0IGhhc1F1ZXJ5ID0gZW50cnkuaW5jbHVkZXMoJz8nKTtcblxuICBpZiAoaGFzUXVlcnkpIHtcbiAgICBjb25zdCBbdXJsLCBxdWVyeV0gPSBlbnRyeS5zcGxpdCgnPycpO1xuICAgIHJldHVybiBgJHtFWFRFUk5BTF9SRURJUkVDVF9BUEl9P3JlZGlyZWN0X3VybD0ke3VybH0mJHtxdWVyeX1gO1xuICB9XG5cbiAgcmV0dXJuIGAke0VYVEVSTkFMX1JFRElSRUNUX0FQSX0/cmVkaXJlY3RfdXJsPSR7ZW50cnl9YDtcbn1cblxuZnVuY3Rpb24gcGFyc2VQYXJhbXMocXVlcnk6IHN0cmluZyk6IFN0cmluZ01hcCB7XG4gIGlmICghcXVlcnkpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICByZXR1cm4gcXVlcnkuc3BsaXQoJyYnKS5yZWR1Y2UoKGFjYywgcGFyYW0pID0+IHtcbiAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBwYXJhbS5zcGxpdCgnPScpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjYyxcbiAgICAgIFtrZXldOiB2YWx1ZSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG5cbmZ1bmN0aW9uIG1hcFRva2VuUmVzcG9uc2UoKSB7XG4gIHJldHVybiBwaXBlKFxuICAgIG1hcChcbiAgICAgICh7IHRva2VuX3R5cGUsIHRva2VuX3N0b3JhZ2UsIGV4cGlyZV9hdCwgaXNzdWVkX2F0IH06IFRva2VuUmVzcG9uc2UpID0+ICh7XG4gICAgICAgIHN0b3JhZ2VUeXBlOiB0b2tlbl9zdG9yYWdlLFxuICAgICAgICB0b2tlblR5cGU6IHRva2VuX3R5cGUsXG4gICAgICAgIGV4cGlyZUF0OiBleHBpcmVfYXQsXG4gICAgICAgIGlzc3VlZEF0OiBpc3N1ZWRfYXQsXG4gICAgICB9KSxcbiAgICApLFxuICApO1xufVxuIl19
@@ -85,6 +85,10 @@ export const POSITIVE_INT_PATTERN = {
85
85
  pattern: /^[1-9]\d*$/,
86
86
  tip: 'regexp_tip_positive_integer_pattern',
87
87
  };
88
+ export const POSITIVE_NUMBER_PATTERN = {
89
+ pattern: /^([1-9]\d*(?:\.\d*)?|0*\.0*[1-9]\d*)$/,
90
+ tip: 'regexp_tip_positive_number_pattern',
91
+ };
88
92
  export const K8S_RESOURCE_NAME_BASE = {
89
93
  pattern: /^[\da-z]([\da-z-]*[\da-z])?$/,
90
94
  tip: 'regexp_tip_k8s_resource_name_base',
@@ -111,9 +115,7 @@ export const HTTP_IP_OR_DOMAIN_PATTERN = {
111
115
  tip: 'domain_ip_placeholder',
112
116
  };
113
117
  export const HTTP_DUAL_IP_OR_DOMAIN_PATTERN = {
114
- pattern:
115
- // eslint-disable-next-line unicorn/better-regex
116
- /^((http|https):\/\/)((((2(5[0-5]|[0-4]\d))|[01]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[01]?\d{1,2})){3})|((([\dA-Za-z-]*[\dA-Za-z])\.)*([A-Za-z]|[A-Za-z][\dA-Za-z-]*[\dA-Za-z]))|(\[((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:)(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\]))(:(([1-9]\d{0,3})|([1-5]\d{4})|(6[0-4]\d{3})|(65[0-4]\d{2})|(655[0-2]\d)|(6553[0-5])))?(\/\S*)*$/,
118
+ pattern: /^((http|https):\/\/)((((2(5[0-5]|[0-4]\d))|[01]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[01]?\d{1,2})){3})|((([\dA-Za-z-]*[\dA-Za-z])\.)*([A-Za-z]|[A-Za-z][\dA-Za-z-]*[\dA-Za-z]))|(\[((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:)(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\]))(:(([1-9]\d{0,3})|([1-5]\d{4})|(6[0-4]\d{3})|(65[0-4]\d{2})|(655[0-2]\d)|(6553[0-5])))?(\/\S*)*$/,
117
119
  tip: 'domain_ip_placeholder',
118
120
  };
119
121
  export const HTTP_ADDRESS_PATTERN = {
@@ -137,4 +139,4 @@ export const NUMBER_PATTERN = {
137
139
  pattern: /^-?\d+(\.\d*)?$/,
138
140
  tip: 'invalid_number',
139
141
  };
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY29yZS9jb25zdGFudHMvcGF0dGVybnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsaUNBQWlDLENBQUM7QUFFckUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUMxQixvRkFBb0YsQ0FBQztBQUV2RixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FDNUIsb21CQUFvbUIsQ0FBQztBQUV2bUIsTUFBTSxxQkFBcUIsR0FBRyxXQUFXLENBQUM7QUFDMUMsTUFBTSxpQkFBaUIsR0FDckIsc0hBQXNILENBQUM7QUFFekgsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFVBQWtCLEVBQUUsRUFBRTtJQUNoRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLE9BQU8sS0FBSyxxQkFBcUIsS0FBSyxJQUFJLElBQUksaUJBQWlCLEtBQUssQ0FBQztBQUN2RSxDQUFDLENBQUM7QUFFRixNQUFNLHlCQUF5QixHQUFHLENBQUMsVUFBa0IsRUFBRSxFQUFFO0lBQ3ZELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEUsT0FBTyxJQUFJLFVBQVUsUUFBUSxxQkFBcUIsT0FBTyxJQUFJLFlBQVkscUJBQXFCLFFBQVEsSUFBSSxPQUFPLGlCQUFpQixLQUFLLENBQUM7QUFDMUksQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLE9BQU8sRUFDTCwrRkFBK0Y7SUFDakcsR0FBRyxFQUFFLGNBQWM7Q0FDcEIsQ0FBQztBQUVGLHVCQUF1QjtBQUN2QixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRztJQUN6QyxPQUFPLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxlQUFlLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQztJQUNwRSxHQUFHLEVBQUUsbUNBQW1DO0NBQ3pDLENBQUM7QUFFRix1QkFBdUI7QUFDdkIsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUc7SUFDM0MsT0FBTyxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksaUJBQWlCLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQztJQUN0RSxHQUFHLEVBQUUscUNBQXFDO0NBQzNDLENBQUM7QUFFRixzREFBc0Q7QUFDdEQsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUc7SUFDOUMsT0FBTyxFQUFFLElBQUksTUFBTSxDQUNqQixJQUFJLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxNQUFNLGtCQUFrQixDQUM3RCxtQkFBbUIsQ0FDcEIsR0FBRyxDQUNMO0lBQ0QsR0FBRyxFQUFFLG1DQUFtQztDQUN6QyxDQUFDO0FBRUYsc0RBQXNEO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHO0lBQ2hELE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FDakIsSUFBSSx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLGtCQUFrQixDQUN0RSxtQkFBbUIsQ0FDcEIsR0FBRyxDQUNMO0lBQ0QsR0FBRyxFQUFFLHFDQUFxQztDQUMzQyxDQUFDO0FBRUYsNkRBQTZEO0FBQzdELE1BQU0sQ0FBQyxNQUFNLHVDQUF1QyxHQUFHO0lBQ3JELE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FDakIsSUFBSSxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsTUFBTSx5QkFBeUIsQ0FDcEUsaUJBQWlCLENBQ2xCLE1BQU0sa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUNsRDtJQUNELEdBQUcsRUFBRSwwQ0FBMEM7Q0FDaEQsQ0FBQztBQUVGLDZCQUE2QjtBQUM3QixNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRztJQUNoRCxPQUFPLEVBQUUsSUFBSSxNQUFNLENBQ2pCLElBQUksZUFBZSxNQUFNLG1CQUFtQixNQUFNLGlCQUFpQixHQUFHLENBQ3ZFO0lBQ0QsR0FBRyxFQUFFLG1DQUFtQztDQUN6QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUc7SUFDdkMsT0FBTyxFQUNMLHdGQUF3RjtJQUMxRixHQUFHLEVBQUUsbUNBQW1DO0NBQ3pDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsT0FBTyxFQUFFLElBQUksTUFBTSxDQUFDLG1CQUFtQixDQUFDO0lBQ3hDLFdBQVcsRUFBRSwyQkFBMkI7SUFDeEMsR0FBRyxFQUFFLG1CQUFtQjtDQUN6QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsT0FBTyxFQUNMLCtFQUErRTtJQUNqRixXQUFXLEVBQUUsd0JBQXdCO0lBQ3JDLEdBQUcsRUFBRSx1QkFBdUI7Q0FDN0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixPQUFPLEVBQ0wsK0VBQStFO0lBQ2pGLEdBQUcsRUFBRSxZQUFZO0NBQ2xCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsT0FBTyxFQUFFLElBQUksTUFBTSxDQUFDLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQyxHQUFHLEVBQUUsWUFBWTtDQUNsQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDbkMsT0FBTyxFQUFFLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDO0NBQ3ZDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxPQUFPLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxlQUFlLE1BQU0saUJBQWlCLEdBQUcsQ0FBQztDQUNuRSxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDckMsT0FBTyxFQUFFLElBQUksTUFBTSxDQUFDLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQ2pFLEdBQUcsRUFBRSx1QkFBdUI7Q0FDN0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLE9BQU8sRUFBRSxtQkFBbUI7SUFDNUIsR0FBRyxFQUFFLDBDQUEwQztDQUNoRCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDbEMsT0FBTyxFQUFFLFlBQVk7SUFDckIsR0FBRyxFQUFFLHFDQUFxQztDQUMzQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsT0FBTyxFQUFFLDhCQUE4QjtJQUN2QyxHQUFHLEVBQUUsbUNBQW1DO0NBQ3pDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRztJQUNuRCxPQUFPLEVBQUUsNkRBQTZEO0lBQ3RFLEdBQUcsRUFBRSxzQ0FBc0M7Q0FDNUMsQ0FBQztBQUVGLHlEQUF5RDtBQUN6RCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRztJQUNqRCxPQUFPLEVBQUUsb0NBQW9DO0lBQzdDLEdBQUcsRUFBRSxnQ0FBZ0M7Q0FDdEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHO0lBQzlDLE9BQU8sRUFBRSxxQ0FBcUM7SUFDOUMsR0FBRyxFQUFFLGtDQUFrQztDQUN4QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUNBQXVDLEdBQUc7SUFDckQsT0FBTyxFQUFFLDRCQUE0QjtJQUNyQyxHQUFHLEVBQUUsb0RBQW9EO0NBQzFELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxPQUFPLEVBQ0wsOFFBQThRO0lBQ2hSLEdBQUcsRUFBRSx1QkFBdUI7Q0FDN0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHO0lBQzVDLE9BQU87SUFDTCxnREFBZ0Q7SUFDaEQsaTBDQUFpMEM7SUFDbjBDLEdBQUcsRUFBRSx1QkFBdUI7Q0FDN0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2xDLE9BQU8sRUFBRSwrQkFBK0I7SUFDeEMsR0FBRyxFQUFFLDJCQUEyQjtDQUNqQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLE9BQU8sRUFBRSw2QkFBNkI7SUFDdEMsR0FBRyxFQUFFLGVBQWU7Q0FDckIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLE9BQU8sRUFBRSw4Q0FBOEM7SUFDdkQsR0FBRyxFQUFFLHNCQUFzQjtJQUMzQixXQUFXLEVBQUUsNkJBQTZCO0NBQzNDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsR0FBRyxFQUFFLDRCQUE0QjtDQUNsQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsR0FBRyxFQUFFLGdCQUFnQjtDQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERPTUFJTl9QQVRURVJOX0JBU0UgPSAnXihbXFxcXGRhLXouLV0rKVxcXFwuKFthLXouXXsyLDZ9KSQnO1xuXG5leHBvcnQgY29uc3QgSVBfUEFUVEVSTl9CQVNFID1cbiAgJ14oPzooPzoyNVswLTVdfDJbMC00XVxcXFxkfFswMV0/XFxcXGR7MSwyfSlcXFxcLil7M30oPzoyNVswLTVdfDJbMC00XVxcXFxkfFswMV0/XFxcXGR7MSwyfSkkJztcblxuZXhwb3J0IGNvbnN0IElQVjZfUEFUVEVSTl9CQVNFID1cbiAgJ14oKFswLTlhLWZBLUZdezEsNH06KXs3fVswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDd9OnwoWzAtOWEtZkEtRl17MSw0fTopezEsNn06WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsNX0oOlswLTlhLWZBLUZdezEsNH0pezEsMn18KFswLTlhLWZBLUZdezEsNH06KXsxLDR9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDN9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwzfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsMn0oOlswLTlhLWZBLUZdezEsNH0pezEsNX18WzAtOWEtZkEtRl17MSw0fTooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDZ9KXw6KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw3fXw6KXxmZTgwOig6WzAtOWEtZkEtRl17MCw0fSl7MCw0fSVbMC05YS16QS1aXSt8OjooZmZmZig6MHsxLDR9KT86KT8oKDI1WzAtNV18KDJbMC00XXwxP1swLTldKT9bMC05XSkuKXszfSgyNVswLTVdfCgyWzAtNF18MT9bMC05XSk/WzAtOV0pfChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fTooKDI1WzAtNV18KDJbMC00XXwxP1swLTldKT9bMC05XSkuKXszfSgyNVswLTVdfCgyWzAtNF18MT9bMC05XSk/WzAtOV0pKSQnO1xuXG5jb25zdCBQUk9UT0NPTF9QQVRURVJOX0JBU0UgPSAnaHR0cHM/Oi8vJztcbmNvbnN0IFBPUlRfUEFUVEVSTl9CQVNFID1cbiAgJyg6KDY1NTNbMC01XXw2NTVbMC0yXVxcXFxkfDY1WzAtNF1cXFxcZFxcXFxkfDZbMC00XVxcXFxkXFxcXGRcXFxcZHxbMS01XVxcXFxkXFxcXGRcXFxcZFxcXFxkfFsxLTldXFxcXGRcXFxcZFxcXFxkfFsxLTldXFxcXGRcXFxcZHxbMS05XVxcXFxkfFsxLTldKSknO1xuXG5jb25zdCBhZGRQb3J0QW5kUHJvdG9jb2wgPSAocGF0dGVyblN0cjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IG1haW4gPSBwYXR0ZXJuU3RyLnJlcGxhY2UoLyheXFxeKT8vLCAnJykucmVwbGFjZSgvKFxcJD8pJC8sICcnKTtcbiAgcmV0dXJuIGBeKCR7UFJPVE9DT0xfUEFUVEVSTl9CQVNFfSk/JHttYWlufSgke1BPUlRfUEFUVEVSTl9CQVNFfSk/JGA7XG59O1xuXG5jb25zdCBhZGRQb3J0QW5kUHJvdG9jb2xGb3JJcHY2ID0gKHBhdHRlcm5TdHI6IHN0cmluZykgPT4ge1xuICBjb25zdCBtYWluID0gcGF0dGVyblN0ci5yZXBsYWNlKC8oXlxcXik/LywgJycpLnJlcGxhY2UoLyhcXCQ/KSQvLCAnJyk7XG4gIHJldHVybiBgKCR7cGF0dGVyblN0cn0pfCheKCR7UFJPVE9DT0xfUEFUVEVSTl9CQVNFfSlcXFxcWyR7bWFpbn1cXFxcXSQpfCheKCR7UFJPVE9DT0xfUEFUVEVSTl9CQVNFfSk/XFxcXFske21haW59XFxcXF0oJHtQT1JUX1BBVFRFUk5fQkFTRX0pJClgO1xufTtcblxuZXhwb3J0IGNvbnN0IFBPUlRfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjpcbiAgICAvKF5bMS05XVxcZHswLDN9JCl8KF5bMS01XVxcZHs0fSQpfF4oNlswLTRdXFxkezN9JCl8KF42NVswLTRdXFxkezJ9JCl8KF42NTVbMC0yXVxcZCQpfCheNjU1M1swLTVdJCkvLFxuICB0aXA6ICdpbnZhbGlkX3BvcnQnLFxufTtcblxuLy8gaW5jbHVkZSBpcHY0LCBkb21haW5cbmV4cG9ydCBjb25zdCBJUF9BRERSRVNTX0hPU1ROQU1FX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IG5ldyBSZWdFeHAoYCgke0lQX1BBVFRFUk5fQkFTRX0pfCgke0RPTUFJTl9QQVRURVJOX0JBU0V9KWApLFxuICB0aXA6ICdyZWdleHBfdGlwX2lwX2FkZHJlc3Nfb3JfaG9zdG5hbWUnLFxufTtcblxuLy8gaW5jbHVkZSBpcHY2LCBkb21haW5cbmV4cG9ydCBjb25zdCBJUFY2X0FERFJFU1NfSE9TVE5BTUVfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogbmV3IFJlZ0V4cChgKCR7SVBWNl9QQVRURVJOX0JBU0V9KXwoJHtET01BSU5fUEFUVEVSTl9CQVNFfSlgKSxcbiAgdGlwOiAncmVnZXhwX3RpcF9pcHY2X2FkZHJlc3Nfb3JfaG9zdG5hbWUnLFxufTtcblxuLy8gaW5jbHVkZSBpcHY0LCBkb21haW4sIGFuZCBzdXBwb3J0IHBvcnQgYW5kIHByb3RvY29sXG5leHBvcnQgY29uc3QgSVBfQUREUkVTU19IT1NUTkFNRV9QT1JUX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IG5ldyBSZWdFeHAoXG4gICAgYCgke2FkZFBvcnRBbmRQcm90b2NvbChJUF9QQVRURVJOX0JBU0UpfSl8KCR7YWRkUG9ydEFuZFByb3RvY29sKFxuICAgICAgRE9NQUlOX1BBVFRFUk5fQkFTRSxcbiAgICApfSlgLFxuICApLFxuICB0aXA6ICdyZWdleHBfdGlwX2lwX2FkZHJlc3Nfb3JfaG9zdG5hbWUnLFxufTtcblxuLy8gaW5jbHVkZSBpcHY2LCBkb21haW4sIGFuZCBzdXBwb3J0IHBvcnQgYW5kIHByb3RvY29sXG5leHBvcnQgY29uc3QgSVBWNl9BRERSRVNTX0hPU1ROQU1FX1BPUlRfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogbmV3IFJlZ0V4cChcbiAgICBgKCR7YWRkUG9ydEFuZFByb3RvY29sRm9ySXB2NihJUFY2X1BBVFRFUk5fQkFTRSl9KXwoJHthZGRQb3J0QW5kUHJvdG9jb2woXG4gICAgICBET01BSU5fUEFUVEVSTl9CQVNFLFxuICAgICl9KWAsXG4gICksXG4gIHRpcDogJ3JlZ2V4cF90aXBfaXB2Nl9hZGRyZXNzX29yX2hvc3RuYW1lJyxcbn07XG5cbi8vIGluY2x1ZGUgIGlwdjQsIGlwdjYsIGRvbWFpbiwgYW5kIHN1cHBvcnQgcG9ydCBhbmQgcHJvdG9jb2xcbmV4cG9ydCBjb25zdCBJUFY0X0lQVjZfQUREUkVTU19IT1NUTkFNRV9QT1JUX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IG5ldyBSZWdFeHAoXG4gICAgYCgke2FkZFBvcnRBbmRQcm90b2NvbChJUF9QQVRURVJOX0JBU0UpfSl8KCR7YWRkUG9ydEFuZFByb3RvY29sRm9ySXB2NihcbiAgICAgIElQVjZfUEFUVEVSTl9CQVNFLFxuICAgICl9KXwoJHthZGRQb3J0QW5kUHJvdG9jb2woRE9NQUlOX1BBVFRFUk5fQkFTRSl9KWAsXG4gICksXG4gIHRpcDogJ3JlZ2V4cF90aXBfaXB2NF9pcHY2X2FkZHJlc3Nfb3JfaG9zdG5hbWUnLFxufTtcblxuLy8gaW5jbHVkZSBpcHY0LCBpcHY2LCBkb21haW5cbmV4cG9ydCBjb25zdCBJUF9BRERSRVNTX0hPU1ROQU1FX1BBVFRFUk5fRVhURU5EID0ge1xuICBwYXR0ZXJuOiBuZXcgUmVnRXhwKFxuICAgIGAoJHtJUF9QQVRURVJOX0JBU0V9KXwoJHtET01BSU5fUEFUVEVSTl9CQVNFfSl8KCR7SVBWNl9QQVRURVJOX0JBU0V9KWAsXG4gICksXG4gIHRpcDogJ3JlZ2V4cF90aXBfaXBfYWRkcmVzc19vcl9ob3N0bmFtZScsXG59O1xuXG5leHBvcnQgY29uc3QgSVBfQUREUkVTU19TVUJORVRfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjpcbiAgICAvXigoXFxkfFsxLTldXFxkfDFcXGR7Mn18MlswLTRdXFxkfDI1WzAtNV0pXFwuKXszfShcXGR8WzEtOV1cXGR8MVxcZHsyfXwyWzAtNF1cXGR8MjVbMC01XSlcXC9cXGQrJC8sXG4gIHRpcDogJ3JlZ2V4cF90aXBfaXBfYWRkcmVzc193aXRoX3N1Ym5ldCcsXG59O1xuXG5leHBvcnQgY29uc3QgRE9NQUlOX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IG5ldyBSZWdFeHAoRE9NQUlOX1BBVFRFUk5fQkFTRSksXG4gIHBsYWNlaG9sZGVyOiAnZG9tYWluX3JlZ2V4cF9wbGFjZWhvbGRlcicsXG4gIHRpcDogJ2RvbWFpbl9yZWdleHBfdGlwJyxcbn07XG5cbmV4cG9ydCBjb25zdCBJUF9BRERSRVNTX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46XG4gICAgL14oPzooPzoyNVswLTVdfDJbMC00XVxcZHxbMDFdP1xcZHsxLDJ9KVxcLil7M30oPzoyNVswLTVdfDJbMC00XVxcZHxbMDFdP1xcZHsxLDJ9KSQvLFxuICBwbGFjZWhvbGRlcjogJ2lwX2FkZHJlc3NfcGxhY2Vob2xkZXInLFxuICB0aXA6ICdyZWdleHBfdGlwX2lwX2FkZHJlc3MnLFxufTtcblxuZXhwb3J0IGNvbnN0IElQX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46XG4gICAgL14oKDIoNVswLTVdfFswLTRdXFxkKSl8WzAxXT9cXGR7MSwyfSkoXFwuKCgyKDVbMC01XXxbMC00XVxcZCkpfFswMV0/XFxkezEsMn0pKXszfSQvLFxuICB0aXA6ICdpbnZhbGlkX2lwJyxcbn07XG5cbmV4cG9ydCBjb25zdCBJUF9WNl9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiBuZXcgUmVnRXhwKGAke0lQVjZfUEFUVEVSTl9CQVNFfWApLFxuICB0aXA6ICdpbnZhbGlkX2lwJyxcbn07XG5cbmV4cG9ydCBjb25zdCBJUF9WNl9BRERSRVNTX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IG5ldyBSZWdFeHAoSVBWNl9QQVRURVJOX0JBU0UpLFxufTtcblxuZXhwb3J0IGNvbnN0IElQX1Y0X09SX1Y2X1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IG5ldyBSZWdFeHAoYCgke0lQX1BBVFRFUk5fQkFTRX0pfCgke0lQVjZfUEFUVEVSTl9CQVNFfSlgKSxcbn07XG5cbmV4cG9ydCBjb25zdCBJUF9BRERSRVNTX1BPUlRfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogbmV3IFJlZ0V4cChgJHtJUF9QQVRURVJOX0JBU0Uuc2xpY2UoMCwgLTEpfSg/OjpcXFxcZCspPyRgKSxcbiAgdGlwOiAncmVnZXhwX3RpcF9pcF9hZGRyZXNzJyxcbn07XG5cbmV4cG9ydCBjb25zdCBJTlRfWkVST19QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXigwfFxcKz9bMS05XVxcZCopJC8sXG4gIHRpcDogJ3JlZ2V4cF90aXBfcG9zaXRpdmVfaW50ZWdlcl9wYXR0ZXJuX3plcm8nLFxufTtcblxuZXhwb3J0IGNvbnN0IFBPU0lUSVZFX0lOVF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXlsxLTldXFxkKiQvLFxuICB0aXA6ICdyZWdleHBfdGlwX3Bvc2l0aXZlX2ludGVnZXJfcGF0dGVybicsXG59O1xuXG5leHBvcnQgY29uc3QgSzhTX1JFU09VUkNFX05BTUVfQkFTRSA9IHtcbiAgcGF0dGVybjogL15bXFxkYS16XShbXFxkYS16LV0qW1xcZGEtel0pPyQvLFxuICB0aXA6ICdyZWdleHBfdGlwX2s4c19yZXNvdXJjZV9uYW1lX2Jhc2UnLFxufTtcblxuZXhwb3J0IGNvbnN0IEs4U19SRVNPVVJDRV9MQUJFTF9LRVlfUFJFRklYX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IC9eW1xcZGEtel0oW1xcZGEtei1dKltcXGRhLXpdKT8oXFwuW1xcZGEtel0oW1xcZGEtei1dKltcXGRhLXpdKT8pKiQvLFxuICB0aXA6ICdyZWdleHBfdGlwX3Jlc291cmNlX2xhYmVsX2tleV9wcmVmaXgnLFxufTtcblxuLy8g5LiN6IO955u05o6l55So5p2l5qCh6aqMIGxhYmVsIGtlee+8jOmcgOimgeS9v+eUqCBgazhzUmVzb3VyY2VMYWJlbEtleVZhbGlkYXRvcmBcbmV4cG9ydCBjb25zdCBLOFNfUkVTT1VSQ0VfTEFCRUxfS0VZX05BTUVfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL14oKFtcXGRBLVphLXpdW1xcdy4tXSopP1tcXGRBLVphLXpdKSQvLFxuICB0aXA6ICdrOHNfcmVzb3VyY2VfbGFiZWxfa2V5X2ludmFsaWQnLFxufTtcblxuZXhwb3J0IGNvbnN0IEs4U19SRVNPVVJDRV9MQUJFTF9WQUxVRV9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXigoW1xcZEEtWmEtel1bXFx3Li1dKik/W1xcZEEtWmEtel0pPyQvLFxuICB0aXA6ICdrOHNfcmVzb3VyY2VfbGFiZWxfdmFsdWVfaW52YWxpZCcsXG59O1xuXG5leHBvcnQgY29uc3QgSzhTX1JFU09VUkNFX05BTUVfU1RBUlRfV0lUSF9DSEFSU19PTkxZID0ge1xuICBwYXR0ZXJuOiAvXlthLXpdKFtcXGRhLXotXSpbXFxkYS16XSk/JC8sXG4gIHRpcDogJ3JlZ2V4cF90aXBfazhzX3Jlc291cmNlX25hbWVfc3RhcnRfd2l0aF9jaGFyc19vbmx5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBIVFRQX0lQX09SX0RPTUFJTl9QQVRURVJOID0ge1xuICBwYXR0ZXJuOlxuICAgIC9eKChodHRwfGh0dHBzKTpcXC9cXC8pKCgoKDIoNVswLTVdfFswLTRdXFxkKSl8WzAxXT9cXGR7MSwyfSkoXFwuKCgyKDVbMC01XXxbMC00XVxcZCkpfFswMV0/XFxkezEsMn0pKXszfSl8KCgoW1xcZEEtWmEtei1dKltcXGRBLVphLXpdKVxcLikqKFtBLVphLXpdfFtBLVphLXpdW1xcZEEtWmEtei1dKltcXGRBLVphLXpdKSkpKDooKFsxLTldXFxkezAsM30pfChbMS01XVxcZHs0fSl8KDZbMC00XVxcZHszfSl8KDY1WzAtNF1cXGR7Mn0pfCg2NTVbMC0yXVxcZCl8KDY1NTNbMC01XSkpKT8oXFwvXFxTKikqJC8sXG4gIHRpcDogJ2RvbWFpbl9pcF9wbGFjZWhvbGRlcicsXG59O1xuXG5leHBvcnQgY29uc3QgSFRUUF9EVUFMX0lQX09SX0RPTUFJTl9QQVRURVJOID0ge1xuICBwYXR0ZXJuOlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL2JldHRlci1yZWdleFxuICAgIC9eKChodHRwfGh0dHBzKTpcXC9cXC8pKCgoKDIoNVswLTVdfFswLTRdXFxkKSl8WzAxXT9cXGR7MSwyfSkoXFwuKCgyKDVbMC01XXxbMC00XVxcZCkpfFswMV0/XFxkezEsMn0pKXszfSl8KCgoW1xcZEEtWmEtei1dKltcXGRBLVphLXpdKVxcLikqKFtBLVphLXpdfFtBLVphLXpdW1xcZEEtWmEtei1dKltcXGRBLVphLXpdKSl8KFxcWygoKFswLTlBLUZhLWZdezEsNH06KXs3fShbMC05QS1GYS1mXXsxLDR9fDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs2fSg6WzAtOUEtRmEtZl17MSw0fXwoKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezV9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsMn0pfDooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezR9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsM30pfCgoOlswLTlBLUZhLWZdezEsNH0pPzooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXszfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDR9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDJ9OigoMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKFxcLigyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezJ9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNX0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsM306KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9OikoKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw2fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw0fTooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoOigoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDd9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDV9OigoMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKFxcLigyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpKSglLispP1xcXSkpKDooKFsxLTldXFxkezAsM30pfChbMS01XVxcZHs0fSl8KDZbMC00XVxcZHszfSl8KDY1WzAtNF1cXGR7Mn0pfCg2NTVbMC0yXVxcZCl8KDY1NTNbMC01XSkpKT8oXFwvXFxTKikqJC8sXG4gIHRpcDogJ2RvbWFpbl9pcF9wbGFjZWhvbGRlcicsXG59O1xuXG5leHBvcnQgY29uc3QgSFRUUF9BRERSRVNTX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IC9eKGh0dHB8aHR0cHMpOlxcL1xcLyhbXFx3Ll0pXFxTKiQvLFxuICB0aXA6ICdodHRwX2FkZHJlc3NfZm9ybWF0X2xpbWl0Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBFTUFJTF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXltcXHcuLV0rQFtcXHctXSsoXFwuW1xcdy1dKykrJC8sXG4gIHRpcDogJ2ludmFsaWRfZW1haWwnLFxufTtcblxuZXhwb3J0IGNvbnN0IElNQUdFX1RBR19QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXigoc2hhMjU2OltcXGRhLWZdezYsNjR9KXwoXFx3W1xcdy4tXXswLDEyN30pKSQvLFxuICB0aXA6ICdyZWdleHBfdGlwX2ltYWdlX3RhZycsXG4gIHBsYWNlaG9sZGVyOiAnaW1hZ2VfdGFnX2lucHV0X3BsYWNlaG9sZGVyJyxcbn07XG5cbmV4cG9ydCBjb25zdCBJTlRfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL14tP1xcZCskLyxcbiAgdGlwOiAncmVnZXhwX3RpcF9pbnRlZ2VyX3BhdHRlcm4nLFxufTtcblxuZXhwb3J0IGNvbnN0IE5VTUJFUl9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXi0/XFxkKyhcXC5cXGQqKT8kLyxcbiAgdGlwOiAnaW52YWxpZF9udW1iZXInLFxufTtcbiJdfQ==
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY29yZS9jb25zdGFudHMvcGF0dGVybnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsaUNBQWlDLENBQUM7QUFFckUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUMxQixvRkFBb0YsQ0FBQztBQUV2RixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FDNUIsb21CQUFvbUIsQ0FBQztBQUV2bUIsTUFBTSxxQkFBcUIsR0FBRyxXQUFXLENBQUM7QUFDMUMsTUFBTSxpQkFBaUIsR0FDckIsc0hBQXNILENBQUM7QUFFekgsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFVBQWtCLEVBQUUsRUFBRTtJQUNoRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLE9BQU8sS0FBSyxxQkFBcUIsS0FBSyxJQUFJLElBQUksaUJBQWlCLEtBQUssQ0FBQztBQUN2RSxDQUFDLENBQUM7QUFFRixNQUFNLHlCQUF5QixHQUFHLENBQUMsVUFBa0IsRUFBRSxFQUFFO0lBQ3ZELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEUsT0FBTyxJQUFJLFVBQVUsUUFBUSxxQkFBcUIsT0FBTyxJQUFJLFlBQVkscUJBQXFCLFFBQVEsSUFBSSxPQUFPLGlCQUFpQixLQUFLLENBQUM7QUFDMUksQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLE9BQU8sRUFDTCwrRkFBK0Y7SUFDakcsR0FBRyxFQUFFLGNBQWM7Q0FDcEIsQ0FB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O0FBRUYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUc7SUFDNUMsT0FBTyxFQUNMLGkwQ0FBaTBDO0lBQ24wQyxHQUFHLEVBQUUsdUJBQXVCO0NBQzdCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNsQyxPQUFPLEVBQUUsK0JBQStCO0lBQ3hDLEdBQUcsRUFBRSwyQkFBMkI7Q0FDakMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixPQUFPLEVBQUUsNkJBQTZCO0lBQ3RDLEdBQUcsRUFBRSxlQUFlO0NBQ3JCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixPQUFPLEVBQUUsOENBQThDO0lBQ3ZELEdBQUcsRUFBRSxzQkFBc0I7SUFDM0IsV0FBVyxFQUFFLDZCQUE2QjtDQUMzQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEdBQUcsRUFBRSw0QkFBNEI7Q0FDbEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLEdBQUcsRUFBRSxnQkFBZ0I7Q0FDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBET01BSU5fUEFUVEVSTl9CQVNFID0gJ14oW1xcXFxkYS16Li1dKylcXFxcLihbYS16Ll17Miw2fSkkJztcblxuZXhwb3J0IGNvbnN0IElQX1BBVFRFUk5fQkFTRSA9XG4gICdeKD86KD86MjVbMC01XXwyWzAtNF1cXFxcZHxbMDFdP1xcXFxkezEsMn0pXFxcXC4pezN9KD86MjVbMC01XXwyWzAtNF1cXFxcZHxbMDFdP1xcXFxkezEsMn0pJCc7XG5cbmV4cG9ydCBjb25zdCBJUFY2X1BBVFRFUk5fQkFTRSA9XG4gICdeKChbMC05YS1mQS1GXXsxLDR9Oil7N31bMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw3fTp8KFswLTlhLWZBLUZdezEsNH06KXsxLDZ9OlswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDV9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDJ9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwzfXwoWzAtOWEtZkEtRl17MSw0fTopezEsM30oOlswLTlhLWZBLUZdezEsNH0pezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDJ9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDV9fFswLTlhLWZBLUZdezEsNH06KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw2fSl8OigoOlswLTlhLWZBLUZdezEsNH0pezEsN318Oil8ZmU4MDooOlswLTlhLWZBLUZdezAsNH0pezAsNH0lWzAtOWEtekEtWl0rfDo6KGZmZmYoOjB7MSw0fSk/Oik/KCgyNVswLTVdfCgyWzAtNF18MT9bMC05XSk/WzAtOV0pLil7M30oMjVbMC01XXwoMlswLTRdfDE/WzAtOV0pP1swLTldKXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH06KCgyNVswLTVdfCgyWzAtNF18MT9bMC05XSk/WzAtOV0pLil7M30oMjVbMC01XXwoMlswLTRdfDE/WzAtOV0pP1swLTldKSkkJztcblxuY29uc3QgUFJPVE9DT0xfUEFUVEVSTl9CQVNFID0gJ2h0dHBzPzovLyc7XG5jb25zdCBQT1JUX1BBVFRFUk5fQkFTRSA9XG4gICcoOig2NTUzWzAtNV18NjU1WzAtMl1cXFxcZHw2NVswLTRdXFxcXGRcXFxcZHw2WzAtNF1cXFxcZFxcXFxkXFxcXGR8WzEtNV1cXFxcZFxcXFxkXFxcXGRcXFxcZHxbMS05XVxcXFxkXFxcXGRcXFxcZHxbMS05XVxcXFxkXFxcXGR8WzEtOV1cXFxcZHxbMS05XSkpJztcblxuY29uc3QgYWRkUG9ydEFuZFByb3RvY29sID0gKHBhdHRlcm5TdHI6IHN0cmluZykgPT4ge1xuICBjb25zdCBtYWluID0gcGF0dGVyblN0ci5yZXBsYWNlKC8oXlxcXik/LywgJycpLnJlcGxhY2UoLyhcXCQ/KSQvLCAnJyk7XG4gIHJldHVybiBgXigke1BST1RPQ09MX1BBVFRFUk5fQkFTRX0pPyR7bWFpbn0oJHtQT1JUX1BBVFRFUk5fQkFTRX0pPyRgO1xufTtcblxuY29uc3QgYWRkUG9ydEFuZFByb3RvY29sRm9ySXB2NiA9IChwYXR0ZXJuU3RyOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgbWFpbiA9IHBhdHRlcm5TdHIucmVwbGFjZSgvKF5cXF4pPy8sICcnKS5yZXBsYWNlKC8oXFwkPykkLywgJycpO1xuICByZXR1cm4gYCgke3BhdHRlcm5TdHJ9KXwoXigke1BST1RPQ09MX1BBVFRFUk5fQkFTRX0pXFxcXFske21haW59XFxcXF0kKXwoXigke1BST1RPQ09MX1BBVFRFUk5fQkFTRX0pP1xcXFxbJHttYWlufVxcXFxdKCR7UE9SVF9QQVRURVJOX0JBU0V9KSQpYDtcbn07XG5cbmV4cG9ydCBjb25zdCBQT1JUX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46XG4gICAgLyheWzEtOV1cXGR7MCwzfSQpfCheWzEtNV1cXGR7NH0kKXxeKDZbMC00XVxcZHszfSQpfCheNjVbMC00XVxcZHsyfSQpfCheNjU1WzAtMl1cXGQkKXwoXjY1NTNbMC01XSQpLyxcbiAgdGlwOiAnaW52YWxpZF9wb3J0Jyxcbn07XG5cbi8vIGluY2x1ZGUgaXB2NCwgZG9tYWluXG5leHBvcnQgY29uc3QgSVBfQUREUkVTU19IT1NUTkFNRV9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiBuZXcgUmVnRXhwKGAoJHtJUF9QQVRURVJOX0JBU0V9KXwoJHtET01BSU5fUEFUVEVSTl9CQVNFfSlgKSxcbiAgdGlwOiAncmVnZXhwX3RpcF9pcF9hZGRyZXNzX29yX2hvc3RuYW1lJyxcbn07XG5cbi8vIGluY2x1ZGUgaXB2NiwgZG9tYWluXG5leHBvcnQgY29uc3QgSVBWNl9BRERSRVNTX0hPU1ROQU1FX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IG5ldyBSZWdFeHAoYCgke0lQVjZfUEFUVEVSTl9CQVNFfSl8KCR7RE9NQUlOX1BBVFRFUk5fQkFTRX0pYCksXG4gIHRpcDogJ3JlZ2V4cF90aXBfaXB2Nl9hZGRyZXNzX29yX2hvc3RuYW1lJyxcbn07XG5cbi8vIGluY2x1ZGUgaXB2NCwgZG9tYWluLCBhbmQgc3VwcG9ydCBwb3J0IGFuZCBwcm90b2NvbFxuZXhwb3J0IGNvbnN0IElQX0FERFJFU1NfSE9TVE5BTUVfUE9SVF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiBuZXcgUmVnRXhwKFxuICAgIGAoJHthZGRQb3J0QW5kUHJvdG9jb2woSVBfUEFUVEVSTl9CQVNFKX0pfCgke2FkZFBvcnRBbmRQcm90b2NvbChcbiAgICAgIERPTUFJTl9QQVRURVJOX0JBU0UsXG4gICAgKX0pYCxcbiAgKSxcbiAgdGlwOiAncmVnZXhwX3RpcF9pcF9hZGRyZXNzX29yX2hvc3RuYW1lJyxcbn07XG5cbi8vIGluY2x1ZGUgaXB2NiwgZG9tYWluLCBhbmQgc3VwcG9ydCBwb3J0IGFuZCBwcm90b2NvbFxuZXhwb3J0IGNvbnN0IElQVjZfQUREUkVTU19IT1NUTkFNRV9QT1JUX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IG5ldyBSZWdFeHAoXG4gICAgYCgke2FkZFBvcnRBbmRQcm90b2NvbEZvcklwdjYoSVBWNl9QQVRURVJOX0JBU0UpfSl8KCR7YWRkUG9ydEFuZFByb3RvY29sKFxuICAgICAgRE9NQUlOX1BBVFRFUk5fQkFTRSxcbiAgICApfSlgLFxuICApLFxuICB0aXA6ICdyZWdleHBfdGlwX2lwdjZfYWRkcmVzc19vcl9ob3N0bmFtZScsXG59O1xuXG4vLyBpbmNsdWRlICBpcHY0LCBpcHY2LCBkb21haW4sIGFuZCBzdXBwb3J0IHBvcnQgYW5kIHByb3RvY29sXG5leHBvcnQgY29uc3QgSVBWNF9JUFY2X0FERFJFU1NfSE9TVE5BTUVfUE9SVF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiBuZXcgUmVnRXhwKFxuICAgIGAoJHthZGRQb3J0QW5kUHJvdG9jb2woSVBfUEFUVEVSTl9CQVNFKX0pfCgke2FkZFBvcnRBbmRQcm90b2NvbEZvcklwdjYoXG4gICAgICBJUFY2X1BBVFRFUk5fQkFTRSxcbiAgICApfSl8KCR7YWRkUG9ydEFuZFByb3RvY29sKERPTUFJTl9QQVRURVJOX0JBU0UpfSlgLFxuICApLFxuICB0aXA6ICdyZWdleHBfdGlwX2lwdjRfaXB2Nl9hZGRyZXNzX29yX2hvc3RuYW1lJyxcbn07XG5cbi8vIGluY2x1ZGUgaXB2NCwgaXB2NiwgZG9tYWluXG5leHBvcnQgY29uc3QgSVBfQUREUkVTU19IT1NUTkFNRV9QQVRURVJOX0VYVEVORCA9IHtcbiAgcGF0dGVybjogbmV3IFJlZ0V4cChcbiAgICBgKCR7SVBfUEFUVEVSTl9CQVNFfSl8KCR7RE9NQUlOX1BBVFRFUk5fQkFTRX0pfCgke0lQVjZfUEFUVEVSTl9CQVNFfSlgLFxuICApLFxuICB0aXA6ICdyZWdleHBfdGlwX2lwX2FkZHJlc3Nfb3JfaG9zdG5hbWUnLFxufTtcblxuZXhwb3J0IGNvbnN0IElQX0FERFJFU1NfU1VCTkVUX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46XG4gICAgL14oKFxcZHxbMS05XVxcZHwxXFxkezJ9fDJbMC00XVxcZHwyNVswLTVdKVxcLil7M30oXFxkfFsxLTldXFxkfDFcXGR7Mn18MlswLTRdXFxkfDI1WzAtNV0pXFwvXFxkKyQvLFxuICB0aXA6ICdyZWdleHBfdGlwX2lwX2FkZHJlc3Nfd2l0aF9zdWJuZXQnLFxufTtcblxuZXhwb3J0IGNvbnN0IERPTUFJTl9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiBuZXcgUmVnRXhwKERPTUFJTl9QQVRURVJOX0JBU0UpLFxuICBwbGFjZWhvbGRlcjogJ2RvbWFpbl9yZWdleHBfcGxhY2Vob2xkZXInLFxuICB0aXA6ICdkb21haW5fcmVnZXhwX3RpcCcsXG59O1xuXG5leHBvcnQgY29uc3QgSVBfQUREUkVTU19QQVRURVJOID0ge1xuICBwYXR0ZXJuOlxuICAgIC9eKD86KD86MjVbMC01XXwyWzAtNF1cXGR8WzAxXT9cXGR7MSwyfSlcXC4pezN9KD86MjVbMC01XXwyWzAtNF1cXGR8WzAxXT9cXGR7MSwyfSkkLyxcbiAgcGxhY2Vob2xkZXI6ICdpcF9hZGRyZXNzX3BsYWNlaG9sZGVyJyxcbiAgdGlwOiAncmVnZXhwX3RpcF9pcF9hZGRyZXNzJyxcbn07XG5cbmV4cG9ydCBjb25zdCBJUF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOlxuICAgIC9eKCgyKDVbMC01XXxbMC00XVxcZCkpfFswMV0/XFxkezEsMn0pKFxcLigoMig1WzAtNV18WzAtNF1cXGQpKXxbMDFdP1xcZHsxLDJ9KSl7M30kLyxcbiAgdGlwOiAnaW52YWxpZF9pcCcsXG59O1xuXG5leHBvcnQgY29uc3QgSVBfVjZfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogbmV3IFJlZ0V4cChgJHtJUFY2X1BBVFRFUk5fQkFTRX1gKSxcbiAgdGlwOiAnaW52YWxpZF9pcCcsXG59O1xuXG5leHBvcnQgY29uc3QgSVBfVjZfQUREUkVTU19QQVRURVJOID0ge1xuICBwYXR0ZXJuOiBuZXcgUmVnRXhwKElQVjZfUEFUVEVSTl9CQVNFKSxcbn07XG5cbmV4cG9ydCBjb25zdCBJUF9WNF9PUl9WNl9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiBuZXcgUmVnRXhwKGAoJHtJUF9QQVRURVJOX0JBU0V9KXwoJHtJUFY2X1BBVFRFUk5fQkFTRX0pYCksXG59O1xuXG5leHBvcnQgY29uc3QgSVBfQUREUkVTU19QT1JUX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IG5ldyBSZWdFeHAoYCR7SVBfUEFUVEVSTl9CQVNFLnNsaWNlKDAsIC0xKX0oPzo6XFxcXGQrKT8kYCksXG4gIHRpcDogJ3JlZ2V4cF90aXBfaXBfYWRkcmVzcycsXG59O1xuXG5leHBvcnQgY29uc3QgSU5UX1pFUk9fUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL14oMHxcXCs/WzEtOV1cXGQqKSQvLFxuICB0aXA6ICdyZWdleHBfdGlwX3Bvc2l0aXZlX2ludGVnZXJfcGF0dGVybl96ZXJvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBQT1NJVElWRV9JTlRfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL15bMS05XVxcZCokLyxcbiAgdGlwOiAncmVnZXhwX3RpcF9wb3NpdGl2ZV9pbnRlZ2VyX3BhdHRlcm4nLFxufTtcblxuZXhwb3J0IGNvbnN0IFBPU0lUSVZFX05VTUJFUl9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXihbMS05XVxcZCooPzpcXC5cXGQqKT98MCpcXC4wKlsxLTldXFxkKikkLyxcbiAgdGlwOiAncmVnZXhwX3RpcF9wb3NpdGl2ZV9udW1iZXJfcGF0dGVybicsXG59O1xuXG5leHBvcnQgY29uc3QgSzhTX1JFU09VUkNFX05BTUVfQkFTRSA9IHtcbiAgcGF0dGVybjogL15bXFxkYS16XShbXFxkYS16LV0qW1xcZGEtel0pPyQvLFxuICB0aXA6ICdyZWdleHBfdGlwX2s4c19yZXNvdXJjZV9uYW1lX2Jhc2UnLFxufTtcblxuZXhwb3J0IGNvbnN0IEs4U19SRVNPVVJDRV9MQUJFTF9LRVlfUFJFRklYX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IC9eW1xcZGEtel0oW1xcZGEtei1dKltcXGRhLXpdKT8oXFwuW1xcZGEtel0oW1xcZGEtei1dKltcXGRhLXpdKT8pKiQvLFxuICB0aXA6ICdyZWdleHBfdGlwX3Jlc291cmNlX2xhYmVsX2tleV9wcmVmaXgnLFxufTtcblxuLy8g5LiN6IO955u05o6l55So5p2l5qCh6aqMIGxhYmVsIGtlee+8jOmcgOimgeS9v+eUqCBgazhzUmVzb3VyY2VMYWJlbEtleVZhbGlkYXRvcmBcbmV4cG9ydCBjb25zdCBLOFNfUkVTT1VSQ0VfTEFCRUxfS0VZX05BTUVfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL14oKFtcXGRBLVphLXpdW1xcdy4tXSopP1tcXGRBLVphLXpdKSQvLFxuICB0aXA6ICdrOHNfcmVzb3VyY2VfbGFiZWxfa2V5X2ludmFsaWQnLFxufTtcblxuZXhwb3J0IGNvbnN0IEs4U19SRVNPVVJDRV9MQUJFTF9WQUxVRV9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXigoW1xcZEEtWmEtel1bXFx3Li1dKik/W1xcZEEtWmEtel0pPyQvLFxuICB0aXA6ICdrOHNfcmVzb3VyY2VfbGFiZWxfdmFsdWVfaW52YWxpZCcsXG59O1xuXG5leHBvcnQgY29uc3QgSzhTX1JFU09VUkNFX05BTUVfU1RBUlRfV0lUSF9DSEFSU19PTkxZID0ge1xuICBwYXR0ZXJuOiAvXlthLXpdKFtcXGRhLXotXSpbXFxkYS16XSk/JC8sXG4gIHRpcDogJ3JlZ2V4cF90aXBfazhzX3Jlc291cmNlX25hbWVfc3RhcnRfd2l0aF9jaGFyc19vbmx5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBIVFRQX0lQX09SX0RPTUFJTl9QQVRURVJOID0ge1xuICBwYXR0ZXJuOlxuICAgIC9eKChodHRwfGh0dHBzKTpcXC9cXC8pKCgoKDIoNVswLTVdfFswLTRdXFxkKSl8WzAxXT9cXGR7MSwyfSkoXFwuKCgyKDVbMC01XXxbMC00XVxcZCkpfFswMV0/XFxkezEsMn0pKXszfSl8KCgoW1xcZEEtWmEtei1dKltcXGRBLVphLXpdKVxcLikqKFtBLVphLXpdfFtBLVphLXpdW1xcZEEtWmEtei1dKltcXGRBLVphLXpdKSkpKDooKFsxLTldXFxkezAsM30pfChbMS01XVxcZHs0fSl8KDZbMC00XVxcZHszfSl8KDY1WzAtNF1cXGR7Mn0pfCg2NTVbMC0yXVxcZCl8KDY1NTNbMC01XSkpKT8oXFwvXFxTKikqJC8sXG4gIHRpcDogJ2RvbWFpbl9pcF9wbGFjZWhvbGRlcicsXG59O1xuXG5leHBvcnQgY29uc3QgSFRUUF9EVUFMX0lQX09SX0RPTUFJTl9QQVRURVJOID0ge1xuICBwYXR0ZXJuOlxuICAgIC9eKChodHRwfGh0dHBzKTpcXC9cXC8pKCgoKDIoNVswLTVdfFswLTRdXFxkKSl8WzAxXT9cXGR7MSwyfSkoXFwuKCgyKDVbMC01XXxbMC00XVxcZCkpfFswMV0/XFxkezEsMn0pKXszfSl8KCgoW1xcZEEtWmEtei1dKltcXGRBLVphLXpdKVxcLikqKFtBLVphLXpdfFtBLVphLXpdW1xcZEEtWmEtei1dKltcXGRBLVphLXpdKSl8KFxcWygoKFswLTlBLUZhLWZdezEsNH06KXs3fShbMC05QS1GYS1mXXsxLDR9fDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs2fSg6WzAtOUEtRmEtZl17MSw0fXwoKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezV9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsMn0pfDooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezR9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsM30pfCgoOlswLTlBLUZhLWZdezEsNH0pPzooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXszfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDR9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDJ9OigoMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKFxcLigyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezJ9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNX0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsM306KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9OikoKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw2fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw0fTooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoOigoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDd9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDV9OigoMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKFxcLigyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpKSglLispP1xcXSkpKDooKFsxLTldXFxkezAsM30pfChbMS01XVxcZHs0fSl8KDZbMC00XVxcZHszfSl8KDY1WzAtNF1cXGR7Mn0pfCg2NTVbMC0yXVxcZCl8KDY1NTNbMC01XSkpKT8oXFwvXFxTKikqJC8sXG4gIHRpcDogJ2RvbWFpbl9pcF9wbGFjZWhvbGRlcicsXG59O1xuXG5leHBvcnQgY29uc3QgSFRUUF9BRERSRVNTX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IC9eKGh0dHB8aHR0cHMpOlxcL1xcLyhbXFx3Ll0pXFxTKiQvLFxuICB0aXA6ICdodHRwX2FkZHJlc3NfZm9ybWF0X2xpbWl0Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBFTUFJTF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXltcXHcuLV0rQFtcXHctXSsoXFwuW1xcdy1dKykrJC8sXG4gIHRpcDogJ2ludmFsaWRfZW1haWwnLFxufTtcblxuZXhwb3J0IGNvbnN0IElNQUdFX1RBR19QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXigoc2hhMjU2OltcXGRhLWZdezYsNjR9KXwoXFx3W1xcdy4tXXswLDEyN30pKSQvLFxuICB0aXA6ICdyZWdleHBfdGlwX2ltYWdlX3RhZycsXG4gIHBsYWNlaG9sZGVyOiAnaW1hZ2VfdGFnX2lucHV0X3BsYWNlaG9sZGVyJyxcbn07XG5cbmV4cG9ydCBjb25zdCBJTlRfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL14tP1xcZCskLyxcbiAgdGlwOiAncmVnZXhwX3RpcF9pbnRlZ2VyX3BhdHRlcm4nLFxufTtcblxuZXhwb3J0IGNvbnN0IE5VTUJFUl9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXi0/XFxkKyhcXC5cXGQqKT8kLyxcbiAgdGlwOiAnaW52YWxpZF9udW1iZXInLFxufTtcbiJdfQ==
@@ -43,10 +43,9 @@ const STANDS = [
43
43
  ResizeDirective,
44
44
  FeatureGateDirective,
45
45
  PurePipe,
46
+ StandardDatePipe,
46
47
  ];
47
48
  const PIPES = [
48
- // time pipes
49
- StandardDatePipe,
50
49
  CrontabNextPipe,
51
50
  MarkedPipe,
52
51
  LocaleTransformPipe,
@@ -92,10 +91,7 @@ export class CoreModule {
92
91
  ],
93
92
  }]
94
93
  }], null, null); })();
95
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CoreModule, { declarations: [
96
- // time pipes
97
- StandardDatePipe,
98
- CrontabNextPipe,
94
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CoreModule, { declarations: [CrontabNextPipe,
99
95
  MarkedPipe,
100
96
  LocaleTransformPipe,
101
97
  ThemeTransformPipe,
@@ -122,10 +118,8 @@ export class CoreModule {
122
118
  ScrollBorderObserverDirective,
123
119
  ResizeDirective,
124
120
  FeatureGateDirective,
125
- PurePipe], exports: [
126
- // time pipes
127
- StandardDatePipe,
128
- CrontabNextPipe,
121
+ PurePipe,
122
+ StandardDatePipe], exports: [CrontabNextPipe,
129
123
  MarkedPipe,
130
124
  LocaleTransformPipe,
131
125
  ThemeTransformPipe,
@@ -148,7 +142,8 @@ export class CoreModule {
148
142
  ScrollBorderObserverDirective,
149
143
  ResizeDirective,
150
144
  FeatureGateDirective,
151
- PurePipe, K8sUtilPipeModule,
145
+ PurePipe,
146
+ StandardDatePipe, K8sUtilPipeModule,
152
147
  CodeModule,
153
148
  EffectDirectiveModule] }); })();
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN4RixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsNkJBQTZCLEVBQzdCLG1DQUFtQyxHQUNwQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsYUFBYSxHQUNkLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdC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SXJCLG1DQUFtQztRQUNuQyw2QkFBNkIsRUFuQzdCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIscUJBQXFCO1FBQ3JCLGFBQWE7UUFDYixZQUFZO1FBQ1osUUFBUTtRQUNSLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsMEJBQTBCO1FBQzFCLGdCQUFnQjtRQUNoQiw2QkFBNkI7UUFDN0IsNEJBQTRCO1FBQzVCLGlCQUFpQjtRQUNqQixxQkFBcUI7UUFDckIsNkJBQTZCO1FBQzdCLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsUUFBUSxFQXFDTixpQkFBaUI7UUFDakIsVUFBVTtRQUNWLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIHV0aWxzXG4gKi9cblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBDb2RlTW9kdWxlIH0gZnJvbSAnLi4vY29kZS9jb2RlLm1vZHVsZSc7XG5pbXBvcnQgeyBFZmZlY3REaXJlY3RpdmVNb2R1bGUgfSBmcm9tICcuLi9lZmZlY3QtZGlyZWN0aXZlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBEaXNhYmxlZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kaXNhYmxlZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZmVhdHVyZS1nYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGb3JtSXRlbU1hcmdpbkVmZmVjdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9sYXN0LWZvcm0taXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGFnZUhlYWRlckNvbnRlbnREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcGFnZS1oZWFkZXItY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxuICBJbnRlcmNlcHREZWFjdGl2YXRlRGlyZWN0aXZlLFxuICBTY3JvbGxCb3JkZXJPYnNlcnZlckRpcmVjdGl2ZSxcbiAgU2Nyb2xsVG9GaXJzdEludmFsaWREaXJlY3RpdmUsXG4gIFNjcm9sbFRvRmlyc3RJbnZhbGlkTWFya2VyRGlyZWN0aXZlLFxufSBmcm9tICcuL2RpcmVjdGl2ZXMvcHVibGljLWFwaSc7XG5pbXBvcnQge1xuICBSZWFkb25seUZpZWxkRGlyZWN0aXZlLFxuICBTcGFuQ29tcG9uZW50LFxufSBmcm9tICcuL2RpcmVjdGl2ZXMvcmVhZG9ubHktZmllbGQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJlc2l6ZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZXNpemUuZGlyZWN0aXZlJztcbmltcG9ydCB7IENyb250YWJOZXh0UGlwZSB9IGZyb20gJy4vcGlwZXMvY3JvbnRhYi1uZXh0LnBpcGUnO1xuaW1wb3J0IHsgRmllbGROb3RBdmFpbGFibGVQaXBlIH0gZnJvbSAnLi9waXBlcy9maWVsZC1ub3QtYXZhaWxhYmxlLnBpcGUnO1xuaW1wb3J0IHsgSW1nSGVhZGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvaW1nLWhlYWRlci5waXBlJztcbmltcG9ydCB7IEltZ1RoZW1lUGlwZSB9IGZyb20gJy4vcGlwZXMvaW1nLXRoZW1lLnBpcGUnO1xuaW1wb3J0IHsgSzhzVXRpbFBpcGVNb2R1bGUgfSBmcm9tICcuL3BpcGVzL2s4cy11dGlsLnBpcGUubW9kdWxlJztcbmltcG9ydCB7IFBhcnNlSnNvblRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuL3BpcGVzL3BhcnNlLWpzb24tdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHtcbiAgQ3Jvbkh1bWFuUmVhZGFibGVQaXBlLFxuICBMb2NhbGVUcmFuc2Zvcm1QaXBlLFxuICBNYXJrZWRQaXBlLFxuICBSZWxhdGl2ZVRpbWVQaXBlLFxuICBTYW5pdGl6ZVBpcGUsXG4gIFN0YW5kYXJkRGF0ZVBpcGUsXG4gIFN0YW5kYXJkVGltZVBpcGUsXG4gIFRoZW1lVHJhbnNmb3JtUGlwZSxcbiAgVGltZXpvbmVEaXNwbGF5UGlwZSxcbn0gZnJvbSAnLi9waXBlcy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFB1cmVQaXBlIH0gZnJvbSAnLi9waXBlcy9wdXJlLnBpcGUnO1xuaW1wb3J0IHsgU2FmZVBpcGUgfSBmcm9tICcuL3BpcGVzL3NhZmUucGlwZSc7XG5cbmNvbnN0IFNUQU5EUyA9IFtcbiAgUmVhZG9ubHlGaWVsZERpcmVjdGl2ZSxcbiAgUGFyc2VKc29uVHJhbnNsYXRlUGlwZSxcbiAgRmllbGROb3RBdmFpbGFibGVQaXBlLFxuICBJbWdIZWFkZXJQaXBlLFxuICBJbWdUaGVtZVBpcGUsXG4gIFNhZmVQaXBlLFxuICBTYW5pdGl6ZVBpcGUsXG4gIFJlbGF0aXZlVGltZVBpcGUsXG4gIFBhZ2VIZWFkZXJDb250ZW50RGlyZWN0aXZlLFxuICBTdGFuZGFyZFRpbWVQaXBlLFxuICBTY3JvbGxUb0ZpcnN0SW52YWxpZERpcmVjdGl2ZSxcbiAgSW50ZXJjZXB0RGVhY3RpdmF0ZURpcmVjdGl2ZSxcbiAgRGlzYWJsZWREaXJlY3RpdmUsXG4gIENsaWNrT3V0c2lkZURpcmVjdGl2ZSxcbiAgU2Nyb2xsQm9yZGVyT2JzZXJ2ZXJEaXJlY3RpdmUsXG4gIFJlc2l6ZURpcmVjdGl2ZSxcbiAgRmVhdHVyZUdhdGVEaXJlY3RpdmUsXG4gIFB1cmVQaXBlLFxuXTtcblxuY29uc3QgUElQRVMgPSBbXG4gIC8vIHRpbWUgcGlwZXNcbiAgU3RhbmRhcmREYXRlUGlwZSxcblxuICBDcm9udGFiTmV4dFBpcGUsXG4gIE1hcmtlZFBpcGUsXG5cbiAgTG9jYWxlVHJhbnNmb3JtUGlwZSxcbiAgVGhlbWVUcmFuc2Zvcm1QaXBlLFxuICBUaW1lem9uZURpc3BsYXlQaXBlLFxuICBDcm9uSHVtYW5SZWFkYWJsZVBpcGUsXG5dO1xuXG5jb25zdCBESVJFQ1RJVkVTID0gW1xuICBTY3JvbGxUb0ZpcnN0SW52YWxpZE1hcmtlckRpcmVjdGl2ZSxcbiAgRm9ybUl0ZW1NYXJnaW5FZmZlY3REaXJlY3RpdmUsXG5dO1xuXG5jb25zdCBFWFBPUlRBQkxFUyA9IFsuLi5QSVBFUywgLi4uRElSRUNUSVZFU107XG5jb25zdCBJTlRFUk5BTFMgPSBbU3BhbkNvbXBvbmVudF07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBLOHNVdGlsUGlwZU1vZHVsZSxcbiAgICBFZmZlY3REaXJlY3RpdmVNb2R1bGUsXG4gICAgQ29kZU1vZHVsZSxcbiAgICAuLi5TVEFORFMsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogWy4uLkVYUE9SVEFCTEVTLCAuLi5JTlRFUk5BTFNdLFxuICBleHBvcnRzOiBbXG4gICAgLi4uRVhQT1JUQUJMRVMsXG4gICAgLi4uU1RBTkRTLFxuICAgIEs4c1V0aWxQaXBlTW9kdWxlLFxuICAgIENvZGVNb2R1bGUsXG4gICAgRWZmZWN0RGlyZWN0aXZlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3JlTW9kdWxlIHt9XG4iXX0=
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN4RixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsNkJBQTZCLEVBQzdCLG1DQUFtQyxHQUNwQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsYUFBYSxHQUNkLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdC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QixzQkFBc0I7UUFDdEIscUJBQXFCO1FBQ3JCLGFBQWE7UUFDYixZQUFZO1FBQ1osUUFBUTtRQUNSLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsMEJBQTBCO1FBQzFCLGdCQUFnQjtRQUNoQiw2QkFBNkI7UUFDN0IsNEJBQTRCO1FBQzVCLGlCQUFpQjtRQUNqQixxQkFBcUI7UUFDckIsNkJBQTZCO1FBQzdCLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsUUFBUTtRQUNSLGdCQUFnQixFQWtDZCxpQkFBaUI7UUFDakIsVUFBVTtRQUNWLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIHV0aWxzXG4gKi9cblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBDb2RlTW9kdWxlIH0gZnJvbSAnLi4vY29kZS9jb2RlLm1vZHVsZSc7XG5pbXBvcnQgeyBFZmZlY3REaXJlY3RpdmVNb2R1bGUgfSBmcm9tICcuLi9lZmZlY3QtZGlyZWN0aXZlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBEaXNhYmxlZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kaXNhYmxlZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZmVhdHVyZS1nYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGb3JtSXRlbU1hcmdpbkVmZmVjdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9sYXN0LWZvcm0taXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGFnZUhlYWRlckNvbnRlbnREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcGFnZS1oZWFkZXItY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxuICBJbnRlcmNlcHREZWFjdGl2YXRlRGlyZWN0aXZlLFxuICBTY3JvbGxCb3JkZXJPYnNlcnZlckRpcmVjdGl2ZSxcbiAgU2Nyb2xsVG9GaXJzdEludmFsaWREaXJlY3RpdmUsXG4gIFNjcm9sbFRvRmlyc3RJbnZhbGlkTWFya2VyRGlyZWN0aXZlLFxufSBmcm9tICcuL2RpcmVjdGl2ZXMvcHVibGljLWFwaSc7XG5pbXBvcnQge1xuICBSZWFkb25seUZpZWxkRGlyZWN0aXZlLFxuICBTcGFuQ29tcG9uZW50LFxufSBmcm9tICcuL2RpcmVjdGl2ZXMvcmVhZG9ubHktZmllbGQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJlc2l6ZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZXNpemUuZGlyZWN0aXZlJztcbmltcG9ydCB7IENyb250YWJOZXh0UGlwZSB9IGZyb20gJy4vcGlwZXMvY3JvbnRhYi1uZXh0LnBpcGUnO1xuaW1wb3J0IHsgRmllbGROb3RBdmFpbGFibGVQaXBlIH0gZnJvbSAnLi9waXBlcy9maWVsZC1ub3QtYXZhaWxhYmxlLnBpcGUnO1xuaW1wb3J0IHsgSW1nSGVhZGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvaW1nLWhlYWRlci5waXBlJztcbmltcG9ydCB7IEltZ1RoZW1lUGlwZSB9IGZyb20gJy4vcGlwZXMvaW1nLXRoZW1lLnBpcGUnO1xuaW1wb3J0IHsgSzhzVXRpbFBpcGVNb2R1bGUgfSBmcm9tICcuL3BpcGVzL2s4cy11dGlsLnBpcGUubW9kdWxlJztcbmltcG9ydCB7IFBhcnNlSnNvblRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuL3BpcGVzL3BhcnNlLWpzb24tdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHtcbiAgQ3Jvbkh1bWFuUmVhZGFibGVQaXBlLFxuICBMb2NhbGVUcmFuc2Zvcm1QaXBlLFxuICBNYXJrZWRQaXBlLFxuICBSZWxhdGl2ZVRpbWVQaXBlLFxuICBTYW5pdGl6ZVBpcGUsXG4gIFN0YW5kYXJkRGF0ZVBpcGUsXG4gIFN0YW5kYXJkVGltZVBpcGUsXG4gIFRoZW1lVHJhbnNmb3JtUGlwZSxcbiAgVGltZXpvbmVEaXNwbGF5UGlwZSxcbn0gZnJvbSAnLi9waXBlcy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFB1cmVQaXBlIH0gZnJvbSAnLi9waXBlcy9wdXJlLnBpcGUnO1xuaW1wb3J0IHsgU2FmZVBpcGUgfSBmcm9tICcuL3BpcGVzL3NhZmUucGlwZSc7XG5cbmNvbnN0IFNUQU5EUyA9IFtcbiAgUmVhZG9ubHlGaWVsZERpcmVjdGl2ZSxcbiAgUGFyc2VKc29uVHJhbnNsYXRlUGlwZSxcbiAgRmllbGROb3RBdmFpbGFibGVQaXBlLFxuICBJbWdIZWFkZXJQaXBlLFxuICBJbWdUaGVtZVBpcGUsXG4gIFNhZmVQaXBlLFxuICBTYW5pdGl6ZVBpcGUsXG4gIFJlbGF0aXZlVGltZVBpcGUsXG4gIFBhZ2VIZWFkZXJDb250ZW50RGlyZWN0aXZlLFxuICBTdGFuZGFyZFRpbWVQaXBlLFxuICBTY3JvbGxUb0ZpcnN0SW52YWxpZERpcmVjdGl2ZSxcbiAgSW50ZXJjZXB0RGVhY3RpdmF0ZURpcmVjdGl2ZSxcbiAgRGlzYWJsZWREaXJlY3RpdmUsXG4gIENsaWNrT3V0c2lkZURpcmVjdGl2ZSxcbiAgU2Nyb2xsQm9yZGVyT2JzZXJ2ZXJEaXJlY3RpdmUsXG4gIFJlc2l6ZURpcmVjdGl2ZSxcbiAgRmVhdHVyZUdhdGVEaXJlY3RpdmUsXG4gIFB1cmVQaXBlLFxuICBTdGFuZGFyZERhdGVQaXBlLFxuXTtcblxuY29uc3QgUElQRVMgPSBbXG4gIENyb250YWJOZXh0UGlwZSxcbiAgTWFya2VkUGlwZSxcblxuICBMb2NhbGVUcmFuc2Zvcm1QaXBlLFxuICBUaGVtZVRyYW5zZm9ybVBpcGUsXG4gIFRpbWV6b25lRGlzcGxheVBpcGUsXG4gIENyb25IdW1hblJlYWRhYmxlUGlwZSxcbl07XG5cbmNvbnN0IERJUkVDVElWRVMgPSBbXG4gIFNjcm9sbFRvRmlyc3RJbnZhbGlkTWFya2VyRGlyZWN0aXZlLFxuICBGb3JtSXRlbU1hcmdpbkVmZmVjdERpcmVjdGl2ZSxcbl07XG5cbmNvbnN0IEVYUE9SVEFCTEVTID0gWy4uLlBJUEVTLCAuLi5ESVJFQ1RJVkVTXTtcbmNvbnN0IElOVEVSTkFMUyA9IFtTcGFuQ29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEs4c1V0aWxQaXBlTW9kdWxlLFxuICAgIEVmZmVjdERpcmVjdGl2ZU1vZHVsZSxcbiAgICBDb2RlTW9kdWxlLFxuICAgIC4uLlNUQU5EUyxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbLi4uRVhQT1JUQUJMRVMsIC4uLklOVEVSTkFMU10sXG4gIGV4cG9ydHM6IFtcbiAgICAuLi5FWFBPUlRBQkxFUyxcbiAgICAuLi5TVEFORFMsXG4gICAgSzhzVXRpbFBpcGVNb2R1bGUsXG4gICAgQ29kZU1vZHVsZSxcbiAgICBFZmZlY3REaXJlY3RpdmVNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvcmVNb2R1bGUge31cbiJdfQ==
@@ -106,10 +106,10 @@ export class StandardDatePipe extends DateTimePipe {
106
106
  this.format = DATE_FORMAT;
107
107
  }
108
108
  static { this.ɵfac = /*@__PURE__*/ (() => { let ɵStandardDatePipe_BaseFactory; return function StandardDatePipe_Factory(t) { return (ɵStandardDatePipe_BaseFactory || (ɵStandardDatePipe_BaseFactory = i0.ɵɵgetInheritedFactory(StandardDatePipe)))(t || StandardDatePipe); }; })(); }
109
- static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "aclStandardDate", type: StandardDatePipe, pure: true }); }
109
+ static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "aclStandardDate", type: StandardDatePipe, pure: true, standalone: true }); }
110
110
  }
111
111
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StandardDatePipe, [{
112
112
  type: Pipe,
113
- args: [{ name: 'aclStandardDate' }]
113
+ args: [{ name: 'aclStandardDate', standalone: true }]
114
114
  }], null, null); })();
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvcGlwZXMvdGltZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsVUFBVSxFQUVWLElBQUksR0FFTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQXFCLE1BQU0sT0FBTyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxFQUNMLCtCQUErQixFQUMvQixtQkFBbUIsR0FDcEIsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUVwQyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQztBQUNqQyxNQUFNLG1CQUFtQixHQUFHLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztBQUNyRCxNQUFNLGlCQUFpQixHQUFHLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztBQUNuRCxNQUFNLGdCQUFnQixHQUFHLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztBQUNoRCxNQUFNLGlCQUFpQixHQUFHLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUcvQyxNQUFNLE9BQU8sZ0JBQWdCO0lBSzNCLFlBQ21CLEdBQXNCLEVBQ3RCLElBQWlCLEVBQ2pCLFNBQTJCO1FBRjNCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFQN0IsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENB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QUM7UUFDekMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7NkVBWG1CLFlBQVk7dUVBQVosWUFBWSxXQUFaLFlBQVk7O2lGQUFaLFlBQVk7Y0FEakMsVUFBVTs7QUFnQlgsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFlBQVk7SUFEbEQ7O1FBRVcsV0FBTSxHQUFHLGdCQUFnQixDQUFDO0tBQ3BDO29PQUZZLGdCQUFnQixTQUFoQixnQkFBZ0I7eUZBQWhCLGdCQUFnQjs7aUZBQWhCLGdCQUFnQjtjQUQ1QixJQUFJO2VBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTs7QUFNbkQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFlBQVk7SUFEbEQ7O1FBRVcsV0FBTSxHQUFHLFdBQVcsQ0FBQztLQUMvQjtvT0FGWSxnQkFBZ0IsU0FBaEIsZ0JBQWdCO3lGQUFoQixnQkFBZ0I7O2lGQUFoQixnQkFBZ0I7Y0FENUIsSUFBSTtlQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgdXRpbHNcbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgSW5qZWN0YWJsZSxcbiAgT25EZXN0cm95LFxuICBQaXBlLFxuICBQaXBlVHJhbnNmb3JtLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBkYXlqcywgeyBDb25maWdUeXBlIH0gZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi90cmFuc2xhdGUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBEQVRFX0ZPUk1BVCwgREFURV9USU1FX0ZPUk1BVCB9IGZyb20gJy4uL2NvbnN0YW50cy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFRpbWVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcHVibGljLWFwaSc7XG5cbmltcG9ydCB7XG4gIEZJRUxEX05PVF9BVkFJTEFCTEVfUExBQ0VIT0xERVIsXG4gIGlzRmllbGROb3RBdmFpbGFibGUsXG59IGZyb20gJy4vZmllbGQtbm90LWF2YWlsYWJsZS5waXBlJztcblxuY29uc3QgTUlMTElTRUNPTkRTX1NFQ09ORCA9IDEwMDA7XG5jb25zdCBNSUxMSVNFQ09ORFNfTUlOVVRFID0gTUlMTElTRUNPTkRTX1NFQ09ORCAqIDYwO1xuY29uc3QgTUlMTElTRUNPTkRTX0hPVVIgPSBNSUxMSVNFQ09ORFNfTUlOVVRFICogNjA7XG5jb25zdCBNSUxMSVNFQ09ORFNfREFZID0gTUlMTElTRUNPTkRTX0hPVVIgKiAyNDtcbmNvbnN0IE1JTExJU0VDT05EU19XRUVLID0gTUlMTElTRUNPTkRTX0RBWSAqIDc7XG5cbkBQaXBlKHsgbmFtZTogJ2FjbFJlbGF0aXZlVGltZScsIHB1cmU6IGZhbHNlLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgUmVsYXRpdmVUaW1lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHRpbWVySWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0aW1lOiBUaW1lU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy50cmFuc2xhdGUubG9jYWxlJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQkLmNvbXBsZXRlKCk7XG5cbiAgICBpZiAodGhpcy50aW1lcklkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lcklkKTtcbiAgICB9XG4gIH1cblxuICB0cmFuc2Zvcm0odmFsdWU6IENvbmZpZ1R5cGUpIHtcbiAgICBpZiAoaXNGaWVsZE5vdEF2YWlsYWJsZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBGSUVMRF9OT1RfQVZBSUxBQkxFX1BMQUNFSE9MREVSO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBnaXZlblRpbWUgPSBkYXlqcyh2YWx1ZSkudmFsdWVPZigpO1xuXG4gICAgY29uc3QgZGlzdGFuY2UgPSBjdXJyZW50VGltZSAtIGdpdmVuVGltZTtcblxuICAgIGlmIChkaXN0YW5jZSA+PSBNSUxMSVNFQ09ORFNfV0VFSykge1xuICAgICAgcmV0dXJuIHRoaXMudGltZS5mb3JtYXQodmFsdWUsIERBVEVfRk9STUFUKTtcbiAgICB9XG5cbiAgICB0aGlzLmNoZWNrRGlzdGFuY2UoZGlzdGFuY2UpO1xuXG4gICAgcmV0dXJuIGRpc3RhbmNlIDwgTUlMTElTRUNPTkRTX01JTlVURVxuICAgICAgPyB0aGlzLnRyYW5zbGF0ZS5nZXQoJ2p1c3Rfbm93JylcbiAgICAgIDogdGhpcy50aW1lLmRpc3RhbmNlKGdpdmVuVGltZSwgY3VycmVudFRpbWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNoZWNrRGlzdGFuY2UoZGlzdGFuY2U6IG51bWJlcikge1xuICAgIGlmIChkaXN0YW5jZSA8IE1JTExJU0VDT05EU19NSU5VVEUpIHtcbiAgICAgIHJldHVybiB0aGlzLnN0YXJ0VGltZXIoTUlMTElTRUNPTkRTX1NFQ09ORCk7XG4gICAgfVxuXG4gICAgaWYgKGRpc3RhbmNlIDwgTUlMTElTRUNPTkRTX0hPVVIpIHtcbiAgICAgIHJldHVybiB0aGlzLnN0YXJ0VGltZXIoTUlMTElTRUNPTkRTX01JTlVURSk7XG4gICAgfVxuXG4gICAgaWYgKGRpc3RhbmNlIDwgTUlMTElTRUNPTkRTX0RBWSkge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhcnRUaW1lcihNSUxMSVNFQ09ORFNfSE9VUik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RhcnRUaW1lcihNSUxMSVNFQ09ORFNfREFZKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRUaW1lcih0aW1lb3V0OiBudW1iZXIpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lcklkKTtcbiAgICB0aGlzLnRpbWVySWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKSwgdGltZW91dCk7XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGVUaW1lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBhYnN0cmFjdCBmb3JtYXQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRpbWU6IFRpbWVTZXJ2aWNlKSB7fVxuXG4gIHRyYW5zZm9ybSh2YWx1ZTogQ29uZmlnVHlwZSwgdXRjID0gZmFsc2UpIHtcbiAgICBpZiAoIXZhbHVlPy50b1N0cmluZygpLnRyaW0oKSkge1xuICAgICAgcmV0dXJuIEZJRUxEX05PVF9BVkFJTEFCTEVfUExBQ0VIT0xERVI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudGltZS5mb3JtYXQodXRjID8gZGF5anMudXRjKHZhbHVlKSA6IHZhbHVlLCB0aGlzLmZvcm1hdCk7XG4gIH1cbn1cblxuQFBpcGUoeyBuYW1lOiAnYWNsU3RhbmRhcmRUaW1lJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIFN0YW5kYXJkVGltZVBpcGUgZXh0ZW5kcyBEYXRlVGltZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgb3ZlcnJpZGUgZm9ybWF0ID0gREFURV9USU1FX0ZPUk1BVDtcbn1cblxuQFBpcGUoeyBuYW1lOiAnYWNsU3RhbmRhcmREYXRlJyB9KVxuZXhwb3J0IGNsYXNzIFN0YW5kYXJkRGF0ZVBpcGUgZXh0ZW5kcyBEYXRlVGltZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgb3ZlcnJpZGUgZm9ybWF0ID0gREFURV9GT1JNQVQ7XG59XG4iXX0=
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvcGlwZXMvdGltZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsVUFBVSxFQUVWLElBQUksR0FFTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQXFCLE1BQU0sT0FBTyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxFQUNMLCtCQUErQixFQUMvQixtQkFBbUIsR0FDcEIsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUVwQyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQztBQUNqQyxNQUFNLG1CQUFtQixHQUFHLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztBQUNyRCxNQUFNLGlCQUFpQixHQUFHLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztBQUNuRCxNQUFNLGdCQUFnQixHQUFHLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztBQUNoRCxNQUFNLGlCQUFpQixHQUFHLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUcvQyxNQUFNLE9BQU8sZ0JBQWdCO0lBSzNCLFlBQ21CLEdBQXNCLEVBQ3RCLElBQWlCLEVBQ2pCLFNBQTJCO1FBRjNCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFQN0IsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENB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QUM7UUFDekMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7NkVBWG1CLFlBQVk7dUVBQVosWUFBWSxXQUFaLFlBQVk7O2lGQUFaLFlBQVk7Y0FEakMsVUFBVTs7QUFnQlgsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFlBQVk7SUFEbEQ7O1FBRVcsV0FBTSxHQUFHLGdCQUFnQixDQUFDO0tBQ3BDO29PQUZZLGdCQUFnQixTQUFoQixnQkFBZ0I7eUZBQWhCLGdCQUFnQjs7aUZBQWhCLGdCQUFnQjtjQUQ1QixJQUFJO2VBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTs7QUFNbkQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFlBQVk7SUFEbEQ7O1FBRVcsV0FBTSxHQUFHLFdBQVcsQ0FBQztLQUMvQjtvT0FGWSxnQkFBZ0IsU0FBaEIsZ0JBQWdCO3lGQUFoQixnQkFBZ0I7O2lGQUFoQixnQkFBZ0I7Y0FENUIsSUFBSTtlQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSB1dGlsc1xuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBJbmplY3RhYmxlLFxuICBPbkRlc3Ryb3ksXG4gIFBpcGUsXG4gIFBpcGVUcmFuc2Zvcm0sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGRheWpzLCB7IENvbmZpZ1R5cGUgfSBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3RyYW5zbGF0ZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IERBVEVfRk9STUFULCBEQVRFX1RJTUVfRk9STUFUIH0gZnJvbSAnLi4vY29uc3RhbnRzL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgVGltZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHtcbiAgRklFTERfTk9UX0FWQUlMQUJMRV9QTEFDRUhPTERFUixcbiAgaXNGaWVsZE5vdEF2YWlsYWJsZSxcbn0gZnJvbSAnLi9maWVsZC1ub3QtYXZhaWxhYmxlLnBpcGUnO1xuXG5jb25zdCBNSUxMSVNFQ09ORFNfU0VDT05EID0gMTAwMDtcbmNvbnN0IE1JTExJU0VDT05EU19NSU5VVEUgPSBNSUxMSVNFQ09ORFNfU0VDT05EICogNjA7XG5jb25zdCBNSUxMSVNFQ09ORFNfSE9VUiA9IE1JTExJU0VDT05EU19NSU5VVEUgKiA2MDtcbmNvbnN0IE1JTExJU0VDT05EU19EQVkgPSBNSUxMSVNFQ09ORFNfSE9VUiAqIDI0O1xuY29uc3QgTUlMTElTRUNPTkRTX1dFRUsgPSBNSUxMSVNFQ09ORFNfREFZICogNztcblxuQFBpcGUoeyBuYW1lOiAnYWNsUmVsYXRpdmVUaW1lJywgcHVyZTogZmFsc2UsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBSZWxhdGl2ZVRpbWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgdGltZXJJZDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRpbWU6IFRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLnRyYW5zbGF0ZS5sb2NhbGUkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcblxuICAgIGlmICh0aGlzLnRpbWVySWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVySWQpO1xuICAgIH1cbiAgfVxuXG4gIHRyYW5zZm9ybSh2YWx1ZTogQ29uZmlnVHlwZSkge1xuICAgIGlmIChpc0ZpZWxkTm90QXZhaWxhYmxlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIEZJRUxEX05PVF9BVkFJTEFCTEVfUExBQ0VIT0xERVI7XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudFRpbWUgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IGdpdmVuVGltZSA9IGRheWpzKHZhbHVlKS52YWx1ZU9mKCk7XG5cbiAgICBjb25zdCBkaXN0YW5jZSA9IGN1cnJlbnRUaW1lIC0gZ2l2ZW5UaW1lO1xuXG4gICAgaWYgKGRpc3RhbmNlID49IE1JTExJU0VDT05EU19XRUVLKSB7XG4gICAgICByZXR1cm4gdGhpcy50aW1lLmZvcm1hdCh2YWx1ZSwgREFURV9GT1JNQVQpO1xuICAgIH1cblxuICAgIHRoaXMuY2hlY2tEaXN0YW5jZShkaXN0YW5jZSk7XG5cbiAgICByZXR1cm4gZGlzdGFuY2UgPCBNSUxMSVNFQ09ORFNfTUlOVVRFXG4gICAgICA/IHRoaXMudHJhbnNsYXRlLmdldCgnanVzdF9ub3cnKVxuICAgICAgOiB0aGlzLnRpbWUuZGlzdGFuY2UoZ2l2ZW5UaW1lLCBjdXJyZW50VGltZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tEaXN0YW5jZShkaXN0YW5jZTogbnVtYmVyKSB7XG4gICAgaWYgKGRpc3RhbmNlIDwgTUlMTElTRUNPTkRTX01JTlVURSkge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhcnRUaW1lcihNSUxMSVNFQ09ORFNfU0VDT05EKTtcbiAgICB9XG5cbiAgICBpZiAoZGlzdGFuY2UgPCBNSUxMSVNFQ09ORFNfSE9VUikge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhcnRUaW1lcihNSUxMSVNFQ09ORFNfTUlOVVRFKTtcbiAgICB9XG5cbiAgICBpZiAoZGlzdGFuY2UgPCBNSUxMSVNFQ09ORFNfREFZKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGFydFRpbWVyKE1JTExJU0VDT05EU19IT1VSKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdGFydFRpbWVyKE1JTExJU0VDT05EU19EQVkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFRpbWVyKHRpbWVvdXQ6IG51bWJlcikge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVySWQpO1xuICAgIHRoaXMudGltZXJJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpLCB0aW1lb3V0KTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZVRpbWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGFic3RyYWN0IGZvcm1hdDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdGltZTogVGltZVNlcnZpY2UpIHt9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBDb25maWdUeXBlLCB1dGMgPSBmYWxzZSkge1xuICAgIGlmICghdmFsdWU/LnRvU3RyaW5nKCkudHJpbSgpKSB7XG4gICAgICByZXR1cm4gRklFTERfTk9UX0FWQUlMQUJMRV9QTEFDRUhPTERFUjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50aW1lLmZvcm1hdCh1dGMgPyBkYXlqcy51dGModmFsdWUpIDogdmFsdWUsIHRoaXMuZm9ybWF0KTtcbiAgfVxufVxuXG5AUGlwZSh7IG5hbWU6ICdhY2xTdGFuZGFyZFRpbWUnLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRUaW1lUGlwZSBleHRlbmRzIERhdGVUaW1lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBvdmVycmlkZSBmb3JtYXQgPSBEQVRFX1RJTUVfRk9STUFUO1xufVxuXG5AUGlwZSh7IG5hbWU6ICdhY2xTdGFuZGFyZERhdGUnLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgU3RhbmRhcmREYXRlUGlwZSBleHRlbmRzIERhdGVUaW1lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBvdmVycmlkZSBmb3JtYXQgPSBEQVRFX0ZPUk1BVDtcbn1cbiJdfQ==