@hestia-earth/ui-components 0.27.59 → 0.27.61
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.
|
@@ -18,7 +18,8 @@ const nestedNodesByType = {
|
|
|
18
18
|
[NodeType.Cycle]: (node) => [
|
|
19
19
|
node.site,
|
|
20
20
|
node.otherSites,
|
|
21
|
-
node.inputs?.map(input => input.impactAssessment)?.flat()
|
|
21
|
+
node.inputs?.map(input => input.impactAssessment)?.flat(),
|
|
22
|
+
node.animals?.flatMap(animal => animal.inputs?.map(input => input.impactAssessment)?.flat())
|
|
22
23
|
],
|
|
23
24
|
[NodeType.ImpactAssessment]: (node) => [node.cycle]
|
|
24
25
|
};
|
|
@@ -46,7 +47,7 @@ export class EngineModelsStageDeepComponent {
|
|
|
46
47
|
this.relatedNodes$ = toObservable(this.relatedNodes);
|
|
47
48
|
this.nodesLength = toSignal(this.relatedNodes$.pipe(map(nodes => nodes?.length ?? 0)));
|
|
48
49
|
this.nodes = toSignal(combineLatest([this.relatedNodes$, this.nodeStoreService.nodes$()]).pipe(filter(([nodes]) => nodes?.length > 0), distinctUntilChangedDeep(), tap(() => this.loading.set(true)), mergeMap(([nodes, allNodes]) => from(nodes).pipe(mergeMap(node => this.findNode(allNodes, node)), filter(v => !!v), toArray())), tap(() => this.loading.set(false))));
|
|
49
|
-
this.expandableNodes = computed(() => this.nodes()?.filter(n => this.expandedNode()?.['@type'] !== n['@type']
|
|
50
|
+
this.expandableNodes = computed(() => this.nodes()?.filter(n => this.expandedNode()?.['@type'] !== n['@type'] || this.expandedNode()?.['@id'] !== n['@id']) ?? []);
|
|
50
51
|
this.defaultMaxStage = computed(() => NODE_MAX_STAGE[this.type()]);
|
|
51
52
|
this.stage = computed(() => +this.node().stage || 0);
|
|
52
53
|
this.maxstage = computed(() => +this.node().maxstage || this.defaultMaxStage());
|
|
@@ -85,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
85
86
|
type: Component,
|
|
86
87
|
args: [{ selector: 'he-engine-models-stage-deep', standalone: true, imports: [FaIconComponent, EngineModelsVersionLinkComponent, SkeletonTextComponent, TimesPipe, NodeLinkComponent], template: "<div\n class=\"is-flex is-flex-direction-column is-gap-8 is-py-2 is-pl-2 | engine-models-stage--container is-type-{{ type }}\"\n [style.border-color]=\"nodeColour()\">\n <div class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-8\">\n @if (canExpand()) {\n <div (click)=\"expanded.set(!expanded())\" pointer>\n <fa-icon [icon]=\"expanded() ? faAngleDown : faAngleRight\"></fa-icon>\n </div>\n }\n\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-8 is-flex-wrap-wrap is-flex-grow-1\">\n <he-node-link class=\"is-flex-grow-1\" [node]=\"node()\" [showExternalLink]=\"true\">\n <span>{{ type() }} {{ id() }}</span>\n </he-node-link>\n\n <div class=\"is-flex is-flex-direction-column is-gap-4 | engine-models-stage--calculations\">\n <div class=\"is-flex is-gap-4 is-pr-2\">\n <span class=\"has-text-secondary has-text-weight-bold\">Calculations:</span>\n\n @if (inProgress()) {\n <span [class.has-text-danger]=\"stage() === 0\" [class.has-text-warning]=\"stage() > 0\">\n stage {{ stage() }} / {{ maxstage() }}\n </span>\n } @else {\n <span class=\"has-text-success\">complete</span>\n }\n </div>\n\n @if (showVersion()) {\n <he-engine-models-version-link [node]=\"node()\" [showDetails]=\"false\"></he-engine-models-version-link>\n }\n </div>\n </div>\n </div>\n\n @if (expanded()) {\n @if (loading() && nodesLength() > 0) {\n @for (node of nodesLength() | times; track $index) {\n <he-skeleton-text [width]=\"60\" />\n }\n }\n\n @for (relatedNode of expandableNodes(); track trackNode(relatedNode)) {\n <div class=\"related-node\">\n <he-engine-models-stage-deep\n [node]=\"relatedNode\"\n [expanded]=\"false\"\n [showVersion]=\"showVersion()\"\n [expandedNode]=\"expandedNode() || node()\" />\n </div>\n }\n }\n</div>\n", styles: [".engine-models-stage--container{border:1px solid transparent;border-radius:3px}.engine-models-stage--calculations{width:175px}he-engine-models-stage-deep ::ng-deep .engine-models-stage--container{border-right:0px;border-top-right-radius:0;border-bottom-right-radius:0}\n"] }]
|
|
87
88
|
}], ctorParameters: () => [] });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbmdpbmUvZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC9lbmdpbmUtbW9kZWxzLXN0YWdlLWRlZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWlELFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFOUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIs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MUMsU0FBUzsrQkFDRSw2QkFBNkIsY0FDM0IsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLGdDQUFnQyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgbW9kZWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUN5Y2xlSlNPTkxELCBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCwgSlNPTkxELCBqc29ubGRQYXRoLCBOb2RlVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBEYXRhU3RhdGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHRhcCwgdG9BcnJheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZyb20sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGYUljb25Db21wb25lbnQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBmYUFuZ2xlRG93biwgZmFBbmdsZVJpZ2h0IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcblxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWREZWVwIH0gZnJvbSAnLi4vLi4vY29tbW9uL3J4anMtdXRpbHMnO1xuaW1wb3J0IHsgVGltZXNQaXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3RpbWVzLnBpcGUnO1xuaW1wb3J0IHsgU2tlbGV0b25UZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL3NrZWxldG9uLXRleHQvc2tlbGV0b24tdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTk9ERV9NQVhfU1RBR0UsIEhlTm9kZVNlcnZpY2UsIElSZWxhdGVkTm9kZSwgbm9kZUNvbG91cnMgfSBmcm9tICcuLi8uLi9ub2RlL25vZGUuc2VydmljZSc7XG5pbXBvcnQgeyBub2RlcywgSGVOb2RlU3RvcmVTZXJ2aWNlLCBtZXJnZURhdGFXaXRoSGVhZGVycyB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS1zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IEVuZ2luZU1vZGVsc1ZlcnNpb25MaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vZW5naW5lLW1vZGVscy12ZXJzaW9uLWxpbmsvZW5naW5lLW1vZGVscy12ZXJzaW9uLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbm9kZS9ub2RlLWxpbmsvbm9kZS1saW5rLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBJSlNPTkxERXh0ZW5kZWQgZXh0ZW5kcyBKU09OTEQ8Tm9kZVR5cGU+IHtcbiAgc3RhZ2U/OiBudW1iZXI7XG4gIG1heHN0YWdlPzogbnVtYmVyO1xufVxuXG5jb25zdCBuZXN0ZWROb2Rlc0J5VHlwZToge1xuICBbdHlwZSBpbiBOb2RlVHlwZV0/OiAobm9kZTogSUpTT05MREV4dGVuZGVkKSA9PiAoSlNPTkxEPE5vZGVUeXBlPiB8IEpTT05MRDxOb2RlVHlwZT5bXSlbXTtcbn0gPSB7XG4gIFtOb2RlVHlwZS5DeWNsZV06IChub2RlOiBJQ3ljbGVKU09OTEQpID0+IFtcbiAgICBub2RlLnNpdGUsXG4gICAgbm9kZS5vdGhlclNpdGVzLFxuICAgIG5vZGUuaW5wdXRzPy5tYXAoaW5wdXQgPT4gaW5wdXQuaW1wYWN0QXNzZXNzbWVudCBhcyBhbnkpPy5mbGF0KClcbiAgXSxcbiAgW05vZGVUeXBlLkltcGFjdEFzc2Vzc21lbnRdOiAobm9kZTogSUltcGFjdEFzc2Vzc21lbnRKU09OTEQpID0+IFtub2RlLmN5Y2xlXVxufTtcblxuY29uc3QgcmVsYXRlZE5vZGVzQnlUeXBlOiB7XG4gIFt0eXBlIGluIE5vZGVUeXBlXT86IE5vZGVUeXBlW107XG59ID0ge1xuICBbTm9kZVR5cGUuU2l0ZV06IFtOb2RlVHlwZS5DeWNsZV1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWVuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGYUljb25Db21wb25lbnQsIEVuZ2luZU1vZGVsc1ZlcnNpb25MaW5rQ29tcG9uZW50LCBTa2VsZXRvblRleHRDb21wb25lbnQsIFRpbWVzUGlwZSwgTm9kZUxpbmtDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgRW5naW5lTW9kZWxzU3RhZ2VEZWVwQ29tcG9uZW50PFQgZXh0ZW5kcyBOb2RlVHlwZT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVTZXJ2aWNlID0gaW5qZWN0KEhlTm9kZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVTdG9yZVNlcnZpY2UgPSBpbmplY3QoSGVOb2RlU3RvcmVTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFBbmdsZVJpZ2h0ID0gZmFBbmdsZVJpZ2h0O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFBbmdsZURvd24gPSBmYUFuZ2xlRG93bjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm9kZSA9IGlucHV0LnJlcXVpcmVkPElKU09OTERFeHRlbmRlZD4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXhwYW5kZWQgPSBtb2RlbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93VmVyc2lvbiA9IG1vZGVsKHRydWUpO1xuICAvKipcbiAgICogV2hlbiBuZXN0aW5nIHRoZSBjb21wb25lbnRzLCBhdm9pZCBhbGxvd2luZyBleHBhbnNpb24gb24gdGhlIHRvcC1sZXZlbCBub2RlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGV4cGFuZGVkTm9kZSA9IGlucHV0PElKU09OTERFeHRlbmRlZD4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm5vZGUoKVsnQGlkJ10pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHlwZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubm9kZSgpWydAdHlwZSddKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm9kZUNvbG91ciA9IGNvbXB1dGVkKCgpID0+IG5vZGVDb2xvdXJzW3RoaXMudHlwZSgpXSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZWxhdGVkTm9kZXMgPSBzaWduYWw8KEpTT05MRDxOb2RlVHlwZT4gfCBJUmVsYXRlZE5vZGUpW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZWxhdGVkTm9kZXMkID0gdG9PYnNlcnZhYmxlKHRoaXMucmVsYXRlZE5vZGVzKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vZGVzTGVuZ3RoID0gdG9TaWduYWwodGhpcy5yZWxhdGVkTm9kZXMkLnBpcGUobWFwKG5vZGVzID0+IG5vZGVzPy5sZW5ndGggPz8gMCkpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVzID0gdG9TaWduYWwoXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5yZWxhdGVkTm9kZXMkLCB0aGlzLm5vZGVTdG9yZVNlcnZpY2Uubm9kZXMkKCldKS5waXBlKFxuICAgICAgZmlsdGVyKChbbm9kZXNdKSA9PiBub2Rlcz8ubGVuZ3RoID4gMCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZERlZXAoKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KHRydWUpKSxcbiAgICAgIG1lcmdlTWFwKChbbm9kZXMsIGFsbE5vZGVzXSkgPT5cbiAgICAgICAgZnJvbShub2RlcykucGlwZShcbiAgICAgICAgICBtZXJnZU1hcChub2RlID0+IHRoaXMuZmluZE5vZGUoYWxsTm9kZXMsIG5vZGUpKSxcbiAgICAgICAgICBmaWx0ZXIodiA9PiAhIXYpLFxuICAgICAgICAgIHRvQXJyYXkoKVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgdGFwKCgpID0+IHRoaXMubG9hZGluZy5zZXQoZmFsc2UpKVxuICAgIClcbiAgKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGV4cGFuZGFibGVOb2RlcyA9IGNvbXB1dGVkKFxuICAgICgpID0+XG4gICAgICB0aGlzLm5vZGVzKCk/LmZpbHRlcihcbiAgICAgICAgbiA9PiB0aGlzLmV4cGFuZGVkTm9kZSgpPy5bJ0B0eXBlJ10gIT09IG5bJ0B0eXBlJ10gJiYgdGhpcy5leHBhbmRlZE5vZGUoKT8uWydAaWQnXSAhPT0gblsnQGlkJ11cbiAgICAgICkgPz8gW11cbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRNYXhTdGFnZSA9IGNvbXB1dGVkKCgpID0+IE5PREVfTUFYX1NUQUdFW3RoaXMudHlwZSgpXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzdGFnZSA9IGNvbXB1dGVkKCgpID0+ICt0aGlzLm5vZGUoKS5zdGFnZSB8fCAwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1heHN0YWdlID0gY29tcHV0ZWQoKCkgPT4gK3RoaXMubm9kZSgpLm1heHN0YWdlIHx8IHRoaXMuZGVmYXVsdE1heFN0YWdlKCkpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5Qcm9ncmVzcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3RhZ2UoKSA8IHRoaXMubWF4c3RhZ2UoKSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbkV4cGFuZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZXhwYW5kYWJsZU5vZGVzKCk/Lmxlbmd0aCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5ub2RlKCk7XG4gICAgICAgIGNvbnN0IG5lc3RlZE5vZGVzID0gbmVzdGVkTm9kZXNCeVR5cGVbbm9kZVsnQHR5cGUnXV0/Lihub2RlKT8uZmxhdCgpPy5maWx0ZXIoQm9vbGVhbikgPz8gW107XG4gICAgICAgIGNvbnN0IHJlbGF0ZWROb2RlcyA9IHJlbGF0ZWROb2Rlc0J5VHlwZVtub2RlWydAdHlwZSddXSA/PyBbXTtcblxuICAgICAgICBmcm9tKHJlbGF0ZWROb2RlcylcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKG5vZGVUeXBlID0+IHRoaXMubm9kZVNlcnZpY2UuZ2V0UmVsYXRlZCQobm9kZSwgbm9kZVR5cGUpLnBpcGUobWVyZ2VNYXAoKHsgcmVzdWx0cyB9KSA9PiByZXN1bHRzKSkpLFxuICAgICAgICAgICAgdG9BcnJheSgpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWVzID0+IHRoaXMucmVsYXRlZE5vZGVzLnNldChbLi4udmFsdWVzLCAuLi5uZXN0ZWROb2Rlc10pKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTm9kZSQobm9kZTogSlNPTkxEPE5vZGVUeXBlPiB8IElSZWxhdGVkTm9kZSwgZGF0YVN0YXRlOiBEYXRhU3RhdGUpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlU2VydmljZVxuICAgICAgLmdldFdpdGhIZWFkZXJzJDxKU09OTEQ8VD4+KHtcbiAgICAgICAgLi4ubm9kZSxcbiAgICAgICAgZGF0YVN0YXRlXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEsIGhlYWRlcnMgfSkgPT4gbWVyZ2VEYXRhV2l0aEhlYWRlcnM8SUpTT05MREV4dGVuZGVkPihkYXRhLCBoZWFkZXJzKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTm9kZShhbGxOb2Rlczogbm9kZXMsIG5vZGU6IEpTT05MRDxOb2RlVHlwZT4gfCBJUmVsYXRlZE5vZGUpIHtcbiAgICBjb25zdCBtYXRjaGVkTm9kZSA9IGFsbE5vZGVzPy5bbm9kZVsnQHR5cGUnXV0/LmZpbmQodiA9PiB2Py5pZCA9PT0gbm9kZVsnQGlkJ10pO1xuICAgIHJldHVybiBtYXRjaGVkTm9kZVxuICAgICAgPyBvZigobWF0Y2hlZE5vZGUucmVjYWxjdWxhdGVkIHx8IG1hdGNoZWROb2RlLm9yaWdpbmFsKSBhcyBJSlNPTkxERXh0ZW5kZWQpXG4gICAgICA6IHRoaXMubG9hZE5vZGUkKG5vZGUsIERhdGFTdGF0ZS5yZWNhbGN1bGF0ZWQpLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiB0aGlzLmxvYWROb2RlJChub2RlLCBEYXRhU3RhdGUub3JpZ2luYWwpKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhY2tOb2RlKG5vZGU6IElKU09OTERFeHRlbmRlZCkge1xuICAgIHJldHVybiBqc29ubGRQYXRoKG5vZGVbJ0B0eXBlJ10sIG5vZGVbJ0BpZCddKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImlzLWZsZXggaXMtZmxleC1kaXJlY3Rpb24tY29sdW1uIGlzLWdhcC04IGlzLXB5LTIgaXMtcGwtMiB8IGVuZ2luZS1tb2RlbHMtc3RhZ2UtLWNvbnRhaW5lciBpcy10eXBlLXt7IHR5cGUgfX1cIlxuICBbc3R5bGUuYm9yZGVyLWNvbG9yXT1cIm5vZGVDb2xvdXIoKVwiPlxuICA8ZGl2IGNsYXNzPVwiaXMtZmxleCBpcy1mbGV4LWRpcmVjdGlvbi1yb3cgaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4gaXMtZ2FwLThcIj5cbiAgICBAaWYgKGNhbkV4cGFuZCgpKSB7XG4gICAgICA8ZGl2IChjbGljayk9XCJleHBhbmRlZC5zZXQoIWV4cGFuZGVkKCkpXCIgcG9pbnRlcj5cbiAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZXhwYW5kZWQoKSA/IGZhQW5nbGVEb3duIDogZmFBbmdsZVJpZ2h0XCI+PC9mYS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJpcy1mbGV4IGlzLWZsZXgtZGlyZWN0aW9uLXJvdyBpcy1qdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYmV0d2VlbiBpcy1nYXAtOCBpcy1mbGV4LXdyYXAtd3JhcCBpcy1mbGV4LWdyb3ctMVwiPlxuICAgICAgPGhlLW5vZGUtbGluayBjbGFzcz1cImlzLWZsZXgtZ3Jvdy0xXCIgW25vZGVdPVwibm9kZSgpXCIgW3Nob3dFeHRlcm5hbExpbmtdPVwidHJ1ZVwiPlxuICAgICAgICA8c3Bhbj57eyB0eXBlKCkgfX0ge3sgaWQoKSB9fTwvc3Bhbj5cbiAgICAgIDwvaGUtbm9kZS1saW5rPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaXMtZmxleCBpcy1mbGV4LWRpcmVjdGlvbi1jb2x1bW4gaXMtZ2FwLTQgfCBlbmdpbmUtbW9kZWxzLXN0YWdlLS1jYWxjdWxhdGlvbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlzLWZsZXggaXMtZ2FwLTQgaXMtcHItMlwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGFzLXRleHQtc2Vjb25kYXJ5IGhhcy10ZXh0LXdlaWdodC1ib2xkXCI+Q2FsY3VsYXRpb25zOjwvc3Bhbj5cblxuICAgICAgICAgIEBpZiAoaW5Qcm9ncmVzcygpKSB7XG4gICAgICAgICAgICA8c3BhbiBbY2xhc3MuaGFzLXRleHQtZGFuZ2VyXT1cInN0YWdlKCkgPT09IDBcIiBbY2xhc3MuaGFzLXRleHQtd2FybmluZ109XCJzdGFnZSgpID4gMFwiPlxuICAgICAgICAgICAgICBzdGFnZSB7eyBzdGFnZSgpIH19IC8ge3sgbWF4c3RhZ2UoKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoYXMtdGV4dC1zdWNjZXNzXCI+Y29tcGxldGU8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKHNob3dWZXJzaW9uKCkpIHtcbiAgICAgICAgICA8aGUtZW5naW5lLW1vZGVscy12ZXJzaW9uLWxpbmsgW25vZGVdPVwibm9kZSgpXCIgW3Nob3dEZXRhaWxzXT1cImZhbHNlXCI+PC9oZS1lbmdpbmUtbW9kZWxzLXZlcnNpb24tbGluaz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIEBpZiAoZXhwYW5kZWQoKSkge1xuICAgIEBpZiAobG9hZGluZygpICYmIG5vZGVzTGVuZ3RoKCkgPiAwKSB7XG4gICAgICBAZm9yIChub2RlIG9mIG5vZGVzTGVuZ3RoKCkgfCB0aW1lczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxoZS1za2VsZXRvbi10ZXh0IFt3aWR0aF09XCI2MFwiIC8+XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGZvciAocmVsYXRlZE5vZGUgb2YgZXhwYW5kYWJsZU5vZGVzKCk7IHRyYWNrIHRyYWNrTm9kZShyZWxhdGVkTm9kZSkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGVkLW5vZGVcIj5cbiAgICAgICAgPGhlLWVuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcFxuICAgICAgICAgIFtub2RlXT1cInJlbGF0ZWROb2RlXCJcbiAgICAgICAgICBbZXhwYW5kZWRdPVwiZmFsc2VcIlxuICAgICAgICAgIFtzaG93VmVyc2lvbl09XCJzaG93VmVyc2lvbigpXCJcbiAgICAgICAgICBbZXhwYW5kZWROb2RlXT1cImV4cGFuZGVkTm9kZSgpIHx8IG5vZGUoKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIH1cbjwvZGl2PlxuIl19
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbmdpbmUvZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC9lbmdpbmUtbW9kZWxzLXN0YWdlLWRlZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWlELFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFOUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIs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Q2hELENBQUM7K0dBNUZVLDhCQUE4QjttR0FBOUIsOEJBQThCLDByQkMvQzNDLG1nRUFzREEsd1VEUGEsOEJBQThCLHVMQUovQixlQUFlLGtQQUFFLGdDQUFnQywyR0FBRSxxQkFBcUIsaUdBQUUsU0FBUyw4Q0FBRSxpQkFBaUI7OzRGQUlyRyw4QkFBOEI7a0JBUDFDLFNBQVM7K0JBQ0UsNkJBQTZCLGNBQzNCLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxnQ0FBZ0MsRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG1vZGVsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDeWNsZUpTT05MRCwgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIEpTT05MRCwganNvbmxkUGF0aCwgTm9kZVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRGF0YVN0YXRlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCB0YXAsIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmFJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgZmFBbmdsZURvd24sIGZhQW5nbGVSaWdodCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5cbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkRGVlcCB9IGZyb20gJy4uLy4uL2NvbW1vbi9yeGpzLXV0aWxzJztcbmltcG9ydCB7IFRpbWVzUGlwZSB9IGZyb20gJy4uLy4uL2NvbW1vbi90aW1lcy5waXBlJztcbmltcG9ydCB7IFNrZWxldG9uVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9za2VsZXRvbi10ZXh0L3NrZWxldG9uLXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IE5PREVfTUFYX1NUQUdFLCBIZU5vZGVTZXJ2aWNlLCBJUmVsYXRlZE5vZGUsIG5vZGVDb2xvdXJzIH0gZnJvbSAnLi4vLi4vbm9kZS9ub2RlLnNlcnZpY2UnO1xuaW1wb3J0IHsgbm9kZXMsIEhlTm9kZVN0b3JlU2VydmljZSwgbWVyZ2VEYXRhV2l0aEhlYWRlcnMgfSBmcm9tICcuLi8uLi9ub2RlL25vZGUtc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBFbmdpbmVNb2RlbHNWZXJzaW9uTGlua0NvbXBvbmVudCB9IGZyb20gJy4uL2VuZ2luZS1tb2RlbHMtdmVyc2lvbi1saW5rL2VuZ2luZS1tb2RlbHMtdmVyc2lvbi1saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb2RlTGlua0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS1saW5rL25vZGUtbGluay5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgSUpTT05MREV4dGVuZGVkIGV4dGVuZHMgSlNPTkxEPE5vZGVUeXBlPiB7XG4gIHN0YWdlPzogbnVtYmVyO1xuICBtYXhzdGFnZT86IG51bWJlcjtcbn1cblxuY29uc3QgbmVzdGVkTm9kZXNCeVR5cGU6IHtcbiAgW3R5cGUgaW4gTm9kZVR5cGVdPzogKG5vZGU6IElKU09OTERFeHRlbmRlZCkgPT4gKEpTT05MRDxOb2RlVHlwZT4gfCBKU09OTEQ8Tm9kZVR5cGU+W10pW107XG59ID0ge1xuICBbTm9kZVR5cGUuQ3ljbGVdOiAobm9kZTogSUN5Y2xlSlNPTkxEKSA9PiBbXG4gICAgbm9kZS5zaXRlLFxuICAgIG5vZGUub3RoZXJTaXRlcyxcbiAgICBub2RlLmlucHV0cz8ubWFwKGlucHV0ID0+IGlucHV0LmltcGFjdEFzc2Vzc21lbnQgYXMgYW55KT8uZmxhdCgpLFxuICAgIG5vZGUuYW5pbWFscz8uZmxhdE1hcChhbmltYWwgPT4gYW5pbWFsLmlucHV0cz8ubWFwKGlucHV0ID0+IGlucHV0LmltcGFjdEFzc2Vzc21lbnQgYXMgYW55KT8uZmxhdCgpKVxuICBdLFxuICBbTm9kZVR5cGUuSW1wYWN0QXNzZXNzbWVudF06IChub2RlOiBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCkgPT4gW25vZGUuY3ljbGVdXG59O1xuXG5jb25zdCByZWxhdGVkTm9kZXNCeVR5cGU6IHtcbiAgW3R5cGUgaW4gTm9kZVR5cGVdPzogTm9kZVR5cGVbXTtcbn0gPSB7XG4gIFtOb2RlVHlwZS5TaXRlXTogW05vZGVUeXBlLkN5Y2xlXVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0ZhSWNvbkNvbXBvbmVudCwgRW5naW5lTW9kZWxzVmVyc2lvbkxpbmtDb21wb25lbnQsIFNrZWxldG9uVGV4dENvbXBvbmVudCwgVGltZXNQaXBlLCBOb2RlTGlua0NvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9lbmdpbmUtbW9kZWxzLXN0YWdlLWRlZXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBFbmdpbmVNb2RlbHNTdGFnZURlZXBDb21wb25lbnQ8VCBleHRlbmRzIE5vZGVUeXBlPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm9kZVNlcnZpY2UgPSBpbmplY3QoSGVOb2RlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm9kZVN0b3JlU2VydmljZSA9IGluamVjdChIZU5vZGVTdG9yZVNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBmYUFuZ2xlUmlnaHQgPSBmYUFuZ2xlUmlnaHQ7XG4gIHByb3RlY3RlZCByZWFkb25seSBmYUFuZ2xlRG93biA9IGZhQW5nbGVEb3duO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBub2RlID0gaW5wdXQucmVxdWlyZWQ8SUpTT05MREV4dGVuZGVkPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBleHBhbmRlZCA9IG1vZGVsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dWZXJzaW9uID0gbW9kZWwodHJ1ZSk7XG4gIC8qKlxuICAgKiBXaGVuIG5lc3RpbmcgdGhlIGNvbXBvbmVudHMsIGF2b2lkIGFsbG93aW5nIGV4cGFuc2lvbiBvbiB0aGUgdG9wLWxldmVsIG5vZGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXhwYW5kZWROb2RlID0gaW5wdXQ8SUpTT05MREV4dGVuZGVkPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMubm9kZSgpWydAaWQnXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0eXBlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5ub2RlKClbJ0B0eXBlJ10pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBub2RlQ29sb3VyID0gY29tcHV0ZWQoKCkgPT4gbm9kZUNvbG91cnNbdGhpcy50eXBlKCldKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlbGF0ZWROb2RlcyA9IHNpZ25hbDwoSlNPTkxEPE5vZGVUeXBlPiB8IElSZWxhdGVkTm9kZSlbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlbGF0ZWROb2RlcyQgPSB0b09ic2VydmFibGUodGhpcy5yZWxhdGVkTm9kZXMpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm9kZXNMZW5ndGggPSB0b1NpZ25hbCh0aGlzLnJlbGF0ZWROb2RlcyQucGlwZShtYXAobm9kZXMgPT4gbm9kZXM/Lmxlbmd0aCA/PyAwKSkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbm9kZXMgPSB0b1NpZ25hbChcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnJlbGF0ZWROb2RlcyQsIHRoaXMubm9kZVN0b3JlU2VydmljZS5ub2RlcyQoKV0pLnBpcGUoXG4gICAgICBmaWx0ZXIoKFtub2Rlc10pID0+IG5vZGVzPy5sZW5ndGggPiAwKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkRGVlcCgpLFxuICAgICAgdGFwKCgpID0+IHRoaXMubG9hZGluZy5zZXQodHJ1ZSkpLFxuICAgICAgbWVyZ2VNYXAoKFtub2RlcywgYWxsTm9kZXNdKSA9PlxuICAgICAgICBmcm9tKG5vZGVzKS5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKG5vZGUgPT4gdGhpcy5maW5kTm9kZShhbGxOb2Rlcywgbm9kZSkpLFxuICAgICAgICAgIGZpbHRlcih2ID0+ICEhdiksXG4gICAgICAgICAgdG9BcnJheSgpXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nLnNldChmYWxzZSkpXG4gICAgKVxuICApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXhwYW5kYWJsZU5vZGVzID0gY29tcHV0ZWQoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMubm9kZXMoKT8uZmlsdGVyKFxuICAgICAgICBuID0+IHRoaXMuZXhwYW5kZWROb2RlKCk/LlsnQHR5cGUnXSAhPT0gblsnQHR5cGUnXSB8fCB0aGlzLmV4cGFuZGVkTm9kZSgpPy5bJ0BpZCddICE9PSBuWydAaWQnXVxuICAgICAgKSA/PyBbXVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdE1heFN0YWdlID0gY29tcHV0ZWQoKCkgPT4gTk9ERV9NQVhfU1RBR0VbdGhpcy50eXBlKCldKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0YWdlID0gY29tcHV0ZWQoKCkgPT4gK3RoaXMubm9kZSgpLnN0YWdlIHx8IDApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWF4c3RhZ2UgPSBjb21wdXRlZCgoKSA9PiArdGhpcy5ub2RlKCkubWF4c3RhZ2UgfHwgdGhpcy5kZWZhdWx0TWF4U3RhZ2UoKSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpblByb2dyZXNzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zdGFnZSgpIDwgdGhpcy5tYXhzdGFnZSgpKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuRXhwYW5kID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5leHBhbmRhYmxlTm9kZXMoKT8ubGVuZ3RoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGUoKTtcbiAgICAgICAgY29uc3QgbmVzdGVkTm9kZXMgPSBuZXN0ZWROb2Rlc0J5VHlwZVtub2RlWydAdHlwZSddXT8uKG5vZGUpPy5mbGF0KCk/LmZpbHRlcihCb29sZWFuKSA/PyBbXTtcbiAgICAgICAgY29uc3QgcmVsYXRlZE5vZGVzID0gcmVsYXRlZE5vZGVzQnlUeXBlW25vZGVbJ0B0eXBlJ11dID8/IFtdO1xuXG4gICAgICAgIGZyb20ocmVsYXRlZE5vZGVzKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAobm9kZVR5cGUgPT4gdGhpcy5ub2RlU2VydmljZS5nZXRSZWxhdGVkJChub2RlLCBub2RlVHlwZSkucGlwZShtZXJnZU1hcCgoeyByZXN1bHRzIH0pID0+IHJlc3VsdHMpKSksXG4gICAgICAgICAgICB0b0FycmF5KClcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSh2YWx1ZXMgPT4gdGhpcy5yZWxhdGVkTm9kZXMuc2V0KFsuLi52YWx1ZXMsIC4uLm5lc3RlZE5vZGVzXSkpO1xuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxvYWROb2RlJChub2RlOiBKU09OTEQ8Tm9kZVR5cGU+IHwgSVJlbGF0ZWROb2RlLCBkYXRhU3RhdGU6IERhdGFTdGF0ZSkge1xuICAgIHJldHVybiB0aGlzLm5vZGVTZXJ2aWNlXG4gICAgICAuZ2V0V2l0aEhlYWRlcnMkPEpTT05MRDxUPj4oe1xuICAgICAgICAuLi5ub2RlLFxuICAgICAgICBkYXRhU3RhdGVcbiAgICAgIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSwgaGVhZGVycyB9KSA9PiBtZXJnZURhdGFXaXRoSGVhZGVyczxJSlNPTkxERXh0ZW5kZWQ+KGRhdGEsIGhlYWRlcnMpKSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmROb2RlKGFsbE5vZGVzOiBub2Rlcywgbm9kZTogSlNPTkxEPE5vZGVUeXBlPiB8IElSZWxhdGVkTm9kZSkge1xuICAgIGNvbnN0IG1hdGNoZWROb2RlID0gYWxsTm9kZXM/Lltub2RlWydAdHlwZSddXT8uZmluZCh2ID0+IHY/LmlkID09PSBub2RlWydAaWQnXSk7XG4gICAgcmV0dXJuIG1hdGNoZWROb2RlXG4gICAgICA/IG9mKChtYXRjaGVkTm9kZS5yZWNhbGN1bGF0ZWQgfHwgbWF0Y2hlZE5vZGUub3JpZ2luYWwpIGFzIElKU09OTERFeHRlbmRlZClcbiAgICAgIDogdGhpcy5sb2FkTm9kZSQobm9kZSwgRGF0YVN0YXRlLnJlY2FsY3VsYXRlZCkucGlwZShjYXRjaEVycm9yKCgpID0+IHRoaXMubG9hZE5vZGUkKG5vZGUsIERhdGFTdGF0ZS5vcmlnaW5hbCkpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0cmFja05vZGUobm9kZTogSUpTT05MREV4dGVuZGVkKSB7XG4gICAgcmV0dXJuIGpzb25sZFBhdGgobm9kZVsnQHR5cGUnXSwgbm9kZVsnQGlkJ10pO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiaXMtZmxleCBpcy1mbGV4LWRpcmVjdGlvbi1jb2x1bW4gaXMtZ2FwLTggaXMtcHktMiBpcy1wbC0yIHwgZW5naW5lLW1vZGVscy1zdGFnZS0tY29udGFpbmVyIGlzLXR5cGUte3sgdHlwZSB9fVwiXG4gIFtzdHlsZS5ib3JkZXItY29sb3JdPVwibm9kZUNvbG91cigpXCI+XG4gIDxkaXYgY2xhc3M9XCJpcy1mbGV4IGlzLWZsZXgtZGlyZWN0aW9uLXJvdyBpcy1qdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYmV0d2VlbiBpcy1nYXAtOFwiPlxuICAgIEBpZiAoY2FuRXhwYW5kKCkpIHtcbiAgICAgIDxkaXYgKGNsaWNrKT1cImV4cGFuZGVkLnNldCghZXhwYW5kZWQoKSlcIiBwb2ludGVyPlxuICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJleHBhbmRlZCgpID8gZmFBbmdsZURvd24gOiBmYUFuZ2xlUmlnaHRcIj48L2ZhLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImlzLWZsZXggaXMtZmxleC1kaXJlY3Rpb24tcm93IGlzLWp1c3RpZnktY29udGVudC1zcGFjZS1iZXR3ZWVuIGlzLWdhcC04IGlzLWZsZXgtd3JhcC13cmFwIGlzLWZsZXgtZ3Jvdy0xXCI+XG4gICAgICA8aGUtbm9kZS1saW5rIGNsYXNzPVwiaXMtZmxleC1ncm93LTFcIiBbbm9kZV09XCJub2RlKClcIiBbc2hvd0V4dGVybmFsTGlua109XCJ0cnVlXCI+XG4gICAgICAgIDxzcGFuPnt7IHR5cGUoKSB9fSB7eyBpZCgpIH19PC9zcGFuPlxuICAgICAgPC9oZS1ub2RlLWxpbms+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpcy1mbGV4IGlzLWZsZXgtZGlyZWN0aW9uLWNvbHVtbiBpcy1nYXAtNCB8IGVuZ2luZS1tb2RlbHMtc3RhZ2UtLWNhbGN1bGF0aW9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXMtZmxleCBpcy1nYXAtNCBpcy1wci0yXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJoYXMtdGV4dC1zZWNvbmRhcnkgaGFzLXRleHQtd2VpZ2h0LWJvbGRcIj5DYWxjdWxhdGlvbnM6PC9zcGFuPlxuXG4gICAgICAgICAgQGlmIChpblByb2dyZXNzKCkpIHtcbiAgICAgICAgICAgIDxzcGFuIFtjbGFzcy5oYXMtdGV4dC1kYW5nZXJdPVwic3RhZ2UoKSA9PT0gMFwiIFtjbGFzcy5oYXMtdGV4dC13YXJuaW5nXT1cInN0YWdlKCkgPiAwXCI+XG4gICAgICAgICAgICAgIHN0YWdlIHt7IHN0YWdlKCkgfX0gLyB7eyBtYXhzdGFnZSgpIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhhcy10ZXh0LXN1Y2Nlc3NcIj5jb21wbGV0ZTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAoc2hvd1ZlcnNpb24oKSkge1xuICAgICAgICAgIDxoZS1lbmdpbmUtbW9kZWxzLXZlcnNpb24tbGluayBbbm9kZV09XCJub2RlKClcIiBbc2hvd0RldGFpbHNdPVwiZmFsc2VcIj48L2hlLWVuZ2luZS1tb2RlbHMtdmVyc2lvbi1saW5rPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgQGlmIChleHBhbmRlZCgpKSB7XG4gICAgQGlmIChsb2FkaW5nKCkgJiYgbm9kZXNMZW5ndGgoKSA+IDApIHtcbiAgICAgIEBmb3IgKG5vZGUgb2Ygbm9kZXNMZW5ndGgoKSB8IHRpbWVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGhlLXNrZWxldG9uLXRleHQgW3dpZHRoXT1cIjYwXCIgLz5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZm9yIChyZWxhdGVkTm9kZSBvZiBleHBhbmRhYmxlTm9kZXMoKTsgdHJhY2sgdHJhY2tOb2RlKHJlbGF0ZWROb2RlKSkge1xuICAgICAgPGRpdiBjbGFzcz1cInJlbGF0ZWQtbm9kZVwiPlxuICAgICAgICA8aGUtZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwXG4gICAgICAgICAgW25vZGVdPVwicmVsYXRlZE5vZGVcIlxuICAgICAgICAgIFtleHBhbmRlZF09XCJmYWxzZVwiXG4gICAgICAgICAgW3Nob3dWZXJzaW9uXT1cInNob3dWZXJzaW9uKClcIlxuICAgICAgICAgIFtleHBhbmRlZE5vZGVdPVwiZXhwYW5kZWROb2RlKCkgfHwgbm9kZSgpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgfVxuPC9kaXY+XG4iXX0=
|