@dsivd/prestations-ng 14.5.6 → 14.5.9-beta2
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/CHANGELOG.md +9 -0
- package/bundles/dsivd-prestations-ng.umd.js +29 -20
- package/bundles/dsivd-prestations-ng.umd.js.map +1 -1
- package/dsivd-prestations-ng-v14.5.9-beta2.tgz +0 -0
- package/esm2015/foehn-address/foehn-input-address.component.js +1 -1
- package/esm2015/foehn-autocomplete/foehn-autocomplete.component.js +7 -3
- package/esm2015/foehn-breadcrumb/breadcrumb-event.service.js +3 -3
- package/esm2015/foehn-decision-electronique/foehn-decision-electronique.component.js +3 -3
- package/esm2015/foehn-page/foehn-page.component.js +3 -3
- package/esm2015/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.js +15 -10
- package/esm2015/gesdem-confirmation/gesdem-confirmation.component.js +3 -3
- package/fesm2015/dsivd-prestations-ng.js +28 -19
- package/fesm2015/dsivd-prestations-ng.js.map +1 -1
- package/foehn-autocomplete/foehn-autocomplete.component.d.ts +3 -2
- package/foehn-decision-electronique/foehn-decision-electronique.component.d.ts +1 -1
- package/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.d.ts +1 -1
- package/gesdem-confirmation/gesdem-confirmation.component.d.ts +1 -1
- package/package.json +1 -1
- package/dsivd-prestations-ng-v14.5.6.tgz +0 -0
|
Binary file
|
|
@@ -286,7 +286,7 @@ FoehnInputAddressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
286
286
|
useExisting: forwardRef(() => FoehnInputAddressComponent),
|
|
287
287
|
multi: true
|
|
288
288
|
}
|
|
289
|
-
], usesInheritance: true, ngImport: i0, template: "<div\n [attr.id]=\"buildId() + 'Container'\"\n class=\"form-group\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n [tabIndex]=\"-1\"\n>\n <fieldset\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrors() || null\"\n >\n <legend *ngIf=\"!!label\" [ngClass]=\"isLabelSrOnly ? 'sr-only' : 'vd-p'\">\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <foehn-autocomplete\n *ngIf=\"!isOnlySwiss\"\n [label]=\"'foehn-input-address.country.label' | fromDictionary\"\n [elements]=\"countries | async\"\n elementLabel=\"shortNameFr\"\n [elementValue]=\"identity\"\n [elementValueIdentity]=\"countryIdentity\"\n (modelChange)=\"countryUpdated($event)\"\n (userInput)=\"userInputCountryOrLocality(true)\"\n [model]=\"country\"\n [name]=\"name + '.country'\"\n [id]=\"buildId() + '.country'\"\n [required]=\"countryRequired\"\n [searchValueMinCharsCount]=\"3\"\n [disabled]=\"disabled\"\n ></foehn-autocomplete>\n\n <ng-container *ngIf=\"isSwiss()\">\n <foehn-autocomplete\n [label]=\"'foehn-input-address.locality.label' | fromDictionary\"\n [elements]=\"localities | async\"\n [elementLabel]=\"getLocalityDisplayedName\"\n [elementValue]=\"identity\"\n [elementValueIdentity]=\"localityIdentity\"\n (modelChange)=\"localityUpdated($event)\"\n (userInput)=\"userInputCountryOrLocality(false)\"\n [model]=\"locality\"\n [name]=\"name + '.locality'\"\n [id]=\"buildId() + '.locality'\"\n [required]=\"swissNpaLocalityRequired\"\n [searchValueMinCharsCount]=\"3\"\n [allElementDisabled]=\"!country\"\n [disabled]=\"disabled\"\n ></foehn-autocomplete>\n\n <foehn-autocomplete\n [label]=\"'foehn-input-address.street.label' | fromDictionary\"\n [elements]=\"streets | async\"\n elementLabel=\"longName\"\n [elementValue]=\"identity\"\n [elementValueIdentity]=\"streetIdentity\"\n (modelChange)=\"streetUpdated($event)\"\n [model]=\"street\"\n [name]=\"name + '.street'\"\n [id]=\"buildId() + '.street'\"\n [allowCustomValue]=\"true\"\n [customValueModelGenerator]=\"streetGenerator\"\n [required]=\"streetRequired\"\n [helpText]=\"\n 'foehn-input-address.street.help-text' | fromDictionary\n \"\n [allElementDisabled]=\"!country\"\n (userInput)=\"handleUserInput()\"\n [disabled]=\"disabled\"\n ></foehn-autocomplete>\n\n <foehn-autocomplete\n [label]=\"\n 'foehn-input-address.houseNumber.label' | fromDictionary\n \"\n [elements]=\"streetNumbers | async\"\n elementLabel=\"name\"\n elementValue=\"name\"\n [(model)]=\"houseNumber\"\n [name]=\"name + '.houseNumber'\"\n [id]=\"buildId() + '.houseNumber'\"\n [allowCustomValue]=\"true\"\n [helpText]=\"\n 'foehn-input-address.houseNumber.help-text' | fromDictionary\n \"\n [allElementDisabled]=\"!country\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"streetNumberRequired\"\n [disabled]=\"disabled\"\n ></foehn-autocomplete>\n </ng-container>\n\n <ng-container *ngIf=\"!isSwiss()\">\n <!--\n Component <foehn-input-foreign-locality> is special because we use the same model when swiss or foreigner.\n To do so, we need:\n - Errors will be bind on 'locality' when NULL or on 'zipCode' and 'longName' model inside component when EMPTY\n - Hide label from component because we need label from children to be displayed (isLabelSrOnly: true)\n - required and disabled params are transmitted to children\n -->\n <foehn-input-foreign-locality\n [label]=\"'foehn-input-address.locality.label' | fromDictionary\"\n [id]=\"buildId() + '.locality'\"\n [name]=\"name + '.locality'\"\n [(model)]=\"locality\"\n [zipCodeRequired]=\"foreignZipCodeRequired\"\n [localityRequired]=\"foreignLocalityRequired\"\n [isLabelSrOnly]=\"true\"\n [disabled]=\"!country || disabled\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n ></foehn-input-foreign-locality>\n <!--\n Component <foehn-input-foreign-street> is special because we use the same model when swiss or foreigner.\n To do so, we need:\n - Errors will be bind on 'street' when NULL or on 'longName' model inside component when EMPTY\n - required, helpText, isLabelSrOnly and disabled params are transmitted to children\n -->\n <foehn-input-foreign-street\n [label]=\"'foehn-input-address.street.label' | fromDictionary\"\n [id]=\"buildId() + '.street'\"\n [name]=\"name + '.street'\"\n [(model)]=\"street\"\n [required]=\"foreignStreetRequired\"\n [helpText]=\"\n 'foehn-input-address.street.help-text' | fromDictionary\n \"\n [disabled]=\"!country || disabled\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n ></foehn-input-foreign-street>\n\n <foehn-input-text\n [label]=\"\n 'foehn-input-address.houseNumber.label' | fromDictionary\n \"\n [id]=\"buildId() + '.houseNumber'\"\n [name]=\"name + '.houseNumber'\"\n [(model)]=\"houseNumber\"\n [helpText]=\"\n 'foehn-input-address.houseNumber.help-text' | fromDictionary\n \"\n [disabled]=\"!country || disabled\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"foreignStreetNumberRequired\"\n ></foehn-input-text>\n </ng-container>\n\n <foehn-input-text\n *ngIf=\"showPostOfficeBoxText\"\n [(model)]=\"postOfficeBoxText\"\n [helpText]=\"\n 'foehn-input-address.postOfficeBoxText.help-text'\n | fromDictionary\n \"\n [label]=\"\n 'foehn-input-address.postOfficeBoxText.label' | fromDictionary\n \"\n [id]=\"buildId() + '_postOfficeBoxText'\"\n [name]=\"name + '.postOfficeBoxText'\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"postOfficeBoxTextRequired\"\n [disabled]=\"disabled\"\n ></foehn-input-text>\n\n <foehn-input-text\n *ngIf=\"showAdressLines && showAdressLine1\"\n [(model)]=\"addressLine1\"\n [label]=\"'foehn-input-address.addressLine1.label' | fromDictionary\"\n [id]=\"buildId() + '_addressLine1'\"\n [name]=\"name + '.addressLine1'\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"addressLine1Required\"\n [autocomplete]=\"'address-line2'\"\n [disabled]=\"disabled\"\n ></foehn-input-text>\n\n <foehn-input-text\n *ngIf=\"showAdressLines && showAdressLine2\"\n [(model)]=\"addressLine2\"\n [label]=\"'foehn-input-address.addressLine2.label' | fromDictionary\"\n [id]=\"buildId() + '_addressLine2'\"\n [name]=\"name + '.addressLine2'\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"addressLine2Required\"\n [autocomplete]=\"'address-line3'\"\n [disabled]=\"disabled\"\n ></foehn-input-text>\n </fieldset>\n</div>\n", components: [{ type: i2.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { type: i3.FoehnAutocompleteComponent, selector: "foehn-autocomplete", inputs: ["searchValueMinCharsCount", "allowCustomValue", "customValueModelGenerator"] }, { type: i4.FoehnInputForeignLocalityComponent, selector: "foehn-input-foreign-locality", inputs: ["localityRequired", "zipCodeRequired"] }, { type: i5.FoehnInputForeignStreetComponent, selector: "foehn-input-foreign-street" }, { type: i6.FoehnInputTextComponent, selector: "foehn-input-text", inputs: ["numberOnly"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "fromDictionary": i8.SdkDictionaryPipe, "async": i7.AsyncPipe } });
|
|
289
|
+
], usesInheritance: true, ngImport: i0, template: "<div\n [attr.id]=\"buildId() + 'Container'\"\n class=\"form-group\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n [tabIndex]=\"-1\"\n>\n <fieldset\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrors() || null\"\n >\n <legend *ngIf=\"!!label\" [ngClass]=\"isLabelSrOnly ? 'sr-only' : 'vd-p'\">\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <foehn-autocomplete\n *ngIf=\"!isOnlySwiss\"\n [label]=\"'foehn-input-address.country.label' | fromDictionary\"\n [elements]=\"countries | async\"\n elementLabel=\"shortNameFr\"\n [elementValue]=\"identity\"\n [elementValueIdentity]=\"countryIdentity\"\n (modelChange)=\"countryUpdated($event)\"\n (userInput)=\"userInputCountryOrLocality(true)\"\n [model]=\"country\"\n [name]=\"name + '.country'\"\n [id]=\"buildId() + '.country'\"\n [required]=\"countryRequired\"\n [searchValueMinCharsCount]=\"3\"\n [disabled]=\"disabled\"\n ></foehn-autocomplete>\n\n <ng-container *ngIf=\"isSwiss()\">\n <foehn-autocomplete\n [label]=\"'foehn-input-address.locality.label' | fromDictionary\"\n [elements]=\"localities | async\"\n [elementLabel]=\"getLocalityDisplayedName\"\n [elementValue]=\"identity\"\n [elementValueIdentity]=\"localityIdentity\"\n (modelChange)=\"localityUpdated($event)\"\n (userInput)=\"userInputCountryOrLocality(false)\"\n [model]=\"locality\"\n [name]=\"name + '.locality'\"\n [id]=\"buildId() + '.locality'\"\n [required]=\"swissNpaLocalityRequired\"\n [searchValueMinCharsCount]=\"3\"\n [allElementDisabled]=\"!country\"\n [disabled]=\"disabled\"\n ></foehn-autocomplete>\n\n <foehn-autocomplete\n [label]=\"'foehn-input-address.street.label' | fromDictionary\"\n [elements]=\"streets | async\"\n elementLabel=\"longName\"\n [elementValue]=\"identity\"\n [elementValueIdentity]=\"streetIdentity\"\n (modelChange)=\"streetUpdated($event)\"\n [model]=\"street\"\n [name]=\"name + '.street'\"\n [id]=\"buildId() + '.street'\"\n [allowCustomValue]=\"true\"\n [customValueModelGenerator]=\"streetGenerator\"\n [required]=\"streetRequired\"\n [helpText]=\"\n 'foehn-input-address.street.help-text' | fromDictionary\n \"\n [allElementDisabled]=\"!country\"\n (userInput)=\"handleUserInput()\"\n [disabled]=\"disabled\"\n ></foehn-autocomplete>\n\n <foehn-autocomplete\n [label]=\"\n 'foehn-input-address.houseNumber.label' | fromDictionary\n \"\n [elements]=\"streetNumbers | async\"\n elementLabel=\"name\"\n elementValue=\"name\"\n [(model)]=\"houseNumber\"\n [name]=\"name + '.houseNumber'\"\n [id]=\"buildId() + '.houseNumber'\"\n [allowCustomValue]=\"true\"\n [helpText]=\"\n 'foehn-input-address.houseNumber.help-text' | fromDictionary\n \"\n [allElementDisabled]=\"!country\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"streetNumberRequired\"\n [disabled]=\"disabled\"\n ></foehn-autocomplete>\n </ng-container>\n\n <ng-container *ngIf=\"!isSwiss()\">\n <!--\n Component <foehn-input-foreign-locality> is special because we use the same model when swiss or foreigner.\n To do so, we need:\n - Errors will be bind on 'locality' when NULL or on 'zipCode' and 'longName' model inside component when EMPTY\n - Hide label from component because we need label from children to be displayed (isLabelSrOnly: true)\n - required and disabled params are transmitted to children\n -->\n <foehn-input-foreign-locality\n [label]=\"'foehn-input-address.locality.label' | fromDictionary\"\n [id]=\"buildId() + '.locality'\"\n [name]=\"name + '.locality'\"\n [(model)]=\"locality\"\n [zipCodeRequired]=\"foreignZipCodeRequired\"\n [localityRequired]=\"foreignLocalityRequired\"\n [isLabelSrOnly]=\"true\"\n [disabled]=\"!country || disabled\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n ></foehn-input-foreign-locality>\n <!--\n Component <foehn-input-foreign-street> is special because we use the same model when swiss or foreigner.\n To do so, we need:\n - Errors will be bind on 'street' when NULL or on 'longName' model inside component when EMPTY\n - required, helpText, isLabelSrOnly and disabled params are transmitted to children\n -->\n <foehn-input-foreign-street\n [label]=\"'foehn-input-address.street.label' | fromDictionary\"\n [id]=\"buildId() + '.street'\"\n [name]=\"name + '.street'\"\n [(model)]=\"street\"\n [required]=\"foreignStreetRequired\"\n [helpText]=\"\n 'foehn-input-address.street.help-text' | fromDictionary\n \"\n [disabled]=\"!country || disabled\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n ></foehn-input-foreign-street>\n\n <foehn-input-text\n [label]=\"\n 'foehn-input-address.houseNumber.label' | fromDictionary\n \"\n [id]=\"buildId() + '.houseNumber'\"\n [name]=\"name + '.houseNumber'\"\n [(model)]=\"houseNumber\"\n [helpText]=\"\n 'foehn-input-address.houseNumber.help-text' | fromDictionary\n \"\n [disabled]=\"!country || disabled\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"foreignStreetNumberRequired\"\n ></foehn-input-text>\n </ng-container>\n\n <foehn-input-text\n *ngIf=\"showPostOfficeBoxText\"\n [(model)]=\"postOfficeBoxText\"\n [helpText]=\"\n 'foehn-input-address.postOfficeBoxText.help-text'\n | fromDictionary\n \"\n [label]=\"\n 'foehn-input-address.postOfficeBoxText.label' | fromDictionary\n \"\n [id]=\"buildId() + '_postOfficeBoxText'\"\n [name]=\"name + '.postOfficeBoxText'\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"postOfficeBoxTextRequired\"\n [disabled]=\"disabled\"\n ></foehn-input-text>\n\n <foehn-input-text\n *ngIf=\"showAdressLines && showAdressLine1\"\n [(model)]=\"addressLine1\"\n [label]=\"'foehn-input-address.addressLine1.label' | fromDictionary\"\n [id]=\"buildId() + '_addressLine1'\"\n [name]=\"name + '.addressLine1'\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"addressLine1Required\"\n [autocomplete]=\"'address-line2'\"\n [disabled]=\"disabled\"\n ></foehn-input-text>\n\n <foehn-input-text\n *ngIf=\"showAdressLines && showAdressLine2\"\n [(model)]=\"addressLine2\"\n [label]=\"'foehn-input-address.addressLine2.label' | fromDictionary\"\n [id]=\"buildId() + '_addressLine2'\"\n [name]=\"name + '.addressLine2'\"\n (modelChange)=\"updateAddress()\"\n (userInput)=\"handleUserInput()\"\n [required]=\"addressLine2Required\"\n [autocomplete]=\"'address-line3'\"\n [disabled]=\"disabled\"\n ></foehn-input-text>\n </fieldset>\n</div>\n", components: [{ type: i2.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { type: i3.FoehnAutocompleteComponent, selector: "foehn-autocomplete", inputs: ["searchValueMinCharsCount", "allowCustomValue", "customValueModelGenerator"], outputs: ["keywordChange"] }, { type: i4.FoehnInputForeignLocalityComponent, selector: "foehn-input-foreign-locality", inputs: ["localityRequired", "zipCodeRequired"] }, { type: i5.FoehnInputForeignStreetComponent, selector: "foehn-input-foreign-street" }, { type: i6.FoehnInputTextComponent, selector: "foehn-input-text", inputs: ["numberOnly"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "fromDictionary": i8.SdkDictionaryPipe, "async": i7.AsyncPipe } });
|
|
290
290
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnInputAddressComponent, decorators: [{
|
|
291
291
|
type: Component,
|
|
292
292
|
args: [{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { Component, forwardRef, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { Component, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
|
|
3
3
|
import { FoehnCheckableGroupComponent } from '../foehn-checkables/foehn-checkable-group.component';
|
|
4
4
|
import { FoehnInputComponent } from '../foehn-input/foehn-input.component';
|
|
5
5
|
import { of, Subject } from 'rxjs';
|
|
@@ -45,6 +45,7 @@ export class FoehnAutocompleteComponent extends FoehnCheckableGroupComponent {
|
|
|
45
45
|
this.currentItemGlobalIndex = -1;
|
|
46
46
|
this.NB_ITEMS_VISIBLE = 5;
|
|
47
47
|
this.filterSubject = new Subject();
|
|
48
|
+
this.keywordChange = new EventEmitter();
|
|
48
49
|
this.SUGGESTION_SELECTED_CLASS = 'suggestion-selected';
|
|
49
50
|
this.filterSubcription = this.filterSubject
|
|
50
51
|
.pipe(debounceTime(200))
|
|
@@ -223,6 +224,7 @@ export class FoehnAutocompleteComponent extends FoehnCheckableGroupComponent {
|
|
|
223
224
|
}
|
|
224
225
|
filterElements(hideSuggestions = false) {
|
|
225
226
|
this.searchValue = this.inputValue;
|
|
227
|
+
this.keywordChange.next(this.searchValue);
|
|
226
228
|
if (!this.elements) {
|
|
227
229
|
return;
|
|
228
230
|
}
|
|
@@ -513,7 +515,7 @@ export class FoehnAutocompleteComponent extends FoehnCheckableGroupComponent {
|
|
|
513
515
|
}
|
|
514
516
|
}
|
|
515
517
|
FoehnAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnAutocompleteComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
516
|
-
FoehnAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnAutocompleteComponent, selector: "foehn-autocomplete", inputs: { searchValueMinCharsCount: "searchValueMinCharsCount", allowCustomValue: "allowCustomValue", customValueModelGenerator: "customValueModelGenerator" }, providers: [
|
|
518
|
+
FoehnAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnAutocompleteComponent, selector: "foehn-autocomplete", inputs: { searchValueMinCharsCount: "searchValueMinCharsCount", allowCustomValue: "allowCustomValue", customValueModelGenerator: "customValueModelGenerator" }, outputs: { keywordChange: "keywordChange" }, providers: [
|
|
517
519
|
{
|
|
518
520
|
provide: FoehnInputComponent,
|
|
519
521
|
useExisting: forwardRef(() => FoehnAutocompleteComponent),
|
|
@@ -549,5 +551,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
549
551
|
type: Input
|
|
550
552
|
}], customValueModelGenerator: [{
|
|
551
553
|
type: Input
|
|
554
|
+
}], keywordChange: [{
|
|
555
|
+
type: Output
|
|
552
556
|
}] } });
|
|
553
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1hdXRvY29tcGxldGUvZm9laG4tYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1hdXRvY29tcGxldGUvZm9laG4tYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBSUwsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELDRFQUE0RTtBQUM1RSxPQUFPLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztBQUVsRSxtRkFBbUY7QUFDbkYsU0FBUyxhQUFhLENBQUMsS0FBYTtJQUNoQyx5RkFBeUY7SUFDekYsSUFBSSxPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssVUFBVSxFQUFFO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsaUJBQWlCO0lBQ2pCLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELG1GQUFt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QiwyUkNyRHZDLGt0SkF1SUE7MkZEckZhLDBCQUEwQjtrQkFadEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixXQUFXLEVBQUUscUNBQXFDO29CQUNsRCxTQUFTLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztvQkFDakQsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDOzRCQUN6RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtpQkFDSjs2RkFLRyxxQkFBcUI7c0JBRHBCLFNBQVM7dUJBQUMsd0JBQXdCO2dCQUluQyxlQUFlO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUk1QixZQUFZO3NCQURYLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUk3Qyx3QkFBd0I7c0JBRHZCLEtBQUs7Z0JBU04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBV04seUJBQXlCO3NCQUR4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2VobkNoZWNrYWJsZUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4tY2hlY2thYmxlcy9mb2Vobi1jaGVja2FibGUtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG4vLyBUaGlzIGNvbXBvbmVudCB1c2VzIHNvbWUgRVM3IGZlYXR1cmVzIHRoYXQgYXJlIG5vdCBwb2x5ZmlsbGVkIGJ5IEFuZ3VsYXIuXG5pbXBvcnQgJ2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5pbmNsdWRlcyc7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1hcnJvdy9wcmVmZXItYXJyb3ctZnVuY3Rpb25zLGpzZG9jL3JlcXVpcmUtanNkb2NcbmZ1bmN0aW9uIG5vcm1hbGl6ZVV0ZjgodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gU29tZSBicm93c2VycyBzdWNoIGFzIElFMTEgZG9uJ3Qgc3VwcG9ydCB0aGUgZmVhdHVyZS4gQWRkIHRoZSBwb2x5ZmlsbCBpZiB5b3Ugd2FudCBpdC5cbiAgICBpZiAodHlwZW9mIHZhbHVlLm5vcm1hbGl6ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGFjY2VudHNcbiAgICByZXR1cm4gdmFsdWUubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJyk7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItYXJyb3cvcHJlZmVyLWFycm93LWZ1bmN0aW9ucyxqc2RvYy9yZXF1aXJlLWpzZG9jXG5mdW5jdGlvbiBub3JtYWxpemVTZWFyY2godmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vcm1hbGl6ZVV0ZjgodmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSk7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tYXV0b2NvbXBsZXRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4tYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb2Vobi1hdXRvY29tcGxldGUuY29tcG9uZW50LmNzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGb2VobklucHV0Q29tcG9uZW50LFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9laG5BdXRvY29tcGxldGVDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5BdXRvY29tcGxldGVDb21wb25lbnRcbiAgICBleHRlbmRzIEZvZWhuQ2hlY2thYmxlR3JvdXBDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBAVmlld0NoaWxkKENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydClcbiAgICB2aXJ0dWFsU2Nyb2xsVmlld3BvcnQ6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcblxuICAgIEBWaWV3Q2hpbGQoJ3N1Z2dlc3Rpb25zTGlzdCcpXG4gICAgc3VnZ2VzdGlvbnNMaXN0OiBhbnk7XG5cbiAgICBAVmlld0NoaWxkKCdlbnRyeUNvbXBvbmVudCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgaW5wdXRFbGVtZW50OiBhbnk7XG5cbiAgICBASW5wdXQoKVxuICAgIHNlYXJjaFZhbHVlTWluQ2hhcnNDb3VudCA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBBbGxvdyB0byBwcm92aWRlIGN1c3RvbSB2YWx1ZXMgdG8gdGhlIGF1dG9jb21wbGV0ZS5cbiAgICAgKlxuICAgICAqIEEgY3VzdG9tIHZhbHVlIGlzIGEgdmFsdWUgdGhhdCBpcyBub3QgaW4gdGhlIGBlbGVtZW50c2Agc2V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dDdXN0b21WYWx1ZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQWxsb3cgdG8gcHJvdmlkZSBhIGdlbmVyYXRvciB0byBjcmVhdGUgdGhlIG1vZGVsIHdpdGggY3VzdG9tIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgdXNlZnVsIHdoZW4gdGhlIHR5cGUgb2YgdGhlIG1vZGVsIGlzIGFuIG9iamVjdCBhbmQgbm90IGp1c3RcbiAgICAgKiBhIHN0cmluZy4gVXNlIHRoaXMgaXMgYGFsbG93Q3VzdG9tVmFsdWVgIGlzIHRydWUgYW5kIGBlbGVtZW50VmFsdWVgXG4gICAgICogaXMgYSBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGN1c3RvbVZhbHVlTW9kZWxHZW5lcmF0b3I6IChpbnB1dDogc3RyaW5nKSA9PiBhbnk7XG5cbiAgICBpbnB1dFZhbHVlOiBzdHJpbmc7XG4gICAgc2VhcmNoVmFsdWU6IHN0cmluZztcbiAgICBpbnB1dEhhc0ZvY3VzOiBib29sZWFuO1xuICAgIGhpZGVTdWdnZXN0aW9ucyA9IHRydWU7XG4gICAgY3VycmVudEJsdXJUaW1lcjogYW55O1xuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICBWSUVXX1BPUlRfSEVJR0hUOiBudW1iZXI7XG4gICAgcmVhZG9ubHkgSVRFTV9DQUxDVUxBVEVEX0hFSUdIVCA9IDQwO1xuXG4gICAgZGlzcGxheWVkRWxlbWVudHM6IGFueVtdO1xuICAgIG5vdGlmaWNhdGlvbk1lc3NhZ2VVcGRhdGVkOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBjdXJyZW50SXRlbUdsb2JhbEluZGV4ID0gLTE7XG4gICAgcHJpdmF0ZSByZWFkb25seSBOQl9JVEVNU19WSVNJQkxFID0gNTtcblxuICAgIHByaXZhdGUgZmlsdGVyU3ViamVjdCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgICBwcml2YXRlIGZpbHRlclN1YmNyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBsaXN0SGFzRm9jdXM6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBhY3RpdmVEZXNjZW5kYW50SWQ6IHN0cmluZztcblxuICAgIHByaXZhdGUgb25Jbml0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBtb2RlbENoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJpdmF0ZSBTVUdHRVNUSU9OX1NFTEVDVEVEX0NMQVNTID0gJ3N1Z2dlc3Rpb24tc2VsZWN0ZWQnO1xuXG4gICAgY29uc3RydWN0b3Ioem9uZTogTmdab25lKSB7XG4gICAgICAgIHN1cGVyKHpvbmUpO1xuICAgICAgICB0aGlzLmZpbHRlclN1YmNyaXB0aW9uID0gdGhpcy5maWx0ZXJTdWJqZWN0XG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMjAwKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5maWx0ZXJFbGVtZW50cy5iaW5kKHRoaXMpKTtcblxuICAgICAgICB0aGlzLlZJRVdfUE9SVF9IRUlHSFQgPVxuICAgICAgICAgICAgdGhpcy5JVEVNX0NBTENVTEFURURfSEVJR0hUICogdGhpcy5OQl9JVEVNU19WSVNJQkxFO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFZhbHVlTWluQ2hhcnNDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5nZXRFbGVtZW50cygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXREaXNwbGF5ZWRFbGVtZW50cyh0aGlzLmVsZW1lbnRzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVmFsdWVNaW5DaGFyc0NvdW50ID4gMCkge1xuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGBTYWlzaXNzZXogYXUgbW9pbnMgJHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlTWluQ2hhcnNDb3VudFxuICAgICAgICAgICAgfSBjYXJhY3TDqHJlJHt0aGlzLnNlYXJjaFZhbHVlTWluQ2hhcnNDb3VudCA+IDEgPyAncycgOiAnJ31gO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkluaXRTdWJzY3JpcHRpb24gPSB0aGlzLm9uSW5pdFN1YmplY3RcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gSGFjayB0byByZWZyZXNoIHRoZSBkYXRhIG9uY2UgdGhlIGxpc3QgaXMgZG93bmxvYWRlZC5cbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodGhpcy5tb2RlbF8pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gV2hlbiB0aGUgbW9kZWwgY2hhbmdlcywgc2VsZWN0IHRoZSByaWdodCB2YWx1ZSB0byBkaXNwbGF5LlxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5tb2RlbENoYW5nZS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RWxlbWVudHMoKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKGVsZW1lbnRzOiBhbnkpID0+ICEhZWxlbWVudHMpKVxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy9uby1uZXN0ZWQtc3Vic2NyaWJlXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGVsZW1lbnRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENsZWFyIHRoZSB2YWx1ZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyRWxlbWVudHModHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtVG9Db21wYXJlID0gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmRlZmF1bHRFbGVtZW50VmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtVG9Db21wYXJlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdGhpcy5nZXRNYXRjaGluZ1ZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbVRvQ29tcGFyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJFbGVtZW50cyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuZmlsdGVyU3ViY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICBpZiAodGhpcy5vbkluaXRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMub25Jbml0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbENoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5tb2RlbENoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JbnB1dEZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlclN1YmplY3QubmV4dCgpO1xuICAgICAgICB0aGlzLmlucHV0SGFzRm9jdXMgPSB0cnVlO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAodGhpcy5pc0VtcHR5KHRoaXMuc2VhcmNoVmFsdWUpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZU1pbkNoYXJzQ291bnQgPT09IDApIHx8XG4gICAgICAgICAgICAoIXRoaXMuaXNFbXB0eSh0aGlzLnNlYXJjaFZhbHVlKSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWVNaW5DaGFyc0NvdW50IDw9IHRoaXMuc2VhcmNoVmFsdWUubGVuZ3RoKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZVN1Z2dlc3Rpb25zID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNsZWFyT25CbHVyVGltZW91dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gV29ya2Fyb3VuZCBmb3IgSUUxMSB0aGF0IGxvc2VzIGZvY3VzIG9uIGlucHV0IHdoZW4gc2Nyb2xsYmFyIGlzIGNsaWNrZWRcbiAgICAvLyAtLT4gcHV0IGJhY2sgZm9jdXMgb24gaW5wdXQgYW5kIGNhbmNlbCBzdWdnZXN0aW9ucyBoaWRpbmcgdGltZXJcbiAgICBzZXRGb2N1c09uSW5wdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5jbGVhck9uQmx1clRpbWVvdXQoKTtcbiAgICB9XG5cbiAgICBvbklucHV0Qmx1cigpOiB2b2lkIHtcbiAgICAgICAgLy8gVGhpcyBtZXRob2QgaXMgY2FsbGVkIGJlZm9yZSBvbkNsaWNrU3VnZ2VzdGlvbi4gU2V0dGluZyBpbnB1dEhhc0ZvY3VzIHRvIGZhbHNlIG1ha2VzIHN1Z2dlc3Rpb25zIGRpc2FwcGVhcmVkXG4gICAgICAgIC8vIGFuZCBvbkNsaWNrU3VnZ2VzdGlvbiBpcyBuZXZlciBjYWxsZWQuIFNldHRpbmcgYSB0aW1lb3V0IGhlcmUgYXZvaWQgdGhpcyBwcm9ibGVtLlxuICAgICAgICB0aGlzLmN1cnJlbnRCbHVyVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIC8vIERvbid0IGNsb3NlIHRoZSBsaXN0IGlmIHRoZSBsaXN0IGhhcyB0aGUgZm9jdXMuIFRoaXMgaXMgZG9uZSB0byBhbGxvdyBWb2ljZU92ZXIgdXNlcnMgb24gaU9TIHRvXG4gICAgICAgICAgICAvLyBzZWxlY3QgYW4gb3B0aW9uIHdpdGggdGhlaXIgZmluZ2VyLiBTYW1lIGlmIGZvY3VzIGlzIHNldCBvbiBsaXN0IHNjcm9sbCBiYXJcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhdGhpcy5saXN0SGFzRm9jdXMgJiZcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmNsYXNzTmFtZSAhPT1cbiAgICAgICAgICAgICAgICAgICAgJ2Zvcm0tZ3JvdXAgYXV0b2NvbXBsZXRlLWZvcm0tZ3JvdXAnXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0SGFzRm9jdXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGVTdWdnZXN0aW9ucyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja0FuZFNldElucHV0VmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGtleUV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIC8vIFRoZSBpbnB1dCBtaWdodCBub3QgYmUgbWFya2VkIGFzIGZvY3VzZWQgaW4gY2FzZSB0aGUgdXNlciBzZWxlY3RzIGEgdmFsdWUgZnJvbSB0aGUgbGlzdC5cbiAgICAgICAgdGhpcy5pbnB1dEhhc0ZvY3VzID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgcHJvcGFnYXRlID0gdGhpcy5vbktleURvd25Jbm5lcihrZXlFdmVudCk7XG4gICAgICAgIGlmIChwcm9wYWdhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyU3ViamVjdC5uZXh0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByb3BhZ2F0ZTtcbiAgICB9XG5cbiAgICBvbktleURvd25Jbm5lcihrZXlFdmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBJRSBkb2Vzbid0IHN1cHBvcnQga2V5RXZlbnQuY29kZSwgYW5kIGhhcyBkaWZmZXJlbnQgdmFsdWVzXG4gICAgICAgIC8vIGluIGtleUV2ZW50LmtleSAoRG93biBpbnN0ZWFkIG9mIEFycm93RG93biBmb3IgaW5zdGFuY2UpLCBoZW5jZSB0aGUgbXVsdGktc3VwcG9ydC5cbiAgICAgICAgY29uc3QgaWUxMUNvbXBhdGlibGVDb2RlID0ga2V5RXZlbnQuY29kZSB8fCBrZXlFdmVudC5rZXk7XG4gICAgICAgIHN3aXRjaCAoaWUxMUNvbXBhdGlibGVDb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdEb3duJzpcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3ROZXh0RWxlbWVudCh0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1VwJzpcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0TmV4dEVsZW1lbnQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnU3BhY2UnOlxuICAgICAgICAgICAgY2FzZSAnU3BhY2ViYXInOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdldFNlbGVjdGVkRWxlbWVudCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRFbGVtZW50KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5nZXRTZWxlY3RlZEVsZW1lbnQoKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0Rmlyc3RTdWdnZXN0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEp1c3QgYmVmb3JlIGZvcm0gc3VibWl0LCBjYWxscyBjaGVja0FuZFNldElucHV0VmFsdWUgYmVjYXVzZSBmb2N1c291dCBpcyBjYWxsZWQgdG9vIGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIChuZXcgdmFsdWUgaXMgYWxyZWFkeSBsb3N0KS5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tBbmRTZXRJbnB1dFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBhdXRvY29tcGxldGUgd2l0aG91dCBuZWVkIHRvIHNlbGVjdCBpdCBtYW51YWxseVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldElucHV0VmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrQW5kU2V0SW5wdXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZEVsZW1lbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja0FuZFNldElucHV0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgICAgICBjYXNlICdSaWdodCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZ2V0U2VsZWN0ZWRFbGVtZW50KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldEZpcnN0U3VnZ2VzdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBhdXRvY29tcGxldGUgd2l0aG91dCBuZWVkIHRvIHNlbGVjdCBpdCBtYW51YWxseVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldElucHV0VmFsdWUodmFsdWUsIHRoaXMuaW5wdXRWYWx1ZSAhPT0gdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrQW5kU2V0SW5wdXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZEVsZW1lbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja0FuZFNldElucHV0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBrZXlFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtbW9kdWxlLWJvdW5kYXJ5LXR5cGVzXG4gICAgb25MaXN0T3B0aW9uTW91c2VEb3duKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgLy8gU2FmYXJpIHRyaWdnZXJzIGZvY3VzT3V0IGJlZm9yZSBjbGljaywgYnV0IGlmIHlvdVxuICAgICAgICAvLyBwcmV2ZW50RGVmYXVsdCBvbiBtb3VzZURvd24sIHlvdSBjYW4gc3RvcCB0aGF0IGZyb20gaGFwcGVuaW5nLlxuICAgICAgICAvLyBJZiB0aGlzIGlzIHJlbW92ZWQsIGNsaWNraW5nIG9uIGFuIG9wdGlvbiBpbiBTYWZhcmkgd2lsbCB0cmlnZ2VyXG4gICAgICAgIC8vIGBoYW5kbGVPcHRpb25CbHVyYCwgd2hpY2ggY2xvc2VzIHRoZSBtZW51LCBhbmQgdGhlIGNsaWNrIHdpbGxcbiAgICAgICAgLy8gdHJpZ2dlciBvbiB0aGUgZWxlbWVudCB1bmRlcm5lYXRoIGluc3RlYWQuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25MaXN0T3B0aW9uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlzdEhhc0ZvY3VzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkxpc3RPcHRpb25CbHVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpc3RIYXNGb2N1cyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGZpbHRlckVsZW1lbnRzKGhpZGVTdWdnZXN0aW9uczogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSB0aGlzLmlucHV0VmFsdWU7XG5cbiAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnRzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmlzRW1wdHkodGhpcy5zZWFyY2hWYWx1ZSkgfHxcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWUubGVuZ3RoIDwgdGhpcy5zZWFyY2hWYWx1ZU1pbkNoYXJzQ291bnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWFyY2hWYWx1ZU1pbkNoYXJzQ291bnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERpc3BsYXllZEVsZW1lbnRzKHRoaXMuZWxlbWVudHMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN1Z2dlc3Rpb25zRGlzcGxheWVkKHRydWUsIFtdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3VnZ2VzdGlvbnNEaXNwbGF5ZWQoXG4gICAgICAgICAgICAgICAgaGlkZVN1Z2dlc3Rpb25zLFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHMuZmlsdGVyKChlOiBhbnkpID0+IHRoaXMubWF0Y2hSZXN1bHQoZSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXNcbiAgICBnZXRMYWJlbFdpdGhFbXBoYXNpcyhlbGVtOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBsZXQgbGFiZWwgPSB0aGlzLmdldExhYmVsKGVsZW0pO1xuXG4gICAgICAgIGlmICghdGhpcy5pc0VtcHR5KHRoaXMuc2VhcmNoVmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gbm9ybWFsaXplU2VhcmNoKGxhYmVsKS5pbmRleE9mKFxuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZVNlYXJjaCh0aGlzLnNlYXJjaFZhbHVlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChzdGFydEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGxhYmVsID0gYCR7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPiAwID8gbGFiZWwuc3Vic3RyKDAsIHN0YXJ0SW5kZXgpIDogJydcbiAgICAgICAgICAgICAgICB9PGI+JHtsYWJlbC5zdWJzdHIoc3RhcnRJbmRleCwgdGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGgpfTwvYj4ke1xuICAgICAgICAgICAgICAgICAgICBsYWJlbC5sZW5ndGggPiBzdGFydEluZGV4ICsgdGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbGFiZWwuc3Vic3RyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCArIHRoaXMuc2VhcmNoVmFsdWUubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICB9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsYWJlbDtcbiAgICB9XG5cbiAgICBvbkNsZWFyKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5vbkNsZWFyKCk7XG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5oaWRlU3VnZ2VzdGlvbnMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maWx0ZXJFbGVtZW50cygpO1xuICAgIH1cblxuICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIG9mKCEhdGhpcy5pbnB1dFZhbHVlICYmICF0aGlzLmRpc2FibGVkKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1vZHVsZS1ib3VuZGFyeS10eXBlc1xuICAgIG9uQ2xpY2tTdWdnZXN0aW9uKGVsZW1lbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldElucHV0VmFsdWUodGhpcy5nZXRMYWJlbChlbGVtZW50KSk7XG4gICAgICAgIHRoaXMuY2hlY2tBbmRTZXRJbnB1dFZhbHVlKCk7XG5cbiAgICAgICAgLy8gRm9yY2UgdGhlIGZvY3VzIG9uIHRoZSBpbnB1dCB0byBlbnN1cmUgdGhhdCBWb2ljZU92ZXIgZG9lc24ndCBzZXQgdGhlIGZvY3VzIG9uIGFub3RoZXIgZmllbGQgb24gdGhlIHBhZ2UuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRGb2N1c09uSW5wdXQoKTtcbiAgICAgICAgICAgIC8vIFRoZSBpbnB1dCBzaG91bGRuJ3QgYmUgbWFya2VkIGFzIGZvY3VzZWQgYXMgd2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IHRoZSBsaXN0LlxuICAgICAgICAgICAgdGhpcy5pbnB1dEhhc0ZvY3VzID0gZmFsc2U7XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldElucHV0VmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMuY2hlY2tBbmRTZXRJbnB1dFZhbHVlKCk7XG4gICAgfVxuXG4gICAgc2hvdWxkRGlzcGxheUxpc3Rib3goKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGlzVmlzaWJsZSA9XG4gICAgICAgICAgICB0aGlzLmlucHV0SGFzRm9jdXMgJiZcbiAgICAgICAgICAgICF0aGlzLmhpZGVTdWdnZXN0aW9ucyAmJlxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRFbGVtZW50cyAmJlxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRFbGVtZW50cy5sZW5ndGggPiAwO1xuICAgICAgICBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4ID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzVmlzaWJsZTtcbiAgICB9XG5cbiAgICBnZXRBY3RpdmVEZXNjZW5kYW50SWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvdWxkRGlzcGxheUxpc3Rib3goKSAmJiB0aGlzLmFjdGl2ZURlc2NlbmRhbnRJZFxuICAgICAgICAgICAgPyB0aGlzLmFjdGl2ZURlc2NlbmRhbnRJZFxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXJPbkJsdXJUaW1lb3V0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Qmx1clRpbWVyKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jdXJyZW50Qmx1clRpbWVyKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEJsdXJUaW1lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNlbGVjdGVkRWxlbWVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlKHRoaXMuZ2V0U2VsZWN0ZWRFbGVtZW50KCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SW5wdXRWYWx1ZShcbiAgICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgICAgaGlkZVN1Z2dlc3Rpb25zOiBib29sZWFuID0gdHJ1ZVxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoaGlkZVN1Z2dlc3Rpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcpO1xuICAgICAgICAgICAgZXZlbnQuaW5pdEV2ZW50KCdpbnB1dCcsIHRydWUsIHRydWUpO1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmhpZGVTdWdnZXN0aW9ucyA9IGhpZGVTdWdnZXN0aW9ucztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyBpZiB2YWx1ZSBpbiBpbnB1dCBtYXRjaGVzIGEgdmFsdWUgZnJvbSBzdWdnZXN0aW9ucy4gSWYgbm90LCBlbXB0eSB0aGUgaW5wdXQgaWYgdGhlIGN1c3RvbSB2YWx1ZVxuICAgICAqIG9wdGlvbiBpcyBub3Qgc2V0LlxuICAgICAqL1xuICAgIHByaXZhdGUgY2hlY2tBbmRTZXRJbnB1dFZhbHVlKCk6IHZvaWQge1xuICAgICAgICBpZiAoISF0aGlzLmlucHV0VmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nRWxlbWVudCA9IHRoaXMuZWxlbWVudHMuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChhOiBhbnkpID0+IHRoaXMuZ2V0TGFiZWwoYSkgPT09IHRoaXMuaW5wdXRWYWx1ZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKG1hdGNoaW5nRWxlbWVudC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZ2V0VmFsdWUobWF0Y2hpbmdFbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1hbnVhbGx5VXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dDdXN0b21WYWx1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld01vZGVsID0gdGhpcy5nZXRDdXN0b21WYWx1ZSh0aGlzLmlucHV0VmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMubWFudWFsbHlVcGRhdGVWYWx1ZShuZXdNb2RlbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tYW51YWxseVVwZGF0ZVZhbHVlKG51bGwpO1xuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSBudWxsO1xuICAgICAgICB0aGlzLnNlYXJjaFZhbHVlID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFN1Z2dlc3Rpb25zRGlzcGxheWVkKFxuICAgICAgICBoaWRlU3VnZ2VzdGlvbnM6IGJvb2xlYW4sXG4gICAgICAgIGRpc3BsYXllZEVsZW1lbnRzOiBhbnlbXVxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldERpc3BsYXllZEVsZW1lbnRzKGRpc3BsYXllZEVsZW1lbnRzKTtcbiAgICAgICAgdGhpcy5oaWRlU3VnZ2VzdGlvbnMgPSBoaWRlU3VnZ2VzdGlvbnM7XG4gICAgICAgIHRoaXMubm90aWZ5U2NyZWVuUmVhZGVyVXNlcnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERpc3BsYXllZEVsZW1lbnRzKGZpbHRlcmVkRWxlbWVudHM6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRJZCA9IG51bGw7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkRWxlbWVudHMgPSBmaWx0ZXJlZEVsZW1lbnRzO1xuXG4gICAgICAgIHRoaXMucmVzaXplRGlzcGxheVZpZXdQb3J0KGZpbHRlcmVkRWxlbWVudHMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzaXplRGlzcGxheVZpZXdQb3J0KGZpbHRlcmVkRWxlbWVudHM6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoISFmaWx0ZXJlZEVsZW1lbnRzKSB7XG4gICAgICAgICAgICBpZiAoZmlsdGVyZWRFbGVtZW50cy5sZW5ndGggPCB0aGlzLk5CX0lURU1TX1ZJU0lCTEUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLlZJRVdfUE9SVF9IRUlHSFQgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLklURU1fQ0FMQ1VMQVRFRF9IRUlHSFQgKiBmaWx0ZXJlZEVsZW1lbnRzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBpZiAoISF0aGlzLnZpcnR1YWxTY3JvbGxWaWV3cG9ydCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxWaWV3cG9ydC5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgTUFYX0hFSUdIVCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuTkJfSVRFTVNfVklTSUJMRSAqIHRoaXMuSVRFTV9DQUxDVUxBVEVEX0hFSUdIVDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5WSUVXX1BPUlRfSEVJR0hUIDwgTUFYX0hFSUdIVCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLlZJRVdfUE9SVF9IRUlHSFQgPSBNQVhfSEVJR0hUO1xuICAgICAgICAgICAgICAgICAgICBpZiAoISF0aGlzLnZpcnR1YWxTY3JvbGxWaWV3cG9ydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aXJ0dWFsU2Nyb2xsVmlld3BvcnQuY2hlY2tWaWV3cG9ydFNpemUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWRFbGVtZW50KCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnN1Z2dlc3Rpb25zTGlzdCkge1xuICAgICAgICAgICAgY29uc3Qgc3VnZ2VzdGlvbnMgPSB0aGlzLmdldFN1Z2dlc3Rpb25MaXN0KCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGluZGV4U3RyIGluIHN1Z2dlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgaWYgKHN1Z2dlc3Rpb25zLmhhc093blByb3BlcnR5KGluZGV4U3RyKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHBhcnNlSW50KGluZGV4U3RyLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNOYU4oaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gc3VnZ2VzdGlvbnNbaW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY2xhc3NOYW1lLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlNVR0dFU1RJT05fU0VMRUNURURfQ0xBU1NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5pbm5lclRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3ROZXh0RWxlbWVudChkb3duOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN1Z2dlc3Rpb25zRGlzcGxheWVkKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1Z2dlc3Rpb25zID0gdGhpcy5nZXRTdWdnZXN0aW9uTGlzdCgpO1xuICAgICAgICAgICAgbGV0IG5ld0l0ZW1TZWxlY3RlZCA9IG51bGw7XG4gICAgICAgICAgICBjb25zdCBzdGVwID0gZG93biA/IDEgOiAtMTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBpbmRleFN0ciBpbiBzdWdnZXN0aW9ucykge1xuICAgICAgICAgICAgICAgIGlmIChzdWdnZXN0aW9ucy5oYXNPd25Qcm9wZXJ0eShpbmRleFN0cikpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXJzZUludChpbmRleFN0ciwgMTApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKGluZGV4KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHN1Z2dlc3Rpb25zW2luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gaW5kZXggKyBzdGVwO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDdXJyZW50SXRlbVNlbGVjdGVkID0gaXRlbS5jbGFzc05hbWUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5TVUdHRVNUSU9OX1NFTEVDVEVEX0NMQVNTXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51bnNlbGVjdEl0ZW0oaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNDdXJyZW50SXRlbVNlbGVjdGVkICYmIG5leHRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV3SXRlbVNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRJbmRleCA8IHN1Z2dlc3Rpb25zLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc3VnZ2VzdGlvbnNbbmV4dEluZGV4XVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc3VnZ2VzdGlvbnNbc3VnZ2VzdGlvbnMubGVuZ3RoIC0gMV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSWYgbm8gaXRlbSB3YXMgc2VsZWN0ZWQgYmVmb3JlLCBzZWxlY3QgZmlyc3Qgb25lXG4gICAgICAgICAgICBpZiAoIW5ld0l0ZW1TZWxlY3RlZCAmJiBzdWdnZXN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oKG5ld0l0ZW1TZWxlY3RlZCA9IHN1Z2dlc3Rpb25zWzBdKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIE1hbmFnZSBnbG9iYWwgaXRlbSBzZWxlY3RlZCBpbmRleFxuICAgICAgICAgICAgICAgIGNvbnN0IE1BWF9JTkRFWCA9IHRoaXMuZGlzcGxheWVkRWxlbWVudHMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJdGVtR2xvYmFsSW5kZXggKz0gc3RlcDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4ID4gTUFYX0lOREVYKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEl0ZW1HbG9iYWxJbmRleCA9IE1BWF9JTkRFWDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEl0ZW1HbG9iYWxJbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNjcm9sbHMgZG93biBvciB1cCBpZiBuZXdJdGVtU2VsZWN0ZWQgaXMgbm90IHZpc2libGVcbiAgICAgICAgICAgIGNvbnN0IHN1Z2dlc3Rpb25zTmF0aXZlRWxlbWVudCA9IHRoaXMudmlydHVhbFNjcm9sbFZpZXdwb3J0XG4gICAgICAgICAgICAgICAgLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1Zpc2libGUoc3VnZ2VzdGlvbnNOYXRpdmVFbGVtZW50LCBuZXdJdGVtU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aXJ0dWFsU2Nyb2xsVmlld3BvcnQuc2Nyb2xsVG9JbmRleChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3VnZ2VzdGlvbkxpc3QoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgICAgIGNvbnN0IHN1Z2dlc3Rpb25zTmF0aXZlRWxlbWVudCA9IHRoaXMuc3VnZ2VzdGlvbnNMaXN0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIC8vIENvbnZlcnRzIHRoZSBzdWdnZXN0aW9ucyB0byBhbiBhcnJheSB0byB3b3JrIGNvbnNpc3RlbnRseSBhY3Jvc3MgYnJvd3NlcnMuXG4gICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChzdWdnZXN0aW9uc05hdGl2ZUVsZW1lbnQuY2hpbGRyZW4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdW5zZWxlY3RJdGVtKGl0ZW06IGFueSk6IHZvaWQge1xuICAgICAgICBpdGVtLmNsYXNzTmFtZSA9IGl0ZW0uY2xhc3NOYW1lLnJlcGxhY2UoXG4gICAgICAgICAgICBgICR7dGhpcy5TVUdHRVNUSU9OX1NFTEVDVEVEX0NMQVNTfWAsXG4gICAgICAgICAgICAnJ1xuICAgICAgICApO1xuICAgICAgICBpdGVtLmF0dHJpYnV0ZXNbJ2FyaWEtc2VsZWN0ZWQnXSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0SXRlbShpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpdGVtLmNsYXNzTmFtZS5pbmNsdWRlcyh0aGlzLlNVR0dFU1RJT05fU0VMRUNURURfQ0xBU1MpKSB7XG4gICAgICAgICAgICBpdGVtLmNsYXNzTmFtZSArPSBgICR7dGhpcy5TVUdHRVNUSU9OX1NFTEVDVEVEX0NMQVNTfWA7XG4gICAgICAgIH1cblxuICAgICAgICBpdGVtLmF0dHJpYnV0ZXNbJ2FyaWEtc2VsZWN0ZWQnXSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50SWQgPSBpdGVtLmlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWaXNpYmxlKHBhcmVudDogYW55LCBlbGVtZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZWxlbWVudE9mZnNldFRvcCA9XG4gICAgICAgICAgICBlbGVtZW50Lm9mZnNldFRvcCArXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxWaWV3cG9ydC5nZXRPZmZzZXRUb1JlbmRlcmVkQ29udGVudFN0YXJ0KCk7XG4gICAgICAgIC8vIGVsZW1lbnQgaXMgYmVsb3cgdmlzaWJsZSBhcmVhXG4gICAgICAgIGNvbnN0IGlzQmVsb3cgPVxuICAgICAgICAgICAgZWxlbWVudE9mZnNldFRvcCA8IHBhcmVudC5vZmZzZXRIZWlnaHQgKyBwYXJlbnQuc2Nyb2xsVG9wO1xuICAgICAgICAvLyBlbGVtZW50IGlzIGFib3ZlIHZpc2libGUgYXJlYVxuICAgICAgICBjb25zdCBpc0Fib3ZlID0gZWxlbWVudE9mZnNldFRvcCA+IHBhcmVudC5zY3JvbGxUb3A7XG4gICAgICAgIHJldHVybiBpc0JlbG93ICYmIGlzQWJvdmU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWdnZXN0aW9uc0Rpc3BsYXllZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuc3VnZ2VzdGlvbnNMaXN0ICYmXG4gICAgICAgICAgICB0aGlzLnN1Z2dlc3Rpb25zTGlzdC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpcnN0U3VnZ2VzdGlvbigpOiBzdHJpbmcge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnN1Z2dlc3Rpb25zTGlzdCAmJlxuICAgICAgICAgICAgdGhpcy5zdWdnZXN0aW9uc0xpc3QubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPT09IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdWdnZXN0aW9uc0xpc3QubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5pbm5lclRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBub3RpZnlTY3JlZW5SZWFkZXJVc2VycygpOiB2b2lkIHtcbiAgICAgICAgLy8gRm9yY2VzIE5WREEgdG8gcmUtcmVhZCB0aGUgY29udGVudCBvZiB0aGUgc2Mtb25seSBub3RpZmljYXRpb24uXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uTWVzc2FnZVVwZGF0ZWQgPSAhdGhpcy5ub3RpZmljYXRpb25NZXNzYWdlVXBkYXRlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1hdGNoaW5nVmFsdWUoZWxlbWVudHM6IGFueSwgZWxlbVRvQ29tcGFyZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgLy8gTG9vayBmb3IgYSBwb3RlbnRpYWwgbWF0Y2hpbmcgdmFsdWUgaW4gdGhlIHNldFxuICAgICAgICBjb25zdCBtYXRjaGluZ0VsZW1lbnQgPSBlbGVtZW50cy5maWx0ZXIoKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKGVsZW1lbnQpO1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICB2YWx1ZSAmJlxuICAgICAgICAgICAgICAgICh0aGlzLmFyZVZhbHVlc0VxdWFscyh2YWx1ZSwgZWxlbVRvQ29tcGFyZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUudG9TdHJpbmcoKSA9PT0gZWxlbVRvQ29tcGFyZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIE1hcCB3aXRoIHRoZSBsYWJlbC5cbiAgICAgICAgY29uc3QgbWF0Y2hpbmdWYWx1ZUxhYmVsID0gdGhpcy5nZXRMYWJlbChtYXRjaGluZ0VsZW1lbnRbMF0pO1xuXG4gICAgICAgIC8vIERvbid0IG92ZXJyaWRlIHRoZSB2YWx1ZSBpZiBjdXN0b20gdmFsdWVzIGFyZSBhbGxvd2VkIGFuZCB0aGVyZSdzIG5vIG1hdGNoLlxuICAgICAgICByZXR1cm4gdGhpcy5hbGxvd0N1c3RvbVZhbHVlXG4gICAgICAgICAgICA/IG1hdGNoaW5nVmFsdWVMYWJlbCB8fCB0aGlzLmdldE1vZGVsVmFsdWVEaXNwbGF5VmFsdWUoKVxuICAgICAgICAgICAgOiBtYXRjaGluZ1ZhbHVlTGFiZWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYXRjaFJlc3VsdDxUPihlbGVtZW50OiBUKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHNlYXJjaFZhbHVlID0gbm9ybWFsaXplU2VhcmNoKHRoaXMuc2VhcmNoVmFsdWUpO1xuICAgICAgICBjb25zdCBsYWJlbCA9IG5vcm1hbGl6ZVNlYXJjaCh0aGlzLmdldExhYmVsKGVsZW1lbnQpKTtcbiAgICAgICAgaWYgKCFsYWJlbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGxhYmVsLmluY2x1ZGVzKHNlYXJjaFZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hbnVhbGx5VXBkYXRlVmFsdWUobmV3VmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIW5ld1ZhbHVlIHx8XG4gICAgICAgICAgICAhdGhpcy5tb2RlbCB8fFxuICAgICAgICAgICAgIXRoaXMuYXJlVmFsdWVzRXF1YWxzKG5ld1ZhbHVlLCB0aGlzLm1vZGVsKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgaW1wb3J0YW50IHRvIGRvIG9uIHRvcCBvZiB0aGUgdXBkYXRlTmdNb2RlbCBhc1xuICAgICAgICAgICAgLy8gdXBkYXRlTmdNb2RlbCBjYW4gYmUgdHJpZ2dlcmVkIGZyb20gb3RoZXIgc291cmNlcy5cbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbChuZXdWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDdXN0b21WYWx1ZSh2YWx1ZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgaWYgKCF0aGlzLmN1c3RvbVZhbHVlTW9kZWxHZW5lcmF0b3IgfHwgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tVmFsdWVNb2RlbEdlbmVyYXRvcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNb2RlbFZhbHVlRGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5tb2RlbCA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgID8gdGhpcy5tb2RlbFxuICAgICAgICAgICAgOiB0aGlzLmdldExhYmVsKHRoaXMubW9kZWwpO1xuICAgIH1cbn1cbiIsIjwhLS1cbiAgICBBY2Nlc3NpYmxlIGF1dG9jb21wbGV0ZSB3aWRnZXQgZm9sbG93aW5nIHRoZSBsaXN0Ym94IGNvbWJvYm94IHBhdHRlcm4uXG4gICAgcmVmOiBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMS9leGFtcGxlcy9jb21ib2JveC9hcmlhMS4xcGF0dGVybi9saXN0Ym94LWNvbWJvLmh0bWxcbi0tPlxuPGRpdlxuICAgIGNsYXNzPVwiZm9ybS1ncm91cCBhdXRvY29tcGxldGUtZm9ybS1ncm91cFwiXG4gICAgW2NsYXNzLmhhcy1kYW5nZXJdPVwiaGFzRXJyb3JzKClcIlxuICAgIFtjbGFzcy52ZC1mb3JtLWdyb3VwLWRhbmdlcl09XCJoYXNFcnJvcnMoKVwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJzaG91bGREaXNwbGF5TGlzdGJveCgpXCJcbiAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cIidsaXN0Ym94J1wiXG4gICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnQ29udGFpbmVyJylcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuPlxuICAgIDxsYWJlbFxuICAgICAgICBbYXR0ci5mb3JdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICAqbmdJZj1cIiEhbGFiZWxcIlxuICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3NyLW9ubHknIDogbGFiZWxTdHlsZU1vZGlmaWVyXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnTGFiZWwnXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGFiZWxcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIiFyZXF1aXJlZCAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydHMgW2NvbXBvbmVudF09XCJ0aGlzXCI+PC9mb2Vobi12YWxpZGF0aW9uLWFsZXJ0cz5cblxuICAgIDxkaXYgKm5nSWY9XCIhZWxlbWVudHNcIj5DaGFyZ2VtZW50Li4uPC9kaXY+XG5cbiAgICA8c21hbGxcbiAgICAgICAgKm5nSWY9XCJoZWxwVGV4dFwiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpICsgJ0hlbHAnXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImhlbHBUZXh0XCJcbiAgICA+PC9zbWFsbD5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDxkaXYgY2xhc3M9XCJzci1vbmx5XCI+XG4gICAgICAgIFV0aWxpc2V6IGxlcyBmbMOoY2hlcyBoYXV0IGV0IGJhcyBwb3VyIG5hdmlndWVyIGRhbnMgbGEgbGlzdGUsIHB1aXMgbGFcbiAgICAgICAgdG91Y2hlIEVudHJlciBwb3VyIHPDqWxlY3Rpb25uZXIgdW5lIG9wdGlvbi5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gR2l2ZSBzY3JlZW4gcmVhZGVyIHVzZXJzIHRoZSB0b3RhbCBvZiByZXN1bHRzIHdoZW4gdGhlbiBpbnB1dCBjaGFuZ2VzLiAtLT5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic3Itb25seVwiXG4gICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgICAgICBhcmlhLWF0b21pYz1cInRydWVcIlxuICAgICAgICAqbmdJZj1cImRpc3BsYXllZEVsZW1lbnRzICYmIHNob3VsZERpc3BsYXlMaXN0Ym94KClcIlxuICAgID5cbiAgICAgICAgTm9tYnJlIGRlIHLDqXN1bHRhdHM6IHt7IGRpc3BsYXllZEVsZW1lbnRzLmxlbmd0aCB9fVxuICAgICAgICA8IS0tIFRyaWNrIHRvIGhhdmUgTlZEQSByZS1yZWFkaW5nIHRoaXMgcHJvcGVybHkgLS0+XG4gICAgICAgIDxzcGFuPnt7IG5vdGlmaWNhdGlvbk1lc3NhZ2VVcGRhdGVkID8gJywnIDogJywsJyB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxpbnB1dFxuICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJoYXNFcnJvcnMoKVwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGF1dG9jb21wbGV0ZVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgcm9sZT1cInRleHRib3hcIlxuICAgICAgICBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8fCBudWxsXCJcbiAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZ2V0RGVzY3JpYmVkQnkoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgfHwgbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnMoKSB8fCBudWxsXCJcbiAgICAgICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cIidvZmYnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cImdldEFjdGl2ZURlc2NlbmRhbnRJZCgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1vd25zXT1cIlxuICAgICAgICAgICAgc2hvdWxkRGlzcGxheUxpc3Rib3goKSA/IGJ1aWxkQ2hpbGRJZCgpICsgJ0xpc3Rib3gnIDogbnVsbFxuICAgICAgICBcIlxuICAgICAgICBbYXR0ci5saXN0XT1cImJ1aWxkQ2hpbGRJZCgpICsgJ2xpc3QnXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFZhbHVlXCJcbiAgICAgICAgKHBhc3RlKT1cIm9uUGFzdGUoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoKVwiXG4gICAgICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKClcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICNlbnRyeUNvbXBvbmVudFxuICAgIC8+XG5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAqbmdJZj1cImRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmNcIlxuICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS1jbGVhci1idXR0b24gYnRuXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIoKVwiXG4gICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoKSArICdDbGVhcidcIlxuICAgID5cbiAgICAgICAgPGZvZWhuLWljb24tdGltZXNcbiAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLWNsZWFyLWJ1dHRvbi1pY29uXCJcbiAgICAgICAgICAgIHRpdGxlPVwiUsOpaW5pdGlhbGlzZXIgbGUgY2hhbXBcIlxuICAgICAgICA+PC9mb2Vobi1pY29uLXRpbWVzPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZvcm0tZ3JvdXAgc3VnZ2VzdGlvbnMtbGlzdC1jb250YWluZXJcIlxuICAgICAgICAqbmdJZj1cInNob3VsZERpc3BsYXlMaXN0Ym94KClcIlxuICAgID5cbiAgICAgICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxuICAgICAgICAgICAgW2l0ZW1TaXplXT1cIklURU1fQ0FMQ1VMQVRFRF9IRUlHSFRcIlxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJWSUVXX1BPUlRfSEVJR0hUXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHVsXG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnTGlzdGJveCdcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJidWlsZENoaWxkSWQoKSArICdMYWJlbCdcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInN1Z2dlc3Rpb25zLWxpc3RcIlxuICAgICAgICAgICAgICAgICNzdWdnZXN0aW9uc0xpc3RcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1Z2dlc3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAqY2RrVmlydHVhbEZvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVsZW1lbnQgb2YgZGlzcGxheWVkRWxlbWVudHM7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCBhcyBpXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpICsgJ09wdGlvbicgKyBpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tTdWdnZXN0aW9uKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvbkxpc3RPcHRpb25Nb3VzZURvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChmb2N1cyk9XCJvbkxpc3RPcHRpb25Gb2N1cygpXCJcbiAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25MaXN0T3B0aW9uQmx1cigpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gRW5zdXJlcyB0aGF0IHNjcmVlbiByZWFkZXJzIGRvbid0IGNvbnNpZGVyIGFueSBzcGFjZXMgYXJvdW5kIHRoZSBlbXBoYXNpcyAtLT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySHRtbF09XCJnZXRMYWJlbFdpdGhFbXBoYXNpcyhlbGVtZW50KVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
557
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1hdXRvY29tcGxldGUvZm9laG4tYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1hdXRvY29tcGxldGUvZm9laG4tYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUlMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsNEVBQTRFO0FBQzVFLE9BQU8sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7O0FBRWxFLG1GQUFtRjtBQUNuRixTQUFTLGFBQWEsQ0FBQyxLQUFhO0lBQ2hDLHlGQUF5RjtJQUN6RixJQUFJLE9BQU8sS0FBSyxDQUFDLFNBQVMsS0FBSyxVQUFVLEVBQUU7UUFDdkMsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxpQkFBaUI7SUFDakIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztB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O1lBQ0ksT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO1lBQ3pELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSixpRkFLVSx3QkFBd0IsMlJDdkR2QyxrdEpBdUlBOzJGRG5GYSwwQkFBMEI7a0JBWnRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLHFDQUFxQztvQkFDbEQsU0FBUyxFQUFFLENBQUMsb0NBQW9DLENBQUM7b0JBQ2pELFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7aUJBQ0o7NkZBS0cscUJBQXFCO3NCQURwQixTQUFTO3VCQUFDLHdCQUF3QjtnQkFJbkMsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLGlCQUFpQjtnQkFJNUIsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJN0Msd0JBQXdCO3NCQUR2QixLQUFLO2dCQVNOLGdCQUFnQjtzQkFEZixLQUFLO2dCQVdOLHlCQUF5QjtzQkFEeEIsS0FBSztnQkE0Qk4sYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvZWhuQ2hlY2thYmxlR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi9mb2Vobi1jaGVja2FibGVzL2ZvZWhuLWNoZWNrYWJsZS1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbi8vIFRoaXMgY29tcG9uZW50IHVzZXMgc29tZSBFUzcgZmVhdHVyZXMgdGhhdCBhcmUgbm90IHBvbHlmaWxsZWQgYnkgQW5ndWxhci5cbmltcG9ydCAnY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmluY2x1ZGVzJztcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWFycm93L3ByZWZlci1hcnJvdy1mdW5jdGlvbnMsanNkb2MvcmVxdWlyZS1qc2RvY1xuZnVuY3Rpb24gbm9ybWFsaXplVXRmOCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBTb21lIGJyb3dzZXJzIHN1Y2ggYXMgSUUxMSBkb24ndCBzdXBwb3J0IHRoZSBmZWF0dXJlLiBBZGQgdGhlIHBvbHlmaWxsIGlmIHlvdSB3YW50IGl0LlxuICAgIGlmICh0eXBlb2YgdmFsdWUubm9ybWFsaXplICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgYWNjZW50c1xuICAgIHJldHVybiB2YWx1ZS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1hcnJvdy9wcmVmZXItYXJyb3ctZnVuY3Rpb25zLGpzZG9jL3JlcXVpcmUtanNkb2NcbmZ1bmN0aW9uIG5vcm1hbGl6ZVNlYXJjaCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9ybWFsaXplVXRmOCh2YWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1hdXRvY29tcGxldGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZvZWhuSW5wdXRDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb2VobkF1dG9jb21wbGV0ZUNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobkF1dG9jb21wbGV0ZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgRm9laG5DaGVja2FibGVHcm91cENvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KVxuICAgIHZpcnR1YWxTY3JvbGxWaWV3cG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuXG4gICAgQFZpZXdDaGlsZCgnc3VnZ2VzdGlvbnNMaXN0JylcbiAgICBzdWdnZXN0aW9uc0xpc3Q6IGFueTtcblxuICAgIEBWaWV3Q2hpbGQoJ2VudHJ5Q29tcG9uZW50JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBpbnB1dEVsZW1lbnQ6IGFueTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2VhcmNoVmFsdWVNaW5DaGFyc0NvdW50ID0gMDtcblxuICAgIC8qKlxuICAgICAqIEFsbG93IHRvIHByb3ZpZGUgY3VzdG9tIHZhbHVlcyB0byB0aGUgYXV0b2NvbXBsZXRlLlxuICAgICAqXG4gICAgICogQSBjdXN0b20gdmFsdWUgaXMgYSB2YWx1ZSB0aGF0IGlzIG5vdCBpbiB0aGUgYGVsZW1lbnRzYCBzZXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd0N1c3RvbVZhbHVlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBbGxvdyB0byBwcm92aWRlIGEgZ2VuZXJhdG9yIHRvIGNyZWF0ZSB0aGUgbW9kZWwgd2l0aCBjdXN0b20gdmFsdWVzLlxuICAgICAqXG4gICAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiB0aGUgdHlwZSBvZiB0aGUgbW9kZWwgaXMgYW4gb2JqZWN0IGFuZCBub3QganVzdFxuICAgICAqIGEgc3RyaW5nLiBVc2UgdGhpcyBpcyBgYWxsb3dDdXN0b21WYWx1ZWAgaXMgdHJ1ZSBhbmQgYGVsZW1lbnRWYWx1ZWBcbiAgICAgKiBpcyBhIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY3VzdG9tVmFsdWVNb2RlbEdlbmVyYXRvcjogKGlucHV0OiBzdHJpbmcpID0+IGFueTtcblxuICAgIGlucHV0VmFsdWU6IHN0cmluZztcbiAgICBzZWFyY2hWYWx1ZTogc3RyaW5nO1xuICAgIGlucHV0SGFzRm9jdXM6IGJvb2xlYW47XG4gICAgaGlkZVN1Z2dlc3Rpb25zID0gdHJ1ZTtcbiAgICBjdXJyZW50Qmx1clRpbWVyOiBhbnk7XG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIFZJRVdfUE9SVF9IRUlHSFQ6IG51bWJlcjtcbiAgICByZWFkb25seSBJVEVNX0NBTENVTEFURURfSEVJR0hUID0gNDA7XG5cbiAgICBkaXNwbGF5ZWRFbGVtZW50czogYW55W107XG4gICAgbm90aWZpY2F0aW9uTWVzc2FnZVVwZGF0ZWQ6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIGN1cnJlbnRJdGVtR2xvYmFsSW5kZXggPSAtMTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IE5CX0lURU1TX1ZJU0lCTEUgPSA1O1xuXG4gICAgcHJpdmF0ZSBmaWx0ZXJTdWJqZWN0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICAgIHByaXZhdGUgZmlsdGVyU3ViY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIGxpc3RIYXNGb2N1czogYm9vbGVhbjtcbiAgICBwcml2YXRlIGFjdGl2ZURlc2NlbmRhbnRJZDogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBvbkluaXRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIG1vZGVsQ2hhbmdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBAT3V0cHV0KClcbiAgICBrZXl3b3JkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBwcml2YXRlIFNVR0dFU1RJT05fU0VMRUNURURfQ0xBU1MgPSAnc3VnZ2VzdGlvbi1zZWxlY3RlZCc7XG5cbiAgICBjb25zdHJ1Y3Rvcih6b25lOiBOZ1pvbmUpIHtcbiAgICAgICAgc3VwZXIoem9uZSk7XG4gICAgICAgIHRoaXMuZmlsdGVyU3ViY3JpcHRpb24gPSB0aGlzLmZpbHRlclN1YmplY3RcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyMDApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLmZpbHRlckVsZW1lbnRzLmJpbmQodGhpcykpO1xuXG4gICAgICAgIHRoaXMuVklFV19QT1JUX0hFSUdIVCA9XG4gICAgICAgICAgICB0aGlzLklURU1fQ0FMQ1VMQVRFRF9IRUlHSFQgKiB0aGlzLk5CX0lURU1TX1ZJU0lCTEU7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVmFsdWVNaW5DaGFyc0NvdW50ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmdldEVsZW1lbnRzKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERpc3BsYXllZEVsZW1lbnRzKHRoaXMuZWxlbWVudHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWFyY2hWYWx1ZU1pbkNoYXJzQ291bnQgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gYFNhaXNpc3NleiBhdSBtb2lucyAke1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWVNaW5DaGFyc0NvdW50XG4gICAgICAgICAgICB9IGNhcmFjdMOocmUke3RoaXMuc2VhcmNoVmFsdWVNaW5DaGFyc0NvdW50ID4gMSA/ICdzJyA6ICcnfWA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uSW5pdFN1YnNjcmlwdGlvbiA9IHRoaXMub25Jbml0U3ViamVjdFxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBIYWNrIHRvIHJlZnJlc2ggdGhlIGRhdGEgb25jZSB0aGUgbGlzdCBpcyBkb3dubG9hZGVkLlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbCh0aGlzLm1vZGVsXyk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAvLyBXaGVuIHRoZSBtb2RlbCBjaGFuZ2VzLCBzZWxlY3QgdGhlIHJpZ2h0IHZhbHVlIHRvIGRpc3BsYXkuXG4gICAgICAgIHRoaXMubW9kZWxDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLm1vZGVsQ2hhbmdlLnN1YnNjcmliZShcbiAgICAgICAgICAgICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRFbGVtZW50cygpXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKGZpbHRlcigoZWxlbWVudHM6IGFueSkgPT4gISFlbGVtZW50cykpXG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzL25vLW5lc3RlZC1zdWJzY3JpYmVcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZWxlbWVudHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIHZhbHVlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJFbGVtZW50cyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1Ub0NvbXBhcmUgPSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZGVmYXVsdEVsZW1lbnRWYWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1Ub0NvbXBhcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLmdldE1hdGNoaW5nVmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtVG9Db21wYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlckVsZW1lbnRzKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5maWx0ZXJTdWJjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLm9uSW5pdFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5vbkluaXRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsQ2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbklucHV0Rm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyU3ViamVjdC5uZXh0KCk7XG4gICAgICAgIHRoaXMuaW5wdXRIYXNGb2N1cyA9IHRydWU7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh0aGlzLmlzRW1wdHkodGhpcy5zZWFyY2hWYWx1ZSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlTWluQ2hhcnNDb3VudCA9PT0gMCkgfHxcbiAgICAgICAgICAgICghdGhpcy5pc0VtcHR5KHRoaXMuc2VhcmNoVmFsdWUpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZU1pbkNoYXJzQ291bnQgPD0gdGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGgpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5oaWRlU3VnZ2VzdGlvbnMgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJPbkJsdXJUaW1lb3V0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXb3JrYXJvdW5kIGZvciBJRTExIHRoYXQgbG9zZXMgZm9jdXMgb24gaW5wdXQgd2hlbiBzY3JvbGxiYXIgaXMgY2xpY2tlZFxuICAgIC8vIC0tPiBwdXQgYmFjayBmb2N1cyBvbiBpbnB1dCBhbmQgY2FuY2VsIHN1Z2dlc3Rpb25zIGhpZGluZyB0aW1lclxuICAgIHNldEZvY3VzT25JbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLmNsZWFyT25CbHVyVGltZW91dCgpO1xuICAgIH1cblxuICAgIG9uSW5wdXRCbHVyKCk6IHZvaWQge1xuICAgICAgICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYmVmb3JlIG9uQ2xpY2tTdWdnZXN0aW9uLiBTZXR0aW5nIGlucHV0SGFzRm9jdXMgdG8gZmFsc2UgbWFrZXMgc3VnZ2VzdGlvbnMgZGlzYXBwZWFyZWRcbiAgICAgICAgLy8gYW5kIG9uQ2xpY2tTdWdnZXN0aW9uIGlzIG5ldmVyIGNhbGxlZC4gU2V0dGluZyBhIHRpbWVvdXQgaGVyZSBhdm9pZCB0aGlzIHByb2JsZW0uXG4gICAgICAgIHRoaXMuY3VycmVudEJsdXJUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgLy8gRG9uJ3QgY2xvc2UgdGhlIGxpc3QgaWYgdGhlIGxpc3QgaGFzIHRoZSBmb2N1cy4gVGhpcyBpcyBkb25lIHRvIGFsbG93IFZvaWNlT3ZlciB1c2VycyBvbiBpT1MgdG9cbiAgICAgICAgICAgIC8vIHNlbGVjdCBhbiBvcHRpb24gd2l0aCB0aGVpciBmaW5nZXIuIFNhbWUgaWYgZm9jdXMgaXMgc2V0IG9uIGxpc3Qgc2Nyb2xsIGJhclxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICF0aGlzLmxpc3RIYXNGb2N1cyAmJlxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2xhc3NOYW1lICE9PVxuICAgICAgICAgICAgICAgICAgICAnZm9ybS1ncm91cCBhdXRvY29tcGxldGUtZm9ybS1ncm91cCdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRIYXNGb2N1cyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZVN1Z2dlc3Rpb25zID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrQW5kU2V0SW5wdXRWYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbktleURvd24oa2V5RXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgLy8gVGhlIGlucHV0IG1pZ2h0IG5vdCBiZSBtYXJrZWQgYXMgZm9jdXNlZCBpbiBjYXNlIHRoZSB1c2VyIHNlbGVjdHMgYSB2YWx1ZSBmcm9tIHRoZSBsaXN0LlxuICAgICAgICB0aGlzLmlucHV0SGFzRm9jdXMgPSB0cnVlO1xuICAgICAgICBjb25zdCBwcm9wYWdhdGUgPSB0aGlzLm9uS2V5RG93bklubmVyKGtleUV2ZW50KTtcbiAgICAgICAgaWYgKHByb3BhZ2F0ZSkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJTdWJqZWN0Lm5leHQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJvcGFnYXRlO1xuICAgIH1cblxuICAgIG9uS2V5RG93bklubmVyKGtleUV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIC8vIElFIGRvZXNuJ3Qgc3VwcG9ydCBrZXlFdmVudC5jb2RlLCBhbmQgaGFzIGRpZmZlcmVudCB2YWx1ZXNcbiAgICAgICAgLy8gaW4ga2V5RXZlbnQua2V5IChEb3duIGluc3RlYWQgb2YgQXJyb3dEb3duIGZvciBpbnN0YW5jZSksIGhlbmNlIHRoZSBtdWx0aS1zdXBwb3J0LlxuICAgICAgICBjb25zdCBpZTExQ29tcGF0aWJsZUNvZGUgPSBrZXlFdmVudC5jb2RlIHx8IGtleUV2ZW50LmtleTtcbiAgICAgICAgc3dpdGNoIChpZTExQ29tcGF0aWJsZUNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Rvd24nOlxuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdE5leHRFbGVtZW50KHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnVXAnOlxuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3ROZXh0RWxlbWVudChmYWxzZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdTcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdTcGFjZWJhcic6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZ2V0U2VsZWN0ZWRFbGVtZW50KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZEVsZW1lbnQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmdldFNlbGVjdGVkRWxlbWVudCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRGaXJzdFN1Z2dlc3Rpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSnVzdCBiZWZvcmUgZm9ybSBzdWJtaXQsIGNhbGxzIGNoZWNrQW5kU2V0SW5wdXRWYWx1ZSBiZWNhdXNlIGZvY3Vzb3V0IGlzIGNhbGxlZCB0b28gbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gKG5ldyB2YWx1ZSBpcyBhbHJlYWR5IGxvc3QpLlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja0FuZFNldElucHV0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGF1dG9jb21wbGV0ZSB3aXRob3V0IG5lZWQgdG8gc2VsZWN0IGl0IG1hbnVhbGx5XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tBbmRTZXRJbnB1dFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkRWxlbWVudCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrQW5kU2V0SW5wdXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnVGFiJzpcbiAgICAgICAgICAgIGNhc2UgJ1JpZ2h0JzpcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5nZXRTZWxlY3RlZEVsZW1lbnQoKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0Rmlyc3RTdWdnZXN0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGF1dG9jb21wbGV0ZSB3aXRob3V0IG5lZWQgdG8gc2VsZWN0IGl0IG1hbnVhbGx5XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZSh2YWx1ZSwgdGhpcy5pbnB1dFZhbHVlICE9PSB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tBbmRTZXRJbnB1dFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkRWxlbWVudCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrQW5kU2V0SW5wdXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGtleUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXNcbiAgICBvbkxpc3RPcHRpb25Nb3VzZURvd24oZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICAvLyBTYWZhcmkgdHJpZ2dlcnMgZm9jdXNPdXQgYmVmb3JlIGNsaWNrLCBidXQgaWYgeW91XG4gICAgICAgIC8vIHByZXZlbnREZWZhdWx0IG9uIG1vdXNlRG93biwgeW91IGNhbiBzdG9wIHRoYXQgZnJvbSBoYXBwZW5pbmcuXG4gICAgICAgIC8vIElmIHRoaXMgaXMgcmVtb3ZlZCwgY2xpY2tpbmcgb24gYW4gb3B0aW9uIGluIFNhZmFyaSB3aWxsIHRyaWdnZXJcbiAgICAgICAgLy8gYGhhbmRsZU9wdGlvbkJsdXJgLCB3aGljaCBjbG9zZXMgdGhlIG1lbnUsIGFuZCB0aGUgY2xpY2sgd2lsbFxuICAgICAgICAvLyB0cmlnZ2VyIG9uIHRoZSBlbGVtZW50IHVuZGVybmVhdGggaW5zdGVhZC5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkxpc3RPcHRpb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saXN0SGFzRm9jdXMgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uTGlzdE9wdGlvbkJsdXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlzdEhhc0ZvY3VzID0gZmFsc2U7XG4gICAgfVxuXG4gICAgZmlsdGVyRWxlbWVudHMoaGlkZVN1Z2dlc3Rpb25zOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9IHRoaXMuaW5wdXRWYWx1ZTtcbiAgICAgICAgdGhpcy5rZXl3b3JkQ2hhbmdlLm5leHQodGhpcy5zZWFyY2hWYWx1ZSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnRzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmlzRW1wdHkodGhpcy5zZWFyY2hWYWx1ZSkgfHxcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWUubGVuZ3RoIDwgdGhpcy5zZWFyY2hWYWx1ZU1pbkNoYXJzQ291bnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWFyY2hWYWx1ZU1pbkNoYXJzQ291bnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERpc3BsYXllZEVsZW1lbnRzKHRoaXMuZWxlbWVudHMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN1Z2dlc3Rpb25zRGlzcGxheWVkKHRydWUsIFtdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3VnZ2VzdGlvbnNEaXNwbGF5ZWQoXG4gICAgICAgICAgICAgICAgaGlkZVN1Z2dlc3Rpb25zLFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHMuZmlsdGVyKChlOiBhbnkpID0+IHRoaXMubWF0Y2hSZXN1bHQoZSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXNcbiAgICBnZXRMYWJlbFdpdGhFbXBoYXNpcyhlbGVtOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBsZXQgbGFiZWwgPSB0aGlzLmdldExhYmVsKGVsZW0pO1xuXG4gICAgICAgIGlmICghdGhpcy5pc0VtcHR5KHRoaXMuc2VhcmNoVmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gbm9ybWFsaXplU2VhcmNoKGxhYmVsKS5pbmRleE9mKFxuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZVNlYXJjaCh0aGlzLnNlYXJjaFZhbHVlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChzdGFydEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGxhYmVsID0gYCR7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPiAwID8gbGFiZWwuc3Vic3RyKDAsIHN0YXJ0SW5kZXgpIDogJydcbiAgICAgICAgICAgICAgICB9PGI+JHtsYWJlbC5zdWJzdHIoc3RhcnRJbmRleCwgdGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGgpfTwvYj4ke1xuICAgICAgICAgICAgICAgICAgICBsYWJlbC5sZW5ndGggPiBzdGFydEluZGV4ICsgdGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbGFiZWwuc3Vic3RyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCArIHRoaXMuc2VhcmNoVmFsdWUubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICB9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsYWJlbDtcbiAgICB9XG5cbiAgICBvbkNsZWFyKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5vbkNsZWFyKCk7XG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5oaWRlU3VnZ2VzdGlvbnMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maWx0ZXJFbGVtZW50cygpO1xuICAgIH1cblxuICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIG9mKCEhdGhpcy5pbnB1dFZhbHVlICYmICF0aGlzLmRpc2FibGVkKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1vZHVsZS1ib3VuZGFyeS10eXBlc1xuICAgIG9uQ2xpY2tTdWdnZXN0aW9uKGVsZW1lbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldElucHV0VmFsdWUodGhpcy5nZXRMYWJlbChlbGVtZW50KSk7XG4gICAgICAgIHRoaXMuY2hlY2tBbmRTZXRJbnB1dFZhbHVlKCk7XG5cbiAgICAgICAgLy8gRm9yY2UgdGhlIGZvY3VzIG9uIHRoZSBpbnB1dCB0byBlbnN1cmUgdGhhdCBWb2ljZU92ZXIgZG9lc24ndCBzZXQgdGhlIGZvY3VzIG9uIGFub3RoZXIgZmllbGQgb24gdGhlIHBhZ2UuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRGb2N1c09uSW5wdXQoKTtcbiAgICAgICAgICAgIC8vIFRoZSBpbnB1dCBzaG91bGRuJ3QgYmUgbWFya2VkIGFzIGZvY3VzZWQgYXMgd2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IHRoZSBsaXN0LlxuICAgICAgICAgICAgdGhpcy5pbnB1dEhhc0ZvY3VzID0gZmFsc2U7XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldElucHV0VmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMuY2hlY2tBbmRTZXRJbnB1dFZhbHVlKCk7XG4gICAgfVxuXG4gICAgc2hvdWxkRGlzcGxheUxpc3Rib3goKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGlzVmlzaWJsZSA9XG4gICAgICAgICAgICB0aGlzLmlucHV0SGFzRm9jdXMgJiZcbiAgICAgICAgICAgICF0aGlzLmhpZGVTdWdnZXN0aW9ucyAmJlxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRFbGVtZW50cyAmJlxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRFbGVtZW50cy5sZW5ndGggPiAwO1xuICAgICAgICBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4ID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzVmlzaWJsZTtcbiAgICB9XG5cbiAgICBnZXRBY3RpdmVEZXNjZW5kYW50SWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvdWxkRGlzcGxheUxpc3Rib3goKSAmJiB0aGlzLmFjdGl2ZURlc2NlbmRhbnRJZFxuICAgICAgICAgICAgPyB0aGlzLmFjdGl2ZURlc2NlbmRhbnRJZFxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXJPbkJsdXJUaW1lb3V0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Qmx1clRpbWVyKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jdXJyZW50Qmx1clRpbWVyKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEJsdXJUaW1lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNlbGVjdGVkRWxlbWVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlKHRoaXMuZ2V0U2VsZWN0ZWRFbGVtZW50KCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SW5wdXRWYWx1ZShcbiAgICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgICAgaGlkZVN1Z2dlc3Rpb25zOiBib29sZWFuID0gdHJ1ZVxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoaGlkZVN1Z2dlc3Rpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcpO1xuICAgICAgICAgICAgZXZlbnQuaW5pdEV2ZW50KCdpbnB1dCcsIHRydWUsIHRydWUpO1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmhpZGVTdWdnZXN0aW9ucyA9IGhpZGVTdWdnZXN0aW9ucztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyBpZiB2YWx1ZSBpbiBpbnB1dCBtYXRjaGVzIGEgdmFsdWUgZnJvbSBzdWdnZXN0aW9ucy4gSWYgbm90LCBlbXB0eSB0aGUgaW5wdXQgaWYgdGhlIGN1c3RvbSB2YWx1ZVxuICAgICAqIG9wdGlvbiBpcyBub3Qgc2V0LlxuICAgICAqL1xuICAgIHByaXZhdGUgY2hlY2tBbmRTZXRJbnB1dFZhbHVlKCk6IHZvaWQge1xuICAgICAgICBpZiAoISF0aGlzLmlucHV0VmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nRWxlbWVudCA9IHRoaXMuZWxlbWVudHMuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChhOiBhbnkpID0+IHRoaXMuZ2V0TGFiZWwoYSkgPT09IHRoaXMuaW5wdXRWYWx1ZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKG1hdGNoaW5nRWxlbWVudC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZ2V0VmFsdWUobWF0Y2hpbmdFbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1hbnVhbGx5VXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dDdXN0b21WYWx1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld01vZGVsID0gdGhpcy5nZXRDdXN0b21WYWx1ZSh0aGlzLmlucHV0VmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMubWFudWFsbHlVcGRhdGVWYWx1ZShuZXdNb2RlbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tYW51YWxseVVwZGF0ZVZhbHVlKG51bGwpO1xuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSBudWxsO1xuICAgICAgICB0aGlzLnNlYXJjaFZhbHVlID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFN1Z2dlc3Rpb25zRGlzcGxheWVkKFxuICAgICAgICBoaWRlU3VnZ2VzdGlvbnM6IGJvb2xlYW4sXG4gICAgICAgIGRpc3BsYXllZEVsZW1lbnRzOiBhbnlbXVxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldERpc3BsYXllZEVsZW1lbnRzKGRpc3BsYXllZEVsZW1lbnRzKTtcbiAgICAgICAgdGhpcy5oaWRlU3VnZ2VzdGlvbnMgPSBoaWRlU3VnZ2VzdGlvbnM7XG4gICAgICAgIHRoaXMubm90aWZ5U2NyZWVuUmVhZGVyVXNlcnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERpc3BsYXllZEVsZW1lbnRzKGZpbHRlcmVkRWxlbWVudHM6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRJZCA9IG51bGw7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkRWxlbWVudHMgPSBmaWx0ZXJlZEVsZW1lbnRzO1xuXG4gICAgICAgIHRoaXMucmVzaXplRGlzcGxheVZpZXdQb3J0KGZpbHRlcmVkRWxlbWVudHMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzaXplRGlzcGxheVZpZXdQb3J0KGZpbHRlcmVkRWxlbWVudHM6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoISFmaWx0ZXJlZEVsZW1lbnRzKSB7XG4gICAgICAgICAgICBpZiAoZmlsdGVyZWRFbGVtZW50cy5sZW5ndGggPCB0aGlzLk5CX0lURU1TX1ZJU0lCTEUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLlZJRVdfUE9SVF9IRUlHSFQgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLklURU1fQ0FMQ1VMQVRFRF9IRUlHSFQgKiBmaWx0ZXJlZEVsZW1lbnRzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBpZiAoISF0aGlzLnZpcnR1YWxTY3JvbGxWaWV3cG9ydCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxWaWV3cG9ydC5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgTUFYX0hFSUdIVCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuTkJfSVRFTVNfVklTSUJMRSAqIHRoaXMuSVRFTV9DQUxDVUxBVEVEX0hFSUdIVDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5WSUVXX1BPUlRfSEVJR0hUIDwgTUFYX0hFSUdIVCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLlZJRVdfUE9SVF9IRUlHSFQgPSBNQVhfSEVJR0hUO1xuICAgICAgICAgICAgICAgICAgICBpZiAoISF0aGlzLnZpcnR1YWxTY3JvbGxWaWV3cG9ydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aXJ0dWFsU2Nyb2xsVmlld3BvcnQuY2hlY2tWaWV3cG9ydFNpemUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWRFbGVtZW50KCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnN1Z2dlc3Rpb25zTGlzdCkge1xuICAgICAgICAgICAgY29uc3Qgc3VnZ2VzdGlvbnMgPSB0aGlzLmdldFN1Z2dlc3Rpb25MaXN0KCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGluZGV4U3RyIGluIHN1Z2dlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgaWYgKHN1Z2dlc3Rpb25zLmhhc093blByb3BlcnR5KGluZGV4U3RyKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHBhcnNlSW50KGluZGV4U3RyLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNOYU4oaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gc3VnZ2VzdGlvbnNbaW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY2xhc3NOYW1lLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlNVR0dFU1RJT05fU0VMRUNURURfQ0xBU1NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5pbm5lclRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3ROZXh0RWxlbWVudChkb3duOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN1Z2dlc3Rpb25zRGlzcGxheWVkKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1Z2dlc3Rpb25zID0gdGhpcy5nZXRTdWdnZXN0aW9uTGlzdCgpO1xuICAgICAgICAgICAgbGV0IG5ld0l0ZW1TZWxlY3RlZCA9IG51bGw7XG4gICAgICAgICAgICBjb25zdCBzdGVwID0gZG93biA/IDEgOiAtMTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBpbmRleFN0ciBpbiBzdWdnZXN0aW9ucykge1xuICAgICAgICAgICAgICAgIGlmIChzdWdnZXN0aW9ucy5oYXNPd25Qcm9wZXJ0eShpbmRleFN0cikpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXJzZUludChpbmRleFN0ciwgMTApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKGluZGV4KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHN1Z2dlc3Rpb25zW2luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gaW5kZXggKyBzdGVwO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDdXJyZW50SXRlbVNlbGVjdGVkID0gaXRlbS5jbGFzc05hbWUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5TVUdHRVNUSU9OX1NFTEVDVEVEX0NMQVNTXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51bnNlbGVjdEl0ZW0oaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNDdXJyZW50SXRlbVNlbGVjdGVkICYmIG5leHRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV3SXRlbVNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRJbmRleCA8IHN1Z2dlc3Rpb25zLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc3VnZ2VzdGlvbnNbbmV4dEluZGV4XVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc3VnZ2VzdGlvbnNbc3VnZ2VzdGlvbnMubGVuZ3RoIC0gMV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSWYgbm8gaXRlbSB3YXMgc2VsZWN0ZWQgYmVmb3JlLCBzZWxlY3QgZmlyc3Qgb25lXG4gICAgICAgICAgICBpZiAoIW5ld0l0ZW1TZWxlY3RlZCAmJiBzdWdnZXN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oKG5ld0l0ZW1TZWxlY3RlZCA9IHN1Z2dlc3Rpb25zWzBdKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIE1hbmFnZSBnbG9iYWwgaXRlbSBzZWxlY3RlZCBpbmRleFxuICAgICAgICAgICAgICAgIGNvbnN0IE1BWF9JTkRFWCA9IHRoaXMuZGlzcGxheWVkRWxlbWVudHMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJdGVtR2xvYmFsSW5kZXggKz0gc3RlcDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4ID4gTUFYX0lOREVYKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEl0ZW1HbG9iYWxJbmRleCA9IE1BWF9JTkRFWDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEl0ZW1HbG9iYWxJbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNjcm9sbHMgZG93biBvciB1cCBpZiBuZXdJdGVtU2VsZWN0ZWQgaXMgbm90IHZpc2libGVcbiAgICAgICAgICAgIGNvbnN0IHN1Z2dlc3Rpb25zTmF0aXZlRWxlbWVudCA9IHRoaXMudmlydHVhbFNjcm9sbFZpZXdwb3J0XG4gICAgICAgICAgICAgICAgLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1Zpc2libGUoc3VnZ2VzdGlvbnNOYXRpdmVFbGVtZW50LCBuZXdJdGVtU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aXJ0dWFsU2Nyb2xsVmlld3BvcnQuc2Nyb2xsVG9JbmRleChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3VnZ2VzdGlvbkxpc3QoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgICAgIGNvbnN0IHN1Z2dlc3Rpb25zTmF0aXZlRWxlbWVudCA9IHRoaXMuc3VnZ2VzdGlvbnNMaXN0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIC8vIENvbnZlcnRzIHRoZSBzdWdnZXN0aW9ucyB0byBhbiBhcnJheSB0byB3b3JrIGNvbnNpc3RlbnRseSBhY3Jvc3MgYnJvd3NlcnMuXG4gICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChzdWdnZXN0aW9uc05hdGl2ZUVsZW1lbnQuY2hpbGRyZW4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdW5zZWxlY3RJdGVtKGl0ZW06IGFueSk6IHZvaWQge1xuICAgICAgICBpdGVtLmNsYXNzTmFtZSA9IGl0ZW0uY2xhc3NOYW1lLnJlcGxhY2UoXG4gICAgICAgICAgICBgICR7dGhpcy5TVUdHRVNUSU9OX1NFTEVDVEVEX0NMQVNTfWAsXG4gICAgICAgICAgICAnJ1xuICAgICAgICApO1xuICAgICAgICBpdGVtLmF0dHJpYnV0ZXNbJ2FyaWEtc2VsZWN0ZWQnXSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0SXRlbShpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpdGVtLmNsYXNzTmFtZS5pbmNsdWRlcyh0aGlzLlNVR0dFU1RJT05fU0VMRUNURURfQ0xBU1MpKSB7XG4gICAgICAgICAgICBpdGVtLmNsYXNzTmFtZSArPSBgICR7dGhpcy5TVUdHRVNUSU9OX1NFTEVDVEVEX0NMQVNTfWA7XG4gICAgICAgIH1cblxuICAgICAgICBpdGVtLmF0dHJpYnV0ZXNbJ2FyaWEtc2VsZWN0ZWQnXSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50SWQgPSBpdGVtLmlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWaXNpYmxlKHBhcmVudDogYW55LCBlbGVtZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZWxlbWVudE9mZnNldFRvcCA9XG4gICAgICAgICAgICBlbGVtZW50Lm9mZnNldFRvcCArXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxWaWV3cG9ydC5nZXRPZmZzZXRUb1JlbmRlcmVkQ29udGVudFN0YXJ0KCk7XG4gICAgICAgIC8vIGVsZW1lbnQgaXMgYmVsb3cgdmlzaWJsZSBhcmVhXG4gICAgICAgIGNvbnN0IGlzQmVsb3cgPVxuICAgICAgICAgICAgZWxlbWVudE9mZnNldFRvcCA8IHBhcmVudC5vZmZzZXRIZWlnaHQgKyBwYXJlbnQuc2Nyb2xsVG9wO1xuICAgICAgICAvLyBlbGVtZW50IGlzIGFib3ZlIHZpc2libGUgYXJlYVxuICAgICAgICBjb25zdCBpc0Fib3ZlID0gZWxlbWVudE9mZnNldFRvcCA+IHBhcmVudC5zY3JvbGxUb3A7XG4gICAgICAgIHJldHVybiBpc0JlbG93ICYmIGlzQWJvdmU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWdnZXN0aW9uc0Rpc3BsYXllZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuc3VnZ2VzdGlvbnNMaXN0ICYmXG4gICAgICAgICAgICB0aGlzLnN1Z2dlc3Rpb25zTGlzdC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpcnN0U3VnZ2VzdGlvbigpOiBzdHJpbmcge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnN1Z2dlc3Rpb25zTGlzdCAmJlxuICAgICAgICAgICAgdGhpcy5zdWdnZXN0aW9uc0xpc3QubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPT09IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdWdnZXN0aW9uc0xpc3QubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5pbm5lclRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBub3RpZnlTY3JlZW5SZWFkZXJVc2VycygpOiB2b2lkIHtcbiAgICAgICAgLy8gRm9yY2VzIE5WREEgdG8gcmUtcmVhZCB0aGUgY29udGVudCBvZiB0aGUgc2Mtb25seSBub3RpZmljYXRpb24uXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uTWVzc2FnZVVwZGF0ZWQgPSAhdGhpcy5ub3RpZmljYXRpb25NZXNzYWdlVXBkYXRlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1hdGNoaW5nVmFsdWUoZWxlbWVudHM6IGFueSwgZWxlbVRvQ29tcGFyZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgLy8gTG9vayBmb3IgYSBwb3RlbnRpYWwgbWF0Y2hpbmcgdmFsdWUgaW4gdGhlIHNldFxuICAgICAgICBjb25zdCBtYXRjaGluZ0VsZW1lbnQgPSBlbGVtZW50cy5maWx0ZXIoKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKGVsZW1lbnQpO1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICB2YWx1ZSAmJlxuICAgICAgICAgICAgICAgICh0aGlzLmFyZVZhbHVlc0VxdWFscyh2YWx1ZSwgZWxlbVRvQ29tcGFyZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUudG9TdHJpbmcoKSA9PT0gZWxlbVRvQ29tcGFyZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIE1hcCB3aXRoIHRoZSBsYWJlbC5cbiAgICAgICAgY29uc3QgbWF0Y2hpbmdWYWx1ZUxhYmVsID0gdGhpcy5nZXRMYWJlbChtYXRjaGluZ0VsZW1lbnRbMF0pO1xuXG4gICAgICAgIC8vIERvbid0IG92ZXJyaWRlIHRoZSB2YWx1ZSBpZiBjdXN0b20gdmFsdWVzIGFyZSBhbGxvd2VkIGFuZCB0aGVyZSdzIG5vIG1hdGNoLlxuICAgICAgICByZXR1cm4gdGhpcy5hbGxvd0N1c3RvbVZhbHVlXG4gICAgICAgICAgICA/IG1hdGNoaW5nVmFsdWVMYWJlbCB8fCB0aGlzLmdldE1vZGVsVmFsdWVEaXNwbGF5VmFsdWUoKVxuICAgICAgICAgICAgOiBtYXRjaGluZ1ZhbHVlTGFiZWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYXRjaFJlc3VsdDxUPihlbGVtZW50OiBUKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHNlYXJjaFZhbHVlID0gbm9ybWFsaXplU2VhcmNoKHRoaXMuc2VhcmNoVmFsdWUpO1xuICAgICAgICBjb25zdCBsYWJlbCA9IG5vcm1hbGl6ZVNlYXJjaCh0aGlzLmdldExhYmVsKGVsZW1lbnQpKTtcbiAgICAgICAgaWYgKCFsYWJlbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGxhYmVsLmluY2x1ZGVzKHNlYXJjaFZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hbnVhbGx5VXBkYXRlVmFsdWUobmV3VmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIW5ld1ZhbHVlIHx8XG4gICAgICAgICAgICAhdGhpcy5tb2RlbCB8fFxuICAgICAgICAgICAgIXRoaXMuYXJlVmFsdWVzRXF1YWxzKG5ld1ZhbHVlLCB0aGlzLm1vZGVsKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgaW1wb3J0YW50IHRvIGRvIG9uIHRvcCBvZiB0aGUgdXBkYXRlTmdNb2RlbCBhc1xuICAgICAgICAgICAgLy8gdXBkYXRlTmdNb2RlbCBjYW4gYmUgdHJpZ2dlcmVkIGZyb20gb3RoZXIgc291cmNlcy5cbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbChuZXdWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDdXN0b21WYWx1ZSh2YWx1ZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgaWYgKCF0aGlzLmN1c3RvbVZhbHVlTW9kZWxHZW5lcmF0b3IgfHwgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tVmFsdWVNb2RlbEdlbmVyYXRvcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNb2RlbFZhbHVlRGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5tb2RlbCA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgID8gdGhpcy5tb2RlbFxuICAgICAgICAgICAgOiB0aGlzLmdldExhYmVsKHRoaXMubW9kZWwpO1xuICAgIH1cbn1cbiIsIjwhLS1cbiAgICBBY2Nlc3NpYmxlIGF1dG9jb21wbGV0ZSB3aWRnZXQgZm9sbG93aW5nIHRoZSBsaXN0Ym94IGNvbWJvYm94IHBhdHRlcm4uXG4gICAgcmVmOiBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMS9leGFtcGxlcy9jb21ib2JveC9hcmlhMS4xcGF0dGVybi9saXN0Ym94LWNvbWJvLmh0bWxcbi0tPlxuPGRpdlxuICAgIGNsYXNzPVwiZm9ybS1ncm91cCBhdXRvY29tcGxldGUtZm9ybS1ncm91cFwiXG4gICAgW2NsYXNzLmhhcy1kYW5nZXJdPVwiaGFzRXJyb3JzKClcIlxuICAgIFtjbGFzcy52ZC1mb3JtLWdyb3VwLWRhbmdlcl09XCJoYXNFcnJvcnMoKVwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJzaG91bGREaXNwbGF5TGlzdGJveCgpXCJcbiAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cIidsaXN0Ym94J1wiXG4gICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnQ29udGFpbmVyJylcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuPlxuICAgIDxsYWJlbFxuICAgICAgICBbYXR0ci5mb3JdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICAqbmdJZj1cIiEhbGFiZWxcIlxuICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3NyLW9ubHknIDogbGFiZWxTdHlsZU1vZGlmaWVyXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnTGFiZWwnXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGFiZWxcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIiFyZXF1aXJlZCAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydHMgW2NvbXBvbmVudF09XCJ0aGlzXCI+PC9mb2Vobi12YWxpZGF0aW9uLWFsZXJ0cz5cblxuICAgIDxkaXYgKm5nSWY9XCIhZWxlbWVudHNcIj5DaGFyZ2VtZW50Li4uPC9kaXY+XG5cbiAgICA8c21hbGxcbiAgICAgICAgKm5nSWY9XCJoZWxwVGV4dFwiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpICsgJ0hlbHAnXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImhlbHBUZXh0XCJcbiAgICA+PC9zbWFsbD5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDxkaXYgY2xhc3M9XCJzci1vbmx5XCI+XG4gICAgICAgIFV0aWxpc2V6IGxlcyBmbMOoY2hlcyBoYXV0IGV0IGJhcyBwb3VyIG5hdmlndWVyIGRhbnMgbGEgbGlzdGUsIHB1aXMgbGFcbiAgICAgICAgdG91Y2hlIEVudHJlciBwb3VyIHPDqWxlY3Rpb25uZXIgdW5lIG9wdGlvbi5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gR2l2ZSBzY3JlZW4gcmVhZGVyIHVzZXJzIHRoZSB0b3RhbCBvZiByZXN1bHRzIHdoZW4gdGhlbiBpbnB1dCBjaGFuZ2VzLiAtLT5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic3Itb25seVwiXG4gICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgICAgICBhcmlhLWF0b21pYz1cInRydWVcIlxuICAgICAgICAqbmdJZj1cImRpc3BsYXllZEVsZW1lbnRzICYmIHNob3VsZERpc3BsYXlMaXN0Ym94KClcIlxuICAgID5cbiAgICAgICAgTm9tYnJlIGRlIHLDqXN1bHRhdHM6IHt7IGRpc3BsYXllZEVsZW1lbnRzLmxlbmd0aCB9fVxuICAgICAgICA8IS0tIFRyaWNrIHRvIGhhdmUgTlZEQSByZS1yZWFkaW5nIHRoaXMgcHJvcGVybHkgLS0+XG4gICAgICAgIDxzcGFuPnt7IG5vdGlmaWNhdGlvbk1lc3NhZ2VVcGRhdGVkID8gJywnIDogJywsJyB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxpbnB1dFxuICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJoYXNFcnJvcnMoKVwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGF1dG9jb21wbGV0ZVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgcm9sZT1cInRleHRib3hcIlxuICAgICAgICBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8fCBudWxsXCJcbiAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZ2V0RGVzY3JpYmVkQnkoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgfHwgbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnMoKSB8fCBudWxsXCJcbiAgICAgICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cIidvZmYnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cImdldEFjdGl2ZURlc2NlbmRhbnRJZCgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1vd25zXT1cIlxuICAgICAgICAgICAgc2hvdWxkRGlzcGxheUxpc3Rib3goKSA/IGJ1aWxkQ2hpbGRJZCgpICsgJ0xpc3Rib3gnIDogbnVsbFxuICAgICAgICBcIlxuICAgICAgICBbYXR0ci5saXN0XT1cImJ1aWxkQ2hpbGRJZCgpICsgJ2xpc3QnXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFZhbHVlXCJcbiAgICAgICAgKHBhc3RlKT1cIm9uUGFzdGUoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoKVwiXG4gICAgICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKClcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICNlbnRyeUNvbXBvbmVudFxuICAgIC8+XG5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAqbmdJZj1cImRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmNcIlxuICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS1jbGVhci1idXR0b24gYnRuXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIoKVwiXG4gICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoKSArICdDbGVhcidcIlxuICAgID5cbiAgICAgICAgPGZvZWhuLWljb24tdGltZXNcbiAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLWNsZWFyLWJ1dHRvbi1pY29uXCJcbiAgICAgICAgICAgIHRpdGxlPVwiUsOpaW5pdGlhbGlzZXIgbGUgY2hhbXBcIlxuICAgICAgICA+PC9mb2Vobi1pY29uLXRpbWVzPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZvcm0tZ3JvdXAgc3VnZ2VzdGlvbnMtbGlzdC1jb250YWluZXJcIlxuICAgICAgICAqbmdJZj1cInNob3VsZERpc3BsYXlMaXN0Ym94KClcIlxuICAgID5cbiAgICAgICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxuICAgICAgICAgICAgW2l0ZW1TaXplXT1cIklURU1fQ0FMQ1VMQVRFRF9IRUlHSFRcIlxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJWSUVXX1BPUlRfSEVJR0hUXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHVsXG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnTGlzdGJveCdcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJidWlsZENoaWxkSWQoKSArICdMYWJlbCdcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInN1Z2dlc3Rpb25zLWxpc3RcIlxuICAgICAgICAgICAgICAgICNzdWdnZXN0aW9uc0xpc3RcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1Z2dlc3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAqY2RrVmlydHVhbEZvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVsZW1lbnQgb2YgZGlzcGxheWVkRWxlbWVudHM7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCBhcyBpXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpICsgJ09wdGlvbicgKyBpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tTdWdnZXN0aW9uKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvbkxpc3RPcHRpb25Nb3VzZURvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChmb2N1cyk9XCJvbkxpc3RPcHRpb25Gb2N1cygpXCJcbiAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25MaXN0T3B0aW9uQmx1cigpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gRW5zdXJlcyB0aGF0IHNjcmVlbiByZWFkZXJzIGRvbid0IGNvbnNpZGVyIGFueSBzcGFjZXMgYXJvdW5kIHRoZSBlbXBoYXNpcyAtLT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySHRtbF09XCJnZXRMYWJlbFdpdGhFbXBoYXNpcyhlbGVtZW50KVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -66,10 +66,10 @@ function getConnectedBreadcrumb({ espaceSecuriseUrl = DEFAULT_VALUES.espaceSecur
|
|
|
66
66
|
// eslint-disable-next-line prefer-arrow/prefer-arrow-functions
|
|
67
67
|
function getBreadcrumb(sessionInfoData, configuration, currentItem) {
|
|
68
68
|
// Whether the user has a context we consider it as connected.
|
|
69
|
-
const
|
|
69
|
+
const isConnectedCyber = !!sessionInfoData && !!sessionInfoData.context;
|
|
70
70
|
const breadcrumb = new Breadcrumb();
|
|
71
71
|
// Depending on whether the user is connected, the content of the items change.
|
|
72
|
-
breadcrumb.breadcrumbItems =
|
|
72
|
+
breadcrumb.breadcrumbItems = isConnectedCyber
|
|
73
73
|
? getConnectedBreadcrumb(configuration, sessionInfoData)
|
|
74
74
|
: getNotConnectedBreadcrumb(configuration);
|
|
75
75
|
// Optionally set the current item.
|
|
@@ -179,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
179
179
|
providedIn: 'root'
|
|
180
180
|
}]
|
|
181
181
|
}], ctorParameters: function () { return [{ type: i1.SessionInfo }]; } });
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQ0gsVUFBVSxFQUdiLE1BQU0sY0FBYyxDQUFDOzs7QUFHdEIsTUFBTSxjQUFjLEdBQTRCO0lBQzVDLGlCQUFpQixFQUFFLGlCQUFpQjtJQUNwQyxpQkFBaUIsRUFBRSxxQkFBcUI7SUFDeEMsT0FBTyxFQUFFLG9CQUFvQjtJQUM3QixzQkFBc0IsRUFBRSxxQ0FBcUM7SUFDN0QsMEZBQTBGO0lBQzFGLGNBQWMsRUFBRSxJQUFJO0NBQ3ZCLENBQUM7QUFFRixtRkFBbUY7QUFDbkYsU0FBUyx5QkFBeUIsQ0FBQyxFQUMvQixPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFDaEMsc0JBQXNCLEdBQUcsY0FBYyxDQUFDLHNCQUFzQixFQUM5RCxjQUFjLEdBQUcsY0FBYyxDQUFDLGNBQWMsRUFDeEI7SUFDdEIsTUFBTSxXQUFXLEdBQW1CO1FBQ2hDLEdBQUcsRUFBRSxPQUFPO1FBQ1osVUFBVSxFQUFFLElBQUk7UUFDaEIsS0FBSyxFQUFFLE9BQU87S0FDakIsQ0FBQztJQUVGLG1GQUFtRjtJQUNuRixzRkFBc0Y7SUFDdEYsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUU7UUFDakIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ3hCO0lBRUQsT0FBTztRQUNILFdBQVc7UUFDWDtZ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N0IsSUFBSSxDQUFDLHNCQUFzQjtZQUMzQixFQUFFLENBQUMsSUFBSSxDQUFDO1NBQ1gsQ0FBQyxDQUFDLElBQUk7UUFDSCx1RUFBdUU7UUFDdkUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUNyQixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLFVBQXNCO1FBQ2hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksMENBQTBDLENBQUMsS0FBYztRQUN6RCxJQUFJLENBQUMsMkNBQTJDLEdBQUcsS0FBSyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLDBDQUEwQztRQUMxQyxPQUFPLElBQUksQ0FBQywyQ0FBMkMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG9CQUFvQjtRQUNoQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtDQUFrQztRQUM5QixPQUFPLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG9CQUFvQixDQUFDLFdBQTJCO1FBQzVDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGdCQUFnQixDQUFDLGFBQXNDO1FBQ25ELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7bUhBekZRLHNCQUFzQjt1SEFBdEIsc0JBQXNCLGNBRm5CLE1BQU07MkZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi9zZGstc2Vzc2lvbi1pbmZvL3Nlc3Npb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgQnJlYWRjcnVtYixcbiAgICBCcmVhZGNydW1iQ29uZmlndXJhdGlvbixcbiAgICBCcmVhZGNydW1iSXRlbVxufSBmcm9tICcuL2JyZWFkY3J1bWInO1xuaW1wb3J0IHsgU2Vzc2lvbkluZm9EYXRhIH0gZnJvbSAnLi4vc2RrLXNlc3Npb24taW5mby9zZXNzaW9uLWluZm8tZGF0YSc7XG5cbmNvbnN0IERFRkFVTFRfVkFMVUVTOiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbiA9IHtcbiAgICBlc3BhY2VTZWN1cmlzZVVybDogJy8xMDAwMDIvYWNjdWVpbCcsXG4gICAgYWxsUHJlc3RhdGlvbnNVcmw6ICcvMTAwMDAyL3ByZXN0YXRpb25zJyxcbiAgICB2ZENoVXJsOiAnaHR0cHM6Ly93d3cudmQuY2gvJyxcbiAgICBkZXNjcmlwdGlvblBhZ2VCYXNlVXJsOiAnaHR0cHM6Ly93d3cudmQuY2gvZ28udG8/cHJlc3RhdGlvbj0nLFxuICAgIC8vIEl0J3MgYmV0dGVyIHRvIG5vdCBkaXNwbGF5IHRoZSBicmVhZGNydW1iIGl0ZW0gaWYgdGhlIHByZXN0YXRpb24gZG9lc24ndCBnaXZlIGl0cyBjb2RlLlxuICAgIHByZXN0YXRpb25Db2RlOiBudWxsXG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWFycm93L3ByZWZlci1hcnJvdy1mdW5jdGlvbnMsanNkb2MvcmVxdWlyZS1qc2RvY1xuZnVuY3Rpb24gZ2V0Tm90Q29ubmVjdGVkQnJlYWRjcnVtYih7XG4gICAgdmRDaFVybCA9IERFRkFVTFRfVkFMVUVTLnZkQ2hVcmwsXG4gICAgZGVzY3JpcHRpb25QYWdlQmFzZVVybCA9IERFRkFVTFRfVkFMVUVTLmRlc2NyaXB0aW9uUGFnZUJhc2VVcmwsXG4gICAgcHJlc3RhdGlvbkNvZGUgPSBERUZBVUxUX1ZBTFVFUy5wcmVzdGF0aW9uQ29kZVxufTogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24pOiBCcmVhZGNydW1iSXRlbVtdIHtcbiAgICBjb25zdCByb290RWxlbWVudDogQnJlYWRjcnVtYkl0ZW0gPSB7XG4gICAgICAgIHVybDogdmRDaFVybCxcbiAgICAgICAgcm91dGVyTGluazogbnVsbCxcbiAgICAgICAgbGFiZWw6ICd2ZC5jaCdcbiAgICB9O1xuXG4gICAgLy8gRG8gbm90IGRpc3BsYXkgdGhlIHNlY29uZCBlbGVtZW50IGlmIHRoZSBwcmVzdGF0aW9uIGNvZGUgaXMgbm90IHRoZXJlIHNvIHdlIGhhdmVcbiAgICAvLyBhIGNoYW5jZSB0byByZWFsaXplIHRoYXQgc29tZXRoaW5nJ3MgbWlzc2luZyByYXRoZXIgdGhhbiBoYXZpbmcgYSBsaW5rIHRoYXQgZG9lc24ndFxuICAgIC8vIHBvaW50IHRvIHNvbWV0aGluZyBtZWFuaW5nZnVsLlxuICAgIGlmICghcHJlc3RhdGlvbkNvZGUpIHtcbiAgICAgICAgcmV0dXJuIFtyb290RWxlbWVudF07XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgcm9vdEVsZW1lbnQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIC8vIGUuZy4gaHR0cHM6Ly93d3cudmQuY2gvZ28udG8/cHJlc3RhdGlvbj0xMDEwMTZcbiAgICAgICAgICAgIHVybDogYCR7ZGVzY3JpcHRpb25QYWdlQmFzZVVybH0ke3ByZXN0YXRpb25Db2RlfWAsXG4gICAgICAgICAgICByb3V0ZXJMaW5rOiBudWxsLFxuICAgICAgICAgICAgbGFiZWw6ICdEZXNjcmlwdGlvbiBkZSBsYSBwcmVzdGF0aW9uJ1xuICAgICAgICB9XG4gICAgXTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1hcnJvdy9wcmVmZXItYXJyb3ctZnVuY3Rpb25zLGpzZG9jL3JlcXVpcmUtanNkb2NcbmZ1bmN0aW9uIGdldENvbm5lY3RlZEJyZWFkY3J1bWIoXG4gICAge1xuICAgICAgICBlc3BhY2VTZWN1cmlzZVVybCA9IERFRkFVTFRfVkFMVUVTLmVzcGFjZVNlY3VyaXNlVXJsLFxuICAgICAgICBhbGxQcmVzdGF0aW9uc1VybCA9IERFRkFVTFRfVkFMVUVTLmFsbFByZXN0YXRpb25zVXJsXG4gICAgfTogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgc2Vzc2lvbkluZm9EYXRhOiBTZXNzaW9uSW5mb0RhdGFcbik6IEJyZWFkY3J1bWJJdGVtW10ge1xuICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHVybDogZXNwYWNlU2VjdXJpc2VVcmwsXG4gICAgICAgICAgICByb3V0ZXJMaW5rOiBudWxsLFxuICAgICAgICAgICAgbGFiZWw6IHNlc3Npb25JbmZvRGF0YS5lc3BhY2VMYWJlbFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB1cmw6IGFsbFByZXN0YXRpb25zVXJsLFxuICAgICAgICAgICAgcm91dGVyTGluazogbnVsbCxcbiAgICAgICAgICAgIGxhYmVsOiAnQWNjw6lkZXIgYXV4IHByZXN0YXRpb25zJ1xuICAgICAgICB9XG4gICAgXTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGJyZWFkY3J1bWIgZGVwZW5kaW5nIG9uIHRoZSBzdGF0ZSBvZiB0aGUgdXNlci5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIE1vbiBlc3BhY2UgPiBBY2PDqWRlciBhdXggcHJlc3RhdGlvbnNcbiAqIHZkLmNoID4gRGVzY3JpcHRpb24gZGUgbGEgcHJlc3RhdGlvblxuICpcbiAqIEBwYXJhbSBzZXNzaW9uSW5mb0RhdGEgZGF0YSBpbmZvIG9uIHNlc3Npb25cbiAqIEBwYXJhbSBjb25maWd1cmF0aW9uIGFzIGJyZWFkY3J1bWIgY29uZmlnLlxuICogQHBhcmFtIGN1cnJlbnRJdGVtIGFzIGJyZWFkY3J1bWIgY3VycmVudCBpdGVtXG4gKiBAcmV0dXJucyBCcmVhZGNydW1iXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItYXJyb3cvcHJlZmVyLWFycm93LWZ1bmN0aW9uc1xuZnVuY3Rpb24gZ2V0QnJlYWRjcnVtYihcbiAgICBzZXNzaW9uSW5mb0RhdGE6IFNlc3Npb25JbmZvRGF0YSxcbiAgICBjb25maWd1cmF0aW9uOiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbixcbiAgICBjdXJyZW50SXRlbTogQnJlYWRjcnVtYkl0ZW1cbik6IEJyZWFkY3J1bWIge1xuICAgIC8vIFdoZXRoZXIgdGhlIHVzZXIgaGFzIGEgY29udGV4dCB3ZSBjb25zaWRlciBpdCBhcyBjb25uZWN0ZWQuXG4gICAgY29uc3QgaXNDb25uZWN0ZWQgPSAhIXNlc3Npb25JbmZvRGF0YSAmJiAhIXNlc3Npb25JbmZvRGF0YS5jb250ZXh0O1xuXG4gICAgY29uc3QgYnJlYWRjcnVtYiA9IG5ldyBCcmVhZGNydW1iKCk7XG5cbiAgICAvLyBEZXBlbmRpbmcgb24gd2hldGhlciB0aGUgdXNlciBpcyBjb25uZWN0ZWQsIHRoZSBjb250ZW50IG9mIHRoZSBpdGVtcyBjaGFuZ2UuXG4gICAgYnJlYWRjcnVtYi5icmVhZGNydW1iSXRlbXMgPSBpc0Nvbm5lY3RlZFxuICAgICAgICA/IGdldENvbm5lY3RlZEJyZWFkY3J1bWIoY29uZmlndXJhdGlvbiwgc2Vzc2lvbkluZm9EYXRhKVxuICAgICAgICA6IGdldE5vdENvbm5lY3RlZEJyZWFkY3J1bWIoY29uZmlndXJhdGlvbik7XG5cbiAgICAvLyBPcHRpb25hbGx5IHNldCB0aGUgY3VycmVudCBpdGVtLlxuICAgIGJyZWFkY3J1bWIuY3VycmVudCA9IGN1cnJlbnRJdGVtO1xuXG4gICAgcmV0dXJuIGJyZWFkY3J1bWI7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItYXJyb3cvcHJlZmVyLWFycm93LWZ1bmN0aW9ucyxqc2RvYy9yZXF1aXJlLWpzZG9jXG5mdW5jdGlvbiBtYXBCcmVhZGNydW1iKFtcbiAgICBvdmVycmlkZSxcbiAgICBjb25maWd1cmF0aW9uLFxuICAgIGN1cnJlbnRJdGVtLFxuICAgIHNlc3Npb25JbmZvRGF0YVxuXTogW1xuICAgIEJyZWFkY3J1bWIsXG4gICAgQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgQnJlYWRjcnVtYkl0ZW0sXG4gICAgU2Vzc2lvbkluZm9EYXRhXG5dKTogQnJlYWRjcnVtYiB7XG4gICAgLy8gVGFrZSB0aGUgb3ZlcnJpZGUgaWYgaXQgZXhpc3RzXG4gICAgaWYgKG92ZXJyaWRlKSB7XG4gICAgICAgIC8vIEFsdGhvdWdoIHRoZXJlJ3MgYW4gb3ZlcnJpZGUsIHdlIGRvIHdhbnQgdG8gYXNzaWduIHRoZSBjdXJyZW50IGl0ZW1cbiAgICAgICAgLy8gc28gZWFjaCBwYWdlIGRhbnMgc2V0IGl0cyBvd24gbmFtZSByYXRoZXIgdGhhbiBsZXR0aW5nIHRoZSBvdmVycmlkZVxuICAgICAgICAvLyBoYW5kbGUgdGhpcy5cbiAgICAgICAgaWYgKGN1cnJlbnRJdGVtKSB7XG4gICAgICAgICAgICBvdmVycmlkZS5jdXJyZW50ID0gY3VycmVudEl0ZW07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG92ZXJyaWRlO1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSBnZXQgYSBicmVhZGNydW1iIGJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9uXG4gICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgcmV0dXJuIGdldEJyZWFkY3J1bWIoc2Vzc2lvbkluZm9EYXRhLCBjb25maWd1cmF0aW9uLCBjdXJyZW50SXRlbSk7XG4gICAgfVxuXG4gICAgLy8gT25seSBvdXRwdXQgYSBicmVhZGNydW1iIG9mIHRoZXJlJ3MgYSBjb25maWd1cmF0aW9uIG9yIGFuIG92ZXJyaWRlXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkV2ZW50U2VydmljZSB7XG4gICAgcHJpdmF0ZSBfYnJlYWRjcnVtYk92ZXJyaWRlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCcmVhZGNydW1iPihudWxsKTtcbiAgICBwcml2YXRlIF9icmVhZGNydW1iQ29uZmlndXJhdGlvbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24+KFxuICAgICAgICBudWxsXG4gICAgKTtcbiAgICBwcml2YXRlIF9jdXJyZW50QnJlYWRjcnVtYkl0ZW0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFkY3J1bWJJdGVtPihudWxsKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9icmVhZGNydW1iT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxCcmVhZGNydW1iPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uZXZlckNvbm5lY3RlZEJyZWFkY3J1bWJPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+O1xuXG4gICAgcHJpdmF0ZSBfc2tpcExlYXZpbmdBbGVydEJlY2F1c2VEZW1hbmRJc1RyYW5zbWl0dGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlc3Npb25JbmZvOiBTZXNzaW9uSW5mbykge1xuICAgICAgICAvLyBXaGVuIHRoZSB1c2VyIG1pZ2h0IGJlIGNvbm5lY3RlZFxuICAgICAgICB0aGlzLl9icmVhZGNydW1iT2JzZXJ2YWJsZSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5fYnJlYWRjcnVtYk92ZXJyaWRlLFxuICAgICAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50QnJlYWRjcnVtYkl0ZW0sXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25JbmZvLmRhdGFcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIC8vIFB1dCB0b2dldGhlciB0aGUgYnJlYWRjcnVtYiwgb3IganVzdCB0YWtlIHRoZSBvdmVycmlkZSBpZiBpdCBleGlzdHMuXG4gICAgICAgICAgICBtYXAobWFwQnJlYWRjcnVtYilcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBJZiB0aGUgdXNlciBpcyBORVZFUiBjb25uZWN0ZWQgKGZvciBpbnN0YW5jZSBpbiBjeWJlcmxvZ2luKVxuICAgICAgICB0aGlzLl9uZXZlckNvbm5lY3RlZEJyZWFkY3J1bWJPYnNlcnZhYmxlID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLl9icmVhZGNydW1iT3ZlcnJpZGUsXG4gICAgICAgICAgICB0aGlzLl9icmVhZGNydW1iQ29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRCcmVhZGNydW1iSXRlbSxcbiAgICAgICAgICAgIG9mKG51bGwpXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAvLyBQdXQgdG9nZXRoZXIgdGhlIGJyZWFkY3J1bWIsIG9yIGp1c3QgdGFrZSB0aGUgb3ZlcnJpZGUgaWYgaXQgZXhpc3RzLlxuICAgICAgICAgICAgbWFwKG1hcEJyZWFkY3J1bWIpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBicmVhZGNydW1iLiBUaGlzIHZhbHVlIHdpbGwgb3ZlcnJpZGUgYW55IGNvbmZpZ3VyYXRpb24gaW5qZWN0ZWQgd2l0aFxuICAgICAqIGBzZXRDb25maWd1cmF0aW9uYC4gT25seSB1c2UgaWYgeW91IHdhbnQgdG8gaGFuZGxlIHRoZSBicmVhZGNydW1iIG1hbnVhbGx5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGJyZWFkY3J1bWIgYXMgQnJlYWRjcnVtYlxuICAgICAqL1xuICAgIHNldEJyZWFkY3J1bWIoYnJlYWRjcnVtYjogQnJlYWRjcnVtYik6IHZvaWQge1xuICAgICAgICB0aGlzLl9icmVhZGNydW1iT3ZlcnJpZGUubmV4dChicmVhZGNydW1iKTtcbiAgICB9XG5cbiAgICBzZXQgc2tpcExlYXZpbmdBbGVydEJlY2F1c2VEZW1hbmRJc1RyYW5zbWl0dGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3NraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBza2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9za2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJyZWFkY3J1bWIgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+XG4gICAgICovXG4gICAgYnJlYWRjcnVtYk9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxCcmVhZGNydW1iPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9icmVhZGNydW1iT2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYnJlYWRjcnVtYiB2YWx1ZSBpZiBuZXZlciBjb25uZWN0ZWQuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+XG4gICAgICovXG4gICAgbmV2ZXJDb25uZWN0ZWRCcmVhZGNydW1iT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25ldmVyQ29ubmVjdGVkQnJlYWRjcnVtYk9ic2VydmFibGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBjdXJyZW50IGl0ZW0uIFVzZWQgZm9yIGFjY2Vzc2liaWxpdHkgcHVycG9zZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY3VycmVudEl0ZW0gYXMgQnJlYWRjcnVtYkl0ZW1cbiAgICAgKi9cbiAgICBzZXRDdXJyZW50QnJlYWRjcnVtYihjdXJyZW50SXRlbTogQnJlYWRjcnVtYkl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3VycmVudEJyZWFkY3J1bWJJdGVtLm5leHQoY3VycmVudEl0ZW0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgY3VycmVudCBicmVhZGNydW1iIGNvbmZpZ3VyYXRpb24uXG4gICAgICpcbiAgICAgKiBTZXQgdG8gYG51bGxgIHRvIGRpc2FibGUgdGhlIGJyZWFkY3J1bWIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29uZmlndXJhdGlvbiBhcyBCcmVhZGNydW1iQ29uZmlndXJhdGlvblxuICAgICAqL1xuICAgIHNldENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbjogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24ubmV4dChjb25maWd1cmF0aW9uKTtcbiAgICB9XG59XG4iXX0=
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQ0gsVUFBVSxFQUdiLE1BQU0sY0FBYyxDQUFDOzs7QUFHdEIsTUFBTSxjQUFjLEdBQTRCO0lBQzVDLGlCQUFpQixFQUFFLGlCQUFpQjtJQUNwQyxpQkFBaUIsRUFBRSxxQkFBcUI7SUFDeEMsT0FBTyxFQUFFLG9CQUFvQjtJQUM3QixzQkFBc0IsRUFBRSxxQ0FBcUM7SUFDN0QsMEZBQTBGO0lBQzFGLGNBQWMsRUFBRSxJQUFJO0NBQ3ZCLENBQUM7QUFFRixtRkFBbUY7QUFDbkYsU0FBUyx5QkFBeUIsQ0FBQyxFQUMvQixPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFDaEMsc0JBQXNCLEdBQUcsY0FBYyxDQUFDLHNCQUFzQixFQUM5RCxjQUFjLEdBQUcsY0FBYyxDQUFDLGNBQWMsRUFDeEI7SUFDdEIsTUFBTSxXQUFXLEdBQW1CO1FBQ2hDLEdBQUcsRUFBRSxPQUFPO1FBQ1osVUFBVSxFQUFFLElBQUk7UUFDaEIsS0FBSyxFQUFFLE9BQU87S0FDakIsQ0FBQztJQUVGLG1GQUFtRjtJQUNuRixzRkFBc0Y7SUFDdEYsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUU7UUFDakIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ3hCO0lBRUQsT0FBTztRQUNILFdBQVc7UUFDWDtZ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O1lBQzdCLElBQUksQ0FBQyxzQkFBc0I7WUFDM0IsRUFBRSxDQUFDLElBQUksQ0FBQztTQUNYLENBQUMsQ0FBQyxJQUFJO1FBQ0gsdUVBQXVFO1FBQ3ZFLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FDckIsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxVQUFzQjtRQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLDBDQUEwQyxDQUFDLEtBQWM7UUFDekQsSUFBSSxDQUFDLDJDQUEyQyxHQUFHLEtBQUssQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSwwQ0FBMEM7UUFDMUMsT0FBTyxJQUFJLENBQUMsMkNBQTJDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxvQkFBb0I7UUFDaEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxrQ0FBa0M7UUFDOUIsT0FBTyxJQUFJLENBQUMsbUNBQW1DLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxvQkFBb0IsQ0FBQyxXQUEyQjtRQUM1QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxnQkFBZ0IsQ0FBQyxhQUFzQztRQUNuRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7O21IQXpGUSxzQkFBc0I7dUhBQXRCLHNCQUFzQixjQUZuQixNQUFNOzJGQUVULHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNlc3Npb25JbmZvIH0gZnJvbSAnLi4vc2RrLXNlc3Npb24taW5mby9zZXNzaW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQge1xuICAgIEJyZWFkY3J1bWIsXG4gICAgQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgQnJlYWRjcnVtYkl0ZW1cbn0gZnJvbSAnLi9icmVhZGNydW1iJztcbmltcG9ydCB7IFNlc3Npb25JbmZvRGF0YSB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLWRhdGEnO1xuXG5jb25zdCBERUZBVUxUX1ZBTFVFUzogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24gPSB7XG4gICAgZXNwYWNlU2VjdXJpc2VVcmw6ICcvMTAwMDAyL2FjY3VlaWwnLFxuICAgIGFsbFByZXN0YXRpb25zVXJsOiAnLzEwMDAwMi9wcmVzdGF0aW9ucycsXG4gICAgdmRDaFVybDogJ2h0dHBzOi8vd3d3LnZkLmNoLycsXG4gICAgZGVzY3JpcHRpb25QYWdlQmFzZVVybDogJ2h0dHBzOi8vd3d3LnZkLmNoL2dvLnRvP3ByZXN0YXRpb249JyxcbiAgICAvLyBJdCdzIGJldHRlciB0byBub3QgZGlzcGxheSB0aGUgYnJlYWRjcnVtYiBpdGVtIGlmIHRoZSBwcmVzdGF0aW9uIGRvZXNuJ3QgZ2l2ZSBpdHMgY29kZS5cbiAgICBwcmVzdGF0aW9uQ29kZTogbnVsbFxufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1hcnJvdy9wcmVmZXItYXJyb3ctZnVuY3Rpb25zLGpzZG9jL3JlcXVpcmUtanNkb2NcbmZ1bmN0aW9uIGdldE5vdENvbm5lY3RlZEJyZWFkY3J1bWIoe1xuICAgIHZkQ2hVcmwgPSBERUZBVUxUX1ZBTFVFUy52ZENoVXJsLFxuICAgIGRlc2NyaXB0aW9uUGFnZUJhc2VVcmwgPSBERUZBVUxUX1ZBTFVFUy5kZXNjcmlwdGlvblBhZ2VCYXNlVXJsLFxuICAgIHByZXN0YXRpb25Db2RlID0gREVGQVVMVF9WQUxVRVMucHJlc3RhdGlvbkNvZGVcbn06IEJyZWFkY3J1bWJDb25maWd1cmF0aW9uKTogQnJlYWRjcnVtYkl0ZW1bXSB7XG4gICAgY29uc3Qgcm9vdEVsZW1lbnQ6IEJyZWFkY3J1bWJJdGVtID0ge1xuICAgICAgICB1cmw6IHZkQ2hVcmwsXG4gICAgICAgIHJvdXRlckxpbms6IG51bGwsXG4gICAgICAgIGxhYmVsOiAndmQuY2gnXG4gICAgfTtcblxuICAgIC8vIERvIG5vdCBkaXNwbGF5IHRoZSBzZWNvbmQgZWxlbWVudCBpZiB0aGUgcHJlc3RhdGlvbiBjb2RlIGlzIG5vdCB0aGVyZSBzbyB3ZSBoYXZlXG4gICAgLy8gYSBjaGFuY2UgdG8gcmVhbGl6ZSB0aGF0IHNvbWV0aGluZydzIG1pc3NpbmcgcmF0aGVyIHRoYW4gaGF2aW5nIGEgbGluayB0aGF0IGRvZXNuJ3RcbiAgICAvLyBwb2ludCB0byBzb21ldGhpbmcgbWVhbmluZ2Z1bC5cbiAgICBpZiAoIXByZXN0YXRpb25Db2RlKSB7XG4gICAgICAgIHJldHVybiBbcm9vdEVsZW1lbnRdO1xuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICAgIHJvb3RFbGVtZW50LFxuICAgICAgICB7XG4gICAgICAgICAgICAvLyBlLmcuIGh0dHBzOi8vd3d3LnZkLmNoL2dvLnRvP3ByZXN0YXRpb249MTAxMDE2XG4gICAgICAgICAgICB1cmw6IGAke2Rlc2NyaXB0aW9uUGFnZUJhc2VVcmx9JHtwcmVzdGF0aW9uQ29kZX1gLFxuICAgICAgICAgICAgcm91dGVyTGluazogbnVsbCxcbiAgICAgICAgICAgIGxhYmVsOiAnRGVzY3JpcHRpb24gZGUgbGEgcHJlc3RhdGlvbidcbiAgICAgICAgfVxuICAgIF07XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItYXJyb3cvcHJlZmVyLWFycm93LWZ1bmN0aW9ucyxqc2RvYy9yZXF1aXJlLWpzZG9jXG5mdW5jdGlvbiBnZXRDb25uZWN0ZWRCcmVhZGNydW1iKFxuICAgIHtcbiAgICAgICAgZXNwYWNlU2VjdXJpc2VVcmwgPSBERUZBVUxUX1ZBTFVFUy5lc3BhY2VTZWN1cmlzZVVybCxcbiAgICAgICAgYWxsUHJlc3RhdGlvbnNVcmwgPSBERUZBVUxUX1ZBTFVFUy5hbGxQcmVzdGF0aW9uc1VybFxuICAgIH06IEJyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgIHNlc3Npb25JbmZvRGF0YTogU2Vzc2lvbkluZm9EYXRhXG4pOiBCcmVhZGNydW1iSXRlbVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgICB1cmw6IGVzcGFjZVNlY3VyaXNlVXJsLFxuICAgICAgICAgICAgcm91dGVyTGluazogbnVsbCxcbiAgICAgICAgICAgIGxhYmVsOiBzZXNzaW9uSW5mb0RhdGEuZXNwYWNlTGFiZWxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdXJsOiBhbGxQcmVzdGF0aW9uc1VybCxcbiAgICAgICAgICAgIHJvdXRlckxpbms6IG51bGwsXG4gICAgICAgICAgICBsYWJlbDogJ0FjY8OpZGVyIGF1eCBwcmVzdGF0aW9ucydcbiAgICAgICAgfVxuICAgIF07XG59XG5cbi8qKlxuICogR2V0IHRoZSBicmVhZGNydW1iIGRlcGVuZGluZyBvbiB0aGUgc3RhdGUgb2YgdGhlIHVzZXIuXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiBNb24gZXNwYWNlID4gQWNjw6lkZXIgYXV4IHByZXN0YXRpb25zXG4gKiB2ZC5jaCA+IERlc2NyaXB0aW9uIGRlIGxhIHByZXN0YXRpb25cbiAqXG4gKiBAcGFyYW0gc2Vzc2lvbkluZm9EYXRhIGRhdGEgaW5mbyBvbiBzZXNzaW9uXG4gKiBAcGFyYW0gY29uZmlndXJhdGlvbiBhcyBicmVhZGNydW1iIGNvbmZpZy5cbiAqIEBwYXJhbSBjdXJyZW50SXRlbSBhcyBicmVhZGNydW1iIGN1cnJlbnQgaXRlbVxuICogQHJldHVybnMgQnJlYWRjcnVtYlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWFycm93L3ByZWZlci1hcnJvdy1mdW5jdGlvbnNcbmZ1bmN0aW9uIGdldEJyZWFkY3J1bWIoXG4gICAgc2Vzc2lvbkluZm9EYXRhOiBTZXNzaW9uSW5mb0RhdGEsXG4gICAgY29uZmlndXJhdGlvbjogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgY3VycmVudEl0ZW06IEJyZWFkY3J1bWJJdGVtXG4pOiBCcmVhZGNydW1iIHtcbiAgICAvLyBXaGV0aGVyIHRoZSB1c2VyIGhhcyBhIGNvbnRleHQgd2UgY29uc2lkZXIgaXQgYXMgY29ubmVjdGVkLlxuICAgIGNvbnN0IGlzQ29ubmVjdGVkQ3liZXIgPSAhIXNlc3Npb25JbmZvRGF0YSAmJiAhIXNlc3Npb25JbmZvRGF0YS5jb250ZXh0O1xuXG4gICAgY29uc3QgYnJlYWRjcnVtYiA9IG5ldyBCcmVhZGNydW1iKCk7XG5cbiAgICAvLyBEZXBlbmRpbmcgb24gd2hldGhlciB0aGUgdXNlciBpcyBjb25uZWN0ZWQsIHRoZSBjb250ZW50IG9mIHRoZSBpdGVtcyBjaGFuZ2UuXG4gICAgYnJlYWRjcnVtYi5icmVhZGNydW1iSXRlbXMgPSBpc0Nvbm5lY3RlZEN5YmVyXG4gICAgICAgID8gZ2V0Q29ubmVjdGVkQnJlYWRjcnVtYihjb25maWd1cmF0aW9uLCBzZXNzaW9uSW5mb0RhdGEpXG4gICAgICAgIDogZ2V0Tm90Q29ubmVjdGVkQnJlYWRjcnVtYihjb25maWd1cmF0aW9uKTtcblxuICAgIC8vIE9wdGlvbmFsbHkgc2V0IHRoZSBjdXJyZW50IGl0ZW0uXG4gICAgYnJlYWRjcnVtYi5jdXJyZW50ID0gY3VycmVudEl0ZW07XG5cbiAgICByZXR1cm4gYnJlYWRjcnVtYjtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1hcnJvdy9wcmVmZXItYXJyb3ctZnVuY3Rpb25zLGpzZG9jL3JlcXVpcmUtanNkb2NcbmZ1bmN0aW9uIG1hcEJyZWFkY3J1bWIoW1xuICAgIG92ZXJyaWRlLFxuICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgY3VycmVudEl0ZW0sXG4gICAgc2Vzc2lvbkluZm9EYXRhXG5dOiBbXG4gICAgQnJlYWRjcnVtYixcbiAgICBCcmVhZGNydW1iQ29uZmlndXJhdGlvbixcbiAgICBCcmVhZGNydW1iSXRlbSxcbiAgICBTZXNzaW9uSW5mb0RhdGFcbl0pOiBCcmVhZGNydW1iIHtcbiAgICAvLyBUYWtlIHRoZSBvdmVycmlkZSBpZiBpdCBleGlzdHNcbiAgICBpZiAob3ZlcnJpZGUpIHtcbiAgICAgICAgLy8gQWx0aG91Z2ggdGhlcmUncyBhbiBvdmVycmlkZSwgd2UgZG8gd2FudCB0byBhc3NpZ24gdGhlIGN1cnJlbnQgaXRlbVxuICAgICAgICAvLyBzbyBlYWNoIHBhZ2UgZGFucyBzZXQgaXRzIG93biBuYW1lIHJhdGhlciB0aGFuIGxldHRpbmcgdGhlIG92ZXJyaWRlXG4gICAgICAgIC8vIGhhbmRsZSB0aGlzLlxuICAgICAgICBpZiAoY3VycmVudEl0ZW0pIHtcbiAgICAgICAgICAgIG92ZXJyaWRlLmN1cnJlbnQgPSBjdXJyZW50SXRlbTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlIGdldCBhIGJyZWFkY3J1bWIgYmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb25cbiAgICBpZiAoY29uZmlndXJhdGlvbikge1xuICAgICAgICByZXR1cm4gZ2V0QnJlYWRjcnVtYihzZXNzaW9uSW5mb0RhdGEsIGNvbmZpZ3VyYXRpb24sIGN1cnJlbnRJdGVtKTtcbiAgICB9XG5cbiAgICAvLyBPbmx5IG91dHB1dCBhIGJyZWFkY3J1bWIgb2YgdGhlcmUncyBhIGNvbmZpZ3VyYXRpb24gb3IgYW4gb3ZlcnJpZGVcbiAgICByZXR1cm4gbnVsbDtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iRXZlbnRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9icmVhZGNydW1iT3ZlcnJpZGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFkY3J1bWI+KG51bGwpO1xuICAgIHByaXZhdGUgX2JyZWFkY3J1bWJDb25maWd1cmF0aW9uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCcmVhZGNydW1iQ29uZmlndXJhdGlvbj4oXG4gICAgICAgIG51bGxcbiAgICApO1xuICAgIHByaXZhdGUgX2N1cnJlbnRCcmVhZGNydW1iSXRlbSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJlYWRjcnVtYkl0ZW0+KG51bGwpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2JyZWFkY3J1bWJPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX25ldmVyQ29ubmVjdGVkQnJlYWRjcnVtYk9ic2VydmFibGU6IE9ic2VydmFibGU8QnJlYWRjcnVtYj47XG5cbiAgICBwcml2YXRlIF9za2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2Vzc2lvbkluZm86IFNlc3Npb25JbmZvKSB7XG4gICAgICAgIC8vIFdoZW4gdGhlIHVzZXIgbWlnaHQgYmUgY29ubmVjdGVkXG4gICAgICAgIHRoaXMuX2JyZWFkY3J1bWJPYnNlcnZhYmxlID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLl9icmVhZGNydW1iT3ZlcnJpZGUsXG4gICAgICAgICAgICB0aGlzLl9icmVhZGNydW1iQ29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRCcmVhZGNydW1iSXRlbSxcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbkluZm8uZGF0YVxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgLy8gUHV0IHRvZ2V0aGVyIHRoZSBicmVhZGNydW1iLCBvciBqdXN0IHRha2UgdGhlIG92ZXJyaWRlIGlmIGl0IGV4aXN0cy5cbiAgICAgICAgICAgIG1hcChtYXBCcmVhZGNydW1iKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIGlzIE5FVkVSIGNvbm5lY3RlZCAoZm9yIGluc3RhbmNlIGluIGN5YmVybG9naW4pXG4gICAgICAgIHRoaXMuX25ldmVyQ29ubmVjdGVkQnJlYWRjcnVtYk9ic2VydmFibGUgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuX2JyZWFkY3J1bWJPdmVycmlkZSxcbiAgICAgICAgICAgIHRoaXMuX2JyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgICAgICAgICAgdGhpcy5fY3VycmVudEJyZWFkY3J1bWJJdGVtLFxuICAgICAgICAgICAgb2YobnVsbClcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIC8vIFB1dCB0b2dldGhlciB0aGUgYnJlYWRjcnVtYiwgb3IganVzdCB0YWtlIHRoZSBvdmVycmlkZSBpZiBpdCBleGlzdHMuXG4gICAgICAgICAgICBtYXAobWFwQnJlYWRjcnVtYilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGJyZWFkY3J1bWIuIFRoaXMgdmFsdWUgd2lsbCBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBpbmplY3RlZCB3aXRoXG4gICAgICogYHNldENvbmZpZ3VyYXRpb25gLiBPbmx5IHVzZSBpZiB5b3Ugd2FudCB0byBoYW5kbGUgdGhlIGJyZWFkY3J1bWIgbWFudWFsbHkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYnJlYWRjcnVtYiBhcyBCcmVhZGNydW1iXG4gICAgICovXG4gICAgc2V0QnJlYWRjcnVtYihicmVhZGNydW1iOiBCcmVhZGNydW1iKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2JyZWFkY3J1bWJPdmVycmlkZS5uZXh0KGJyZWFkY3J1bWIpO1xuICAgIH1cblxuICAgIHNldCBza2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2tpcExlYXZpbmdBbGVydEJlY2F1c2VEZW1hbmRJc1RyYW5zbWl0dGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHNraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYnJlYWRjcnVtYiB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8QnJlYWRjcnVtYj5cbiAgICAgKi9cbiAgICBicmVhZGNydW1iT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JyZWFkY3J1bWJPYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBicmVhZGNydW1iIHZhbHVlIGlmIG5ldmVyIGNvbm5lY3RlZC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8QnJlYWRjcnVtYj5cbiAgICAgKi9cbiAgICBuZXZlckNvbm5lY3RlZEJyZWFkY3J1bWJPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8QnJlYWRjcnVtYj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmV2ZXJDb25uZWN0ZWRCcmVhZGNydW1iT2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGN1cnJlbnQgaXRlbS4gVXNlZCBmb3IgYWNjZXNzaWJpbGl0eSBwdXJwb3Nlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjdXJyZW50SXRlbSBhcyBCcmVhZGNydW1iSXRlbVxuICAgICAqL1xuICAgIHNldEN1cnJlbnRCcmVhZGNydW1iKGN1cnJlbnRJdGVtOiBCcmVhZGNydW1iSXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50QnJlYWRjcnVtYkl0ZW0ubmV4dChjdXJyZW50SXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBjdXJyZW50IGJyZWFkY3J1bWIgY29uZmlndXJhdGlvbi5cbiAgICAgKlxuICAgICAqIFNldCB0byBgbnVsbGAgdG8gZGlzYWJsZSB0aGUgYnJlYWRjcnVtYi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb25maWd1cmF0aW9uIGFzIEJyZWFkY3J1bWJDb25maWd1cmF0aW9uXG4gICAgICovXG4gICAgc2V0Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uOiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9icmVhZGNydW1iQ29uZmlndXJhdGlvbi5uZXh0KGNvbmZpZ3VyYXRpb24pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -12,7 +12,7 @@ export class FoehnDecisionElectroniqueComponent extends FoehnInputComponent {
|
|
|
12
12
|
this.sessionInfo = sessionInfo;
|
|
13
13
|
this.name = 'acceptDecisionElectronique';
|
|
14
14
|
this.id = this.name;
|
|
15
|
-
this.
|
|
15
|
+
this.isConnectedCyber = this.sessionInfo.data.pipe(map(userInfo => !!userInfo && !!userInfo.context));
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
FoehnDecisionElectroniqueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnDecisionElectroniqueComponent, deps: [{ token: i1.SessionInfo }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -22,7 +22,7 @@ FoehnDecisionElectroniqueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersio
|
|
|
22
22
|
useExisting: forwardRef(() => FoehnDecisionElectroniqueComponent),
|
|
23
23
|
multi: true
|
|
24
24
|
}
|
|
25
|
-
], usesInheritance: true, ngImport: i0, template: "<section\n *ngIf=\"
|
|
25
|
+
], usesInheritance: true, ngImport: i0, template: "<section\n *ngIf=\"isConnectedCyber | async\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n class=\"mb-3 p-2 bg-light\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <h2 class=\"h5\">\n Autorisation de notification des d\u00E9cisions par voie \u00E9lectronique\n </h2>\n\n <p>\n Votre demande est sur le point d\u2019\u00EAtre envoy\u00E9e. Conform\u00E9ment \u00E0 l\u2019art. 44a\n LPA-VD, l\u2019autorit\u00E9 peut notifier ses d\u00E9cisions par voie \u00E9lectronique aux\n parties qui ont donn\u00E9 leur accord explicite \u00E0 cette communication.\n </p>\n\n <fieldset [attr.aria-describedby]=\"getDescribedBy()\">\n <legend class=\"vd-p\">\n <span>\n Acceptez-vous que l\u2019autorit\u00E9 comp\u00E9tente pour le traitement de\n votre demande vous notifie ses d\u00E9cisions par voie \u00E9lectronique ?\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <div class=\"d-flex\">\n <label class=\"form-check-label m-2\" [for]=\"buildChildId('True')\">\n <input\n type=\"radio\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [name]=\"buildChildName('True')\"\n [attr.name]=\"buildChildName('True')\"\n [value]=\"true\"\n [attr.id]=\"buildChildId('True')\"\n [attr.aria-invalid]=\"hasErrors() || null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n (change)=\"handleChange(true)\"\n #entryComponent\n />\n <span class=\"ml-1\">Oui</span>\n </label>\n\n <label class=\"form-check-label m-2\" [for]=\"buildChildId('False')\">\n <input\n type=\"radio\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [name]=\"buildChildName('False')\"\n [attr.name]=\"buildChildName('False')\"\n [value]=\"false\"\n [attr.id]=\"buildChildId('False')\"\n [attr.aria-invalid]=\"hasErrors() || null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n (change)=\"handleChange(false)\"\n />\n <span class=\"ml-1\">Non</span>\n </label>\n </div>\n </fieldset>\n\n <p>\n Si vous cliquez sur \u00AB Oui \u00BB, vous autorisez l\u2019autorit\u00E9 \u00E0 vous notifier\n ses d\u00E9cisions sur le portail s\u00E9curis\u00E9.\n <br />\n Si vous cliquez sur \u00AB Non \u00BB, vous refusez la notification de d\u00E9cisions\n sur le portail s\u00E9curis\u00E9.\n </p>\n</section>\n", components: [{ type: i2.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i3.AsyncPipe } });
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnDecisionElectroniqueComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
28
|
args: [{
|
|
@@ -37,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
37
37
|
]
|
|
38
38
|
}]
|
|
39
39
|
}], ctorParameters: function () { return [{ type: i1.SessionInfo }]; } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZGVjaXNpb24tZWxlY3Ryb25pcXVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1kZWNpc2lvbi1lbGVjdHJvbmlxdWUvZm9laG4tZGVjaXNpb24tZWxlY3Ryb25pcXVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1kZWNpc2lvbi1lbGVjdHJvbmlxdWUvZm9laG4tZGVjaXNpb24tZWxlY3Ryb25pcXVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7O0FBYTNFLE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSxtQkFBNEI7SUFHaEYsWUFBb0IsV0FBd0I7UUFDeEMsS0FBSyxFQUFFLENBQUM7UUFEUSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUV4QyxJQUFJLENBQUMsSUFBSSxHQUFHLDRCQUE0QixDQUFDO1FBQ3pDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUM5QyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQ3BELENBQUM7SUFDTixDQUFDOzsrSEFWUSxrQ0FBa0M7bUhBQWxDLGtDQUFrQyxzREFSaEM7UUFDUDtZQUNJLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQztZQUNqRSxLQUFLLEVBQUUsSUFBSTtTQUNkO0tBQ0osaURDZkwsMDdGQXVFQTsyRkR0RGEsa0NBQWtDO2tCQVg5QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFdBQVcsRUFBRSw4Q0FBOEM7b0JBQzNELFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQ0FBbUMsQ0FBQzs0QkFDakUsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNlc3Npb25JbmZvIH0gZnJvbSAnLi4vc2RrLXNlc3Npb24taW5mby9zZXNzaW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4taW5wdXQvZm9laG4taW5wdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1kZWNpc2lvbi1lbGVjdHJvbmlxdWUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1kZWNpc2lvbi1lbGVjdHJvbmlxdWUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGb2VobklucHV0Q29tcG9uZW50LFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9laG5EZWNpc2lvbkVsZWN0cm9uaXF1ZUNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobkRlY2lzaW9uRWxlY3Ryb25pcXVlQ29tcG9uZW50IGV4dGVuZHMgRm9laG5JbnB1dENvbXBvbmVudDxib29sZWFuPiB7XG4gICAgaXNDb25uZWN0ZWRDeWJlcjogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2Vzc2lvbkluZm86IFNlc3Npb25JbmZvKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubmFtZSA9ICdhY2NlcHREZWNpc2lvbkVsZWN0cm9uaXF1ZSc7XG4gICAgICAgIHRoaXMuaWQgPSB0aGlzLm5hbWU7XG4gICAgICAgIHRoaXMuaXNDb25uZWN0ZWRDeWJlciA9IHRoaXMuc2Vzc2lvbkluZm8uZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKHVzZXJJbmZvID0+ICEhdXNlckluZm8gJiYgISF1c2VySW5mby5jb250ZXh0KVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxzZWN0aW9uXG4gICAgKm5nSWY9XCJpc0Nvbm5lY3RlZEN5YmVyIHwgYXN5bmNcIlxuICAgIFtjbGFzcy52ZC1mb3JtLWdyb3VwLWRhbmdlcl09XCJoYXNFcnJvcnMoKVwiXG4gICAgY2xhc3M9XCJtYi0zIHAtMiBiZy1saWdodFwiXG4gICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnQ29udGFpbmVyJylcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuPlxuICAgIDxoMiBjbGFzcz1cImg1XCI+XG4gICAgICAgIEF1dG9yaXNhdGlvbiBkZSBub3RpZmljYXRpb24gZGVzIGTDqWNpc2lvbnMgcGFyIHZvaWUgw6lsZWN0cm9uaXF1ZVxuICAgIDwvaDI+XG5cbiAgICA8cD5cbiAgICAgICAgVm90cmUgZGVtYW5kZSBlc3Qgc3VyIGxlIHBvaW50IGTigJnDqnRyZSBlbnZvecOpZS4gQ29uZm9ybcOpbWVudCDDoCBs4oCZYXJ0LiA0NGFcbiAgICAgICAgTFBBLVZELCBs4oCZYXV0b3JpdMOpIHBldXQgbm90aWZpZXIgc2VzIGTDqWNpc2lvbnMgcGFyIHZvaWUgw6lsZWN0cm9uaXF1ZSBhdXhcbiAgICAgICAgcGFydGllcyBxdWkgb250IGRvbm7DqSBsZXVyIGFjY29yZCBleHBsaWNpdGUgw6AgY2V0dGUgY29tbXVuaWNhdGlvbi5cbiAgICA8L3A+XG5cbiAgICA8ZmllbGRzZXQgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJnZXREZXNjcmliZWRCeSgpXCI+XG4gICAgICAgIDxsZWdlbmQgY2xhc3M9XCJ2ZC1wXCI+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICBBY2NlcHRlei12b3VzIHF1ZSBs4oCZYXV0b3JpdMOpIGNvbXDDqXRlbnRlIHBvdXIgbGUgdHJhaXRlbWVudCBkZVxuICAgICAgICAgICAgICAgIHZvdHJlIGRlbWFuZGUgdm91cyBub3RpZmllIHNlcyBkw6ljaXNpb25zIHBhciB2b2llIMOpbGVjdHJvbmlxdWUgP1xuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xlZ2VuZD5cblxuICAgICAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydHMgW2NvbXBvbmVudF09XCJ0aGlzXCI+PC9mb2Vobi12YWxpZGF0aW9uLWFsZXJ0cz5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIG0tMlwiIFtmb3JdPVwiYnVpbGRDaGlsZElkKCdUcnVlJylcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwibW9kZWxcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVOZ01vZGVsKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJidWlsZENoaWxkTmFtZSgnVHJ1ZScpXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCJidWlsZENoaWxkTmFtZSgnVHJ1ZScpXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoJ1RydWUnKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnMoKSB8fCBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKHRydWUpXCJcbiAgICAgICAgICAgICAgICAgICAgI2VudHJ5Q29tcG9uZW50XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTFcIj5PdWk8L3NwYW4+XG4gICAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIG0tMlwiIFtmb3JdPVwiYnVpbGRDaGlsZElkKCdGYWxzZScpXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cIm1vZGVsXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlTmdNb2RlbCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiYnVpbGRDaGlsZE5hbWUoJ0ZhbHNlJylcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cImJ1aWxkQ2hpbGROYW1lKCdGYWxzZScpXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCdGYWxzZScpXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImhhc0Vycm9ycygpIHx8IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoZmFsc2UpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMVwiPk5vbjwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZmllbGRzZXQ+XG5cbiAgICA8cD5cbiAgICAgICAgU2kgdm91cyBjbGlxdWV6IHN1ciDCqyBPdWkgwrssIHZvdXMgYXV0b3Jpc2V6IGzigJlhdXRvcml0w6kgw6Agdm91cyBub3RpZmllclxuICAgICAgICBzZXMgZMOpY2lzaW9ucyBzdXIgbGUgcG9ydGFpbCBzw6ljdXJpc8OpLlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgU2kgdm91cyBjbGlxdWV6IHN1ciDCqyBOb24gwrssIHZvdXMgcmVmdXNleiBsYSBub3RpZmljYXRpb24gZGUgZMOpY2lzaW9uc1xuICAgICAgICBzdXIgbGUgcG9ydGFpbCBzw6ljdXJpc8OpLlxuICAgIDwvcD5cbjwvc2VjdGlvbj5cbiJdfQ==
|