@valtimo/zgw 12.10.2 → 12.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.mjs +5 -4
- package/esm2022/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.mjs +5 -4
- package/esm2022/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.mjs +5 -4
- package/esm2022/lib/modules/documenten-api/components/documenten-api-upload-field-model/documenten-api-upload-field-modal.component.mjs +5 -4
- package/fesm2022/valtimo-zgw.mjs +13 -9
- package/fesm2022/valtimo-zgw.mjs.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.d.ts.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.d.ts.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-upload-field-model/documenten-api-upload-field-modal.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -17,7 +17,7 @@ import { CommonModule } from '@angular/common';
|
|
|
17
17
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
18
18
|
import { ReactiveFormsModule, Validators } from '@angular/forms';
|
|
19
19
|
import { TranslateModule } from '@ngx-translate/core';
|
|
20
|
-
import { ButtonModule, DropdownModule, InputModule, ModalModule, NotificationModule, RadioModule, } from 'carbon-components-angular';
|
|
20
|
+
import { ButtonModule, DropdownModule, InputModule, LayerModule, ModalModule, NotificationModule, RadioModule, } from 'carbon-components-angular';
|
|
21
21
|
import { BehaviorSubject, combineLatest, map, Subscription, switchMap } from 'rxjs';
|
|
22
22
|
import { CARBON_CONSTANTS } from '@valtimo/components';
|
|
23
23
|
import * as i0 from "@angular/core";
|
|
@@ -143,7 +143,7 @@ export class DocumentenApiColumnModalComponent {
|
|
|
143
143
|
}));
|
|
144
144
|
}
|
|
145
145
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentenApiColumnModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.TranslateService }, { token: i3.DocumentenApiColumnService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
146
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DocumentenApiColumnModalComponent, isStandalone: true, selector: "valtimo-documenten-api-column-modal", inputs: { definitionName: "definitionName", prefillColumn: "prefillColumn", type: "type", availableColumns: "availableColumns", configuredColumns: "configuredColumns" }, outputs: { closeModal: "closeModal" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal valtimoCdsModal [open]=\"type !== 'closed'\" size=\"sm\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\">\n <h3 cdsModalHeaderHeading>\n {{ (type === 'add' ? 'zgw.columns.add' : 'zgw.columns.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <form\n class=\"valtimo-documenten-api-column-modal__content\"\n cdsModalContent\n [formGroup]=\"formGroup\"\n >\n <cds-dropdown\n formControlName=\"column\"\n [label]=\"'zgw.columns.column' | translate\"\n [dropUp]=\"false\"\n >\n <cds-dropdown-list\n [items]=\"!prefillColumn ? (availableColumns$ | async) : prefillColumn\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-radio-group *ngIf=\"showRadioButtons\" legend=\"Default sort\" formControlName=\"defaultSort\">\n <cds-radio value=\"noDefault\"> {{ 'interface.sorting.noDefault' | translate }} </cds-radio>\n\n <cds-radio value=\"DESC\"> {{ 'interface.sorting.descending' | translate }} </cds-radio>\n\n <cds-radio value=\"ASC\"> {{ 'interface.sorting.ascending' | translate }} </cds-radio>\n </cds-radio-group>\n\n <cds-inline-notification [notificationObj]=\"notificationObj$ | async\"></cds-inline-notification>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"updateColumn()\">\n {{ (type === 'add' ? 'interface.add' : 'interface.save') | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-documenten-api-column-modal__content{display:flex;flex-direction:column;gap:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i5.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i5.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i5.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i5.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i5.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i5.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i5.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: RadioModule }, { kind: "component", type: i5.Radio, selector: "cds-radio, ibm-radio", inputs: ["checked", "name", "disabled", "labelPlacement", "ariaLabelledby", "ariaLabel", "required", "value", "skeleton", "id"], outputs: ["change"] }, { kind: "component", type: i5.RadioGroup, selector: "cds-radio-group, ibm-radio-group", inputs: ["selected", "value", "name", "disabled", "skeleton", "orientation", "labelPlacement", "legend", "ariaLabel", "ariaLabelledby", "helperText", "invalid", "invalidText", "warn", "warnText"], outputs: ["change"] }, { kind: "ngmodule", type: NotificationModule }, { kind: "component", type: i5.Notification, selector: "cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification", inputs: ["notificationObj"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
146
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DocumentenApiColumnModalComponent, isStandalone: true, selector: "valtimo-documenten-api-column-modal", inputs: { definitionName: "definitionName", prefillColumn: "prefillColumn", type: "type", availableColumns: "availableColumns", configuredColumns: "configuredColumns" }, outputs: { closeModal: "closeModal" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal valtimoCdsModal [open]=\"type !== 'closed'\" size=\"sm\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\" [cdsLayer]=\"1\">\n <h3 cdsModalHeaderHeading>\n {{ (type === 'add' ? 'zgw.columns.add' : 'zgw.columns.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <form\n class=\"valtimo-documenten-api-column-modal__content\"\n cdsModalContent\n [formGroup]=\"formGroup\"\n [cdsLayer]=\"1\"\n >\n <cds-dropdown\n formControlName=\"column\"\n [label]=\"'zgw.columns.column' | translate\"\n [dropUp]=\"false\"\n >\n <cds-dropdown-list\n [items]=\"!prefillColumn ? (availableColumns$ | async) : prefillColumn\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-radio-group *ngIf=\"showRadioButtons\" legend=\"Default sort\" formControlName=\"defaultSort\">\n <cds-radio value=\"noDefault\"> {{ 'interface.sorting.noDefault' | translate }} </cds-radio>\n\n <cds-radio value=\"DESC\"> {{ 'interface.sorting.descending' | translate }} </cds-radio>\n\n <cds-radio value=\"ASC\"> {{ 'interface.sorting.ascending' | translate }} </cds-radio>\n </cds-radio-group>\n\n <cds-inline-notification [notificationObj]=\"notificationObj$ | async\"></cds-inline-notification>\n </form>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"updateColumn()\">\n {{ (type === 'add' ? 'interface.add' : 'interface.save') | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-documenten-api-column-modal__content{display:flex;flex-direction:column;gap:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i5.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i5.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i5.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i5.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i5.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i5.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i5.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: RadioModule }, { kind: "component", type: i5.Radio, selector: "cds-radio, ibm-radio", inputs: ["checked", "name", "disabled", "labelPlacement", "ariaLabelledby", "ariaLabel", "required", "value", "skeleton", "id"], outputs: ["change"] }, { kind: "component", type: i5.RadioGroup, selector: "cds-radio-group, ibm-radio-group", inputs: ["selected", "value", "name", "disabled", "skeleton", "orientation", "labelPlacement", "legend", "ariaLabel", "ariaLabelledby", "helperText", "invalid", "invalidText", "warn", "warnText"], outputs: ["change"] }, { kind: "ngmodule", type: NotificationModule }, { kind: "component", type: i5.Notification, selector: "cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification", inputs: ["notificationObj"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i5.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
147
147
|
}
|
|
148
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentenApiColumnModalComponent, decorators: [{
|
|
149
149
|
type: Component,
|
|
@@ -157,7 +157,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
157
157
|
DropdownModule,
|
|
158
158
|
RadioModule,
|
|
159
159
|
NotificationModule,
|
|
160
|
-
|
|
160
|
+
LayerModule,
|
|
161
|
+
], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal valtimoCdsModal [open]=\"type !== 'closed'\" size=\"sm\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\" [cdsLayer]=\"1\">\n <h3 cdsModalHeaderHeading>\n {{ (type === 'add' ? 'zgw.columns.add' : 'zgw.columns.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <form\n class=\"valtimo-documenten-api-column-modal__content\"\n cdsModalContent\n [formGroup]=\"formGroup\"\n [cdsLayer]=\"1\"\n >\n <cds-dropdown\n formControlName=\"column\"\n [label]=\"'zgw.columns.column' | translate\"\n [dropUp]=\"false\"\n >\n <cds-dropdown-list\n [items]=\"!prefillColumn ? (availableColumns$ | async) : prefillColumn\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-radio-group *ngIf=\"showRadioButtons\" legend=\"Default sort\" formControlName=\"defaultSort\">\n <cds-radio value=\"noDefault\"> {{ 'interface.sorting.noDefault' | translate }} </cds-radio>\n\n <cds-radio value=\"DESC\"> {{ 'interface.sorting.descending' | translate }} </cds-radio>\n\n <cds-radio value=\"ASC\"> {{ 'interface.sorting.ascending' | translate }} </cds-radio>\n </cds-radio-group>\n\n <cds-inline-notification [notificationObj]=\"notificationObj$ | async\"></cds-inline-notification>\n </form>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"updateColumn()\">\n {{ (type === 'add' ? 'interface.add' : 'interface.save') | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-documenten-api-column-modal__content{display:flex;flex-direction:column;gap:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
161
162
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.TranslateService }, { type: i3.DocumentenApiColumnService }], propDecorators: { definitionName: [{
|
|
162
163
|
type: Input
|
|
163
164
|
}], prefillColumn: [{
|
|
@@ -171,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
171
172
|
}], closeModal: [{
|
|
172
173
|
type: Output
|
|
173
174
|
}] } });
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vemd3L3NyYy9saWIvbW9kdWxlcy9kb2N1bWVudGVuLWFwaS9jb21wb25lbnRzL2RvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbC9kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby96Z3cvc3JjL2xpYi9tb2R1bGVzL2RvY3VtZW50ZW4tYXBpL2NvbXBvbmVudHMvZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsL2RvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsbUJBQW1CLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUUsT0FBTyxFQUFDLGVBQWUsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFDZCxXQUFXLEVBRVgsV0FBVyxFQUVYLGtCQUFrQixFQUNsQixXQUFXLEdBQ1osTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsWUFBWSxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQU85RixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFB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R1QsaUNBQWlDO2tCQWxCN0MsU0FBUzsrQkFDRSxxQ0FBcUMsbUJBRzlCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxrQkFBa0I7cUJBQ25CO3dKQUdlLGNBQWM7c0JBQTdCLEtBQUs7Z0JBR2MsYUFBYTtzQkFBaEMsS0FBSztnQkFjYyxJQUFJO3NCQUF2QixLQUFLO2dCQVdjLGdCQUFnQjtzQkFBbkMsS0FBSztnQkFvQmMsaUJBQWlCO3NCQUFwQyxLQUFLO2dCQU1JLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgRHJvcGRvd25Nb2R1bGUsXG4gIElucHV0TW9kdWxlLFxuICBMaXN0SXRlbSxcbiAgTW9kYWxNb2R1bGUsXG4gIE5vdGlmaWNhdGlvbkNvbnRlbnQsXG4gIE5vdGlmaWNhdGlvbk1vZHVsZSxcbiAgUmFkaW9Nb2R1bGUsXG59IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJlZENvbHVtbixcbiAgRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZSxcbiAgRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZUNsb3NlRXZlbnQsXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0RvY3VtZW50ZW5BcGlDb2x1bW5TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0NBUkJPTl9DT05TVEFOVFN9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTW9kYWxNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIERyb3Bkb3duTW9kdWxlLFxuICAgIFJhZGlvTW9kdWxlLFxuICAgIE5vdGlmaWNhdGlvbk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgZGVmaW5pdGlvbk5hbWU6IHN0cmluZztcblxuICBwcml2YXRlIF9wcmVmaWxsQ29sdW1uITogTGlzdEl0ZW1bXSB8IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgcHJlZmlsbENvbHVtbih2YWx1ZTogQ29uZmlndXJlZENvbHVtbiB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgIGNvbnN0IGNvbHVtbiA9IHtjb250ZW50OiB2YWx1ZS5rZXksIHNlbGVjdGVkOiB0cnVlLCBjb2x1bW46IHZhbHVlfTtcbiAgICBjb25zdCBkZWZhdWx0U29ydCA9IHZhbHVlLmRlZmF1bHRTb3J0ID8/ICdub0RlZmF1bHQnO1xuICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUoe2NvbHVtbiwgZGVmYXVsdFNvcnR9KTtcbiAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2NvbHVtbicpPy5kaXNhYmxlKCk7XG4gICAgdGhpcy5fcHJlZmlsbENvbHVtbiA9IFtjb2x1bW5dO1xuICB9XG4gIHB1YmxpYyBnZXQgcHJlZmlsbENvbHVtbigpOiBMaXN0SXRlbVtdIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZWZpbGxDb2x1bW47XG4gIH1cblxuICBwcml2YXRlIF90eXBlITogRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZTtcbiAgQElucHV0KCkgcHVibGljIHNldCB0eXBlKHZhbHVlOiBEb2N1bWVudGVuQXBpQ29sdW1uTW9kYWxUeXBlKSB7XG4gICAgdGhpcy5fdHlwZSA9IHZhbHVlO1xuICAgIGlmICh2YWx1ZSA9PT0gJ2VkaXQnKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2NvbHVtbicpPy5kaXNhYmxlO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHR5cGUoKTogRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9hdmFpbGFibGVDb2x1bW5zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29uZmlndXJlZENvbHVtbltdPihbXSk7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgYXZhaWxhYmxlQ29sdW1ucyh2YWx1ZTogQ29uZmlndXJlZENvbHVtbltdKSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5fYXZhaWxhYmxlQ29sdW1ucyQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgYXZhaWxhYmxlQ29sdW1ucyQ6IE9ic2VydmFibGU8TGlzdEl0ZW1bXT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl9hdmFpbGFibGVDb2x1bW5zJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtjb2x1bW5zXSkgPT5cbiAgICAgIGNvbHVtbnMubWFwKChjb2x1bW46IENvbmZpZ3VyZWRDb2x1bW4pID0+ICh7XG4gICAgICAgIGNvbnRlbnQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGB6Z3cuZG9jdW1lbnRDb2x1bW5zLiR7Y29sdW1uLmtleX1gKSxcbiAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICBjb2x1bW4sXG4gICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcHJpdmF0ZSBfZGVmYXVsdFNvcnRlZENvbHVtbiE6IENvbmZpZ3VyZWRDb2x1bW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgY29uZmlndXJlZENvbHVtbnModmFsdWU6IENvbmZpZ3VyZWRDb2x1bW5bXSkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMuX2RlZmF1bHRTb3J0ZWRDb2x1bW4gPSB2YWx1ZS5maW5kKChjb2x1bW46IENvbmZpZ3VyZWRDb2x1bW4pID0+ICEhY29sdW1uLmRlZmF1bHRTb3J0KTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBjbG9zZU1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxEb2N1bWVudGVuQXBpQ29sdW1uTW9kYWxUeXBlQ2xvc2VFdmVudD4oKTtcblxuICBwdWJsaWMgZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgY29sdW1uOiB0aGlzLmZiLmNvbnRyb2woXG4gICAgICB7Y29udGVudDogJycsIHNlbGVjdGVkOiBmYWxzZSwgY29sdW1uOiB7fSBhcyBDb25maWd1cmVkQ29sdW1ufSxcbiAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICApLFxuICAgIGRlZmF1bHRTb3J0OiB0aGlzLmZiLmNvbnRyb2w8J0FTQycgfCAnREVTQycgfCAnbm9EZWZhdWx0Jz4oJ25vRGVmYXVsdCcpLFxuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9ub3RpZmljYXRpb25NZXNzYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihcbiAgICAnemd3LmNvbHVtbnMuZGVmYXVsdFdhcm5pbmcnXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBub3RpZmljYXRpb25PYmokOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbkNvbnRlbnQ+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fbm90aWZpY2F0aW9uTWVzc2FnZSQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbbWVzc2FnZV0pID0+ICh7XG4gICAgICB0eXBlOiAnd2FybmluZycsXG4gICAgICBsb3dDb250cmFzdDogdHJ1ZSxcbiAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnaW50ZXJmYWNlLndhcm5pbmcnKSxcbiAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KG1lc3NhZ2UpLFxuICAgICAgc2hvd0Nsb3NlOiBmYWxzZSxcbiAgICB9KSlcbiAgKTtcblxuICBwdWJsaWMgc2hvd1JhZGlvQnV0dG9ucyA9IHRydWU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB6Z3dEb2N1bWVudGVuQXBpQ29sdW1uU2VydmljZTogRG9jdW1lbnRlbkFwaUNvbHVtblNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5EaXNhYmxlUmFkaW9TdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25DbG9zZShyZWZyZXNoID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlTW9kYWwuZW1pdChyZWZyZXNoID8gJ2Nsb3NlQW5kUmVmcmVzaCcgOiAnY2xvc2UnKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmVuYWJsZSgpO1xuICAgICAgdGhpcy5zaG93UmFkaW9CdXR0b25zID0gdHJ1ZTtcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvbk1lc3NhZ2UkLm5leHQoJ3pndy5jb2x1bW5zLmRlZmF1bHRXYXJuaW5nJyk7XG4gICAgICB0aGlzLl9wcmVmaWxsQ29sdW1uID0gbnVsbDtcbiAgICB9LCBDQVJCT05fQ09OU1RBTlRTLm1vZGFsQW5pbWF0aW9uTXMpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNvbHVtbigpOiB2b2lkIHtcbiAgICBjb25zdCBjb2x1bW5WYWx1ZTogTGlzdEl0ZW0gfCBudWxsIHwgdW5kZWZpbmVkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdjb2x1bW4nKT8udmFsdWU7XG4gICAgaWYgKCFjb2x1bW5WYWx1ZSB8fCAhdGhpcy5kZWZpbml0aW9uTmFtZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0U29ydFZhbHVlID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdkZWZhdWx0U29ydCcpPy52YWx1ZTtcbiAgICBjb25zdCBkZWZhdWx0U29ydCA9ICFkZWZhdWx0U29ydFZhbHVlXG4gICAgICA/IG51bGxcbiAgICAgIDogZGVmYXVsdFNvcnRWYWx1ZSA9PT0gJ25vRGVmYXVsdCdcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogZGVmYXVsdFNvcnRWYWx1ZTtcbiAgICBjb25zdCBjb2x1bW4gPSB7Li4uY29sdW1uVmFsdWUuY29sdW1uLCBkZWZhdWx0U29ydH07XG5cbiAgICBpZiAoXG4gICAgICAhIXRoaXMuX2RlZmF1bHRTb3J0ZWRDb2x1bW4gJiZcbiAgICAgIHRoaXMuX2RlZmF1bHRTb3J0ZWRDb2x1bW4ua2V5ICE9PSBjb2x1bW4ua2V5ICYmXG4gICAgICAhIWNvbHVtbi5kZWZhdWx0U29ydFxuICAgICkge1xuICAgICAgdGhpcy56Z3dEb2N1bWVudGVuQXBpQ29sdW1uU2VydmljZVxuICAgICAgICAudXBkYXRlQ29sdW1uKHRoaXMuZGVmaW5pdGlvbk5hbWUsIHtcbiAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0U29ydGVkQ29sdW1uLFxuICAgICAgICAgIGRlZmF1bHRTb3J0OiBudWxsLFxuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgIHRoaXMuemd3RG9jdW1lbnRlbkFwaUNvbHVtblNlcnZpY2UudXBkYXRlQ29sdW1uKHRoaXMuZGVmaW5pdGlvbk5hbWUsIGNvbHVtbilcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5vbkNsb3NlKHRydWUpO1xuICAgICAgICB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuemd3RG9jdW1lbnRlbkFwaUNvbHVtblNlcnZpY2UudXBkYXRlQ29sdW1uKHRoaXMuZGVmaW5pdGlvbk5hbWUsIGNvbHVtbikuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMub25DbG9zZSh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkRpc2FibGVSYWRpb1N1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnY29sdW1uJyk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoY29sdW1uVmFsdWUgPT4ge1xuICAgICAgICB0aGlzLnNob3dSYWRpb0J1dHRvbnMgPSAhIWNvbHVtblZhbHVlPy5jb2x1bW4uc29ydGFibGU7XG5cbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uTWVzc2FnZSQubmV4dChcbiAgICAgICAgICB0aGlzLnNob3dSYWRpb0J1dHRvbnMgPyAnemd3LmNvbHVtbnMuZGVmYXVsdFdhcm5pbmcnIDogJ3pndy5jb2x1bW5zLm5vdFNvcnRhYmxlJ1xuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxjZHMtbW9kYWwgdmFsdGltb0Nkc01vZGFsIFtvcGVuXT1cInR5cGUgIT09ICdjbG9zZWQnXCIgc2l6ZT1cInNtXCI+XG4gIDxjZHMtbW9kYWwtaGVhZGVyIHNob3dDbG9zZUJ1dHRvbj1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwib25DbG9zZSgpXCI+XG4gICAgPGgzIGNkc01vZGFsSGVhZGVySGVhZGluZz5cbiAgICAgIHt7ICh0eXBlID09PSAnYWRkJyA/ICd6Z3cuY29sdW1ucy5hZGQnIDogJ3pndy5jb2x1bW5zLmVkaXQnKSB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvaDM+XG4gIDwvY2RzLW1vZGFsLWhlYWRlcj5cblxuICA8Zm9ybVxuICAgIGNsYXNzPVwidmFsdGltby1kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWxfX2NvbnRlbnRcIlxuICAgIGNkc01vZGFsQ29udGVudFxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgPlxuICAgIDxjZHMtZHJvcGRvd25cbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbHVtblwiXG4gICAgICBbbGFiZWxdPVwiJ3pndy5jb2x1bW5zLmNvbHVtbicgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Ryb3BVcF09XCJmYWxzZVwiXG4gICAgPlxuICAgICAgPGNkcy1kcm9wZG93bi1saXN0XG4gICAgICAgIFtpdGVtc109XCIhcHJlZmlsbENvbHVtbiA/IChhdmFpbGFibGVDb2x1bW5zJCB8IGFzeW5jKSA6IHByZWZpbGxDb2x1bW5cIlxuICAgICAgPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgPC9jZHMtZHJvcGRvd24+XG5cbiAgICA8Y2RzLXJhZGlvLWdyb3VwICpuZ0lmPVwic2hvd1JhZGlvQnV0dG9uc1wiIGxlZ2VuZD1cIkRlZmF1bHQgc29ydFwiIGZvcm1Db250cm9sTmFtZT1cImRlZmF1bHRTb3J0XCI+XG4gICAgICA8Y2RzLXJhZGlvIHZhbHVlPVwibm9EZWZhdWx0XCI+IHt7ICdpbnRlcmZhY2Uuc29ydGluZy5ub0RlZmF1bHQnIHwgdHJhbnNsYXRlIH19IDwvY2RzLXJhZGlvPlxuXG4gICAgICA8Y2RzLXJhZGlvIHZhbHVlPVwiREVTQ1wiPiB7eyAnaW50ZXJmYWNlLnNvcnRpbmcuZGVzY2VuZGluZycgfCB0cmFuc2xhdGUgfX0gPC9jZHMtcmFkaW8+XG5cbiAgICAgIDxjZHMtcmFkaW8gdmFsdWU9XCJBU0NcIj4ge3sgJ2ludGVyZmFjZS5zb3J0aW5nLmFzY2VuZGluZycgfCB0cmFuc2xhdGUgfX0gPC9jZHMtcmFkaW8+XG4gICAgPC9jZHMtcmFkaW8tZ3JvdXA+XG5cbiAgICA8Y2RzLWlubGluZS1ub3RpZmljYXRpb24gW25vdGlmaWNhdGlvbk9ial09XCJub3RpZmljYXRpb25PYmokIHwgYXN5bmNcIj48L2Nkcy1pbmxpbmUtbm90aWZpY2F0aW9uPlxuICA8L2Zvcm0+XG5cbiAgPGNkcy1tb2RhbC1mb290ZXI+XG4gICAgPGJ1dHRvbiBjZHNCdXR0b249XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwib25DbG9zZSgpXCI+XG4gICAgICB7eyAnaW50ZXJmYWNlLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJmb3JtR3JvdXAuaW52YWxpZFwiIChjbGljayk9XCJ1cGRhdGVDb2x1bW4oKVwiPlxuICAgICAge3sgKHR5cGUgPT09ICdhZGQnID8gJ2ludGVyZmFjZS5hZGQnIDogJ2ludGVyZmFjZS5zYXZlJykgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuPC9jZHMtbW9kYWw+XG4iXX0=
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vemd3L3NyYy9saWIvbW9kdWxlcy9kb2N1bWVudGVuLWFwaS9jb21wb25lbnRzL2RvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbC9kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby96Z3cvc3JjL2xpYi9tb2R1bGVzL2RvY3VtZW50ZW4tYXBpL2NvbXBvbmVudHMvZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsL2RvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsbUJBQW1CLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUUsT0FBTyxFQUFDLGVBQWUsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFDZCxXQUFXLEVBQ1gsV0FBVyxFQUVYLFdBQVcsRUFFWCxrQkFBa0IsRUFDbEIsV0FBVyxHQUNaLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLFlBQVksRUFBRSxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFPOUYsT0FBTyxFQUFDLGdCQUFnQixFQUFD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QkFBa0IsMk1BQ2xCLFdBQVc7OzRGQUdGLGlDQUFpQztrQkFuQjdDLFNBQVM7K0JBQ0UscUNBQXFDLG1CQUc5Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixXQUFXO3FCQUNaO3dKQUdlLGNBQWM7c0JBQTdCLEtBQUs7Z0JBR2MsYUFBYTtzQkFBaEMsS0FBSztnQkFjYyxJQUFJO3NCQUF2QixLQUFLO2dCQVdjLGdCQUFnQjtzQkFBbkMsS0FBSztnQkFvQmMsaUJBQWlCO3NCQUFwQyxLQUFLO2dCQU1JLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgRHJvcGRvd25Nb2R1bGUsXG4gIElucHV0TW9kdWxlLFxuICBMYXllck1vZHVsZSxcbiAgTGlzdEl0ZW0sXG4gIE1vZGFsTW9kdWxlLFxuICBOb3RpZmljYXRpb25Db250ZW50LFxuICBOb3RpZmljYXRpb25Nb2R1bGUsXG4gIFJhZGlvTW9kdWxlLFxufSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIENvbmZpZ3VyZWRDb2x1bW4sXG4gIERvY3VtZW50ZW5BcGlDb2x1bW5Nb2RhbFR5cGUsXG4gIERvY3VtZW50ZW5BcGlDb2x1bW5Nb2RhbFR5cGVDbG9zZUV2ZW50LFxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtEb2N1bWVudGVuQXBpQ29sdW1uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtDQVJCT05fQ09OU1RBTlRTfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1vZGFsTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgICBSYWRpb01vZHVsZSxcbiAgICBOb3RpZmljYXRpb25Nb2R1bGUsXG4gICAgTGF5ZXJNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50ZW5BcGlDb2x1bW5Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcHVibGljIGRlZmluaXRpb25OYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfcHJlZmlsbENvbHVtbiE6IExpc3RJdGVtW10gfCBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHByZWZpbGxDb2x1bW4odmFsdWU6IENvbmZpZ3VyZWRDb2x1bW4gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICBjb25zdCBjb2x1bW4gPSB7Y29udGVudDogdmFsdWUua2V5LCBzZWxlY3RlZDogdHJ1ZSwgY29sdW1uOiB2YWx1ZX07XG4gICAgY29uc3QgZGVmYXVsdFNvcnQgPSB2YWx1ZS5kZWZhdWx0U29ydCA/PyAnbm9EZWZhdWx0JztcbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHtjb2x1bW4sIGRlZmF1bHRTb3J0fSk7XG4gICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjb2x1bW4nKT8uZGlzYWJsZSgpO1xuICAgIHRoaXMuX3ByZWZpbGxDb2x1bW4gPSBbY29sdW1uXTtcbiAgfVxuICBwdWJsaWMgZ2V0IHByZWZpbGxDb2x1bW4oKTogTGlzdEl0ZW1bXSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9wcmVmaWxsQ29sdW1uO1xuICB9XG5cbiAgcHJpdmF0ZSBfdHlwZSE6IERvY3VtZW50ZW5BcGlDb2x1bW5Nb2RhbFR5cGU7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgdHlwZSh2YWx1ZTogRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZSkge1xuICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUgPT09ICdlZGl0Jykge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjb2x1bW4nKT8uZGlzYWJsZTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB0eXBlKCk6IERvY3VtZW50ZW5BcGlDb2x1bW5Nb2RhbFR5cGUge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYXZhaWxhYmxlQ29sdW1ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbmZpZ3VyZWRDb2x1bW5bXT4oW10pO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGF2YWlsYWJsZUNvbHVtbnModmFsdWU6IENvbmZpZ3VyZWRDb2x1bW5bXSkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMuX2F2YWlsYWJsZUNvbHVtbnMkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGF2YWlsYWJsZUNvbHVtbnMkOiBPYnNlcnZhYmxlPExpc3RJdGVtW10+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fYXZhaWxhYmxlQ29sdW1ucyQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbY29sdW1uc10pID0+XG4gICAgICBjb2x1bW5zLm1hcCgoY29sdW1uOiBDb25maWd1cmVkQ29sdW1uKSA9PiAoe1xuICAgICAgICBjb250ZW50OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgemd3LmRvY3VtZW50Q29sdW1ucy4ke2NvbHVtbi5rZXl9YCksXG4gICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgY29sdW1uLFxuICAgICAgfSkpXG4gICAgKVxuICApO1xuXG4gIHByaXZhdGUgX2RlZmF1bHRTb3J0ZWRDb2x1bW4hOiBDb25maWd1cmVkQ29sdW1uIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGNvbmZpZ3VyZWRDb2x1bW5zKHZhbHVlOiBDb25maWd1cmVkQ29sdW1uW10pIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLl9kZWZhdWx0U29ydGVkQ29sdW1uID0gdmFsdWUuZmluZCgoY29sdW1uOiBDb25maWd1cmVkQ29sdW1uKSA9PiAhIWNvbHVtbi5kZWZhdWx0U29ydCk7XG4gIH1cblxuICBAT3V0cHV0KCkgY2xvc2VNb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8RG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZUNsb3NlRXZlbnQ+KCk7XG5cbiAgcHVibGljIGZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIGNvbHVtbjogdGhpcy5mYi5jb250cm9sKFxuICAgICAge2NvbnRlbnQ6ICcnLCBzZWxlY3RlZDogZmFsc2UsIGNvbHVtbjoge30gYXMgQ29uZmlndXJlZENvbHVtbn0sXG4gICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgKSxcbiAgICBkZWZhdWx0U29ydDogdGhpcy5mYi5jb250cm9sPCdBU0MnIHwgJ0RFU0MnIHwgJ25vRGVmYXVsdCc+KCdub0RlZmF1bHQnKSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbm90aWZpY2F0aW9uTWVzc2FnZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oXG4gICAgJ3pndy5jb2x1bW5zLmRlZmF1bHRXYXJuaW5nJ1xuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgbm90aWZpY2F0aW9uT2JqJDogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25Db250ZW50PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX25vdGlmaWNhdGlvbk1lc3NhZ2UkLFxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW21lc3NhZ2VdKSA9PiAoe1xuICAgICAgdHlwZTogJ3dhcm5pbmcnLFxuICAgICAgbG93Q29udHJhc3Q6IHRydWUsXG4gICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2ludGVyZmFjZS53YXJuaW5nJyksXG4gICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChtZXNzYWdlKSxcbiAgICAgIHNob3dDbG9zZTogZmFsc2UsXG4gICAgfSkpXG4gICk7XG5cbiAgcHVibGljIHNob3dSYWRpb0J1dHRvbnMgPSB0cnVlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgemd3RG9jdW1lbnRlbkFwaUNvbHVtblNlcnZpY2U6IERvY3VtZW50ZW5BcGlDb2x1bW5TZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuRGlzYWJsZVJhZGlvU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG9uQ2xvc2UocmVmcmVzaCA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZU1vZGFsLmVtaXQocmVmcmVzaCA/ICdjbG9zZUFuZFJlZnJlc2gnIDogJ2Nsb3NlJyk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgICAgIHRoaXMuc2hvd1JhZGlvQnV0dG9ucyA9IHRydWU7XG4gICAgICB0aGlzLl9ub3RpZmljYXRpb25NZXNzYWdlJC5uZXh0KCd6Z3cuY29sdW1ucy5kZWZhdWx0V2FybmluZycpO1xuICAgICAgdGhpcy5fcHJlZmlsbENvbHVtbiA9IG51bGw7XG4gICAgfSwgQ0FSQk9OX0NPTlNUQU5UUy5tb2RhbEFuaW1hdGlvbk1zKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDb2x1bW4oKTogdm9pZCB7XG4gICAgY29uc3QgY29sdW1uVmFsdWU6IExpc3RJdGVtIHwgbnVsbCB8IHVuZGVmaW5lZCA9IHRoaXMuZm9ybUdyb3VwLmdldCgnY29sdW1uJyk/LnZhbHVlO1xuICAgIGlmICghY29sdW1uVmFsdWUgfHwgIXRoaXMuZGVmaW5pdGlvbk5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFNvcnRWYWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldCgnZGVmYXVsdFNvcnQnKT8udmFsdWU7XG4gICAgY29uc3QgZGVmYXVsdFNvcnQgPSAhZGVmYXVsdFNvcnRWYWx1ZVxuICAgICAgPyBudWxsXG4gICAgICA6IGRlZmF1bHRTb3J0VmFsdWUgPT09ICdub0RlZmF1bHQnXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IGRlZmF1bHRTb3J0VmFsdWU7XG4gICAgY29uc3QgY29sdW1uID0gey4uLmNvbHVtblZhbHVlLmNvbHVtbiwgZGVmYXVsdFNvcnR9O1xuXG4gICAgaWYgKFxuICAgICAgISF0aGlzLl9kZWZhdWx0U29ydGVkQ29sdW1uICYmXG4gICAgICB0aGlzLl9kZWZhdWx0U29ydGVkQ29sdW1uLmtleSAhPT0gY29sdW1uLmtleSAmJlxuICAgICAgISFjb2x1bW4uZGVmYXVsdFNvcnRcbiAgICApIHtcbiAgICAgIHRoaXMuemd3RG9jdW1lbnRlbkFwaUNvbHVtblNlcnZpY2VcbiAgICAgICAgLnVwZGF0ZUNvbHVtbih0aGlzLmRlZmluaXRpb25OYW1lLCB7XG4gICAgICAgICAgLi4udGhpcy5fZGVmYXVsdFNvcnRlZENvbHVtbixcbiAgICAgICAgICBkZWZhdWx0U29ydDogbnVsbCxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICB0aGlzLnpnd0RvY3VtZW50ZW5BcGlDb2x1bW5TZXJ2aWNlLnVwZGF0ZUNvbHVtbih0aGlzLmRlZmluaXRpb25OYW1lLCBjb2x1bW4pXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMub25DbG9zZSh0cnVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnpnd0RvY3VtZW50ZW5BcGlDb2x1bW5TZXJ2aWNlLnVwZGF0ZUNvbHVtbih0aGlzLmRlZmluaXRpb25OYW1lLCBjb2x1bW4pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm9uQ2xvc2UodHJ1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5EaXNhYmxlUmFkaW9TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2NvbHVtbicpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGNvbHVtblZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5zaG93UmFkaW9CdXR0b25zID0gISFjb2x1bW5WYWx1ZT8uY29sdW1uLnNvcnRhYmxlO1xuXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbk1lc3NhZ2UkLm5leHQoXG4gICAgICAgICAgdGhpcy5zaG93UmFkaW9CdXR0b25zID8gJ3pndy5jb2x1bW5zLmRlZmF1bHRXYXJuaW5nJyA6ICd6Z3cuY29sdW1ucy5ub3RTb3J0YWJsZSdcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Y2RzLW1vZGFsIHZhbHRpbW9DZHNNb2RhbCBbb3Blbl09XCJ0eXBlICE9PSAnY2xvc2VkJ1wiIHNpemU9XCJzbVwiPlxuICA8Y2RzLW1vZGFsLWhlYWRlciBzaG93Q2xvc2VCdXR0b249XCJ0cnVlXCIgKGNsb3NlU2VsZWN0KT1cIm9uQ2xvc2UoKVwiIFtjZHNMYXllcl09XCIxXCI+XG4gICAgPGgzIGNkc01vZGFsSGVhZGVySGVhZGluZz5cbiAgICAgIHt7ICh0eXBlID09PSAnYWRkJyA/ICd6Z3cuY29sdW1ucy5hZGQnIDogJ3pndy5jb2x1bW5zLmVkaXQnKSB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvaDM+XG4gIDwvY2RzLW1vZGFsLWhlYWRlcj5cblxuICA8Zm9ybVxuICAgIGNsYXNzPVwidmFsdGltby1kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWxfX2NvbnRlbnRcIlxuICAgIGNkc01vZGFsQ29udGVudFxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICBbY2RzTGF5ZXJdPVwiMVwiXG4gID5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb2x1bW5cIlxuICAgICAgW2xhYmVsXT1cIid6Z3cuY29sdW1ucy5jb2x1bW4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkcm9wVXBdPVwiZmFsc2VcIlxuICAgID5cbiAgICAgIDxjZHMtZHJvcGRvd24tbGlzdFxuICAgICAgICBbaXRlbXNdPVwiIXByZWZpbGxDb2x1bW4gPyAoYXZhaWxhYmxlQ29sdW1ucyQgfCBhc3luYykgOiBwcmVmaWxsQ29sdW1uXCJcbiAgICAgID48L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgIDwvY2RzLWRyb3Bkb3duPlxuXG4gICAgPGNkcy1yYWRpby1ncm91cCAqbmdJZj1cInNob3dSYWRpb0J1dHRvbnNcIiBsZWdlbmQ9XCJEZWZhdWx0IHNvcnRcIiBmb3JtQ29udHJvbE5hbWU9XCJkZWZhdWx0U29ydFwiPlxuICAgICAgPGNkcy1yYWRpbyB2YWx1ZT1cIm5vRGVmYXVsdFwiPiB7eyAnaW50ZXJmYWNlLnNvcnRpbmcubm9EZWZhdWx0JyB8IHRyYW5zbGF0ZSB9fSA8L2Nkcy1yYWRpbz5cblxuICAgICAgPGNkcy1yYWRpbyB2YWx1ZT1cIkRFU0NcIj4ge3sgJ2ludGVyZmFjZS5zb3J0aW5nLmRlc2NlbmRpbmcnIHwgdHJhbnNsYXRlIH19IDwvY2RzLXJhZGlvPlxuXG4gICAgICA8Y2RzLXJhZGlvIHZhbHVlPVwiQVNDXCI+IHt7ICdpbnRlcmZhY2Uuc29ydGluZy5hc2NlbmRpbmcnIHwgdHJhbnNsYXRlIH19IDwvY2RzLXJhZGlvPlxuICAgIDwvY2RzLXJhZGlvLWdyb3VwPlxuXG4gICAgPGNkcy1pbmxpbmUtbm90aWZpY2F0aW9uIFtub3RpZmljYXRpb25PYmpdPVwibm90aWZpY2F0aW9uT2JqJCB8IGFzeW5jXCI+PC9jZHMtaW5saW5lLW5vdGlmaWNhdGlvbj5cbiAgPC9mb3JtPlxuXG4gIDxjZHMtbW9kYWwtZm9vdGVyIFtjZHNMYXllcl09XCIxXCI+XG4gICAgPGJ1dHRvbiBjZHNCdXR0b249XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwib25DbG9zZSgpXCI+XG4gICAgICB7eyAnaW50ZXJmYWNlLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJmb3JtR3JvdXAuaW52YWxpZFwiIChjbGljayk9XCJ1cGRhdGVDb2x1bW4oKVwiPlxuICAgICAge3sgKHR5cGUgPT09ICdhZGQnID8gJ2ludGVyZmFjZS5hZGQnIDogJ2ludGVyZmFjZS5zYXZlJykgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuPC9jZHMtbW9kYWw+XG4iXX0=
|