@skyux/docs-tools 10.0.0-alpha.0 → 10.0.0-alpha.1
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/esm2022/modules/demo-page/demo-page.component.mjs +14 -9
- package/esm2022/modules/demo-page/demo-page.module.mjs +9 -1
- package/esm2022/modules/shared/docs-tools-site-options.mjs +3 -0
- package/esm2022/modules/type-definitions/class-definition.mjs +1 -1
- package/esm2022/modules/type-definitions/directive-definition.mjs +1 -1
- package/esm2022/modules/type-definitions/enumeration-definition.mjs +1 -1
- package/esm2022/modules/type-definitions/enumeration-member-definition.mjs +1 -1
- package/esm2022/modules/type-definitions/interface-definition.mjs +1 -1
- package/esm2022/modules/type-definitions/interface-property-definition.mjs +1 -1
- package/esm2022/modules/type-definitions/method-definition.mjs +1 -1
- package/esm2022/modules/type-definitions/method-definitions.component.mjs +9 -7
- package/esm2022/modules/type-definitions/preview-feature-indicator.component.mjs +13 -0
- package/esm2022/modules/type-definitions/property-definition.mjs +1 -1
- package/esm2022/modules/type-definitions/property-definitions.component.mjs +10 -7
- package/esm2022/modules/type-definitions/type-alias-definition.component.mjs +8 -7
- package/esm2022/modules/type-definitions/type-alias-definition.mjs +1 -1
- package/esm2022/modules/type-definitions/type-definitions.mjs +1 -1
- package/esm2022/modules/type-definitions/type-definitions.module.mjs +11 -4
- package/esm2022/modules/type-definitions/type-definitions.service.mjs +26 -9
- package/esm2022/modules/type-definitions/typedoc-adapter.service.mjs +23 -1
- package/esm2022/modules/type-definitions/typedoc-types.mjs +1 -1
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/skyux-docs-tools.mjs +91 -22
- package/fesm2022/skyux-docs-tools.mjs.map +1 -1
- package/modules/demo-page/demo-page.component.d.ts +3 -0
- package/modules/demo-page/demo-page.module.d.ts +11 -9
- package/modules/shared/docs-tools-site-options.d.ts +3 -0
- package/modules/type-definitions/class-definition.d.ts +1 -0
- package/modules/type-definitions/directive-definition.d.ts +1 -0
- package/modules/type-definitions/enumeration-definition.d.ts +1 -0
- package/modules/type-definitions/enumeration-member-definition.d.ts +1 -0
- package/modules/type-definitions/interface-definition.d.ts +1 -0
- package/modules/type-definitions/interface-property-definition.d.ts +1 -0
- package/modules/type-definitions/method-definition.d.ts +1 -0
- package/modules/type-definitions/method-definitions.component.d.ts +1 -0
- package/modules/type-definitions/preview-feature-indicator.component.d.ts +5 -0
- package/modules/type-definitions/property-definition.d.ts +1 -0
- package/modules/type-definitions/property-definitions.component.d.ts +1 -0
- package/modules/type-definitions/type-alias-definition.d.ts +1 -0
- package/modules/type-definitions/type-definitions.d.ts +1 -0
- package/modules/type-definitions/type-definitions.module.d.ts +4 -3
- package/modules/type-definitions/typedoc-types.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -14,6 +14,7 @@ export class SkyDocsTypeDocAdapterService {
|
|
|
14
14
|
const definition = {
|
|
15
15
|
anchorId: this.getAnchorId(entry),
|
|
16
16
|
name: entry.name,
|
|
17
|
+
hasPreviewFeatures: false,
|
|
17
18
|
};
|
|
18
19
|
const tags = this.getCommentTags(entry.comment);
|
|
19
20
|
this.applyCommentTagValues(definition, tags);
|
|
@@ -25,6 +26,9 @@ export class SkyDocsTypeDocAdapterService {
|
|
|
25
26
|
if (properties.length) {
|
|
26
27
|
definition.properties = properties;
|
|
27
28
|
}
|
|
29
|
+
definition.hasPreviewFeatures =
|
|
30
|
+
!!definition.methods?.some((method) => method.isPreview) ||
|
|
31
|
+
!!definition.properties?.some((property) => property.isPreview);
|
|
28
32
|
return definition;
|
|
29
33
|
}
|
|
30
34
|
toDirectiveDefinition(entry) {
|
|
@@ -32,6 +36,7 @@ export class SkyDocsTypeDocAdapterService {
|
|
|
32
36
|
anchorId: this.getAnchorId(entry),
|
|
33
37
|
name: entry.name,
|
|
34
38
|
selector: this.getSelector(entry),
|
|
39
|
+
hasPreviewFeatures: false,
|
|
35
40
|
};
|
|
36
41
|
const tags = this.getCommentTags(entry.comment);
|
|
37
42
|
this.applyCommentTagValues(definition, tags);
|
|
@@ -44,6 +49,9 @@ export class SkyDocsTypeDocAdapterService {
|
|
|
44
49
|
if (inputProperties.length) {
|
|
45
50
|
definition.inputProperties = inputProperties;
|
|
46
51
|
}
|
|
52
|
+
definition.hasPreviewFeatures =
|
|
53
|
+
!!definition.inputProperties?.some((property) => property.isPreview) ||
|
|
54
|
+
!!definition.eventProperties?.some((property) => property.isPreview);
|
|
47
55
|
return definition;
|
|
48
56
|
}
|
|
49
57
|
toEnumerationDefinition(entry) {
|
|
@@ -52,6 +60,7 @@ export class SkyDocsTypeDocAdapterService {
|
|
|
52
60
|
anchorId: this.getAnchorId(entry),
|
|
53
61
|
members,
|
|
54
62
|
name: entry.name,
|
|
63
|
+
hasPreviewFeatures: !!members.find((member) => member.isPreview),
|
|
55
64
|
};
|
|
56
65
|
const tags = this.getCommentTags(entry.comment);
|
|
57
66
|
this.applyCommentTagValues(definition, tags);
|
|
@@ -62,6 +71,7 @@ export class SkyDocsTypeDocAdapterService {
|
|
|
62
71
|
const definition = {
|
|
63
72
|
anchorId: this.getAnchorId(entry),
|
|
64
73
|
name: entry.name,
|
|
74
|
+
hasPreviewFeatures: !!properties.find((member) => member.isPreview),
|
|
65
75
|
properties,
|
|
66
76
|
};
|
|
67
77
|
const tags = this.getCommentTags(entry.comment);
|
|
@@ -88,6 +98,7 @@ export class SkyDocsTypeDocAdapterService {
|
|
|
88
98
|
const definition = {
|
|
89
99
|
anchorId: this.getAnchorId(entry),
|
|
90
100
|
name: entry.name,
|
|
101
|
+
isPreview: false,
|
|
91
102
|
type: this.getTypeDefinition({
|
|
92
103
|
comment: entry.comment,
|
|
93
104
|
type: entry.type,
|
|
@@ -129,6 +140,7 @@ export class SkyDocsTypeDocAdapterService {
|
|
|
129
140
|
.map((child) => {
|
|
130
141
|
let definition = {
|
|
131
142
|
isOptional: true,
|
|
143
|
+
isPreview: false,
|
|
132
144
|
name: this.getPropertyName(child),
|
|
133
145
|
type: this.getTypeDefinition(child),
|
|
134
146
|
};
|
|
@@ -216,6 +228,7 @@ export class SkyDocsTypeDocAdapterService {
|
|
|
216
228
|
name: this.getPropertyName(child),
|
|
217
229
|
type: this.getTypeDefinition(child),
|
|
218
230
|
isStatic: !!child.flags?.isStatic,
|
|
231
|
+
isPreview: false,
|
|
219
232
|
parentName: entry.name,
|
|
220
233
|
};
|
|
221
234
|
// Comments for methods are stored in a different location.
|
|
@@ -248,6 +261,7 @@ export class SkyDocsTypeDocAdapterService {
|
|
|
248
261
|
}
|
|
249
262
|
const definition = {
|
|
250
263
|
isOptional: tags.extras.required ? false : !!child.flags?.isOptional,
|
|
264
|
+
isPreview: false,
|
|
251
265
|
name: this.getPropertyName(child),
|
|
252
266
|
type: this.getTypeDefinition(child),
|
|
253
267
|
};
|
|
@@ -260,6 +274,7 @@ export class SkyDocsTypeDocAdapterService {
|
|
|
260
274
|
const indexSignature = entry.indexSignature;
|
|
261
275
|
const definition = {
|
|
262
276
|
isOptional: true,
|
|
277
|
+
isPreview: false,
|
|
263
278
|
name: indexSignature.name,
|
|
264
279
|
type: {
|
|
265
280
|
indexSignature: this.getIndexSignatureDefinition(indexSignature),
|
|
@@ -284,6 +299,7 @@ export class SkyDocsTypeDocAdapterService {
|
|
|
284
299
|
return entry.children.map((child) => {
|
|
285
300
|
const definition = {
|
|
286
301
|
name: child.name,
|
|
302
|
+
isPreview: false,
|
|
287
303
|
};
|
|
288
304
|
const tags = this.getCommentTags(child.comment);
|
|
289
305
|
this.applyCommentTagValues(definition, tags);
|
|
@@ -481,6 +497,9 @@ export class SkyDocsTypeDocAdapterService {
|
|
|
481
497
|
.trim(),
|
|
482
498
|
});
|
|
483
499
|
break;
|
|
500
|
+
case '@preview':
|
|
501
|
+
extras['preview'] = true;
|
|
502
|
+
break;
|
|
484
503
|
case '@required':
|
|
485
504
|
extras['required'] = true;
|
|
486
505
|
break;
|
|
@@ -538,6 +557,9 @@ export class SkyDocsTypeDocAdapterService {
|
|
|
538
557
|
if (tags.description) {
|
|
539
558
|
definition.description = tags.description;
|
|
540
559
|
}
|
|
560
|
+
if (tags.extras?.preview) {
|
|
561
|
+
definition.isPreview = tags.extras?.preview;
|
|
562
|
+
}
|
|
541
563
|
}
|
|
542
564
|
getDecorator(child) {
|
|
543
565
|
const name = child.decorators && child.decorators[0] && child.decorators[0].name;
|
|
@@ -581,4 +603,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
|
581
603
|
}], ctorParameters: () => [{ type: i1.SkyDocsTypeDefinitionsProvider, decorators: [{
|
|
582
604
|
type: Optional
|
|
583
605
|
}] }] });
|
|
584
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRvYy1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2NzLXRvb2xzL3NyYy9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvdHlwZWRvYy1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFzQ3JELE9BQU8sRUFJTCxXQUFXLEdBS1osTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRXJDOztHQUVHO0FBSUgsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxZQUNzQix1QkFBd0Q7UUFBeEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFpQztJQUMzRSxDQUFDO0lBRUcsaUJBQWlCLENBQUMsS0FBbUI7UUFDMUMsTUFBTSxVQUFVLEdBQTJCO1lBQ3pDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNqQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7U0FDakIsQ0FBQztRQUVGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQixVQUFVLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUMvQixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFD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QUFVLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRSxpREFBaUQ7UUFDakQsd0JBQXdCO1FBQ3hCLE9BQU8sVUFBVSxFQUFFLFNBQVMsRUFBRSxtQkFBbUI7WUFDL0MsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDbEUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVPLGVBQWUsQ0FDckIsS0FBd0IsRUFDeEIsSUFBd0I7UUFFeEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzNCLENBQUM7UUFFRCxvRkFBb0Y7UUFDcEYsMkVBQTJFO1FBQzNFLHlEQUF5RDtRQUN6RCxJQUFJLEtBQUssQ0FBQyxZQUFZLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDakMsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUM7SUFDNUIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFtQjtRQUNyQyxPQUFPLENBQ0wsS0FBSyxDQUFDLFFBQVE7WUFDZCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDbkQsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDOzhHQTN3QlUsNEJBQTRCO2tIQUE1Qiw0QkFBNEIsY0FGM0IsS0FBSzs7MkZBRU4sNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs7MEJBR0ksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreURvY3NDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbiB9IGZyb20gJy4vY2FsbC1zaWduYXR1cmUtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NDbGFzc0RlZmluaXRpb24gfSBmcm9tICcuL2NsYXNzLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzQ2xhc3NQcm9wZXJ0eURlZmluaXRpb24gfSBmcm9tICcuL3Byb3BlcnR5LWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzQ29tbWVudFRhZ3MgfSBmcm9tICcuL2NvbW1lbnQtdGFncyc7XG5cbmltcG9ydCB7IFNreURvY3NEaXJlY3RpdmVEZWZpbml0aW9uIH0gZnJvbSAnLi9kaXJlY3RpdmUtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NFbnVtZXJhdGlvbkRlZmluaXRpb24gfSBmcm9tICcuL2VudW1lcmF0aW9uLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzRW51bWVyYXRpb25NZW1iZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9lbnVtZXJhdGlvbi1tZW1iZXItZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NJbmRleFNpZ25hdHVyZURlZmluaXRpb24gfSBmcm9tICcuL2luZGV4LXNpZ25hdHVyZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc0ludGVyZmFjZURlZmluaXRpb24gfSBmcm9tICcuL2ludGVyZmFjZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc0ludGVyZmFjZVByb3BlcnR5RGVmaW5pdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlLXByb3BlcnR5LWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzQ2xhc3NNZXRob2REZWZpbml0aW9uIH0gZnJvbSAnLi9tZXRob2QtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9wYXJhbWV0ZXItZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NQaXBlRGVmaW5pdGlvbiB9IGZyb20gJy4vcGlwZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc1Byb3BlcnR5RGVjb3JhdG9yRGVmaW5pdGlvbiB9IGZyb20gJy4vcHJvcGVydHktZGVjb3JhdG9yJztcblxuaW1wb3J0IHsgU2t5RG9jc1R5cGVBbGlhc0RlZmluaXRpb24gfSBmcm9tICcuL3R5cGUtYWxpYXMtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NUeXBlRGVmaW5pdGlvbiB9IGZyb20gJy4vdHlwZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc1R5cGVEZWZpbml0aW9uc1Byb3ZpZGVyIH0gZnJvbSAnLi90eXBlLWRlZmluaXRpb25zLXByb3ZpZGVyJztcblxuaW1wb3J0IHsgU2t5RG9jc1R5cGVQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi90eXBlLXBhcmFtZXRlci1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgVHlwZURvY0NvbW1lbnQsXG4gIFR5cGVEb2NFbnRyeSxcbiAgVHlwZURvY0VudHJ5Q2hpbGQsXG4gIFR5cGVEb2NLaW5kLFxuICBUeXBlRG9jUGFyYW1ldGVyLFxuICBUeXBlRG9jU2lnbmF0dXJlLFxuICBUeXBlRG9jVHlwZSxcbiAgVHlwZURvY1R5cGVQYXJhbWV0ZXIsXG59IGZyb20gJy4vdHlwZWRvYy10eXBlcyc7XG5cbmltcG9ydCBvcmRlckJ5IGZyb20gJ2xvZGFzaC5vcmRlcmJ5JztcblxuLyoqXG4gKiBDb252ZXJ0cyBUeXBlRG9jIHR5cGVzIGludG8gU0tZIFVYIGRvY3MtdG9vbHMgdHlwZXMsIHRvIGJlIHN1cHBsaWVkIHRvIHRoZSB2YXJpb3VzIGRlZmluaXRpb25zIGNvbXBvbmVudHMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ2FueScsXG59KVxuZXhwb3J0IGNsYXNzIFNreURvY3NUeXBlRG9jQWRhcHRlclNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHR5cGVEZWZpbml0aW9uc1Byb3ZpZGVyPzogU2t5RG9jc1R5cGVEZWZpbml0aW9uc1Byb3ZpZGVyXG4gICkge31cblxuICBwdWJsaWMgdG9DbGFzc0RlZmluaXRpb24oZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NDbGFzc0RlZmluaXRpb24ge1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NDbGFzc0RlZmluaXRpb24gPSB7XG4gICAgICBhbmNob3JJZDogdGhpcy5nZXRBbmNob3JJZChlbnRyeSksXG4gICAgICBuYW1lOiBlbnRyeS5uYW1lLFxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhlbnRyeS5jb21tZW50KTtcbiAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgIGNvbnN0IG1ldGhvZHMgPSB0aGlzLmdldENsYXNzTWV0aG9kcyhlbnRyeSk7XG4gICAgaWYgKG1ldGhvZHMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLm1ldGhvZHMgPSBtZXRob2RzO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmdldENsYXNzUHJvcGVydGllcyhlbnRyeSk7XG4gICAgaWYgKHByb3BlcnRpZXMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHVibGljIHRvRGlyZWN0aXZlRGVmaW5pdGlvbihcbiAgICBlbnRyeTogVHlwZURvY0VudHJ5XG4gICk6IFNreURvY3NEaXJlY3RpdmVEZWZpbml0aW9uIHtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzRGlyZWN0aXZlRGVmaW5pdGlvbiA9IHtcbiAgICAgIGFuY2hvcklkOiB0aGlzLmdldEFuY2hvcklkKGVudHJ5KSxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICBzZWxlY3RvcjogdGhpcy5nZXRTZWxlY3RvcihlbnRyeSksXG4gICAgfTtcblxuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGVudHJ5LmNvbW1lbnQpO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgY29uc3QgcHJvcGVydGllcyA9IHRoaXMuZ2V0Q2xhc3NQcm9wZXJ0aWVzKGVudHJ5KTtcblxuICAgIGNvbnN0IGV2ZW50UHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgKHApID0+IHAuZGVjb3JhdG9yPy5uYW1lID09PSAnT3V0cHV0J1xuICAgICk7XG4gICAgaWYgKGV2ZW50UHJvcGVydGllcy5sZW5ndGgpIHtcbiAgICAgIGRlZmluaXRpb24uZXZlbnRQcm9wZXJ0aWVzID0gZXZlbnRQcm9wZXJ0aWVzO1xuICAgIH1cblxuICAgIGNvbnN0IGlucHV0UHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgKHApID0+IHAuZGVjb3JhdG9yPy5uYW1lID09PSAnSW5wdXQnXG4gICAgKTtcbiAgICBpZiAoaW5wdXRQcm9wZXJ0aWVzLmxlbmd0aCkge1xuICAgICAgZGVmaW5pdGlvbi5pbnB1dFByb3BlcnRpZXMgPSBpbnB1dFByb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwdWJsaWMgdG9FbnVtZXJhdGlvbkRlZmluaXRpb24oXG4gICAgZW50cnk6IFR5cGVEb2NFbnRyeVxuICApOiBTa3lEb2NzRW51bWVyYXRpb25EZWZpbml0aW9uIHtcbiAgICBjb25zdCBtZW1iZXJzID0gdGhpcy5nZXRFbnVtZXJhdGlvbk1lbWJlcnMoZW50cnkpO1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NFbnVtZXJhdGlvbkRlZmluaXRpb24gPSB7XG4gICAgICBhbmNob3JJZDogdGhpcy5nZXRBbmNob3JJZChlbnRyeSksXG4gICAgICBtZW1iZXJzLFxuICAgICAgbmFtZTogZW50cnkubmFtZSxcbiAgICB9O1xuXG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoZW50cnkuY29tbWVudCk7XG4gICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB0b0ludGVyZmFjZURlZmluaXRpb24oXG4gICAgZW50cnk6IFR5cGVEb2NFbnRyeVxuICApOiBTa3lEb2NzSW50ZXJmYWNlRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IHRoaXMuZ2V0SW50ZXJmYWNlUHJvcGVydGllcyhlbnRyeSk7XG4gICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0ludGVyZmFjZURlZmluaXRpb24gPSB7XG4gICAgICBhbmNob3JJZDogdGhpcy5nZXRBbmNob3JJZChlbnRyeSksXG4gICAgICBuYW1lOiBlbnRyeS5uYW1lLFxuICAgICAgcHJvcGVydGllcyxcbiAgICB9O1xuXG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoZW50cnkuY29tbWVudCk7XG4gICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICBjb25zdCB0eXBlUGFyYW1ldGVycyA9IHRoaXMuZ2V0VHlwZVBhcmFtZXRlckRlZmluaXRpb25zKFxuICAgICAgZW50cnkudHlwZVBhcmFtZXRlcnNcbiAgICApO1xuICAgIGlmICh0eXBlUGFyYW1ldGVycy5sZW5ndGgpIHtcbiAgICAgIGRlZmluaXRpb24udHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVycztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB0b1BpcGVEZWZpbml0aW9uKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBTa3lEb2NzUGlwZURlZmluaXRpb24ge1xuICAgIGNvbnN0IG1ldGhvZHMgPSB0aGlzLmdldENsYXNzTWV0aG9kcyhlbnRyeSk7XG4gICAgY29uc3QgdHJhbnNmb3JtTWV0aG9kID0gbWV0aG9kcy5maW5kKChtKSA9PiBtLm5hbWUgPT09ICd0cmFuc2Zvcm0nKTtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzUGlwZURlZmluaXRpb24gPSB7XG4gICAgICBhbmNob3JJZDogdGhpcy5nZXRBbmNob3JJZChlbnRyeSksXG4gICAgICBuYW1lOiBlbnRyeS5uYW1lLFxuICAgICAgdHJhbnNmb3JtTWV0aG9kLFxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhlbnRyeS5jb21tZW50KTtcbiAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHVibGljIHRvVHlwZUFsaWFzRGVmaW5pdGlvbihcbiAgICBlbnRyeTogVHlwZURvY0VudHJ5XG4gICk6IFNreURvY3NUeXBlQWxpYXNEZWZpbml0aW9uIHtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzVHlwZUFsaWFzRGVmaW5pdGlvbiA9IHtcbiAgICAgIGFuY2hvcklkOiB0aGlzLmdldEFuY2hvcklkKGVudHJ5KSxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHtcbiAgICAgICAgY29tbWVudDogZW50cnkuY29tbWVudCxcbiAgICAgICAgdHlwZTogZW50cnkudHlwZSxcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhcbiAgICAgIGVudHJ5LnR5cGUuZGVjbGFyYXRpb24/LnNpZ25hdHVyZXNcbiAgICAgICAgPyBlbnRyeS50eXBlLmRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0uY29tbWVudFxuICAgICAgICA6IGVudHJ5LmNvbW1lbnRcbiAgICApO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgY29uc3QgdHlwZVBhcmFtZXRlcnMgPSB0aGlzLmdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhcbiAgICAgIGVudHJ5LnR5cGVQYXJhbWV0ZXJzXG4gICAgKTtcbiAgICBpZiAodHlwZVBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLnR5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwcml2YXRlIGdldFNlbGVjdG9yKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRlY29yYXRvclNvdXJjZSA9IGVudHJ5LmRlY29yYXRvcnNbMF0uYXJndW1lbnRzLm9iajtcbiAgICByZXR1cm4gZGVjb3JhdG9yU291cmNlLmluZGV4T2YoJ3NlbGVjdG9yOiBgJykgPiAtMVxuICAgICAgPyBkZWNvcmF0b3JTb3VyY2VcbiAgICAgICAgICAuc3BsaXQoJ3NlbGVjdG9yOiBgJylbMV1cbiAgICAgICAgICAuc3BsaXQoJ2AnKVswXVxuICAgICAgICAgIC5yZXBsYWNlKC9cXHNcXHMrL2csICcgJylcbiAgICAgIDogZGVjb3JhdG9yU291cmNlLnNwbGl0KFwic2VsZWN0b3I6ICdcIilbMV0uc3BsaXQoXCInXCIpWzBdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDbGFzc1Byb3BlcnRpZXMoXG4gICAgZW50cnk6IFR5cGVEb2NFbnRyeVxuICApOiBTa3lEb2NzQ2xhc3NQcm9wZXJ0eURlZmluaXRpb25bXSB7XG4gICAgaWYgKCFlbnRyeS5jaGlsZHJlbikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmluaXRpb25zID0gZW50cnkuY2hpbGRyZW5cbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChjaGlsZCkgPT5cbiAgICAgICAgICAvLyBXZSBvbmx5IHdhbnQgcHJvcGVydGllcyAoYm90aCB3aXRoIG9yIHdpdGhvdXQgYSBnZXR0ZXIvc2V0dGVyKVxuICAgICAgICAgIGNoaWxkLmtpbmQgPT09IFR5cGVEb2NLaW5kLlByb3BlcnR5IHx8XG4gICAgICAgICAgY2hpbGQua2luZCA9PT0gVHlwZURvY0tpbmQuQWNjZXNzb3JcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChjaGlsZCkgPT5cbiAgICAgICAgICAvLyBXZSBvbmx5IHdhbnQgYWNjZXNzb3JzIHRoYXQgZG9uJ3QgaGF2ZSBhIHNldHRlciBpZiB0aGV5IGFyZSBub3QgaW5wdXRzXG4gICAgICAgICAgY2hpbGQua2luZCAhPT0gVHlwZURvY0tpbmQuQWNjZXNzb3IgfHxcbiAgICAgICAgICBjaGlsZC5zZXRTaWduYXR1cmUgfHxcbiAgICAgICAgICB0aGlzLmdldERlY29yYXRvcihjaGlsZCk/Lm5hbWUgIT09ICdJbnB1dCdcbiAgICAgIClcbiAgICAgIC5tYXAoKGNoaWxkKSA9PiB7XG4gICAgICAgIGxldCBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NQcm9wZXJ0eURlZmluaXRpb24gPSB7XG4gICAgICAgICAgaXNPcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgICBuYW1lOiB0aGlzLmdldFByb3BlcnR5TmFtZShjaGlsZCksXG4gICAgICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjaGlsZCksXG4gICAgICAgIH07XG4gICAgICAgIGxldCBkZWZhdWx0VmFsdWU6IHN0cmluZztcblxuICAgICAgICAvKiBFbnN1cmUgd2UgYXJlIHByb3Blcmx5IGNhcHR1cmluZyBkZWZpbml0aW9ucyB3aGljaCB1c2UgYSBnZXR0ZXIvc2V0dGVyLiBGaW5hbCBjaGVjayBpcyBhIHNhbml0eSBjaGVjayAqL1xuICAgICAgICBpZiAoXG4gICAgICAgICAgY2hpbGQua2luZCA9PT0gVHlwZURvY0tpbmQuQWNjZXNzb3IgJiZcbiAgICAgICAgICAhY2hpbGQuY29tbWVudD8uc3VtbWFyeVxuICAgICAgICAgICAgPy5tYXAoKGl0ZW0pID0+IGl0ZW0udGV4dClcbiAgICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICAgICAgLnRyaW0oKSAmJlxuICAgICAgICAgIChjaGlsZC5zZXRTaWduYXR1cmUgfHwgY2hpbGQuZ2V0U2lnbmF0dXJlKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBtYWluVGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoY2hpbGQuY29tbWVudCk7XG5cbiAgICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCBtYWluVGFncyk7XG5cbiAgICAgICAgICBpZiAoY2hpbGQuZ2V0U2lnbmF0dXJlKSB7XG4gICAgICAgICAgICBjb25zdCBnZXRUYWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5nZXRTaWduYXR1cmUuY29tbWVudCk7XG5cbiAgICAgICAgICAgIGRlZmluaXRpb24uaXNPcHRpb25hbCA9ICFnZXRUYWdzLmV4dHJhcy5yZXF1aXJlZDtcblxuICAgICAgICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgZ2V0VGFncyk7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSB0aGlzLmdldERlZmF1bHRWYWx1ZShjaGlsZCwgZ2V0VGFncyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGNoaWxkLnNldFNpZ25hdHVyZSkge1xuICAgICAgICAgICAgY29uc3Qgc2V0VGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoY2hpbGQuc2V0U2lnbmF0dXJlLmNvbW1lbnQpO1xuXG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCBzZXRUYWdzKTtcblxuICAgICAgICAgICAgZGVmaW5pdGlvbi5pc09wdGlvbmFsID1cbiAgICAgICAgICAgICAgZGVmaW5pdGlvbi5pc09wdGlvbmFsICYmICFzZXRUYWdzLmV4dHJhcy5yZXF1aXJlZDtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZSB8fCB0aGlzLmdldERlZmF1bHRWYWx1ZShjaGlsZCwgc2V0VGFncyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlZmluaXRpb24uaXNPcHRpb25hbCA9ICFtYWluVGFncy5leHRyYXMucmVxdWlyZWQ7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSB0aGlzLmdldERlZmF1bHRWYWx1ZShjaGlsZCwgbWFpblRhZ3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgdGFnczogU2t5RG9jc0NvbW1lbnRUYWdzIHwgdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGNoaWxkLmtpbmQgPT09IFR5cGVEb2NLaW5kLlByb3BlcnR5ICYmXG4gICAgICAgICAgICAhY2hpbGQuY29tbWVudD8uc3VtbWFyeVxuICAgICAgICAgICAgICA/Lm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0KVxuICAgICAgICAgICAgICAuam9pbignJylcbiAgICAgICAgICAgICAgLnRyaW0oKSAmJlxuICAgICAgICAgICAgY2hpbGQudHlwZS5kZWNsYXJhdGlvbj8uc2lnbmF0dXJlcz8ubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgY2hpbGQudHlwZS5kZWNsYXJhdGlvbi5zaWduYXR1cmVzWzBdLmNvbW1lbnRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKFxuICAgICAgICAgICAgICBjaGlsZC50eXBlLmRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0uY29tbWVudFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgZGVmaW5pdGlvbi5pc09wdGlvbmFsID0gIXRhZ3MuZXh0cmFzLnJlcXVpcmVkO1xuICAgICAgICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoY2hpbGQuY29tbWVudCk7XG5cbiAgICAgICAgICBkZWZpbml0aW9uLmlzT3B0aW9uYWwgPVxuICAgICAgICAgICAgZGVmaW5pdGlvbi5pc09wdGlvbmFsICYmICF0YWdzLmV4dHJhcy5yZXF1aXJlZDtcblxuICAgICAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgICAgICAgZGVmYXVsdFZhbHVlID0gdGhpcy5nZXREZWZhdWx0VmFsdWUoY2hpbGQsIHRhZ3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICAgIGRlZmluaXRpb24uZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVjb3JhdG9yID0gdGhpcy5nZXREZWNvcmF0b3IoY2hpbGQpO1xuICAgICAgICBpZiAoZGVjb3JhdG9yKSB7XG4gICAgICAgICAgZGVmaW5pdGlvbi5kZWNvcmF0b3IgPSBkZWNvcmF0b3I7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWRlZmluaXRpb24uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICBjb25zdCBjb25zdHJ1Y3RvciA9IGVudHJ5LmNoaWxkcmVuLmZpbmQoXG4gICAgICAgICAgICAoY2hpbGQpID0+IGNoaWxkLmtpbmQgPT09IFR5cGVEb2NLaW5kLkNvbnN0cnVjdG9yXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoY29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgIGNvbnN0IHNpZ25hdHVyZSA9IGNvbnN0cnVjdG9yLnNpZ25hdHVyZXMuZmluZChcbiAgICAgICAgICAgICAgKHNpZ25hdHVyZSkgPT4gc2lnbmF0dXJlLmtpbmQgPT09IFR5cGVEb2NLaW5kLkNvbnN0cnVjdG9yU2lnbmF0dXJlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogU2FuaXR5IGNoZWNrICovXG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKHNpZ25hdHVyZSkge1xuICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1BhcmFtID0gc2lnbmF0dXJlLnBhcmFtZXRlcnM/LmZpbmQoXG4gICAgICAgICAgICAgICAgKHBhcmFtZXRlcikgPT4gcGFyYW1ldGVyLm5hbWUgPT09IGNoaWxkLm5hbWVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKG1hdGNoaW5nUGFyYW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1BhcmFtVGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoXG4gICAgICAgICAgICAgICAgICBtYXRjaGluZ1BhcmFtLmNvbW1lbnRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIG1hdGNoaW5nUGFyYW1UYWdzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gb3JkZXJCeShkZWZpbml0aW9ucywgWydpc09wdGlvbmFsJywgJ25hbWUnXSwgWydhc2MnLCAnYXNjJ10pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDbGFzc01ldGhvZHMoZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NDbGFzc01ldGhvZERlZmluaXRpb25bXSB7XG4gICAgaWYgKCFlbnRyeS5jaGlsZHJlbikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGhvZHMgPSBlbnRyeS5jaGlsZHJlblxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGNoaWxkKSA9PlxuICAgICAgICAgIGNoaWxkLmtpbmQgPT09IFR5cGVEb2NLaW5kLk1ldGhvZCAmJiAvXm5nLy50ZXN0KGNoaWxkLm5hbWUpID09PSBmYWxzZVxuICAgICAgKVxuICAgICAgLm1hcCgoY2hpbGQpID0+IHtcbiAgICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0NsYXNzTWV0aG9kRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICBuYW1lOiB0aGlzLmdldFByb3BlcnR5TmFtZShjaGlsZCksXG4gICAgICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjaGlsZCksXG4gICAgICAgICAgaXNTdGF0aWM6ICEhY2hpbGQuZmxhZ3M/LmlzU3RhdGljLFxuICAgICAgICAgIHBhcmVudE5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQ29tbWVudHMgZm9yIG1ldGhvZHMgYXJlIHN0b3JlZCBpbiBhIGRpZmZlcmVudCBsb2NhdGlvbi5cbiAgICAgICAgY29uc3QgY29tbWVudCA9IGNoaWxkLnNpZ25hdHVyZXNbMF0uY29tbWVudDtcbiAgICAgICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoY29tbWVudCk7XG4gICAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgICAgIGNvbnN0IHR5cGVQYXJhbWV0ZXJzID0gdGhpcy5nZXRUeXBlUGFyYW1ldGVyRGVmaW5pdGlvbnMoXG4gICAgICAgICAgY2hpbGQuc2lnbmF0dXJlc1swXS50eXBlUGFyYW1ldGVyc1xuICAgICAgICApO1xuICAgICAgICBpZiAodHlwZVBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgZGVmaW5pdGlvbi50eXBlUGFyYW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb247XG4gICAgICB9KTtcblxuICAgIHJldHVybiBvcmRlckJ5KG1ldGhvZHMsIFsnbmFtZSddLCBbJ2FzYyddKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW50ZXJmYWNlUHJvcGVydGllcyhcbiAgICBlbnRyeTogVHlwZURvY0VudHJ5XG4gICk6IFNreURvY3NJbnRlcmZhY2VQcm9wZXJ0eURlZmluaXRpb25bXSB7XG4gICAgaWYgKCFlbnRyeS5jaGlsZHJlbiAmJiAhZW50cnkuaW5kZXhTaWduYXR1cmUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWZpbml0aW9ucyA9XG4gICAgICBlbnRyeS5jaGlsZHJlbj8ubWFwKChjaGlsZCkgPT4ge1xuICAgICAgICBsZXQgdGFnczogU2t5RG9jc0NvbW1lbnRUYWdzIHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAoY2hpbGQua2luZCA9PT0gVHlwZURvY0tpbmQuTWV0aG9kICYmIGNoaWxkLnNpZ25hdHVyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLnNpZ25hdHVyZXNbMF0uY29tbWVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgY2hpbGQudHlwZS50eXBlID09PSAncmVmbGVjdGlvbicgJiZcbiAgICAgICAgICBjaGlsZC50eXBlPy5kZWNsYXJhdGlvbj8uc2lnbmF0dXJlcz8ubGVuZ3RoID4gMFxuICAgICAgICApIHtcbiAgICAgICAgICB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhcbiAgICAgICAgICAgIGNoaWxkLnR5cGUuZGVjbGFyYXRpb24uc2lnbmF0dXJlc1swXS5jb21tZW50XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzSW50ZXJmYWNlUHJvcGVydHlEZWZpbml0aW9uID0ge1xuICAgICAgICAgIGlzT3B0aW9uYWw6IHRhZ3MuZXh0cmFzLnJlcXVpcmVkID8gZmFsc2UgOiAhIWNoaWxkLmZsYWdzPy5pc09wdGlvbmFsLFxuICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0UHJvcGVydHlOYW1lKGNoaWxkKSxcbiAgICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkKSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgICAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgICAgIH0pIHx8IFtdO1xuXG4gICAgY29uc3Qgc29ydGVkID0gb3JkZXJCeShkZWZpbml0aW9ucywgWydpc09wdGlvbmFsJywgJ25hbWUnXSwgWydhc2MnLCAnYXNjJ10pO1xuXG4gICAgLy8gQWRkIGFueSBpbmRleCBzaWduYXR1cmVzLCBlLmcuIGBbXzogc3RyaW5nXTogYW55YFxuICAgIGlmIChlbnRyeS5pbmRleFNpZ25hdHVyZSkge1xuICAgICAgY29uc3QgaW5kZXhTaWduYXR1cmUgPSBlbnRyeS5pbmRleFNpZ25hdHVyZTtcbiAgICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NJbnRlcmZhY2VQcm9wZXJ0eURlZmluaXRpb24gPSB7XG4gICAgICAgIGlzT3B0aW9uYWw6IHRydWUsXG4gICAgICAgIG5hbWU6IGluZGV4U2lnbmF0dXJlLm5hbWUsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICBpbmRleFNpZ25hdHVyZTogdGhpcy5nZXRJbmRleFNpZ25hdHVyZURlZmluaXRpb24oaW5kZXhTaWduYXR1cmUpLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgLy8gTmV3IHZlcnNpb25zIG9mIHR5cGVkb2MgZG8gbm90IHNlZW0gdG8gYWRkIHRoZSBjb21tZW50IGZvciBpbmRleCBzaWduYXR1cmVzIC0gdGhlIGVsc2Ugc3RhdGVtZW50IGlzIGEgZGVmYXVsdCBiYXNlZCBvbiB0aGUgb25seSBpbmRleCBzaWduYXR1cmUgd2UgaGFkIGluIFNlcHRlbWJlciAyMDIzIChTa3lTZWxlY3RGaWVsZCkuXG4gICAgICBpZiAoaW5kZXhTaWduYXR1cmUuY29tbWVudCkge1xuICAgICAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhpbmRleFNpZ25hdHVyZS5jb21tZW50KTtcbiAgICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWZpbml0aW9uLmRlc2NyaXB0aW9uID0gJ0FsbCBvdGhlciBwcm9wZXJ0aWVzIGZvciBhbiBpdGVtLic7XG4gICAgICB9XG4gICAgICBzb3J0ZWQucHVzaChkZWZpbml0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc29ydGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFbnVtZXJhdGlvbk1lbWJlcnMoXG4gICAgZW50cnk6IFR5cGVEb2NFbnRyeVxuICApOiBTa3lEb2NzRW51bWVyYXRpb25NZW1iZXJEZWZpbml0aW9uW10ge1xuICAgIGlmICghZW50cnkuY2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gZW50cnkuY2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0VudW1lcmF0aW9uTWVtYmVyRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgbmFtZTogY2hpbGQubmFtZSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpO1xuICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUeXBlRGVmaW5pdGlvbihjaGlsZDogVHlwZURvY0VudHJ5Q2hpbGQpOiBTa3lEb2NzVHlwZURlZmluaXRpb24ge1xuICAgIGxldCBkZWZpbml0aW9uOiBTa3lEb2NzVHlwZURlZmluaXRpb247XG5cbiAgICBjb25zdCBraW5kID0gY2hpbGQua2luZDtcbiAgICBzd2l0Y2ggKGtpbmQpIHtcbiAgICAgIGNhc2UgVHlwZURvY0tpbmQuQWNjZXNzb3I6XG4gICAgICAgIGlmIChjaGlsZC5zZXRTaWduYXR1cmUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjaGlsZC5zZXRTaWduYXR1cmUucGFyYW1ldGVyc1swXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHlwZURlZmluaXRpb24oY2hpbGQuZ2V0U2lnbmF0dXJlKTtcblxuICAgICAgY2FzZSBUeXBlRG9jS2luZC5NZXRob2Q6XG4gICAgICAgIGRlZmluaXRpb24gPSB7XG4gICAgICAgICAgY2FsbFNpZ25hdHVyZTogdGhpcy5nZXRDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbihcbiAgICAgICAgICAgIGNoaWxkLnNpZ25hdHVyZXNbMF0sXG4gICAgICAgICAgICB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpXG4gICAgICAgICAgKSxcbiAgICAgICAgICBuYW1lOiBjaGlsZC5zaWduYXR1cmVzWzBdLm5hbWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb247XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGxldCBuYW1lOiBzdHJpbmcgPVxuICAgICAgICAgIGNoaWxkLnR5cGUubmFtZSB8fCBjaGlsZC50eXBlLmVsZW1lbnRUeXBlPy5uYW1lIHx8IGNoaWxkLnR5cGUudmFsdWU7XG5cbiAgICAgICAgZGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICB0eXBlOiBjaGlsZC50eXBlLnR5cGUsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLm5hbWUgPSBuYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVW5pb24/XG4gICAgICAgIGlmIChjaGlsZC50eXBlLnR5cGVzKSB7XG4gICAgICAgICAgZGVmaW5pdGlvbi51bmlvblR5cGVzID0gY2hpbGQudHlwZS50eXBlcy5tYXAoKHQpID0+XG4gICAgICAgICAgICB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHsgdHlwZTogdCB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb252ZXJ0IHJlZmxlY3Rpb24gdHlwZXMuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGlsZC50eXBlLnR5cGUgPT09ICdyZWZsZWN0aW9uJyB8fFxuICAgICAgICAgIGNoaWxkLnR5cGUuZWxlbWVudFR5cGU/LnR5cGUgPT09ICdyZWZsZWN0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBkZWNsYXJhdGlvbiA9XG4gICAgICAgICAgICBjaGlsZC50eXBlLmVsZW1lbnRUeXBlPy50eXBlID09PSAncmVmbGVjdGlvbidcbiAgICAgICAgICAgICAgPyBjaGlsZC50eXBlLmVsZW1lbnRUeXBlLmRlY2xhcmF0aW9uXG4gICAgICAgICAgICAgIDogY2hpbGQudHlwZS5kZWNsYXJhdGlvbjtcbiAgICAgICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKGRlY2xhcmF0aW9uKSB7XG4gICAgICAgICAgICBpZiAoZGVjbGFyYXRpb24uc2lnbmF0dXJlcykge1xuICAgICAgICAgICAgICBkZWZpbml0aW9uLmNhbGxTaWduYXR1cmUgPSB0aGlzLmdldENhbGxTaWduYXR1cmVEZWZpbml0aW9uKFxuICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0sXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkZWNsYXJhdGlvbi5pbmRleFNpZ25hdHVyZSkge1xuICAgICAgICAgICAgICBjb25zdCBpbmRleFNpZ25hdHVyZSA9IGRlY2xhcmF0aW9uLmluZGV4U2lnbmF0dXJlO1xuICAgICAgICAgICAgICBkZWZpbml0aW9uLmluZGV4U2lnbmF0dXJlID1cbiAgICAgICAgICAgICAgICB0aGlzLmdldEluZGV4U2lnbmF0dXJlRGVmaW5pdGlvbihpbmRleFNpZ25hdHVyZSk7XG4gICAgICAgICAgICB9IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovIGVsc2UgaWYgKGRlY2xhcmF0aW9uLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIGRlZmluaXRpb24udHlwZUxpdGVyYWwgPSB7XG4gICAgICAgICAgICAgICAgcHJvcGVydGllczogdGhpcy5nZXRJbnRlcmZhY2VQcm9wZXJ0aWVzKHtcbiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBkZWNsYXJhdGlvbi5jaGlsZHJlbixcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hpbGQudHlwZS50eXBlID09PSAndHlwZU9wZXJhdG9yJykge1xuICAgICAgICAgIGRlZmluaXRpb24ubmFtZSA9IGAke2NoaWxkLnR5cGUub3BlcmF0b3J9ICR7Y2hpbGQudHlwZS50YXJnZXQubmFtZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoaWxkLnR5cGUudHlwZUFyZ3VtZW50cykge1xuICAgICAgICAgIGRlZmluaXRpb24udHlwZUFyZ3VtZW50cyA9IHRoaXMuZ2V0VHlwZUFyZ3VtZW50RGVmaW5pdGlvbnMoXG4gICAgICAgICAgICBjaGlsZC50eXBlXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGFyYW1ldGVyRGVmaW5pdGlvbnMoXG4gICAgY2FsbFNpZ25hdHVyZTogVHlwZURvY1NpZ25hdHVyZSxcbiAgICBwYXJlbnRUYWdzOiBTa3lEb2NzQ29tbWVudFRhZ3NcbiAgKTogU2t5RG9jc1BhcmFtZXRlckRlZmluaXRpb25bXSB7XG4gICAgaWYgKCFjYWxsU2lnbmF0dXJlLnBhcmFtZXRlcnMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBTa3lEb2NzUGFyYW1ldGVyRGVmaW5pdGlvbltdID1cbiAgICAgIGNhbGxTaWduYXR1cmUucGFyYW1ldGVycy5tYXAoKHApID0+IHtcbiAgICAgICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0UGFyYW1ldGVyQ29tbWVudFRhZ3MocCwgcGFyZW50VGFncyk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKHAsIHRhZ3MpO1xuICAgICAgICBjb25zdCB0eXBlQXJndW1lbnRzID0gdGhpcy5nZXRUeXBlQXJndW1lbnREZWZpbml0aW9ucyhwLnR5cGUpO1xuXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcjogU2t5RG9jc1BhcmFtZXRlckRlZmluaXRpb24gPSB7XG4gICAgICAgICAgaXNPcHRpb25hbDogISEoZGVmYXVsdFZhbHVlIHx8ICEhcC5mbGFncz8uaXNPcHRpb25hbCksXG4gICAgICAgICAgbmFtZTogcC5uYW1lLFxuICAgICAgICAgIHR5cGU6IHRoaXMuZ2V0VHlwZURlZmluaXRpb24ocCksXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcGFyYW1ldGVyLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0YWdzLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgcGFyYW1ldGVyLmRlc2NyaXB0aW9uID0gdGFncy5kZXNjcmlwdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlQXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgIHBhcmFtZXRlci50eXBlQXJndW1lbnRzID0gdHlwZUFyZ3VtZW50cztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbWV0ZXI7XG4gICAgICB9KTtcbiAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHlwZUFyZ3VtZW50RGVmaW5pdGlvbnMoXG4gICAgdHlwZUNvbmZpZzogVHlwZURvY1R5cGVcbiAgKTogU2t5RG9jc1R5cGVEZWZpbml0aW9uW10ge1xuICAgIGlmICghdHlwZUNvbmZpZyB8fCAhdHlwZUNvbmZpZy50eXBlQXJndW1lbnRzKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVDb25maWcudHlwZUFyZ3VtZW50cy5tYXAoKHR5cGVBcmd1bWVudCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VHlwZURlZmluaXRpb24oeyB0eXBlOiB0eXBlQXJndW1lbnQgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENhbGxTaWduYXR1cmVEZWZpbml0aW9uKFxuICAgIGNhbGxTaWduYXR1cmU6IFR5cGVEb2NTaWduYXR1cmUsXG4gICAgdGFnczogU2t5RG9jc0NvbW1lbnRUYWdzXG4gICk6IFNreURvY3NDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0NhbGxTaWduYXR1cmVEZWZpbml0aW9uID0ge1xuICAgICAgcmV0dXJuVHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjYWxsU2lnbmF0dXJlKSxcbiAgICB9O1xuXG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHRoaXMuZ2V0UGFyYW1ldGVyRGVmaW5pdGlvbnMoY2FsbFNpZ25hdHVyZSwgdGFncyk7XG4gICAgaWYgKHBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLnBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRleFNpZ25hdHVyZURlZmluaXRpb24oXG4gICAgc2lnbmF0dXJlOiBUeXBlRG9jU2lnbmF0dXJlXG4gICk6IFNreURvY3NJbmRleFNpZ25hdHVyZURlZmluaXRpb24ge1xuICAgIHJldHVybiB7XG4gICAgICBrZXk6IHtcbiAgICAgICAgbmFtZTogc2lnbmF0dXJlLnBhcmFtZXRlcnNbMF0ubmFtZSxcbiAgICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihzaWduYXR1cmUucGFyYW1ldGVyc1swXSksXG4gICAgICB9LFxuICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihzaWduYXR1cmUpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhcbiAgICB0eXBlUGFyYW1ldGVyczogVHlwZURvY1R5cGVQYXJhbWV0ZXJbXVxuICApOiBTa3lEb2NzVHlwZVBhcmFtZXRlckRlZmluaXRpb25bXSB7XG4gICAgaWYgKCF0eXBlUGFyYW1ldGVycykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlUGFyYW1ldGVycy5tYXAoKHR5cGVQYXJhbSkgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc1R5cGVQYXJhbWV0ZXJEZWZpbml0aW9uID0ge1xuICAgICAgICBuYW1lOiB0eXBlUGFyYW0ubmFtZSxcbiAgICAgIH07XG5cbiAgICAgIGlmICh0eXBlUGFyYW0udHlwZSkge1xuICAgICAgICBkZWZpbml0aW9uLnR5cGUgPSB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHtcbiAgICAgICAgICB0eXBlOiB0eXBlUGFyYW0udHlwZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb21tZW50VGFncyhjb21tZW50OiBUeXBlRG9jQ29tbWVudCk6IFNreURvY3NDb21tZW50VGFncyB7XG4gICAgbGV0IGNvZGVFeGFtcGxlOiBzdHJpbmc7XG4gICAgbGV0IGNvZGVFeGFtcGxlTGFuZ3VhZ2U6IHN0cmluZyA9ICdtYXJrdXAnO1xuICAgIGxldCBkZXByZWNhdGlvbldhcm5pbmc6IHN0cmluZztcbiAgICBsZXQgZGVmYXVsdFZhbHVlOiBzdHJpbmc7XG4gICAgbGV0IGRlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJztcblxuICAgIGxldCBwYXJhbWV0ZXJzOiB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIH1bXTtcblxuICAgIGNvbnN0IGV4dHJhczoge1xuICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIH0gPSB7fTtcblxuICAgIGlmIChjb21tZW50KSB7XG4gICAgICBpZiAoY29tbWVudC5ibG9ja1RhZ3MpIHtcbiAgICAgICAgY29tbWVudC5ibG9ja1RhZ3MuZm9yRWFjaCgodGFnKSA9PiB7XG4gICAgICAgICAgc3dpdGNoICh0YWcudGFnKSB7XG4gICAgICAgICAgICBjYXNlICdAZGVwcmVjYXRlZCc6XG4gICAgICAgICAgICAgIGRlcHJlY2F0aW9uV2FybmluZyA9IHRhZy5jb250ZW50XG4gICAgICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0KVxuICAgICAgICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICAgICAgICAgIC50cmltKCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdAZGVmYXVsdCc6XG4gICAgICAgICAgICBjYXNlICdAZGVmYXVsdFZhbHVlJzpcbiAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gdGFnLmNvbnRlbnRcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLnRleHQpXG4gICAgICAgICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgICAgICAgLnRyaW0oKTtcblxuICAgICAgICAgICAgICBpZiAodGFnLmNvbnRlbnRbMF0ua2luZCA9PT0gJ2NvZGUnKSB7XG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlLnNwbGl0KCdgYGAnKVsxXS50cmltKCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2UgPSBkZWZhdWx0VmFsdWUuc3BsaXQoJ1xcbicpWzBdO1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRMYW5ndWFnZSA9PT0gJ21hcmt1cCcgfHxcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRMYW5ndWFnZSA9PT0gJ3R5cGVzY3JpcHQnIHx8XG4gICAgICAgICAgICAgICAgICBkZWZhdWx0TGFuZ3VhZ2UgPT09ICd0cydcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAuc2xpY2UoZGVmYXVsdExhbmd1YWdlLmxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgLnRyaW0oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0BleGFtcGxlJzpcbiAgICAgICAgICAgICAgY29kZUV4YW1wbGUgPSB0YWcuY29udGVudFxuICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0udGV4dClcbiAgICAgICAgICAgICAgICAuam9pbignJylcbiAgICAgICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAgICAgLnNwbGl0KCdgYGAnKVsxXVxuICAgICAgICAgICAgICAgIC50cmltKCk7XG4gICAgICAgICAgICAgIGNvbnN0IGV4YW1wbGVMYW5ndWFnZSA9IGNvZGVFeGFtcGxlLnNwbGl0KCdcXG4nKVswXTtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGV4YW1wbGVMYW5ndWFnZSA9PT0gJ21hcmt1cCcgfHxcbiAgICAgICAgICAgICAgICBleGFtcGxlTGFuZ3VhZ2UgPT09ICd0eXBlc2NyaXB0JyB8fFxuICAgICAgICAgICAgICAgIGV4YW1wbGVMYW5ndWFnZSA9PT0gJ3RzJ1xuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBjb2RlRXhhbXBsZSA9IGNvZGVFeGFtcGxlLnNsaWNlKGV4YW1wbGVMYW5ndWFnZS5sZW5ndGgpLnRyaW0oKTtcbiAgICAgICAgICAgICAgICBjb2RlRXhhbXBsZUxhbmd1YWdlID0gZXhhbXBsZUxhbmd1YWdlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdAcGFyYW0nOlxuICAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycyB8fCBbXTtcbiAgICAgICAgICAgICAgcGFyYW1ldGVycy5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiB0YWcucGFyYW0sXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRhZy5jb250ZW50XG4gICAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLnRleHQpXG4gICAgICAgICAgICAgICAgICAuam9pbignJylcbiAgICAgICAgICAgICAgICAgIC50cmltKCksXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0ByZXF1aXJlZCc6XG4gICAgICAgICAgICAgIGV4dHJhc1sncmVxdWlyZWQnXSA9IHRydWU7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGRlc2NyaXB0aW9uID0gY29tbWVudC5zdW1tYXJ5XG4gICAgICAgID8ubWFwKChpdGVtKSA9PiBpdGVtLnRleHQpXG4gICAgICAgIC5qb2luKCcnKVxuICAgICAgICAudHJpbSgpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjb2RlRXhhbXBsZSxcbiAgICAgIGNvZGVFeGFtcGxlTGFuZ3VhZ2UsXG4gICAgICBkZWZhdWx0VmFsdWUsXG4gICAgICBkZXByZWNhdGlvbldhcm5pbmcsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIGV4dHJhcyxcbiAgICAgIHBhcmFtZXRlcnMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJhbWV0ZXIgZGVzY3JpcHRpb25zIGFyZSBkZXJpdmVkIGZyb20gdGhlIHBhcmVudCdzIChmdW5jdGlvbi9tZXRob2QpIGNvbW1lbnQuXG4gICAqL1xuICBwcml2YXRlIGdldFBhcmFtZXRlckNvbW1lbnRUYWdzKFxuICAgIHBhcmFtZXRlcjogVHlwZURvY1BhcmFtZXRlcixcbiAgICBwYXJlbnRUYWdzOiBTa3lEb2NzQ29tbWVudFRhZ3NcbiAgKTogU2t5RG9jc0NvbW1lbnRUYWdzIHtcbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhwYXJhbWV0ZXIuY29tbWVudCk7XG4gICAgY29uc3QgcGFyYW1UYWdzID0gcGFyZW50VGFncy5wYXJhbWV0ZXJzO1xuICAgIGNvbnN0IHRhZ1BhcmFtID0gcGFyYW1UYWdzXG4gICAgICA/IHBhcmFtVGFncy5maW5kKChwYXJhbSkgPT4gcGFyYW0ubmFtZSA9PT0gcGFyYW1ldGVyLm5hbWUpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmICghdGFnUGFyYW0gfHwgIXRhZ1BhcmFtLmRlc2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm4gdGFncztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGFncyxcbiAgICAgIC4uLntcbiAgICAgICAgZGVzY3JpcHRpb246IHRhZ1BhcmFtLmRlc2NyaXB0aW9uLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgY29tbWVudCB0YWcgKGUuZy4gYEBwYXJhbWApIHZhbHVlcyB0byB0aGUgcHJvdmlkZWQgZGVmaW5pdGlvbiwgaWYgdGhlIHZhbHVlIGlzIGRlZmluZWQuXG4gICAqL1xuICBwcml2YXRlIGFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICBjb2RlRXhhbXBsZT86IHN0cmluZztcbiAgICAgIGNvZGVFeGFtcGxlTGFuZ3VhZ2U/OiBzdHJpbmc7XG4gICAgICBkZXByZWNhdGlvbldhcm5pbmc/OiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICB9LFxuICAgIHRhZ3M6IFNreURvY3NDb21tZW50VGFnc1xuICApOiB2b2lkIHtcbiAgICBpZiAodGFncy5jb2RlRXhhbXBsZSkge1xuICAgICAgZGVmaW5pdGlvbi5jb2RlRXhhbXBsZSA9IHRhZ3MuY29kZUV4YW1wbGU7XG4gICAgICBkZWZpbml0aW9uLmNvZGVFeGFtcGxlTGFuZ3VhZ2UgPSB0YWdzLmNvZGVFeGFtcGxlTGFuZ3VhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRhZ3MuZGVwcmVjYXRpb25XYXJuaW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlZmluaXRpb24uZGVwcmVjYXRpb25XYXJuaW5nID0gdGFncy5kZXByZWNhdGlvbldhcm5pbmc7XG4gICAgfVxuXG4gICAgaWYgKHRhZ3MuZGVzY3JpcHRpb24pIHtcbiAgICAgIGRlZmluaXRpb24uZGVzY3JpcHRpb24gPSB0YWdzLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVjb3JhdG9yKFxuICAgIGNoaWxkOiBUeXBlRG9jRW50cnlDaGlsZFxuICApOiBTa3lEb2NzUHJvcGVydHlEZWNvcmF0b3JEZWZpbml0aW9uIHtcbiAgICBjb25zdCBuYW1lID1cbiAgICAgIGNoaWxkLmRlY29yYXRvcnMgJiYgY2hpbGQuZGVjb3JhdG9yc1swXSAmJiBjaGlsZC5kZWNvcmF0b3JzWzBdLm5hbWU7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIHJldHVybiB7IG5hbWUgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFByb3BlcnR5TmFtZShwcm9wZXJ0eTogVHlwZURvY0VudHJ5Q2hpbGQpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRlY29yYXRvcnMgPSBwcm9wZXJ0eS5kZWNvcmF0b3JzICYmIHByb3BlcnR5LmRlY29yYXRvcnNbMF07XG4gICAgLy8gVXNlIHRoZSBJbnB1dCdzIGJvdW5kIHByb3BlcnR5IG5hbWUsIGlmIGZvdW5kLlxuICAgIC8vIGUuZy4gQElucHV0KCdmb29iYXInKVxuICAgIHJldHVybiBkZWNvcmF0b3JzPy5hcmd1bWVudHM/LmJpbmRpbmdQcm9wZXJ0eU5hbWVcbiAgICAgID8gZGVjb3JhdG9ycy5hcmd1bWVudHMuYmluZGluZ1Byb3BlcnR5TmFtZS5yZXBsYWNlKC8oXFwnfFxcXCIpL2csICcnKVxuICAgICAgOiBwcm9wZXJ0eS5uYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0VmFsdWUoXG4gICAgY2hpbGQ6IFR5cGVEb2NFbnRyeUNoaWxkLFxuICAgIHRhZ3M6IFNreURvY3NDb21tZW50VGFnc1xuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0YWdzLmRlZmF1bHRWYWx1ZSkge1xuICAgICAgcmV0dXJuIHRhZ3MuZGVmYXVsdFZhbHVlO1xuICAgIH1cblxuICAgIC8vIFR5cGVEb2MgdmVyc2lvbiAwLjIwLnggc3RvcHBlZCBhdXRvLWdlbmVyYXRpbmcgaW5pdGlhbGl6ZXJzIGZvciB0aGUgZGVmYXVsdCB2YWx1ZVxuICAgIC8vIChhbmQgcmVwbGFjZWQgdGhlbSB3aXRoIFwiLi4uXCIpIGR1ZSB0byB0aGUgY29tcGxpY2F0ZWQgbG9naWMgaXQgcmVxdWlyZWQuXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vVHlwZVN0cm9uZy90eXBlZG9jL2lzc3Vlcy8xNTUyXG4gICAgaWYgKGNoaWxkLmRlZmF1bHRWYWx1ZSA9PT0gJy4uLicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gY2hpbGQuZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBbmNob3JJZChlbnRyeTogVHlwZURvY0VudHJ5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgZW50cnkuYW5jaG9ySWQgfHxcbiAgICAgIHRoaXMudHlwZURlZmluaXRpb25zUHJvdmlkZXI/LmFuY2hvcklkc1tlbnRyeS5uYW1lXSB8fFxuICAgICAgJydcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
606
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRvYy1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2NzLXRvb2xzL3NyYy9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvdHlwZWRvYy1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFzQ3JELE9BQU8sRUFJTCxXQUFXLEdBS1osTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRXJDOztHQUVHO0FBSUgsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxZQUNzQix1QkFBd0Q7UUFBeEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFpQztJQUMzRSxDQUFDO0lBRUcsaUJBQWlCLENBQUMsS0FBbUI7UUFDMUMsTUFBTSxVQUFVLEdBQTJCO1lBQ3pDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNqQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsS0FBSztTQUMxQixDQUFDO1FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU3QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLFVBQVUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQy9CLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxV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QUM7SUFDSCxDQUFDO0lBRU8sZUFBZSxDQUFDLFFBQTJCO1FBQ2pELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRSxpREFBaUQ7UUFDakQsd0JBQXdCO1FBQ3hCLE9BQU8sVUFBVSxFQUFFLFNBQVMsRUFBRSxtQkFBbUI7WUFDL0MsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDbEUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVPLGVBQWUsQ0FDckIsS0FBd0IsRUFDeEIsSUFBd0I7UUFFeEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzNCLENBQUM7UUFFRCxvRkFBb0Y7UUFDcEYsMkVBQTJFO1FBQzNFLHlEQUF5RDtRQUN6RCxJQUFJLEtBQUssQ0FBQyxZQUFZLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDakMsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUM7SUFDNUIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFtQjtRQUNyQyxPQUFPLENBQ0wsS0FBSyxDQUFDLFFBQVE7WUFDZCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDbkQsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDOzhHQXJ5QlUsNEJBQTRCO2tIQUE1Qiw0QkFBNEIsY0FGM0IsS0FBSzs7MkZBRU4sNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs7MEJBR0ksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreURvY3NDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbiB9IGZyb20gJy4vY2FsbC1zaWduYXR1cmUtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NDbGFzc0RlZmluaXRpb24gfSBmcm9tICcuL2NsYXNzLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzQ2xhc3NQcm9wZXJ0eURlZmluaXRpb24gfSBmcm9tICcuL3Byb3BlcnR5LWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzQ29tbWVudFRhZ3MgfSBmcm9tICcuL2NvbW1lbnQtdGFncyc7XG5cbmltcG9ydCB7IFNreURvY3NEaXJlY3RpdmVEZWZpbml0aW9uIH0gZnJvbSAnLi9kaXJlY3RpdmUtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NFbnVtZXJhdGlvbkRlZmluaXRpb24gfSBmcm9tICcuL2VudW1lcmF0aW9uLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzRW51bWVyYXRpb25NZW1iZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9lbnVtZXJhdGlvbi1tZW1iZXItZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NJbmRleFNpZ25hdHVyZURlZmluaXRpb24gfSBmcm9tICcuL2luZGV4LXNpZ25hdHVyZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc0ludGVyZmFjZURlZmluaXRpb24gfSBmcm9tICcuL2ludGVyZmFjZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc0ludGVyZmFjZVByb3BlcnR5RGVmaW5pdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlLXByb3BlcnR5LWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzQ2xhc3NNZXRob2REZWZpbml0aW9uIH0gZnJvbSAnLi9tZXRob2QtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9wYXJhbWV0ZXItZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NQaXBlRGVmaW5pdGlvbiB9IGZyb20gJy4vcGlwZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc1Byb3BlcnR5RGVjb3JhdG9yRGVmaW5pdGlvbiB9IGZyb20gJy4vcHJvcGVydHktZGVjb3JhdG9yJztcblxuaW1wb3J0IHsgU2t5RG9jc1R5cGVBbGlhc0RlZmluaXRpb24gfSBmcm9tICcuL3R5cGUtYWxpYXMtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NUeXBlRGVmaW5pdGlvbiB9IGZyb20gJy4vdHlwZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc1R5cGVEZWZpbml0aW9uc1Byb3ZpZGVyIH0gZnJvbSAnLi90eXBlLWRlZmluaXRpb25zLXByb3ZpZGVyJztcblxuaW1wb3J0IHsgU2t5RG9jc1R5cGVQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi90eXBlLXBhcmFtZXRlci1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgVHlwZURvY0NvbW1lbnQsXG4gIFR5cGVEb2NFbnRyeSxcbiAgVHlwZURvY0VudHJ5Q2hpbGQsXG4gIFR5cGVEb2NLaW5kLFxuICBUeXBlRG9jUGFyYW1ldGVyLFxuICBUeXBlRG9jU2lnbmF0dXJlLFxuICBUeXBlRG9jVHlwZSxcbiAgVHlwZURvY1R5cGVQYXJhbWV0ZXIsXG59IGZyb20gJy4vdHlwZWRvYy10eXBlcyc7XG5cbmltcG9ydCBvcmRlckJ5IGZyb20gJ2xvZGFzaC5vcmRlcmJ5JztcblxuLyoqXG4gKiBDb252ZXJ0cyBUeXBlRG9jIHR5cGVzIGludG8gU0tZIFVYIGRvY3MtdG9vbHMgdHlwZXMsIHRvIGJlIHN1cHBsaWVkIHRvIHRoZSB2YXJpb3VzIGRlZmluaXRpb25zIGNvbXBvbmVudHMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ2FueScsXG59KVxuZXhwb3J0IGNsYXNzIFNreURvY3NUeXBlRG9jQWRhcHRlclNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHR5cGVEZWZpbml0aW9uc1Byb3ZpZGVyPzogU2t5RG9jc1R5cGVEZWZpbml0aW9uc1Byb3ZpZGVyXG4gICkge31cblxuICBwdWJsaWMgdG9DbGFzc0RlZmluaXRpb24oZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NDbGFzc0RlZmluaXRpb24ge1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NDbGFzc0RlZmluaXRpb24gPSB7XG4gICAgICBhbmNob3JJZDogdGhpcy5nZXRBbmNob3JJZChlbnRyeSksXG4gICAgICBuYW1lOiBlbnRyeS5uYW1lLFxuICAgICAgaGFzUHJldmlld0ZlYXR1cmVzOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoZW50cnkuY29tbWVudCk7XG4gICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICBjb25zdCBtZXRob2RzID0gdGhpcy5nZXRDbGFzc01ldGhvZHMoZW50cnkpO1xuICAgIGlmIChtZXRob2RzLmxlbmd0aCkge1xuICAgICAgZGVmaW5pdGlvbi5tZXRob2RzID0gbWV0aG9kcztcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5nZXRDbGFzc1Byb3BlcnRpZXMoZW50cnkpO1xuICAgIGlmIChwcm9wZXJ0aWVzLmxlbmd0aCkge1xuICAgICAgZGVmaW5pdGlvbi5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICB9XG5cbiAgICBkZWZpbml0aW9uLmhhc1ByZXZpZXdGZWF0dXJlcyA9XG4gICAgICAhIWRlZmluaXRpb24ubWV0aG9kcz8uc29tZSgobWV0aG9kKSA9PiBtZXRob2QuaXNQcmV2aWV3KSB8fFxuICAgICAgISFkZWZpbml0aW9uLnByb3BlcnRpZXM/LnNvbWUoKHByb3BlcnR5KSA9PiBwcm9wZXJ0eS5pc1ByZXZpZXcpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwdWJsaWMgdG9EaXJlY3RpdmVEZWZpbml0aW9uKFxuICAgIGVudHJ5OiBUeXBlRG9jRW50cnlcbiAgKTogU2t5RG9jc0RpcmVjdGl2ZURlZmluaXRpb24ge1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NEaXJlY3RpdmVEZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbmFtZTogZW50cnkubmFtZSxcbiAgICAgIHNlbGVjdG9yOiB0aGlzLmdldFNlbGVjdG9yKGVudHJ5KSxcbiAgICAgIGhhc1ByZXZpZXdGZWF0dXJlczogZmFsc2UsXG4gICAgfTtcblxuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGVudHJ5LmNvbW1lbnQpO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgY29uc3QgcHJvcGVydGllcyA9IHRoaXMuZ2V0Q2xhc3NQcm9wZXJ0aWVzKGVudHJ5KTtcblxuICAgIGNvbnN0IGV2ZW50UHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgKHApID0+IHAuZGVjb3JhdG9yPy5uYW1lID09PSAnT3V0cHV0J1xuICAgICk7XG4gICAgaWYgKGV2ZW50UHJvcGVydGllcy5sZW5ndGgpIHtcbiAgICAgIGRlZmluaXRpb24uZXZlbnRQcm9wZXJ0aWVzID0gZXZlbnRQcm9wZXJ0aWVzO1xuICAgIH1cblxuICAgIGNvbnN0IGlucHV0UHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgKHApID0+IHAuZGVjb3JhdG9yPy5uYW1lID09PSAnSW5wdXQnXG4gICAgKTtcbiAgICBpZiAoaW5wdXRQcm9wZXJ0aWVzLmxlbmd0aCkge1xuICAgICAgZGVmaW5pdGlvbi5pbnB1dFByb3BlcnRpZXMgPSBpbnB1dFByb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgZGVmaW5pdGlvbi5oYXNQcmV2aWV3RmVhdHVyZXMgPVxuICAgICAgISFkZWZpbml0aW9uLmlucHV0UHJvcGVydGllcz8uc29tZSgocHJvcGVydHkpID0+IHByb3BlcnR5LmlzUHJldmlldykgfHxcbiAgICAgICEhZGVmaW5pdGlvbi5ldmVudFByb3BlcnRpZXM/LnNvbWUoKHByb3BlcnR5KSA9PiBwcm9wZXJ0eS5pc1ByZXZpZXcpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwdWJsaWMgdG9FbnVtZXJhdGlvbkRlZmluaXRpb24oXG4gICAgZW50cnk6IFR5cGVEb2NFbnRyeVxuICApOiBTa3lEb2NzRW51bWVyYXRpb25EZWZpbml0aW9uIHtcbiAgICBjb25zdCBtZW1iZXJzID0gdGhpcy5nZXRFbnVtZXJhdGlvbk1lbWJlcnMoZW50cnkpO1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NFbnVtZXJhdGlvbkRlZmluaXRpb24gPSB7XG4gICAgICBhbmNob3JJZDogdGhpcy5nZXRBbmNob3JJZChlbnRyeSksXG4gICAgICBtZW1iZXJzLFxuICAgICAgbmFtZTogZW50cnkubmFtZSxcbiAgICAgIGhhc1ByZXZpZXdGZWF0dXJlczogISFtZW1iZXJzLmZpbmQoKG1lbWJlcikgPT4gbWVtYmVyLmlzUHJldmlldyksXG4gICAgfTtcblxuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGVudHJ5LmNvbW1lbnQpO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwdWJsaWMgdG9JbnRlcmZhY2VEZWZpbml0aW9uKFxuICAgIGVudHJ5OiBUeXBlRG9jRW50cnlcbiAgKTogU2t5RG9jc0ludGVyZmFjZURlZmluaXRpb24ge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmdldEludGVyZmFjZVByb3BlcnRpZXMoZW50cnkpO1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NJbnRlcmZhY2VEZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbmFtZTogZW50cnkubmFtZSxcbiAgICAgIGhhc1ByZXZpZXdGZWF0dXJlczogISFwcm9wZXJ0aWVzLmZpbmQoKG1lbWJlcikgPT4gbWVtYmVyLmlzUHJldmlldyksXG4gICAgICBwcm9wZXJ0aWVzLFxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhlbnRyeS5jb21tZW50KTtcbiAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgIGNvbnN0IHR5cGVQYXJhbWV0ZXJzID0gdGhpcy5nZXRUeXBlUGFyYW1ldGVyRGVmaW5pdGlvbnMoXG4gICAgICBlbnRyeS50eXBlUGFyYW1ldGVyc1xuICAgICk7XG4gICAgaWYgKHR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkge1xuICAgICAgZGVmaW5pdGlvbi50eXBlUGFyYW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHVibGljIHRvUGlwZURlZmluaXRpb24oZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NQaXBlRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgbWV0aG9kcyA9IHRoaXMuZ2V0Q2xhc3NNZXRob2RzKGVudHJ5KTtcbiAgICBjb25zdCB0cmFuc2Zvcm1NZXRob2QgPSBtZXRob2RzLmZpbmQoKG0pID0+IG0ubmFtZSA9PT0gJ3RyYW5zZm9ybScpO1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NQaXBlRGVmaW5pdGlvbiA9IHtcbiAgICAgIGFuY2hvcklkOiB0aGlzLmdldEFuY2hvcklkKGVudHJ5KSxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICB0cmFuc2Zvcm1NZXRob2QsXG4gICAgfTtcblxuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGVudHJ5LmNvbW1lbnQpO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwdWJsaWMgdG9UeXBlQWxpYXNEZWZpbml0aW9uKFxuICAgIGVudHJ5OiBUeXBlRG9jRW50cnlcbiAgKTogU2t5RG9jc1R5cGVBbGlhc0RlZmluaXRpb24ge1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NUeXBlQWxpYXNEZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbmFtZTogZW50cnkubmFtZSxcbiAgICAgIGlzUHJldmlldzogZmFsc2UsXG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHtcbiAgICAgICAgY29tbWVudDogZW50cnkuY29tbWVudCxcbiAgICAgICAgdHlwZTogZW50cnkudHlwZSxcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhcbiAgICAgIGVudHJ5LnR5cGUuZGVjbGFyYXRpb24/LnNpZ25hdHVyZXNcbiAgICAgICAgPyBlbnRyeS50eXBlLmRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0uY29tbWVudFxuICAgICAgICA6IGVudHJ5LmNvbW1lbnRcbiAgICApO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgY29uc3QgdHlwZVBhcmFtZXRlcnMgPSB0aGlzLmdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhcbiAgICAgIGVudHJ5LnR5cGVQYXJhbWV0ZXJzXG4gICAgKTtcbiAgICBpZiAodHlwZVBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLnR5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwcml2YXRlIGdldFNlbGVjdG9yKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRlY29yYXRvclNvdXJjZSA9IGVudHJ5LmRlY29yYXRvcnNbMF0uYXJndW1lbnRzLm9iajtcbiAgICByZXR1cm4gZGVjb3JhdG9yU291cmNlLmluZGV4T2YoJ3NlbGVjdG9yOiBgJykgPiAtMVxuICAgICAgPyBkZWNvcmF0b3JTb3VyY2VcbiAgICAgICAgICAuc3BsaXQoJ3NlbGVjdG9yOiBgJylbMV1cbiAgICAgICAgICAuc3BsaXQoJ2AnKVswXVxuICAgICAgICAgIC5yZXBsYWNlKC9cXHNcXHMrL2csICcgJylcbiAgICAgIDogZGVjb3JhdG9yU291cmNlLnNwbGl0KFwic2VsZWN0b3I6ICdcIilbMV0uc3BsaXQoXCInXCIpWzBdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDbGFzc1Byb3BlcnRpZXMoXG4gICAgZW50cnk6IFR5cGVEb2NFbnRyeVxuICApOiBTa3lEb2NzQ2xhc3NQcm9wZXJ0eURlZmluaXRpb25bXSB7XG4gICAgaWYgKCFlbnRyeS5jaGlsZHJlbikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmluaXRpb25zID0gZW50cnkuY2hpbGRyZW5cbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChjaGlsZCkgPT5cbiAgICAgICAgICAvLyBXZSBvbmx5IHdhbnQgcHJvcGVydGllcyAoYm90aCB3aXRoIG9yIHdpdGhvdXQgYSBnZXR0ZXIvc2V0dGVyKVxuICAgICAgICAgIGNoaWxkLmtpbmQgPT09IFR5cGVEb2NLaW5kLlByb3BlcnR5IHx8XG4gICAgICAgICAgY2hpbGQua2luZCA9PT0gVHlwZURvY0tpbmQuQWNjZXNzb3JcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChjaGlsZCkgPT5cbiAgICAgICAgICAvLyBXZSBvbmx5IHdhbnQgYWNjZXNzb3JzIHRoYXQgZG9uJ3QgaGF2ZSBhIHNldHRlciBpZiB0aGV5IGFyZSBub3QgaW5wdXRzXG4gICAgICAgICAgY2hpbGQua2luZCAhPT0gVHlwZURvY0tpbmQuQWNjZXNzb3IgfHxcbiAgICAgICAgICBjaGlsZC5zZXRTaWduYXR1cmUgfHxcbiAgICAgICAgICB0aGlzLmdldERlY29yYXRvcihjaGlsZCk/Lm5hbWUgIT09ICdJbnB1dCdcbiAgICAgIClcbiAgICAgIC5tYXAoKGNoaWxkKSA9PiB7XG4gICAgICAgIGxldCBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NQcm9wZXJ0eURlZmluaXRpb24gPSB7XG4gICAgICAgICAgaXNPcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgICBpc1ByZXZpZXc6IGZhbHNlLFxuICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0UHJvcGVydHlOYW1lKGNoaWxkKSxcbiAgICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkKSxcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IGRlZmF1bHRWYWx1ZTogc3RyaW5nO1xuXG4gICAgICAgIC8qIEVuc3VyZSB3ZSBhcmUgcHJvcGVybHkgY2FwdHVyaW5nIGRlZmluaXRpb25zIHdoaWNoIHVzZSBhIGdldHRlci9zZXR0ZXIuIEZpbmFsIGNoZWNrIGlzIGEgc2FuaXR5IGNoZWNrICovXG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGlsZC5raW5kID09PSBUeXBlRG9jS2luZC5BY2Nlc3NvciAmJlxuICAgICAgICAgICFjaGlsZC5jb21tZW50Py5zdW1tYXJ5XG4gICAgICAgICAgICA/Lm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0KVxuICAgICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgICAudHJpbSgpICYmXG4gICAgICAgICAgKGNoaWxkLnNldFNpZ25hdHVyZSB8fCBjaGlsZC5nZXRTaWduYXR1cmUpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IG1haW5UYWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KTtcblxuICAgICAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIG1haW5UYWdzKTtcblxuICAgICAgICAgIGlmIChjaGlsZC5nZXRTaWduYXR1cmUpIHtcbiAgICAgICAgICAgIGNvbnN0IGdldFRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmdldFNpZ25hdHVyZS5jb21tZW50KTtcblxuICAgICAgICAgICAgZGVmaW5pdGlvbi5pc09wdGlvbmFsID0gIWdldFRhZ3MuZXh0cmFzLnJlcXVpcmVkO1xuXG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCBnZXRUYWdzKTtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNoaWxkLCBnZXRUYWdzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY2hpbGQuc2V0U2lnbmF0dXJlKSB7XG4gICAgICAgICAgICBjb25zdCBzZXRUYWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5zZXRTaWduYXR1cmUuY29tbWVudCk7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHNldFRhZ3MpO1xuXG4gICAgICAgICAgICBkZWZpbml0aW9uLmlzT3B0aW9uYWwgPVxuICAgICAgICAgICAgICBkZWZpbml0aW9uLmlzT3B0aW9uYWwgJiYgIXNldFRhZ3MuZXh0cmFzLnJlcXVpcmVkO1xuICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlIHx8IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNoaWxkLCBzZXRUYWdzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVmaW5pdGlvbi5pc09wdGlvbmFsID0gIW1haW5UYWdzLmV4dHJhcy5yZXF1aXJlZDtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNoaWxkLCBtYWluVGFncyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCB0YWdzOiBTa3lEb2NzQ29tbWVudFRhZ3MgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgY2hpbGQua2luZCA9PT0gVHlwZURvY0tpbmQuUHJvcGVydHkgJiZcbiAgICAgICAgICAgICFjaGlsZC5jb21tZW50Py5zdW1tYXJ5XG4gICAgICAgICAgICAgID8ubWFwKChpdGVtKSA9PiBpdGVtLnRleHQpXG4gICAgICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICAgICAgICAudHJpbSgpICYmXG4gICAgICAgICAgICBjaGlsZC50eXBlLmRlY2xhcmF0aW9uPy5zaWduYXR1cmVzPy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICBjaGlsZC50eXBlLmRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0uY29tbWVudFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoXG4gICAgICAgICAgICAgIGNoaWxkLnR5cGUuZGVjbGFyYXRpb24uc2lnbmF0dXJlc1swXS5jb21tZW50XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBkZWZpbml0aW9uLmlzT3B0aW9uYWwgPSAhdGFncy5leHRyYXMucmVxdWlyZWQ7XG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KTtcblxuICAgICAgICAgIGRlZmluaXRpb24uaXNPcHRpb25hbCA9XG4gICAgICAgICAgICBkZWZpbml0aW9uLmlzT3B0aW9uYWwgJiYgIXRhZ3MuZXh0cmFzLnJlcXVpcmVkO1xuXG4gICAgICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICAgICAgICBkZWZhdWx0VmFsdWUgPSB0aGlzLmdldERlZmF1bHRWYWx1ZShjaGlsZCwgdGFncyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgZGVmaW5pdGlvbi5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWNvcmF0b3IgPSB0aGlzLmdldERlY29yYXRvcihjaGlsZCk7XG4gICAgICAgIGlmIChkZWNvcmF0b3IpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLmRlY29yYXRvciA9IGRlY29yYXRvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZGVmaW5pdGlvbi5kZXNjcmlwdGlvbikge1xuICAgICAgICAgIGNvbnN0IGNvbnN0cnVjdG9yID0gZW50cnkuY2hpbGRyZW4uZmluZChcbiAgICAgICAgICAgIChjaGlsZCkgPT4gY2hpbGQua2luZCA9PT0gVHlwZURvY0tpbmQuQ29uc3RydWN0b3JcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChjb25zdHJ1Y3Rvcikge1xuICAgICAgICAgICAgY29uc3Qgc2lnbmF0dXJlID0gY29uc3RydWN0b3Iuc2lnbmF0dXJlcy5maW5kKFxuICAgICAgICAgICAgICAoc2lnbmF0dXJlKSA9PiBzaWduYXR1cmUua2luZCA9PT0gVHlwZURvY0tpbmQuQ29uc3RydWN0b3JTaWduYXR1cmVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBTYW5pdHkgY2hlY2sgKi9cbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAoc2lnbmF0dXJlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nUGFyYW0gPSBzaWduYXR1cmUucGFyYW1ldGVycz8uZmluZChcbiAgICAgICAgICAgICAgICAocGFyYW1ldGVyKSA9PiBwYXJhbWV0ZXIubmFtZSA9PT0gY2hpbGQubmFtZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAobWF0Y2hpbmdQYXJhbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nUGFyYW1UYWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhcbiAgICAgICAgICAgICAgICAgIG1hdGNoaW5nUGFyYW0uY29tbWVudFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgbWF0Y2hpbmdQYXJhbVRhZ3MpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb247XG4gICAgICB9KTtcblxuICAgIHJldHVybiBvcmRlckJ5KGRlZmluaXRpb25zLCBbJ2lzT3B0aW9uYWwnLCAnbmFtZSddLCBbJ2FzYycsICdhc2MnXSk7XG4gIH1cblxuICBwcml2YXRlIGdldENsYXNzTWV0aG9kcyhlbnRyeTogVHlwZURvY0VudHJ5KTogU2t5RG9jc0NsYXNzTWV0aG9kRGVmaW5pdGlvbltdIHtcbiAgICBpZiAoIWVudHJ5LmNoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgbWV0aG9kcyA9IGVudHJ5LmNoaWxkcmVuXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoY2hpbGQpID0+XG4gICAgICAgICAgY2hpbGQua2luZCA9PT0gVHlwZURvY0tpbmQuTWV0aG9kICYmIC9ebmcvLnRlc3QoY2hpbGQubmFtZSkgPT09IGZhbHNlXG4gICAgICApXG4gICAgICAubWFwKChjaGlsZCkgPT4ge1xuICAgICAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NNZXRob2REZWZpbml0aW9uID0ge1xuICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0UHJvcGVydHlOYW1lKGNoaWxkKSxcbiAgICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkKSxcbiAgICAgICAgICBpc1N0YXRpYzogISFjaGlsZC5mbGFncz8uaXNTdGF0aWMsXG4gICAgICAgICAgaXNQcmV2aWV3OiBmYWxzZSxcbiAgICAgICAgICBwYXJlbnROYW1lOiBlbnRyeS5uYW1lLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIENvbW1lbnRzIGZvciBtZXRob2RzIGFyZSBzdG9yZWQgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uXG4gICAgICAgIGNvbnN0IGNvbW1lbnQgPSBjaGlsZC5zaWduYXR1cmVzWzBdLmNvbW1lbnQ7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNvbW1lbnQpO1xuICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgICAgICBjb25zdCB0eXBlUGFyYW1ldGVycyA9IHRoaXMuZ2V0VHlwZVBhcmFtZXRlckRlZmluaXRpb25zKFxuICAgICAgICAgIGNoaWxkLnNpZ25hdHVyZXNbMF0udHlwZVBhcmFtZXRlcnNcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkge1xuICAgICAgICAgIGRlZmluaXRpb24udHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVycztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gb3JkZXJCeShtZXRob2RzLCBbJ25hbWUnXSwgWydhc2MnXSk7XG4gIH1cblxuICBwcml2YXRlIGdldEludGVyZmFjZVByb3BlcnRpZXMoXG4gICAgZW50cnk6IFR5cGVEb2NFbnRyeVxuICApOiBTa3lEb2NzSW50ZXJmYWNlUHJvcGVydHlEZWZpbml0aW9uW10ge1xuICAgIGlmICghZW50cnkuY2hpbGRyZW4gJiYgIWVudHJ5LmluZGV4U2lnbmF0dXJlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZGVmaW5pdGlvbnMgPVxuICAgICAgZW50cnkuY2hpbGRyZW4/Lm1hcCgoY2hpbGQpID0+IHtcbiAgICAgICAgbGV0IHRhZ3M6IFNreURvY3NDb21tZW50VGFncyB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGNoaWxkLmtpbmQgPT09IFR5cGVEb2NLaW5kLk1ldGhvZCAmJiBjaGlsZC5zaWduYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5zaWduYXR1cmVzWzBdLmNvbW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGNoaWxkLnR5cGUudHlwZSA9PT0gJ3JlZmxlY3Rpb24nICYmXG4gICAgICAgICAgY2hpbGQudHlwZT8uZGVjbGFyYXRpb24/LnNpZ25hdHVyZXM/Lmxlbmd0aCA+IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoXG4gICAgICAgICAgICBjaGlsZC50eXBlLmRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0uY29tbWVudFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoY2hpbGQuY29tbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0ludGVyZmFjZVByb3BlcnR5RGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICBpc09wdGlvbmFsOiB0YWdzLmV4dHJhcy5yZXF1aXJlZCA/IGZhbHNlIDogISFjaGlsZC5mbGFncz8uaXNPcHRpb25hbCxcbiAgICAgICAgICBpc1ByZXZpZXc6IGZhbHNlLFxuICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0UHJvcGVydHlOYW1lKGNoaWxkKSxcbiAgICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkKSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgICAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgICAgIH0pIHx8IFtdO1xuXG4gICAgY29uc3Qgc29ydGVkID0gb3JkZXJCeShkZWZpbml0aW9ucywgWydpc09wdGlvbmFsJywgJ25hbWUnXSwgWydhc2MnLCAnYXNjJ10pO1xuXG4gICAgLy8gQWRkIGFueSBpbmRleCBzaWduYXR1cmVzLCBlLmcuIGBbXzogc3RyaW5nXTogYW55YFxuICAgIGlmIChlbnRyeS5pbmRleFNpZ25hdHVyZSkge1xuICAgICAgY29uc3QgaW5kZXhTaWduYXR1cmUgPSBlbnRyeS5pbmRleFNpZ25hdHVyZTtcbiAgICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NJbnRlcmZhY2VQcm9wZXJ0eURlZmluaXRpb24gPSB7XG4gICAgICAgIGlzT3B0aW9uYWw6IHRydWUsXG4gICAgICAgIGlzUHJldmlldzogZmFsc2UsXG4gICAgICAgIG5hbWU6IGluZGV4U2lnbmF0dXJlLm5hbWUsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICBpbmRleFNpZ25hdHVyZTogdGhpcy5nZXRJbmRleFNpZ25hdHVyZURlZmluaXRpb24oaW5kZXhTaWduYXR1cmUpLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgLy8gTmV3IHZlcnNpb25zIG9mIHR5cGVkb2MgZG8gbm90IHNlZW0gdG8gYWRkIHRoZSBjb21tZW50IGZvciBpbmRleCBzaWduYXR1cmVzIC0gdGhlIGVsc2Ugc3RhdGVtZW50IGlzIGEgZGVmYXVsdCBiYXNlZCBvbiB0aGUgb25seSBpbmRleCBzaWduYXR1cmUgd2UgaGFkIGluIFNlcHRlbWJlciAyMDIzIChTa3lTZWxlY3RGaWVsZCkuXG4gICAgICBpZiAoaW5kZXhTaWduYXR1cmUuY29tbWVudCkge1xuICAgICAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhpbmRleFNpZ25hdHVyZS5jb21tZW50KTtcbiAgICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWZpbml0aW9uLmRlc2NyaXB0aW9uID0gJ0FsbCBvdGhlciBwcm9wZXJ0aWVzIGZvciBhbiBpdGVtLic7XG4gICAgICB9XG4gICAgICBzb3J0ZWQucHVzaChkZWZpbml0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc29ydGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFbnVtZXJhdGlvbk1lbWJlcnMoXG4gICAgZW50cnk6IFR5cGVEb2NFbnRyeVxuICApOiBTa3lEb2NzRW51bWVyYXRpb25NZW1iZXJEZWZpbml0aW9uW10ge1xuICAgIGlmICghZW50cnkuY2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gZW50cnkuY2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0VudW1lcmF0aW9uTWVtYmVyRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgbmFtZTogY2hpbGQubmFtZSxcbiAgICAgICAgaXNQcmV2aWV3OiBmYWxzZSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpO1xuICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUeXBlRGVmaW5pdGlvbihjaGlsZDogVHlwZURvY0VudHJ5Q2hpbGQpOiBTa3lEb2NzVHlwZURlZmluaXRpb24ge1xuICAgIGxldCBkZWZpbml0aW9uOiBTa3lEb2NzVHlwZURlZmluaXRpb247XG5cbiAgICBjb25zdCBraW5kID0gY2hpbGQua2luZDtcbiAgICBzd2l0Y2ggKGtpbmQpIHtcbiAgICAgIGNhc2UgVHlwZURvY0tpbmQuQWNjZXNzb3I6XG4gICAgICAgIGlmIChjaGlsZC5zZXRTaWduYXR1cmUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjaGlsZC5zZXRTaWduYXR1cmUucGFyYW1ldGVyc1swXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHlwZURlZmluaXRpb24oY2hpbGQuZ2V0U2lnbmF0dXJlKTtcblxuICAgICAgY2FzZSBUeXBlRG9jS2luZC5NZXRob2Q6XG4gICAgICAgIGRlZmluaXRpb24gPSB7XG4gICAgICAgICAgY2FsbFNpZ25hdHVyZTogdGhpcy5nZXRDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbihcbiAgICAgICAgICAgIGNoaWxkLnNpZ25hdHVyZXNbMF0sXG4gICAgICAgICAgICB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpXG4gICAgICAgICAgKSxcbiAgICAgICAgICBuYW1lOiBjaGlsZC5zaWduYXR1cmVzWzBdLm5hbWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb247XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGxldCBuYW1lOiBzdHJpbmcgPVxuICAgICAgICAgIGNoaWxkLnR5cGUubmFtZSB8fCBjaGlsZC50eXBlLmVsZW1lbnRUeXBlPy5uYW1lIHx8IGNoaWxkLnR5cGUudmFsdWU7XG5cbiAgICAgICAgZGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICB0eXBlOiBjaGlsZC50eXBlLnR5cGUsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLm5hbWUgPSBuYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVW5pb24/XG4gICAgICAgIGlmIChjaGlsZC50eXBlLnR5cGVzKSB7XG4gICAgICAgICAgZGVmaW5pdGlvbi51bmlvblR5cGVzID0gY2hpbGQudHlwZS50eXBlcy5tYXAoKHQpID0+XG4gICAgICAgICAgICB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHsgdHlwZTogdCB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb252ZXJ0IHJlZmxlY3Rpb24gdHlwZXMuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGlsZC50eXBlLnR5cGUgPT09ICdyZWZsZWN0aW9uJyB8fFxuICAgICAgICAgIGNoaWxkLnR5cGUuZWxlbWVudFR5cGU/LnR5cGUgPT09ICdyZWZsZWN0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBkZWNsYXJhdGlvbiA9XG4gICAgICAgICAgICBjaGlsZC50eXBlLmVsZW1lbnRUeXBlPy50eXBlID09PSAncmVmbGVjdGlvbidcbiAgICAgICAgICAgICAgPyBjaGlsZC50eXBlLmVsZW1lbnRUeXBlLmRlY2xhcmF0aW9uXG4gICAgICAgICAgICAgIDogY2hpbGQudHlwZS5kZWNsYXJhdGlvbjtcbiAgICAgICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKGRlY2xhcmF0aW9uKSB7XG4gICAgICAgICAgICBpZiAoZGVjbGFyYXRpb24uc2lnbmF0dXJlcykge1xuICAgICAgICAgICAgICBkZWZpbml0aW9uLmNhbGxTaWduYXR1cmUgPSB0aGlzLmdldENhbGxTaWduYXR1cmVEZWZpbml0aW9uKFxuICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0sXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkZWNsYXJhdGlvbi5pbmRleFNpZ25hdHVyZSkge1xuICAgICAgICAgICAgICBjb25zdCBpbmRleFNpZ25hdHVyZSA9IGRlY2xhcmF0aW9uLmluZGV4U2lnbmF0dXJlO1xuICAgICAgICAgICAgICBkZWZpbml0aW9uLmluZGV4U2lnbmF0dXJlID1cbiAgICAgICAgICAgICAgICB0aGlzLmdldEluZGV4U2lnbmF0dXJlRGVmaW5pdGlvbihpbmRleFNpZ25hdHVyZSk7XG4gICAgICAgICAgICB9IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovIGVsc2UgaWYgKGRlY2xhcmF0aW9uLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIGRlZmluaXRpb24udHlwZUxpdGVyYWwgPSB7XG4gICAgICAgICAgICAgICAgcHJvcGVydGllczogdGhpcy5nZXRJbnRlcmZhY2VQcm9wZXJ0aWVzKHtcbiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBkZWNsYXJhdGlvbi5jaGlsZHJlbixcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hpbGQudHlwZS50eXBlID09PSAndHlwZU9wZXJhdG9yJykge1xuICAgICAgICAgIGRlZmluaXRpb24ubmFtZSA9IGAke2NoaWxkLnR5cGUub3BlcmF0b3J9ICR7Y2hpbGQudHlwZS50YXJnZXQubmFtZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoaWxkLnR5cGUudHlwZUFyZ3VtZW50cykge1xuICAgICAgICAgIGRlZmluaXRpb24udHlwZUFyZ3VtZW50cyA9IHRoaXMuZ2V0VHlwZUFyZ3VtZW50RGVmaW5pdGlvbnMoXG4gICAgICAgICAgICBjaGlsZC50eXBlXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGFyYW1ldGVyRGVmaW5pdGlvbnMoXG4gICAgY2FsbFNpZ25hdHVyZTogVHlwZURvY1NpZ25hdHVyZSxcbiAgICBwYXJlbnRUYWdzOiBTa3lEb2NzQ29tbWVudFRhZ3NcbiAgKTogU2t5RG9jc1BhcmFtZXRlckRlZmluaXRpb25bXSB7XG4gICAgaWYgKCFjYWxsU2lnbmF0dXJlLnBhcmFtZXRlcnMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBTa3lEb2NzUGFyYW1ldGVyRGVmaW5pdGlvbltdID1cbiAgICAgIGNhbGxTaWduYXR1cmUucGFyYW1ldGVycy5tYXAoKHApID0+IHtcbiAgICAgICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0UGFyYW1ldGVyQ29tbWVudFRhZ3MocCwgcGFyZW50VGFncyk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKHAsIHRhZ3MpO1xuICAgICAgICBjb25zdCB0eXBlQXJndW1lbnRzID0gdGhpcy5nZXRUeXBlQXJndW1lbnREZWZpbml0aW9ucyhwLnR5cGUpO1xuXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcjogU2t5RG9jc1BhcmFtZXRlckRlZmluaXRpb24gPSB7XG4gICAgICAgICAgaXNPcHRpb25hbDogISEoZGVmYXVsdFZhbHVlIHx8ICEhcC5mbGFncz8uaXNPcHRpb25hbCksXG4gICAgICAgICAgbmFtZTogcC5uYW1lLFxuICAgICAgICAgIHR5cGU6IHRoaXMuZ2V0VHlwZURlZmluaXRpb24ocCksXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcGFyYW1ldGVyLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0YWdzLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgcGFyYW1ldGVyLmRlc2NyaXB0aW9uID0gdGFncy5kZXNjcmlwdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlQXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgIHBhcmFtZXRlci50eXBlQXJndW1lbnRzID0gdHlwZUFyZ3VtZW50cztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbWV0ZXI7XG4gICAgICB9KTtcbiAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHlwZUFyZ3VtZW50RGVmaW5pdGlvbnMoXG4gICAgdHlwZUNvbmZpZzogVHlwZURvY1R5cGVcbiAgKTogU2t5RG9jc1R5cGVEZWZpbml0aW9uW10ge1xuICAgIGlmICghdHlwZUNvbmZpZyB8fCAhdHlwZUNvbmZpZy50eXBlQXJndW1lbnRzKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVDb25maWcudHlwZUFyZ3VtZW50cy5tYXAoKHR5cGVBcmd1bWVudCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VHlwZURlZmluaXRpb24oeyB0eXBlOiB0eXBlQXJndW1lbnQgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENhbGxTaWduYXR1cmVEZWZpbml0aW9uKFxuICAgIGNhbGxTaWduYXR1cmU6IFR5cGVEb2NTaWduYXR1cmUsXG4gICAgdGFnczogU2t5RG9jc0NvbW1lbnRUYWdzXG4gICk6IFNreURvY3NDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0NhbGxTaWduYXR1cmVEZWZpbml0aW9uID0ge1xuICAgICAgcmV0dXJuVHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjYWxsU2lnbmF0dXJlKSxcbiAgICB9O1xuXG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHRoaXMuZ2V0UGFyYW1ldGVyRGVmaW5pdGlvbnMoY2FsbFNpZ25hdHVyZSwgdGFncyk7XG4gICAgaWYgKHBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLnBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRleFNpZ25hdHVyZURlZmluaXRpb24oXG4gICAgc2lnbmF0dXJlOiBUeXBlRG9jU2lnbmF0dXJlXG4gICk6IFNreURvY3NJbmRleFNpZ25hdHVyZURlZmluaXRpb24ge1xuICAgIHJldHVybiB7XG4gICAgICBrZXk6IHtcbiAgICAgICAgbmFtZTogc2lnbmF0dXJlLnBhcmFtZXRlcnNbMF0ubmFtZSxcbiAgICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihzaWduYXR1cmUucGFyYW1ldGVyc1swXSksXG4gICAgICB9LFxuICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihzaWduYXR1cmUpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhcbiAgICB0eXBlUGFyYW1ldGVyczogVHlwZURvY1R5cGVQYXJhbWV0ZXJbXVxuICApOiBTa3lEb2NzVHlwZVBhcmFtZXRlckRlZmluaXRpb25bXSB7XG4gICAgaWYgKCF0eXBlUGFyYW1ldGVycykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlUGFyYW1ldGVycy5tYXAoKHR5cGVQYXJhbSkgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc1R5cGVQYXJhbWV0ZXJEZWZpbml0aW9uID0ge1xuICAgICAgICBuYW1lOiB0eXBlUGFyYW0ubmFtZSxcbiAgICAgIH07XG5cbiAgICAgIGlmICh0eXBlUGFyYW0udHlwZSkge1xuICAgICAgICBkZWZpbml0aW9uLnR5cGUgPSB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHtcbiAgICAgICAgICB0eXBlOiB0eXBlUGFyYW0udHlwZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb21tZW50VGFncyhjb21tZW50OiBUeXBlRG9jQ29tbWVudCk6IFNreURvY3NDb21tZW50VGFncyB7XG4gICAgbGV0IGNvZGVFeGFtcGxlOiBzdHJpbmc7XG4gICAgbGV0IGNvZGVFeGFtcGxlTGFuZ3VhZ2U6IHN0cmluZyA9ICdtYXJrdXAnO1xuICAgIGxldCBkZXByZWNhdGlvbldhcm5pbmc6IHN0cmluZztcbiAgICBsZXQgZGVmYXVsdFZhbHVlOiBzdHJpbmc7XG4gICAgbGV0IGRlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJztcblxuICAgIGxldCBwYXJhbWV0ZXJzOiB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIH1bXTtcblxuICAgIGNvbnN0IGV4dHJhczoge1xuICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIH0gPSB7fTtcblxuICAgIGlmIChjb21tZW50KSB7XG4gICAgICBpZiAoY29tbWVudC5ibG9ja1RhZ3MpIHtcbiAgICAgICAgY29tbWVudC5ibG9ja1RhZ3MuZm9yRWFjaCgodGFnKSA9PiB7XG4gICAgICAgICAgc3dpdGNoICh0YWcudGFnKSB7XG4gICAgICAgICAgICBjYXNlICdAZGVwcmVjYXRlZCc6XG4gICAgICAgICAgICAgIGRlcHJlY2F0aW9uV2FybmluZyA9IHRhZy5jb250ZW50XG4gICAgICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0KVxuICAgICAgICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICAgICAgICAgIC50cmltKCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdAZGVmYXVsdCc6XG4gICAgICAgICAgICBjYXNlICdAZGVmYXVsdFZhbHVlJzpcbiAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gdGFnLmNvbnRlbnRcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLnRleHQpXG4gICAgICAgICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgICAgICAgLnRyaW0oKTtcblxuICAgICAgICAgICAgICBpZiAodGFnLmNvbnRlbnRbMF0ua2luZCA9PT0gJ2NvZGUnKSB7XG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlLnNwbGl0KCdgYGAnKVsxXS50cmltKCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2UgPSBkZWZhdWx0VmFsdWUuc3BsaXQoJ1xcbicpWzBdO1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRMYW5ndWFnZSA9PT0gJ21hcmt1cCcgfHxcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRMYW5ndWFnZSA9PT0gJ3R5cGVzY3JpcHQnIHx8XG4gICAgICAgICAgICAgICAgICBkZWZhdWx0TGFuZ3VhZ2UgPT09ICd0cydcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAuc2xpY2UoZGVmYXVsdExhbmd1YWdlLmxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgLnRyaW0oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0BleGFtcGxlJzpcbiAgICAgICAgICAgICAgY29kZUV4YW1wbGUgPSB0YWcuY29udGVudFxuICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0udGV4dClcbiAgICAgICAgICAgICAgICAuam9pbignJylcbiAgICAgICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAgICAgLnNwbGl0KCdgYGAnKVsxXVxuICAgICAgICAgICAgICAgIC50cmltKCk7XG4gICAgICAgICAgICAgIGNvbnN0IGV4YW1wbGVMYW5ndWFnZSA9IGNvZGVFeGFtcGxlLnNwbGl0KCdcXG4nKVswXTtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGV4YW1wbGVMYW5ndWFnZSA9PT0gJ21hcmt1cCcgfHxcbiAgICAgICAgICAgICAgICBleGFtcGxlTGFuZ3VhZ2UgPT09ICd0eXBlc2NyaXB0JyB8fFxuICAgICAgICAgICAgICAgIGV4YW1wbGVMYW5ndWFnZSA9PT0gJ3RzJ1xuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBjb2RlRXhhbXBsZSA9IGNvZGVFeGFtcGxlLnNsaWNlKGV4YW1wbGVMYW5ndWFnZS5sZW5ndGgpLnRyaW0oKTtcbiAgICAgICAgICAgICAgICBjb2RlRXhhbXBsZUxhbmd1YWdlID0gZXhhbXBsZUxhbmd1YWdlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdAcGFyYW0nOlxuICAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycyB8fCBbXTtcbiAgICAgICAgICAgICAgcGFyYW1ldGVycy5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiB0YWcucGFyYW0sXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRhZy5jb250ZW50XG4gICAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLnRleHQpXG4gICAgICAgICAgICAgICAgICAuam9pbignJylcbiAgICAgICAgICAgICAgICAgIC50cmltKCksXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0BwcmV2aWV3JzpcbiAgICAgICAgICAgICAgZXh0cmFzWydwcmV2aWV3J10gPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0ByZXF1aXJlZCc6XG4gICAgICAgICAgICAgIGV4dHJhc1sncmVxdWlyZWQnXSA9IHRydWU7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGRlc2NyaXB0aW9uID0gY29tbWVudC5zdW1tYXJ5XG4gICAgICAgID8ubWFwKChpdGVtKSA9PiBpdGVtLnRleHQpXG4gICAgICAgIC5qb2luKCcnKVxuICAgICAgICAudHJpbSgpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjb2RlRXhhbXBsZSxcbiAgICAgIGNvZGVFeGFtcGxlTGFuZ3VhZ2UsXG4gICAgICBkZWZhdWx0VmFsdWUsXG4gICAgICBkZXByZWNhdGlvbldhcm5pbmcsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIGV4dHJhcyxcbiAgICAgIHBhcmFtZXRlcnMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJhbWV0ZXIgZGVzY3JpcHRpb25zIGFyZSBkZXJpdmVkIGZyb20gdGhlIHBhcmVudCdzIChmdW5jdGlvbi9tZXRob2QpIGNvbW1lbnQuXG4gICAqL1xuICBwcml2YXRlIGdldFBhcmFtZXRlckNvbW1lbnRUYWdzKFxuICAgIHBhcmFtZXRlcjogVHlwZURvY1BhcmFtZXRlcixcbiAgICBwYXJlbnRUYWdzOiBTa3lEb2NzQ29tbWVudFRhZ3NcbiAgKTogU2t5RG9jc0NvbW1lbnRUYWdzIHtcbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhwYXJhbWV0ZXIuY29tbWVudCk7XG4gICAgY29uc3QgcGFyYW1UYWdzID0gcGFyZW50VGFncy5wYXJhbWV0ZXJzO1xuICAgIGNvbnN0IHRhZ1BhcmFtID0gcGFyYW1UYWdzXG4gICAgICA/IHBhcmFtVGFncy5maW5kKChwYXJhbSkgPT4gcGFyYW0ubmFtZSA9PT0gcGFyYW1ldGVyLm5hbWUpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmICghdGFnUGFyYW0gfHwgIXRhZ1BhcmFtLmRlc2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm4gdGFncztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGFncyxcbiAgICAgIC4uLntcbiAgICAgICAgZGVzY3JpcHRpb246IHRhZ1BhcmFtLmRlc2NyaXB0aW9uLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgY29tbWVudCB0YWcgKGUuZy4gYEBwYXJhbWApIHZhbHVlcyB0byB0aGUgcHJvdmlkZWQgZGVmaW5pdGlvbiwgaWYgdGhlIHZhbHVlIGlzIGRlZmluZWQuXG4gICAqL1xuICBwcml2YXRlIGFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICBjb2RlRXhhbXBsZT86IHN0cmluZztcbiAgICAgIGNvZGVFeGFtcGxlTGFuZ3VhZ2U/OiBzdHJpbmc7XG4gICAgICBkZXByZWNhdGlvbldhcm5pbmc/OiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgIGlzUHJldmlldz86IGJvb2xlYW47XG4gICAgfSxcbiAgICB0YWdzOiBTa3lEb2NzQ29tbWVudFRhZ3NcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRhZ3MuY29kZUV4YW1wbGUpIHtcbiAgICAgIGRlZmluaXRpb24uY29kZUV4YW1wbGUgPSB0YWdzLmNvZGVFeGFtcGxlO1xuICAgICAgZGVmaW5pdGlvbi5jb2RlRXhhbXBsZUxhbmd1YWdlID0gdGFncy5jb2RlRXhhbXBsZUxhbmd1YWdlO1xuICAgIH1cblxuICAgIGlmICh0YWdzLmRlcHJlY2F0aW9uV2FybmluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWZpbml0aW9uLmRlcHJlY2F0aW9uV2FybmluZyA9IHRhZ3MuZGVwcmVjYXRpb25XYXJuaW5nO1xuICAgIH1cblxuICAgIGlmICh0YWdzLmRlc2NyaXB0aW9uKSB7XG4gICAgICBkZWZpbml0aW9uLmRlc2NyaXB0aW9uID0gdGFncy5kZXNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBpZiAodGFncy5leHRyYXM/LnByZXZpZXcpIHtcbiAgICAgIGRlZmluaXRpb24uaXNQcmV2aWV3ID0gdGFncy5leHRyYXM/LnByZXZpZXc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWNvcmF0b3IoXG4gICAgY2hpbGQ6IFR5cGVEb2NFbnRyeUNoaWxkXG4gICk6IFNreURvY3NQcm9wZXJ0eURlY29yYXRvckRlZmluaXRpb24ge1xuICAgIGNvbnN0IG5hbWUgPVxuICAgICAgY2hpbGQuZGVjb3JhdG9ycyAmJiBjaGlsZC5kZWNvcmF0b3JzWzBdICYmIGNoaWxkLmRlY29yYXRvcnNbMF0ubmFtZTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgcmV0dXJuIHsgbmFtZSB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0UHJvcGVydHlOYW1lKHByb3BlcnR5OiBUeXBlRG9jRW50cnlDaGlsZCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGVjb3JhdG9ycyA9IHByb3BlcnR5LmRlY29yYXRvcnMgJiYgcHJvcGVydHkuZGVjb3JhdG9yc1swXTtcbiAgICAvLyBVc2UgdGhlIElucHV0J3MgYm91bmQgcHJvcGVydHkgbmFtZSwgaWYgZm91bmQuXG4gICAgLy8gZS5nLiBASW5wdXQoJ2Zvb2JhcicpXG4gICAgcmV0dXJuIGRlY29yYXRvcnM/LmFyZ3VtZW50cz8uYmluZGluZ1Byb3BlcnR5TmFtZVxuICAgICAgPyBkZWNvcmF0b3JzLmFyZ3VtZW50cy5iaW5kaW5nUHJvcGVydHlOYW1lLnJlcGxhY2UoLyhcXCd8XFxcIikvZywgJycpXG4gICAgICA6IHByb3BlcnR5Lm5hbWU7XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRWYWx1ZShcbiAgICBjaGlsZDogVHlwZURvY0VudHJ5Q2hpbGQsXG4gICAgdGFnczogU2t5RG9jc0NvbW1lbnRUYWdzXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRhZ3MuZGVmYXVsdFZhbHVlKSB7XG4gICAgICByZXR1cm4gdGFncy5kZWZhdWx0VmFsdWU7XG4gICAgfVxuXG4gICAgLy8gVHlwZURvYyB2ZXJzaW9uIDAuMjAueCBzdG9wcGVkIGF1dG8tZ2VuZXJhdGluZyBpbml0aWFsaXplcnMgZm9yIHRoZSBkZWZhdWx0IHZhbHVlXG4gICAgLy8gKGFuZCByZXBsYWNlZCB0aGVtIHdpdGggXCIuLi5cIikgZHVlIHRvIHRoZSBjb21wbGljYXRlZCBsb2dpYyBpdCByZXF1aXJlZC5cbiAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9UeXBlU3Ryb25nL3R5cGVkb2MvaXNzdWVzLzE1NTJcbiAgICBpZiAoY2hpbGQuZGVmYXVsdFZhbHVlID09PSAnLi4uJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBjaGlsZC5kZWZhdWx0VmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGdldEFuY2hvcklkKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICBlbnRyeS5hbmNob3JJZCB8fFxuICAgICAgdGhpcy50eXBlRGVmaW5pdGlvbnNQcm92aWRlcj8uYW5jaG9ySWRzW2VudHJ5Lm5hbWVdIHx8XG4gICAgICAnJ1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -31,4 +31,4 @@ export var TypeDocKind;
|
|
|
31
31
|
TypeDocKind[TypeDocKind["TypeAlias"] = 4194304] = "TypeAlias";
|
|
32
32
|
TypeDocKind[TypeDocKind["Reference"] = 8388608] = "Reference";
|
|
33
33
|
})(TypeDocKind || (TypeDocKind = {}));
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRvYy10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlZG9jLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBMQTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFOLElBQVksV0EwQlg7QUExQkQsV0FBWSxXQUFXO0lBQ3JCLG1EQUFhLENBQUE7SUFDYixpREFBWSxDQUFBO0lBQ1osdURBQWUsQ0FBQTtJQUNmLDZDQUFVLENBQUE7SUFDViwwREFBaUIsQ0FBQTtJQUNqQixzREFBZSxDQUFBO0lBQ2Ysc0RBQWUsQ0FBQTtJQUNmLGlEQUFZLENBQUE7SUFDWix5REFBaUIsQ0FBQTtJQUNqQiw2REFBbUIsQ0FBQTtJQUNuQix3REFBZ0IsQ0FBQTtJQUNoQixvREFBYyxDQUFBO0lBQ2Qsa0VBQXNCLENBQUE7SUFDdEIsb0VBQXVCLENBQUE7SUFDdkIsaUZBQTZCLENBQUE7SUFDN0IsMkRBQWtCLENBQUE7SUFDbEIsK0RBQXFCLENBQUE7SUFDckIsb0VBQXVCLENBQUE7SUFDdkIsMERBQWtCLENBQUE7SUFDbEIsa0VBQXNCLENBQUE7SUFDdEIsbUVBQXVCLENBQUE7SUFDdkIscURBQXFEO0lBQ3JELHFFQUF3QixDQUFBO0lBQ3hCLDZEQUFvQixDQUFBO0lBQ3BCLDZEQUFvQixDQUFBO0FBQ3RCLENBQUMsRUExQlcsV0FBVyxLQUFYLFdBQVcsUUEwQnRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jQ29tbWVudCB7XG4gIHN1bW1hcnk/OiB7IGtpbmQ6IHN0cmluZzsgdGV4dDogc3RyaW5nIH1bXTtcblxuICBibG9ja1RhZ3M/OiB7XG4gICAgcGFyYW0/OiBzdHJpbmc7XG4gICAgY29udGVudD86IHsga2luZDogc3RyaW5nOyB0ZXh0OiBzdHJpbmcgfVtdO1xuICAgIHRhZzpcbiAgICAgIHwgJ0BkZWZhdWx0J1xuICAgICAgfCAnQGRlZmF1bHRWYWx1ZSdcbiAgICAgIHwgJ0BkZXByZWNhdGVkJ1xuICAgICAgfCAnQGV4YW1wbGUnXG4gICAgICB8ICdAcGFyYW0nXG4gICAgICB8ICdAcHJldmlldydcbiAgICAgIHwgJ0ByZXF1aXJlZCc7XG4gIH1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jU291cmNlIHtcbiAgZmlsZU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jU2lnbmF0dXJlIHtcbiAgY29tbWVudD86IFR5cGVEb2NDb21tZW50O1xuXG4gIGtpbmQ/OlxuICAgIHwgVHlwZURvY0tpbmQuQ2FsbFNpZ25hdHVyZVxuICAgIHwgVHlwZURvY0tpbmQuQ29uc3RydWN0b3JTaWduYXR1cmVcbiAgICB8IFR5cGVEb2NLaW5kLkluZGV4U2lnbmF0dXJlO1xuXG4gIG5hbWU6IHN0cmluZztcblxuICBwYXJhbWV0ZXJzPzogVHlwZURvY1BhcmFtZXRlcltdO1xuXG4gIHJldHVyblR5cGU/OiBUeXBlRG9jVHlwZTtcblxuICB0eXBlPzogVHlwZURvY1R5cGU7XG5cbiAgdHlwZVBhcmFtZXRlcnM/OiBUeXBlRG9jVHlwZVBhcmFtZXRlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVEb2NUeXBlUGFyYW1ldGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICBraW5kOiBUeXBlRG9jS2luZC5UeXBlUGFyYW1ldGVyO1xuICB0eXBlPzogVHlwZURvY1R5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY1R5cGUge1xuICBjb25zdHJhaW50Pzoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgfTtcblxuICBjYWxsU2lnbmF0dXJlPzogVHlwZURvY1NpZ25hdHVyZTtcblxuICBkZWNsYXJhdGlvbj86IHtcbiAgICBjaGlsZHJlbj86IFR5cGVEb2NFbnRyeUNoaWxkW107XG4gICAgaW5kZXhTaWduYXR1cmU/OiBUeXBlRG9jU2lnbmF0dXJlO1xuICAgIHNpZ25hdHVyZXM/OiBUeXBlRG9jU2lnbmF0dXJlW107XG4gIH07XG5cbiAgZWxlbWVudFR5cGU/OiBUeXBlRG9jVHlwZTtcblxuICBuYW1lPzogc3RyaW5nO1xuXG4gIG9wZXJhdG9yPzogJ2tleW9mJztcblxuICB0YXJnZXQ/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9O1xuXG4gIHR5cGU/OlxuICAgIHwgJ2FycmF5J1xuICAgIHwgJ2ludHJpbnNpYydcbiAgICB8ICdsaXRlcmFsJ1xuICAgIHwgJ3JlZmVyZW5jZSdcbiAgICB8ICdyZWZsZWN0aW9uJ1xuICAgIHwgJ3R5cGVQYXJhbWV0ZXInXG4gICAgfCAndHlwZU9wZXJhdG9yJ1xuICAgIHwgJ3VuaW9uJ1xuICAgIHwgJ3Vua25vd24nO1xuXG4gIHR5cGVBcmd1bWVudHM/OiBUeXBlRG9jVHlwZVtdO1xuXG4gIHR5cGVzPzogVHlwZURvY1R5cGVbXTtcblxuICB2YWx1ZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jUGFyYW1ldGVyIHtcbiAgY29tbWVudD86IFR5cGVEb2NDb21tZW50O1xuXG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcblxuICBraW5kOiBUeXBlRG9jS2luZC5QYXJhbWV0ZXI7XG5cbiAgbmFtZTogc3RyaW5nO1xuXG4gIHR5cGU6IFR5cGVEb2NUeXBlO1xuXG4gIGZsYWdzPzoge1xuICAgIGlzT3B0aW9uYWw/OiBib29sZWFuO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVEb2NFbnRyeUNoaWxkIHtcbiAgY29tbWVudD86IFR5cGVEb2NDb21tZW50O1xuXG4gIGRlY29yYXRvcnM/OiB7XG4gICAgYXJndW1lbnRzPzoge1xuICAgICAgYmluZGluZ1Byb3BlcnR5TmFtZT86IHN0cmluZztcbiAgICB9O1xuICAgIG5hbWU6ICdJbnB1dCcgfCAnT3V0cHV0JztcbiAgICB0eXBlOiBUeXBlRG9jVHlwZTtcbiAgfVtdO1xuXG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcblxuICBmbGFncz86IHtcbiAgICBpc09wdGlvbmFsPzogYm9vbGVhbjtcbiAgICBpc1N0YXRpYz86IGJvb2xlYW47XG4gIH07XG5cbiAga2luZD86XG4gICAgfCBUeXBlRG9jS2luZC5BY2Nlc3NvclxuICAgIHwgVHlwZURvY0tpbmQuQ2FsbFNpZ25hdHVyZVxuICAgIHwgVHlwZURvY0tpbmQuQ29uc3RydWN0b3JcbiAgICB8IFR5cGVEb2NLaW5kLkNvbnN0cnVjdG9yU2lnbmF0dXJlXG4gICAgfCBUeXBlRG9jS2luZC5JbmRleFNpZ25hdHVyZVxuICAgIHwgVHlwZURvY0tpbmQuRW51bU1lbWJlclxuICAgIHwgVHlwZURvY0tpbmQuUGFyYW1ldGVyXG4gICAgfCBUeXBlRG9jS2luZC5Qcm9wZXJ0eVxuICAgIHwgVHlwZURvY0tpbmQuTWV0aG9kO1xuXG4gIGdldFNpZ25hdHVyZT86IHtcbiAgICBjb21tZW50OiBUeXBlRG9jQ29tbWVudDtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdHlwZTogVHlwZURvY1R5cGU7XG4gIH07XG5cbiAgbmFtZT86IHN0cmluZztcblxuICBzZXRTaWduYXR1cmU/OiB7XG4gICAgY29tbWVudDogVHlwZURvY0NvbW1lbnQ7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHBhcmFtZXRlcnM/OiBUeXBlRG9jUGFyYW1ldGVyW107XG4gICAgdHlwZTogVHlwZURvY1R5cGU7XG4gIH07XG5cbiAgc2lnbmF0dXJlcz86IFR5cGVEb2NTaWduYXR1cmVbXTtcblxuICBzb3VyY2VzPzogVHlwZURvY1NvdXJjZVtdO1xuXG4gIHR5cGU/OiBUeXBlRG9jVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jRW50cnkge1xuICBhbmNob3JJZD86IHN0cmluZztcblxuICBjaGlsZHJlbj86IFR5cGVEb2NFbnRyeUNoaWxkW107XG5cbiAgY29tbWVudD86IFR5cGVEb2NDb21tZW50O1xuXG4gIGRlY29yYXRvcnM/OiB7XG4gICAgYXJndW1lbnRzPzoge1xuICAgICAgb2JqPzogc3RyaW5nO1xuICAgIH07XG4gICAgbmFtZTogJ0NvbXBvbmVudCcgfCAnRGlyZWN0aXZlJyB8ICdJbmplY3RhYmxlJyB8ICdOZ01vZHVsZScgfCAnUGlwZSc7XG4gICAgdHlwZTogVHlwZURvY1R5cGU7XG4gIH1bXTtcblxuICBraW5kPzpcbiAgICB8IFR5cGVEb2NLaW5kLkNsYXNzXG4gICAgfCBUeXBlRG9jS2luZC5FbnVtXG4gICAgfCBUeXBlRG9jS2luZC5JbnRlcmZhY2VcbiAgICB8IFR5cGVEb2NLaW5kLlR5cGVBbGlhcztcblxuICBpbmRleFNpZ25hdHVyZT86IFR5cGVEb2NTaWduYXR1cmU7XG5cbiAgbmFtZT86IHN0cmluZztcblxuICBzb3VyY2VzPzogVHlwZURvY1NvdXJjZVtdO1xuXG4gIHR5cGU/OiBUeXBlRG9jVHlwZTtcblxuICB0eXBlUGFyYW1ldGVycz86IFR5cGVEb2NUeXBlUGFyYW1ldGVyW107XG59XG5cbi8qKlxuICogVGhpcyBlbnVtIGNvbWVzIGZyb206XG4gKiBodHRwczovL2dpdGh1Yi5jb20vVHlwZVN0cm9uZy90eXBlZG9jL2Jsb2IvdjAuMjQuOC9zcmMvbGliL21vZGVscy9yZWZsZWN0aW9ucy9raW5kLnRzXG4gKiBUaGUgZW51bSBpcyB1cCB0byBkYXRlIGFzIG9mIHZlcnNpb24gYDAuMjQuOGAuXG4gKi9cbmV4cG9ydCBlbnVtIFR5cGVEb2NLaW5kIHtcbiAgUHJvamVjdCA9IDB4MSxcbiAgTW9kdWxlID0gMHgyLFxuICBOYW1lc3BhY2UgPSAweDQsXG4gIEVudW0gPSAweDgsXG4gIEVudW1NZW1iZXIgPSAweDEwLFxuICBWYXJpYWJsZSA9IDB4MjAsXG4gIEZ1bmN0aW9uID0gMHg0MCxcbiAgQ2xhc3MgPSAweDgwLFxuICBJbnRlcmZhY2UgPSAweDEwMCxcbiAgQ29uc3RydWN0b3IgPSAweDIwMCxcbiAgUHJvcGVydHkgPSAweDQwMCxcbiAgTWV0aG9kID0gMHg4MDAsXG4gIENhbGxTaWduYXR1cmUgPSAweDEwMDAsXG4gIEluZGV4U2lnbmF0dXJlID0gMHgyMDAwLFxuICBDb25zdHJ1Y3RvclNpZ25hdHVyZSA9IDB4NDAwMCxcbiAgUGFyYW1ldGVyID0gMHg4MDAwLFxuICBUeXBlTGl0ZXJhbCA9IDB4MTAwMDAsXG4gIFR5cGVQYXJhbWV0ZXIgPSAweDIwMDAwLFxuICBBY2Nlc3NvciA9IDB4NDAwMDAsXG4gIEdldFNpZ25hdHVyZSA9IDB4ODAwMDAsXG4gIFNldFNpZ25hdHVyZSA9IDB4MTAwMDAwLFxuICAvKiogQGRlcHJlY2F0ZWQgd2lsbCBiZSByZW1vdmVkIGluIHYwLjI1LCBub3QgdXNlZCAqL1xuICBPYmplY3RMaXRlcmFsID0gMHgyMDAwMDAsXG4gIFR5cGVBbGlhcyA9IDB4NDAwMDAwLFxuICBSZWZlcmVuY2UgPSAweDgwMDAwMCxcbn1cbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -13,6 +13,7 @@ export * from './modules/markdown/markdown.pipe';
|
|
|
13
13
|
export * from './modules/module-info/module-info.module';
|
|
14
14
|
export * from './modules/shared/docs-tools-component-info';
|
|
15
15
|
export * from './modules/shared/docs-tools-options';
|
|
16
|
+
export * from './modules/shared/docs-tools-site-options';
|
|
16
17
|
export * from './modules/shared/docs-tools-supportal.service';
|
|
17
18
|
export * from './modules/source-code/source-code-provider';
|
|
18
19
|
export * from './modules/thumbnail/thumbnail.module';
|
|
@@ -64,4 +65,4 @@ export { SkyDocsPropertyDefinitionsComponent as λ28 } from './modules/type-defi
|
|
|
64
65
|
export { SkyDocsTypeAliasDefinitionComponent as λ29 } from './modules/type-definitions/type-alias-definition.component';
|
|
65
66
|
export { SkyDocsTypeAnchorLinksPipe as λ30 } from './modules/type-definitions/type-anchor-links.pipe';
|
|
66
67
|
export { SkyDocsAnatomyThumbnailComponent as λ31 } from './modules/anatomy/anatomy-thumbnail.component';
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNENBQTRDLENBQUM7QUFFM0QsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGNBQWMsc0RBQXNELENBQUM7QUFFckUsY0FBYyxnREFBZ0QsQ0FBQztBQUUvRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0NBQWtDLENBQUM7QUFFakQsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywrQ0FBK0MsQ0FBQztBQUU5RCxjQUFjLDRDQUE0QyxDQUFDO0FBRTNELGNBQWMsc0NBQXNDLENBQUM7QUFFckQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHFEQUFxRCxDQUFDO0FBRXBFLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsMEZBQTBGO0FBQzFGLDJFQUEyRTtBQUMzRSxPQUFPLEVBQUUsMkJBQTJCLElBQUksRUFBRSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0YsT0FBTyxFQUFFLHVCQUF1QixJQUFJLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSwyQkFBMkIsSUFBSSxFQUFFLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNuRyxPQUFPLEVBQUUsNEJBQTRCLElBQUksRUFBRSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDckcsT0FBTyxFQUFFLHdDQUF3QyxJQUFJLEVBQUUsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3RILE9BQU8sRUFBRSwwQ0FBMEMsSUFBSSxFQUFFLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMzSCxPQUFPLEVBQUUsdUNBQXVDLElBQUksRUFBRSxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDcEgsT0FBTyxFQUFFLGdDQUFnQyxJQUFJLEVBQUUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxvQkFBb0IsSUFBSSxFQUFFLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0NBQWtDLElBQUksR0FBRyxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDaEgsT0FBTyxFQUFFLCtCQUErQixJQUFJLEdBQUcsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSwrQkFBK0IsSUFBSSxHQUFHLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsdUNBQXVDLElBQUksR0FBRyxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDMUgsT0FBTyxFQUFFLHdCQUF3QixJQUFJLEdBQUcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSx3Q0FBd0MsSUFBSSxHQUFHLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNuSSxPQUFPLEVBQUUsK0JBQStCLElBQUksR0FBRyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDaEgsT0FBTyxFQUFFLGdDQUFnQyxJQUFJLEdBQUcsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2xILE9BQU8sRUFBRSw2QkFBNkIsSUFBSSxHQUFHLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsMEJBQTBCLElBQUksR0FBRyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDaEcsT0FBTyxFQUFFLHlCQUF5QixJQUFJLEdBQUcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1Q0FBdUMsSUFBSSxHQUFHLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNoSSxPQUFPLEVBQUUsK0JBQStCLElBQUksR0FBRyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDL0csT0FBTyxFQUFFLG1DQUFtQyxJQUFJLEdBQUcsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxxQ0FBcUMsSUFBSSxHQUFHLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUMzSCxPQUFPLEVBQUUsbUNBQW1DLElBQUksR0FBRyxFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDdkgsT0FBTyxFQUFFLGlDQUFpQyxJQUFJLEdBQUcsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ25ILE9BQU8sRUFBRSw4QkFBOEIsSUFBSSxHQUFHLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM3RyxPQUFPLEVBQUUsbUNBQW1DLElBQUksR0FBRyxFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDdkgsT0FBTyxFQUFFLG1DQUFtQyxJQUFJLEdBQUcsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3hILE9BQU8sRUFBRSwwQkFBMEIsSUFBSSxHQUFHLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZ0NBQWdDLElBQUksR0FBRyxFQUFFLE1BQU0sK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vZHVsZXMvYW5hdG9teS9hbmF0b215Lm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9jb2RlLWV4YW1wbGVzL2NvZGUtZXhhbXBsZXMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9jb2RlLWV4YW1wbGVzL2NvZGUtZXhhbXBsZS10aGVtZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9kZW1vL2RlbW8tY29udGVudC1hbGlnbm1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2RlbW8vZGVtby1jb250cm9sLXBhbmVsLWNoYW5nZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvZGVtby9kZW1vLWNvbnRyb2wtcGFuZWwtcmFkaW8tY2hvaWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9kZW1vL2RlbW8ubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2RlbW8tcGFnZS9kZW1vLXBhZ2UubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2Rlc2lnbi1ndWlkZWxpbmVzL2Rlc2lnbi1ndWlkZWxpbmVzLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9oZWFkaW5nLWFuY2hvci9oZWFkaW5nLWFuY2hvci5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvbWFya2Rvd24vbWFya2Rvd24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9tYXJrZG93bi9tYXJrZG93bi5waXBlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL21vZHVsZS1pbmZvL21vZHVsZS1pbmZvLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9zaGFyZWQvZG9jcy10b29scy1jb21wb25lbnQtaW5mbyc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvc2hhcmVkL2RvY3MtdG9vbHMtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvc2hhcmVkL2RvY3MtdG9vbHMtc3VwcG9ydGFsLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvc291cmNlLWNvZGUvc291cmNlLWNvZGUtcHJvdmlkZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdGh1bWJuYWlsL3RodW1ibmFpbC5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9jbGFzcy1kZWZpbml0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL2RpcmVjdGl2ZS1kZWZpbml0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL2VudW1lcmF0aW9uLWRlZmluaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvaW50ZXJmYWNlLWRlZmluaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvaW50ZXJmYWNlLXByb3BlcnR5LWRlZmluaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvbWV0aG9kLWRlZmluaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvcGFyYW1ldGVyLWRlZmluaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvcGlwZS1kZWZpbml0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3Byb3BlcnR5LWRlY29yYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9wcm9wZXJ0eS1kZWZpbml0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3R5cGUtYWxpYXMtZGVmaW5pdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlLWRlZmluaXRpb25zLXByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3R5cGUtZGVmaW5pdGlvbnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3R5cGUtZGVmaW5pdGlvbnMuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZG9jcy10b29scy5tb2R1bGUnO1xuXG4vLyBDb21wb25lbnRzIGFuZCBkaXJlY3RpdmVzIG11c3QgYmUgZXhwb3J0ZWQgdG8gc3VwcG9ydCBBbmd1bGFy4oCZcyDigJxwYXJ0aWFs4oCdIEl2eSBjb21waWxlci5cbi8vIE9ic2N1cmUgbmFtZXMgYXJlIHVzZWQgdG8gaW5kaWNhdGUgdHlwZXMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBwdWJsaWMgQVBJLlxuZXhwb3J0IHsgU2t5RG9jc0FuYXRvbXlJdGVtQ29tcG9uZW50IGFzIM67MSB9IGZyb20gJy4vbW9kdWxlcy9hbmF0b215L2FuYXRvbXktaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc0FuYXRvbXlDb21wb25lbnQgYXMgzrsyIH0gZnJvbSAnLi9tb2R1bGVzL2FuYXRvbXkvYW5hdG9teS5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc0NvZGVFeGFtcGxlQ29tcG9uZW50IGFzIM67MyB9IGZyb20gJy4vbW9kdWxlcy9jb2RlLWV4YW1wbGVzL2NvZGUtZXhhbXBsZS5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc0NvZGVFeGFtcGxlc0NvbXBvbmVudCBhcyDOuzQgfSBmcm9tICcuL21vZHVsZXMvY29kZS1leGFtcGxlcy9jb2RlLWV4YW1wbGVzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzRGVtb0NvbnRyb2xQYW5lbENoZWNrYm94Q29tcG9uZW50IGFzIM67NSB9IGZyb20gJy4vbW9kdWxlcy9kZW1vL2RlbW8tY29udHJvbC1wYW5lbC1jaGVja2JveC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc0RlbW9Db250cm9sUGFuZWxSYWRpb0dyb3VwQ29tcG9uZW50IGFzIM67NiB9IGZyb20gJy4vbW9kdWxlcy9kZW1vL2RlbW8tY29udHJvbC1wYW5lbC1yYWRpby1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc0RlbW9Db250cm9sUGFuZWxTZWN0aW9uQ29tcG9uZW50IGFzIM67NyB9IGZyb20gJy4vbW9kdWxlcy9kZW1vL2RlbW8tY29udHJvbC1wYW5lbC1zZWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzRGVtb0NvbnRyb2xQYW5lbENvbXBvbmVudCBhcyDOuzggfSBmcm9tICcuL21vZHVsZXMvZGVtby9kZW1vLWNvbnRyb2wtcGFuZWwuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NEZW1vQ29tcG9uZW50IGFzIM67OSB9IGZyb20gJy4vbW9kdWxlcy9kZW1vL2RlbW8uY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NEZW1vUGFnZU1vZHVsZUluZm9Db21wb25lbnQgYXMgzrsxMCB9IGZyb20gJy4vbW9kdWxlcy9kZW1vLXBhZ2UvZGVtby1wYWdlLW1vZHVsZS1pbmZvLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzRGVtb1BhZ2VTZWN0aW9uQ29tcG9uZW50IGFzIM67MTEgfSBmcm9tICcuL21vZHVsZXMvZGVtby1wYWdlL2RlbW8tcGFnZS1zZWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzRGVtb1BhZ2VTdW1tYXJ5Q29tcG9uZW50IGFzIM67MTIgfSBmcm9tICcuL21vZHVsZXMvZGVtby1wYWdlL2RlbW8tcGFnZS1zdW1tYXJ5LmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzRGVtb1BhZ2VUeXBlRGVmaW5pdGlvbnNDb21wb25lbnQgYXMgzrsxMyB9IGZyb20gJy4vbW9kdWxlcy9kZW1vLXBhZ2UvZGVtby1wYWdlLXR5cGUtZGVmaW5pdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NEZW1vUGFnZUNvbXBvbmVudCBhcyDOuzE0IH0gZnJvbSAnLi9tb2R1bGVzL2RlbW8tcGFnZS9kZW1vLXBhZ2UuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NEZXNpZ25HdWlkZWxpbmVUaHVtYm5haWxDb21wb25lbnQgYXMgzrsxNSB9IGZyb20gJy4vbW9kdWxlcy9kZXNpZ24tZ3VpZGVsaW5lcy9kZXNpZ24tZ3VpZGVsaW5lLXRodW1ibmFpbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc0Rlc2lnbkd1aWRlbGluZUNvbXBvbmVudCBhcyDOuzE2IH0gZnJvbSAnLi9tb2R1bGVzL2Rlc2lnbi1ndWlkZWxpbmVzL2Rlc2lnbi1ndWlkZWxpbmUuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NEZXNpZ25HdWlkZWxpbmVzQ29tcG9uZW50IGFzIM67MTcgfSBmcm9tICcuL21vZHVsZXMvZGVzaWduLWd1aWRlbGluZXMvZGVzaWduLWd1aWRlbGluZXMuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NIZWFkaW5nQW5jaG9yQ29tcG9uZW50IGFzIM67MTggfSBmcm9tICcuL21vZHVsZXMvaGVhZGluZy1hbmNob3IvaGVhZGluZy1hbmNob3IuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NNb2R1bGVJbmZvQ29tcG9uZW50IGFzIM67MTkgfSBmcm9tICcuL21vZHVsZXMvbW9kdWxlLWluZm8vbW9kdWxlLWluZm8uY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NUaHVtYm5haWxDb21wb25lbnQgYXMgzrsyMCB9IGZyb20gJy4vbW9kdWxlcy90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzQ2FsbFNpZ25hdHVyZURlZmluaXRpb25Db21wb25lbnQgYXMgzrsyMSB9IGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL2NhbGwtc2lnbmF0dXJlLWRlZmluaXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NDbGFzc0RlZmluaXRpb25Db21wb25lbnQgYXMgzrsyMiB9IGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL2NsYXNzLWRlZmluaXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NEaXJlY3RpdmVEZWZpbml0aW9uQ29tcG9uZW50IGFzIM67MjMgfSBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9kaXJlY3RpdmUtZGVmaW5pdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc0VudW1lcmF0aW9uRGVmaW5pdGlvbkNvbXBvbmVudCBhcyDOuzI0IH0gZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvZW51bWVyYXRpb24tZGVmaW5pdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc0ludGVyZmFjZURlZmluaXRpb25Db21wb25lbnQgYXMgzrsyNSB9IGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL2ludGVyZmFjZS1kZWZpbml0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzTWV0aG9kRGVmaW5pdGlvbnNDb21wb25lbnQgYXMgzrsyNiB9IGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL21ldGhvZC1kZWZpbml0aW9ucy5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc1BpcGVEZWZpbml0aW9uQ29tcG9uZW50IGFzIM67MjcgfSBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9waXBlLWRlZmluaXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NQcm9wZXJ0eURlZmluaXRpb25zQ29tcG9uZW50IGFzIM67MjggfSBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9wcm9wZXJ0eS1kZWZpbml0aW9ucy5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc1R5cGVBbGlhc0RlZmluaXRpb25Db21wb25lbnQgYXMgzrsyOSB9IGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3R5cGUtYWxpYXMtZGVmaW5pdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc1R5cGVBbmNob3JMaW5rc1BpcGUgYXMgzrszMCB9IGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3R5cGUtYW5jaG9yLWxpbmtzLnBpcGUnO1xuZXhwb3J0IHsgU2t5RG9jc0FuYXRvbXlUaHVtYm5haWxDb21wb25lbnQgYXMgzrszMSB9IGZyb20gJy4vbW9kdWxlcy9hbmF0b215L2FuYXRvbXktdGh1bWJuYWlsLmNvbXBvbmVudCc7XG4iXX0=
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNENBQTRDLENBQUM7QUFFM0QsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGNBQWMsc0RBQXNELENBQUM7QUFFckUsY0FBYyxnREFBZ0QsQ0FBQztBQUUvRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0NBQWtDLENBQUM7QUFFakQsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLCtDQUErQyxDQUFDO0FBRTlELGNBQWMsNENBQTRDLENBQUM7QUFFM0QsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMscURBQXFELENBQUM7QUFFcEUs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L2FuYXRvbXkubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2NvZGUtZXhhbXBsZXMvY29kZS1leGFtcGxlcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2NvZGUtZXhhbXBsZXMvY29kZS1leGFtcGxlLXRoZW1lJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2RlbW8vZGVtby1jb250ZW50LWFsaWdubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvZGVtby9kZW1vLWNvbnRyb2wtcGFuZWwtY2hhbmdlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9kZW1vL2RlbW8tY29udHJvbC1wYW5lbC1yYWRpby1jaG9pY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2RlbW8vZGVtby5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvZGVtby1wYWdlL2RlbW8tcGFnZS5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvZGVzaWduLWd1aWRlbGluZXMvZGVzaWduLWd1aWRlbGluZXMubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2hlYWRpbmctYW5jaG9yL2hlYWRpbmctYW5jaG9yLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9tYXJrZG93bi9tYXJrZG93bi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL21hcmtkb3duL21hcmtkb3duLnBpcGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvbW9kdWxlLWluZm8vbW9kdWxlLWluZm8ubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3NoYXJlZC9kb2NzLXRvb2xzLWNvbXBvbmVudC1pbmZvJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9zaGFyZWQvZG9jcy10b29scy1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9zaGFyZWQvZG9jcy10b29scy1zaXRlLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3NoYXJlZC9kb2NzLXRvb2xzLXN1cHBvcnRhbC5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3NvdXJjZS1jb2RlL3NvdXJjZS1jb2RlLXByb3ZpZGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3RodW1ibmFpbC90aHVtYm5haWwubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvY2xhc3MtZGVmaW5pdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9kaXJlY3RpdmUtZGVmaW5pdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9lbnVtZXJhdGlvbi1kZWZpbml0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL2ludGVyZmFjZS1kZWZpbml0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL2ludGVyZmFjZS1wcm9wZXJ0eS1kZWZpbml0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL21ldGhvZC1kZWZpbml0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3BhcmFtZXRlci1kZWZpbml0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3BpcGUtZGVmaW5pdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9wcm9wZXJ0eS1kZWNvcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvcHJvcGVydHktZGVmaW5pdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlLWFsaWFzLWRlZmluaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvdHlwZS1kZWZpbml0aW9ucy1wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlLWRlZmluaXRpb25zLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlLWRlZmluaXRpb25zLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RvY3MtdG9vbHMubW9kdWxlJztcblxuLy8gQ29tcG9uZW50cyBhbmQgZGlyZWN0aXZlcyBtdXN0IGJlIGV4cG9ydGVkIHRvIHN1cHBvcnQgQW5ndWxhcuKAmXMg4oCccGFydGlhbOKAnSBJdnkgY29tcGlsZXIuXG4vLyBPYnNjdXJlIG5hbWVzIGFyZSB1c2VkIHRvIGluZGljYXRlIHR5cGVzIGFyZSBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSS5cbmV4cG9ydCB7IFNreURvY3NBbmF0b215SXRlbUNvbXBvbmVudCBhcyDOuzEgfSBmcm9tICcuL21vZHVsZXMvYW5hdG9teS9hbmF0b215LWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NBbmF0b215Q29tcG9uZW50IGFzIM67MiB9IGZyb20gJy4vbW9kdWxlcy9hbmF0b215L2FuYXRvbXkuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NDb2RlRXhhbXBsZUNvbXBvbmVudCBhcyDOuzMgfSBmcm9tICcuL21vZHVsZXMvY29kZS1leGFtcGxlcy9jb2RlLWV4YW1wbGUuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NDb2RlRXhhbXBsZXNDb21wb25lbnQgYXMgzrs0IH0gZnJvbSAnLi9tb2R1bGVzL2NvZGUtZXhhbXBsZXMvY29kZS1leGFtcGxlcy5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc0RlbW9Db250cm9sUGFuZWxDaGVja2JveENvbXBvbmVudCBhcyDOuzUgfSBmcm9tICcuL21vZHVsZXMvZGVtby9kZW1vLWNvbnRyb2wtcGFuZWwtY2hlY2tib3guY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NEZW1vQ29udHJvbFBhbmVsUmFkaW9Hcm91cENvbXBvbmVudCBhcyDOuzYgfSBmcm9tICcuL21vZHVsZXMvZGVtby9kZW1vLWNvbnRyb2wtcGFuZWwtcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NEZW1vQ29udHJvbFBhbmVsU2VjdGlvbkNvbXBvbmVudCBhcyDOuzcgfSBmcm9tICcuL21vZHVsZXMvZGVtby9kZW1vLWNvbnRyb2wtcGFuZWwtc2VjdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc0RlbW9Db250cm9sUGFuZWxDb21wb25lbnQgYXMgzrs4IH0gZnJvbSAnLi9tb2R1bGVzL2RlbW8vZGVtby1jb250cm9sLXBhbmVsLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzRGVtb0NvbXBvbmVudCBhcyDOuzkgfSBmcm9tICcuL21vZHVsZXMvZGVtby9kZW1vLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzRGVtb1BhZ2VNb2R1bGVJbmZvQ29tcG9uZW50IGFzIM67MTAgfSBmcm9tICcuL21vZHVsZXMvZGVtby1wYWdlL2RlbW8tcGFnZS1tb2R1bGUtaW5mby5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc0RlbW9QYWdlU2VjdGlvbkNvbXBvbmVudCBhcyDOuzExIH0gZnJvbSAnLi9tb2R1bGVzL2RlbW8tcGFnZS9kZW1vLXBhZ2Utc2VjdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc0RlbW9QYWdlU3VtbWFyeUNvbXBvbmVudCBhcyDOuzEyIH0gZnJvbSAnLi9tb2R1bGVzL2RlbW8tcGFnZS9kZW1vLXBhZ2Utc3VtbWFyeS5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc0RlbW9QYWdlVHlwZURlZmluaXRpb25zQ29tcG9uZW50IGFzIM67MTMgfSBmcm9tICcuL21vZHVsZXMvZGVtby1wYWdlL2RlbW8tcGFnZS10eXBlLWRlZmluaXRpb25zLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzRGVtb1BhZ2VDb21wb25lbnQgYXMgzrsxNCB9IGZyb20gJy4vbW9kdWxlcy9kZW1vLXBhZ2UvZGVtby1wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzRGVzaWduR3VpZGVsaW5lVGh1bWJuYWlsQ29tcG9uZW50IGFzIM67MTUgfSBmcm9tICcuL21vZHVsZXMvZGVzaWduLWd1aWRlbGluZXMvZGVzaWduLWd1aWRlbGluZS10aHVtYm5haWwuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NEZXNpZ25HdWlkZWxpbmVDb21wb25lbnQgYXMgzrsxNiB9IGZyb20gJy4vbW9kdWxlcy9kZXNpZ24tZ3VpZGVsaW5lcy9kZXNpZ24tZ3VpZGVsaW5lLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzRGVzaWduR3VpZGVsaW5lc0NvbXBvbmVudCBhcyDOuzE3IH0gZnJvbSAnLi9tb2R1bGVzL2Rlc2lnbi1ndWlkZWxpbmVzL2Rlc2lnbi1ndWlkZWxpbmVzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzSGVhZGluZ0FuY2hvckNvbXBvbmVudCBhcyDOuzE4IH0gZnJvbSAnLi9tb2R1bGVzL2hlYWRpbmctYW5jaG9yL2hlYWRpbmctYW5jaG9yLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzTW9kdWxlSW5mb0NvbXBvbmVudCBhcyDOuzE5IH0gZnJvbSAnLi9tb2R1bGVzL21vZHVsZS1pbmZvL21vZHVsZS1pbmZvLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzVGh1bWJuYWlsQ29tcG9uZW50IGFzIM67MjAgfSBmcm9tICcuL21vZHVsZXMvdGh1bWJuYWlsL3RodW1ibmFpbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc0NhbGxTaWduYXR1cmVEZWZpbml0aW9uQ29tcG9uZW50IGFzIM67MjEgfSBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9jYWxsLXNpZ25hdHVyZS1kZWZpbml0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzQ2xhc3NEZWZpbml0aW9uQ29tcG9uZW50IGFzIM67MjIgfSBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9jbGFzcy1kZWZpbml0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzRGlyZWN0aXZlRGVmaW5pdGlvbkNvbXBvbmVudCBhcyDOuzIzIH0gZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvZGlyZWN0aXZlLWRlZmluaXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NFbnVtZXJhdGlvbkRlZmluaXRpb25Db21wb25lbnQgYXMgzrsyNCB9IGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL2VudW1lcmF0aW9uLWRlZmluaXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NJbnRlcmZhY2VEZWZpbml0aW9uQ29tcG9uZW50IGFzIM67MjUgfSBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9pbnRlcmZhY2UtZGVmaW5pdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RG9jc01ldGhvZERlZmluaXRpb25zQ29tcG9uZW50IGFzIM67MjYgfSBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9tZXRob2QtZGVmaW5pdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NQaXBlRGVmaW5pdGlvbkNvbXBvbmVudCBhcyDOuzI3IH0gZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvcGlwZS1kZWZpbml0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lEb2NzUHJvcGVydHlEZWZpbml0aW9uc0NvbXBvbmVudCBhcyDOuzI4IH0gZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvcHJvcGVydHktZGVmaW5pdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NUeXBlQWxpYXNEZWZpbml0aW9uQ29tcG9uZW50IGFzIM67MjkgfSBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlLWFsaWFzLWRlZmluaXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7IFNreURvY3NUeXBlQW5jaG9yTGlua3NQaXBlIGFzIM67MzAgfSBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlLWFuY2hvci1saW5rcy5waXBlJztcbmV4cG9ydCB7IFNreURvY3NBbmF0b215VGh1bWJuYWlsQ29tcG9uZW50IGFzIM67MzEgfSBmcm9tICcuL21vZHVsZXMvYW5hdG9teS9hbmF0b215LXRodW1ibmFpbC5jb21wb25lbnQnO1xuIl19
|