@bizdoc/core 1.11.0-next.9 → 1.11.3
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/assets/themes/brown.min.css +18 -16
- package/assets/themes/dark.min.css +17 -15
- package/assets/themes/deep-purple-teal.min.css +92 -0
- package/assets/themes/default.min.css +18 -16
- package/assets/themes/green.min.css +18 -16
- package/assets/themes/indigo.min.css +18 -16
- package/esm2020/lib/admin/document-trace/document-trace.component.mjs +3 -3
- package/esm2020/lib/admin/document-trace/trace-element.component.mjs +2 -2
- package/esm2020/lib/admin/form/workflow/role-node.component.mjs +5 -4
- package/esm2020/lib/admin/positions/positions.component.mjs +16 -3
- package/esm2020/lib/compose/action/action-picker.component.mjs +7 -36
- package/esm2020/lib/compose/action/action.base.mjs +43 -0
- package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +70 -0
- package/esm2020/lib/compose/compose.pane.component.mjs +3 -3
- package/esm2020/lib/compose/form.component.mjs +2 -2
- package/esm2020/lib/compose/trace/flow.component.mjs +6 -5
- package/esm2020/lib/compose/trace/trace.component.mjs +2 -2
- package/esm2020/lib/core/configuration.mjs +8 -10
- package/esm2020/lib/core/controls/address.input.mjs +4 -3
- package/esm2020/lib/core/mailbox.service.mjs +1 -1
- package/esm2020/lib/core/translations.mjs +3 -1
- package/esm2020/lib/cube/accum/accum.component.mjs +2 -2
- package/esm2020/lib/cube/chart/chart.component.mjs +2 -2
- package/esm2020/lib/cube/cube.service.mjs +8 -9
- package/esm2020/lib/cube/explore/explore.pane.component.mjs +2 -2
- package/esm2020/lib/cube/grid/grid.component.mjs +2 -2
- package/esm2020/lib/cube/grid/spreadsheet.component.mjs +2 -2
- package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +2 -4
- package/esm2020/lib/cube/matrix/popup.component.mjs +3 -3
- package/esm2020/lib/cube/matrix/table.component.mjs +14 -13
- package/esm2020/lib/cube/pivot/pivot.component.mjs +2 -2
- package/esm2020/lib/cube/view.mobile.component.mjs +2 -2
- package/esm2020/lib/desktop.module.mjs +6 -6
- package/esm2020/lib/routes.desktop.mjs +13 -7
- package/esm2020/lib/views/cube/cube-base.mjs +7 -9
- package/esm2020/lib/views/cube/explore.component.mjs +2 -2
- package/fesm2015/bizdoc-core.mjs +298 -261
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +298 -261
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/admin/positions/positions.component.d.ts +5 -0
- package/lib/compose/action/action-picker.component.d.ts +4 -6
- package/lib/compose/action/action.base.d.ts +11 -0
- package/lib/compose/action/action.pane.dialog.exp.d.ts +29 -0
- package/lib/core/configuration.d.ts +8 -10
- package/lib/core/mailbox.service.d.ts +1 -1
- package/lib/core/translations.d.ts +2 -0
- package/lib/cube/cube.service.d.ts +0 -1
- package/lib/desktop.module.d.ts +2 -2
- package/package.json +1 -1
- package/esm2020/lib/compose/action/action.pane.dialog.mjs +0 -59
- package/lib/compose/action/action.pane.dialog.d.ts +0 -26
@@ -135,7 +135,7 @@ export class CubeChartComponent {
|
|
135
135
|
this._draw();
|
136
136
|
this.loadingChange.emit(false);
|
137
137
|
}, (e) => {
|
138
|
-
this._sb.error(e.status ===
|
138
|
+
this._sb.error(e.status === 406 ? 'Unauthorized' : null);
|
139
139
|
this.loadingChange.emit(false);
|
140
140
|
});
|
141
141
|
}
|
@@ -323,4 +323,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
323
323
|
}], palettes: [{
|
324
324
|
type: Input
|
325
325
|
}] } });
|
326
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFFLEtBQUssRUFBdUMsTUFBTSx3QkFBd0IsQ0FBQztBQUdwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBdUIsTUFBTSxpQkFBaUIsQ0FBQztBQU03RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQVUvQyxxQkFBcUI7QUFDckIsTUFBTSxPQUFPLGtCQUFrQjtJQXNHN0IsaUJBQWlCO0lBQ2pCLFlBQW9CLFFBQXFCLEVBQy9CLEdBQWtCLEVBQVUsVUFBNEIsRUFBVSxRQUF3QixFQUFVLFdBQXVCO1FBRGpILGFBQVEsR0FBUixRQUFRLENBQWE7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQTVEbEgsWUFBTyxHQUFpQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNELGtC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RyxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOztBQTFQTSx5QkFBTSxHQUFHLENBQUMsQ0FBQzsrR0EvQ1Asa0JBQWtCO21HQUFsQixrQkFBa0IscWVBTm5CLEVBQUU7MkZBTUQsa0JBQWtCO2tCQVI5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRSxFQUFFO29CQUNaLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsV0FBVztxQkFDbkI7aUJBQ0Y7bU5BSUMsS0FBSztzQkFESixLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixJQUFJO3NCQURILEtBQUs7Z0JBUUssS0FBSztzQkFEZixLQUFLO2dCQVNLLE1BQU07c0JBRGhCLEtBQUs7Z0JBVUssT0FBTztzQkFEakIsS0FBSztnQkFNTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sS0FBSztzQkFESixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRWEsT0FBTztzQkFBekIsTUFBTTtnQkFDRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ2EsYUFBYTtzQkFBL0IsTUFBTTtnQkFHRSxFQUFFO3NCQURWLFdBQVc7Z0JBUUMsUUFBUTtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFydCwgU2VyaWVzTW9kZWwsIENyb3NzaGFpclNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItY2hhcnRzJztcclxuaW1wb3J0IHsgQXhpc01vZGVsLCBDaGFydEFyZWFNb2RlbCwgVG9vbHRpcFNldHRpbmdzTW9kZWwsIExlZ2VuZFNldHRpbmdzTW9kZWwsIElQb2ludEV2ZW50QXJncywgSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1jaGFydHMnO1xyXG5pbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEludGVybmF0aW9uYWxpemF0aW9uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWJhc2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgV29ya2Jvb2sgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvd29ya3NoZWV0JztcclxuaW1wb3J0IHsgUm93IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvcm93JztcclxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvY29sdW1uJztcclxuaW1wb3J0IHsgRk9OVF9GQU1JTFkgfSBmcm9tICcuLi8uLi9jb3JlL2NvbG9ycyc7XHJcbmltcG9ydCB7IEFYRVNfQ09ERV9ESVZJREVSLCBBWEVTX0xBQkVMX0RJVklERVIsIEN1YmVTZXJ2aWNlLCBTZXJpZXMgfSBmcm9tICcuLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBeGlzQ2xpY2tFdmVudCwgQ3ViZVZpZXdlckNvbXBvbmVudCB9IGZyb20gXCIuLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgQXhlc01hcCwgQ2hhcnRUeXBlLCBDdWJlLCBZQXhpcyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBTY29wZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS1jaGFydCcsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAnY3ViZS12aWV3J1xyXG4gIH1cclxufSlcclxuLyoqIGNoYXJ0IGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBDdWJlQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDdWJlVmlld2VyQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIHdpZHRoOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ6IHN0cmluZyB8IG51bWJlcjtcclxuICBASW5wdXQoKVxyXG4gIGN1YmUhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfeEF4aXM6IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX2N1YmU6IEN1YmU7XHJcbiAgcHVibGljIGdldCB4QXhpcygpOiBzdHJpbmdbXSB8IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5feEF4aXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB4QXhpcyh2YWx1ZTogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3hBeGlzID0gaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Nlcmllcz86IHN0cmluZ1tdO1xyXG4gIHB1YmxpYyBnZXQgc2VyaWVzKCk6IHN0cmluZ1tdIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zZXJpZXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBzZXJpZXModmFsdWU6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUpIHRoaXMuX3NlcmllcyA9IGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xyXG4gICAgZWxzZSB0aGlzLl9zZXJpZXMgPSBudWxsO1xyXG4gIH1cclxuICBwcml2YXRlIF9pbmRpY2VzPzogc3RyaW5nW107XHJcbiAgcHVibGljIGdldCBpbmRpY2VzKCk6IHN0cmluZ1tdIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9pbmRpY2VzO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgaW5kaWNlcyh2YWx1ZTogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSkgdGhpcy5faW5kaWNlcyA9IGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xyXG4gICAgZWxzZSB0aGlzLl9pbmRpY2VzID0gbnVsbDtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICBASW5wdXQoKVxyXG4gIHlBeGlzPzogWUF4aXM7XHJcbiAgQElucHV0KClcclxuICBjaGFydFR5cGU/OiBDaGFydFR5cGU7XHJcbiAgQElucHV0KClcclxuICBpbmRpY2VzQ2hhcnRUeXBlPzogQ2hhcnRUeXBlO1xyXG4gIEBJbnB1dCgpIHNjb3BlOiBTY29wZVR5cGU7XHJcbiAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGV4cGxvcmU6IEV2ZW50RW1pdHRlcjxBeGlzQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgbG9hZGluZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBzdGF0aWMgbmV4dElkID0gMDtcclxuICBASG9zdEJpbmRpbmcoKVxyXG4gIHJlYWRvbmx5IGlkID0gYGN1YmUtY2hhcnQtJHtDdWJlQ2hhcnRDb21wb25lbnQubmV4dElkKyt9YDtcclxuICBjaGFydDogQ2hhcnQ7XHJcbiAgcHJpdmF0ZSBfcGFsZXR0ZXMgPSB0aGlzLl9zZXNzaW9uLmFjY2VudFBhbGV0dGU7XHJcbiAgICBwdWJsaWMgZ2V0IHBhbGV0dGVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wYWxldHRlcztcclxuICB9XHJcbiAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgcGFsZXR0ZXModmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9wYWxldHRlcyA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIHJlYWRvbmx5IGVuYWJsZVJ0bCA9IHRoaXMuX3Nlc3Npb24uaW52ZXJzZTtcclxuICByZWFkb25seSBsZWdlbmRTZXR0aW5nczogTGVnZW5kU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGlzSW52ZXJzZWQ6IHRoaXMuZW5hYmxlUnRsLFxyXG4gICAgbWFyZ2luOiB7XHJcbiAgICAgIHRvcDogNVxyXG4gICAgfSxcclxuICAgIHRleHRTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgcHJpbWFyeVhBeGlzOiBBeGlzTW9kZWwgPSB7XHJcbiAgICB2YWx1ZVR5cGU6ICdDYXRlZ29yeScsXHJcbiAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfTtcclxuICByZWFkb25seSBwcmltYXJ5WUF4aXM6IEF4aXNNb2RlbCA9IHtcclxuICAgIGxhYmVsU3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH1cclxuICB9O1xyXG4gIHJlYWRvbmx5IGNoYXJ0QXJlYTogQ2hhcnRBcmVhTW9kZWwgPSB7XHJcbiAgICBib3JkZXI6IHtcclxuICAgICAgd2lkdGg6IDBcclxuICAgIH0sXHJcbiAgICBvcGFjaXR5OiAwXHJcbiAgfTtcclxuICByZWFkb25seSB0b29sdGlwOiBUb29sdGlwU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgIGVuYWJsZUFuaW1hdGlvbjogZmFsc2UsXHJcbiAgICBib3JkZXI6IHsgd2lkdGg6IDAgfSxcclxuICAgIHRleHRTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgY3Jvc3NoYWlyOiBDcm9zc2hhaXJTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgZW5hYmxlOiBmYWxzZSxcclxuICAgIGxpbmVUeXBlOiAnVmVydGljYWwnXHJcbiAgfTtcclxuICB0aGVtZTogJ01hdGVyaWFsJyB8ICdNYXRlcmlhbERhcmsnID0gdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gIHByaXZhdGUgX2RhdGE6IFNlcmllc1tdO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ludGw6IEludGVybmF0aW9uYWxpemF0aW9uID0gbmV3IEludGVybmF0aW9uYWxpemF0aW9uKCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgLyoqIGNoYXJ0IGN0b3IgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLCBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLCBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICBfc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuXHJcbiAgICAgIHN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICB0aGlzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gICAgICAgIHRoaXMucGFsZXR0ZXMgPSBfc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gICAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLmN1YmUpIHx8IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIHRoaXMuY3VycmVuY3lDb2RlID0gdGhpcy5fY3ViZS5jdXJyZW5jeUNvZGU7XHJcbiAgICBpZiAodGhpcy5jaGFydFR5cGUgPT09ICdMaW5lJyB8fCB0aGlzLmNoYXJ0VHlwZSA9PT0gJ1NwbGluZScpXHJcbiAgICAgIHRoaXMuY3Jvc3NoYWlyLmVuYWJsZSA9IHRydWU7XHJcbiAgICB0aGlzLnByaW1hcnlZQXhpcy5sYWJlbEZvcm1hdCA9IHRoaXMuY3VycmVuY3lDb2RlID8gJ2MwJyA6ICduMCc7XHJcbiAgICB0aGlzLmV4ZWN1dGUoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICovXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2ZpbHRlcnMnXSAmJiAhY2hhbmdlc1snZmlsdGVycyddLmZpcnN0Q2hhbmdlKVxyXG4gICAgICB0aGlzLmV4ZWN1dGUoKTtcclxuICAgIGVsc2VcclxuICAgICAgaWYgKGNoYW5nZXNbJ2hlaWdodCddKVxyXG4gICAgICAgIHRoaXMucmVzaXplKCk7XHJcbiAgfVxyXG4gIHJlc2l6ZSgpIHtcclxuICAgIHRoaXMuY2hhcnQgJiYgdGhpcy5jaGFydC5jaGFydFJlc2l6ZSgpO1xyXG4gIH1cclxuXHJcbiAgZXhlY3V0ZSgpIHtcclxuICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgdGhpcy5fc2VydmljZS5zZXJpZXModGhpcy5jdWJlLCB0aGlzLnhBeGlzLCB7XHJcbiAgICAgIGluZGljZXM6IHRoaXMuaW5kaWNlcywgc2VyaWVzOiB0aGlzLnNlcmllcyxcclxuICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJzLFxyXG4gICAgICBzY29wZTogdGhpcy5zY29wZVxyXG4gICB9KS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgIHRoaXMuX2RhdGEgPSByO1xyXG4gICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgIH0sIChlOiBIdHRwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICB0aGlzLl9zYi5lcnJvcihlLnN0YXR1cyA9PT0gNDAxID8gJ1VuYXV0aG9yaXplZCcgOiBudWxsKTtcclxuICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqICovXHJcbiAgcHJpdmF0ZSBfZHJhdygpIHtcclxuICAgIGNvbnN0IHNlcmllcyA9IHRoaXMuX2RhdGEubWFwKHMgPT4ge1xyXG4gICAgICBpZiAocy5pbmRleClcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgeE5hbWU6ICduYW1lJyxcclxuICAgICAgICAgIHlOYW1lOiAneScsXHJcbiAgICAgICAgICBuYW1lOiBzLnRpdGxlLFxyXG4gICAgICAgICAgZGF0YVNvdXJjZTogcy5wb2ludHMsXHJcbiAgICAgICAgICB0eXBlOiB0aGlzLmluZGljZXNDaGFydFR5cGUgfHwgJ1NwbGluZScsXHJcbiAgICAgICAgICB3aWR0aDogMixcclxuICAgICAgICAgIGZpbGw6IHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgpLFxyXG4gICAgICAgICAgc3RhY2tpbmdHcm91cDogJ2luZGV4JyxcclxuICAgICAgICAgIGVtcHR5UG9pbnRTZXR0aW5nczogeyBtb2RlOiAnWmVybycgfSxcclxuICAgICAgICAgIG1hcmtlcjoge1xyXG4gICAgICAgICAgICB2aXNpYmxlOiAhdGhpcy5pbmRpY2VzQ2hhcnRUeXBlIHx8IHRoaXMuaW5kaWNlc0NoYXJ0VHlwZSA9PT0gJ0xpbmUnIHx8IHRoaXMuaW5kaWNlc0NoYXJ0VHlwZSA9PT0gJ1NwbGluZScsXHJcbiAgICAgICAgICAgIHNoYXBlOiAnRGlhbW9uZCcsXHJcbiAgICAgICAgICAgIGhlaWdodDogMTAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAxMFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gYXMgU2VyaWVzTW9kZWw7XHJcbiAgICAgIGVsc2UgcmV0dXJuIHtcclxuICAgICAgICB4TmFtZTogJ25hbWUnLFxyXG4gICAgICAgIHlOYW1lOiAneScsXHJcbiAgICAgICAgbmFtZTogcy50aXRsZSxcclxuICAgICAgICBkYXRhU291cmNlOiBzLnBvaW50cyxcclxuICAgICAgICB0eXBlOiB0aGlzLmNoYXJ0VHlwZSB8fCAnQ29sdW1uJyxcclxuICAgICAgICBtYXJrZXI6IHtcclxuICAgICAgICAgIHZpc2libGU6ICF0aGlzLmNoYXJ0VHlwZSB8fCB0aGlzLmNoYXJ0VHlwZSA9PT0gJ0xpbmUnIHx8IHRoaXMuY2hhcnRUeXBlID09PSAnU3BsaW5lJyxcclxuICAgICAgICAgIGhlaWdodDogMTAsXHJcbiAgICAgICAgICB3aWR0aDogMTBcclxuICAgICAgICB9XHJcbiAgICAgIH0gYXMgU2VyaWVzTW9kZWw7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubGVnZW5kU2V0dGluZ3MudmlzaWJsZSA9IHNlcmllcy5sZW5ndGggPiAxO1xyXG4gICAgdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQoe1xyXG4gICAgICBsZWdlbmRTZXR0aW5nczogdGhpcy5sZWdlbmRTZXR0aW5ncyxcclxuICAgICAgcHJpbWFyeVhBeGlzOiB0aGlzLnByaW1hcnlYQXhpcyxcclxuICAgICAgcHJpbWFyeVlBeGlzOiB0aGlzLnByaW1hcnlZQXhpcyxcclxuICAgICAgZW5hYmxlRXhwb3J0OiB0cnVlLFxyXG4gICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICB0aGVtZTogdGhpcy50aGVtZSxcclxuICAgICAgdXNlR3JvdXBpbmdTZXBhcmF0b3I6IHRydWUsXHJcbiAgICAgIHBhbGV0dGVzOiB0aGlzLnBhbGV0dGVzLFxyXG4gICAgICBjdXJyZW5jeUNvZGU6IHRoaXMuY3VycmVuY3lDb2RlLFxyXG4gICAgICB0b29sdGlwUmVuZGVyOiB0aGlzLnRvb2x0aXBSZW5kZXIuYmluZCh0aGlzKSxcclxuICAgICAgc2VsZWN0aW9uTW9kZTogJ1BvaW50JyxcclxuICAgICAgcG9pbnRDbGljazogdGhpcy5wb2ludENsaWNrLmJpbmQodGhpcyksXHJcbiAgICAgIHRvb2x0aXA6IHRoaXMudG9vbHRpcCxcclxuICAgICAgY2hhcnRBcmVhOiB0aGlzLmNoYXJ0QXJlYSxcclxuICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCBhcyBzdHJpbmcsXHJcbiAgICAgIGNyb3NzaGFpcjogdGhpcy5jcm9zc2hhaXIsXHJcbiAgICAgIGVuYWJsZVJ0bDogdGhpcy5lbmFibGVSdGwsXHJcbiAgICAgIHNlcmllcyxcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIHRvb2x0aXBSZW5kZXIoZTogSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MpOiB2b2lkIHtcclxuICAgIGUudGV4dCA9IHRoaXMuX2ludGwuZm9ybWF0TnVtYmVyKGUucG9pbnQueSBhcyBudW1iZXIsIHtcclxuICAgICAgY3VycmVuY3k6IHRoaXMuY3VycmVuY3lDb2RlLFxyXG4gICAgICBmb3JtYXQ6IHRoaXMuY3VycmVuY3lDb2RlID8gJ2MnIDogJ24nLFxyXG4gICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuX3NlcnZpY2UuZnJhY3Rpb25EaWdpdHNcclxuICAgIH0pO1xyXG4gIH07XHJcbiAgcG9pbnRDbGljayhldnQ6IElQb2ludEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgYXhlczogeyBbYXhpczogc3RyaW5nXTogYW55IH0gPSB7fSxcclxuICAgICAgc2VyaWUgPSB0aGlzLl9kYXRhW2V2dC5zZXJpZXNJbmRleF0sXHJcbiAgICAgIHsgaW5kZXgsIG5hbWUsIHBvaW50cyB9ID0gc2VyaWU7XHJcbiAgICBpZiAodGhpcy5zZXJpZXMgJiYgdGhpcy5zZXJpZXMubGVuZ3RoICYmICFpbmRleClcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNlcmllcy5sZW5ndGg7IGkrKylcclxuICAgICAgICBheGVzW3RoaXMuc2VyaWVzW2ldXSA9IG5hbWUuc3BsaXQoQVhFU19DT0RFX0RJVklERVIpW2ldO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnhBeGlzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHggPSBwb2ludHNbZXZ0LnBvaW50SW5kZXhdLng7XHJcbiAgICAgIGF4ZXNbdGhpcy54QXhpc1tpXV0gPSB4LnNwbGl0KEFYRVNfQ09ERV9ESVZJREVSKVtpXTtcclxuICAgIH1cclxuICAgIHRoaXMuZXhwbG9yZS5lbWl0KHsgYXhlcywgaW5kZXggfSk7XHJcbiAgfVxyXG4gIGV4cG9ydFRvRXhjZWwodGl0bGU6IHN0cmluZykge1xyXG4gICAgY29uc3RcclxuICAgICAgbnVtYmVyRm9ybWF0ID0gdGhpcy5fc2VydmljZS5udW1iZXJGb3JtYXQsXHJcbiAgICAgIHdvcmtzaGVldHMgPSBbXTtcclxuICAgIHRoaXMuX2RhdGEuZm9yRWFjaChzID0+IHtcclxuICAgICAgY29uc3QgY2VsbHMgPSB0aGlzLl94QXhpcy5tYXAoKHgsIGkpID0+ICh7XHJcbiAgICAgICAgaW5kZXg6IGkgKyAxLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0geCkudGl0bGUsXHJcbiAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgIGJvbGQ6IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH0gYXMgQ2VsbCkpO1xyXG4gICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICBpbmRleDogdGhpcy5feEF4aXMubGVuZ3RoICsgMSxcclxuICAgICAgICB2YWx1ZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnVmFsdWUnKSxcclxuICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgICAgfSBhcyBDZWxsKTtcclxuICAgICAgY29uc3Qgcm93cyA9IFt7XHJcbiAgICAgICAgaW5kZXg6IDEsXHJcbiAgICAgICAgY2VsbHNcclxuICAgICAgfSBhcyBSb3ddO1xyXG4gICAgICBzLnBvaW50cy5mb3JFYWNoKChwLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2VsbHMgPSB0aGlzLl94QXhpcy5tYXAoKF8sIGopID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGluZGV4OiBqICsgMSxcclxuICAgICAgICAgICAgdmFsdWU6IHAubmFtZS5zcGxpdChBWEVTX0xBQkVMX0RJVklERVIpW2pdXHJcbiAgICAgICAgICB9IGFzIENlbGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY2VsbHMucHVzaCh7XHJcbiAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgICAgIGluZGV4OiB0aGlzLl94QXhpcy5sZW5ndGggKyAxLFxyXG4gICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgICBoQWxpZ246ICdyaWdodCdcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB2YWx1ZTogcC55XHJcbiAgICAgICAgfSBhcyBDZWxsKTtcclxuICAgICAgICByb3dzLnB1c2goXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGluZGV4OiBpICsgMixcclxuICAgICAgICAgICAgY2VsbHNcclxuICAgICAgICAgIH0gYXMgUm93KVxyXG4gICAgICB9KVxyXG4gICAgICB3b3Jrc2hlZXRzLnB1c2goXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZW5hYmxlUnRsOiB0aGlzLmVuYWJsZVJ0bCxcclxuICAgICAgICAgIG5hbWU6IHMudGl0bGUsXHJcbiAgICAgICAgICBjb2x1bW5zOiBbLi4udGhpcy5feEF4aXMubWFwKChfLCBpKSA9PiAoeyBpbmRleDogaSArIDEsIHdpZHRoOiAyNTAgfSBhcyBDb2x1bW4pKVxyXG4gICAgICAgICAgICAsIHsgaW5kZXg6IHRoaXMuX3hBeGlzLmxlbmd0aCArIDEgfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICByb3dzXHJcbiAgICAgICAgfSBhcyBXb3Jrc2hlZXRcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgYm9vayA9IG5ldyBXb3JrYm9vayhcclxuICAgICAge1xyXG4gICAgICAgIHdvcmtzaGVldHMsXHJcbiAgICAgIH0sXHJcbiAgICAgICd4bHN4J1xyXG4gICAgKTtcclxuICAgIGJvb2suc2F2ZShgJHt0aXRsZX0ueGxzeGApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhcnQgJiYgdGhpcy5jaGFydC5kZXN0cm95KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIENlbGwgeyB9XHJcbiJdfQ==
|
326
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFFLEtBQUssRUFBdUMsTUFBTSx3QkFBd0IsQ0FBQztBQUdwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBdUIsTUFBTSxpQkFBaUIsQ0FBQztBQU03RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQVUvQyxxQkFBcUI7QUFDckIsTUFBTSxPQUFPLGtCQUFrQjtJQXNHN0IsaUJBQWlCO0lBQ2pCLFlBQW9CLFFBQXFCLEVBQy9CLEdBQWtCLEVBQVUsVUFBNEIsRUFBVSxRQUF3QixFQUFVLFdBQXVCO1FBRGpILGFBQVEsR0FBUixRQUFRLENBQWE7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQTVEbEgsWUFBTyxHQUFpQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNELGtC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RyxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOztBQTFQTSx5QkFBTSxHQUFHLENBQUMsQ0FBQzsrR0EvQ1Asa0JBQWtCO21HQUFsQixrQkFBa0IscWVBTm5CLEVBQUU7MkZBTUQsa0JBQWtCO2tCQVI5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRSxFQUFFO29CQUNaLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsV0FBVztxQkFDbkI7aUJBQ0Y7bU5BSUMsS0FBSztzQkFESixLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixJQUFJO3NCQURILEtBQUs7Z0JBUUssS0FBSztzQkFEZixLQUFLO2dCQVNLLE1BQU07c0JBRGhCLEtBQUs7Z0JBVUssT0FBTztzQkFEakIsS0FBSztnQkFNTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sS0FBSztzQkFESixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRWEsT0FBTztzQkFBekIsTUFBTTtnQkFDRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ2EsYUFBYTtzQkFBL0IsTUFBTTtnQkFHRSxFQUFFO3NCQURWLFdBQVc7Z0JBUUMsUUFBUTtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFydCwgU2VyaWVzTW9kZWwsIENyb3NzaGFpclNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItY2hhcnRzJztcclxuaW1wb3J0IHsgQXhpc01vZGVsLCBDaGFydEFyZWFNb2RlbCwgVG9vbHRpcFNldHRpbmdzTW9kZWwsIExlZ2VuZFNldHRpbmdzTW9kZWwsIElQb2ludEV2ZW50QXJncywgSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1jaGFydHMnO1xyXG5pbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEludGVybmF0aW9uYWxpemF0aW9uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWJhc2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgV29ya2Jvb2sgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvd29ya3NoZWV0JztcclxuaW1wb3J0IHsgUm93IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvcm93JztcclxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvY29sdW1uJztcclxuaW1wb3J0IHsgRk9OVF9GQU1JTFkgfSBmcm9tICcuLi8uLi9jb3JlL2NvbG9ycyc7XHJcbmltcG9ydCB7IEFYRVNfQ09ERV9ESVZJREVSLCBBWEVTX0xBQkVMX0RJVklERVIsIEN1YmVTZXJ2aWNlLCBTZXJpZXMgfSBmcm9tICcuLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBeGlzQ2xpY2tFdmVudCwgQ3ViZVZpZXdlckNvbXBvbmVudCB9IGZyb20gXCIuLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgQXhlc01hcCwgQ2hhcnRUeXBlLCBDdWJlLCBZQXhpcyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBTY29wZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS1jaGFydCcsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAnY3ViZS12aWV3J1xyXG4gIH1cclxufSlcclxuLyoqIGNoYXJ0IGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBDdWJlQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDdWJlVmlld2VyQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIHdpZHRoOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ6IHN0cmluZyB8IG51bWJlcjtcclxuICBASW5wdXQoKVxyXG4gIGN1YmUhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfeEF4aXM6IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX2N1YmU6IEN1YmU7XHJcbiAgcHVibGljIGdldCB4QXhpcygpOiBzdHJpbmdbXSB8IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5feEF4aXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB4QXhpcyh2YWx1ZTogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3hBeGlzID0gaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Nlcmllcz86IHN0cmluZ1tdO1xyXG4gIHB1YmxpYyBnZXQgc2VyaWVzKCk6IHN0cmluZ1tdIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zZXJpZXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBzZXJpZXModmFsdWU6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUpIHRoaXMuX3NlcmllcyA9IGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xyXG4gICAgZWxzZSB0aGlzLl9zZXJpZXMgPSBudWxsO1xyXG4gIH1cclxuICBwcml2YXRlIF9pbmRpY2VzPzogc3RyaW5nW107XHJcbiAgcHVibGljIGdldCBpbmRpY2VzKCk6IHN0cmluZ1tdIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9pbmRpY2VzO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgaW5kaWNlcyh2YWx1ZTogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSkgdGhpcy5faW5kaWNlcyA9IGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xyXG4gICAgZWxzZSB0aGlzLl9pbmRpY2VzID0gbnVsbDtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICBASW5wdXQoKVxyXG4gIHlBeGlzPzogWUF4aXM7XHJcbiAgQElucHV0KClcclxuICBjaGFydFR5cGU/OiBDaGFydFR5cGU7XHJcbiAgQElucHV0KClcclxuICBpbmRpY2VzQ2hhcnRUeXBlPzogQ2hhcnRUeXBlO1xyXG4gIEBJbnB1dCgpIHNjb3BlOiBTY29wZVR5cGU7XHJcbiAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGV4cGxvcmU6IEV2ZW50RW1pdHRlcjxBeGlzQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgbG9hZGluZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBzdGF0aWMgbmV4dElkID0gMDtcclxuICBASG9zdEJpbmRpbmcoKVxyXG4gIHJlYWRvbmx5IGlkID0gYGN1YmUtY2hhcnQtJHtDdWJlQ2hhcnRDb21wb25lbnQubmV4dElkKyt9YDtcclxuICBjaGFydDogQ2hhcnQ7XHJcbiAgcHJpdmF0ZSBfcGFsZXR0ZXMgPSB0aGlzLl9zZXNzaW9uLmFjY2VudFBhbGV0dGU7XHJcbiAgICBwdWJsaWMgZ2V0IHBhbGV0dGVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wYWxldHRlcztcclxuICB9XHJcbiAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgcGFsZXR0ZXModmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9wYWxldHRlcyA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIHJlYWRvbmx5IGVuYWJsZVJ0bCA9IHRoaXMuX3Nlc3Npb24uaW52ZXJzZTtcclxuICByZWFkb25seSBsZWdlbmRTZXR0aW5nczogTGVnZW5kU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGlzSW52ZXJzZWQ6IHRoaXMuZW5hYmxlUnRsLFxyXG4gICAgbWFyZ2luOiB7XHJcbiAgICAgIHRvcDogNVxyXG4gICAgfSxcclxuICAgIHRleHRTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgcHJpbWFyeVhBeGlzOiBBeGlzTW9kZWwgPSB7XHJcbiAgICB2YWx1ZVR5cGU6ICdDYXRlZ29yeScsXHJcbiAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfTtcclxuICByZWFkb25seSBwcmltYXJ5WUF4aXM6IEF4aXNNb2RlbCA9IHtcclxuICAgIGxhYmVsU3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH1cclxuICB9O1xyXG4gIHJlYWRvbmx5IGNoYXJ0QXJlYTogQ2hhcnRBcmVhTW9kZWwgPSB7XHJcbiAgICBib3JkZXI6IHtcclxuICAgICAgd2lkdGg6IDBcclxuICAgIH0sXHJcbiAgICBvcGFjaXR5OiAwXHJcbiAgfTtcclxuICByZWFkb25seSB0b29sdGlwOiBUb29sdGlwU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgIGVuYWJsZUFuaW1hdGlvbjogZmFsc2UsXHJcbiAgICBib3JkZXI6IHsgd2lkdGg6IDAgfSxcclxuICAgIHRleHRTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgY3Jvc3NoYWlyOiBDcm9zc2hhaXJTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgZW5hYmxlOiBmYWxzZSxcclxuICAgIGxpbmVUeXBlOiAnVmVydGljYWwnXHJcbiAgfTtcclxuICB0aGVtZTogJ01hdGVyaWFsJyB8ICdNYXRlcmlhbERhcmsnID0gdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gIHByaXZhdGUgX2RhdGE6IFNlcmllc1tdO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ludGw6IEludGVybmF0aW9uYWxpemF0aW9uID0gbmV3IEludGVybmF0aW9uYWxpemF0aW9uKCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgLyoqIGNoYXJ0IGN0b3IgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLCBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLCBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICBfc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuXHJcbiAgICAgIHN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICB0aGlzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gICAgICAgIHRoaXMucGFsZXR0ZXMgPSBfc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gICAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLmN1YmUpIHx8IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIHRoaXMuY3VycmVuY3lDb2RlID0gdGhpcy5fY3ViZS5jdXJyZW5jeUNvZGU7XHJcbiAgICBpZiAodGhpcy5jaGFydFR5cGUgPT09ICdMaW5lJyB8fCB0aGlzLmNoYXJ0VHlwZSA9PT0gJ1NwbGluZScpXHJcbiAgICAgIHRoaXMuY3Jvc3NoYWlyLmVuYWJsZSA9IHRydWU7XHJcbiAgICB0aGlzLnByaW1hcnlZQXhpcy5sYWJlbEZvcm1hdCA9IHRoaXMuY3VycmVuY3lDb2RlID8gJ2MwJyA6ICduMCc7XHJcbiAgICB0aGlzLmV4ZWN1dGUoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICovXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2ZpbHRlcnMnXSAmJiAhY2hhbmdlc1snZmlsdGVycyddLmZpcnN0Q2hhbmdlKVxyXG4gICAgICB0aGlzLmV4ZWN1dGUoKTtcclxuICAgIGVsc2VcclxuICAgICAgaWYgKGNoYW5nZXNbJ2hlaWdodCddKVxyXG4gICAgICAgIHRoaXMucmVzaXplKCk7XHJcbiAgfVxyXG4gIHJlc2l6ZSgpIHtcclxuICAgIHRoaXMuY2hhcnQgJiYgdGhpcy5jaGFydC5jaGFydFJlc2l6ZSgpO1xyXG4gIH1cclxuXHJcbiAgZXhlY3V0ZSgpIHtcclxuICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgdGhpcy5fc2VydmljZS5zZXJpZXModGhpcy5jdWJlLCB0aGlzLnhBeGlzLCB7XHJcbiAgICAgIGluZGljZXM6IHRoaXMuaW5kaWNlcywgc2VyaWVzOiB0aGlzLnNlcmllcyxcclxuICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJzLFxyXG4gICAgICBzY29wZTogdGhpcy5zY29wZVxyXG4gICB9KS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgIHRoaXMuX2RhdGEgPSByO1xyXG4gICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgIH0sIChlOiBIdHRwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICB0aGlzLl9zYi5lcnJvcihlLnN0YXR1cyA9PT0gNDA2ID8gJ1VuYXV0aG9yaXplZCcgOiBudWxsKTtcclxuICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqICovXHJcbiAgcHJpdmF0ZSBfZHJhdygpIHtcclxuICAgIGNvbnN0IHNlcmllcyA9IHRoaXMuX2RhdGEubWFwKHMgPT4ge1xyXG4gICAgICBpZiAocy5pbmRleClcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgeE5hbWU6ICduYW1lJyxcclxuICAgICAgICAgIHlOYW1lOiAneScsXHJcbiAgICAgICAgICBuYW1lOiBzLnRpdGxlLFxyXG4gICAgICAgICAgZGF0YVNvdXJjZTogcy5wb2ludHMsXHJcbiAgICAgICAgICB0eXBlOiB0aGlzLmluZGljZXNDaGFydFR5cGUgfHwgJ1NwbGluZScsXHJcbiAgICAgICAgICB3aWR0aDogMixcclxuICAgICAgICAgIGZpbGw6IHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgpLFxyXG4gICAgICAgICAgc3RhY2tpbmdHcm91cDogJ2luZGV4JyxcclxuICAgICAgICAgIGVtcHR5UG9pbnRTZXR0aW5nczogeyBtb2RlOiAnWmVybycgfSxcclxuICAgICAgICAgIG1hcmtlcjoge1xyXG4gICAgICAgICAgICB2aXNpYmxlOiAhdGhpcy5pbmRpY2VzQ2hhcnRUeXBlIHx8IHRoaXMuaW5kaWNlc0NoYXJ0VHlwZSA9PT0gJ0xpbmUnIHx8IHRoaXMuaW5kaWNlc0NoYXJ0VHlwZSA9PT0gJ1NwbGluZScsXHJcbiAgICAgICAgICAgIHNoYXBlOiAnRGlhbW9uZCcsXHJcbiAgICAgICAgICAgIGhlaWdodDogMTAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAxMFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gYXMgU2VyaWVzTW9kZWw7XHJcbiAgICAgIGVsc2UgcmV0dXJuIHtcclxuICAgICAgICB4TmFtZTogJ25hbWUnLFxyXG4gICAgICAgIHlOYW1lOiAneScsXHJcbiAgICAgICAgbmFtZTogcy50aXRsZSxcclxuICAgICAgICBkYXRhU291cmNlOiBzLnBvaW50cyxcclxuICAgICAgICB0eXBlOiB0aGlzLmNoYXJ0VHlwZSB8fCAnQ29sdW1uJyxcclxuICAgICAgICBtYXJrZXI6IHtcclxuICAgICAgICAgIHZpc2libGU6ICF0aGlzLmNoYXJ0VHlwZSB8fCB0aGlzLmNoYXJ0VHlwZSA9PT0gJ0xpbmUnIHx8IHRoaXMuY2hhcnRUeXBlID09PSAnU3BsaW5lJyxcclxuICAgICAgICAgIGhlaWdodDogMTAsXHJcbiAgICAgICAgICB3aWR0aDogMTBcclxuICAgICAgICB9XHJcbiAgICAgIH0gYXMgU2VyaWVzTW9kZWw7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubGVnZW5kU2V0dGluZ3MudmlzaWJsZSA9IHNlcmllcy5sZW5ndGggPiAxO1xyXG4gICAgdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQoe1xyXG4gICAgICBsZWdlbmRTZXR0aW5nczogdGhpcy5sZWdlbmRTZXR0aW5ncyxcclxuICAgICAgcHJpbWFyeVhBeGlzOiB0aGlzLnByaW1hcnlYQXhpcyxcclxuICAgICAgcHJpbWFyeVlBeGlzOiB0aGlzLnByaW1hcnlZQXhpcyxcclxuICAgICAgZW5hYmxlRXhwb3J0OiB0cnVlLFxyXG4gICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICB0aGVtZTogdGhpcy50aGVtZSxcclxuICAgICAgdXNlR3JvdXBpbmdTZXBhcmF0b3I6IHRydWUsXHJcbiAgICAgIHBhbGV0dGVzOiB0aGlzLnBhbGV0dGVzLFxyXG4gICAgICBjdXJyZW5jeUNvZGU6IHRoaXMuY3VycmVuY3lDb2RlLFxyXG4gICAgICB0b29sdGlwUmVuZGVyOiB0aGlzLnRvb2x0aXBSZW5kZXIuYmluZCh0aGlzKSxcclxuICAgICAgc2VsZWN0aW9uTW9kZTogJ1BvaW50JyxcclxuICAgICAgcG9pbnRDbGljazogdGhpcy5wb2ludENsaWNrLmJpbmQodGhpcyksXHJcbiAgICAgIHRvb2x0aXA6IHRoaXMudG9vbHRpcCxcclxuICAgICAgY2hhcnRBcmVhOiB0aGlzLmNoYXJ0QXJlYSxcclxuICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCBhcyBzdHJpbmcsXHJcbiAgICAgIGNyb3NzaGFpcjogdGhpcy5jcm9zc2hhaXIsXHJcbiAgICAgIGVuYWJsZVJ0bDogdGhpcy5lbmFibGVSdGwsXHJcbiAgICAgIHNlcmllcyxcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIHRvb2x0aXBSZW5kZXIoZTogSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MpOiB2b2lkIHtcclxuICAgIGUudGV4dCA9IHRoaXMuX2ludGwuZm9ybWF0TnVtYmVyKGUucG9pbnQueSBhcyBudW1iZXIsIHtcclxuICAgICAgY3VycmVuY3k6IHRoaXMuY3VycmVuY3lDb2RlLFxyXG4gICAgICBmb3JtYXQ6IHRoaXMuY3VycmVuY3lDb2RlID8gJ2MnIDogJ24nLFxyXG4gICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuX3NlcnZpY2UuZnJhY3Rpb25EaWdpdHNcclxuICAgIH0pO1xyXG4gIH07XHJcbiAgcG9pbnRDbGljayhldnQ6IElQb2ludEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgYXhlczogeyBbYXhpczogc3RyaW5nXTogYW55IH0gPSB7fSxcclxuICAgICAgc2VyaWUgPSB0aGlzLl9kYXRhW2V2dC5zZXJpZXNJbmRleF0sXHJcbiAgICAgIHsgaW5kZXgsIG5hbWUsIHBvaW50cyB9ID0gc2VyaWU7XHJcbiAgICBpZiAodGhpcy5zZXJpZXMgJiYgdGhpcy5zZXJpZXMubGVuZ3RoICYmICFpbmRleClcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNlcmllcy5sZW5ndGg7IGkrKylcclxuICAgICAgICBheGVzW3RoaXMuc2VyaWVzW2ldXSA9IG5hbWUuc3BsaXQoQVhFU19DT0RFX0RJVklERVIpW2ldO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnhBeGlzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHggPSBwb2ludHNbZXZ0LnBvaW50SW5kZXhdLng7XHJcbiAgICAgIGF4ZXNbdGhpcy54QXhpc1tpXV0gPSB4LnNwbGl0KEFYRVNfQ09ERV9ESVZJREVSKVtpXTtcclxuICAgIH1cclxuICAgIHRoaXMuZXhwbG9yZS5lbWl0KHsgYXhlcywgaW5kZXggfSk7XHJcbiAgfVxyXG4gIGV4cG9ydFRvRXhjZWwodGl0bGU6IHN0cmluZykge1xyXG4gICAgY29uc3RcclxuICAgICAgbnVtYmVyRm9ybWF0ID0gdGhpcy5fc2VydmljZS5udW1iZXJGb3JtYXQsXHJcbiAgICAgIHdvcmtzaGVldHMgPSBbXTtcclxuICAgIHRoaXMuX2RhdGEuZm9yRWFjaChzID0+IHtcclxuICAgICAgY29uc3QgY2VsbHMgPSB0aGlzLl94QXhpcy5tYXAoKHgsIGkpID0+ICh7XHJcbiAgICAgICAgaW5kZXg6IGkgKyAxLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0geCkudGl0bGUsXHJcbiAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgIGJvbGQ6IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH0gYXMgQ2VsbCkpO1xyXG4gICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICBpbmRleDogdGhpcy5feEF4aXMubGVuZ3RoICsgMSxcclxuICAgICAgICB2YWx1ZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnVmFsdWUnKSxcclxuICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgICAgfSBhcyBDZWxsKTtcclxuICAgICAgY29uc3Qgcm93cyA9IFt7XHJcbiAgICAgICAgaW5kZXg6IDEsXHJcbiAgICAgICAgY2VsbHNcclxuICAgICAgfSBhcyBSb3ddO1xyXG4gICAgICBzLnBvaW50cy5mb3JFYWNoKChwLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2VsbHMgPSB0aGlzLl94QXhpcy5tYXAoKF8sIGopID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGluZGV4OiBqICsgMSxcclxuICAgICAgICAgICAgdmFsdWU6IHAubmFtZS5zcGxpdChBWEVTX0xBQkVMX0RJVklERVIpW2pdXHJcbiAgICAgICAgICB9IGFzIENlbGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY2VsbHMucHVzaCh7XHJcbiAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgICAgIGluZGV4OiB0aGlzLl94QXhpcy5sZW5ndGggKyAxLFxyXG4gICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgICBoQWxpZ246ICdyaWdodCdcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB2YWx1ZTogcC55XHJcbiAgICAgICAgfSBhcyBDZWxsKTtcclxuICAgICAgICByb3dzLnB1c2goXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGluZGV4OiBpICsgMixcclxuICAgICAgICAgICAgY2VsbHNcclxuICAgICAgICAgIH0gYXMgUm93KVxyXG4gICAgICB9KVxyXG4gICAgICB3b3Jrc2hlZXRzLnB1c2goXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZW5hYmxlUnRsOiB0aGlzLmVuYWJsZVJ0bCxcclxuICAgICAgICAgIG5hbWU6IHMudGl0bGUsXHJcbiAgICAgICAgICBjb2x1bW5zOiBbLi4udGhpcy5feEF4aXMubWFwKChfLCBpKSA9PiAoeyBpbmRleDogaSArIDEsIHdpZHRoOiAyNTAgfSBhcyBDb2x1bW4pKVxyXG4gICAgICAgICAgICAsIHsgaW5kZXg6IHRoaXMuX3hBeGlzLmxlbmd0aCArIDEgfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICByb3dzXHJcbiAgICAgICAgfSBhcyBXb3Jrc2hlZXRcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgYm9vayA9IG5ldyBXb3JrYm9vayhcclxuICAgICAge1xyXG4gICAgICAgIHdvcmtzaGVldHMsXHJcbiAgICAgIH0sXHJcbiAgICAgICd4bHN4J1xyXG4gICAgKTtcclxuICAgIGJvb2suc2F2ZShgJHt0aXRsZX0ueGxzeGApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhcnQgJiYgdGhpcy5jaGFydC5kZXN0cm95KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIENlbGwgeyB9XHJcbiJdfQ==
|
@@ -30,8 +30,7 @@ export class CubeService {
|
|
30
30
|
this._type = _type;
|
31
31
|
this._session = _session;
|
32
32
|
this._cache = {};
|
33
|
-
this.
|
34
|
-
this._cacheOr = (name, fn) => this._cache[name] || (this._cache[name] = fn());
|
33
|
+
this._cacheOr = (name, fn) => this._cache[name] || (this._cache[name] = fn().pipe(shareReplay()));
|
35
34
|
_config && _config.currencyCode && setCurrencyCode(_config.currencyCode);
|
36
35
|
}
|
37
36
|
/** system currency */
|
@@ -229,7 +228,7 @@ export class CubeService {
|
|
229
228
|
}
|
230
229
|
/** get currencies */
|
231
230
|
currencies() {
|
232
|
-
return this._cacheOr('currencies', () => this._http.get('api/cube/currencies')
|
231
|
+
return this._cacheOr('currencies', () => this._http.get('api/cube/currencies'));
|
233
232
|
}
|
234
233
|
/**
|
235
234
|
* get exchange rate
|
@@ -239,13 +238,13 @@ export class CubeService {
|
|
239
238
|
exchangeRate(currencyCode, date) {
|
240
239
|
if (this.currencyCode === currencyCode)
|
241
240
|
return of(1);
|
242
|
-
|
243
|
-
if (
|
244
|
-
|
245
|
-
return this.
|
241
|
+
let key = currencyCode;
|
242
|
+
if (date)
|
243
|
+
key += date.toJSON();
|
244
|
+
return this._cacheOr(key, () => this._http.get(`api/cube/exchangeRate/${currencyCode}`, {
|
246
245
|
params: date ? { date: date.toJSON() } : null,
|
247
246
|
headers: { 'no-progress': 'true' }
|
248
|
-
})
|
247
|
+
}));
|
249
248
|
}
|
250
249
|
/**
|
251
250
|
* replaces * or # with origin axis at char place
|
@@ -395,4 +394,4 @@ export function modelize() {
|
|
395
394
|
return data;
|
396
395
|
}));
|
397
396
|
}
|
398
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2N1YmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFnQixhQUFhLEVBQXVCLE1BQU0sdUJBQXVCLENBQUM7QUFJekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBRTlGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsRUFBRSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7QUFFL0Q7MkVBQzJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFDdEMsaUVBQWlFO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUUsY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUM7QUFFaEQsd0VBQXdFO0FBQ3hFLEtBQUs7QUFDTCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxzR0FBc0csQ0FBQztBQUV6SSxNQUFNLENB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QyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt3R0E5WVUsV0FBVyxrQkFJRixhQUFhOzRHQUp0QixXQUFXLGNBREUsTUFBTTsyRkFDbkIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUtuQixNQUFNOzJCQUFDLGFBQWE7O0FBNlluQyxNQUFNLFVBQVUsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHO0lBQ2pDLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUMxQixHQUFHLEVBQUUsRUFDTCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtBQUNyQixDQUFDO0FBQ0QsMkNBQTJDO0FBQzNDLE1BQU0sVUFBVSxRQUFRO0lBR3RCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoQixPQUFPLENBQUMsTUFBNEIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDM0QsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNaLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDekMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCB0YXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgc2V0Q3VycmVuY3lDb2RlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWJhc2UnO1xyXG5pbXBvcnQgeyBpc0FycmF5LCBpc1N0cmluZyB9IGZyb20gJy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgQml6RG9jQ29uZmlnLCBCSVpET0NfQ09ORklHLCBQYXJhbU1hcCwgU2NvcGVUeXBlIH0gZnJvbSAnLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgRmllbGRJbmZvLCBBeGlzVHlwZSwgQXhlc01hcCB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9kYXRhc291cmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBnZXRDdXJyZW5jeVN5bWJvbCwgZ2V0TG9jYWxlTnVtYmVyRm9ybWF0LCBOdW1iZXJGb3JtYXRTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5leHBvcnQgY29uc3QgQUNDT1VOVF9ERUxJTUlURVIgPSAnLicsIERFRkFVTFRfQ1VSUkVOQ1kgPSAnVVNEJztcclxuXHJcbi8qKiBpbiBjYXNlIHhBeGlzIG9yIHNlcmllcyBpcyBnaXZlbiBtb3JlIHRoYW4gb25lIGF4aXMsXHJcbiAqIHRoZSB2YWx1ZSByZXR1cm5lZCBpcyBjb21iaW5lZCBvZiB2YWx1ZXMgc2VwZXJhdGVkIGJ5IHRoaXMgY2hhcmFjdGVyLiAqL1xyXG5leHBvcnQgY29uc3QgQVhFU19DT0RFX0RJVklERVIgPSAnX18nO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFYRVNfTEFCRUxfRElWSURFUiA9ICctJztcclxuLyoqIHJlcHJlc2VudHMgYSBwbGFjZSBpbiBwYXR0ZXJuIHRvIGJlIHJlcGxhY2VkIGJ5IGJhc2UgYXhpcy4gKi9cclxuZXhwb3J0IGNvbnN0IEFYSVNfTUFQX0NIQVIgPSAnIycsIEFYSVNfTUFQX0FTX0lTID0gJyonO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFYSVNfU1BFQ0lBTF9DSEFSUyA9IC9bXFwuOyNcXC0sXFwhXS87XHJcblxyXG4vKiogYWxsb3dlZCBjaGFyYWN0ZXJzIGZvciBheGlzIHZhbHVlIC8gY29sbGVjdGlvbiAvIHJhbmdlIC8gcGF0dGVybi4gKi9cclxuLy9cXHBMXHJcbmV4cG9ydCBjb25zdCBBWElTX1ZBTFVFX1BBVFRFUk4gPSAvXigoIT9cXHcrKFxcLFxcdyspKil8KCE/XFx3K1xcLVxcdyspfCghP1tcXHdcXC5cXCpcXCNdKykpKFs7XSgoIT9cXHcrKFxcLFxcdyspKil8KCE/XFx3K1xcLVxcdyspfCghP1tcXHdcXC5cXCpcXCNdKykpKSokLztcclxuXHJcbmV4cG9ydCBjb25zdCBDTERSX0ZJTEVTID0gWydjbGRyLWRhdGEvbWFpbi97MH0vY3VycmVuY2llcy5qc29uJywgJ2NsZHItZGF0YS9tYWluL3swfS9jYS1ncmVnb3JpYW4uanNvbicsICdjbGRyLWRhdGEvbWFpbi97MH0vbnVtYmVycy5qc29uJywgJ2NsZHItZGF0YS9tYWluL3swfS90aW1lWm9uZU5hbWVzLmpzb24nLCAnY2xkci1kYXRhL3N1cHBsZW1lbnRhbC9udW1iZXJpbmdTeXN0ZW1zLmpzb24nXTtcclxuXHJcbi8qKiBxdWVyeSBjdWJlICovXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBDdWJlU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FjaGU6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZXhjaGFuZ2VSYXRlczogeyBbY29kZTogc3RyaW5nXTogT2JzZXJ2YWJsZTxudW1iZXI+IH0gPSB7fTtcclxuICAvLyBjdG9yXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChCSVpET0NfQ09ORklHKSBwcml2YXRlIF9jb25maWc6IEJpekRvY0NvbmZpZyxcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIF90eXBlOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7XHJcbiAgICBfY29uZmlnICYmIF9jb25maWcuY3VycmVuY3lDb2RlICYmIHNldEN1cnJlbmN5Q29kZShfY29uZmlnLmN1cnJlbmN5Q29kZSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NhY2hlT3IgPSA8VD4obmFtZTogc3RyaW5nLCBmbjogKCkgPT4gVCk6IFQgPT4gdGhpcy5fY2FjaGVbbmFtZV0gfHwgKHRoaXMuX2NhY2hlW25hbWVdID0gZm4oKSk7XHJcbiAgLyoqIHN5c3RlbSBjdXJyZW5jeSAqL1xyXG4gIGdldCBudW1iZXJGb3JtYXQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbmN5Q29kZSA/XHJcbiAgICAgIGdldExvY2FsZU51bWJlckZvcm1hdCh0aGlzLl9zZXNzaW9uLmxhbmd1YWdlLCBOdW1iZXJGb3JtYXRTdHlsZS5DdXJyZW5jeSkuXHJcbiAgICAgICAgcmVwbGFjZSgnwqQnLCBnZXRDdXJyZW5jeVN5bWJvbCh0aGlzLmN1cnJlbmN5Q29kZSwgJ25hcnJvdycpKSA6XHJcbiAgICAgIGdldExvY2FsZU51bWJlckZvcm1hdCh0aGlzLl9zZXNzaW9uLmxhbmd1YWdlLCBOdW1iZXJGb3JtYXRTdHlsZS5EZWNpbWFsKTtcclxuICB9XHJcbiAgZ2V0IGN1cnJlbmN5Q29kZSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgeyBjdXJyZW5jeUNvZGUgfSA9IHRoaXMuX2NvbmZpZyB8fCB7fTtcclxuICAgIHJldHVybiBjdXJyZW5jeUNvZGUgfHwgREVGQVVMVF9DVVJSRU5DWTtcclxuICB9XHJcbiAgZ2V0IGRpZ2l0c0luZm8oKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHsgZnJhY3Rpb25EaWdpdHMgfSA9IHRoaXM7XHJcbiAgICByZXR1cm4gYDEuJHtmcmFjdGlvbkRpZ2l0c30tJHtmcmFjdGlvbkRpZ2l0c31gO1xyXG4gIH1cclxuICBnZXQgZnJhY3Rpb25EaWdpdHMoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IHsgZm9ybWF0cyB9ID0gdGhpcy5fY29uZmlnLCB7IGZyYWN0aW9uRGlnaXRzIH0gPSBmb3JtYXRzIHx8IHt9O1xyXG4gICAgcmV0dXJuIGZyYWN0aW9uRGlnaXRzICE9PSB1bmRlZmluZWQgPyBmcmFjdGlvbkRpZ2l0cyA6IDI7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIHF1ZXJ5IGN1YmUgYnkgYXhlcywgc2VyaWVzIGFuZCBpbmRpY2VzXHJcbiAgICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICAqIEBwYXJhbSB4QXhpcyBncm91cCBieSBvbmUgb3IgbW9yZSBheGlzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBzZXJpZXMoY3ViZTogc3RyaW5nLCB4QXhpczogc3RyaW5nIHwgc3RyaW5nW10sXHJcbiAgICBvcHRpb25zPzoge1xyXG4gICAgICAvKiogZ3JvdXAgc2VyaWVzIGJ5IG9uZSBvciBtb3JlIGF4aXMgKi9cclxuICAgICAgc2VyaWVzPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgICAgIC8qKiBpbmNsdWRlIG9uZSBvciBtb3JlIGluZGV4IHNlcmllICovXHJcbiAgICAgIGluZGljZXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAgICAgZ3JvdXBJbmRpY2VzPzogYm9vbGVhbixcclxuICAgICAgLyoqIGF4ZXMgKi9cclxuICAgICAgZmlsdGVycz86IHsgW2F4aXM6IHN0cmluZ106IEF4aXNUeXBlIH07XHJcbiAgICAgIHNjb3BlPzogU2NvcGVUeXBlLFxyXG4gICAgICAvKiogcmVwbGFjZSBiYXNlICovXHJcbiAgICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICAgIH0pOiBPYnNlcnZhYmxlPFNlcmllc1tdPiB7XHJcbiAgICBpZiAoIW9wdGlvbnMpIG9wdGlvbnMgPSB7fTtcclxuICAgIGNvbnN0IHsgZmlsdGVyczogYXhlcywgc2VyaWVzLCBpbmRpY2VzLCBiYXNlLCBzY29wZSwgZ3JvdXBJbmRpY2VzIH0gPSBvcHRpb25zLCBmaWx0ZXJzID0geyAuLi5heGVzIH07XHJcbiAgICAvLyBub3JtYWxpemUgYXJnc1xyXG4gICAgYmFzZSAmJiB0aGlzLmJhc2UoY3ViZSwgZmlsdGVycywgYmFzZSk7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8U2VyaWVzW10+KGAvYXBpL2N1YmUvJHtjdWJlfWAsIHtcclxuICAgICAgeEF4aXMsXHJcbiAgICAgIHNlcmllcyxcclxuICAgICAgaW5kaWNlcyxcclxuICAgICAgZmlsdGVycyxcclxuICAgICAgc2NvcGUsIGdyb3VwSW5kaWNlc1xyXG4gICAgfSkucGlwZSh0aGlzLl9kZWNvcmF0ZShjdWJlLCBpc0FycmF5KHhBeGlzKSA/IHhBeGlzIDogW3hBeGlzXSxcclxuICAgICAgc2VyaWVzID8gaXNBcnJheShzZXJpZXMpID8gc2VyaWVzIDogW3Nlcmllc10gOiBudWxsKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGFnZ3JlZ2F0ZSBjdWJlIHRvIGZsYXQgY29sbGVjdGlvbiBvZiBjb2x1bW5zIGFuZCB2YWx1ZShzKVxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gY29sdW1uc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgdGFibGUoY3ViZTogc3RyaW5nLCBjb2x1bW5zOiBzdHJpbmdbXSwgb3B0aW9ucz86IHtcclxuICAgIC8qKiBheGVzICovXHJcbiAgICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICAgIC8qKiBpbmNsdWRlIG9uZSBvciBtb3JlIGluZGV4IHZhbHVlcyAqL1xyXG4gICAgaW5kaWNlcz86IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gICAgc2NvcGU/OiBTY29wZVR5cGUsXHJcbiAgfSk6IE9ic2VydmFibGU8eyB2YWx1ZTogbnVtYmVyIH1bXT4ge1xyXG4gICAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XHJcbiAgICBjb25zdCB7IGZpbHRlcnMsIGluZGljZXMsIHNjb3BlIH0gPSBvcHRpb25zO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PHsgdmFsdWU6IG51bWJlciB9W10+KGAvYXBpL2N1YmUvdGFibGUvJHtjdWJlfWAsIHtcclxuICAgICAgY29sdW1ucyxcclxuICAgICAgaW5kaWNlcyxcclxuICAgICAgZmlsdGVycyxcclxuICAgICAgc2NvcGVcclxuICAgIH0pLnBpcGUodGhpcy5fZGVjb3JhdGVUYWJsZShjdWJlLCBjb2x1bW5zKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGluZm9ybWF0aW9uIG9uIGV4cGVjdGVkIGV4cGxvcmUgdHlwZVxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gYXhlcyBmaWx0ZXJzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICByZXNvbHZlKGN1YmU6IHN0cmluZywgYXhlczogeyBba2V5OiBzdHJpbmddOiBBeGlzVHlwZSB9LCBvcHRpb25zPzoge1xyXG4gICAgLyoqIHJlcGxhY2UgYmFzZSAqL1xyXG4gICAgYmFzZT86IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpIH0gfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gIH0pOiBPYnNlcnZhYmxlPEV4cGxvcmVUeXBlPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7IC4uLmF4ZXMgfSBhcyBhbnk7XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBjb25zdCB7IGJhc2UgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8RXhwbG9yZVR5cGU+KGAvYXBpL2N1YmUvZXhwbG9yZXR5cGUvJHtjdWJlfWAsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBleHBsb3JlIGl0ZW1zIGJ5IGF4aXNcclxuICAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgICogQHBhcmFtIGF4ZXMgZmlsdGVyc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgZXhwbG9yZShjdWJlOiBzdHJpbmcsIGF4ZXM6IHsgW2tleTogc3RyaW5nXTogQXhpc1R5cGUgfSwgb3B0aW9ucz86IHtcclxuICAgIC8qKiByZXN0cmljdCByZXN1bHRzIHRvIHVzZXIgcGF0dGVybnMgb3IgcG9zaXRpb25zICovXHJcbiAgICBzY29wZT86IFNjb3BlVHlwZSxcclxuICAgIC8qKiByZXBsYWNlIGJhc2UgKi9cclxuICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICB9KTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0geyAuLi5heGVzIH0gYXMgYW55O1xyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgY29uc3QgeyBiYXNlLCBzY29wZSB9ID0gb3B0aW9ucztcclxuICAgICAgYmFzZSAmJiB0aGlzLmJhc2UoY3ViZSwgcGFyYW1zLCBiYXNlKTtcclxuICAgICAgaWYgKHNjb3BlKSBwYXJhbXMuc2NvcGUgPSBzY29wZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxhbnlbXT4oXHJcbiAgICAgIGAvYXBpL2N1YmUvZXhwbG9yZS8ke2N1YmV9YCxcclxuICAgICAgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBheGVzXHJcbiAgICogQHBhcmFtIGN1YmVcclxuICAgKi9cclxuICBuYW1lT2YoYXhlczogQXhlc01hcCwgY3ViZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmUpO1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBvcHRpb25zLmF4ZXMuZmlsdGVyKGEgPT4gaXNTdHJpbmcoYXhlc1thLm5hbWVdKSAmJlxyXG4gICAgICAvLyB2YWx1ZVxyXG4gICAgICAhQVhJU19TUEVDSUFMX0NIQVJTLnRlc3QoYXhlc1thLm5hbWVdIGFzIHN0cmluZykpLm1hcChhID0+XHJcbiAgICAgICAgdGhpcy5fdHlwZS5nZXQoYS5kYXRhVHlwZSwgYXhlc1thLm5hbWVdIGFzIHN0cmluZykpO1xyXG4gICAgcmV0dXJuIChvYnNlcnZhYmxlcy5sZW5ndGggPyBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShtYXAobyA9PiBvLmpvaW4oJyAnKSkpIDogb2YobnVsbCkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBleHBsb3JlIGluZGljZXMgYnkgYXhpc1xyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gaW5kZXggbmFtZVxyXG4gICAqIEBwYXJhbSBheGVzIGZpbHRlcnNcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIGluZGljZXMoY3ViZTogc3RyaW5nLCBpbmRleDogc3RyaW5nLCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBBeGlzVHlwZSB9LFxyXG4gICAgb3B0aW9ucz86IHtcclxuICAgICAgLyoqIHJlc3RyaWN0IHJlc3VsdHMgdG8gdXNlciBwYXR0ZXJucyBvciBwb3NpdGlvbnMgKi9cclxuICAgICAgc2NvcGU/OiBTY29wZVR5cGVcclxuICAgICAgYmFzZT86IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpIH0gfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gICAgfSk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uYXhlcyB9IGFzIGFueTtcclxuICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgIGNvbnN0IHsgYmFzZSwgc2NvcGUgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICAgIGlmIChzY29wZSkgcGFyYW1zLnNjb3BlID0gc2NvcGU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8YW55W10+KFxyXG4gICAgICBgL2FwaS9jdWJlL2V4cGxvcmVpbmRleC8ke2N1YmV9LyR7aW5kZXh9YCwgeyBwYXJhbXMgfSkuXHJcbiAgICAgIHBpcGUodGhpcy5fZGVjb3JhdGVUYWJsZShjdWJlKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCBleHBsb3JlIGl0ZW0gYnkgYXhpcyBhbmQga2V5KHMpXHJcbiAgICogQHBhcmFtIGN1YmVcclxuICAgKiBAcGFyYW0gYXhlc1xyXG4gICAqIEBwYXJhbSBrZXlzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBpdGVtKGN1YmU6IHN0cmluZywgYXhlczogeyBbYXhpczogc3RyaW5nXTogQXhpc1R5cGUgfSwga2V5czogKHN0cmluZyB8IG51bWJlcilbXSB8IHN0cmluZyB8IG51bWJlciwgb3B0aW9ucz86IHtcclxuICAgIC8qKiByZXBsYWNlIGJhc2UgKi9cclxuICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICB9KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uYXhlcyB9IGFzIGFueTtcclxuICAgIHBhcmFtc1sna2V5J10gPSBpc0FycmF5KGtleXMpID8ga2V5c1swXSA6IGtleXM7XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBjb25zdCB7IGJhc2UgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoYC9hcGkvY3ViZS9leHBsb3JlaXRlbS8ke2N1YmV9YCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gYXhlcyBjb25kaXRpb25cclxuICAgKi9cclxuICBjb25zdHJhaW50cyhjdWJlOiBzdHJpbmcsIGF4ZXM/OiB7IFtrZXk6IHN0cmluZ106IEF4aXNUeXBlIH0sIG9wdGlvbnM/OiB7IHNvdXJjZTogJ2NvbnN0cmFpbnRzJyB8ICdjb21iaW5hdGlvbnMnIH0pOiBPYnNlcnZhYmxlPHsgW2RhdGFUeXBlOiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IH0+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDx7IFtkYXRhVHlwZTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9PihcclxuICAgICAgIW9wdGlvbnMgfHwgb3B0aW9ucy5zb3VyY2UgPT09ICdjb25zdHJhaW50cycgP1xyXG4gICAgICAgIGAvYXBpL2N1YmUvY29uc3RyYWludHMvJHtjdWJlfWAgOiBgL2FwaS9jdWJlL2NvbWJpbmF0aW9uc2NvbnN0cmFpbnRzLyR7Y3ViZX1gLCB7XHJcbiAgICAgIHBhcmFtczogeyAuLi5heGVzIH0gYXMgYW55XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICAqIEBwYXJhbSBheGlzIG5hbWVcclxuICAgKi9cclxuICB2YWx1ZXMoY3ViZTogc3RyaW5nLCBheGlzOiBzdHJpbmcsIGRlcGVuZGVuY2llcz86IFBhcmFtTWFwKTogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IGFueSB9PiB7XHJcbiAgICBsZXQgY2FjaGVJZCA9IGN1YmUgKyBheGlzO1xyXG4gICAgZGVwZW5kZW5jaWVzICYmIE9iamVjdC5rZXlzKGRlcGVuZGVuY2llcykuZm9yRWFjaChrID0+IGNhY2hlSWQgKz0gayk7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVPcihjYWNoZUlkLCAoKT0+IHRoaXMuX2h0dHAuZ2V0PHsgW2RhdGFUeXBlOiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IH0+KFxyXG4gICAgICBgL2FwaS9jdWJlL3NlZ21lbnR2YWx1ZXMvJHtjdWJlfS8ke2F4aXN9YCwgeyBwYXJhbXM6IGRlcGVuZGVuY2llcyB9KSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCBheGlzIGNvbWJpbmF0aW9uc1xyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gYXhlcyBmaWx0ZXJzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBjb21iaW5hdGlvbnMoY3ViZTogc3RyaW5nLCBheGVzPzogeyBba2V5OiBzdHJpbmddOiBBeGlzVHlwZSB9LCBvcHRpb25zPzoge1xyXG4gICAgLyoqIHRvcCAqL1xyXG4gICAgdGFrZT86IG51bWJlcjtcclxuICAgIC8qKiBwcm9jZXNzIGluIGJhY2tncm91bmQgKi9cclxuICAgIHByb2dyZXNzPzogYm9vbGVhbjtcclxuICB9KTogT2JzZXJ2YWJsZTxzdHJpbmdbXVtdPiB7XHJcbiAgICBpZiAoIW9wdGlvbnMpIG9wdGlvbnMgPSB7fTtcclxuICAgIGNvbnN0IHsgdGFrZSwgcHJvZ3Jlc3MgfSA9IG9wdGlvbnM7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8c3RyaW5nW11bXT4oYC9hcGkvY3ViZS9jb21iaW5hdGlvbnMvJHtjdWJlfWAsIHtcclxuICAgICAgcGFyYW1zOiB7IC4uLmF4ZXMsIHRha2UgfSBhcyBhbnksXHJcbiAgICAgIGhlYWRlcnM6IHByb2dyZXNzID09PSBmYWxzZSA/IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH0gOiB7fVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB2YWx1ZVxyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgc2VhcmNoKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM6IHsgdGFrZT86IG51bWJlciB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8eyBjdWJlOiBzdHJpbmcsIGF4aXM6IHN0cmluZywga2V5OiBhbnksIHZhbHVlOiBhbnkgfVtdPignL2FwaS9jdWJlL3NlYXJjaCcsIHtcclxuICAgICAgcGFyYW1zOiB7IHZhbHVlLCAuLi5vcHRpb25zIH0gYXMgYW55LFxyXG4gICAgICBoZWFkZXJzOiB7ICduby1wcm9ncmVzcyc6ICd0cnVlJyB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogZ2V0IHNlZ21lbnRzXHJcbiAgICogQHBhcmFtIGN1YmVcclxuICAgKi9cclxuICBzZWdtZW50cyhjdWJlOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IE9ic2VydmFibGU8U2VnbWVudE1hcD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlT3IoYCR7dHlwZX0tc2VnbWVudHNgLCAoKSA9PiB0aGlzLl9odHRwLmdldDxTZWdtZW50TWFwPihgL2FwaS9jdWJlL3NlZ21lbnRzLyR7Y3ViZX0/dHlwZT0ke3R5cGV9YCkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBnZXQgdXNlciBwYXR0ZXJuc1xyXG4gICAqIEBwYXJhbSBjdWJlXHJcbiAgICovXHJcbiAgcGF0dGVybnMoY3ViZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQYXR0ZXJuW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9jYWNoZU9yKGAke2N1YmV9LXBhdHRlcm5zYCwgKCkgPT4gdGhpcy5faHR0cC5nZXQ8UGF0dGVybltdPihgL2FwaS9jdWJlL3BhdHRlcm5zLyR7Y3ViZX1gKSk7XHJcbiAgfVxyXG4gIC8qKiBnZXQgY3VycmVuY2llcyAqL1xyXG4gIGN1cnJlbmNpZXMoKTogT2JzZXJ2YWJsZTxDdXJyZW5jeVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVPcignY3VycmVuY2llcycsICgpID0+XHJcbiAgICAgIHRoaXMuX2h0dHAuZ2V0PEN1cnJlbmN5W10+KCdhcGkvY3ViZS9jdXJyZW5jaWVzJykucGlwZShzaGFyZVJlcGxheSgpKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCBleGNoYW5nZSByYXRlXHJcbiAgICogQHBhcmFtIGN1cnJlbmN5Q29kZVxyXG4gICAqIEBwYXJhbSBkYXRlXHJcbiAgICovXHJcbiAgZXhjaGFuZ2VSYXRlKGN1cnJlbmN5Q29kZTogc3RyaW5nLCBkYXRlPzogRGF0ZSk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW5jeUNvZGUgPT09IGN1cnJlbmN5Q29kZSlcclxuICAgICAgcmV0dXJuIG9mKDEpO1xyXG4gICAgY29uc3Qga2V5ID0gY3VycmVuY3lDb2RlICsgKGRhdGUgPyBkYXRlLnRvSlNPTigpIDogJycpO1xyXG4gICAgaWYgKHRoaXMuX2V4Y2hhbmdlUmF0ZXNba2V5XSlcclxuICAgICAgcmV0dXJuIHRoaXMuX2V4Y2hhbmdlUmF0ZXNba2V5XTtcclxuICAgIHJldHVybiB0aGlzLl9leGNoYW5nZVJhdGVzW2tleV0gPSB0aGlzLl9odHRwLmdldDxudW1iZXI+KGBhcGkvY3ViZS9leGNoYW5nZVJhdGUvJHtjdXJyZW5jeUNvZGV9YCwge1xyXG4gICAgICBwYXJhbXM6IGRhdGUgPyB7IGRhdGU6IGRhdGUudG9KU09OKCkgfSA6IG51bGwsXHJcbiAgICAgIGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH1cclxuICAgIH0pLnBpcGUoc2hhcmVSZXBsYXkoKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICogcmVwbGFjZXMgKiBvciAjIHdpdGggb3JpZ2luIGF4aXMgYXQgY2hhciBwbGFjZVxyXG4gICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICogQHBhcmFtIGF4ZXMgbWFwXHJcbiAgKiBAcGFyYW0gYmFzZSBvcmlnaW5cclxuICAqL1xyXG4gIHB1YmxpYyBiYXNlKGN1YmU6IHN0cmluZywgYXhlczogQXhlc01hcCxcclxuICAgIGJhc2U6IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBBeGVzTWFwKTogdm9pZCB7XHJcbiAgICBjb25zdCBjY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKTtcclxuICAgIGNjdWJlLmF4ZXMuZm9yRWFjaCgoYSwgaSkgPT4ge1xyXG4gICAgICBjb25zdCB2YWwgPSBheGVzW2EubmFtZV07XHJcbiAgICAgIGlmICh2YWwgJiYgaXNTdHJpbmcodmFsKSkge1xyXG4gICAgICAgIGNvbnN0IGF4aXNiYXNlID0gaXNBcnJheShiYXNlKSA/IGJhc2VbaV0gOiBiYXNlW2EubmFtZV07XHJcbiAgICAgICAgaWYgKHZhbCA9PT0gQVhJU19NQVBfQVNfSVMpXHJcbiAgICAgICAgICBheGVzW2EubmFtZV0gPSBheGlzYmFzZTtcclxuICAgICAgICBlbHNlIGlmICh2YWwuaW5kZXhPZihBWElTX01BUF9DSEFSKSA+IC0xKSB7XHJcbiAgICAgICAgICBsZXQgYXhpcyA9ICcnO1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB2YWwubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgbGV0IGNoYXIgPSB2YWwuY2hhckF0KGopO1xyXG4gICAgICAgICAgICBheGlzICs9IGNoYXIgPT09IEFYSVNfTUFQX0NIQVIgJiYgKGF4aXNiYXNlIGFzIHN0cmluZykubGVuZ3RoID4gaiA/XHJcbiAgICAgICAgICAgICAgKGF4aXNiYXNlIGFzIHN0cmluZykuY2hhckF0KGopIDogY2hhcjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGF4ZXNbYS5uYW1lXSA9IGF4aXM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogYWRkcyB2YWx1ZXMgdG8gc291cmNlIGtleXNcclxuICAgKiBAcGFyYW0gY3ViZVxyXG4gICAqIEBwYXJhbSB4QXhpc1xyXG4gICAqIEBwYXJhbSBzZXJpZXNcclxuICAgKi9cclxuICBwcml2YXRlIF9kZWNvcmF0ZShjdWJlOiBzdHJpbmcsXHJcbiAgICB4QXhpczogc3RyaW5nW10sXHJcbiAgICBzZXJpZXM6IHN0cmluZ1tdKTogKHNvdXJjZTogT2JzZXJ2YWJsZTxTZXJpZXNbXT4pID0+IE9ic2VydmFibGU8U2VyaWVzW10+IHtcclxuICAgIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPFNlcmllc1tdPikgPT4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHNvdXJjZS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8YW55PltdID0gW107XHJcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKTtcclxuICAgICAgICBjb25zdCBheGlzVHlwZU1hcCA9IHt9O1xyXG4gICAgICAgIG9wdGlvbnMuYXhlcy5mb3JFYWNoKHggPT4gYXhpc1R5cGVNYXBbeC5uYW1lXSA9IHguZGF0YVR5cGUpO1xyXG4gICAgICAgIGlmICghci5sZW5ndGgpIHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChyKTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYmFzZSA9IHJbMF0ucG9pbnRzO1xyXG4gICAgICAgIHIuZm9yRWFjaCgocywgaSkgPT4ge1xyXG4gICAgICAgICAgcy5wb2ludHMuZm9yRWFjaChwID0+IHtcclxuICAgICAgICAgICAgaWYgKCFwLngpIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3QgcG9ic2VydmFibGUgPSBmb3JrSm9pbihwLnguc3BsaXQoQVhFU19DT0RFX0RJVklERVIpLm1hcCgoaywgaikgPT5cclxuICAgICAgICAgICAgICB0aGlzLl90eXBlLmdldChheGlzVHlwZU1hcFt4QXhpc1tqXV0sIGspKSkuXHJcbiAgICAgICAgICAgICAgcGlwZSh0YXAobyA9PiBwLm5hbWUgPSBvLmpvaW4oQVhFU19MQUJFTF9ESVZJREVSKSkpO1xyXG4gICAgICAgICAgICBvYnNlcnZhYmxlcy5wdXNoKHBvYnNlcnZhYmxlKTtcclxuICAgICAgICAgICAgaWYgKGkgPiAwKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGogPSAwLCBtaXNzaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB3aGlsZSAoaiA8IGJhc2UubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgeCA9IGJhc2Vbal0ueDtcclxuICAgICAgICAgICAgICAgIGlmIChwLnggPT09IHgpIHtcclxuICAgICAgICAgICAgICAgICAgbWlzc2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChwLnggPCB4KVxyXG4gICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGorKztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKG1pc3NpbmcpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNsb25lID0geyB4OiBwLngsIHk6IDAgfSBhcyBQb2ludDtcclxuICAgICAgICAgICAgICAgIGJhc2Uuc3BsaWNlKGosIDAsIGNsb25lKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvYnNlcnZhYmxlID0gZm9ya0pvaW4ocC54LnNwbGl0KEFYRVNfQ09ERV9ESVZJREVSKS5tYXAoKGssIGopID0+XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuX3R5cGUuZ2V0KGF4aXNUeXBlTWFwW3hBeGlzW2pdXSwgaykpKS5cclxuICAgICAgICAgICAgICAgICAgcGlwZSh0YXAobyA9PiBjbG9uZS5uYW1lID0gby5qb2luKEFYRVNfTEFCRUxfRElWSURFUikpKTtcclxuICAgICAgICAgICAgICAgIG9ic2VydmFibGVzLnB1c2goY29ic2VydmFibGUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAocy5pbmRleCkge1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IG9wdGlvbnMuaW5kaWNlcy5maW5kKGkgPT4gaS5uYW1lID09PSBzLmluZGV4KTtcclxuICAgICAgICAgICAgcy50aXRsZSA9IGluZGV4LnRpdGxlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAocy5uYW1lKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNvYnNlcnZhYmxlID0gZm9ya0pvaW4ocy5uYW1lLnNwbGl0KEFYRVNfQ09ERV9ESVZJREVSKS5tYXAoKGssIGkpID0+XHJcbiAgICAgICAgICAgICAgdGhpcy5fdHlwZS5nZXQoYXhpc1R5cGVNYXBbc2VyaWVzW2ldXSwgaylcclxuICAgICAgICAgICAgKSkucGlwZSh0YXAodiA9PiBzLnRpdGxlID0gdi5qb2luKEFYRVNfTEFCRUxfRElWSURFUikpKTtcclxuICAgICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChzb2JzZXJ2YWJsZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKG9ic2VydmFibGVzLmxlbmd0aClcclxuICAgICAgICAgIGZvcmtKb2luKG9ic2VydmFibGVzKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBvYnNlcnZlLm5leHQocik7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH0sIGUgPT4gb2JzZXJ2ZS5lcnJvcihlKSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBvYnNlcnZlLm5leHQocik7XHJcbiAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCBlID0+IG9ic2VydmUuZXJyb3IoZSkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGFkZHMgdmFsdWVzIHRvIHNvdXJjZSBrZXlzXHJcbiAgICogQHBhcmFtIGN1YmVcclxuICAgKi9cclxuICBwcml2YXRlIF9kZWNvcmF0ZVRhYmxlPFQ+KGN1YmU6IHN0cmluZywgY29sdW1ucz86IHN0cmluZ1tdKTogKHNvdXJjZTogT2JzZXJ2YWJsZTxUW10+KSA9PiBPYnNlcnZhYmxlPFRbXT4ge1xyXG4gICAgY29uc3QgY2N1YmUgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXMuZmluZChjID0+IGMubmFtZSA9PT0gY3ViZSksXHJcbiAgICAgIGF4ZXMgPSBjY3ViZS5heGVzLmZpbHRlcihhID0+ICFjb2x1bW5zIHx8IGNvbHVtbnMuaW5kZXhPZihhLm5hbWUpID4gLTEpO1xyXG4gICAgcmV0dXJuIChzb3VyY2UpID0+IG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICBzb3VyY2Uuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG4gICAgICAgIHIuZm9yRWFjaChyb3cgPT5cclxuICAgICAgICAgIGF4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBuYW1lLCBkYXRhVHlwZSB9ID0gYSwgdmFsdWUgPSByb3dbbmFtZV07XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgLy8ga2VlcCBrZXlcclxuICAgICAgICAgICAgICByb3dbJ18nICsgbmFtZV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgICBjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5fdHlwZS5nZXQoZGF0YVR5cGUsIHZhbHVlKS5waXBlKHRhcCh2ID0+XHJcbiAgICAgICAgICAgICAgICByb3dbbmFtZV0gPSB2IHx8IHZhbHVlKSk7XHJcbiAgICAgICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICAgIGlmIChvYnNlcnZhYmxlcy5sZW5ndGgpXHJcbiAgICAgICAgICBmb3JrSm9pbihvYnNlcnZhYmxlcykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KHIpO1xyXG4gICAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICB9LCBlID0+IG9ic2VydmUuZXJyb3IoZSkpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KFtdKTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGUgPT4gb2JzZXJ2ZS5lcnJvcihlKSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm9ncmVzcyh0aW1lID0gMjAwKTogKHNvdXJjZTogT2JzZXJ2YWJsZTxhbnk+KSA9PiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICByZXR1cm4gc291cmNlID0+IHNvdXJjZS5waXBlKFxyXG4gICAgdGFwKCksXHJcbiAgICBtYXAoKCkgPT4gZmFsc2UpKVxyXG59XHJcbi8qKiBtb2RlbGl6ZSBjdWJlIHJlc3VsdHMgYXMgbmVzdGVkIG1hcHMgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsaXplKCk6IChzb3VyY2U6IE9ic2VydmFibGU8U2VyaWVzW10+KSA9PiBPYnNlcnZhYmxlPHtcclxuICBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9O1xyXG59PiB7XHJcbiAgY29uc3QgZGF0YSA9IHt9O1xyXG4gIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPFNlcmllc1tdPikgPT4gc291cmNlLnBpcGUobWFwKHIgPT4ge1xyXG4gICAgci5mb3JFYWNoKHMgPT4ge1xyXG4gICAgICBjb25zdCByb3cgPSBkYXRhW3MuaW5kZXggfHwgcy5uYW1lXSA9IHt9O1xyXG4gICAgICBzLnBvaW50cy5mb3JFYWNoKHAgPT4gcm93W3AueF0gPSBwLnkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9KSk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwbG9yZVR5cGUge1xyXG4gIGNvbHVtbnM6IEZpZWxkSW5mb1tdO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGZpZWxkcz86IEZpZWxkSW5mb1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWVzIHtcclxuICBwb2ludHM6IFBvaW50W107XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBpbmRleD86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50IHtcclxuICB4OiBzdHJpbmc7XHJcbiAgeTogbnVtYmVyO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdXJyZW5jeSB7IGNvZGU6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBzeW1ib2w6IHN0cmluZyB9XHJcblxyXG5leHBvcnQgdHlwZSBTZWdtZW50TWFwID0geyBbY29kZTogc3RyaW5nXTogc3RyaW5nIH07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhdHRlcm4geyB0aXRsZTogc3RyaW5nOyBheGVzOiBBeGVzTWFwIH1cclxuIl19
|
397
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2N1YmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFnQixhQUFhLEVBQXVCLE1BQU0sdUJBQXVCLENBQUM7QUFJekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBRTlGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsRUFBRSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7QUFFL0Q7MkVBQzJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFDdEMsaUVBQWlFO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUUsY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUM7QUFFaEQsd0VBQXdFO0FBQ3hFLEtBQUs7QUFDTCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxzR0FBc0csQ0FBQztBQUV6SSxNQUFNLENB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SW5CLE1BQU07MkJBQUMsYUFBYTs7QUE0WW5DLE1BQU0sVUFBVSxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUc7SUFDakMsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzFCLEdBQUcsRUFBRSxFQUNMLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBQ3JCLENBQUM7QUFDRCwyQ0FBMkM7QUFDM0MsTUFBTSxVQUFVLFFBQVE7SUFHdEIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLE9BQU8sQ0FBQyxNQUE0QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUMzRCxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1osTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN6QyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc2hhcmVSZXBsYXksIHRhcCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBzZXRDdXJyZW5jeUNvZGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYmFzZSc7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzU3RyaW5nIH0gZnJvbSAnLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBCaXpEb2NDb25maWcsIEJJWkRPQ19DT05GSUcsIFBhcmFtTWFwLCBTY29wZVR5cGUgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBGaWVsZEluZm8sIEF4aXNUeXBlLCBBeGVzTWFwIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IGdldEN1cnJlbmN5U3ltYm9sLCBnZXRMb2NhbGVOdW1iZXJGb3JtYXQsIE51bWJlckZvcm1hdFN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmV4cG9ydCBjb25zdCBBQ0NPVU5UX0RFTElNSVRFUiA9ICcuJywgREVGQVVMVF9DVVJSRU5DWSA9ICdVU0QnO1xyXG5cclxuLyoqIGluIGNhc2UgeEF4aXMgb3Igc2VyaWVzIGlzIGdpdmVuIG1vcmUgdGhhbiBvbmUgYXhpcyxcclxuICogdGhlIHZhbHVlIHJldHVybmVkIGlzIGNvbWJpbmVkIG9mIHZhbHVlcyBzZXBlcmF0ZWQgYnkgdGhpcyBjaGFyYWN0ZXIuICovXHJcbmV4cG9ydCBjb25zdCBBWEVTX0NPREVfRElWSURFUiA9ICdfXyc7XHJcblxyXG5leHBvcnQgY29uc3QgQVhFU19MQUJFTF9ESVZJREVSID0gJy0nO1xyXG4vKiogcmVwcmVzZW50cyBhIHBsYWNlIGluIHBhdHRlcm4gdG8gYmUgcmVwbGFjZWQgYnkgYmFzZSBheGlzLiAqL1xyXG5leHBvcnQgY29uc3QgQVhJU19NQVBfQ0hBUiA9ICcjJywgQVhJU19NQVBfQVNfSVMgPSAnKic7XHJcblxyXG5leHBvcnQgY29uc3QgQVhJU19TUEVDSUFMX0NIQVJTID0gL1tcXC47I1xcLSxcXCFdLztcclxuXHJcbi8qKiBhbGxvd2VkIGNoYXJhY3RlcnMgZm9yIGF4aXMgdmFsdWUgLyBjb2xsZWN0aW9uIC8gcmFuZ2UgLyBwYXR0ZXJuLiAqL1xyXG4vL1xccExcclxuZXhwb3J0IGNvbnN0IEFYSVNfVkFMVUVfUEFUVEVSTiA9IC9eKCghP1xcdysoXFwsXFx3KykqKXwoIT9cXHcrXFwtXFx3Kyl8KCE/W1xcd1xcLlxcKlxcI10rKSkoWztdKCghP1xcdysoXFwsXFx3KykqKXwoIT9cXHcrXFwtXFx3Kyl8KCE/W1xcd1xcLlxcKlxcI10rKSkpKiQvO1xyXG5cclxuZXhwb3J0IGNvbnN0IENMRFJfRklMRVMgPSBbJ2NsZHItZGF0YS9tYWluL3swfS9jdXJyZW5jaWVzLmpzb24nLCAnY2xkci1kYXRhL21haW4vezB9L2NhLWdyZWdvcmlhbi5qc29uJywgJ2NsZHItZGF0YS9tYWluL3swfS9udW1iZXJzLmpzb24nLCAnY2xkci1kYXRhL21haW4vezB9L3RpbWVab25lTmFtZXMuanNvbicsICdjbGRyLWRhdGEvc3VwcGxlbWVudGFsL251bWJlcmluZ1N5c3RlbXMuanNvbiddO1xyXG5cclxuLyoqIHF1ZXJ5IGN1YmUgKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEN1YmVTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9jYWNoZTogeyBbbmFtZTogc3RyaW5nXTogT2JzZXJ2YWJsZTxhbnk+IH0gPSB7fTtcclxuICAvLyBjdG9yXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChCSVpET0NfQ09ORklHKSBwcml2YXRlIF9jb25maWc6IEJpekRvY0NvbmZpZyxcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIF90eXBlOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7XHJcbiAgICBfY29uZmlnICYmIF9jb25maWcuY3VycmVuY3lDb2RlICYmIHNldEN1cnJlbmN5Q29kZShfY29uZmlnLmN1cnJlbmN5Q29kZSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NhY2hlT3IgPSA8VD4obmFtZTogc3RyaW5nLCBmbjogKCkgPT4gT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4gPT5cclxuICAgIHRoaXMuX2NhY2hlW25hbWVdIHx8ICh0aGlzLl9jYWNoZVtuYW1lXSA9IGZuKCkucGlwZShzaGFyZVJlcGxheSgpKSk7XHJcbiAgLyoqIHN5c3RlbSBjdXJyZW5jeSAqL1xyXG4gIGdldCBudW1iZXJGb3JtYXQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbmN5Q29kZSA/XHJcbiAgICAgIGdldExvY2FsZU51bWJlckZvcm1hdCh0aGlzLl9zZXNzaW9uLmxhbmd1YWdlLCBOdW1iZXJGb3JtYXRTdHlsZS5DdXJyZW5jeSkuXHJcbiAgICAgICAgcmVwbGFjZSgnwqQnLCBnZXRDdXJyZW5jeVN5bWJvbCh0aGlzLmN1cnJlbmN5Q29kZSwgJ25hcnJvdycpKSA6XHJcbiAgICAgIGdldExvY2FsZU51bWJlckZvcm1hdCh0aGlzLl9zZXNzaW9uLmxhbmd1YWdlLCBOdW1iZXJGb3JtYXRTdHlsZS5EZWNpbWFsKTtcclxuICB9XHJcbiAgZ2V0IGN1cnJlbmN5Q29kZSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgeyBjdXJyZW5jeUNvZGUgfSA9IHRoaXMuX2NvbmZpZyB8fCB7fTtcclxuICAgIHJldHVybiBjdXJyZW5jeUNvZGUgfHwgREVGQVVMVF9DVVJSRU5DWTtcclxuICB9XHJcbiAgZ2V0IGRpZ2l0c0luZm8oKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHsgZnJhY3Rpb25EaWdpdHMgfSA9IHRoaXM7XHJcbiAgICByZXR1cm4gYDEuJHtmcmFjdGlvbkRpZ2l0c30tJHtmcmFjdGlvbkRpZ2l0c31gO1xyXG4gIH1cclxuICBnZXQgZnJhY3Rpb25EaWdpdHMoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IHsgZm9ybWF0cyB9ID0gdGhpcy5fY29uZmlnLCB7IGZyYWN0aW9uRGlnaXRzIH0gPSBmb3JtYXRzIHx8IHt9O1xyXG4gICAgcmV0dXJuIGZyYWN0aW9uRGlnaXRzICE9PSB1bmRlZmluZWQgPyBmcmFjdGlvbkRpZ2l0cyA6IDI7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIHF1ZXJ5IGN1YmUgYnkgYXhlcywgc2VyaWVzIGFuZCBpbmRpY2VzXHJcbiAgICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICAqIEBwYXJhbSB4QXhpcyBncm91cCBieSBvbmUgb3IgbW9yZSBheGlzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBzZXJpZXMoY3ViZTogc3RyaW5nLCB4QXhpczogc3RyaW5nIHwgc3RyaW5nW10sXHJcbiAgICBvcHRpb25zPzoge1xyXG4gICAgICAvKiogZ3JvdXAgc2VyaWVzIGJ5IG9uZSBvciBtb3JlIGF4aXMgKi9cclxuICAgICAgc2VyaWVzPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgICAgIC8qKiBpbmNsdWRlIG9uZSBvciBtb3JlIGluZGV4IHNlcmllICovXHJcbiAgICAgIGluZGljZXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAgICAgZ3JvdXBJbmRpY2VzPzogYm9vbGVhbixcclxuICAgICAgLyoqIGF4ZXMgKi9cclxuICAgICAgZmlsdGVycz86IHsgW2F4aXM6IHN0cmluZ106IEF4aXNUeXBlIH07XHJcbiAgICAgIHNjb3BlPzogU2NvcGVUeXBlLFxyXG4gICAgICAvKiogcmVwbGFjZSBiYXNlICovXHJcbiAgICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICAgIH0pOiBPYnNlcnZhYmxlPFNlcmllc1tdPiB7XHJcbiAgICBpZiAoIW9wdGlvbnMpIG9wdGlvbnMgPSB7fTtcclxuICAgIGNvbnN0IHsgZmlsdGVyczogYXhlcywgc2VyaWVzLCBpbmRpY2VzLCBiYXNlLCBzY29wZSwgZ3JvdXBJbmRpY2VzIH0gPSBvcHRpb25zLCBmaWx0ZXJzID0geyAuLi5heGVzIH07XHJcbiAgICAvLyBub3JtYWxpemUgYXJnc1xyXG4gICAgYmFzZSAmJiB0aGlzLmJhc2UoY3ViZSwgZmlsdGVycywgYmFzZSk7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8U2VyaWVzW10+KGAvYXBpL2N1YmUvJHtjdWJlfWAsIHtcclxuICAgICAgeEF4aXMsXHJcbiAgICAgIHNlcmllcyxcclxuICAgICAgaW5kaWNlcyxcclxuICAgICAgZmlsdGVycyxcclxuICAgICAgc2NvcGUsIGdyb3VwSW5kaWNlc1xyXG4gICAgfSkucGlwZSh0aGlzLl9kZWNvcmF0ZShjdWJlLCBpc0FycmF5KHhBeGlzKSA/IHhBeGlzIDogW3hBeGlzXSxcclxuICAgICAgc2VyaWVzID8gaXNBcnJheShzZXJpZXMpID8gc2VyaWVzIDogW3Nlcmllc10gOiBudWxsKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGFnZ3JlZ2F0ZSBjdWJlIHRvIGZsYXQgY29sbGVjdGlvbiBvZiBjb2x1bW5zIGFuZCB2YWx1ZShzKVxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gY29sdW1uc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgdGFibGUoY3ViZTogc3RyaW5nLCBjb2x1bW5zOiBzdHJpbmdbXSwgb3B0aW9ucz86IHtcclxuICAgIC8qKiBheGVzICovXHJcbiAgICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICAgIC8qKiBpbmNsdWRlIG9uZSBvciBtb3JlIGluZGV4IHZhbHVlcyAqL1xyXG4gICAgaW5kaWNlcz86IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gICAgc2NvcGU/OiBTY29wZVR5cGUsXHJcbiAgfSk6IE9ic2VydmFibGU8eyB2YWx1ZTogbnVtYmVyIH1bXT4ge1xyXG4gICAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XHJcbiAgICBjb25zdCB7IGZpbHRlcnMsIGluZGljZXMsIHNjb3BlIH0gPSBvcHRpb25zO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PHsgdmFsdWU6IG51bWJlciB9W10+KGAvYXBpL2N1YmUvdGFibGUvJHtjdWJlfWAsIHtcclxuICAgICAgY29sdW1ucyxcclxuICAgICAgaW5kaWNlcyxcclxuICAgICAgZmlsdGVycyxcclxuICAgICAgc2NvcGVcclxuICAgIH0pLnBpcGUodGhpcy5fZGVjb3JhdGVUYWJsZShjdWJlLCBjb2x1bW5zKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGluZm9ybWF0aW9uIG9uIGV4cGVjdGVkIGV4cGxvcmUgdHlwZVxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gYXhlcyBmaWx0ZXJzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICByZXNvbHZlKGN1YmU6IHN0cmluZywgYXhlczogeyBba2V5OiBzdHJpbmddOiBBeGlzVHlwZSB9LCBvcHRpb25zPzoge1xyXG4gICAgLyoqIHJlcGxhY2UgYmFzZSAqL1xyXG4gICAgYmFzZT86IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpIH0gfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gIH0pOiBPYnNlcnZhYmxlPEV4cGxvcmVUeXBlPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7IC4uLmF4ZXMgfSBhcyBhbnk7XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBjb25zdCB7IGJhc2UgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8RXhwbG9yZVR5cGU+KGAvYXBpL2N1YmUvZXhwbG9yZXR5cGUvJHtjdWJlfWAsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBleHBsb3JlIGl0ZW1zIGJ5IGF4aXNcclxuICAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgICogQHBhcmFtIGF4ZXMgZmlsdGVyc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgZXhwbG9yZShjdWJlOiBzdHJpbmcsIGF4ZXM6IHsgW2tleTogc3RyaW5nXTogQXhpc1R5cGUgfSwgb3B0aW9ucz86IHtcclxuICAgIC8qKiByZXN0cmljdCByZXN1bHRzIHRvIHVzZXIgcGF0dGVybnMgb3IgcG9zaXRpb25zICovXHJcbiAgICBzY29wZT86IFNjb3BlVHlwZSxcclxuICAgIC8qKiByZXBsYWNlIGJhc2UgKi9cclxuICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICB9KTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0geyAuLi5heGVzIH0gYXMgYW55O1xyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgY29uc3QgeyBiYXNlLCBzY29wZSB9ID0gb3B0aW9ucztcclxuICAgICAgYmFzZSAmJiB0aGlzLmJhc2UoY3ViZSwgcGFyYW1zLCBiYXNlKTtcclxuICAgICAgaWYgKHNjb3BlKSBwYXJhbXMuc2NvcGUgPSBzY29wZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxhbnlbXT4oXHJcbiAgICAgIGAvYXBpL2N1YmUvZXhwbG9yZS8ke2N1YmV9YCxcclxuICAgICAgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBheGVzXHJcbiAgICogQHBhcmFtIGN1YmVcclxuICAgKi9cclxuICBuYW1lT2YoYXhlczogQXhlc01hcCwgY3ViZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmUpO1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBvcHRpb25zLmF4ZXMuZmlsdGVyKGEgPT4gaXNTdHJpbmcoYXhlc1thLm5hbWVdKSAmJlxyXG4gICAgICAvLyB2YWx1ZVxyXG4gICAgICAhQVhJU19TUEVDSUFMX0NIQVJTLnRlc3QoYXhlc1thLm5hbWVdIGFzIHN0cmluZykpLm1hcChhID0+XHJcbiAgICAgICAgdGhpcy5fdHlwZS5nZXQoYS5kYXRhVHlwZSwgYXhlc1thLm5hbWVdIGFzIHN0cmluZykpO1xyXG4gICAgcmV0dXJuIChvYnNlcnZhYmxlcy5sZW5ndGggPyBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShtYXAobyA9PiBvLmpvaW4oJyAnKSkpIDogb2YobnVsbCkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBleHBsb3JlIGluZGljZXMgYnkgYXhpc1xyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gaW5kZXggbmFtZVxyXG4gICAqIEBwYXJhbSBheGVzIGZpbHRlcnNcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIGluZGljZXMoY3ViZTogc3RyaW5nLCBpbmRleDogc3RyaW5nLCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBBeGlzVHlwZSB9LFxyXG4gICAgb3B0aW9ucz86IHtcclxuICAgICAgLyoqIHJlc3RyaWN0IHJlc3VsdHMgdG8gdXNlciBwYXR0ZXJucyBvciBwb3NpdGlvbnMgKi9cclxuICAgICAgc2NvcGU/OiBTY29wZVR5cGVcclxuICAgICAgYmFzZT86IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpIH0gfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gICAgfSk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uYXhlcyB9IGFzIGFueTtcclxuICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgIGNvbnN0IHsgYmFzZSwgc2NvcGUgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICAgIGlmIChzY29wZSkgcGFyYW1zLnNjb3BlID0gc2NvcGU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8YW55W10+KFxyXG4gICAgICBgL2FwaS9jdWJlL2V4cGxvcmVpbmRleC8ke2N1YmV9LyR7aW5kZXh9YCwgeyBwYXJhbXMgfSkuXHJcbiAgICAgIHBpcGUodGhpcy5fZGVjb3JhdGVUYWJsZShjdWJlKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCBleHBsb3JlIGl0ZW0gYnkgYXhpcyBhbmQga2V5KHMpXHJcbiAgICogQHBhcmFtIGN1YmVcclxuICAgKiBAcGFyYW0gYXhlc1xyXG4gICAqIEBwYXJhbSBrZXlzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBpdGVtKGN1YmU6IHN0cmluZywgYXhlczogeyBbYXhpczogc3RyaW5nXTogQXhpc1R5cGUgfSwga2V5czogKHN0cmluZyB8IG51bWJlcilbXSB8IHN0cmluZyB8IG51bWJlciwgb3B0aW9ucz86IHtcclxuICAgIC8qKiByZXBsYWNlIGJhc2UgKi9cclxuICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICB9KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uYXhlcyB9IGFzIGFueTtcclxuICAgIHBhcmFtc1sna2V5J10gPSBpc0FycmF5KGtleXMpID8ga2V5c1swXSA6IGtleXM7XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBjb25zdCB7IGJhc2UgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoYC9hcGkvY3ViZS9leHBsb3JlaXRlbS8ke2N1YmV9YCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gYXhlcyBjb25kaXRpb25cclxuICAgKi9cclxuICBjb25zdHJhaW50cyhjdWJlOiBzdHJpbmcsIGF4ZXM/OiB7IFtrZXk6IHN0cmluZ106IEF4aXNUeXBlIH0sIG9wdGlvbnM/OiB7IHNvdXJjZTogJ2NvbnN0cmFpbnRzJyB8ICdjb21iaW5hdGlvbnMnIH0pOiBPYnNlcnZhYmxlPHsgW2RhdGFUeXBlOiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IH0+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDx7IFtkYXRhVHlwZTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9PihcclxuICAgICAgIW9wdGlvbnMgfHwgb3B0aW9ucy5zb3VyY2UgPT09ICdjb25zdHJhaW50cycgP1xyXG4gICAgICAgIGAvYXBpL2N1YmUvY29uc3RyYWludHMvJHtjdWJlfWAgOiBgL2FwaS9jdWJlL2NvbWJpbmF0aW9uc2NvbnN0cmFpbnRzLyR7Y3ViZX1gLCB7XHJcbiAgICAgIHBhcmFtczogeyAuLi5heGVzIH0gYXMgYW55XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICAqIEBwYXJhbSBheGlzIG5hbWVcclxuICAgKi9cclxuICB2YWx1ZXMoY3ViZTogc3RyaW5nLCBheGlzOiBzdHJpbmcsIGRlcGVuZGVuY2llcz86IFBhcmFtTWFwKTogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IGFueSB9PiB7XHJcbiAgICBsZXQgY2FjaGVJZCA9IGN1YmUgKyBheGlzO1xyXG4gICAgZGVwZW5kZW5jaWVzICYmIE9iamVjdC5rZXlzKGRlcGVuZGVuY2llcykuZm9yRWFjaChrID0+IGNhY2hlSWQgKz0gayk7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVPcihjYWNoZUlkLCAoKSA9PiB0aGlzLl9odHRwLmdldDx7IFtkYXRhVHlwZTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9PihcclxuICAgICAgYC9hcGkvY3ViZS9zZWdtZW50dmFsdWVzLyR7Y3ViZX0vJHtheGlzfWAsIHsgcGFyYW1zOiBkZXBlbmRlbmNpZXMgfSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBnZXQgYXhpcyBjb21iaW5hdGlvbnNcclxuICAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgICogQHBhcmFtIGF4ZXMgZmlsdGVyc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgY29tYmluYXRpb25zKGN1YmU6IHN0cmluZywgYXhlcz86IHsgW2tleTogc3RyaW5nXTogQXhpc1R5cGUgfSwgb3B0aW9ucz86IHtcclxuICAgIC8qKiB0b3AgKi9cclxuICAgIHRha2U/OiBudW1iZXI7XHJcbiAgICAvKiogcHJvY2VzcyBpbiBiYWNrZ3JvdW5kICovXHJcbiAgICBwcm9ncmVzcz86IGJvb2xlYW47XHJcbiAgfSk6IE9ic2VydmFibGU8c3RyaW5nW11bXT4ge1xyXG4gICAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XHJcbiAgICBjb25zdCB7IHRha2UsIHByb2dyZXNzIH0gPSBvcHRpb25zO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PHN0cmluZ1tdW10+KGAvYXBpL2N1YmUvY29tYmluYXRpb25zLyR7Y3ViZX1gLCB7XHJcbiAgICAgIHBhcmFtczogeyAuLi5heGVzLCB0YWtlIH0gYXMgYW55LFxyXG4gICAgICBoZWFkZXJzOiBwcm9ncmVzcyA9PT0gZmFsc2UgPyB7ICduby1wcm9ncmVzcyc6ICd0cnVlJyB9IDoge31cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gdmFsdWVcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIHNlYXJjaCh2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiB7IHRha2U/OiBudW1iZXIgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PHsgY3ViZTogc3RyaW5nLCBheGlzOiBzdHJpbmcsIGtleTogYW55LCB2YWx1ZTogYW55IH1bXT4oJy9hcGkvY3ViZS9zZWFyY2gnLCB7XHJcbiAgICAgIHBhcmFtczogeyB2YWx1ZSwgLi4ub3B0aW9ucyB9IGFzIGFueSxcclxuICAgICAgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCBzZWdtZW50c1xyXG4gICAqIEBwYXJhbSBjdWJlXHJcbiAgICovXHJcbiAgc2VnbWVudHMoY3ViZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNlZ21lbnRNYXA+IHtcclxuICAgIHJldHVybiB0aGlzLl9jYWNoZU9yKGAke3R5cGV9LXNlZ21lbnRzYCwgKCkgPT4gdGhpcy5faHR0cC5nZXQ8U2VnbWVudE1hcD4oYC9hcGkvY3ViZS9zZWdtZW50cy8ke2N1YmV9P3R5cGU9JHt0eXBlfWApKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogZ2V0IHVzZXIgcGF0dGVybnNcclxuICAgKiBAcGFyYW0gY3ViZVxyXG4gICAqL1xyXG4gIHBhdHRlcm5zKGN1YmU6IHN0cmluZyk6IE9ic2VydmFibGU8UGF0dGVybltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVPcihgJHtjdWJlfS1wYXR0ZXJuc2AsICgpID0+IHRoaXMuX2h0dHAuZ2V0PFBhdHRlcm5bXT4oYC9hcGkvY3ViZS9wYXR0ZXJucy8ke2N1YmV9YCkpO1xyXG4gIH1cclxuICAvKiogZ2V0IGN1cnJlbmNpZXMgKi9cclxuICBjdXJyZW5jaWVzKCk6IE9ic2VydmFibGU8Q3VycmVuY3lbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlT3IoJ2N1cnJlbmNpZXMnLCAoKSA9PiB0aGlzLl9odHRwLmdldDxDdXJyZW5jeVtdPignYXBpL2N1YmUvY3VycmVuY2llcycpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogZ2V0IGV4Y2hhbmdlIHJhdGVcclxuICAgKiBAcGFyYW0gY3VycmVuY3lDb2RlXHJcbiAgICogQHBhcmFtIGRhdGVcclxuICAgKi9cclxuICBleGNoYW5nZVJhdGUoY3VycmVuY3lDb2RlOiBzdHJpbmcsIGRhdGU/OiBEYXRlKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGlmICh0aGlzLmN1cnJlbmN5Q29kZSA9PT0gY3VycmVuY3lDb2RlKVxyXG4gICAgICByZXR1cm4gb2YoMSk7XHJcbiAgICBsZXQga2V5ID0gY3VycmVuY3lDb2RlO1xyXG4gICAgaWYgKGRhdGUpIGtleSArPSBkYXRlLnRvSlNPTigpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlT3Ioa2V5LCAoKSA9PiB0aGlzLl9odHRwLmdldDxudW1iZXI+KGBhcGkvY3ViZS9leGNoYW5nZVJhdGUvJHtjdXJyZW5jeUNvZGV9YCwge1xyXG4gICAgICBwYXJhbXM6IGRhdGUgPyB7IGRhdGU6IGRhdGUudG9KU09OKCkgfSA6IG51bGwsXHJcbiAgICAgIGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH1cclxuICAgIH0pKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgKiByZXBsYWNlcyAqIG9yICMgd2l0aCBvcmlnaW4gYXhpcyBhdCBjaGFyIHBsYWNlXHJcbiAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgKiBAcGFyYW0gYXhlcyBtYXBcclxuICAqIEBwYXJhbSBiYXNlIG9yaWdpblxyXG4gICovXHJcbiAgcHVibGljIGJhc2UoY3ViZTogc3RyaW5nLCBheGVzOiBBeGVzTWFwLFxyXG4gICAgYmFzZTogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IEF4ZXNNYXApOiB2b2lkIHtcclxuICAgIGNvbnN0IGNjdWJlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmUpO1xyXG4gICAgY2N1YmUuYXhlcy5mb3JFYWNoKChhLCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbCA9IGF4ZXNbYS5uYW1lXTtcclxuICAgICAgaWYgKHZhbCAmJiBpc1N0cmluZyh2YWwpKSB7XHJcbiAgICAgICAgY29uc3QgYXhpc2Jhc2UgPSBpc0FycmF5KGJhc2UpID8gYmFzZVtpXSA6IGJhc2VbYS5uYW1lXTtcclxuICAgICAgICBpZiAodmFsID09PSBBWElTX01BUF9BU19JUylcclxuICAgICAgICAgIGF4ZXNbYS5uYW1lXSA9IGF4aXNiYXNlO1xyXG4gICAgICAgIGVsc2UgaWYgKHZhbC5pbmRleE9mKEFYSVNfTUFQX0NIQVIpID4gLTEpIHtcclxuICAgICAgICAgIGxldCBheGlzID0gJyc7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHZhbC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgY2hhciA9IHZhbC5jaGFyQXQoaik7XHJcbiAgICAgICAgICAgIGF4aXMgKz0gY2hhciA9PT0gQVhJU19NQVBfQ0hBUiAmJiAoYXhpc2Jhc2UgYXMgc3RyaW5nKS5sZW5ndGggPiBqID9cclxuICAgICAgICAgICAgICAoYXhpc2Jhc2UgYXMgc3RyaW5nKS5jaGFyQXQoaikgOiBjaGFyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYXhlc1thLm5hbWVdID0gYXhpcztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBhZGRzIHZhbHVlcyB0byBzb3VyY2Uga2V5c1xyXG4gICAqIEBwYXJhbSBjdWJlXHJcbiAgICogQHBhcmFtIHhBeGlzXHJcbiAgICogQHBhcmFtIHNlcmllc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX2RlY29yYXRlKGN1YmU6IHN0cmluZyxcclxuICAgIHhBeGlzOiBzdHJpbmdbXSxcclxuICAgIHNlcmllczogc3RyaW5nW10pOiAoc291cmNlOiBPYnNlcnZhYmxlPFNlcmllc1tdPikgPT4gT2JzZXJ2YWJsZTxTZXJpZXNbXT4ge1xyXG4gICAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8U2VyaWVzW10+KSA9PiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlID0+IHtcclxuICAgICAgc291cmNlLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICBjb25zdCBvYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmUpO1xyXG4gICAgICAgIGNvbnN0IGF4aXNUeXBlTWFwID0ge307XHJcbiAgICAgICAgb3B0aW9ucy5heGVzLmZvckVhY2goeCA9PiBheGlzVHlwZU1hcFt4Lm5hbWVdID0geC5kYXRhVHlwZSk7XHJcbiAgICAgICAgaWYgKCFyLmxlbmd0aCkge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KHIpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBiYXNlID0gclswXS5wb2ludHM7XHJcbiAgICAgICAgci5mb3JFYWNoKChzLCBpKSA9PiB7XHJcbiAgICAgICAgICBzLnBvaW50cy5mb3JFYWNoKHAgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXAueCkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBwb2JzZXJ2YWJsZSA9IGZvcmtKb2luKHAueC5zcGxpdChBWEVTX0NPREVfRElWSURFUikubWFwKChrLCBqKSA9PlxyXG4gICAgICAgICAgICAgIHRoaXMuX3R5cGUuZ2V0KGF4aXNUeXBlTWFwW3hBeGlzW2pdXSwgaykpKS5cclxuICAgICAgICAgICAgICBwaXBlKHRhcChvID0+IHAubmFtZSA9IG8uam9pbihBWEVTX0xBQkVMX0RJVklERVIpKSk7XHJcbiAgICAgICAgICAgIG9ic2VydmFibGVzLnB1c2gocG9ic2VydmFibGUpO1xyXG4gICAgICAgICAgICBpZiAoaSA+IDApIHtcclxuICAgICAgICAgICAgICBsZXQgaiA9IDAsIG1pc3NpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHdoaWxlIChqIDwgYmFzZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGxldCB4ID0gYmFzZVtqXS54O1xyXG4gICAgICAgICAgICAgICAgaWYgKHAueCA9PT0geCkge1xyXG4gICAgICAgICAgICAgICAgICBtaXNzaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHAueCA8IHgpXHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgaisrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAobWlzc2luZykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xvbmUgPSB7IHg6IHAueCwgeTogMCB9IGFzIFBvaW50O1xyXG4gICAgICAgICAgICAgICAgYmFzZS5zcGxpY2UoaiwgMCwgY2xvbmUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29ic2VydmFibGUgPSBmb3JrSm9pbihwLnguc3BsaXQoQVhFU19DT0RFX0RJVklERVIpLm1hcCgoaywgaikgPT5cclxuICAgICAgICAgICAgICAgICAgdGhpcy5fdHlwZS5nZXQoYXhpc1R5cGVNYXBbeEF4aXNbal1dLCBrKSkpLlxyXG4gICAgICAgICAgICAgICAgICBwaXBlKHRhcChvID0+IGNsb25lLm5hbWUgPSBvLmpvaW4oQVhFU19MQUJFTF9ESVZJREVSKSkpO1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChjb2JzZXJ2YWJsZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChzLmluZGV4KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gb3B0aW9ucy5pbmRpY2VzLmZpbmQoaSA9PiBpLm5hbWUgPT09IHMuaW5kZXgpO1xyXG4gICAgICAgICAgICBzLnRpdGxlID0gaW5kZXgudGl0bGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmIChzLm5hbWUpIHtcclxuICAgICAgICAgICAgY29uc3Qgc29ic2VydmFibGUgPSBmb3JrSm9pbihzLm5hbWUuc3BsaXQoQVhFU19DT0RFX0RJVklERVIpLm1hcCgoaywgaSkgPT5cclxuICAgICAgICAgICAgICB0aGlzLl90eXBlLmdldChheGlzVHlwZU1hcFtzZXJpZXNbaV1dLCBrKVxyXG4gICAgICAgICAgICApKS5waXBlKHRhcCh2ID0+IHMudGl0bGUgPSB2LmpvaW4oQVhFU19MQUJFTF9ESVZJREVSKSkpO1xyXG4gICAgICAgICAgICBvYnNlcnZhYmxlcy5wdXNoKHNvYnNlcnZhYmxlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAob2JzZXJ2YWJsZXMubGVuZ3RoKVxyXG4gICAgICAgICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dChyKTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChyKTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGUgPT4gb2JzZXJ2ZS5lcnJvcihlKSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogYWRkcyB2YWx1ZXMgdG8gc291cmNlIGtleXNcclxuICAgKiBAcGFyYW0gY3ViZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2RlY29yYXRlVGFibGU8VD4oY3ViZTogc3RyaW5nLCBjb2x1bW5zPzogc3RyaW5nW10pOiAoc291cmNlOiBPYnNlcnZhYmxlPFRbXT4pID0+IE9ic2VydmFibGU8VFtdPiB7XHJcbiAgICBjb25zdCBjY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKSxcclxuICAgICAgYXhlcyA9IGNjdWJlLmF4ZXMuZmlsdGVyKGEgPT4gIWNvbHVtbnMgfHwgY29sdW1ucy5pbmRleE9mKGEubmFtZSkgPiAtMSk7XHJcbiAgICByZXR1cm4gKHNvdXJjZSkgPT4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHNvdXJjZS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8YW55PltdID0gW107XHJcbiAgICAgICAgci5mb3JFYWNoKHJvdyA9PlxyXG4gICAgICAgICAgYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IG5hbWUsIGRhdGFUeXBlIH0gPSBhLCB2YWx1ZSA9IHJvd1tuYW1lXTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAvLyBrZWVwIGtleVxyXG4gICAgICAgICAgICAgIHJvd1snXycgKyBuYW1lXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLl90eXBlLmdldChkYXRhVHlwZSwgdmFsdWUpLnBpcGUodGFwKHYgPT5cclxuICAgICAgICAgICAgICAgIHJvd1tuYW1lXSA9IHYgfHwgdmFsdWUpKTtcclxuICAgICAgICAgICAgICBvYnNlcnZhYmxlcy5wdXNoKG9ic2VydmFibGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KSk7XHJcbiAgICAgICAgaWYgKG9ic2VydmFibGVzLmxlbmd0aClcclxuICAgICAgICAgIGZvcmtKb2luKG9ic2VydmFibGVzKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBvYnNlcnZlLm5leHQocik7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH0sIGUgPT4gb2JzZXJ2ZS5lcnJvcihlKSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBvYnNlcnZlLm5leHQoW10pO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHByb2dyZXNzKHRpbWUgPSAyMDApOiAoc291cmNlOiBPYnNlcnZhYmxlPGFueT4pID0+IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gIHJldHVybiBzb3VyY2UgPT4gc291cmNlLnBpcGUoXHJcbiAgICB0YXAoKSxcclxuICAgIG1hcCgoKSA9PiBmYWxzZSkpXHJcbn1cclxuLyoqIG1vZGVsaXplIGN1YmUgcmVzdWx0cyBhcyBuZXN0ZWQgbWFwcyAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxpemUoKTogKHNvdXJjZTogT2JzZXJ2YWJsZTxTZXJpZXNbXT4pID0+IE9ic2VydmFibGU8e1xyXG4gIFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH07XHJcbn0+IHtcclxuICBjb25zdCBkYXRhID0ge307XHJcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8U2VyaWVzW10+KSA9PiBzb3VyY2UucGlwZShtYXAociA9PiB7XHJcbiAgICByLmZvckVhY2gocyA9PiB7XHJcbiAgICAgIGNvbnN0IHJvdyA9IGRhdGFbcy5pbmRleCB8fCBzLm5hbWVdID0ge307XHJcbiAgICAgIHMucG9pbnRzLmZvckVhY2gocCA9PiByb3dbcC54XSA9IHAueSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH0pKTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHBsb3JlVHlwZSB7XHJcbiAgY29sdW1uczogRmllbGRJbmZvW107XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgZmllbGRzPzogRmllbGRJbmZvW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTZXJpZXMge1xyXG4gIHBvaW50czogUG9pbnRbXTtcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIGluZGV4Pzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnQge1xyXG4gIHg6IHN0cmluZztcclxuICB5OiBudW1iZXI7XHJcbiAgbmFtZT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbmN5IHsgY29kZTogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHN5bWJvbDogc3RyaW5nIH1cclxuXHJcbmV4cG9ydCB0eXBlIFNlZ21lbnRNYXAgPSB7IFtjb2RlOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVybiB7IHRpdGxlOiBzdHJpbmc7IGF4ZXM6IEF4ZXNNYXAgfVxyXG4iXX0=
|
@@ -56,7 +56,7 @@ export class CubeExplorePaneComponent {
|
|
56
56
|
this.loading = false;
|
57
57
|
}, e => {
|
58
58
|
this.loading = false;
|
59
|
-
this._sb.error(e.status ===
|
59
|
+
this._sb.error(e.status === 406 ? 'Unauthorized' : null);
|
60
60
|
});
|
61
61
|
}
|
62
62
|
}
|
@@ -74,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
74
74
|
type: HostListener,
|
75
75
|
args: ['window:resize']
|
76
76
|
}] } });
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbG9yZS5wYW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9leHBsb3JlL2V4cGxvcmUucGFuZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvZXhwbG9yZS9leHBsb3JlLnBhbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQmhFLE1BQU0sT0FDRSx3QkFBd0I7SUFPOUIsWUFDVSxLQUF3QyxFQUN4QyxHQUFrQixFQUNsQixRQUF3QixFQUN4QixRQUFxQixFQUNyQixVQUE0QixFQUM1QixPQUFvQjtRQUxwQixVQUFLLEdBQUwsS0FBSyxDQUFtQztRQUN4QyxRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUM1QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7Z0JBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNsQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxJQUFJLENBQUMsR0FBcUI7UUFDeEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzlELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2xELFFBQVEsRUFBRSxVQUFVO2dCQUNwQixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ3RCLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDdEIsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFO2dCQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7YUFDeEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztxSEFsREssd0JBQXdCO3lHQUF4Qix3QkFBd0Isa0lDdEJoQyw0ekNBV0E7MkZEV1Esd0JBQXdCO2tCQVYvQixTQUFTOzZCQUM4QyxDQUFDOzs7RUFHdkQsQ0FBQyxRQUNLO3dCQUNKLEtBQUssRUFBRSxNQUFNO3FCQUNkOzBPQWtDRCxNQUFNO3NCQURMLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXhlc01hcCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gJy4uL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IEV4cGxvcmVJdGVtRXZlbnQgfSBmcm9tICcuL2V4cGxvcmUtaXRlbXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTY29wZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9leHBsb3JlLnBhbmUuY29tcG9uZW50Lmh0bWwnLCBzdHlsZXM6IFtgXHJcbjpob3N0IHtcclxuICAgIG1pbi13aWR0aDogMzYwcHg7XHJcbn1gXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3BhbmUnXHJcbiAgfVxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBDdWJlRXhwbG9yZVBhbmVDb21wb25lbnQge1xyXG4gIGN1YmU6IHN0cmluZztcclxuICBheGVzOiBBeGVzTWFwO1xyXG4gIHBhZ2VTaXplOiBudW1iZXI7XHJcbiAgaW5kZXg/OiBzdHJpbmc7XHJcbiAgc2NvcGU/OiBTY29wZVR5cGU7XHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3BhbmU6IFBhbmVSZWY8Q3ViZUV4cGxvcmVQYW5lQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIpIHtcclxuICAgIHRoaXMucmVzaXplKCk7XHJcbiAgICB0aGlzLl9wYW5lLnBhcmFtc0NoYW5nZS5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIHRoaXMuY3ViZSA9IHBbJ2N1YmUnXTtcclxuICAgICAgY29uc3QgY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLmN1YmUpO1xyXG4gICAgICBpZiAoIXRoaXMuX3BhbmUuZ3JvdXApIHRoaXMuX3BhbmUuZ3JvdXAgPSBjdWJlLnRpdGxlO1xyXG4gICAgICB0aGlzLl9wYW5lLnRpdGxlID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRXhwbG9yZScpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9wYW5lLmRhdGFDaGFuZ2Uuc3Vic2NyaWJlKGQgPT4ge1xyXG4gICAgICBjb25zdCB7IGluZGV4LCBzY29wZSB9ID0gZDtcclxuICAgICAgdGhpcy5pbmRleCA9IGluZGV4O1xyXG4gICAgICB0aGlzLnNjb3BlID0gc2NvcGU7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3BhbmUucXVlcnlQYXJhbXNDaGFuZ2Uuc3Vic2NyaWJlKHEgPT4ge1xyXG4gICAgICB0aGlzLmF4ZXMgPSBxO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gIHJlc2l6ZSgpIHtcclxuICAgIHRoaXMucGFnZVNpemUgPSBNYXRoLmZsb29yKCh3aW5kb3cuaW5uZXJIZWlnaHQgLSAxNTApIC8gNTApO1xyXG4gIH1cclxuICBpdGVtKGV2dDogRXhwbG9yZUl0ZW1FdmVudCkge1xyXG4gICAgY29uc3QgeyBrZXlzIH0gPSBldnQ7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5fc2VydmljZS5pdGVtKHRoaXMuY3ViZSwgdGhpcy5heGVzLCBrZXlzKS5zdWJzY3JpYmUoaXRlbSA9PiB7XHJcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2knLCBldnQudGVtcGxhdGUsIGtleXNbMF1dLCB7XHJcbiAgICAgICAgcGF0aE1vZGU6ICdyZWxhdGl2ZScsXHJcbiAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5fcGFuZSxcclxuICAgICAgICBxdWVyeVBhcmFtczogdGhpcy5heGVzLFxyXG4gICAgICAgIHN0YXRlOiB7IGl0ZW0gfSxcclxuICAgICAgICBncm91cDogdGhpcy5fcGFuZS5ncm91cFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9LCBlID0+
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbG9yZS5wYW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9leHBsb3JlL2V4cGxvcmUucGFuZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvZXhwbG9yZS9leHBsb3JlLnBhbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQmhFLE1BQU0sT0FDRSx3QkFBd0I7SUFPOUIsWUFDVSxLQUF3QyxFQUN4QyxHQUFrQixFQUNsQixRQUF3QixFQUN4QixRQUFxQixFQUNyQixVQUE0QixFQUM1QixPQUFvQjtRQUxwQixVQUFLLEdBQUwsS0FBSyxDQUFtQztRQUN4QyxRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUM1QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7Z0JBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNsQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxJQUFJLENBQUMsR0FBcUI7UUFDeEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzlELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2xELFFBQVEsRUFBRSxVQUFVO2dCQUNwQixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ3RCLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDdEIsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFO2dCQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7YUFDeEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztxSEFsREssd0JBQXdCO3lHQUF4Qix3QkFBd0Isa0lDdEJoQyw0ekNBV0E7MkZEV1Esd0JBQXdCO2tCQVYvQixTQUFTOzZCQUM4QyxDQUFDOzs7RUFHdkQsQ0FBQyxRQUNLO3dCQUNKLEtBQUssRUFBRSxNQUFNO3FCQUNkOzBPQWtDRCxNQUFNO3NCQURMLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXhlc01hcCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gJy4uL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IEV4cGxvcmVJdGVtRXZlbnQgfSBmcm9tICcuL2V4cGxvcmUtaXRlbXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTY29wZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9leHBsb3JlLnBhbmUuY29tcG9uZW50Lmh0bWwnLCBzdHlsZXM6IFtgXHJcbjpob3N0IHtcclxuICAgIG1pbi13aWR0aDogMzYwcHg7XHJcbn1gXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3BhbmUnXHJcbiAgfVxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBDdWJlRXhwbG9yZVBhbmVDb21wb25lbnQge1xyXG4gIGN1YmU6IHN0cmluZztcclxuICBheGVzOiBBeGVzTWFwO1xyXG4gIHBhZ2VTaXplOiBudW1iZXI7XHJcbiAgaW5kZXg/OiBzdHJpbmc7XHJcbiAgc2NvcGU/OiBTY29wZVR5cGU7XHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3BhbmU6IFBhbmVSZWY8Q3ViZUV4cGxvcmVQYW5lQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIpIHtcclxuICAgIHRoaXMucmVzaXplKCk7XHJcbiAgICB0aGlzLl9wYW5lLnBhcmFtc0NoYW5nZS5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIHRoaXMuY3ViZSA9IHBbJ2N1YmUnXTtcclxuICAgICAgY29uc3QgY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLmN1YmUpO1xyXG4gICAgICBpZiAoIXRoaXMuX3BhbmUuZ3JvdXApIHRoaXMuX3BhbmUuZ3JvdXAgPSBjdWJlLnRpdGxlO1xyXG4gICAgICB0aGlzLl9wYW5lLnRpdGxlID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRXhwbG9yZScpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9wYW5lLmRhdGFDaGFuZ2Uuc3Vic2NyaWJlKGQgPT4ge1xyXG4gICAgICBjb25zdCB7IGluZGV4LCBzY29wZSB9ID0gZDtcclxuICAgICAgdGhpcy5pbmRleCA9IGluZGV4O1xyXG4gICAgICB0aGlzLnNjb3BlID0gc2NvcGU7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3BhbmUucXVlcnlQYXJhbXNDaGFuZ2Uuc3Vic2NyaWJlKHEgPT4ge1xyXG4gICAgICB0aGlzLmF4ZXMgPSBxO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gIHJlc2l6ZSgpIHtcclxuICAgIHRoaXMucGFnZVNpemUgPSBNYXRoLmZsb29yKCh3aW5kb3cuaW5uZXJIZWlnaHQgLSAxNTApIC8gNTApO1xyXG4gIH1cclxuICBpdGVtKGV2dDogRXhwbG9yZUl0ZW1FdmVudCkge1xyXG4gICAgY29uc3QgeyBrZXlzIH0gPSBldnQ7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5fc2VydmljZS5pdGVtKHRoaXMuY3ViZSwgdGhpcy5heGVzLCBrZXlzKS5zdWJzY3JpYmUoaXRlbSA9PiB7XHJcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2knLCBldnQudGVtcGxhdGUsIGtleXNbMF1dLCB7XHJcbiAgICAgICAgcGF0aE1vZGU6ICdyZWxhdGl2ZScsXHJcbiAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5fcGFuZSxcclxuICAgICAgICBxdWVyeVBhcmFtczogdGhpcy5heGVzLFxyXG4gICAgICAgIHN0YXRlOiB7IGl0ZW0gfSxcclxuICAgICAgICBncm91cDogdGhpcy5fcGFuZS5ncm91cFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9LCBlID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX3NiLmVycm9yKGUuc3RhdHVzID09PSA0MDYgPyAnVW5hdXRob3JpemVkJyA6IG51bGwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtdG9vbGJhciBjbGFzcz1cIm5hdi10b29sYmFyXCI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIml0ZW1zLnJlZnJlc2goKVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZWZyZXNoJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbiBtYXRBbmltYXRlPVwicm90YXRlXCI+YXV0b3JlbmV3PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIml0ZW1zLnBhZ2luYXRvci5wcmV2aW91c1BhZ2UoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidQcmV2UGFnZScgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidQcmV2UGFnZScgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiIWl0ZW1zLnBhZ2luYXRvci5oYXNQcmV2aW91c1BhZ2UoKVwiPjxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaXRlbXMucGFnaW5hdG9yLm5leHRQYWdlKClcIiBbYml6ZG9jVG9vbHRpcF09XCInTmV4dFBhZ2UnIHwgdHJhbnNsYXRlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInTmV4dFBhZ2UnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFpdGVtcy5wYWdpbmF0b3IuaGFzTmV4dFBhZ2UoKVwiPjxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5rZXlib2FyZF9hcnJvd19yaWdodDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIml0ZW1zLmV4cG9ydEV4Y2VsKClcIiBbYml6ZG9jVG9vbHRpcF09XCInRG93bmxvYWRFeGNlbCcgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+c2F2ZV9hbHQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG48L21hdC10b29sYmFyPlxyXG48bWF0LXByb2dyZXNzLWJhciBtb2RlPVwicXVlcnlcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJsb2FkaW5nID8gJ3Zpc2libGUnOidoaWRkZW4nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG48Yml6ZG9jLWN1YmUtZXhwbG9yZSAjaXRlbXMgW2N1YmVdPVwiY3ViZVwiIFtpbmRleF09XCJpbmRleFwiIFtheGVzXT1heGVzXHJcbiAgICAgICAgICAgICAgICAgICAgIChleHBsb3JlKT1cIml0ZW0oJGV2ZW50KVwiIChsb2FkaW5nQ2hhbmdlKT1cImxvYWRpbmcgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbc2NvcGVdPVwic2NvcGVcIiBbcGFnZVNpemVdPVwicGFnZVNpemVcIj48L2JpemRvYy1jdWJlLWV4cGxvcmU+XHJcbiJdfQ==
|
@@ -110,7 +110,7 @@ export class CubeGridComponent {
|
|
110
110
|
this.loadingChange.emit(false);
|
111
111
|
});
|
112
112
|
}, (e) => {
|
113
|
-
this._sb.error(e.status ===
|
113
|
+
this._sb.error(e.status === 406 ? 'Unauthorized' : null);
|
114
114
|
this.loadingChange.emit(false);
|
115
115
|
});
|
116
116
|
}
|
@@ -214,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
214
214
|
}], id: [{
|
215
215
|
type: HostBinding
|
216
216
|
}] } });
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvZ3JpZC9ncmlkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsV0FBVyxFQUF5QixLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBRTdJLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBc0IsSUFBSSxFQUF3QixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBa0QsU0FBUyxFQUF1QyxNQUFNLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU92TyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUUvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQVUvRCxNQUFNLE9BQU8saUJBQWlCO0lBeUM1QixZQUNVLFFBQXdCLEVBQ3hCLEdBQWtCLEVBQ2xCLEdBQXNCLEVBQ3RCLFFBQXFCLEVBQ3JCLFdBQXVCO1FBSnZCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDbEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXhCZCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFN0Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWhELE9BQUUsR0FBRyxhQUFhLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxFQUFFLENB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c0JBQXpCLE1BQU07Z0JBQ0UsT0FBTztzQkFBZixLQUFLO2dCQUNhLGFBQWE7c0JBQS9CLE1BQU07Z0JBRVEsRUFBRTtzQkFBaEIsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgQ29tcG9uZW50LCBPdXRwdXQsIE9uSW5pdCwgSG9zdEJpbmRpbmcsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgSW5wdXQsIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEh0dHBSZXNwb25zZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBHcm91cFNldHRpbmdzTW9kZWwsIEdyaWQsIEFnZ3JlZ2F0ZUNvbHVtbk1vZGVsLCBFeGNlbEV4cG9ydCwgQWdncmVnYXRlLCBGcmVlemUsIFNlbGVjdGlvblNldHRpbmdzTW9kZWwsIENlbGxTZWxlY3RpbmdFdmVudEFyZ3MsIFNlbGVjdGlvbiwgUXVlcnlDZWxsSW5mb0V2ZW50QXJncywgQ29sdW1uTW9kZWwsIFJlc2l6ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWdyaWRzJztcclxuaW1wb3J0IHsgQXhpc0NsaWNrRXZlbnQsIEN1YmVWaWV3ZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIEN1YmUgfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tIFwiLi4vY3ViZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSBcIi4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcblxyXG5HcmlkLkluamVjdChTZWxlY3Rpb24sIEFnZ3JlZ2F0ZSwgRnJlZXplLCBFeGNlbEV4cG9ydCwgUmVzaXplKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWN1YmUtZ3JpZCcsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIHN0eWxlVXJsczogWydncmlkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdjdWJlLXZpZXcnXHJcbiAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3ViZUdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ3ViZVZpZXdlckNvbXBvbmVudCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKVxyXG4gIHdpZHRoOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGN1YmU6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIHNldCB4QXhpcyh2YWw6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICB0aGlzLl94QXhpcyA9IGlzQXJyYXkodmFsKSA/IHZhbCA6IFt2YWxdO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHNldCBzZXJpZXModmFsOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkgdGhpcy5fc2VyaWVzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGluZGljZXModmFsOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkgdGhpcy5faW5kaWNlcyA9IGlzQXJyYXkodmFsKSA/IHZhbCA6IFt2YWxdO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIGN1cnJlbmN5Q29kZTogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBleHBsb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxBeGlzQ2xpY2tFdmVudD4oKTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBsb2FkaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgQEhvc3RCaW5kaW5nKCkgaWQgPSBgY3ViZS1ncmlkLSR7Q3ViZUdyaWRDb21wb25lbnQubmV4dElkKyt9YDtcclxuICBncmlkOiBHcmlkO1xyXG4gIGRhdGFTb3VyY2U6IGFueVtdID0gW107XHJcbiAgcmVhZG9ubHkgZ3JvdXBTZXR0aW5nczogR3JvdXBTZXR0aW5nc01vZGVsID0ge1xyXG4gIH07XHJcbiAgcmVhZG9ubHkgc2VsZWN0aW9uU2V0dGluZ3M6IFNlbGVjdGlvblNldHRpbmdzTW9kZWwgPSB7IGNlbGxTZWxlY3Rpb25Nb2RlOiAnQm94JywgdHlwZTogJ1NpbmdsZScsIG1vZGU6ICdDZWxsJyB9O1xyXG4gIGFnZ3JlZ2F0ZXM6IHsgY29sdW1uczogQWdncmVnYXRlQ29sdW1uTW9kZWxbXSB9W107XHJcbiAgY29sdW1uczogQ29sdW1uTW9kZWxbXTtcclxuICBwcml2YXRlIF94QXhpczogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfc2VyaWVzPzogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfaW5kaWNlcz86IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX3Jvd3M6IHsga2V5OiBhbnk7IHZhbHVlOiBhbnkgfVtdID0gW107XHJcbiAgcHJpdmF0ZSBfY29sdW1uczogeyBrZXk6IGFueTsgdmFsdWU6IGFueSB9W10gPSBbXTtcclxuICAgIHByaXZhdGUgX2N1YmU6IEN1YmU7XHJcbiAgcHJpdmF0ZSBfcHJlcGFyZTogUHJvbWlzZTxhbnk+O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2RzOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jdWJlID0gdGhpcy5jdWJlID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IHRoaXMuY3ViZSkgOiB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICB0aGlzLmN1cnJlbmN5Q29kZSA9IHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlO1xyXG4gICAgY29uc3QgeCA9IHRoaXMuX2N1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSB0aGlzLl94QXhpc1swXSksXHJcbiAgICAgIHkgPSB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0gdGhpcy5fc2VyaWVzWzBdKTtcclxuICAgIGNvbnN0IHByb21pc2VzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG4gICAgLy8gYXF1aXJlIGNvbHVtbnMgc291cmNlXHJcbiAgICBsZXQgb2JzZXJ2ZSA9IHRoaXMuX2RzLmFsbCh4LmRhdGFUeXBlKS5cclxuICAgICAgcGlwZSh0YXAoYyA9PiB7XHJcbiAgICAgICAgdGhpcy5fY29sdW1ucyA9IGM7XHJcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gYCR7dGhpcy5jdXJyZW5jeUNvZGUgPyAnYycgOiAnbid9JHt0aGlzLl9zZXJ2aWNlLmZyYWN0aW9uRGlnaXRzfWA7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zID0gW3tcclxuICAgICAgICAgIGhlYWRlclRleHQ6ICcnLCBmaWVsZDogJ3RpdGxlJyxcclxuICAgICAgICB9IGFzIENvbHVtbk1vZGVsXTtcclxuICAgICAgICB0aGlzLl9jb2x1bW5zLmZvckVhY2goYyA9PiB0aGlzLmNvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgICBmaWVsZDogYF8ke2Mua2V5fWAsXHJcbiAgICAgICAgICBoZWFkZXJUZXh0OiBjLnZhbHVlLFxyXG4gICAgICAgICAgd2lkdGg6IDEyMCxcclxuICAgICAgICAgIGZvcm1hdCxcclxuICAgICAgICAgIHRleHRBbGlnbjogJ1JpZ2h0J1xyXG4gICAgICAgIH0gYXMgQ29sdW1uTW9kZWxcclxuICAgICAgICApKTtcclxuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZXMgPSBbe1xyXG4gICAgICAgICAgY29sdW1uczogdGhpcy5fY29sdW1ucy5tYXAoYyA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgY29sdW1uTmFtZTogYF8ke2Mua2V5fWAsXHJcbiAgICAgICAgICAgICAgZmllbGQ6IGBfJHtjLmtleX1gLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ0N1c3RvbScsXHJcbiAgICAgICAgICAgICAgLy8gIGZvb3RlclRlbXBsYXRlOiBgXFwke2lmKEN1c3RvbS5pbmRleE9mKCctJyk+LTEpfVxyXG4gICAgICAgICAgICAgIC8vPHNwYW4gY2xhc3M9XCJtYXQtd2FyblwiPlxcJHtDdXN0b219PC9zcGFuPiBcXCR7ZWxzZX1cclxuICAgICAgICAgICAgICAvL1xcJHtDdXN0b219IFxcJHsvaWZ9YCxcclxuICAgICAgICAgICAgICBmb3JtYXQsXHJcbiAgICAgICAgICAgICAgY3VzdG9tQWdncmVnYXRlOiB0aGlzLmN1c3RvbUFnZ3JlZ2F0ZS5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgIH0gYXMgQWdncmVnYXRlQ29sdW1uTW9kZWw7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1dO1xyXG4gICAgICB9KSk7XHJcbiAgICBwcm9taXNlcy5wdXNoKG9ic2VydmUpO1xyXG4gICAgLy8gYXF1aXJlIHJvd3Mgc291cmNlXHJcbiAgICBvYnNlcnZlID0gdGhpcy5fZHMuYWxsKHkuZGF0YVR5cGUpLlxyXG4gICAgICBwaXBlKHRhcChyID0+IHRoaXMuX3Jvd3MgPSByKSk7XHJcbiAgICBwcm9taXNlcy5wdXNoKG9ic2VydmUpO1xyXG4gICAgLy8gcHJlcGFyZVxyXG4gICAgdGhpcy5fcHJlcGFyZSA9XHJcbiAgICAgIGZvcmtKb2luKHByb21pc2VzKS50b1Byb21pc2UoKTtcclxuICAgICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydmaWx0ZXJzJ10gJiYgIWNoYW5nZXNbJ2ZpbHRlcnMnXS5maXJzdENoYW5nZSlcclxuICAgICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGlmIChjaGFuZ2VzWydoZWlnaHQnXSlcclxuICAgICAgICB0aGlzLnJlc2l6ZSgpO1xyXG4gIH1cclxuICBleGVjdXRlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnNlcmllcyh0aGlzLl9jdWJlLm5hbWUsIHRoaXMuX3hBeGlzLCB7IHNlcmllczogdGhpcy5fc2VyaWVzLCBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMsIGluZGljZXM6IHRoaXMuX2luZGljZXMgfSkuXHJcbiAgICAgIHN1YnNjcmliZShzZXJpZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmUudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCByb3dzID0gW107XHJcbiAgICAgICAgICBzZXJpZXMuZmlsdGVyKHMgPT4gcy5pbmRleCkuZm9yRWFjaChzID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgcm93ID0geyB0aXRsZTogcy50aXRsZSwgdHlwZTogJ0luZGV4Jywga2V5OiBzLmluZGV4IH0gYXMgTW9kZWw7XHJcbiAgICAgICAgICAgIHRoaXMuX25vcm1hbGl6ZShyb3csIHMucG9pbnRzKTtcclxuICAgICAgICAgICAgcm93cy5wdXNoKHJvdyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuX3Jvd3MuZm9yRWFjaChyID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgcm93ID0geyB0aXRsZTogci52YWx1ZSwga2V5OiByLmtleSB9IGFzIE1vZGVsLCBzZXJpZSA9IHNlcmllcy5maW5kKHMgPT4gcy5uYW1lID09PSByLmtleSk7XHJcbiAgICAgICAgICAgIHNlcmllICYmXHJcbiAgICAgICAgICAgICAgdGhpcy5fbm9ybWFsaXplKHJvdywgc2VyaWUucG9pbnRzKTtcclxuICAgICAgICAgICAgcm93cy5wdXNoKHJvdyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IHJvd3M7XHJcbiAgICAgICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sIChlOiBIdHRwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yKGUuc3RhdHVzID09PSA0MDEgPyAnVW5hdXRob3JpemVkJyA6IG51bGwpO1xyXG4gICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX25vcm1hbGl6ZShyb3c6IE1vZGVsLCBwb2ludHM6IGFueVtdKSB7XHJcbiAgICBwb2ludHMuZm9yRWFjaChwID0+IHJvd1tgXyR7cC54fWBdID0gcC55KTtcclxuICAgIHRoaXMuX2NvbHVtbnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgaWYgKHJvd1tgXyR7Yy5rZXl9YF0gPT09IHVuZGVmaW5lZCkgcm93W2BfJHtjLmtleX1gXSA9IDA7XHJcbiAgICB9KTtcclxuICB9O1xyXG4gIHByaXZhdGUgX2RyYXcoKSB7XHJcbiAgICB0aGlzLmdyaWQgJiYgdGhpcy5ncmlkLmRlc3Ryb3koKTtcclxuICAgIHRoaXMuZ3JpZCA9IG5ldyBHcmlkKHtcclxuICAgICAgZGF0YVNvdXJjZTogdGhpcy5kYXRhU291cmNlLFxyXG4gICAgICBjb2x1bW5zOiB0aGlzLmNvbHVtbnMsXHJcbiAgICAgIGVuYWJsZUhvdmVyOiBmYWxzZSxcclxuICAgICAgYWxsb3dFeGNlbEV4cG9ydDogdHJ1ZSxcclxuICAgICAgc2VsZWN0aW9uU2V0dGluZ3M6IHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MsXHJcbiAgICAgIGFsbG93U29ydGluZzogZmFsc2UsXHJcbiAgICAgIGZyb3plbkNvbHVtbnM6IDEsXHJcbiAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxyXG4gICAgICAvL2hlaWdodDogdGhpcy5oZWlnaHQsXHJcbiAgICAgIGNlbGxTZWxlY3Rpbmc6IHRoaXMuY2VsbFNlbGVjdGluZy5iaW5kKHRoaXMpLFxyXG4gICAgICBhbGxvd1BhZ2luZzogZmFsc2UsXHJcbiAgICAgIHF1ZXJ5Q2VsbEluZm86IHRoaXMucXVlcnlDZWxsSW5mbyxcclxuICAgICAgZnJvemVuUm93czogdGhpcy5pbmRpY2VzID8gdGhpcy5pbmRpY2VzLmxlbmd0aCA6IDAsXHJcbiAgICAgIGFnZ3JlZ2F0ZXM6IHRoaXMuYWdncmVnYXRlcyxcclxuICAgICAgY3VycmVuY3lDb2RlOiB0aGlzLmN1cnJlbmN5Q29kZVxyXG4gICAgfSwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcbiAgcXVlcnlDZWxsSW5mbyhldnQ6IFF1ZXJ5Q2VsbEluZm9FdmVudEFyZ3MpIHtcclxuICAgIGlmIChldnQuY29sdW1uLmZpZWxkID09PSAndGl0bGUnKVxyXG4gICAgICBldnQuY2VsbC5jbGFzc0xpc3QuYWRkKCdlLWhlYWRlcnRleHQnKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCB2YWwgPSBldnQuZGF0YVtldnQuY29sdW1uLmZpZWxkXTtcclxuICAgICAgaWYgKHZhbCA8IDApXHJcbiAgICAgICAgZXZ0LmNlbGwuY2xhc3NMaXN0LmFkZCgnbmVnYXRpdmUtZmlndXJlJyk7XHJcbiAgICAgIGV2dC5jZWxsLmNsYXNzTGlzdC5hZGQoJ25vd3JhcCcpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjZWxsU2VsZWN0aW5nKGV2dDogQ2VsbFNlbGVjdGluZ0V2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBkYXRhLCBjZWxsSW5kZXg6IHsgY2VsbEluZGV4IH0gfSA9IGV2dCwgeyBrZXk6IHJvdywgdHlwZSB9ID0gZGF0YSBhcyBNb2RlbDtcclxuICAgIGV2dC5jYW5jZWwgPSB0cnVlO1xyXG4gICAgaWYgKGNlbGxJbmRleCA9PT0gMClcclxuICAgICAgcmV0dXJuO1xyXG4gICAgY29uc3QgY29sdW1uID0gdGhpcy5fY29sdW1uc1tjZWxsSW5kZXggLSAxXS5rZXk7XHJcbiAgICBpZiAoZGF0YVtgXyR7Y29sdW1ufWBdID09PSAwKSByZXR1cm47XHJcbiAgICBjb25zdCBheGVzOiB7fSA9IHt9O1xyXG4gICAgYXhlc1t0aGlzLl94QXhpc1swXV0gPSBjb2x1bW47XHJcbiAgICBpZiAodHlwZSAhPT0gJ0luZGV4JykgYXhlc1t0aGlzLl9zZXJpZXNbMF1dID0gcm93O1xyXG4gICAgdGhpcy5leHBsb3JlLmVtaXQoeyBheGVzLCBpbmRleDogdHlwZSA9PT0gJ0luZGV4JyA/IHJvdyA6IG51bGwgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBjdXN0b21BZ2dyZWdhdGUoXywgY29sdW1uOiBBZ2dyZWdhdGVDb2x1bW5Nb2RlbCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5zdW0ociA9PlxyXG4gICAgICAocltjb2x1bW4uZmllbGRdIHx8IDApICogKHIudHlwZSA9PT0gJ0luZGV4JyA/IDEgOiAtMSkpO1xyXG4gIH1cclxuICByZXNpemUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ncmlkKSB7XHJcbiAgICAgIHRoaXMuZ3JpZC53aWR0aCA9IHRoaXMud2lkdGg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGV4cG9ydFRvRXhjZWwodGl0bGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5ncmlkLmV4Y2VsRXhwb3J0KHtcclxuICAgICAgZmlsZU5hbWU6IGAke3RpdGxlfS54bHN4YFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncmlkICYmIHRoaXMuZ3JpZC5kZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcblxyXG5pbnRlcmZhY2UgTW9kZWwge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdHlwZTogJ0luZGV4JyB8IG51bGw7XHJcbiAga2V5OiBhbnk7XHJcbn1cclxuIl19
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvZ3JpZC9ncmlkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsV0FBVyxFQUF5QixLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBRTdJLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBc0IsSUFBSSxFQUF3QixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBa0QsU0FBUyxFQUF1QyxNQUFNLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU92TyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUUvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQVUvRCxNQUFNLE9BQU8saUJBQWlCO0lBeUM1QixZQUNVLFFBQXdCLEVBQ3hCLEdBQWtCLEVBQ2xCLEdBQXNCLEVBQ3RCLFFBQXFCLEVBQ3JCLFdBQXVCO1FBSnZCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDbEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXhCZCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFN0Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWhELE9BQUUsR0FBRyxhQUFhLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxFQUFFLENB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c0JBQXpCLE1BQU07Z0JBQ0UsT0FBTztzQkFBZixLQUFLO2dCQUNhLGFBQWE7c0JBQS9CLE1BQU07Z0JBRVEsRUFBRTtzQkFBaEIsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgQ29tcG9uZW50LCBPdXRwdXQsIE9uSW5pdCwgSG9zdEJpbmRpbmcsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgSW5wdXQsIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEh0dHBSZXNwb25zZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBHcm91cFNldHRpbmdzTW9kZWwsIEdyaWQsIEFnZ3JlZ2F0ZUNvbHVtbk1vZGVsLCBFeGNlbEV4cG9ydCwgQWdncmVnYXRlLCBGcmVlemUsIFNlbGVjdGlvblNldHRpbmdzTW9kZWwsIENlbGxTZWxlY3RpbmdFdmVudEFyZ3MsIFNlbGVjdGlvbiwgUXVlcnlDZWxsSW5mb0V2ZW50QXJncywgQ29sdW1uTW9kZWwsIFJlc2l6ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWdyaWRzJztcclxuaW1wb3J0IHsgQXhpc0NsaWNrRXZlbnQsIEN1YmVWaWV3ZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIEN1YmUgfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tIFwiLi4vY3ViZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSBcIi4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcblxyXG5HcmlkLkluamVjdChTZWxlY3Rpb24sIEFnZ3JlZ2F0ZSwgRnJlZXplLCBFeGNlbEV4cG9ydCwgUmVzaXplKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWN1YmUtZ3JpZCcsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIHN0eWxlVXJsczogWydncmlkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdjdWJlLXZpZXcnXHJcbiAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3ViZUdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ3ViZVZpZXdlckNvbXBvbmVudCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKVxyXG4gIHdpZHRoOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGN1YmU6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIHNldCB4QXhpcyh2YWw6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICB0aGlzLl94QXhpcyA9IGlzQXJyYXkodmFsKSA/IHZhbCA6IFt2YWxdO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHNldCBzZXJpZXModmFsOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkgdGhpcy5fc2VyaWVzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGluZGljZXModmFsOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkgdGhpcy5faW5kaWNlcyA9IGlzQXJyYXkodmFsKSA/IHZhbCA6IFt2YWxdO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIGN1cnJlbmN5Q29kZTogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBleHBsb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxBeGlzQ2xpY2tFdmVudD4oKTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBsb2FkaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgQEhvc3RCaW5kaW5nKCkgaWQgPSBgY3ViZS1ncmlkLSR7Q3ViZUdyaWRDb21wb25lbnQubmV4dElkKyt9YDtcclxuICBncmlkOiBHcmlkO1xyXG4gIGRhdGFTb3VyY2U6IGFueVtdID0gW107XHJcbiAgcmVhZG9ubHkgZ3JvdXBTZXR0aW5nczogR3JvdXBTZXR0aW5nc01vZGVsID0ge1xyXG4gIH07XHJcbiAgcmVhZG9ubHkgc2VsZWN0aW9uU2V0dGluZ3M6IFNlbGVjdGlvblNldHRpbmdzTW9kZWwgPSB7IGNlbGxTZWxlY3Rpb25Nb2RlOiAnQm94JywgdHlwZTogJ1NpbmdsZScsIG1vZGU6ICdDZWxsJyB9O1xyXG4gIGFnZ3JlZ2F0ZXM6IHsgY29sdW1uczogQWdncmVnYXRlQ29sdW1uTW9kZWxbXSB9W107XHJcbiAgY29sdW1uczogQ29sdW1uTW9kZWxbXTtcclxuICBwcml2YXRlIF94QXhpczogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfc2VyaWVzPzogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfaW5kaWNlcz86IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX3Jvd3M6IHsga2V5OiBhbnk7IHZhbHVlOiBhbnkgfVtdID0gW107XHJcbiAgcHJpdmF0ZSBfY29sdW1uczogeyBrZXk6IGFueTsgdmFsdWU6IGFueSB9W10gPSBbXTtcclxuICAgIHByaXZhdGUgX2N1YmU6IEN1YmU7XHJcbiAgcHJpdmF0ZSBfcHJlcGFyZTogUHJvbWlzZTxhbnk+O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2RzOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jdWJlID0gdGhpcy5jdWJlID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IHRoaXMuY3ViZSkgOiB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICB0aGlzLmN1cnJlbmN5Q29kZSA9IHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlO1xyXG4gICAgY29uc3QgeCA9IHRoaXMuX2N1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSB0aGlzLl94QXhpc1swXSksXHJcbiAgICAgIHkgPSB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0gdGhpcy5fc2VyaWVzWzBdKTtcclxuICAgIGNvbnN0IHByb21pc2VzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG4gICAgLy8gYXF1aXJlIGNvbHVtbnMgc291cmNlXHJcbiAgICBsZXQgb2JzZXJ2ZSA9IHRoaXMuX2RzLmFsbCh4LmRhdGFUeXBlKS5cclxuICAgICAgcGlwZSh0YXAoYyA9PiB7XHJcbiAgICAgICAgdGhpcy5fY29sdW1ucyA9IGM7XHJcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gYCR7dGhpcy5jdXJyZW5jeUNvZGUgPyAnYycgOiAnbid9JHt0aGlzLl9zZXJ2aWNlLmZyYWN0aW9uRGlnaXRzfWA7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zID0gW3tcclxuICAgICAgICAgIGhlYWRlclRleHQ6ICcnLCBmaWVsZDogJ3RpdGxlJyxcclxuICAgICAgICB9IGFzIENvbHVtbk1vZGVsXTtcclxuICAgICAgICB0aGlzLl9jb2x1bW5zLmZvckVhY2goYyA9PiB0aGlzLmNvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgICBmaWVsZDogYF8ke2Mua2V5fWAsXHJcbiAgICAgICAgICBoZWFkZXJUZXh0OiBjLnZhbHVlLFxyXG4gICAgICAgICAgd2lkdGg6IDEyMCxcclxuICAgICAgICAgIGZvcm1hdCxcclxuICAgICAgICAgIHRleHRBbGlnbjogJ1JpZ2h0J1xyXG4gICAgICAgIH0gYXMgQ29sdW1uTW9kZWxcclxuICAgICAgICApKTtcclxuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZXMgPSBbe1xyXG4gICAgICAgICAgY29sdW1uczogdGhpcy5fY29sdW1ucy5tYXAoYyA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgY29sdW1uTmFtZTogYF8ke2Mua2V5fWAsXHJcbiAgICAgICAgICAgICAgZmllbGQ6IGBfJHtjLmtleX1gLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ0N1c3RvbScsXHJcbiAgICAgICAgICAgICAgLy8gIGZvb3RlclRlbXBsYXRlOiBgXFwke2lmKEN1c3RvbS5pbmRleE9mKCctJyk+LTEpfVxyXG4gICAgICAgICAgICAgIC8vPHNwYW4gY2xhc3M9XCJtYXQtd2FyblwiPlxcJHtDdXN0b219PC9zcGFuPiBcXCR7ZWxzZX1cclxuICAgICAgICAgICAgICAvL1xcJHtDdXN0b219IFxcJHsvaWZ9YCxcclxuICAgICAgICAgICAgICBmb3JtYXQsXHJcbiAgICAgICAgICAgICAgY3VzdG9tQWdncmVnYXRlOiB0aGlzLmN1c3RvbUFnZ3JlZ2F0ZS5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgIH0gYXMgQWdncmVnYXRlQ29sdW1uTW9kZWw7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1dO1xyXG4gICAgICB9KSk7XHJcbiAgICBwcm9taXNlcy5wdXNoKG9ic2VydmUpO1xyXG4gICAgLy8gYXF1aXJlIHJvd3Mgc291cmNlXHJcbiAgICBvYnNlcnZlID0gdGhpcy5fZHMuYWxsKHkuZGF0YVR5cGUpLlxyXG4gICAgICBwaXBlKHRhcChyID0+IHRoaXMuX3Jvd3MgPSByKSk7XHJcbiAgICBwcm9taXNlcy5wdXNoKG9ic2VydmUpO1xyXG4gICAgLy8gcHJlcGFyZVxyXG4gICAgdGhpcy5fcHJlcGFyZSA9XHJcbiAgICAgIGZvcmtKb2luKHByb21pc2VzKS50b1Byb21pc2UoKTtcclxuICAgICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydmaWx0ZXJzJ10gJiYgIWNoYW5nZXNbJ2ZpbHRlcnMnXS5maXJzdENoYW5nZSlcclxuICAgICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGlmIChjaGFuZ2VzWydoZWlnaHQnXSlcclxuICAgICAgICB0aGlzLnJlc2l6ZSgpO1xyXG4gIH1cclxuICBleGVjdXRlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnNlcmllcyh0aGlzLl9jdWJlLm5hbWUsIHRoaXMuX3hBeGlzLCB7IHNlcmllczogdGhpcy5fc2VyaWVzLCBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMsIGluZGljZXM6IHRoaXMuX2luZGljZXMgfSkuXHJcbiAgICAgIHN1YnNjcmliZShzZXJpZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmUudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCByb3dzID0gW107XHJcbiAgICAgICAgICBzZXJpZXMuZmlsdGVyKHMgPT4gcy5pbmRleCkuZm9yRWFjaChzID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgcm93ID0geyB0aXRsZTogcy50aXRsZSwgdHlwZTogJ0luZGV4Jywga2V5OiBzLmluZGV4IH0gYXMgTW9kZWw7XHJcbiAgICAgICAgICAgIHRoaXMuX25vcm1hbGl6ZShyb3csIHMucG9pbnRzKTtcclxuICAgICAgICAgICAgcm93cy5wdXNoKHJvdyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuX3Jvd3MuZm9yRWFjaChyID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgcm93ID0geyB0aXRsZTogci52YWx1ZSwga2V5OiByLmtleSB9IGFzIE1vZGVsLCBzZXJpZSA9IHNlcmllcy5maW5kKHMgPT4gcy5uYW1lID09PSByLmtleSk7XHJcbiAgICAgICAgICAgIHNlcmllICYmXHJcbiAgICAgICAgICAgICAgdGhpcy5fbm9ybWFsaXplKHJvdywgc2VyaWUucG9pbnRzKTtcclxuICAgICAgICAgICAgcm93cy5wdXNoKHJvdyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IHJvd3M7XHJcbiAgICAgICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sIChlOiBIdHRwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yKGUuc3RhdHVzID09PSA0MDYgPyAnVW5hdXRob3JpemVkJyA6IG51bGwpO1xyXG4gICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX25vcm1hbGl6ZShyb3c6IE1vZGVsLCBwb2ludHM6IGFueVtdKSB7XHJcbiAgICBwb2ludHMuZm9yRWFjaChwID0+IHJvd1tgXyR7cC54fWBdID0gcC55KTtcclxuICAgIHRoaXMuX2NvbHVtbnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgaWYgKHJvd1tgXyR7Yy5rZXl9YF0gPT09IHVuZGVmaW5lZCkgcm93W2BfJHtjLmtleX1gXSA9IDA7XHJcbiAgICB9KTtcclxuICB9O1xyXG4gIHByaXZhdGUgX2RyYXcoKSB7XHJcbiAgICB0aGlzLmdyaWQgJiYgdGhpcy5ncmlkLmRlc3Ryb3koKTtcclxuICAgIHRoaXMuZ3JpZCA9IG5ldyBHcmlkKHtcclxuICAgICAgZGF0YVNvdXJjZTogdGhpcy5kYXRhU291cmNlLFxyXG4gICAgICBjb2x1bW5zOiB0aGlzLmNvbHVtbnMsXHJcbiAgICAgIGVuYWJsZUhvdmVyOiBmYWxzZSxcclxuICAgICAgYWxsb3dFeGNlbEV4cG9ydDogdHJ1ZSxcclxuICAgICAgc2VsZWN0aW9uU2V0dGluZ3M6IHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MsXHJcbiAgICAgIGFsbG93U29ydGluZzogZmFsc2UsXHJcbiAgICAgIGZyb3plbkNvbHVtbnM6IDEsXHJcbiAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxyXG4gICAgICAvL2hlaWdodDogdGhpcy5oZWlnaHQsXHJcbiAgICAgIGNlbGxTZWxlY3Rpbmc6IHRoaXMuY2VsbFNlbGVjdGluZy5iaW5kKHRoaXMpLFxyXG4gICAgICBhbGxvd1BhZ2luZzogZmFsc2UsXHJcbiAgICAgIHF1ZXJ5Q2VsbEluZm86IHRoaXMucXVlcnlDZWxsSW5mbyxcclxuICAgICAgZnJvemVuUm93czogdGhpcy5pbmRpY2VzID8gdGhpcy5pbmRpY2VzLmxlbmd0aCA6IDAsXHJcbiAgICAgIGFnZ3JlZ2F0ZXM6IHRoaXMuYWdncmVnYXRlcyxcclxuICAgICAgY3VycmVuY3lDb2RlOiB0aGlzLmN1cnJlbmN5Q29kZVxyXG4gICAgfSwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcbiAgcXVlcnlDZWxsSW5mbyhldnQ6IFF1ZXJ5Q2VsbEluZm9FdmVudEFyZ3MpIHtcclxuICAgIGlmIChldnQuY29sdW1uLmZpZWxkID09PSAndGl0bGUnKVxyXG4gICAgICBldnQuY2VsbC5jbGFzc0xpc3QuYWRkKCdlLWhlYWRlcnRleHQnKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCB2YWwgPSBldnQuZGF0YVtldnQuY29sdW1uLmZpZWxkXTtcclxuICAgICAgaWYgKHZhbCA8IDApXHJcbiAgICAgICAgZXZ0LmNlbGwuY2xhc3NMaXN0LmFkZCgnbmVnYXRpdmUtZmlndXJlJyk7XHJcbiAgICAgIGV2dC5jZWxsLmNsYXNzTGlzdC5hZGQoJ25vd3JhcCcpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjZWxsU2VsZWN0aW5nKGV2dDogQ2VsbFNlbGVjdGluZ0V2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBkYXRhLCBjZWxsSW5kZXg6IHsgY2VsbEluZGV4IH0gfSA9IGV2dCwgeyBrZXk6IHJvdywgdHlwZSB9ID0gZGF0YSBhcyBNb2RlbDtcclxuICAgIGV2dC5jYW5jZWwgPSB0cnVlO1xyXG4gICAgaWYgKGNlbGxJbmRleCA9PT0gMClcclxuICAgICAgcmV0dXJuO1xyXG4gICAgY29uc3QgY29sdW1uID0gdGhpcy5fY29sdW1uc1tjZWxsSW5kZXggLSAxXS5rZXk7XHJcbiAgICBpZiAoZGF0YVtgXyR7Y29sdW1ufWBdID09PSAwKSByZXR1cm47XHJcbiAgICBjb25zdCBheGVzOiB7fSA9IHt9O1xyXG4gICAgYXhlc1t0aGlzLl94QXhpc1swXV0gPSBjb2x1bW47XHJcbiAgICBpZiAodHlwZSAhPT0gJ0luZGV4JykgYXhlc1t0aGlzLl9zZXJpZXNbMF1dID0gcm93O1xyXG4gICAgdGhpcy5leHBsb3JlLmVtaXQoeyBheGVzLCBpbmRleDogdHlwZSA9PT0gJ0luZGV4JyA/IHJvdyA6IG51bGwgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBjdXN0b21BZ2dyZWdhdGUoXywgY29sdW1uOiBBZ2dyZWdhdGVDb2x1bW5Nb2RlbCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5zdW0ociA9PlxyXG4gICAgICAocltjb2x1bW4uZmllbGRdIHx8IDApICogKHIudHlwZSA9PT0gJ0luZGV4JyA/IDEgOiAtMSkpO1xyXG4gIH1cclxuICByZXNpemUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ncmlkKSB7XHJcbiAgICAgIHRoaXMuZ3JpZC53aWR0aCA9IHRoaXMud2lkdGg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGV4cG9ydFRvRXhjZWwodGl0bGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5ncmlkLmV4Y2VsRXhwb3J0KHtcclxuICAgICAgZmlsZU5hbWU6IGAke3RpdGxlfS54bHN4YFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncmlkICYmIHRoaXMuZ3JpZC5kZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcblxyXG5pbnRlcmZhY2UgTW9kZWwge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdHlwZTogJ0luZGV4JyB8IG51bGw7XHJcbiAga2V5OiBhbnk7XHJcbn1cclxuIl19
|