@hestia-earth/ui-components 0.24.0 → 0.24.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/utils.d.ts +24 -1
- package/engine/aggregation-engine.service.d.ts +3 -1
- package/engine/engine.service.d.ts +3 -1
- package/esm2022/common/utils.mjs +6 -2
- package/esm2022/engine/aggregation-engine.service.mjs +15 -8
- package/esm2022/engine/engine-orchestrator-edit/engine-orchestrator-edit.component.mjs +3 -3
- package/esm2022/engine/engine.service.mjs +14 -9
- package/esm2022/impact-assessments/impact-assessments-products/impact-assessments-products.component.mjs +6 -5
- package/esm2022/node/node-logs-models/node-logs-models.component.mjs +8 -8
- package/esm2022/sites/sites-maps/sites-maps.component.mjs +14 -5
- package/fesm2022/hestia-earth-ui-components.mjs +55 -31
- package/fesm2022/hestia-earth-ui-components.mjs.map +1 -1
- package/impact-assessments/impact-assessments-products/impact-assessments-products.component.d.ts +2 -6
- package/node/node-logs-models/node-logs-models.component.d.ts +1 -1
- package/package.json +1 -1
- package/sites/sites-maps/sites-maps.component.d.ts +4 -1
package/common/utils.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare const gitHome = "https://gitlab.com/hestia-earth";
|
|
2
|
-
export declare const gitRawBaseUrl = "https://gl.githack.com/hestia-earth";
|
|
3
2
|
export declare const gitBranch: () => "develop" | "master";
|
|
4
3
|
export declare const isChrome: () => boolean;
|
|
5
4
|
export declare const baseUrl: () => string;
|
|
5
|
+
export declare const baseApiUrl: () => string;
|
|
6
6
|
export declare const isExternal: () => boolean;
|
|
7
7
|
export declare const handleAPIError: (error: any) => never;
|
|
8
8
|
export declare const errorText: (error: any) => string;
|
|
@@ -55,3 +55,26 @@ export declare const schemaLink: (type: string, title?: string) => string;
|
|
|
55
55
|
export declare const code: (text: string | number | boolean) => string;
|
|
56
56
|
export declare const contactUsLink: (text?: string) => string;
|
|
57
57
|
export declare const reportIssueLink: (repository: Repository, template?: Template, text?: string) => string;
|
|
58
|
+
interface IGitlabRawParams {
|
|
59
|
+
/**
|
|
60
|
+
* The repository where the file is located.
|
|
61
|
+
*/
|
|
62
|
+
repository: Repository;
|
|
63
|
+
/**
|
|
64
|
+
* The path of the file, from the root of the repository.
|
|
65
|
+
*/
|
|
66
|
+
path: string;
|
|
67
|
+
/**
|
|
68
|
+
* The base url of the Hestia API.
|
|
69
|
+
*/
|
|
70
|
+
apiUrl?: string;
|
|
71
|
+
/**
|
|
72
|
+
* The branch, using the default branch based on the environment.
|
|
73
|
+
*/
|
|
74
|
+
branch?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Url to fetch raw content from Gitlab, bypassing CORS issues.
|
|
78
|
+
*/
|
|
79
|
+
export declare const gitlabRawUrl: ({ repository, path, apiUrl, branch }: IGitlabRawParams) => string;
|
|
80
|
+
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { NodeType } from '@hestia-earth/schema';
|
|
3
|
+
import { HeCommonService } from '../common/common.service';
|
|
3
4
|
import { HeNodeService } from '../node/node.service';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare const lookups: Readonly<{
|
|
@@ -22,10 +23,11 @@ export interface IAggregationModel {
|
|
|
22
23
|
export declare class HeAggregationEngineService {
|
|
23
24
|
protected http: HttpClient;
|
|
24
25
|
protected nodeService: HeNodeService;
|
|
26
|
+
protected commonService: HeCommonService;
|
|
25
27
|
private modelsLoading;
|
|
26
28
|
private modelsLoaded;
|
|
27
29
|
private _models;
|
|
28
|
-
constructor(http: HttpClient, nodeService: HeNodeService);
|
|
30
|
+
constructor(http: HttpClient, nodeService: HeNodeService, commonService: HeCommonService);
|
|
29
31
|
private init;
|
|
30
32
|
private loadModels;
|
|
31
33
|
private get models$();
|
|
@@ -2,6 +2,7 @@ import { InjectionToken } from '@angular/core';
|
|
|
2
2
|
import { HttpClient } from '@angular/common/http';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import { EmissionMethodTier, JSONLD, NodeType, SchemaType, SiteSiteType, TermTermType } from '@hestia-earth/schema';
|
|
5
|
+
import { HeCommonService } from '../common/common.service';
|
|
5
6
|
import { blankNode } from '../common/node-utils';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export declare const HE_CALCULATIONS_BASE_URL: InjectionToken<string>;
|
|
@@ -92,13 +93,14 @@ export declare class HeEngineService {
|
|
|
92
93
|
private _calculationsBaseUrl;
|
|
93
94
|
private _orchestratorBaseUrl;
|
|
94
95
|
protected http: HttpClient;
|
|
96
|
+
protected commonService: HeCommonService;
|
|
95
97
|
private modelsLoading;
|
|
96
98
|
private modelsLoaded;
|
|
97
99
|
private _models;
|
|
98
100
|
private _recommendations;
|
|
99
101
|
private _requirements;
|
|
100
102
|
latestVersion$: Observable<string>;
|
|
101
|
-
constructor(_calculationsBaseUrl: string, _orchestratorBaseUrl: string, http: HttpClient);
|
|
103
|
+
constructor(_calculationsBaseUrl: string, _orchestratorBaseUrl: string, http: HttpClient, commonService: HeCommonService);
|
|
102
104
|
private init;
|
|
103
105
|
private loadModels;
|
|
104
106
|
private get models$();
|
package/esm2022/common/utils.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import get from 'lodash.get';
|
|
2
2
|
import { SchemaType } from '@hestia-earth/schema';
|
|
3
3
|
export const gitHome = 'https://gitlab.com/hestia-earth';
|
|
4
|
-
export const gitRawBaseUrl = 'https://gl.githack.com/hestia-earth';
|
|
5
4
|
export const gitBranch = () => (['dev', 'staging'].some(env => baseUrl().includes(env)) ? 'develop' : 'master');
|
|
6
5
|
export const isChrome = () => window.navigator.userAgent.includes('Chrome');
|
|
7
6
|
export const baseUrl = () => window.location.origin?.includes('localhost')
|
|
@@ -9,6 +8,7 @@ export const baseUrl = () => window.location.origin?.includes('localhost')
|
|
|
9
8
|
: window.location.origin?.includes('hestia.earth')
|
|
10
9
|
? window.location.origin
|
|
11
10
|
: 'https://www.hestia.earth';
|
|
11
|
+
export const baseApiUrl = () => baseUrl().replace('www', 'api');
|
|
12
12
|
export const isExternal = () => baseUrl() !== window.location.origin;
|
|
13
13
|
const parseErrorStatus = (error) => (error?.statusText || '').toLowerCase().replace(/\s/g, '-');
|
|
14
14
|
const parseErrorMessage = (error) => get(error, 'error.error', get(error, 'error.message', get(error, 'error', get(error, 'message', error))));
|
|
@@ -112,4 +112,8 @@ export const schemaLink = (type, title = type) => `<a href="${baseUrl()}/schema/
|
|
|
112
112
|
export const code = (text) => `<code>${text}</code>`;
|
|
113
113
|
export const contactUsLink = (text = 'contact us') => `<a href="mailto:${contactUsEmail}">${text}</a>`;
|
|
114
114
|
export const reportIssueLink = (repository, template, text = 'here') => externalLink(reportIssueUrl(repository, template), text);
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQztBQUM3QixPQUFPLEVBQXdDLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxpQ0FBaUMsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcscUNBQXFDLENBQUM7QUFDbkUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFaEgsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUU1RSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQzFCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFDM0MsQ0FBQyxDQUFDLDhCQUE4QjtJQUNoQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQztRQUNsRCxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1FBQ3hCLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztBQUVqQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssTUFBTSxDQUFD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T05MRCwgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIFNjaGVtYVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5cbmV4cG9ydCBjb25zdCBnaXRIb21lID0gJ2h0dHBzOi8vZ2l0bGFiLmNvbS9oZXN0aWEtZWFydGgnO1xuZXhwb3J0IGNvbnN0IGdpdFJhd0Jhc2VVcmwgPSAnaHR0cHM6Ly9nbC5naXRoYWNrLmNvbS9oZXN0aWEtZWFydGgnO1xuZXhwb3J0IGNvbnN0IGdpdEJyYW5jaCA9ICgpID0+IChbJ2RldicsICdzdGFnaW5nJ10uc29tZShlbnYgPT4gYmFzZVVybCgpLmluY2x1ZGVzKGVudikpID8gJ2RldmVsb3AnIDogJ21hc3RlcicpO1xuXG5leHBvcnQgY29uc3QgaXNDaHJvbWUgPSAoKSA9PiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygnQ2hyb21lJyk7XG5cbmV4cG9ydCBjb25zdCBiYXNlVXJsID0gKCkgPT5cbiAgd2luZG93LmxvY2F0aW9uLm9yaWdpbj8uaW5jbHVkZXMoJ2xvY2FsaG9zdCcpXG4gICAgPyAnaHR0cHM6Ly93d3ctZGV2Lmhlc3RpYS5lYXJ0aCdcbiAgICA6IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4/LmluY2x1ZGVzKCdoZXN0aWEuZWFydGgnKVxuICAgID8gd2luZG93LmxvY2F0aW9uLm9yaWdpblxuICAgIDogJ2h0dHBzOi8vd3d3Lmhlc3RpYS5lYXJ0aCc7XG5cbmV4cG9ydCBjb25zdCBpc0V4dGVybmFsID0gKCkgPT4gYmFzZVVybCgpICE9PSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuXG5jb25zdCBwYXJzZUVycm9yU3RhdHVzID0gKGVycm9yOiBhbnkpID0+IChlcnJvcj8uc3RhdHVzVGV4dCB8fCAnJykudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMvZywgJy0nKTtcblxuY29uc3QgcGFyc2VFcnJvck1lc3NhZ2UgPSAoZXJyb3I6IGFueSkgPT5cbiAgZ2V0KGVycm9yLCAnZXJyb3IuZXJyb3InLCBnZXQoZXJyb3IsICdlcnJvci5tZXNzYWdlJywgZ2V0KGVycm9yLCAnZXJyb3InLCBnZXQoZXJyb3IsICdtZXNzYWdlJywgZXJyb3IpKSkpO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlQVBJRXJyb3IgPSAoZXJyb3I6IGFueSkgPT4ge1xuICB0cnkge1xuICAgIGVycm9yID0gcGFyc2VFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBpZ25vcmUgZXJyb3JcbiAgfVxuICB0aHJvdyBlcnJvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBlcnJvclRleHQgPSAoZXJyb3I6IGFueSk6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2YgZXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGVycm9yO1xuICB9XG4gIGNvbnN0IGVyciA9IHBhcnNlRXJyb3JNZXNzYWdlKGVycm9yKTtcbiAgcmV0dXJuIHBhcnNlRXJyb3JTdGF0dXMoZXJyKSB8fCBlcnI7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyUGFyYW1zID0gKG9iajogYW55KSA9PiB7XG4gIGNvbnN0IHJlczoge1xuICAgIFt4OiBzdHJpbmddOiBzdHJpbmc7XG4gIH0gPSB7fTtcbiAgT2JqZWN0LmtleXMob2JqKVxuICAgIC5zb3J0KClcbiAgICAuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBvYmpba2V5XTtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmVzW2tleV0gPSBgJHt2YWx1ZX1gO1xuICAgICAgfVxuICAgIH0pO1xuICByZXR1cm4gcmVzO1xufTtcblxuZXhwb3J0IGNvbnN0IHdhaXRGb3IgPSAodmFyaWFibGU6IHN0cmluZywgY2FsbGJhY2s6ICgpID0+IHZvaWQpID0+XG4gIGdldCh3aW5kb3csIHZhcmlhYmxlLCBmYWxzZSkgPyBjYWxsYmFjaygpIDogc2V0VGltZW91dCgoKSA9PiB3YWl0Rm9yKHZhcmlhYmxlLCBjYWxsYmFjayksIDEwMCk7XG5cbmV4cG9ydCBjb25zdCBib3R0b20gPSAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG5cbmV4cG9ydCBjb25zdCBpc1Njcm9sbGVkQmVsb3cgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IChlbGVtZW50ID8gd2luZG93LnNjcm9sbFkgPiBib3R0b20oZWxlbWVudCkgOiBmYWxzZSk7XG5cbmV4cG9ydCBjb25zdCBzY3JvbGxUb0VsID0gKGlkOiBzdHJpbmcsIHJldHJpZXMgPSAwKSA9PiB7XG4gIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICBzZXRUaW1lb3V0KCgpID0+IChlbCA/IGVsLnNjcm9sbEludG9WaWV3KCkgOiByZXRyaWVzIDwgMTAgPyBzY3JvbGxUb0VsKGlkLCByZXRyaWVzICsgMSkgOiBudWxsKSwgMTAwKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzY3JvbGxUb3AgPSAoKSA9PiB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG5cbmV4cG9ydCBjb25zdCBzYWZlSlNPTlBhcnNlID0gPFQ+KHZhbHVlOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IGFueSkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gKEpTT04ucGFyc2UodmFsdWUpIGFzIFQpIDogdmFsdWU7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBzYWZlSlNPTlN0cmluZ2lmeSA9ICh2YWx1ZTogc3RyaW5nKSA9PiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcblxuZXhwb3J0IGNvbnN0IGFycmF5VmFsdWUgPSAodmFsdWVzOiBhbnlbXSwgaXNBdmVyYWdlOiBib29sZWFuKSA9PlxuICAodmFsdWVzIHx8IFtdKS5yZWR1Y2UoKHByZXY6IG51bWJlciwgY3VycikgPT4gcHJldiArIHBhcnNlRmxvYXQoYCR7Y3Vycn1gKSwgMCkgLyAoaXNBdmVyYWdlID8gdmFsdWVzLmxlbmd0aCA6IDEpO1xuXG5leHBvcnQgY29uc3QgZWxsaXBzaXMgPSAodGV4dCA9ICcnLCBtYXhsZW5ndGggPSAyMCkgPT5cbiAgdGV4dC5sZW5ndGggPiBtYXhsZW5ndGggPyBgJHt0ZXh0LnN1YnN0cmluZygwLCBtYXhsZW5ndGgpfS4uLmAgOiB0ZXh0O1xuXG5jb25zdCBtYXBzUXVlcnkgPSAnaHR0cDovL21hcHMuZ29vZ2xlLmNvbS8/cT0nO1xuXG5leHBvcnQgY29uc3QgbWFwc1VybCA9IChsb2NhdGlvbj86IHsgbGF0PzogbnVtYmVyOyBsbmc/OiBudW1iZXI7IG5hbWU/OiBzdHJpbmcgfSkgPT5cbiAgbG9jYXRpb25cbiAgICA/IGxvY2F0aW9uLmxhdCAmJiBsb2NhdGlvbi5sbmdcbiAgICAgID8gYCR7bWFwc1F1ZXJ5fSR7bG9jYXRpb24ubGF0fSwke2xvY2F0aW9uLmxuZ31gXG4gICAgICA6IGxvY2F0aW9uLm5hbWVcbiAgICAgID8gYCR7bWFwc1F1ZXJ5fSR7ZW5jb2RlVVJJKGxvY2F0aW9uLm5hbWUpfWBcbiAgICAgIDogdW5kZWZpbmVkXG4gICAgOiB1bmRlZmluZWQ7XG5cbmNvbnN0IG5vZGVEZWZhdWx0TGFiZWw6IHtcbiAgW3R5cGUgaW4gU2NoZW1hVHlwZV0/OiAoZGF0YTogYW55KSA9PiBzdHJpbmc7XG59ID0ge1xuICBbU2NoZW1hVHlwZS5JbXBhY3RBc3Nlc3NtZW50XTogKHsgbmFtZSwgY291bnRyeSwgZW5kRGF0ZSwgcHJvZHVjdCB9OiBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCkgPT5cbiAgICBuYW1lXG4gICAgICA/IG5hbWUucmVwbGFjZShgJHtwcm9kdWN0Py50ZXJtPy5uYW1lfSwgYCwgJycpXG4gICAgICA6IFtwcm9kdWN0Py50ZXJtPy5uYW1lLCBjb3VudHJ5Py5uYW1lLCBlbmREYXRlXS5maWx0ZXIoQm9vbGVhbikuam9pbignLCAnKSxcbiAgW1NjaGVtYVR5cGUuU2l0ZV06ICh7IG5hbWUsIGRlc2NyaXB0aW9uIH06IElTaXRlSlNPTkxEKSA9PiBuYW1lIHx8IGRlc2NyaXB0aW9uISxcbiAgW1NjaGVtYVR5cGUuVHJhbnNmb3JtYXRpb25dOiAoeyBuYW1lLCB0ZXJtIH06IGFueSkgPT4gbmFtZSB8fCB0ZXJtPy5uYW1lXG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdExhYmVsID0gKG5vZGU/OiBhbnkpID0+XG4gIG5vZGVcbiAgICA/IChub2RlWydAdHlwZSddIGluIG5vZGVEZWZhdWx0TGFiZWwgPyBub2RlRGVmYXVsdExhYmVsW25vZGVbJ0B0eXBlJ11dKG5vZGUpIDogbm9kZS5uYW1lKSB8fCBub2RlWydAaWQnXSB8fCBub2RlLmlkXG4gICAgOiAnJztcblxuZXhwb3J0IGNvbnN0IHJlcGVhdCA9ICh0aW1lcyA9IDApID0+IEFycmF5LmZyb20oQXJyYXkodGltZXMpLCBNYXRoLnJhbmRvbSk7XG5cbmV4cG9ydCBjb25zdCBjb3B5T2JqZWN0ID0gKGRhdGE/OiBhbnkpID0+IChkYXRhID8gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSkgOiBudWxsKTtcblxuZXhwb3J0IGNvbnN0IGlzRXF1YWwgPSAoYTogYW55LCBiOiBhbnkpID0+IEpTT04uc3RyaW5naWZ5KGEpID09PSBKU09OLnN0cmluZ2lmeShiKTtcblxuZXhwb3J0IGNvbnN0IHR5cGVhaGVhZEZvY3VzID0gKGU6IEV2ZW50KSA9PiB7XG4gIGlmIChlLmJ1YmJsZXMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgc2V0VGltZW91dCgoKSA9PiBlLnRhcmdldD8uZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpLCAwKTtcbn07XG5cbmV4cG9ydCBlbnVtIFJlcG9zaXRvcnkge1xuICBnbG9zc2FyeSA9ICdoZXN0aWEtZ2xvc3NhcnknLFxuICBtb2RlbHMgPSAnaGVzdGlhLWVuZ2luZS1tb2RlbHMnLFxuICBvcmNoZXN0cmF0b3IgPSAnaGVzdGlhLWVuZ2luZS1vcmNoZXN0cmF0b3InLFxuICBhZ2dyZWdhdGlvbiA9ICdoZXN0aWEtYWdncmVnYXRpb24tZW5naW5lJyxcbiAgY29tbXVuaXR5ID0gJ2hlc3RpYS1jb21tdW5pdHktZWRpdGlvbicsXG4gIHBvb3JlbmVtZWNrID0gJ2hlc3RpYS1jb252ZXJ0LXBvb3JlLW5lbWVjZWsnLFxuICBmcm9udGVuZCA9ICdoZXN0aWEtZnJvbnQtZW5kJyxcbiAgc2NoZW1hID0gJ2hlc3RpYS1zY2hlbWEnXG59XG5cbmV4cG9ydCBlbnVtIFRlbXBsYXRlIHtcbiAgYnVnID0gJ2J1ZycsXG4gIGZlYXR1cmUgPSAnZmVhdHVyZSdcbn1cblxuZXhwb3J0IGNvbnN0IHJlcG9ydElzc3VlVXJsID0gKHJlcG9zaXRvcnk6IFJlcG9zaXRvcnksIHRlbXBsYXRlPzogVGVtcGxhdGUpID0+XG4gIGAke2dpdEhvbWV9LyR7cmVwb3NpdG9yeX0vLS9pc3N1ZXMvbmV3JHt0ZW1wbGF0ZSA/IGA/aXNzdWFibGVfdGVtcGxhdGU9JHt0ZW1wbGF0ZX1gIDogbnVsbH1gO1xuXG5leHBvcnQgY29uc3QgY29udGFjdFVzRW1haWwgPSAnY29tbXVuaXR5QGhlc3RpYS5lYXJ0aCc7XG5leHBvcnQgY29uc3QgZXh0ZXJuYWxMaW5rID0gKGhyZWY6IHN0cmluZywgdGV4dDogc3RyaW5nKSA9PiBgPGEgaHJlZj1cIiR7aHJlZn1cIiB0YXJnZXQ9XCJfYmxhbmtcIj4ke3RleHR9PC9hPmA7XG5leHBvcnQgY29uc3QgZ2xvc3NhcnlMaW5rID0gKHRleHQ6IHN0cmluZykgPT4gZXh0ZXJuYWxMaW5rKGAke2Jhc2VVcmwoKX0vZ2xvc3NhcnlgLCB0ZXh0KTtcbmV4cG9ydCBjb25zdCBub2RlTGluayA9ICh7ICdAdHlwZSc6IHR5cGUsICdAaWQnOiBpZCwgbmFtZSB9OiB7ICdAdHlwZSc6IHN0cmluZzsgJ0BpZCc6IHN0cmluZzsgbmFtZT86IHN0cmluZyB9KSA9PlxuICB0eXBlICYmIGlkID8gYDxhIGhyZWY9XCIvJHt0eXBlLnRvTG93ZXJDYXNlKCl9LyR7aWR9XCIgdGFyZ2V0PVwiX2JsYW5rXCI+JHtuYW1lIHx8IGlkfTwvYT5gIDogbnVsbDtcbmV4cG9ydCBjb25zdCBzY2hlbWFMaW5rID0gKHR5cGU6IHN0cmluZywgdGl0bGUgPSB0eXBlKSA9PlxuICBgPGEgaHJlZj1cIiR7YmFzZVVybCgpfS9zY2hlbWEvJHt0eXBlfVwiIHRhcmdldD1cIl9ibGFua1wiPiR7dGl0bGV9PC9hPmA7XG5leHBvcnQgY29uc3QgY29kZSA9ICh0ZXh0OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKSA9PiBgPGNvZGU+JHt0ZXh0fTwvY29kZT5gO1xuZXhwb3J0IGNvbnN0IGNvbnRhY3RVc0xpbmsgPSAodGV4dCA9ICdjb250YWN0IHVzJykgPT4gYDxhIGhyZWY9XCJtYWlsdG86JHtjb250YWN0VXNFbWFpbH1cIj4ke3RleHR9PC9hPmA7XG5leHBvcnQgY29uc3QgcmVwb3J0SXNzdWVMaW5rID0gKHJlcG9zaXRvcnk6IFJlcG9zaXRvcnksIHRlbXBsYXRlPzogVGVtcGxhdGUsIHRleHQgPSAnaGVyZScpID0+XG4gIGV4dGVybmFsTGluayhyZXBvcnRJc3N1ZVVybChyZXBvc2l0b3J5LCB0ZW1wbGF0ZSksIHRleHQpO1xuIl19
|
|
115
|
+
/**
|
|
116
|
+
* Url to fetch raw content from Gitlab, bypassing CORS issues.
|
|
117
|
+
*/
|
|
118
|
+
export const gitlabRawUrl = ({ repository, path, apiUrl, branch }) => `${apiUrl || baseApiUrl()}/gitlab/raw?repository=${repository}&branch=${branch || gitBranch()}&path=${encodeURIComponent(path)}`;
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQztBQUM3QixPQUFPLEVBQXdDLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxpQ0FBaUMsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVoSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRTVFLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FDMUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUMzQyxDQUFDLENBQUMsOEJBQThCO0lBQ2hDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU07UUFDeEIsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO0FBRWpDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRWhFLE1BQU0sQ0FBQyxN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QUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFvQixFQUFFLEVBQUUsQ0FDckYsR0FBRyxNQUFNLElBQUksVUFBVSxFQUFFLDBCQUEwQixVQUFVLFdBQzNELE1BQU0sSUFBSSxTQUFTLEVBQ3JCLFNBQVMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXQgZnJvbSAnbG9kYXNoLmdldCc7XG5pbXBvcnQgeyBJU2l0ZUpTT05MRCwgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIFNjaGVtYVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5cbmV4cG9ydCBjb25zdCBnaXRIb21lID0gJ2h0dHBzOi8vZ2l0bGFiLmNvbS9oZXN0aWEtZWFydGgnO1xuZXhwb3J0IGNvbnN0IGdpdEJyYW5jaCA9ICgpID0+IChbJ2RldicsICdzdGFnaW5nJ10uc29tZShlbnYgPT4gYmFzZVVybCgpLmluY2x1ZGVzKGVudikpID8gJ2RldmVsb3AnIDogJ21hc3RlcicpO1xuXG5leHBvcnQgY29uc3QgaXNDaHJvbWUgPSAoKSA9PiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygnQ2hyb21lJyk7XG5cbmV4cG9ydCBjb25zdCBiYXNlVXJsID0gKCkgPT5cbiAgd2luZG93LmxvY2F0aW9uLm9yaWdpbj8uaW5jbHVkZXMoJ2xvY2FsaG9zdCcpXG4gICAgPyAnaHR0cHM6Ly93d3ctZGV2Lmhlc3RpYS5lYXJ0aCdcbiAgICA6IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4/LmluY2x1ZGVzKCdoZXN0aWEuZWFydGgnKVxuICAgID8gd2luZG93LmxvY2F0aW9uLm9yaWdpblxuICAgIDogJ2h0dHBzOi8vd3d3Lmhlc3RpYS5lYXJ0aCc7XG5cbmV4cG9ydCBjb25zdCBiYXNlQXBpVXJsID0gKCkgPT4gYmFzZVVybCgpLnJlcGxhY2UoJ3d3dycsICdhcGknKTtcblxuZXhwb3J0IGNvbnN0IGlzRXh0ZXJuYWwgPSAoKSA9PiBiYXNlVXJsKCkgIT09IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG5cbmNvbnN0IHBhcnNlRXJyb3JTdGF0dXMgPSAoZXJyb3I6IGFueSkgPT4gKGVycm9yPy5zdGF0dXNUZXh0IHx8ICcnKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccy9nLCAnLScpO1xuXG5jb25zdCBwYXJzZUVycm9yTWVzc2FnZSA9IChlcnJvcjogYW55KSA9PlxuICBnZXQoZXJyb3IsICdlcnJvci5lcnJvcicsIGdldChlcnJvciwgJ2Vycm9yLm1lc3NhZ2UnLCBnZXQoZXJyb3IsICdlcnJvcicsIGdldChlcnJvciwgJ21lc3NhZ2UnLCBlcnJvcikpKSk7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVBUElFcnJvciA9IChlcnJvcjogYW55KSA9PiB7XG4gIHRyeSB7XG4gICAgZXJyb3IgPSBwYXJzZUVycm9yTWVzc2FnZShlcnJvcik7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIGlnbm9yZSBlcnJvclxuICB9XG4gIHRocm93IGVycm9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGVycm9yVGV4dCA9IChlcnJvcjogYW55KTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZXJyb3I7XG4gIH1cbiAgY29uc3QgZXJyID0gcGFyc2VFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICByZXR1cm4gcGFyc2VFcnJvclN0YXR1cyhlcnIpIHx8IGVycjtcbn07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJQYXJhbXMgPSAob2JqOiBhbnkpID0+IHtcbiAgY29uc3QgcmVzOiB7XG4gICAgW3g6IHN0cmluZ106IHN0cmluZztcbiAgfSA9IHt9O1xuICBPYmplY3Qua2V5cyhvYmopXG4gICAgLnNvcnQoKVxuICAgIC5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IG9ialtrZXldO1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXNba2V5XSA9IGAke3ZhbHVlfWA7XG4gICAgICB9XG4gICAgfSk7XG4gIHJldHVybiByZXM7XG59O1xuXG5leHBvcnQgY29uc3Qgd2FpdEZvciA9ICh2YXJpYWJsZTogc3RyaW5nLCBjYWxsYmFjazogKCkgPT4gdm9pZCkgPT5cbiAgZ2V0KHdpbmRvdywgdmFyaWFibGUsIGZhbHNlKSA/IGNhbGxiYWNrKCkgOiBzZXRUaW1lb3V0KCgpID0+IHdhaXRGb3IodmFyaWFibGUsIGNhbGxiYWNrKSwgMTAwKTtcblxuZXhwb3J0IGNvbnN0IGJvdHRvbSA9IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcblxuZXhwb3J0IGNvbnN0IGlzU2Nyb2xsZWRCZWxvdyA9IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gKGVsZW1lbnQgPyB3aW5kb3cuc2Nyb2xsWSA+IGJvdHRvbShlbGVtZW50KSA6IGZhbHNlKTtcblxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvRWwgPSAoaWQ6IHN0cmluZywgcmV0cmllcyA9IDApID0+IHtcbiAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG4gIHNldFRpbWVvdXQoKCkgPT4gKGVsID8gZWwuc2Nyb2xsSW50b1ZpZXcoKSA6IHJldHJpZXMgPCAxMCA/IHNjcm9sbFRvRWwoaWQsIHJldHJpZXMgKyAxKSA6IG51bGwpLCAxMDApO1xufTtcblxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvcCA9ICgpID0+IHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcblxuZXhwb3J0IGNvbnN0IHNhZmVKU09OUGFyc2UgPSA8VD4odmFsdWU6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogYW55KSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyAoSlNPTi5wYXJzZSh2YWx1ZSkgYXMgVCkgOiB2YWx1ZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHNhZmVKU09OU3RyaW5naWZ5ID0gKHZhbHVlOiBzdHJpbmcpID0+ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuXG5leHBvcnQgY29uc3QgYXJyYXlWYWx1ZSA9ICh2YWx1ZXM6IGFueVtdLCBpc0F2ZXJhZ2U6IGJvb2xlYW4pID0+XG4gICh2YWx1ZXMgfHwgW10pLnJlZHVjZSgocHJldjogbnVtYmVyLCBjdXJyKSA9PiBwcmV2ICsgcGFyc2VGbG9hdChgJHtjdXJyfWApLCAwKSAvIChpc0F2ZXJhZ2UgPyB2YWx1ZXMubGVuZ3RoIDogMSk7XG5cbmV4cG9ydCBjb25zdCBlbGxpcHNpcyA9ICh0ZXh0ID0gJycsIG1heGxlbmd0aCA9IDIwKSA9PlxuICB0ZXh0Lmxlbmd0aCA+IG1heGxlbmd0aCA/IGAke3RleHQuc3Vic3RyaW5nKDAsIG1heGxlbmd0aCl9Li4uYCA6IHRleHQ7XG5cbmNvbnN0IG1hcHNRdWVyeSA9ICdodHRwOi8vbWFwcy5nb29nbGUuY29tLz9xPSc7XG5cbmV4cG9ydCBjb25zdCBtYXBzVXJsID0gKGxvY2F0aW9uPzogeyBsYXQ/OiBudW1iZXI7IGxuZz86IG51bWJlcjsgbmFtZT86IHN0cmluZyB9KSA9PlxuICBsb2NhdGlvblxuICAgID8gbG9jYXRpb24ubGF0ICYmIGxvY2F0aW9uLmxuZ1xuICAgICAgPyBgJHttYXBzUXVlcnl9JHtsb2NhdGlvbi5sYXR9LCR7bG9jYXRpb24ubG5nfWBcbiAgICAgIDogbG9jYXRpb24ubmFtZVxuICAgICAgPyBgJHttYXBzUXVlcnl9JHtlbmNvZGVVUkkobG9jYXRpb24ubmFtZSl9YFxuICAgICAgOiB1bmRlZmluZWRcbiAgICA6IHVuZGVmaW5lZDtcblxuY29uc3Qgbm9kZURlZmF1bHRMYWJlbDoge1xuICBbdHlwZSBpbiBTY2hlbWFUeXBlXT86IChkYXRhOiBhbnkpID0+IHN0cmluZztcbn0gPSB7XG4gIFtTY2hlbWFUeXBlLkltcGFjdEFzc2Vzc21lbnRdOiAoeyBuYW1lLCBjb3VudHJ5LCBlbmREYXRlLCBwcm9kdWN0IH06IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxEKSA9PlxuICAgIG5hbWVcbiAgICAgID8gbmFtZS5yZXBsYWNlKGAke3Byb2R1Y3Q/LnRlcm0/Lm5hbWV9LCBgLCAnJylcbiAgICAgIDogW3Byb2R1Y3Q/LnRlcm0/Lm5hbWUsIGNvdW50cnk/Lm5hbWUsIGVuZERhdGVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcsICcpLFxuICBbU2NoZW1hVHlwZS5TaXRlXTogKHsgbmFtZSwgZGVzY3JpcHRpb24gfTogSVNpdGVKU09OTEQpID0+IG5hbWUgfHwgZGVzY3JpcHRpb24hLFxuICBbU2NoZW1hVHlwZS5UcmFuc2Zvcm1hdGlvbl06ICh7IG5hbWUsIHRlcm0gfTogYW55KSA9PiBuYW1lIHx8IHRlcm0/Lm5hbWVcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TGFiZWwgPSAobm9kZT86IGFueSkgPT5cbiAgbm9kZVxuICAgID8gKG5vZGVbJ0B0eXBlJ10gaW4gbm9kZURlZmF1bHRMYWJlbCA/IG5vZGVEZWZhdWx0TGFiZWxbbm9kZVsnQHR5cGUnXV0obm9kZSkgOiBub2RlLm5hbWUpIHx8IG5vZGVbJ0BpZCddIHx8IG5vZGUuaWRcbiAgICA6ICcnO1xuXG5leHBvcnQgY29uc3QgcmVwZWF0ID0gKHRpbWVzID0gMCkgPT4gQXJyYXkuZnJvbShBcnJheSh0aW1lcyksIE1hdGgucmFuZG9tKTtcblxuZXhwb3J0IGNvbnN0IGNvcHlPYmplY3QgPSAoZGF0YT86IGFueSkgPT4gKGRhdGEgPyBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKSA6IG51bGwpO1xuXG5leHBvcnQgY29uc3QgaXNFcXVhbCA9IChhOiBhbnksIGI6IGFueSkgPT4gSlNPTi5zdHJpbmdpZnkoYSkgPT09IEpTT04uc3RyaW5naWZ5KGIpO1xuXG5leHBvcnQgY29uc3QgdHlwZWFoZWFkRm9jdXMgPSAoZTogRXZlbnQpID0+IHtcbiAgaWYgKGUuYnViYmxlcykge1xuICAgIHJldHVybjtcbiAgfVxuICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICBzZXRUaW1lb3V0KCgpID0+IGUudGFyZ2V0Py5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSksIDApO1xufTtcblxuZXhwb3J0IGVudW0gUmVwb3NpdG9yeSB7XG4gIGdsb3NzYXJ5ID0gJ2hlc3RpYS1nbG9zc2FyeScsXG4gIG1vZGVscyA9ICdoZXN0aWEtZW5naW5lLW1vZGVscycsXG4gIG9yY2hlc3RyYXRvciA9ICdoZXN0aWEtZW5naW5lLW9yY2hlc3RyYXRvcicsXG4gIGFnZ3JlZ2F0aW9uID0gJ2hlc3RpYS1hZ2dyZWdhdGlvbi1lbmdpbmUnLFxuICBjb21tdW5pdHkgPSAnaGVzdGlhLWNvbW11bml0eS1lZGl0aW9uJyxcbiAgcG9vcmVuZW1lY2sgPSAnaGVzdGlhLWNvbnZlcnQtcG9vcmUtbmVtZWNlaycsXG4gIGZyb250ZW5kID0gJ2hlc3RpYS1mcm9udC1lbmQnLFxuICBzY2hlbWEgPSAnaGVzdGlhLXNjaGVtYSdcbn1cblxuZXhwb3J0IGVudW0gVGVtcGxhdGUge1xuICBidWcgPSAnYnVnJyxcbiAgZmVhdHVyZSA9ICdmZWF0dXJlJ1xufVxuXG5leHBvcnQgY29uc3QgcmVwb3J0SXNzdWVVcmwgPSAocmVwb3NpdG9yeTogUmVwb3NpdG9yeSwgdGVtcGxhdGU/OiBUZW1wbGF0ZSkgPT5cbiAgYCR7Z2l0SG9tZX0vJHtyZXBvc2l0b3J5fS8tL2lzc3Vlcy9uZXcke3RlbXBsYXRlID8gYD9pc3N1YWJsZV90ZW1wbGF0ZT0ke3RlbXBsYXRlfWAgOiBudWxsfWA7XG5cbmV4cG9ydCBjb25zdCBjb250YWN0VXNFbWFpbCA9ICdjb21tdW5pdHlAaGVzdGlhLmVhcnRoJztcbmV4cG9ydCBjb25zdCBleHRlcm5hbExpbmsgPSAoaHJlZjogc3RyaW5nLCB0ZXh0OiBzdHJpbmcpID0+IGA8YSBocmVmPVwiJHtocmVmfVwiIHRhcmdldD1cIl9ibGFua1wiPiR7dGV4dH08L2E+YDtcbmV4cG9ydCBjb25zdCBnbG9zc2FyeUxpbmsgPSAodGV4dDogc3RyaW5nKSA9PiBleHRlcm5hbExpbmsoYCR7YmFzZVVybCgpfS9nbG9zc2FyeWAsIHRleHQpO1xuZXhwb3J0IGNvbnN0IG5vZGVMaW5rID0gKHsgJ0B0eXBlJzogdHlwZSwgJ0BpZCc6IGlkLCBuYW1lIH06IHsgJ0B0eXBlJzogc3RyaW5nOyAnQGlkJzogc3RyaW5nOyBuYW1lPzogc3RyaW5nIH0pID0+XG4gIHR5cGUgJiYgaWQgPyBgPGEgaHJlZj1cIi8ke3R5cGUudG9Mb3dlckNhc2UoKX0vJHtpZH1cIiB0YXJnZXQ9XCJfYmxhbmtcIj4ke25hbWUgfHwgaWR9PC9hPmAgOiBudWxsO1xuZXhwb3J0IGNvbnN0IHNjaGVtYUxpbmsgPSAodHlwZTogc3RyaW5nLCB0aXRsZSA9IHR5cGUpID0+XG4gIGA8YSBocmVmPVwiJHtiYXNlVXJsKCl9L3NjaGVtYS8ke3R5cGV9XCIgdGFyZ2V0PVwiX2JsYW5rXCI+JHt0aXRsZX08L2E+YDtcbmV4cG9ydCBjb25zdCBjb2RlID0gKHRleHQ6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pID0+IGA8Y29kZT4ke3RleHR9PC9jb2RlPmA7XG5leHBvcnQgY29uc3QgY29udGFjdFVzTGluayA9ICh0ZXh0ID0gJ2NvbnRhY3QgdXMnKSA9PiBgPGEgaHJlZj1cIm1haWx0bzoke2NvbnRhY3RVc0VtYWlsfVwiPiR7dGV4dH08L2E+YDtcbmV4cG9ydCBjb25zdCByZXBvcnRJc3N1ZUxpbmsgPSAocmVwb3NpdG9yeTogUmVwb3NpdG9yeSwgdGVtcGxhdGU/OiBUZW1wbGF0ZSwgdGV4dCA9ICdoZXJlJykgPT5cbiAgZXh0ZXJuYWxMaW5rKHJlcG9ydElzc3VlVXJsKHJlcG9zaXRvcnksIHRlbXBsYXRlKSwgdGV4dCk7XG5cbmludGVyZmFjZSBJR2l0bGFiUmF3UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSByZXBvc2l0b3J5IHdoZXJlIHRoZSBmaWxlIGlzIGxvY2F0ZWQuXG4gICAqL1xuICByZXBvc2l0b3J5OiBSZXBvc2l0b3J5O1xuICAvKipcbiAgICogVGhlIHBhdGggb2YgdGhlIGZpbGUsIGZyb20gdGhlIHJvb3Qgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSB1cmwgb2YgdGhlIEhlc3RpYSBBUEkuXG4gICAqL1xuICBhcGlVcmw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYnJhbmNoLCB1c2luZyB0aGUgZGVmYXVsdCBicmFuY2ggYmFzZWQgb24gdGhlIGVudmlyb25tZW50LlxuICAgKi9cbiAgYnJhbmNoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFVybCB0byBmZXRjaCByYXcgY29udGVudCBmcm9tIEdpdGxhYiwgYnlwYXNzaW5nIENPUlMgaXNzdWVzLlxuICovXG5leHBvcnQgY29uc3QgZ2l0bGFiUmF3VXJsID0gKHsgcmVwb3NpdG9yeSwgcGF0aCwgYXBpVXJsLCBicmFuY2ggfTogSUdpdGxhYlJhd1BhcmFtcykgPT5cbiAgYCR7YXBpVXJsIHx8IGJhc2VBcGlVcmwoKX0vZ2l0bGFiL3Jhdz9yZXBvc2l0b3J5PSR7cmVwb3NpdG9yeX0mYnJhbmNoPSR7XG4gICAgYnJhbmNoIHx8IGdpdEJyYW5jaCgpXG4gIH0mcGF0aD0ke2VuY29kZVVSSUNvbXBvbmVudChwYXRoKX1gO1xuIl19
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { of, ReplaySubject } from 'rxjs';
|
|
3
3
|
import { catchError, map, take } from 'rxjs/operators';
|
|
4
|
-
import { gitBranch, gitHome,
|
|
4
|
+
import { gitBranch, gitHome, gitlabRawUrl, Repository } from '../common/utils';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/common/http";
|
|
7
7
|
import * as i2 from "../node/node.service";
|
|
8
|
-
|
|
9
|
-
const
|
|
8
|
+
import * as i3 from "../common/common.service";
|
|
9
|
+
const gitUrl = () => `${gitHome}/${Repository.aggregation}/-/blob/${gitBranch()}`;
|
|
10
10
|
export const lookups = Object.freeze({
|
|
11
11
|
cropYield: 'region-crop-cropGroupingFaostatProduction-yield',
|
|
12
12
|
cropGroupingColumn: 'cropGroupingFaostatProduction'
|
|
13
13
|
});
|
|
14
14
|
export class HeAggregationEngineService {
|
|
15
|
-
constructor(http, nodeService) {
|
|
15
|
+
constructor(http, nodeService, commonService) {
|
|
16
16
|
this.http = http;
|
|
17
17
|
this.nodeService = nodeService;
|
|
18
|
+
this.commonService = commonService;
|
|
18
19
|
this.modelsLoading = false;
|
|
19
20
|
this.modelsLoaded = false;
|
|
20
21
|
this._models = new ReplaySubject(1);
|
|
@@ -25,7 +26,13 @@ export class HeAggregationEngineService {
|
|
|
25
26
|
}
|
|
26
27
|
loadModels() {
|
|
27
28
|
this.modelsLoading = true;
|
|
28
|
-
return this.http
|
|
29
|
+
return this.http
|
|
30
|
+
.get(gitlabRawUrl({
|
|
31
|
+
apiUrl: this.commonService.apiBaseUrl,
|
|
32
|
+
repository: Repository.aggregation,
|
|
33
|
+
path: 'model-links.json'
|
|
34
|
+
}))
|
|
35
|
+
.pipe(catchError(() => of({ links: [] })), map(({ links }) => {
|
|
29
36
|
this._models.next(links.map(({ path: modelPath, docPath, ...link }) => ({
|
|
30
37
|
...link,
|
|
31
38
|
path: `${gitUrl()}/${modelPath}`,
|
|
@@ -48,7 +55,7 @@ export class HeAggregationEngineService {
|
|
|
48
55
|
model(model) {
|
|
49
56
|
return this.model$(model).pipe(take(1)).toPromise();
|
|
50
57
|
}
|
|
51
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: HeAggregationEngineService, deps: [{ token: i1.HttpClient }, { token: i2.HeNodeService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: HeAggregationEngineService, deps: [{ token: i1.HttpClient }, { token: i2.HeNodeService }, { token: i3.HeCommonService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
52
59
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: HeAggregationEngineService, providedIn: 'root' }); }
|
|
53
60
|
}
|
|
54
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: HeAggregationEngineService, decorators: [{
|
|
@@ -56,5 +63,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
|
|
|
56
63
|
args: [{
|
|
57
64
|
providedIn: 'root'
|
|
58
65
|
}]
|
|
59
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HeNodeService }]; } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HeNodeService }, { type: i3.HeCommonService }]; } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tZW5naW5lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5naW5lL2FnZ3JlZ2F0aW9uLWVuZ2luZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUUvRSxNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sSUFBSSxVQUFVLENBQUMsV0FBVyxXQUFXLFNBQVMsRUFBRSxFQUFFLENBQUM7QUFFbEYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDbkMsU0FBUyxFQUFFLGlEQUFpRDtJQUM1RCxrQkFBa0IsRUFBRSwrQkFBK0I7Q0FDcEQsQ0FBQyxDQUFDO0FBdUJILE1BQU0sT0FBTywwQkFBMEI7SUFLckMsWUFDWSxJQUFnQixFQUNoQixXQUEwQixFQUMxQixhQUE4QjtRQUY5QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQVBsQyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixZQUFPLEdBQUcsSUFBSSxhQUFhLENBQXNCLENBQUMsQ0FBQyxDQUFDO1FBTzFELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTyxLQUFLLENBQUMsSUFBSTtRQUNoQixNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUNGLFlBQVksQ0FBQztZQUNYLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVU7WUFDckMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxXQUFXO1lBQ2xDLElBQUksRUFBRSxrQkFBa0I7U0FDekIsQ0FBQyxDQUNIO2FBQ0EsSUFBSSxDQUNILFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUE0QixDQUFDLENBQUMsRUFDN0QsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BELEdBQUcsSUFBSTtnQkFDUCxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxTQUFTLEVBQUU7Z0JBQ2hDLE9BQU8sRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLE9BQU8sRUFBRTthQUNsQyxDQUFDLENBQUMsQ0FDSixDQUFDO1lBQ0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELElBQVksT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ25HLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQWlDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3RCLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNqRyxDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFpQztRQUM1QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RELENBQUM7OEdBNURVLDBCQUEwQjtrSEFBMUIsMEJBQTBCLGNBRnpCLE1BQU07OzJGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5vZGVUeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuXG5pbXBvcnQgeyBIZUNvbW1vblNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVOb2RlU2VydmljZSB9IGZyb20gJy4uL25vZGUvbm9kZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdpdEJyYW5jaCwgZ2l0SG9tZSwgZ2l0bGFiUmF3VXJsLCBSZXBvc2l0b3J5IH0gZnJvbSAnLi4vY29tbW9uL3V0aWxzJztcblxuY29uc3QgZ2l0VXJsID0gKCkgPT4gYCR7Z2l0SG9tZX0vJHtSZXBvc2l0b3J5LmFnZ3JlZ2F0aW9ufS8tL2Jsb2IvJHtnaXRCcmFuY2goKX1gO1xuXG5leHBvcnQgY29uc3QgbG9va3VwcyA9IE9iamVjdC5mcmVlemUoe1xuICBjcm9wWWllbGQ6ICdyZWdpb24tY3JvcC1jcm9wR3JvdXBpbmdGYW9zdGF0UHJvZHVjdGlvbi15aWVsZCcsXG4gIGNyb3BHcm91cGluZ0NvbHVtbjogJ2Nyb3BHcm91cGluZ0Zhb3N0YXRQcm9kdWN0aW9uJ1xufSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFnZ3JlZ2F0aW9uTW9kZWwge1xuICB0eXBlOiBOb2RlVHlwZTtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGltcGxlbWVudGF0aW9uIChjb2RlKSBvZiB0aGUgbW9kZWwuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBtb2RlbC5cbiAgICovXG4gIGRvY1BhdGg6IHN0cmluZztcbiAgZGF0YVBhdGg6IHN0cmluZztcbiAgJ0BpZCc/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBJQWdncmVnYXRpb25Nb2RlbExpbmtzIHtcbiAgbGlua3M6IElBZ2dyZWdhdGlvbk1vZGVsW107XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhlQWdncmVnYXRpb25FbmdpbmVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBtb2RlbHNMb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgbW9kZWxzTG9hZGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX21vZGVscyA9IG5ldyBSZXBsYXlTdWJqZWN0PElBZ2dyZWdhdGlvbk1vZGVsW10+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBub2RlU2VydmljZTogSGVOb2RlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29tbW9uU2VydmljZTogSGVDb21tb25TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0KCkge1xuICAgIGF3YWl0IHRoaXMubG9hZE1vZGVscygpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTW9kZWxzKCkge1xuICAgIHRoaXMubW9kZWxzTG9hZGluZyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxJQWdncmVnYXRpb25Nb2RlbExpbmtzPihcbiAgICAgICAgZ2l0bGFiUmF3VXJsKHtcbiAgICAgICAgICBhcGlVcmw6IHRoaXMuY29tbW9uU2VydmljZS5hcGlCYXNlVXJsLFxuICAgICAgICAgIHJlcG9zaXRvcnk6IFJlcG9zaXRvcnkuYWdncmVnYXRpb24sXG4gICAgICAgICAgcGF0aDogJ21vZGVsLWxpbmtzLmpzb24nXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih7IGxpbmtzOiBbXSB9IGFzIElBZ2dyZWdhdGlvbk1vZGVsTGlua3MpKSxcbiAgICAgICAgbWFwKCh7IGxpbmtzIH0pID0+IHtcbiAgICAgICAgICB0aGlzLl9tb2RlbHMubmV4dChcbiAgICAgICAgICAgIGxpbmtzLm1hcCgoeyBwYXRoOiBtb2RlbFBhdGgsIGRvY1BhdGgsIC4uLmxpbmsgfSkgPT4gKHtcbiAgICAgICAgICAgICAgLi4ubGluayxcbiAgICAgICAgICAgICAgcGF0aDogYCR7Z2l0VXJsKCl9LyR7bW9kZWxQYXRofWAsXG4gICAgICAgICAgICAgIGRvY1BhdGg6IGAke2dpdFVybCgpfS8ke2RvY1BhdGh9YFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLm1vZGVsc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm1vZGVsc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuIGxpbmtzO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IG1vZGVscyQoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxzTG9hZGluZyB8fCB0aGlzLm1vZGVsc0xvYWRlZCA/IHRoaXMuX21vZGVscy5hc09ic2VydmFibGUoKSA6IHRoaXMubG9hZE1vZGVscygpO1xuICB9XG5cbiAgcHVibGljIG1vZGVscygpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbHMkLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWwkKG1vZGVsOiBQYXJ0aWFsPElBZ2dyZWdhdGlvbk1vZGVsPikge1xuICAgIHJldHVybiB0aGlzLm1vZGVscyQucGlwZShcbiAgICAgIG1hcChtb2RlbHMgPT4gbW9kZWxzLmZpbmQobSA9PiBPYmplY3QuZW50cmllcyhtb2RlbCkuZXZlcnkoKFtrZXksIHZhbHVlXSkgPT4gdmFsdWUgPT09IG1ba2V5XSkpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWwobW9kZWw6IFBhcnRpYWw8SUFnZ3JlZ2F0aW9uTW9kZWw+KSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwkKG1vZGVsKS5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -4,7 +4,7 @@ import { filter, groupBy, mergeMap, reduce, toArray } from 'rxjs/operators';
|
|
|
4
4
|
import { NodeType, SchemaType } from '@hestia-earth/schema';
|
|
5
5
|
import { keyToLabel, unique } from '@hestia-earth/utils';
|
|
6
6
|
import { engineGitUrl } from '../engine.service';
|
|
7
|
-
import { baseUrl, gitBranch, gitHome } from '../../common/utils';
|
|
7
|
+
import { Repository, baseUrl, gitBranch, gitHome } from '../../common/utils';
|
|
8
8
|
import { pluralize } from '../../common/pluralize';
|
|
9
9
|
import { matchId, matchType } from '../../search/search.model';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
@@ -18,7 +18,7 @@ import * as i7 from "../../common/click-outside.directive";
|
|
|
18
18
|
import * as i8 from "../../node/node-link/node-link.component";
|
|
19
19
|
import * as i9 from "../../common/keys.pipe";
|
|
20
20
|
import * as i10 from "../../common/key-to-label.pipe";
|
|
21
|
-
const gitUrl = `${gitHome}
|
|
21
|
+
const gitUrl = `${gitHome}/${Repository.orchestrator}/-/blob/${gitBranch()}`;
|
|
22
22
|
const generalDocsUrl = `${gitUrl}/hestia_earth/orchestrator/config/README.md`;
|
|
23
23
|
const strategiesDocs = `${gitUrl}/hestia_earth/orchestrator/strategies`;
|
|
24
24
|
const schemaTypeKeys = Object.keys(SchemaType);
|
|
@@ -138,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
|
|
|
138
138
|
}], nodeType: [{
|
|
139
139
|
type: Input
|
|
140
140
|
}] } });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLW9yY2hlc3RyYXRvci1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbmdpbmUvZW5naW5lLW9yY2hlc3RyYXRvci1lZGl0L2VuZ2luZS1vcmNoZXN0cmF0b3ItZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS1vcmNoZXN0cmF0b3ItZWRpdC9lbmdpbmUtb3JjaGVzdHJhdG9yLWVkaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQWUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekQsT0FBTyxFQUlMLFlBQVksRUFFYixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7QUFJL0QsTUFBTSxNQUFNLEdBQUcsR0FBRyxPQUFPLHNDQUFzQyxTQUFTLEVBQUUsRUFBRSxDQUFDO0FBQzdFLE1BQU0sY0FBYyxHQUFHLEdBQUcsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5RSxNQUFNLGNBQWMs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LElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXZHVSwrQkFBK0I7a0dBQS9CLCtCQUErQiw0SUNqRjVDLHNrWEF1VEE7OzJGRHRPYSwrQkFBK0I7a0JBTDNDLFNBQVM7K0JBQ0UsNkJBQTZCO29JQVEvQixNQUFNO3NCQURiLEtBQUs7Z0JBR0UsUUFBUTtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIGdyb3VwQnksIG1lcmdlTWFwLCByZWR1Y2UsIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJVGVybUpTT05MRCwgTm9kZVR5cGUsIFNjaGVtYVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyBrZXlUb0xhYmVsLCB1bmlxdWUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcblxuaW1wb3J0IHtcbiAgSGVFbmdpbmVTZXJ2aWNlLFxuICBJT3JjaGVzdHJhdG9yQ29uZmlnLFxuICBJT3JjaGVzdHJhdG9yTW9kZWxDb25maWcsXG4gIGVuZ2luZUdpdFVybCxcbiAgSU1vZGVsXG59IGZyb20gJy4uL2VuZ2luZS5zZXJ2aWNlJztcbmltcG9ydCB7IGJhc2VVcmwsIGdpdEJyYW5jaCwgZ2l0SG9tZSB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBwbHVyYWxpemUgfSBmcm9tICcuLi8uLi9jb21tb24vcGx1cmFsaXplJztcbmltcG9ydCB7IEhlU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlYXJjaC9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQgeyBtYXRjaElkLCBtYXRjaFR5cGUgfSBmcm9tICcuLi8uLi9zZWFyY2gvc2VhcmNoLm1vZGVsJztcblxudHlwZSBjb25maWdzID0gKElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZyB8IElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZ1tdKVtdO1xuXG5jb25zdCBnaXRVcmwgPSBgJHtnaXRIb21lfS9oZXN0aWEtZW5naW5lLW9yY2hlc3RyYXRvci8tL2Jsb2IvJHtnaXRCcmFuY2goKX1gO1xuY29uc3QgZ2VuZXJhbERvY3NVcmwgPSBgJHtnaXRVcmx9L2hlc3RpYV9lYXJ0aC9vcmNoZXN0cmF0b3IvY29uZmlnL1JFQURNRS5tZGA7XG5jb25zdCBzdHJhdGVnaWVzRG9jcyA9IGAke2dpdFVybH0vaGVzdGlhX2VhcnRoL29yY2hlc3RyYXRvci9zdHJhdGVnaWVzYDtcblxuY29uc3Qgc2NoZW1hVHlwZUtleXMgPSBPYmplY3Qua2V5cyhTY2hlbWFUeXBlKTtcblxuY29uc3QgdG9TY2hlbWFUeXBlID0gKHZhbHVlOiBzdHJpbmcpID0+IGtleVRvTGFiZWwodmFsdWUpLnJlcGxhY2UoL1xccy9nLCAnJyk7XG5cbmNvbnN0IGlzU2NoZW1hVHlwZSA9ICh2YWx1ZTogc3RyaW5nKSA9PlxuICBbXG4gICAgc2NoZW1hVHlwZUtleXMuaW5jbHVkZXModmFsdWUpLFxuICAgIHNjaGVtYVR5cGVLZXlzLmluY2x1ZGVzKHBsdXJhbGl6ZSh2YWx1ZSwgMSkpLFxuICAgIHNjaGVtYVR5cGVLZXlzLmluY2x1ZGVzKHBsdXJhbGl6ZSh0b1NjaGVtYVR5cGUodmFsdWUpLCAxKSksXG4gICAgWydlbWlzc2lvbnNSZXNvdXJjZVVzZScsICdpbXBhY3RzJywgJ2VuZHBvaW50cyddLmluY2x1ZGVzKHZhbHVlKVxuICBdLnNvbWUoQm9vbGVhbik7XG5cbmNvbnN0IGlzR2FwRmlsbGVkID0gKHsgcnVuU3RyYXRlZ3ksIG1lcmdlU3RyYXRlZ3ksIG1lcmdlQXJncyB9OiBJT3JjaGVzdHJhdG9yTW9kZWxDb25maWcpID0+XG4gIFsnYWRkX2JsYW5rX25vZGVfaWZfbWlzc2luZycsICdhZGRfa2V5X2lmX21pc3NpbmcnXS5pbmNsdWRlcyhydW5TdHJhdGVneSkgJiZcbiAgKG1lcmdlU3RyYXRlZ3kgIT09ICdsaXN0JyB8fCAhbWVyZ2VBcmdzPy5yZXBsYWNlVGhyZXNob2xkKTtcblxuY29uc3QgaXNSZWNhbGN1bGF0ZWQgPSAoeyBydW5TdHJhdGVneSwgbWVyZ2VTdHJhdGVneSwgbWVyZ2VBcmdzIH06IElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZykgPT5cbiAgWydhZGRfYmxhbmtfbm9kZV9pZl9taXNzaW5nJywgJ2FkZF9rZXlfaWZfbWlzc2luZyddLmluY2x1ZGVzKHJ1blN0cmF0ZWd5KSAmJlxuICBtZXJnZVN0cmF0ZWd5ID09PSAnbGlzdCcgJiZcbiAgbWVyZ2VBcmdzPy5yZXBsYWNlVGhyZXNob2xkO1xuXG5jb25zdCBmaWx0ZXJHYXBGaWxsZWQgPSAoY29uZmlnczogY29uZmlncywgb25seUdhcEZpbGxlZDogYm9vbGVhbikgPT5cbiAgY29uZmlnc1xuICAgIC5tYXAobW9kZWwgPT4gKEFycmF5LmlzQXJyYXkobW9kZWwpICYmIG9ubHlHYXBGaWxsZWQgPyBtb2RlbC5maWx0ZXIoaXNHYXBGaWxsZWQpIDogbW9kZWwpKVxuICAgIC5maWx0ZXIobW9kZWwgPT4gIW9ubHlHYXBGaWxsZWQgfHwgQXJyYXkuaXNBcnJheShtb2RlbCkgfHwgaXNHYXBGaWxsZWQobW9kZWwpKTtcblxuY29uc3QgbW9kZWxNYXRjaCA9XG4gICh0ZXJtOiBzdHJpbmcpID0+XG4gICh7IGtleSwgbW9kZWwsIHZhbHVlIH06IElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZykgPT5cbiAgICBba2V5LCBtb2RlbCwgdmFsdWVdLmZpbHRlcihCb29sZWFuKS5zb21lKHYgPT4gdi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRlcm0udG9Mb3dlckNhc2UoKSkpO1xuXG5jb25zdCBmaWx0ZXJNb2RlbHMgPSAoY29uZmlnczogY29uZmlncywgdGVybSA9ICcnKSA9PlxuICBjb25maWdzXG4gICAgLm1hcChtb2RlbCA9PiAoQXJyYXkuaXNBcnJheShtb2RlbCkgJiYgISF0ZXJtID8gbW9kZWwuZmlsdGVyKG1vZGVsTWF0Y2godGVybSkpIDogbW9kZWwpKVxuICAgIC5maWx0ZXIobW9kZWwgPT4gIXRlcm0gfHwgQXJyYXkuaXNBcnJheShtb2RlbCkgfHwgbW9kZWxNYXRjaCh0ZXJtKShtb2RlbCkpO1xuXG5jb25zdCBtb2RlbEtleU5hbWUgPSAobW9kZWxLZXk6IHN0cmluZykgPT4gKG1vZGVsS2V5LmluY2x1ZGVzKCcuJykgPyBtb2RlbEtleS5zcGxpdCgnLicpWzFdIDogbW9kZWxLZXkpO1xuXG5jb25zdCBncm91cENvbmZpZyA9IChjb25maWdzOiBjb25maWdzKSA9PlxuICBmcm9tKGNvbmZpZ3MuZmxhdCgpKVxuICAgIC5waXBlKFxuICAgICAgZmlsdGVyKCh7IGtleSB9KSA9PiBpc1NjaGVtYVR5cGUoa2V5KSksXG4gICAgICBncm91cEJ5KCh7IGtleSB9KSA9PiBrZXkpLFxuICAgICAgbWVyZ2VNYXAoZ3JvdXAgPT4gZ3JvdXAucGlwZSh0b0FycmF5KCkpKSxcbiAgICAgIHJlZHVjZSgocHJldiwgY3VycikgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBjdXJyWzBdLmtleTtcbiAgICAgICAgcHJldlt0b1NjaGVtYVR5cGUoa2V5KV0gPSBjdXJyO1xuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH0sIHt9KVxuICAgIClcbiAgICAudG9Qcm9taXNlKCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWVuZ2luZS1vcmNoZXN0cmF0b3ItZWRpdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbmdpbmUtb3JjaGVzdHJhdG9yLWVkaXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbmdpbmUtb3JjaGVzdHJhdG9yLWVkaXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFbmdpbmVPcmNoZXN0cmF0b3JFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBhbGxNb2RlbHM6IGNvbmZpZ3M7XG5cbiAgQElucHV0KClcbiAgcHJpdmF0ZSBjb25maWc/OiBJT3JjaGVzdHJhdG9yQ29uZmlnO1xuICBASW5wdXQoKVxuICBwcml2YXRlIG5vZGVUeXBlPzogTm9kZVR5cGU7XG5cbiAgcHVibGljIG1vZGVsS2V5TmFtZSA9IG1vZGVsS2V5TmFtZTtcbiAgcHVibGljIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuICBwdWJsaWMgZ2VuZXJhbERvY3NVcmwgPSBnZW5lcmFsRG9jc1VybDtcbiAgcHVibGljIHN0cmF0ZWdpZXNEb2NzID0gc3RyYXRlZ2llc0RvY3M7XG4gIHB1YmxpYyBtb2RlbHM6IGNvbmZpZ3M7XG4gIHB1YmxpYyBncm91cGVkTW9kZWxzOiB7XG4gICAgW2tleTogc3RyaW5nXTogSU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnW107XG4gIH07XG4gIHB1YmxpYyBzZWxlY3RlZEdyb3VwZWRLZXk6IHN0cmluZztcblxuICBwdWJsaWMgdGVybXNCeUlkOiB7IFtpZDogc3RyaW5nXTogSVRlcm1KU09OTEQgfSA9IHt9O1xuXG4gIHB1YmxpYyBzaG93Q29uZmlnID0gZmFsc2U7XG4gIHB1YmxpYyBzZWFyY2ggPSAnJztcbiAgcHVibGljIG9ubHlHYXBGaWxsZWQgPSBmYWxzZTtcbiAgcHVibGljIHNob3dBZHZhbmNlZCA9IGZhbHNlO1xuICBwdWJsaWMgZGlzcGxheUJ5OiAnbGlzdCcgfCAndHlwZScgPSAnbGlzdCc7XG4gIHB1YmxpYyBzaG93RGlzcGxheUJ5ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBoZXN0aWFFbmdpbmVTZXJ2aWNlOiBIZUVuZ2luZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBIZVNlYXJjaFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlcy5jb25maWc/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5hbGxNb2RlbHMgPSB0aGlzLmNvbmZpZy5tb2RlbHM7XG4gICAgICB0aGlzLmNvbXB1dGVUZXJtc0J5SWQoKTtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlck1vZGVscygpO1xuICAgIH1cbiAgICBpZiAoJ25vZGVUeXBlJyBpbiBjaGFuZ2VzKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2FkRGVmYXVsdENvbmZpZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZERlZmF1bHRDb25maWcoKSB7XG4gICAgY29uc3QgeyBtb2RlbHMgfSA9IGF3YWl0IHRoaXMuaGVzdGlhRW5naW5lU2VydmljZS5vY2hlc3RyYXRvckNvbmZpZyh0aGlzLm5vZGVUeXBlKTtcbiAgICB0aGlzLmFsbE1vZGVscyA9IG1vZGVscztcbiAgICB0aGlzLmNvbXB1dGVUZXJtc0J5SWQoKTtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJNb2RlbHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY29tcHV0ZVRlcm1zQnlJZCgpIHtcbiAgICBjb25zdCBpZHMgPSB1bmlxdWUoXG4gICAgICB0aGlzLmFsbE1vZGVsc1xuICAgICAgICAuZmxhdCgpXG4gICAgICAgIC5mbGF0TWFwKG1vZGVsID0+IFttb2RlbC5tb2RlbCwgbW9kZWwudmFsdWVdKVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgKTtcbiAgICBjb25zdCB7IHJlc3VsdHMgfSA9IGF3YWl0IHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2g8SVRlcm1KU09OTEQsIE5vZGVUeXBlLlRlcm0+KHtcbiAgICAgIGZpZWxkczogWydAdHlwZScsICdAaWQnLCAnbmFtZScsICd1bml0cyddLFxuICAgICAgbGltaXQ6IGlkcy5sZW5ndGgsXG4gICAgICBxdWVyeToge1xuICAgICAgICBib29sOiB7XG4gICAgICAgICAgbXVzdDogW21hdGNoVHlwZShOb2RlVHlwZS5UZXJtKV0sXG4gICAgICAgICAgc2hvdWxkOiBpZHMubWFwKG1hdGNoSWQpLFxuICAgICAgICAgIG1pbmltdW1fc2hvdWxkX21hdGNoOiAxXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnRlcm1zQnlJZCA9IHJlc3VsdHMucmVkdWNlKChwLCBjKSA9PiAoeyAuLi5wLCBbY1snQGlkJ11dOiBjIH0pLCB7fSk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUtleShfaW5kZXg6IG51bWJlciwgeyBrZXkgfSkge1xuICAgIHJldHVybiBrZXk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWxMaW5rJCh7IG1vZGVsLCB2YWx1ZSB9OiBJT3JjaGVzdHJhdG9yTW9kZWxDb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5oZXN0aWFFbmdpbmVTZXJ2aWNlLm1vZGVsJCh7IG1vZGVsLCB0ZXJtOiB2YWx1ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbFBhdGhMaW5rJCh7IG1vZGVsLCB2YWx1ZSB9OiBJT3JjaGVzdHJhdG9yTW9kZWxDb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5oZXN0aWFFbmdpbmVTZXJ2aWNlLm1vZGVsJCh7XG4gICAgICBwYXRoOiBgJHtlbmdpbmVHaXRVcmwoKX0vaGVzdGlhX2VhcnRoL21vZGVscy8ke21vZGVsfS8keyh2YWx1ZSB8fCAnJykucmVwbGFjZSgnLicsICcvJyl9LnB5YFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBjb25maWdVcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVzdGlhRW5naW5lU2VydmljZS5vcmNoZXN0cmF0b3JDb25maWdVcmwodGhpcy5ub2RlVHlwZSk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWxLZXlVcmwoeyBtb2RlbEtleSB9OiBJTW9kZWwsIG1vZGVsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJ0cyA9IG1vZGVsS2V5LnNwbGl0KCcuJyk7XG4gICAgY29uc3Qgc2NoZW1hVHlwZSA9IHBhcnRzLmxlbmd0aCA9PT0gMiA/IHBhcnRzWzBdIDogbW9kZWw7XG4gICAgY29uc3QgdXJsID0gW2Jhc2VVcmwoKSwgJ3NjaGVtYScsIHRvU2NoZW1hVHlwZShzY2hlbWFUeXBlKV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJy8nKTtcbiAgICByZXR1cm4gaXNTY2hlbWFUeXBlKHNjaGVtYVR5cGUpID8gYCR7dXJsfSMke3BhcnRzLnBvcCgpfWAgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGZpbHRlck1vZGVscygpIHtcbiAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVscyA9IGZpbHRlck1vZGVscyhmaWx0ZXJHYXBGaWxsZWQodGhpcy5hbGxNb2RlbHMsIHRoaXMub25seUdhcEZpbGxlZCksIHRoaXMuc2VhcmNoKTtcbiAgICAgIHRoaXMubW9kZWxzID0gbW9kZWxzO1xuICAgICAgdGhpcy5ncm91cGVkTW9kZWxzID0gYXdhaXQgZ3JvdXBDb25maWcobW9kZWxzKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cGVkS2V5ID0gT2JqZWN0LmtleXModGhpcy5ncm91cGVkTW9kZWxzKT8uWzBdO1xuICAgIH0pO1xuICB9XG59XG4iLCI8cD5cbiAgPGk+XG4gICAgVGhlIGNvbmZpZ3VyYXRpb24gYmVsb3cgaXMgYSBwcmV2aWV3IG9mIHRoZVxuICAgIDxhIFtocmVmXT1cImNvbmZpZ1VybFwiIHRhcmdldD1cIl9ibGFua1wiPkpTT04gY29uZmlndXJhdGlvbiBmaWxlPC9hPlxuICAgIHVzZWQgZm9yIHRoZSBvcmNoZXN0cmF0aW9uIG9mIHRoZSBIZXN0aWEncyBjYWxjdWxhdGlvbnMuXG4gIDwvaT5cbjwvcD5cbjxwPlxuICA8aT5Ob3RlOiBub3QgYWxsIG1vZGVscyBtaWdodCBiZSByZXByZXNlbnRlZCBhY2N1cmF0ZWx5LjwvaT5cbjwvcD5cblxuPGRpdiBjbGFzcz1cImlzLXNpemUtNyBpcy1pdGFsaWNcIj5cbiAgPGRpdiBjbGFzcz1cImNvbHVtbnMgaXMtbW9iaWxlIGlzLW11bHRpbGluZSBpcy12Y2VudGVyZWQgaXMtdmFyaWFibGUgaXMtMSBteS0wXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBsLTMgbW9kZWwtcGFyYWxsZWwgbXktM1wiPlxuICAgICAgICA8c3Bhbj5Nb2RlbHMgcnVubmluZyBpbiBwYXJhbGxlbDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1uYXJyb3cgaGFzLXRleHQtcmlnaHRcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93biBpcy1yaWdodCBoYXMtdGV4dC1sZWZ0IGlzLWRyb3Bkb3duLWZpbHRlcnNcIlxuICAgICAgICBbY2xhc3MuaXMtYWN0aXZlXT1cInNob3dDb25maWdcIlxuICAgICAgICAoY2xpY2tPdXRzaWRlKT1cInNob3dDb25maWcgPSBmYWxzZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tdHJpZ2dlclwiIChjbGljayk9XCJzaG93Q29uZmlnID0gIXNob3dDb25maWdcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvbiBpcy1naG9zdFwiXG4gICAgICAgICAgICBbY2xhc3MuaXMtYWN0aXZlXT1cInNob3dDb25maWdcIlxuICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgYXJpYS1jb250cm9scz1cIm9wdGlvbi1tZW51XCJcbiAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJGaWx0ZXJzXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgIFtkaXNhYmxlVG9vbHRpcF09XCJzaG93Q29uZmlnXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgICAgPGZhLWljb24gaWNvbj1cImNvZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgaWQ9XCJvcHRpb24tbWVudVwiIHJvbGU9XCJtZW51XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sIGlzLWV4cGFuZGVkIGhhcy1pY29ucy1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dCBzZWFyY2gtaW5wdXQgaXMtc2Vjb25kYXJ5IGlzLXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY29sbGVjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRmlsdGVyIGJ5IGtleSwgbmFtZSBvciBtb2RlbFwiXG4gICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJmaWx0ZXJNb2RlbHMoKVwiIC8+XG4gICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImljb24gaXMtc21hbGwgaXMtcmlnaHRcIiAoY2xpY2spPVwic2VhcmNoID0gJyc7IGZpbHRlck1vZGVscygpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmYS1pY29uIGljb249XCJ0aW1lc1wiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlzLXJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzd2l0Y2ggaXMtc21hbGwgaXMtcm91bmRlZCBpcy1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzaG93QWR2YW5jZWRcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzaG93QWR2YW5jZWRcIlxuICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJmaWx0ZXJNb2RlbHMoKVwiIC8+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaXMtc2l6ZS03XCIgZm9yPVwic2hvd0FkdmFuY2VkXCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5TaG93IGFkdmFuY2VkIGRhdGE8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlzLXJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzd2l0Y2ggaXMtc21hbGwgaXMtcm91bmRlZCBpcy1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJvbmx5R2FwRmlsbGVkXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwib25seUdhcEZpbGxlZFwiXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImZpbHRlck1vZGVscygpXCIgLz5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJpcy1zaXplLTdcIiBmb3I9XCJvbmx5R2FwRmlsbGVkXCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5TaG93IG9ubHkgZ2FwLWZpbGxlZCBkYXRhPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGlzLW5hcnJvdyBoYXMtdGV4dC1yaWdodFwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duIGlzLXJpZ2h0IGhhcy10ZXh0LWxlZnRcIlxuICAgICAgICBbY2xhc3MuaXMtYWN0aXZlXT1cInNob3dEaXNwbGF5QnlcIlxuICAgICAgICAoY2xpY2tPdXRzaWRlKT1cInNob3dEaXNwbGF5QnkgPSBmYWxzZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tdHJpZ2dlclwiIChjbGljayk9XCJzaG93RGlzcGxheUJ5ID0gIXNob3dEaXNwbGF5QnlcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvbiBpcy1naG9zdFwiXG4gICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwiZGlzcGxheS1tZW51XCJcbiAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEaXNwbGF5IG9wdGlvbnNcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgW2Rpc2FibGVUb29sdGlwXT1cInNob3dEaXNwbGF5QnlcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImRpc3BsYXlCeVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGlzdCdcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgICAgICAgIDxmYS1pY29uIGljb249XCJsaXN0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9mYS1pY29uPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0eXBlJ1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBpcy1zbWFsbFwiPlxuICAgICAgICAgICAgICAgICAgPGZhLWljb24gaWNvbj1cInRhYmxlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9mYS1pY29uPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgaWQ9XCJkaXNwbGF5LW1lbnVcIiByb2xlPVwibWVudVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jb250ZW50XCIgKGNsaWNrKT1cInNob3dEaXNwbGF5QnkgPSBmYWxzZVwiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgW2NsYXNzLmlzLXNlbGVjdGVkXT1cImRpc3BsYXlCeSA9PT0gJ2xpc3QnXCIgKGNsaWNrKT1cImRpc3BsYXlCeSA9ICdsaXN0J1wiPlxuICAgICAgICAgICAgICA8ZmEtaWNvbiBpY29uPVwibGlzdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbC0yXCI+RGlzcGxheSBieSBQcmlvcml0eTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJkaXNwbGF5QnkgPT09ICd0eXBlJ1wiIChjbGljayk9XCJkaXNwbGF5QnkgPSAndHlwZSdcIj5cbiAgICAgICAgICAgICAgPGZhLWljb24gaWNvbj1cInRhYmxlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9mYS1pY29uPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBsLTJcIj5EaXNwbGF5IGJ5IFR5cGU8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5QnkgPT09ICdsaXN0JyAmJiBtb2RlbHNcIj5cbiAgPGRpdiBjbGFzcz1cInBsLTNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9kZWxMaXN0OyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbW9kZWxzIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlCeSA9PT0gJ3R5cGUnICYmIGdyb3VwZWRNb2RlbHNcIj5cbiAgPGRpdiBjbGFzcz1cInRhYnNcIj5cbiAgICA8dWw+XG4gICAgICA8bGlcbiAgICAgICAgKm5nRm9yPVwibGV0IGdyb3VwIG9mIGdyb3VwZWRNb2RlbHMgfCBrZXlzOyB0cmFja0J5OiB0cmFja0J5S2V5XCJcbiAgICAgICAgW2NsYXNzLmlzLWFjdGl2ZV09XCJzZWxlY3RlZEdyb3VwZWRLZXkgPT09IGdyb3VwLmtleVwiPlxuICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWRHcm91cGVkS2V5ID0gZ3JvdXAua2V5XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbC0yXCI+e3sgZ3JvdXAua2V5IH19ICh7eyBncm91cC52YWx1ZS5sZW5ndGggfX0pPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJwbC0zXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RlbExpc3Q7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBncm91cGVkTW9kZWxzW3NlbGVjdGVkR3JvdXBlZEtleV0gfVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3Rlcm1MaW5rIGxldC12YWx1ZT5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TGFiZWw+XG4gICAgPHNwYW4+e3sgdmFsdWUgfCBrZXlUb0xhYmVsIH19PC9zcGFuPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZXJtc0J5SWRbdmFsdWVdOyBlbHNlIGRlZmF1bHRMYWJlbFwiPlxuICAgIDxoZS1ub2RlLWxpbmsgW25vZGVdPVwidGVybXNCeUlkW3ZhbHVlXVwiIFtzaG93RXh0ZXJuYWxMaW5rXT1cInRydWVcIj5cbiAgICAgIDxzcGFuPnt7IHRlcm1zQnlJZFt2YWx1ZV0ubmFtZSB9fTwvc3Bhbj5cbiAgICA8L2hlLW5vZGUtbGluaz5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vZGVsTGlzdCBsZXQtZGF0YT5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgdiBvZiBkYXRhXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGVsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogdiB9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtb2RlbCBsZXQtZGF0YT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQXJyYXkoZGF0YSkgJiYgZGF0YS5sZW5ndGhcIj5cbiAgICA8ZGl2IGNsYXNzPVwicGwtMyBtb2RlbC1wYXJhbGxlbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGVsTGlzdDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGRhdGEgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGhyIC8+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQXJyYXkoZGF0YSlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0yIG1vZGVsLXNlcmllIGlzLXNpemUtNlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtY29udGVudCBwLTNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpcy1jYXBpdGFsaXplZFwiPnt7IGRhdGEua2V5IHwga2V5VG9MYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgOlxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRWaWV3PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVmYXVsdC12YWx1ZVwiPnt7IGRhdGEudmFsdWUgfX08L3NwYW4+XG5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPk1vZGVsOjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHItMlwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVybUxpbms7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBkYXRhLm1vZGVsIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNtb2RlbEZyb21QYXRoTGluaz5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWxQYXRoTGluayQoZGF0YSkgfCBhc3luYyBhcyBsaW5rOyBlbHNlIGRlZmF1bHRWaWV3XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9kZWxQYXRoTGluazsgY29udGV4dDogeyBtb2RlbDogZGF0YS5tb2RlbCwgdmFsdWU6IGRhdGEudmFsdWUsIGxpbmsgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbExpbmskKGRhdGEpIHwgYXN5bmMgYXMgbGluazsgZWxzZSBtb2RlbEZyb21QYXRoTGlua1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9kZWxMaW5rOyBjb250ZXh0OiB7IG1vZGVsOiBkYXRhLm1vZGVsLCB2YWx1ZTogZGF0YS52YWx1ZSwgbGluayB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93QWR2YW5jZWRcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5ydW5TdHJhdGVneVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwci0xXCI+UnVuIHN0cmF0ZWd5Ojwvc3Bhbj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdHJhdGVnaWVzTGluazsgY29udGV4dDogeyBzdHJhdGVneTogZGF0YS5ydW5TdHJhdGVneSwgdHlwZTogJ3J1bicgfVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGwtMyBpcy1zaXplLTdcIiAqbmdJZj1cImRhdGEucnVuQXJnc1wiPlxuICAgICAgICAgICAgICA8cD48Yj5SdW4gYXJndW1lbnRzOjwvYj48L3A+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdHJhdGVnaWVzQXJnczsgY29udGV4dDogeyAkaW1wbGljaXQ6IGRhdGEucnVuQXJncyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5tZXJnZVN0cmF0ZWd5XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByLTFcIj5NZXJnZSBzdHJhdGVneTo8L3NwYW4+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgc3RyYXRlZ2llc0xpbms7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyBzdHJhdGVneTogZGF0YS5tZXJnZVN0cmF0ZWd5LCB0eXBlOiAnbWVyZ2UnIH1cbiAgICAgICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbC0zIGlzLXNpemUtN1wiICpuZ0lmPVwiZGF0YS5tZXJnZUFyZ3NcIj5cbiAgICAgICAgICAgICAgPHA+PGI+TWVyZ2UgYXJndW1lbnRzOjwvYj48L3A+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdHJhdGVnaWVzQXJnczsgY29udGV4dDogeyAkaW1wbGljaXQ6IGRhdGEubWVyZ2VBcmdzIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kZWxMaW5rS2V5IGxldC1tb2RlbD1cIm1vZGVsXCIgbGV0LWxpbms9XCJsaW5rXCI+XG4gIDxhIFtocmVmXT1cIm1vZGVsS2V5VXJsKGxpbmssIG1vZGVsKVwiIHRhcmdldD1cIl9ibGFua1wiPnt7IG1vZGVsS2V5TmFtZShsaW5rLm1vZGVsS2V5KSB9fTwvYT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kZWxMaW5rIGxldC1tb2RlbD1cIm1vZGVsXCIgbGV0LWxpbms9XCJsaW5rXCIgbGV0LXZhbHVlPVwidmFsdWVcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmsudGVybVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZXJtTGluazsgY29udGV4dDogeyAkaW1wbGljaXQ6IGxpbmsudGVybSB9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxzcGFuICpuZ0lmPVwiIWxpbmsudGVybSAmJiAhbGluaz8ubW9kZWxLZXlcIiBjbGFzcz1cImRlZmF1bHQtdmFsdWVcIj57eyB2YWx1ZSB9fTwvc3Bhbj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxpbmsudGVybSAmJiBsaW5rPy5tb2RlbEtleVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RlbExpbmtLZXk7IGNvbnRleHQ6IHsgbGluaywgbW9kZWwgfVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8cCBjbGFzcz1cIm1vZGVsLWxpbmtcIj5cbiAgICA8c3BhbiBjbGFzcz1cInByLTFcIj5Nb2RlbDo8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJwci0yXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVybUxpbms7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBtb2RlbCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9zcGFuPlxuXG4gICAgPGEgY2xhc3M9XCJpcy1zaXplLTdcIiBbaHJlZl09XCJsaW5rLmRvY1BhdGhcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPihWaWV3IERvY3MpPC9zcGFuPlxuICAgICAgPGZhLWljb24gaWNvbj1cImV4dGVybmFsLWxpbmstYWx0XCI+PC9mYS1pY29uPlxuICAgIDwvYT5cbiAgPC9wPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtb2RlbFBhdGhMaW5rIGxldC1tb2RlbD1cIm1vZGVsXCIgbGV0LWxpbms9XCJsaW5rXCIgbGV0LXZhbHVlPVwidmFsdWVcIj5cbiAgPHNwYW4gKm5nSWY9XCIhbGluaz8ubW9kZWxLZXlcIiBjbGFzcz1cImRlZmF1bHQtdmFsdWVcIj57eyB2YWx1ZSB9fTwvc3Bhbj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibGluaz8ubW9kZWxLZXlcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9kZWxMaW5rS2V5OyBjb250ZXh0OiB7IGxpbmssIG1vZGVsIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPHAgY2xhc3M9XCJtb2RlbC1wYXRoLWxpbmtcIj5cbiAgICA8c3BhbiBjbGFzcz1cInByLTFcIj5Nb2RlbDo8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJwci0yXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVybUxpbms7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBtb2RlbCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9zcGFuPlxuXG4gICAgPGEgY2xhc3M9XCJpcy1zaXplLTdcIiBbaHJlZl09XCJsaW5rLmRvY1BhdGhcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPihWaWV3IERvY3MpPC9zcGFuPlxuICAgICAgPGZhLWljb24gaWNvbj1cImV4dGVybmFsLWxpbmstYWx0XCI+PC9mYS1pY29uPlxuICAgIDwvYT5cbiAgPC9wPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzdHJhdGVnaWVzTGluayBsZXQtc3RyYXRlZ3k9XCJzdHJhdGVneVwiIGxldC10eXBlPVwidHlwZVwiPlxuICA8c3BhbiBjbGFzcz1cInByLTIgaXMtaW5saW5lLWJsb2NrXCI+XG4gICAgPGNvZGU+e3sgc3RyYXRlZ3kgfX08L2NvZGU+XG4gIDwvc3Bhbj5cblxuICA8YVxuICAgIGNsYXNzPVwiaXMtc2l6ZS03XCJcbiAgICBbaHJlZl09XCJzdHJhdGVnaWVzRG9jcyArICcvJyArIHR5cGUgKyAnLycgKyAodHlwZSA9PT0gJ21lcmdlJyA/ICdtZXJnZV8nIDogJycpICsgc3RyYXRlZ3kgKyAnLm1kJ1wiXG4gICAgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJwci0xXCI+KFZpZXcgRG9jcyk8L3NwYW4+XG4gICAgPGZhLWljb24gaWNvbj1cImV4dGVybmFsLWxpbmstYWx0XCI+PC9mYS1pY29uPlxuICA8L2E+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3N0cmF0ZWdpZXNBcmdzIGxldC1hcmdzPlxuICA8ZGl2IGNsYXNzPVwicGwtMlwiPlxuICAgIDxwICpuZ0Zvcj1cImxldCBhcmcgb2YgYXJncyB8IGtleXNcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaGFzLXRleHQtdW5kZXJsaW5lXCI+e3sgYXJnLmtleSB9fTwvc3Bhbj5cbiAgICAgIDpcbiAgICAgIDxjb2RlPnt7IGFyZy52YWx1ZSB8IGpzb24gfX08L2NvZGU+XG4gICAgPC9wPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLW9yY2hlc3RyYXRvci1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbmdpbmUvZW5naW5lLW9yY2hlc3RyYXRvci1lZGl0L2VuZ2luZS1vcmNoZXN0cmF0b3ItZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS1vcmNoZXN0cmF0b3ItZWRpdC9lbmdpbmUtb3JjaGVzdHJhdG9yLWVkaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQWUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekQsT0FBTyxFQUlMLFlBQVksRUFFYixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBSS9ELE1BQU0sTUFBTSxHQUFHLEdBQUcsT0FBTyxJQUFJLFVBQVUsQ0FBQyxZQUFZLFdBQVcsU0FBUyxFQUFFLEVBQUUsQ0FBQztBQUM3RSxNQUFNLGNBQWMsR0FBRyxHQUFHLE1BQU0s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QUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5RixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F2R1UsK0JBQStCO2tHQUEvQiwrQkFBK0IsNElDakY1Qyxza1hBdVRBOzsyRkR0T2EsK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLDZCQUE2QjtvSUFRL0IsTUFBTTtzQkFEYixLQUFLO2dCQUdFLFFBQVE7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBncm91cEJ5LCBtZXJnZU1hcCwgcmVkdWNlLCB0b0FycmF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSVRlcm1KU09OTEQsIE5vZGVUeXBlLCBTY2hlbWFUeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsga2V5VG9MYWJlbCwgdW5pcXVlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5cbmltcG9ydCB7XG4gIEhlRW5naW5lU2VydmljZSxcbiAgSU9yY2hlc3RyYXRvckNvbmZpZyxcbiAgSU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnLFxuICBlbmdpbmVHaXRVcmwsXG4gIElNb2RlbFxufSBmcm9tICcuLi9lbmdpbmUuc2VydmljZSc7XG5pbXBvcnQgeyBSZXBvc2l0b3J5LCBiYXNlVXJsLCBnaXRCcmFuY2gsIGdpdEhvbWUgfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgcGx1cmFsaXplIH0gZnJvbSAnLi4vLi4vY29tbW9uL3BsdXJhbGl6ZSc7XG5pbXBvcnQgeyBIZVNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZWFyY2gvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWF0Y2hJZCwgbWF0Y2hUeXBlIH0gZnJvbSAnLi4vLi4vc2VhcmNoL3NlYXJjaC5tb2RlbCc7XG5cbnR5cGUgY29uZmlncyA9IChJT3JjaGVzdHJhdG9yTW9kZWxDb25maWcgfCBJT3JjaGVzdHJhdG9yTW9kZWxDb25maWdbXSlbXTtcblxuY29uc3QgZ2l0VXJsID0gYCR7Z2l0SG9tZX0vJHtSZXBvc2l0b3J5Lm9yY2hlc3RyYXRvcn0vLS9ibG9iLyR7Z2l0QnJhbmNoKCl9YDtcbmNvbnN0IGdlbmVyYWxEb2NzVXJsID0gYCR7Z2l0VXJsfS9oZXN0aWFfZWFydGgvb3JjaGVzdHJhdG9yL2NvbmZpZy9SRUFETUUubWRgO1xuY29uc3Qgc3RyYXRlZ2llc0RvY3MgPSBgJHtnaXRVcmx9L2hlc3RpYV9lYXJ0aC9vcmNoZXN0cmF0b3Ivc3RyYXRlZ2llc2A7XG5cbmNvbnN0IHNjaGVtYVR5cGVLZXlzID0gT2JqZWN0LmtleXMoU2NoZW1hVHlwZSk7XG5cbmNvbnN0IHRvU2NoZW1hVHlwZSA9ICh2YWx1ZTogc3RyaW5nKSA9PiBrZXlUb0xhYmVsKHZhbHVlKS5yZXBsYWNlKC9cXHMvZywgJycpO1xuXG5jb25zdCBpc1NjaGVtYVR5cGUgPSAodmFsdWU6IHN0cmluZykgPT5cbiAgW1xuICAgIHNjaGVtYVR5cGVLZXlzLmluY2x1ZGVzKHZhbHVlKSxcbiAgICBzY2hlbWFUeXBlS2V5cy5pbmNsdWRlcyhwbHVyYWxpemUodmFsdWUsIDEpKSxcbiAgICBzY2hlbWFUeXBlS2V5cy5pbmNsdWRlcyhwbHVyYWxpemUodG9TY2hlbWFUeXBlKHZhbHVlKSwgMSkpLFxuICAgIFsnZW1pc3Npb25zUmVzb3VyY2VVc2UnLCAnaW1wYWN0cycsICdlbmRwb2ludHMnXS5pbmNsdWRlcyh2YWx1ZSlcbiAgXS5zb21lKEJvb2xlYW4pO1xuXG5jb25zdCBpc0dhcEZpbGxlZCA9ICh7IHJ1blN0cmF0ZWd5LCBtZXJnZVN0cmF0ZWd5LCBtZXJnZUFyZ3MgfTogSU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnKSA9PlxuICBbJ2FkZF9ibGFua19ub2RlX2lmX21pc3NpbmcnLCAnYWRkX2tleV9pZl9taXNzaW5nJ10uaW5jbHVkZXMocnVuU3RyYXRlZ3kpICYmXG4gIChtZXJnZVN0cmF0ZWd5ICE9PSAnbGlzdCcgfHwgIW1lcmdlQXJncz8ucmVwbGFjZVRocmVzaG9sZCk7XG5cbmNvbnN0IGlzUmVjYWxjdWxhdGVkID0gKHsgcnVuU3RyYXRlZ3ksIG1lcmdlU3RyYXRlZ3ksIG1lcmdlQXJncyB9OiBJT3JjaGVzdHJhdG9yTW9kZWxDb25maWcpID0+XG4gIFsnYWRkX2JsYW5rX25vZGVfaWZfbWlzc2luZycsICdhZGRfa2V5X2lmX21pc3NpbmcnXS5pbmNsdWRlcyhydW5TdHJhdGVneSkgJiZcbiAgbWVyZ2VTdHJhdGVneSA9PT0gJ2xpc3QnICYmXG4gIG1lcmdlQXJncz8ucmVwbGFjZVRocmVzaG9sZDtcblxuY29uc3QgZmlsdGVyR2FwRmlsbGVkID0gKGNvbmZpZ3M6IGNvbmZpZ3MsIG9ubHlHYXBGaWxsZWQ6IGJvb2xlYW4pID0+XG4gIGNvbmZpZ3NcbiAgICAubWFwKG1vZGVsID0+IChBcnJheS5pc0FycmF5KG1vZGVsKSAmJiBvbmx5R2FwRmlsbGVkID8gbW9kZWwuZmlsdGVyKGlzR2FwRmlsbGVkKSA6IG1vZGVsKSlcbiAgICAuZmlsdGVyKG1vZGVsID0+ICFvbmx5R2FwRmlsbGVkIHx8IEFycmF5LmlzQXJyYXkobW9kZWwpIHx8IGlzR2FwRmlsbGVkKG1vZGVsKSk7XG5cbmNvbnN0IG1vZGVsTWF0Y2ggPVxuICAodGVybTogc3RyaW5nKSA9PlxuICAoeyBrZXksIG1vZGVsLCB2YWx1ZSB9OiBJT3JjaGVzdHJhdG9yTW9kZWxDb25maWcpID0+XG4gICAgW2tleSwgbW9kZWwsIHZhbHVlXS5maWx0ZXIoQm9vbGVhbikuc29tZSh2ID0+IHYudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtLnRvTG93ZXJDYXNlKCkpKTtcblxuY29uc3QgZmlsdGVyTW9kZWxzID0gKGNvbmZpZ3M6IGNvbmZpZ3MsIHRlcm0gPSAnJykgPT5cbiAgY29uZmlnc1xuICAgIC5tYXAobW9kZWwgPT4gKEFycmF5LmlzQXJyYXkobW9kZWwpICYmICEhdGVybSA/IG1vZGVsLmZpbHRlcihtb2RlbE1hdGNoKHRlcm0pKSA6IG1vZGVsKSlcbiAgICAuZmlsdGVyKG1vZGVsID0+ICF0ZXJtIHx8IEFycmF5LmlzQXJyYXkobW9kZWwpIHx8IG1vZGVsTWF0Y2godGVybSkobW9kZWwpKTtcblxuY29uc3QgbW9kZWxLZXlOYW1lID0gKG1vZGVsS2V5OiBzdHJpbmcpID0+IChtb2RlbEtleS5pbmNsdWRlcygnLicpID8gbW9kZWxLZXkuc3BsaXQoJy4nKVsxXSA6IG1vZGVsS2V5KTtcblxuY29uc3QgZ3JvdXBDb25maWcgPSAoY29uZmlnczogY29uZmlncykgPT5cbiAgZnJvbShjb25maWdzLmZsYXQoKSlcbiAgICAucGlwZShcbiAgICAgIGZpbHRlcigoeyBrZXkgfSkgPT4gaXNTY2hlbWFUeXBlKGtleSkpLFxuICAgICAgZ3JvdXBCeSgoeyBrZXkgfSkgPT4ga2V5KSxcbiAgICAgIG1lcmdlTWFwKGdyb3VwID0+IGdyb3VwLnBpcGUodG9BcnJheSgpKSksXG4gICAgICByZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICAgICAgY29uc3Qga2V5ID0gY3VyclswXS5rZXk7XG4gICAgICAgIHByZXZbdG9TY2hlbWFUeXBlKGtleSldID0gY3VycjtcbiAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICB9LCB7fSlcbiAgICApXG4gICAgLnRvUHJvbWlzZSgpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZS1lbmdpbmUtb3JjaGVzdHJhdG9yLWVkaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW5naW5lLW9yY2hlc3RyYXRvci1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW5naW5lLW9yY2hlc3RyYXRvci1lZGl0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRW5naW5lT3JjaGVzdHJhdG9yRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgYWxsTW9kZWxzOiBjb25maWdzO1xuXG4gIEBJbnB1dCgpXG4gIHByaXZhdGUgY29uZmlnPzogSU9yY2hlc3RyYXRvckNvbmZpZztcbiAgQElucHV0KClcbiAgcHJpdmF0ZSBub2RlVHlwZT86IE5vZGVUeXBlO1xuXG4gIHB1YmxpYyBtb2RlbEtleU5hbWUgPSBtb2RlbEtleU5hbWU7XG4gIHB1YmxpYyBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcbiAgcHVibGljIGdlbmVyYWxEb2NzVXJsID0gZ2VuZXJhbERvY3NVcmw7XG4gIHB1YmxpYyBzdHJhdGVnaWVzRG9jcyA9IHN0cmF0ZWdpZXNEb2NzO1xuICBwdWJsaWMgbW9kZWxzOiBjb25maWdzO1xuICBwdWJsaWMgZ3JvdXBlZE1vZGVsczoge1xuICAgIFtrZXk6IHN0cmluZ106IElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZ1tdO1xuICB9O1xuICBwdWJsaWMgc2VsZWN0ZWRHcm91cGVkS2V5OiBzdHJpbmc7XG5cbiAgcHVibGljIHRlcm1zQnlJZDogeyBbaWQ6IHN0cmluZ106IElUZXJtSlNPTkxEIH0gPSB7fTtcblxuICBwdWJsaWMgc2hvd0NvbmZpZyA9IGZhbHNlO1xuICBwdWJsaWMgc2VhcmNoID0gJyc7XG4gIHB1YmxpYyBvbmx5R2FwRmlsbGVkID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93QWR2YW5jZWQgPSBmYWxzZTtcbiAgcHVibGljIGRpc3BsYXlCeTogJ2xpc3QnIHwgJ3R5cGUnID0gJ2xpc3QnO1xuICBwdWJsaWMgc2hvd0Rpc3BsYXlCeSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaGVzdGlhRW5naW5lU2VydmljZTogSGVFbmdpbmVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogSGVTZWFyY2hTZXJ2aWNlXG4gICkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMuY29uZmlnPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuYWxsTW9kZWxzID0gdGhpcy5jb25maWcubW9kZWxzO1xuICAgICAgdGhpcy5jb21wdXRlVGVybXNCeUlkKCk7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXJNb2RlbHMoKTtcbiAgICB9XG4gICAgaWYgKCdub2RlVHlwZScgaW4gY2hhbmdlcykge1xuICAgICAgcmV0dXJuIHRoaXMubG9hZERlZmF1bHRDb25maWcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWREZWZhdWx0Q29uZmlnKCkge1xuICAgIGNvbnN0IHsgbW9kZWxzIH0gPSBhd2FpdCB0aGlzLmhlc3RpYUVuZ2luZVNlcnZpY2Uub2NoZXN0cmF0b3JDb25maWcodGhpcy5ub2RlVHlwZSk7XG4gICAgdGhpcy5hbGxNb2RlbHMgPSBtb2RlbHM7XG4gICAgdGhpcy5jb21wdXRlVGVybXNCeUlkKCk7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyTW9kZWxzKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNvbXB1dGVUZXJtc0J5SWQoKSB7XG4gICAgY29uc3QgaWRzID0gdW5pcXVlKFxuICAgICAgdGhpcy5hbGxNb2RlbHNcbiAgICAgICAgLmZsYXQoKVxuICAgICAgICAuZmxhdE1hcChtb2RlbCA9PiBbbW9kZWwubW9kZWwsIG1vZGVsLnZhbHVlXSlcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICk7XG4gICAgY29uc3QgeyByZXN1bHRzIH0gPSBhd2FpdCB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoPElUZXJtSlNPTkxELCBOb2RlVHlwZS5UZXJtPih7XG4gICAgICBmaWVsZHM6IFsnQHR5cGUnLCAnQGlkJywgJ25hbWUnLCAndW5pdHMnXSxcbiAgICAgIGxpbWl0OiBpZHMubGVuZ3RoLFxuICAgICAgcXVlcnk6IHtcbiAgICAgICAgYm9vbDoge1xuICAgICAgICAgIG11c3Q6IFttYXRjaFR5cGUoTm9kZVR5cGUuVGVybSldLFxuICAgICAgICAgIHNob3VsZDogaWRzLm1hcChtYXRjaElkKSxcbiAgICAgICAgICBtaW5pbXVtX3Nob3VsZF9tYXRjaDogMVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy50ZXJtc0J5SWQgPSByZXN1bHRzLnJlZHVjZSgocCwgYykgPT4gKHsgLi4ucCwgW2NbJ0BpZCddXTogYyB9KSwge30pO1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlLZXkoX2luZGV4OiBudW1iZXIsIHsga2V5IH0pIHtcbiAgICByZXR1cm4ga2V5O1xuICB9XG5cbiAgcHVibGljIG1vZGVsTGluayQoeyBtb2RlbCwgdmFsdWUgfTogSU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVzdGlhRW5naW5lU2VydmljZS5tb2RlbCQoeyBtb2RlbCwgdGVybTogdmFsdWUgfSk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWxQYXRoTGluayQoeyBtb2RlbCwgdmFsdWUgfTogSU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVzdGlhRW5naW5lU2VydmljZS5tb2RlbCQoe1xuICAgICAgcGF0aDogYCR7ZW5naW5lR2l0VXJsKCl9L2hlc3RpYV9lYXJ0aC9tb2RlbHMvJHttb2RlbH0vJHsodmFsdWUgfHwgJycpLnJlcGxhY2UoJy4nLCAnLycpfS5weWBcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29uZmlnVXJsKCkge1xuICAgIHJldHVybiB0aGlzLmhlc3RpYUVuZ2luZVNlcnZpY2Uub3JjaGVzdHJhdG9yQ29uZmlnVXJsKHRoaXMubm9kZVR5cGUpO1xuICB9XG5cbiAgcHVibGljIG1vZGVsS2V5VXJsKHsgbW9kZWxLZXkgfTogSU1vZGVsLCBtb2RlbDogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFydHMgPSBtb2RlbEtleS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IHNjaGVtYVR5cGUgPSBwYXJ0cy5sZW5ndGggPT09IDIgPyBwYXJ0c1swXSA6IG1vZGVsO1xuICAgIGNvbnN0IHVybCA9IFtiYXNlVXJsKCksICdzY2hlbWEnLCB0b1NjaGVtYVR5cGUoc2NoZW1hVHlwZSldLmZpbHRlcihCb29sZWFuKS5qb2luKCcvJyk7XG4gICAgcmV0dXJuIGlzU2NoZW1hVHlwZShzY2hlbWFUeXBlKSA/IGAke3VybH0jJHtwYXJ0cy5wb3AoKX1gIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBmaWx0ZXJNb2RlbHMoKSB7XG4gICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbHMgPSBmaWx0ZXJNb2RlbHMoZmlsdGVyR2FwRmlsbGVkKHRoaXMuYWxsTW9kZWxzLCB0aGlzLm9ubHlHYXBGaWxsZWQpLCB0aGlzLnNlYXJjaCk7XG4gICAgICB0aGlzLm1vZGVscyA9IG1vZGVscztcbiAgICAgIHRoaXMuZ3JvdXBlZE1vZGVscyA9IGF3YWl0IGdyb3VwQ29uZmlnKG1vZGVscyk7XG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBlZEtleSA9IE9iamVjdC5rZXlzKHRoaXMuZ3JvdXBlZE1vZGVscyk/LlswXTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPHA+XG4gIDxpPlxuICAgIFRoZSBjb25maWd1cmF0aW9uIGJlbG93IGlzIGEgcHJldmlldyBvZiB0aGVcbiAgICA8YSBbaHJlZl09XCJjb25maWdVcmxcIiB0YXJnZXQ9XCJfYmxhbmtcIj5KU09OIGNvbmZpZ3VyYXRpb24gZmlsZTwvYT5cbiAgICB1c2VkIGZvciB0aGUgb3JjaGVzdHJhdGlvbiBvZiB0aGUgSGVzdGlhJ3MgY2FsY3VsYXRpb25zLlxuICA8L2k+XG48L3A+XG48cD5cbiAgPGk+Tm90ZTogbm90IGFsbCBtb2RlbHMgbWlnaHQgYmUgcmVwcmVzZW50ZWQgYWNjdXJhdGVseS48L2k+XG48L3A+XG5cbjxkaXYgY2xhc3M9XCJpcy1zaXplLTcgaXMtaXRhbGljXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2x1bW5zIGlzLW1vYmlsZSBpcy1tdWx0aWxpbmUgaXMtdmNlbnRlcmVkIGlzLXZhcmlhYmxlIGlzLTEgbXktMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwbC0zIG1vZGVsLXBhcmFsbGVsIG15LTNcIj5cbiAgICAgICAgPHNwYW4+TW9kZWxzIHJ1bm5pbmcgaW4gcGFyYWxsZWw8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4gaXMtbmFycm93IGhhcy10ZXh0LXJpZ2h0XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd24gaXMtcmlnaHQgaGFzLXRleHQtbGVmdCBpcy1kcm9wZG93bi1maWx0ZXJzXCJcbiAgICAgICAgW2NsYXNzLmlzLWFjdGl2ZV09XCJzaG93Q29uZmlnXCJcbiAgICAgICAgKGNsaWNrT3V0c2lkZSk9XCJzaG93Q29uZmlnID0gZmFsc2VcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLXRyaWdnZXJcIiAoY2xpY2spPVwic2hvd0NvbmZpZyA9ICFzaG93Q29uZmlnXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJidXR0b24gaXMtZ2hvc3RcIlxuICAgICAgICAgICAgW2NsYXNzLmlzLWFjdGl2ZV09XCJzaG93Q29uZmlnXCJcbiAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJvcHRpb24tbWVudVwiXG4gICAgICAgICAgICBuZ2JUb29sdGlwPVwiRmlsdGVyc1wiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICBbZGlzYWJsZVRvb2x0aXBdPVwic2hvd0NvbmZpZ1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIGlzLXNtYWxsXCI+XG4gICAgICAgICAgICAgIDxmYS1pY29uIGljb249XCJjb2dcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2ZhLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIGlkPVwib3B0aW9uLW1lbnVcIiByb2xlPVwibWVudVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24taXRlbVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbCBpcy1leHBhbmRlZCBoYXMtaWNvbnMtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQgc2VhcmNoLWlucHV0IGlzLXNlY29uZGFyeSBpcy1zbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNvbGxlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZpbHRlciBieSBrZXksIG5hbWUgb3IgbW9kZWxcIlxuICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwiZmlsdGVyTW9kZWxzKClcIiAvPlxuICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJpY29uIGlzLXNtYWxsIGlzLXJpZ2h0XCIgKGNsaWNrKT1cInNlYXJjaCA9ICcnOyBmaWx0ZXJNb2RlbHMoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZmEtaWNvbiBpY29uPVwidGltZXNcIj48L2ZhLWljb24+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBpcy1yZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3dpdGNoIGlzLXNtYWxsIGlzLXJvdW5kZWQgaXMtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2hvd0FkdmFuY2VkXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2hvd0FkdmFuY2VkXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiZmlsdGVyTW9kZWxzKClcIiAvPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImlzLXNpemUtN1wiIGZvcj1cInNob3dBZHZhbmNlZFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+U2hvdyBhZHZhbmNlZCBkYXRhPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBpcy1yZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3dpdGNoIGlzLXNtYWxsIGlzLXJvdW5kZWQgaXMtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwib25seUdhcEZpbGxlZFwiXG4gICAgICAgICAgICAgICAgICBpZD1cIm9ubHlHYXBGaWxsZWRcIlxuICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJmaWx0ZXJNb2RlbHMoKVwiIC8+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaXMtc2l6ZS03XCIgZm9yPVwib25seUdhcEZpbGxlZFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+U2hvdyBvbmx5IGdhcC1maWxsZWQgZGF0YTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1uYXJyb3cgaGFzLXRleHQtcmlnaHRcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93biBpcy1yaWdodCBoYXMtdGV4dC1sZWZ0XCJcbiAgICAgICAgW2NsYXNzLmlzLWFjdGl2ZV09XCJzaG93RGlzcGxheUJ5XCJcbiAgICAgICAgKGNsaWNrT3V0c2lkZSk9XCJzaG93RGlzcGxheUJ5ID0gZmFsc2VcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLXRyaWdnZXJcIiAoY2xpY2spPVwic2hvd0Rpc3BsYXlCeSA9ICFzaG93RGlzcGxheUJ5XCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJidXR0b24gaXMtZ2hvc3RcIlxuICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgYXJpYS1jb250cm9scz1cImRpc3BsYXktbWVudVwiXG4gICAgICAgICAgICBuZ2JUb29sdGlwPVwiRGlzcGxheSBvcHRpb25zXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgIFtkaXNhYmxlVG9vbHRpcF09XCJzaG93RGlzcGxheUJ5XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJkaXNwbGF5QnlcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xpc3QnXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIGlzLXNtYWxsXCI+XG4gICAgICAgICAgICAgICAgICA8ZmEtaWNvbiBpY29uPVwibGlzdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndHlwZSdcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgICAgICAgIDxmYS1pY29uIGljb249XCJ0YWJsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIGlkPVwiZGlzcGxheS1tZW51XCIgcm9sZT1cIm1lbnVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tY29udGVudFwiIChjbGljayk9XCJzaG93RGlzcGxheUJ5ID0gZmFsc2VcIj5cbiAgICAgICAgICAgIDxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJkaXNwbGF5QnkgPT09ICdsaXN0J1wiIChjbGljayk9XCJkaXNwbGF5QnkgPSAnbGlzdCdcIj5cbiAgICAgICAgICAgICAgPGZhLWljb24gaWNvbj1cImxpc3RcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2ZhLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGwtMlwiPkRpc3BsYXkgYnkgUHJpb3JpdHk8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwiZGlzcGxheUJ5ID09PSAndHlwZSdcIiAoY2xpY2spPVwiZGlzcGxheUJ5ID0gJ3R5cGUnXCI+XG4gICAgICAgICAgICAgIDxmYS1pY29uIGljb249XCJ0YWJsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbC0yXCI+RGlzcGxheSBieSBUeXBlPC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiZGlzcGxheUJ5ID09PSAnbGlzdCcgJiYgbW9kZWxzXCI+XG4gIDxkaXYgY2xhc3M9XCJwbC0zXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGVsTGlzdDsgY29udGV4dDogeyAkaW1wbGljaXQ6IG1vZGVscyB9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5QnkgPT09ICd0eXBlJyAmJiBncm91cGVkTW9kZWxzXCI+XG4gIDxkaXYgY2xhc3M9XCJ0YWJzXCI+XG4gICAgPHVsPlxuICAgICAgPGxpXG4gICAgICAgICpuZ0Zvcj1cImxldCBncm91cCBvZiBncm91cGVkTW9kZWxzIHwga2V5czsgdHJhY2tCeTogdHJhY2tCeUtleVwiXG4gICAgICAgIFtjbGFzcy5pcy1hY3RpdmVdPVwic2VsZWN0ZWRHcm91cGVkS2V5ID09PSBncm91cC5rZXlcIj5cbiAgICAgICAgPGEgKGNsaWNrKT1cInNlbGVjdGVkR3JvdXBlZEtleSA9IGdyb3VwLmtleVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGwtMlwiPnt7IGdyb3VwLmtleSB9fSAoe3sgZ3JvdXAudmFsdWUubGVuZ3RoIH19KTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicGwtM1wiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9kZWxMaXN0OyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZ3JvdXBlZE1vZGVsc1tzZWxlY3RlZEdyb3VwZWRLZXldIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICN0ZXJtTGluayBsZXQtdmFsdWU+XG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExhYmVsPlxuICAgIDxzcGFuPnt7IHZhbHVlIHwga2V5VG9MYWJlbCB9fTwvc3Bhbj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidGVybXNCeUlkW3ZhbHVlXTsgZWxzZSBkZWZhdWx0TGFiZWxcIj5cbiAgICA8aGUtbm9kZS1saW5rIFtub2RlXT1cInRlcm1zQnlJZFt2YWx1ZV1cIiBbc2hvd0V4dGVybmFsTGlua109XCJ0cnVlXCI+XG4gICAgICA8c3Bhbj57eyB0ZXJtc0J5SWRbdmFsdWVdLm5hbWUgfX08L3NwYW4+XG4gICAgPC9oZS1ub2RlLWxpbms+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtb2RlbExpc3QgbGV0LWRhdGE+XG4gIDxkaXYgKm5nRm9yPVwibGV0IHYgb2YgZGF0YVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RlbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHYgfVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kZWwgbGV0LWRhdGE+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FycmF5KGRhdGEpICYmIGRhdGEubGVuZ3RoXCI+XG4gICAgPGRpdiBjbGFzcz1cInBsLTMgbW9kZWwtcGFyYWxsZWxcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RlbExpc3Q7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBkYXRhIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxociAvPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0FycmF5KGRhdGEpXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMiBtb2RlbC1zZXJpZSBpcy1zaXplLTZcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWNvbnRlbnQgcC0zXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaXMtY2FwaXRhbGl6ZWRcIj57eyBkYXRhLmtleSB8IGtleVRvTGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDpcbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Vmlldz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlZmF1bHQtdmFsdWVcIj57eyBkYXRhLnZhbHVlIH19PC9zcGFuPlxuXG4gICAgICAgICAgPHA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByLTFcIj5Nb2RlbDo8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByLTJcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlcm1MaW5rOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZGF0YS5tb2RlbCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbW9kZWxGcm9tUGF0aExpbms+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsUGF0aExpbmskKGRhdGEpIHwgYXN5bmMgYXMgbGluazsgZWxzZSBkZWZhdWx0Vmlld1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGVsUGF0aExpbms7IGNvbnRleHQ6IHsgbW9kZWw6IGRhdGEubW9kZWwsIHZhbHVlOiBkYXRhLnZhbHVlLCBsaW5rIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWxMaW5rJChkYXRhKSB8IGFzeW5jIGFzIGxpbms7IGVsc2UgbW9kZWxGcm9tUGF0aExpbmtcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGVsTGluazsgY29udGV4dDogeyBtb2RlbDogZGF0YS5tb2RlbCwgdmFsdWU6IGRhdGEudmFsdWUsIGxpbmsgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0FkdmFuY2VkXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImRhdGEucnVuU3RyYXRlZ3lcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPlJ1biBzdHJhdGVneTo8L3NwYW4+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RyYXRlZ2llc0xpbms7IGNvbnRleHQ6IHsgc3RyYXRlZ3k6IGRhdGEucnVuU3RyYXRlZ3ksIHR5cGU6ICdydW4nIH1cIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsLTMgaXMtc2l6ZS03XCIgKm5nSWY9XCJkYXRhLnJ1bkFyZ3NcIj5cbiAgICAgICAgICAgICAgPHA+PGI+UnVuIGFyZ3VtZW50czo8L2I+PC9wPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RyYXRlZ2llc0FyZ3M7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBkYXRhLnJ1bkFyZ3MgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImRhdGEubWVyZ2VTdHJhdGVneVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwci0xXCI+TWVyZ2Ugc3RyYXRlZ3k6PC9zcGFuPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHN0cmF0ZWdpZXNMaW5rO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgc3RyYXRlZ3k6IGRhdGEubWVyZ2VTdHJhdGVneSwgdHlwZTogJ21lcmdlJyB9XG4gICAgICAgICAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGwtMyBpcy1zaXplLTdcIiAqbmdJZj1cImRhdGEubWVyZ2VBcmdzXCI+XG4gICAgICAgICAgICAgIDxwPjxiPk1lcmdlIGFyZ3VtZW50czo8L2I+PC9wPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RyYXRlZ2llc0FyZ3M7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBkYXRhLm1lcmdlQXJncyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vZGVsTGlua0tleSBsZXQtbW9kZWw9XCJtb2RlbFwiIGxldC1saW5rPVwibGlua1wiPlxuICA8YSBbaHJlZl09XCJtb2RlbEtleVVybChsaW5rLCBtb2RlbClcIiB0YXJnZXQ9XCJfYmxhbmtcIj57eyBtb2RlbEtleU5hbWUobGluay5tb2RlbEtleSkgfX08L2E+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vZGVsTGluayBsZXQtbW9kZWw9XCJtb2RlbFwiIGxldC1saW5rPVwibGlua1wiIGxldC12YWx1ZT1cInZhbHVlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaW5rLnRlcm1cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVybUxpbms7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBsaW5rLnRlcm0gfVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8c3BhbiAqbmdJZj1cIiFsaW5rLnRlcm0gJiYgIWxpbms/Lm1vZGVsS2V5XCIgY2xhc3M9XCJkZWZhdWx0LXZhbHVlXCI+e3sgdmFsdWUgfX08L3NwYW4+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsaW5rLnRlcm0gJiYgbGluaz8ubW9kZWxLZXlcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9kZWxMaW5rS2V5OyBjb250ZXh0OiB7IGxpbmssIG1vZGVsIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPHAgY2xhc3M9XCJtb2RlbC1saW5rXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJwci0xXCI+TW9kZWw6PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwicHItMlwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlcm1MaW5rOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbW9kZWwgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvc3Bhbj5cblxuICAgIDxhIGNsYXNzPVwiaXMtc2l6ZS03XCIgW2hyZWZdPVwibGluay5kb2NQYXRoXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInByLTFcIj4oVmlldyBEb2NzKTwvc3Bhbj5cbiAgICAgIDxmYS1pY29uIGljb249XCJleHRlcm5hbC1saW5rLWFsdFwiPjwvZmEtaWNvbj5cbiAgICA8L2E+XG4gIDwvcD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kZWxQYXRoTGluayBsZXQtbW9kZWw9XCJtb2RlbFwiIGxldC1saW5rPVwibGlua1wiIGxldC12YWx1ZT1cInZhbHVlXCI+XG4gIDxzcGFuICpuZ0lmPVwiIWxpbms/Lm1vZGVsS2V5XCIgY2xhc3M9XCJkZWZhdWx0LXZhbHVlXCI+e3sgdmFsdWUgfX08L3NwYW4+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbms/Lm1vZGVsS2V5XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGVsTGlua0tleTsgY29udGV4dDogeyBsaW5rLCBtb2RlbCB9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxwIGNsYXNzPVwibW9kZWwtcGF0aC1saW5rXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJwci0xXCI+TW9kZWw6PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwicHItMlwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlcm1MaW5rOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbW9kZWwgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvc3Bhbj5cblxuICAgIDxhIGNsYXNzPVwiaXMtc2l6ZS03XCIgW2hyZWZdPVwibGluay5kb2NQYXRoXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInByLTFcIj4oVmlldyBEb2NzKTwvc3Bhbj5cbiAgICAgIDxmYS1pY29uIGljb249XCJleHRlcm5hbC1saW5rLWFsdFwiPjwvZmEtaWNvbj5cbiAgICA8L2E+XG4gIDwvcD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3RyYXRlZ2llc0xpbmsgbGV0LXN0cmF0ZWd5PVwic3RyYXRlZ3lcIiBsZXQtdHlwZT1cInR5cGVcIj5cbiAgPHNwYW4gY2xhc3M9XCJwci0yIGlzLWlubGluZS1ibG9ja1wiPlxuICAgIDxjb2RlPnt7IHN0cmF0ZWd5IH19PC9jb2RlPlxuICA8L3NwYW4+XG5cbiAgPGFcbiAgICBjbGFzcz1cImlzLXNpemUtN1wiXG4gICAgW2hyZWZdPVwic3RyYXRlZ2llc0RvY3MgKyAnLycgKyB0eXBlICsgJy8nICsgKHR5cGUgPT09ICdtZXJnZScgPyAnbWVyZ2VfJyA6ICcnKSArIHN0cmF0ZWd5ICsgJy5tZCdcIlxuICAgIHRhcmdldD1cIl9ibGFua1wiPlxuICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPihWaWV3IERvY3MpPC9zcGFuPlxuICAgIDxmYS1pY29uIGljb249XCJleHRlcm5hbC1saW5rLWFsdFwiPjwvZmEtaWNvbj5cbiAgPC9hPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzdHJhdGVnaWVzQXJncyBsZXQtYXJncz5cbiAgPGRpdiBjbGFzcz1cInBsLTJcIj5cbiAgICA8cCAqbmdGb3I9XCJsZXQgYXJnIG9mIGFyZ3MgfCBrZXlzXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImhhcy10ZXh0LXVuZGVybGluZVwiPnt7IGFyZy5rZXkgfX08L3NwYW4+XG4gICAgICA6XG4gICAgICA8Y29kZT57eyBhcmcudmFsdWUgfCBqc29uIH19PC9jb2RlPlxuICAgIDwvcD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|