@mtna/web-form-angular 1.0.6-SNAPSHOT.4 → 1.0.6-SNAPSHOT.6

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.
@@ -36,7 +36,7 @@ export class MtnaWfFormGroupComponent extends MtnaWfBaseGroupItem {
36
36
  }
37
37
  }
38
38
  MtnaWfFormGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
39
- MtnaWfFormGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfFormGroupComponent, selector: "mtna-wf-group", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"item && control\">\n <mtna-wf-item-header\n *ngIf=\"!!item.questionText || !!item.descriptiveText\"\n [descriptiveText]=\"item.descriptiveText\"\n [disabled]=\"control.disabled\"\n [questionText]=\"item.questionText\"\n [required]=\"item.required\"\n ></mtna-wf-item-header>\n <ng-template #fullLayout>\n <div\n class=\"item-group-container\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !item.questionText && !item.descriptiveText\"\n [formGroup]=\"control\"\n [ngClass]=\"item.layout\"\n >\n <mtna-wf-item\n *ngFor=\"let subItem of item.items; trackBy: _trackByInstanceId\"\n [class.row-item]=\"item.layout === 'ROW' && !fullWidth[subItem.itemId]\"\n [ngClass.lt-md]=\"'width-100'\"\n [isCompact]=\"isCompact\"\n [item]=\"subItem\"\n [control]=\"control.controls[subItem.instanceId]\"\n [parentIds]=\"parentIds\"\n [readonly]=\"readonly\"\n ></mtna-wf-item>\n </div>\n </ng-template>\n\n <!-- When readonly, && all child items should be displayed in a mat-list-->\n <mat-list *ngIf=\"readonly && inList; else fullLayout\" [ngClass]=\"item.layout\">\n <mtna-wf-item\n *ngFor=\"let subItem of item.items | mtnaWfItemsWithValue; let index = index; trackBy: _trackByInstanceId\"\n [class.row-item]=\"item.layout === 'ROW'\"\n [ngClass.lt-md]=\"'width-100'\"\n [item]=\"subItem\"\n [inList]=\"true\"\n [parentIds]=\"parentIds\"\n [readonly]=\"true\"\n ></mtna-wf-item>\n </mat-list>\n</ng-container>\n", styles: ["mtna-annotations-indicator+mtna-wf-item-injector+mtna-wf-group .item-group-container{padding-top:24px}mtna-wf-group .mtna-wf-group-header{margin-top:1rem}mtna-wf-group .mtna-wf-group-description{margin-bottom:1rem}mtna-wf-group mat-list mat-list-item [mat-line]{letter-spacing:.5px}mtna-wf-group mtna-wf-multiple-choice-item{display:block}mtna-wf-group .item-group-container>.mtna-wf-group{margin-top:1rem}mtna-wf-group .item-group-container>mtna-wf-item.mtna-wf-title~mtna-wf-item:not(.mtna-wf-title):not(.row-item){padding-left:16px}mtna-wf-group .item-group-container>mtna-wf-item.mtna-wf-title~mtna-wf-item:not(.mtna-wf-title):not(.row-item).width-100{width:calc(100% - 16px)}mtna-wf-group .item-group-container>mtna-wf-item:first-of-type{margin-top:0}mtna-wf-group .item-group-container.ROW>mtna-wf-item{margin-top:0}mtna-wf-group .item-group-container.ROW>*{display:block}mtna-wf-group .item-group-container .row-item{width:calc(50% - 16px);display:inline-block;margin:0 8px}mtna-wf-group .item-group-container .width-100{width:100%}mtna-wf-group .item-group-container .width-100.row-item{width:calc(100% - 16px)}mtna-wf-group mtna-wf-item-header+.item-group-container{padding:.35em .75em .625em}mtna-wf-group mtna-wf-item-header+.item-group-container>mtna-wf-item{margin-top:0}\n"], components: [{ type: i1.MtnaWfItemHeaderComponent, selector: "mtna-wf-item-header", inputs: ["descriptiveText", "disabled", "hideRequiredMarker", "invalid", "questionText", "required"] }, { type: i2.MtnaWfFormItemComponent, selector: "mtna-wf-item", inputs: ["color", "control", "header", "isCompact", "inList", "item", "parentIds", "readonly", "step"], outputs: ["focusedSection"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MtnaHighlightDirective, selector: "[mtnaHighlight]", inputs: ["mtnaHighlight", "mtnaHighlightColor"], exportAs: ["mtnaHighlight"] }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "mtnaWfItemsWithValue": i7.MtnaWfItemsWithValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
39
+ MtnaWfFormGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfFormGroupComponent, selector: "mtna-wf-group", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"item && control\">\n <mtna-wf-item-header\n *ngIf=\"!!item.questionText || !!item.descriptiveText\"\n [descriptiveText]=\"item.descriptiveText\"\n [disabled]=\"control.disabled\"\n [questionText]=\"item.questionText\"\n [required]=\"item.required\"\n ></mtna-wf-item-header>\n <ng-template #fullLayout>\n <div\n class=\"item-group-container\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !item.questionText && !item.descriptiveText\"\n [formGroup]=\"control\"\n [ngClass]=\"item.layout\"\n >\n <mtna-wf-item\n *ngFor=\"let subItem of item.items; trackBy: _trackByInstanceId\"\n [class.row-item]=\"item.layout === 'ROW' && !fullWidth[subItem.itemId]\"\n [ngClass.lt-md]=\"'width-100'\"\n [isCompact]=\"isCompact\"\n [item]=\"subItem\"\n [control]=\"control.controls[subItem.instanceId]\"\n [parentIds]=\"parentIds.concat(item.instanceId)\"\n [readonly]=\"readonly\"\n ></mtna-wf-item>\n </div>\n </ng-template>\n\n <!-- When readonly, && all child items should be displayed in a mat-list-->\n <mat-list *ngIf=\"readonly && inList; else fullLayout\" [ngClass]=\"item.layout\">\n <mtna-wf-item\n *ngFor=\"let subItem of item.items | mtnaWfItemsWithValue; let index = index; trackBy: _trackByInstanceId\"\n [class.row-item]=\"item.layout === 'ROW'\"\n [ngClass.lt-md]=\"'width-100'\"\n [item]=\"subItem\"\n [inList]=\"true\"\n [parentIds]=\"parentIds.concat(item.instanceId)\"\n [readonly]=\"true\"\n ></mtna-wf-item>\n </mat-list>\n</ng-container>\n", styles: ["mtna-annotations-indicator+mtna-wf-item-injector+mtna-wf-group .item-group-container{padding-top:24px}mtna-wf-group .mtna-wf-group-header{margin-top:1rem}mtna-wf-group .mtna-wf-group-description{margin-bottom:1rem}mtna-wf-group mat-list mat-list-item [mat-line]{letter-spacing:.5px}mtna-wf-group mtna-wf-multiple-choice-item{display:block}mtna-wf-group .item-group-container>.mtna-wf-group{margin-top:1rem}mtna-wf-group .item-group-container>mtna-wf-item.mtna-wf-title~mtna-wf-item:not(.mtna-wf-title):not(.row-item){padding-left:16px}mtna-wf-group .item-group-container>mtna-wf-item.mtna-wf-title~mtna-wf-item:not(.mtna-wf-title):not(.row-item).width-100{width:calc(100% - 16px)}mtna-wf-group .item-group-container>mtna-wf-item:first-of-type{margin-top:0}mtna-wf-group .item-group-container.ROW>mtna-wf-item{margin-top:0}mtna-wf-group .item-group-container.ROW>*{display:block}mtna-wf-group .item-group-container .row-item{width:calc(50% - 16px);display:inline-block;margin:0 8px}mtna-wf-group .item-group-container .width-100{width:100%}mtna-wf-group .item-group-container .width-100.row-item{width:calc(100% - 16px)}mtna-wf-group mtna-wf-item-header+.item-group-container{padding:.35em .75em .625em}mtna-wf-group mtna-wf-item-header+.item-group-container>mtna-wf-item{margin-top:0}\n"], components: [{ type: i1.MtnaWfItemHeaderComponent, selector: "mtna-wf-item-header", inputs: ["descriptiveText", "disabled", "hideRequiredMarker", "invalid", "questionText", "required"] }, { type: i2.MtnaWfFormItemComponent, selector: "mtna-wf-item", inputs: ["color", "control", "header", "isCompact", "inList", "item", "parentIds", "readonly", "step"], outputs: ["focusedSection"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MtnaHighlightDirective, selector: "[mtnaHighlight]", inputs: ["mtnaHighlight", "mtnaHighlightColor"], exportAs: ["mtnaHighlight"] }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "mtnaWfItemsWithValue": i7.MtnaWfItemsWithValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
40
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormGroupComponent, decorators: [{
41
41
  type: Component,
42
42
  args: [{
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
47
47
  encapsulation: ViewEncapsulation.None,
48
48
  }]
49
49
  }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ZWItZm9ybS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWl0ZW0taW1wbC9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pdGVtLWltcGwvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUNMLGdCQUFnQixFQUNoQix1QkFBdUIsRUFFdkIsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixZQUFZLEVBQ1osYUFBYSxHQUNkLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7OztBQVNqRixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsbUJBQXNDO0lBUHBGOztRQW9CRSxjQUFTLEdBQThCO1lBQ3JDLENBQUMsd0JBQXdCLENBQUMsRUFBRSxJQUFJO1lBQ2hDLENBQUMsdUJBQXVCLENBQUMsRUFBRSxJQUFJO1lBQy9CLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSTtZQUNwQixDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUk7U0FDdEIsQ0FBQztRQUVGOzs7V0FHRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQUM7S0FDaEI7SUF4QkMsSUFBYSxJQUFJO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFhLElBQUksQ0FBQyxJQUF1QjtRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixrRUFBa0U7UUFDbEUsc0VBQXNFO1FBQ3RFLGdGQUFnRjtRQUNoRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxvQkFBb0IsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLGdCQUFnQixDQUFDLENBQUM7SUFDakgsQ0FBQzs7c0hBWFUsd0JBQXdCOzBHQUF4Qix3QkFBd0IsNEVDcEJyQyxtakRBeUNBOzRGRHJCYSx3QkFBd0I7a0JBUHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFdBQVcsRUFBRSw2QkFBNkI7b0JBQzFDLFNBQVMsRUFBRSxDQUFDLDZCQUE2QixDQUFDO29CQUMxQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERST1BET1dOX0lURU1fSUQsXG4gIEZPUk1fSVRFTV9HUk9VUF9JTVBMX0lELFxuICBGb3JtSXRlbUdyb3VwSW1wbCxcbiAgUEFSQUdSQVBIX0FOU1dFUl9JVEVNX0lELFxuICBTSE9SVF9BTlNXRVJfSVRFTV9JRCxcbiAgVEVYVF9JVEVNX0lELFxuICBUSVRMRV9JVEVNX0lELFxufSBmcm9tICdAbXRuYS93ZWItZm9ybS10cyc7XG5cbmltcG9ydCB7IE10bmFXZkJhc2VHcm91cEl0ZW0gfSBmcm9tICcuLi8uLi9iYXNlLWl0ZW1zL2Jhc2UtZ3JvdXAtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdG5hLXdmLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBNdG5hV2ZGb3JtR3JvdXBDb21wb25lbnQgZXh0ZW5kcyBNdG5hV2ZCYXNlR3JvdXBJdGVtPEZvcm1JdGVtR3JvdXBJbXBsPiB7XG4gIG92ZXJyaWRlIGdldCBpdGVtKCk6IEZvcm1JdGVtR3JvdXBJbXBsIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbTtcbiAgfVxuICBvdmVycmlkZSBzZXQgaXRlbShpdGVtOiBGb3JtSXRlbUdyb3VwSW1wbCkge1xuICAgIHRoaXMuX2l0ZW0gPSBpdGVtO1xuXG4gICAgLy8gQSBsaXN0IGl0ZW0gY2FuIG9ubHkgZGlzcGxheSBhIGhlYWRpbmcgbGluZSAmIGEgc21hbGwgdGV4dCBsaW5lXG4gICAgLy8gQ29tcGF0aWJsZSBpdGVtcyBzaG91bGQgYmUgaXRlbXMgd2l0aCBzaG9ydCBsYWJlbHMvaGVhZGVycyAmIHZhbHVlc1xuICAgIC8vIEl0ZW1zIHdpdGggbXVsdGlwbGUgb3B0aW9ucywgb3IgcG90ZW50aWFsIG5lc3RlZCBpdGVtcyBzaG91bGQgbm90IGJlIGluY2x1ZGVkXG4gICAgdGhpcy5pbkxpc3QgPSB0aGlzLml0ZW0uaXRlbXMuZXZlcnkoKGkpID0+IGkuaXRlbUlkID09PSBTSE9SVF9BTlNXRVJfSVRFTV9JRCB8fCBpLml0ZW1JZCA9PT0gRFJPUERPV05fSVRFTV9JRCk7XG4gIH1cblxuICBmdWxsV2lkdGg6IHsgW2lkOiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gICAgW1BBUkFHUkFQSF9BTlNXRVJfSVRFTV9JRF06IHRydWUsXG4gICAgW0ZPUk1fSVRFTV9HUk9VUF9JTVBMX0lEXTogdHJ1ZSxcbiAgICBbVEVYVF9JVEVNX0lEXTogdHJ1ZSxcbiAgICBbVElUTEVfSVRFTV9JRF06IHRydWUsXG4gIH07XG5cbiAgLyoqXG4gICAqIElmIGZvcm0gaXMgcmVhZG9ubHkgJiBhbGwgY2hpbGQgaXRlbXMgYXJlIG9uZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGVzIGJlbG93LFxuICAgKiB3ZSB3YW50IHRvIGRpc3BsYXkgdGhpcyBncm91cCdzIGNoaWxkIGl0ZW1zIGluIGEgbWF0LWxpc3RcbiAgICovXG4gIGluTGlzdCA9IGZhbHNlO1xufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0gJiYgY29udHJvbFwiPlxuICA8bXRuYS13Zi1pdGVtLWhlYWRlclxuICAgICpuZ0lmPVwiISFpdGVtLnF1ZXN0aW9uVGV4dCB8fCAhIWl0ZW0uZGVzY3JpcHRpdmVUZXh0XCJcbiAgICBbZGVzY3JpcHRpdmVUZXh0XT1cIml0ZW0uZGVzY3JpcHRpdmVUZXh0XCJcbiAgICBbZGlzYWJsZWRdPVwiY29udHJvbC5kaXNhYmxlZFwiXG4gICAgW3F1ZXN0aW9uVGV4dF09XCJpdGVtLnF1ZXN0aW9uVGV4dFwiXG4gICAgW3JlcXVpcmVkXT1cIml0ZW0ucmVxdWlyZWRcIlxuICA+PC9tdG5hLXdmLWl0ZW0taGVhZGVyPlxuICA8bmctdGVtcGxhdGUgI2Z1bGxMYXlvdXQ+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJpdGVtLWdyb3VwLWNvbnRhaW5lclwiXG4gICAgICBbbXRuYUhpZ2hsaWdodF09XCJpbmRpY2F0b3JTdGF0dXMgPT09ICdBQ1RJVkUnICYmICFpdGVtLnF1ZXN0aW9uVGV4dCAmJiAhaXRlbS5kZXNjcmlwdGl2ZVRleHRcIlxuICAgICAgW2Zvcm1Hcm91cF09XCJjb250cm9sXCJcbiAgICAgIFtuZ0NsYXNzXT1cIml0ZW0ubGF5b3V0XCJcbiAgICA+XG4gICAgICA8bXRuYS13Zi1pdGVtXG4gICAgICAgICpuZ0Zvcj1cImxldCBzdWJJdGVtIG9mIGl0ZW0uaXRlbXM7IHRyYWNrQnk6IF90cmFja0J5SW5zdGFuY2VJZFwiXG4gICAgICAgIFtjbGFzcy5yb3ctaXRlbV09XCJpdGVtLmxheW91dCA9PT0gJ1JPVycgJiYgIWZ1bGxXaWR0aFtzdWJJdGVtLml0ZW1JZF1cIlxuICAgICAgICBbbmdDbGFzcy5sdC1tZF09XCInd2lkdGgtMTAwJ1wiXG4gICAgICAgIFtpc0NvbXBhY3RdPVwiaXNDb21wYWN0XCJcbiAgICAgICAgW2l0ZW1dPVwic3ViSXRlbVwiXG4gICAgICAgIFtjb250cm9sXT1cImNvbnRyb2wuY29udHJvbHNbc3ViSXRlbS5pbnN0YW5jZUlkXVwiXG4gICAgICAgIFtwYXJlbnRJZHNdPVwicGFyZW50SWRzXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgID48L210bmEtd2YtaXRlbT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8IS0tIFdoZW4gcmVhZG9ubHksICYmIGFsbCBjaGlsZCBpdGVtcyBzaG91bGQgYmUgZGlzcGxheWVkIGluIGEgbWF0LWxpc3QtLT5cbiAgPG1hdC1saXN0ICpuZ0lmPVwicmVhZG9ubHkgJiYgaW5MaXN0OyBlbHNlIGZ1bGxMYXlvdXRcIiBbbmdDbGFzc109XCJpdGVtLmxheW91dFwiPlxuICAgIDxtdG5hLXdmLWl0ZW1cbiAgICAgICpuZ0Zvcj1cImxldCBzdWJJdGVtIG9mIGl0ZW0uaXRlbXMgfCBtdG5hV2ZJdGVtc1dpdGhWYWx1ZTsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IF90cmFja0J5SW5zdGFuY2VJZFwiXG4gICAgICBbY2xhc3Mucm93LWl0ZW1dPVwiaXRlbS5sYXlvdXQgPT09ICdST1cnXCJcbiAgICAgIFtuZ0NsYXNzLmx0LW1kXT1cIid3aWR0aC0xMDAnXCJcbiAgICAgIFtpdGVtXT1cInN1Ykl0ZW1cIlxuICAgICAgW2luTGlzdF09XCJ0cnVlXCJcbiAgICAgIFtwYXJlbnRJZHNdPVwicGFyZW50SWRzXCJcbiAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICA+PC9tdG5hLXdmLWl0ZW0+XG4gIDwvbWF0LWxpc3Q+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ZWItZm9ybS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWl0ZW0taW1wbC9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pdGVtLWltcGwvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUNMLGdCQUFnQixFQUNoQix1QkFBdUIsRUFFdkIsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixZQUFZLEVBQ1osYUFBYSxHQUNkLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7OztBQVNqRixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsbUJBQXNDO0lBUHBGOztRQW9CRSxjQUFTLEdBQThCO1lBQ3JDLENBQUMsd0JBQXdCLENBQUMsRUFBRSxJQUFJO1lBQ2hDLENBQUMsdUJBQXVCLENBQUMsRUFBRSxJQUFJO1lBQy9CLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSTtZQUNwQixDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUk7U0FDdEIsQ0FBQztRQUVGOzs7V0FHRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQUM7S0FDaEI7SUF4QkMsSUFBYSxJQUFJO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFhLElBQUksQ0FBQyxJQUF1QjtRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixrRUFBa0U7UUFDbEUsc0VBQXNFO1FBQ3RFLGdGQUFnRjtRQUNoRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxvQkFBb0IsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLGdCQUFnQixDQUFDLENBQUM7SUFDakgsQ0FBQzs7c0hBWFUsd0JBQXdCOzBHQUF4Qix3QkFBd0IsNEVDcEJyQyxtbURBeUNBOzRGRHJCYSx3QkFBd0I7a0JBUHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFdBQVcsRUFBRSw2QkFBNkI7b0JBQzFDLFNBQVMsRUFBRSxDQUFDLDZCQUE2QixDQUFDO29CQUMxQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERST1BET1dOX0lURU1fSUQsXG4gIEZPUk1fSVRFTV9HUk9VUF9JTVBMX0lELFxuICBGb3JtSXRlbUdyb3VwSW1wbCxcbiAgUEFSQUdSQVBIX0FOU1dFUl9JVEVNX0lELFxuICBTSE9SVF9BTlNXRVJfSVRFTV9JRCxcbiAgVEVYVF9JVEVNX0lELFxuICBUSVRMRV9JVEVNX0lELFxufSBmcm9tICdAbXRuYS93ZWItZm9ybS10cyc7XG5cbmltcG9ydCB7IE10bmFXZkJhc2VHcm91cEl0ZW0gfSBmcm9tICcuLi8uLi9iYXNlLWl0ZW1zL2Jhc2UtZ3JvdXAtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdG5hLXdmLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBNdG5hV2ZGb3JtR3JvdXBDb21wb25lbnQgZXh0ZW5kcyBNdG5hV2ZCYXNlR3JvdXBJdGVtPEZvcm1JdGVtR3JvdXBJbXBsPiB7XG4gIG92ZXJyaWRlIGdldCBpdGVtKCk6IEZvcm1JdGVtR3JvdXBJbXBsIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbTtcbiAgfVxuICBvdmVycmlkZSBzZXQgaXRlbShpdGVtOiBGb3JtSXRlbUdyb3VwSW1wbCkge1xuICAgIHRoaXMuX2l0ZW0gPSBpdGVtO1xuXG4gICAgLy8gQSBsaXN0IGl0ZW0gY2FuIG9ubHkgZGlzcGxheSBhIGhlYWRpbmcgbGluZSAmIGEgc21hbGwgdGV4dCBsaW5lXG4gICAgLy8gQ29tcGF0aWJsZSBpdGVtcyBzaG91bGQgYmUgaXRlbXMgd2l0aCBzaG9ydCBsYWJlbHMvaGVhZGVycyAmIHZhbHVlc1xuICAgIC8vIEl0ZW1zIHdpdGggbXVsdGlwbGUgb3B0aW9ucywgb3IgcG90ZW50aWFsIG5lc3RlZCBpdGVtcyBzaG91bGQgbm90IGJlIGluY2x1ZGVkXG4gICAgdGhpcy5pbkxpc3QgPSB0aGlzLml0ZW0uaXRlbXMuZXZlcnkoKGkpID0+IGkuaXRlbUlkID09PSBTSE9SVF9BTlNXRVJfSVRFTV9JRCB8fCBpLml0ZW1JZCA9PT0gRFJPUERPV05fSVRFTV9JRCk7XG4gIH1cblxuICBmdWxsV2lkdGg6IHsgW2lkOiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gICAgW1BBUkFHUkFQSF9BTlNXRVJfSVRFTV9JRF06IHRydWUsXG4gICAgW0ZPUk1fSVRFTV9HUk9VUF9JTVBMX0lEXTogdHJ1ZSxcbiAgICBbVEVYVF9JVEVNX0lEXTogdHJ1ZSxcbiAgICBbVElUTEVfSVRFTV9JRF06IHRydWUsXG4gIH07XG5cbiAgLyoqXG4gICAqIElmIGZvcm0gaXMgcmVhZG9ubHkgJiBhbGwgY2hpbGQgaXRlbXMgYXJlIG9uZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGVzIGJlbG93LFxuICAgKiB3ZSB3YW50IHRvIGRpc3BsYXkgdGhpcyBncm91cCdzIGNoaWxkIGl0ZW1zIGluIGEgbWF0LWxpc3RcbiAgICovXG4gIGluTGlzdCA9IGZhbHNlO1xufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0gJiYgY29udHJvbFwiPlxuICA8bXRuYS13Zi1pdGVtLWhlYWRlclxuICAgICpuZ0lmPVwiISFpdGVtLnF1ZXN0aW9uVGV4dCB8fCAhIWl0ZW0uZGVzY3JpcHRpdmVUZXh0XCJcbiAgICBbZGVzY3JpcHRpdmVUZXh0XT1cIml0ZW0uZGVzY3JpcHRpdmVUZXh0XCJcbiAgICBbZGlzYWJsZWRdPVwiY29udHJvbC5kaXNhYmxlZFwiXG4gICAgW3F1ZXN0aW9uVGV4dF09XCJpdGVtLnF1ZXN0aW9uVGV4dFwiXG4gICAgW3JlcXVpcmVkXT1cIml0ZW0ucmVxdWlyZWRcIlxuICA+PC9tdG5hLXdmLWl0ZW0taGVhZGVyPlxuICA8bmctdGVtcGxhdGUgI2Z1bGxMYXlvdXQ+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJpdGVtLWdyb3VwLWNvbnRhaW5lclwiXG4gICAgICBbbXRuYUhpZ2hsaWdodF09XCJpbmRpY2F0b3JTdGF0dXMgPT09ICdBQ1RJVkUnICYmICFpdGVtLnF1ZXN0aW9uVGV4dCAmJiAhaXRlbS5kZXNjcmlwdGl2ZVRleHRcIlxuICAgICAgW2Zvcm1Hcm91cF09XCJjb250cm9sXCJcbiAgICAgIFtuZ0NsYXNzXT1cIml0ZW0ubGF5b3V0XCJcbiAgICA+XG4gICAgICA8bXRuYS13Zi1pdGVtXG4gICAgICAgICpuZ0Zvcj1cImxldCBzdWJJdGVtIG9mIGl0ZW0uaXRlbXM7IHRyYWNrQnk6IF90cmFja0J5SW5zdGFuY2VJZFwiXG4gICAgICAgIFtjbGFzcy5yb3ctaXRlbV09XCJpdGVtLmxheW91dCA9PT0gJ1JPVycgJiYgIWZ1bGxXaWR0aFtzdWJJdGVtLml0ZW1JZF1cIlxuICAgICAgICBbbmdDbGFzcy5sdC1tZF09XCInd2lkdGgtMTAwJ1wiXG4gICAgICAgIFtpc0NvbXBhY3RdPVwiaXNDb21wYWN0XCJcbiAgICAgICAgW2l0ZW1dPVwic3ViSXRlbVwiXG4gICAgICAgIFtjb250cm9sXT1cImNvbnRyb2wuY29udHJvbHNbc3ViSXRlbS5pbnN0YW5jZUlkXVwiXG4gICAgICAgIFtwYXJlbnRJZHNdPVwicGFyZW50SWRzLmNvbmNhdChpdGVtLmluc3RhbmNlSWQpXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgID48L210bmEtd2YtaXRlbT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8IS0tIFdoZW4gcmVhZG9ubHksICYmIGFsbCBjaGlsZCBpdGVtcyBzaG91bGQgYmUgZGlzcGxheWVkIGluIGEgbWF0LWxpc3QtLT5cbiAgPG1hdC1saXN0ICpuZ0lmPVwicmVhZG9ubHkgJiYgaW5MaXN0OyBlbHNlIGZ1bGxMYXlvdXRcIiBbbmdDbGFzc109XCJpdGVtLmxheW91dFwiPlxuICAgIDxtdG5hLXdmLWl0ZW1cbiAgICAgICpuZ0Zvcj1cImxldCBzdWJJdGVtIG9mIGl0ZW0uaXRlbXMgfCBtdG5hV2ZJdGVtc1dpdGhWYWx1ZTsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IF90cmFja0J5SW5zdGFuY2VJZFwiXG4gICAgICBbY2xhc3Mucm93LWl0ZW1dPVwiaXRlbS5sYXlvdXQgPT09ICdST1cnXCJcbiAgICAgIFtuZ0NsYXNzLmx0LW1kXT1cIid3aWR0aC0xMDAnXCJcbiAgICAgIFtpdGVtXT1cInN1Ykl0ZW1cIlxuICAgICAgW2luTGlzdF09XCJ0cnVlXCJcbiAgICAgIFtwYXJlbnRJZHNdPVwicGFyZW50SWRzLmNvbmNhdChpdGVtLmluc3RhbmNlSWQpXCJcbiAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICA+PC9tdG5hLXdmLWl0ZW0+XG4gIDwvbWF0LWxpc3Q+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -10,7 +10,7 @@ import * as i6 from "../../../pipes/get-object-type.pipe";
10
10
  export class MtnaWfFormSectionComponent extends MtnaWfBaseSectionItem {
11
11
  }
12
12
  MtnaWfFormSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
13
- MtnaWfFormSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfFormSectionComponent, selector: "mtna-wf-section", usesInheritance: true, ngImport: i0, template: "<mtna-wf-step-card\n [step]=\"step\"\n [subtitle]=\"item.descriptiveText\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE'\"\n (focused)=\"focused.emit($event)\"\n>\n <div cardContent>\n <ng-container *ngFor=\"let subItem of item.items; trackBy: _trackByInstanceId\">\n <mat-divider\n *ngIf=\"(subItem.itemId | mtnaWfGetObjectType) === 'formitemgroupimpl' && item.items.indexOf(subItem) !== 0\"\n class=\"section-item-divider\"\n [inset]=\"true\"\n ></mat-divider>\n\n <mtna-wf-item\n [isCompact]=\"isCompact\"\n [item]=\"subItem\"\n [readonly]=\"readonly\"\n [parentIds]=\"parentIds\"\n [control]=\"!!control && !!control.controls ? control.controls[subItem.instanceId] : undefined\"\n (focusedSection)=\"focused.emit($event)\"\n ></mtna-wf-item>\n </ng-container>\n </div>\n</mtna-wf-step-card>\n", styles: ["mtna-wf-section{display:block}mtna-wf-section mat-divider.mat-divider-horizontal.mat-divider-inset.section-item-divider{margin-top:8px;margin-bottom:8px}\n"], components: [{ type: i1.MtnaWfStepCardComponent, selector: "mtna-wf-step-card", inputs: ["color", "step", "subtitle"], outputs: ["focused"] }, { type: i2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: i3.MtnaWfFormItemComponent, selector: "mtna-wf-item", inputs: ["color", "control", "header", "isCompact", "inList", "item", "parentIds", "readonly", "step"], outputs: ["focusedSection"] }], directives: [{ type: i4.MtnaHighlightDirective, selector: "[mtnaHighlight]", inputs: ["mtnaHighlight", "mtnaHighlightColor"], exportAs: ["mtnaHighlight"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "mtnaWfGetObjectType": i6.MtnaWfGetObjectTypePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
13
+ MtnaWfFormSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfFormSectionComponent, selector: "mtna-wf-section", usesInheritance: true, ngImport: i0, template: "<mtna-wf-step-card\n [step]=\"step\"\n [subtitle]=\"item.descriptiveText\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE'\"\n (focused)=\"focused.emit($event)\"\n>\n <div cardContent>\n <ng-container *ngFor=\"let subItem of item.items; trackBy: _trackByInstanceId\">\n <mat-divider\n *ngIf=\"(subItem.itemId | mtnaWfGetObjectType) === 'formitemgroupimpl' && item.items.indexOf(subItem) !== 0\"\n class=\"section-item-divider\"\n [inset]=\"true\"\n ></mat-divider>\n\n <mtna-wf-item\n [isCompact]=\"isCompact\"\n [item]=\"subItem\"\n [readonly]=\"readonly\"\n [parentIds]=\"parentIds.concat(item.instanceId)\"\n [control]=\"!!control && !!control.controls ? control.controls[subItem.instanceId] : undefined\"\n (focusedSection)=\"focused.emit($event)\"\n ></mtna-wf-item>\n </ng-container>\n </div>\n</mtna-wf-step-card>\n", styles: ["mtna-wf-section{display:block}mtna-wf-section mat-divider.mat-divider-horizontal.mat-divider-inset.section-item-divider{margin-top:8px;margin-bottom:8px}\n"], components: [{ type: i1.MtnaWfStepCardComponent, selector: "mtna-wf-step-card", inputs: ["color", "step", "subtitle"], outputs: ["focused"] }, { type: i2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: i3.MtnaWfFormItemComponent, selector: "mtna-wf-item", inputs: ["color", "control", "header", "isCompact", "inList", "item", "parentIds", "readonly", "step"], outputs: ["focusedSection"] }], directives: [{ type: i4.MtnaHighlightDirective, selector: "[mtnaHighlight]", inputs: ["mtnaHighlight", "mtnaHighlightColor"], exportAs: ["mtnaHighlight"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "mtnaWfGetObjectType": i6.MtnaWfGetObjectTypePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormSectionComponent, decorators: [{
15
15
  type: Component,
16
16
  args: [{
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
21
21
  encapsulation: ViewEncapsulation.None,
22
22
  }]
23
23
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dlYi1mb3JtLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0taXRlbS1pbXBsL2Zvcm0tc2VjdGlvbi9mb3JtLXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pdGVtLWltcGwvZm9ybS1zZWN0aW9uL2Zvcm0tc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7OztBQVNyRixNQUFNLE9BQU8sMEJBQTJCLFNBQVEscUJBQThCOzt3SEFBakUsMEJBQTBCOzRHQUExQiwwQkFBMEIsOEVDWnZDLGc0QkF5QkE7NEZEYmEsMEJBQTBCO2tCQVB0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSwrQkFBK0I7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDO29CQUM1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tICdAbXRuYS93ZWItZm9ybS10cyc7XG5cbmltcG9ydCB7IE10bmFXZkJhc2VTZWN0aW9uSXRlbSB9IGZyb20gJy4uLy4uL2Jhc2UtaXRlbXMvYmFzZS1zZWN0aW9uLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXRuYS13Zi1zZWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tc2VjdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTXRuYVdmRm9ybVNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBNdG5hV2ZCYXNlU2VjdGlvbkl0ZW08U2VjdGlvbj4ge31cbiIsIjxtdG5hLXdmLXN0ZXAtY2FyZFxuICBbc3RlcF09XCJzdGVwXCJcbiAgW3N1YnRpdGxlXT1cIml0ZW0uZGVzY3JpcHRpdmVUZXh0XCJcbiAgW210bmFIaWdobGlnaHRdPVwiaW5kaWNhdG9yU3RhdHVzID09PSAnQUNUSVZFJ1wiXG4gIChmb2N1c2VkKT1cImZvY3VzZWQuZW1pdCgkZXZlbnQpXCJcbj5cbiAgPGRpdiBjYXJkQ29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdWJJdGVtIG9mIGl0ZW0uaXRlbXM7IHRyYWNrQnk6IF90cmFja0J5SW5zdGFuY2VJZFwiPlxuICAgICAgPG1hdC1kaXZpZGVyXG4gICAgICAgICpuZ0lmPVwiKHN1Ykl0ZW0uaXRlbUlkIHwgbXRuYVdmR2V0T2JqZWN0VHlwZSkgPT09ICdmb3JtaXRlbWdyb3VwaW1wbCcgJiYgaXRlbS5pdGVtcy5pbmRleE9mKHN1Ykl0ZW0pICE9PSAwXCJcbiAgICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW0tZGl2aWRlclwiXG4gICAgICAgIFtpbnNldF09XCJ0cnVlXCJcbiAgICAgID48L21hdC1kaXZpZGVyPlxuXG4gICAgICA8bXRuYS13Zi1pdGVtXG4gICAgICAgIFtpc0NvbXBhY3RdPVwiaXNDb21wYWN0XCJcbiAgICAgICAgW2l0ZW1dPVwic3ViSXRlbVwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFtwYXJlbnRJZHNdPVwicGFyZW50SWRzXCJcbiAgICAgICAgW2NvbnRyb2xdPVwiISFjb250cm9sICYmICEhY29udHJvbC5jb250cm9scyA/IGNvbnRyb2wuY29udHJvbHNbc3ViSXRlbS5pbnN0YW5jZUlkXSA6IHVuZGVmaW5lZFwiXG4gICAgICAgIChmb2N1c2VkU2VjdGlvbik9XCJmb2N1c2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9tdG5hLXdmLWl0ZW0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9tdG5hLXdmLXN0ZXAtY2FyZD5cbiJdfQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dlYi1mb3JtLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0taXRlbS1pbXBsL2Zvcm0tc2VjdGlvbi9mb3JtLXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pdGVtLWltcGwvZm9ybS1zZWN0aW9uL2Zvcm0tc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7OztBQVNyRixNQUFNLE9BQU8sMEJBQTJCLFNBQVEscUJBQThCOzt3SEFBakUsMEJBQTBCOzRHQUExQiwwQkFBMEIsOEVDWnZDLHc1QkF5QkE7NEZEYmEsMEJBQTBCO2tCQVB0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSwrQkFBK0I7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDO29CQUM1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tICdAbXRuYS93ZWItZm9ybS10cyc7XG5cbmltcG9ydCB7IE10bmFXZkJhc2VTZWN0aW9uSXRlbSB9IGZyb20gJy4uLy4uL2Jhc2UtaXRlbXMvYmFzZS1zZWN0aW9uLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXRuYS13Zi1zZWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tc2VjdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTXRuYVdmRm9ybVNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBNdG5hV2ZCYXNlU2VjdGlvbkl0ZW08U2VjdGlvbj4ge31cbiIsIjxtdG5hLXdmLXN0ZXAtY2FyZFxuICBbc3RlcF09XCJzdGVwXCJcbiAgW3N1YnRpdGxlXT1cIml0ZW0uZGVzY3JpcHRpdmVUZXh0XCJcbiAgW210bmFIaWdobGlnaHRdPVwiaW5kaWNhdG9yU3RhdHVzID09PSAnQUNUSVZFJ1wiXG4gIChmb2N1c2VkKT1cImZvY3VzZWQuZW1pdCgkZXZlbnQpXCJcbj5cbiAgPGRpdiBjYXJkQ29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdWJJdGVtIG9mIGl0ZW0uaXRlbXM7IHRyYWNrQnk6IF90cmFja0J5SW5zdGFuY2VJZFwiPlxuICAgICAgPG1hdC1kaXZpZGVyXG4gICAgICAgICpuZ0lmPVwiKHN1Ykl0ZW0uaXRlbUlkIHwgbXRuYVdmR2V0T2JqZWN0VHlwZSkgPT09ICdmb3JtaXRlbWdyb3VwaW1wbCcgJiYgaXRlbS5pdGVtcy5pbmRleE9mKHN1Ykl0ZW0pICE9PSAwXCJcbiAgICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW0tZGl2aWRlclwiXG4gICAgICAgIFtpbnNldF09XCJ0cnVlXCJcbiAgICAgID48L21hdC1kaXZpZGVyPlxuXG4gICAgICA8bXRuYS13Zi1pdGVtXG4gICAgICAgIFtpc0NvbXBhY3RdPVwiaXNDb21wYWN0XCJcbiAgICAgICAgW2l0ZW1dPVwic3ViSXRlbVwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFtwYXJlbnRJZHNdPVwicGFyZW50SWRzLmNvbmNhdChpdGVtLmluc3RhbmNlSWQpXCJcbiAgICAgICAgW2NvbnRyb2xdPVwiISFjb250cm9sICYmICEhY29udHJvbC5jb250cm9scyA/IGNvbnRyb2wuY29udHJvbHNbc3ViSXRlbS5pbnN0YW5jZUlkXSA6IHVuZGVmaW5lZFwiXG4gICAgICAgIChmb2N1c2VkU2VjdGlvbik9XCJmb2N1c2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9tdG5hLXdmLWl0ZW0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9tdG5hLXdmLXN0ZXAtY2FyZD5cbiJdfQ==
@@ -22,11 +22,11 @@ export class MtnaWfRepeatableItemContainerComponent extends MtnaWfBaseParentValu
22
22
  this._addText = $localize `ADD`;
23
23
  }
24
24
  addItem() {
25
- this.manager.changeMtnaFormItem(new MtnaWfFormItemChange(this.item.repeatableTemplateId, this.parentIds, 'ADD'));
25
+ this.manager.changeMtnaFormItem(new MtnaWfFormItemChange(this.item.repeatableTemplateId, this.item.repeatableTemplateId, this.parentIds, 'ADD'));
26
26
  }
27
27
  removeItem(item) {
28
28
  const conditionChanges = this.manager.generateConditionChangeArray(item, 'REMOVE');
29
- this.manager.changeMtnaFormItem(new MtnaWfFormItemChange(item.instanceId, this.parentIds, 'REMOVE', conditionChanges));
29
+ this.manager.changeMtnaFormItem(new MtnaWfFormItemChange(item.instanceId, item.templateId, this.parentIds, 'REMOVE', conditionChanges));
30
30
  }
31
31
  }
32
32
  MtnaWfRepeatableItemContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfRepeatableItemContainerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.MtnaWfManagerService }], target: i0.ɵɵFactoryTarget.Component });
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
56
56
  encapsulation: ViewEncapsulation.None,
57
57
  }]
58
58
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.MtnaWfManagerService }]; } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0YWJsZS1pdGVtLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ZWItZm9ybS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWl0ZW0taW1wbC9yZXBlYXRhYmxlLWl0ZW0tY29udGFpbmVyL3JlcGVhdGFibGUtaXRlbS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pdGVtLWltcGwvcmVwZWF0YWJsZS1pdGVtLWNvbnRhaW5lci9yZXBlYXRhYmxlLWl0ZW0tY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFZLG9CQUFvQixFQUFrQixNQUFNLG1CQUFtQixDQUFDO0FBR25GLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOzs7Ozs7Ozs7Ozs7O0FBaUI5RixNQUFNLE9BQU8sc0NBQXVDLFNBQVEseUJBQW9EO0lBRzlHLFlBQVksR0FBc0IsRUFBVSxPQUE2QjtRQUN2RSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFEK0IsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFGekUsYUFBUSxHQUFHLFNBQVMsQ0FBQSxLQUFLLENBQUM7SUFJMUIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFjO1FBQ3ZCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQ3pILENBQUM7O29JQWRVLHNDQUFzQzt3SEFBdEMsc0NBQXNDLGdHQ3hCbkQsc2xEQXVDQSx1cUVEMUJjO1FBQ1YsT0FBTyxDQUFDLDBCQUEwQixFQUFFO1lBQ2xDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVELEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDaEYsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDaEQsQ0FBQztLQUNIOzRGQUlVLHNDQUFzQztrQkFmbEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUNBQW1DO29CQUM3QyxXQUFXLEVBQUUsNENBQTRDO29CQUN6RCxTQUFTLEVBQUUsQ0FBQyw0Q0FBNEMsQ0FBQztvQkFDekQsVUFBVSxFQUFFO3dCQUNWLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTs0QkFDbEMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQzVELEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7NEJBQ2hGLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDbEcsVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzt5QkFDaEQsQ0FBQztxQkFDSDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENPTVBMRVhfU1RBTkRBUkQgfSBmcm9tICdAbXRuYS9jb3JlLWFuZ3VsYXInO1xuaW1wb3J0IHsgRm9ybUl0ZW0sIE10bmFXZkZvcm1JdGVtQ2hhbmdlLCBSZXBlYXRhYmxlSXRlbSB9IGZyb20gJ0BtdG5hL3dlYi1mb3JtLXRzJztcblxuaW1wb3J0IHsgTXRuYVdmTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBNdG5hV2ZCYXNlUGFyZW50VmFsdWVJdGVtIH0gZnJvbSAnLi4vLi4vYmFzZS1pdGVtcy9iYXNlLXBhcmVudC12YWx1ZS1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ210bmEtd2YtcmVwZWF0YWJsZS1pdGVtLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBlYXRhYmxlLWl0ZW0tY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVwZWF0YWJsZS1pdGVtLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcigncmVwZWF0SXRlbUV4cGFuZENvbGxhcHNlJywgW1xuICAgICAgc3RhdGUoJ2luJywgc3R5bGUoeyBoZWlnaHQ6ICcqJywgbWFyZ2luOiAnKicsIG9wYWNpdHk6IDEgfSkpLFxuICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7IGhlaWdodDogMCwgbWFyZ2luOiAwLCBvcGFjaXR5OiAwLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbYW5pbWF0ZShDT01QTEVYX1NUQU5EQVJELCBzdHlsZSh7IGhlaWdodDogJyonLCBtYXJnaW46ICcqJywgb3BhY2l0eTogMSB9KSldKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIGFuaW1hdGUoQ09NUExFWF9TVEFOREFSRCkpLFxuICAgIF0pLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTXRuYVdmUmVwZWF0YWJsZUl0ZW1Db250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBNdG5hV2ZCYXNlUGFyZW50VmFsdWVJdGVtPFJlcGVhdGFibGVJdGVtLCBGb3JtR3JvdXA+IHtcbiAgX2FkZFRleHQgPSAkbG9jYWxpemVgQUREYDtcblxuICBjb25zdHJ1Y3RvcihjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIG1hbmFnZXI6IE10bmFXZk1hbmFnZXJTZXJ2aWNlKSB7XG4gICAgc3VwZXIoY2RyKTtcbiAgfVxuXG4gIGFkZEl0ZW0oKSB7XG4gICAgdGhpcy5tYW5hZ2VyLmNoYW5nZU10bmFGb3JtSXRlbShuZXcgTXRuYVdmRm9ybUl0ZW1DaGFuZ2UodGhpcy5pdGVtLnJlcGVhdGFibGVUZW1wbGF0ZUlkLCB0aGlzLnBhcmVudElkcywgJ0FERCcpKTtcbiAgfVxuXG4gIHJlbW92ZUl0ZW0oaXRlbTogRm9ybUl0ZW0pIHtcbiAgICBjb25zdCBjb25kaXRpb25DaGFuZ2VzID0gdGhpcy5tYW5hZ2VyLmdlbmVyYXRlQ29uZGl0aW9uQ2hhbmdlQXJyYXkoaXRlbSwgJ1JFTU9WRScpO1xuICAgIHRoaXMubWFuYWdlci5jaGFuZ2VNdG5hRm9ybUl0ZW0obmV3IE10bmFXZkZvcm1JdGVtQ2hhbmdlKGl0ZW0uaW5zdGFuY2VJZCwgdGhpcy5wYXJlbnRJZHMsICdSRU1PVkUnLCBjb25kaXRpb25DaGFuZ2VzKSk7XG4gIH1cbn1cbiIsIjxtdG5hLXdmLWl0ZW0taGVhZGVyXG4gICpuZ0lmPVwiISFpdGVtLnF1ZXN0aW9uVGV4dCB8fCAhIWl0ZW0uZGVzY3JpcHRpdmVUZXh0XCJcbiAgW2Rlc2NyaXB0aXZlVGV4dF09XCJpdGVtLmRlc2NyaXB0aXZlVGV4dFwiXG4gIFtkaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZCB8fCBmYWxzZVwiXG4gIFtxdWVzdGlvblRleHRdPVwiaXRlbS5xdWVzdGlvblRleHRcIlxuICBbcmVxdWlyZWRdPVwiaXRlbS5yZXF1aXJlZFwiXG4+PC9tdG5hLXdmLWl0ZW0taGVhZGVyPlxuPHNlY3Rpb24gW210bmFIaWdobGlnaHRdPVwiaW5kaWNhdG9yU3RhdHVzID09PSAnQUNUSVZFJyAmJiAhaXRlbS5xdWVzdGlvblRleHQgJiYgIWl0ZW0uZGVzY3JpcHRpdmVUZXh0XCI+XG4gIDxtYXQtY2FyZCAqbmdJZj1cIml0ZW0uaXRlbXMubGVuZ3RoID4gMFwiPlxuICAgIDxtdG5hLXdmLXJlcGVhdGFibGUtaXRlbVxuICAgICAgQHJlcGVhdEl0ZW1FeHBhbmRDb2xsYXBzZVxuICAgICAgKm5nRm9yPVwibGV0IHN1Yml0ZW0gb2YgaXRlbS5pdGVtczsgbGV0IGZpcnN0ID0gZmlyc3Q7IHRyYWNrQnk6ICdpbnN0YW5jZUlkJyB8IG10bmFUcmFja0J5UHJvcGVydHlcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWJpdGVtIHwgY29lcmNlRm9ybUl0ZW0gYXMgY29lcmNlZFN1Ykl0ZW1cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiIXJlYWRvbmx5ICYmIGl0ZW0uaXRlbXMubGVuZ3RoID4gaXRlbS5taW5PY2N1cnJlbmNlc1wiXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJpdGVtLXJlbW92ZS1idXR0b25cIlxuICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUl0ZW0oY29lcmNlZFN1Ykl0ZW0pXCJcbiAgICAgICAgICBtYXRUb29sdGlwPVwiUmVtb3ZlIEl0ZW1cIlxuICAgICAgICAgIGkxOG4tbWF0VG9vbHRpcFxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uPnJlbW92ZV9jaXJjbGU8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG10bmEtd2YtaXRlbVxuICAgICAgICAgIFtpc0NvbXBhY3RdPVwiaXNDb21wYWN0XCJcbiAgICAgICAgICBbaXRlbV09XCJjb2VyY2VkU3ViSXRlbVwiXG4gICAgICAgICAgW2NvbnRyb2xdPVwiISFjb250cm9sICYmICEhY29udHJvbC5jb250cm9scyA/IGNvbnRyb2wuY29udHJvbHNbY29lcmNlZFN1Ykl0ZW0uaW5zdGFuY2VJZF0gOiB1bmRlZmluZWRcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgW3BhcmVudElkc109XCJwYXJlbnRJZHNcIlxuICAgICAgICA+PC9tdG5hLXdmLWl0ZW0+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L210bmEtd2YtcmVwZWF0YWJsZS1pdGVtPlxuICA8L21hdC1jYXJkPlxuPC9zZWN0aW9uPlxuPGJ1dHRvbiAqbmdJZj1cIiFyZWFkb25seVwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJhZGRJdGVtKClcIiBjbGFzcz1cIm5ldy1pdGVtLWJ1dHRvblwiIGNvbG9yPVwicHJpbWFyeVwiPlxuICB7eyBpdGVtLmFkZGl0aW9uYWxUZXh0IHx8IF9hZGRUZXh0IHwgdXBwZXJjYXNlIH19XG48L2J1dHRvbj5cbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0YWJsZS1pdGVtLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ZWItZm9ybS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWl0ZW0taW1wbC9yZXBlYXRhYmxlLWl0ZW0tY29udGFpbmVyL3JlcGVhdGFibGUtaXRlbS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pdGVtLWltcGwvcmVwZWF0YWJsZS1pdGVtLWNvbnRhaW5lci9yZXBlYXRhYmxlLWl0ZW0tY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFZLG9CQUFvQixFQUFrQixNQUFNLG1CQUFtQixDQUFDO0FBR25GLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOzs7Ozs7Ozs7Ozs7O0FBaUI5RixNQUFNLE9BQU8sc0NBQXVDLFNBQVEseUJBQW9EO0lBRzlHLFlBQVksR0FBc0IsRUFBVSxPQUE2QjtRQUN2RSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFEK0IsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFGekUsYUFBUSxHQUFHLFNBQVMsQ0FBQSxLQUFLLENBQUM7SUFJMUIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUM3QixJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUNoSCxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFjO1FBQ3ZCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDMUksQ0FBQzs7b0lBaEJVLHNDQUFzQzt3SEFBdEMsc0NBQXNDLGdHQ3hCbkQsc2xEQXVDQSx1cUVEMUJjO1FBQ1YsT0FBTyxDQUFDLDBCQUEwQixFQUFFO1lBQ2xDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVELEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDaEYsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDaEQsQ0FBQztLQUNIOzRGQUlVLHNDQUFzQztrQkFmbEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUNBQW1DO29CQUM3QyxXQUFXLEVBQUUsNENBQTRDO29CQUN6RCxTQUFTLEVBQUUsQ0FBQyw0Q0FBNEMsQ0FBQztvQkFDekQsVUFBVSxFQUFFO3dCQUNWLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTs0QkFDbEMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQzVELEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7NEJBQ2hGLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDbEcsVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzt5QkFDaEQsQ0FBQztxQkFDSDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENPTVBMRVhfU1RBTkRBUkQgfSBmcm9tICdAbXRuYS9jb3JlLWFuZ3VsYXInO1xuaW1wb3J0IHsgRm9ybUl0ZW0sIE10bmFXZkZvcm1JdGVtQ2hhbmdlLCBSZXBlYXRhYmxlSXRlbSB9IGZyb20gJ0BtdG5hL3dlYi1mb3JtLXRzJztcblxuaW1wb3J0IHsgTXRuYVdmTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBNdG5hV2ZCYXNlUGFyZW50VmFsdWVJdGVtIH0gZnJvbSAnLi4vLi4vYmFzZS1pdGVtcy9iYXNlLXBhcmVudC12YWx1ZS1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ210bmEtd2YtcmVwZWF0YWJsZS1pdGVtLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBlYXRhYmxlLWl0ZW0tY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVwZWF0YWJsZS1pdGVtLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcigncmVwZWF0SXRlbUV4cGFuZENvbGxhcHNlJywgW1xuICAgICAgc3RhdGUoJ2luJywgc3R5bGUoeyBoZWlnaHQ6ICcqJywgbWFyZ2luOiAnKicsIG9wYWNpdHk6IDEgfSkpLFxuICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7IGhlaWdodDogMCwgbWFyZ2luOiAwLCBvcGFjaXR5OiAwLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbYW5pbWF0ZShDT01QTEVYX1NUQU5EQVJELCBzdHlsZSh7IGhlaWdodDogJyonLCBtYXJnaW46ICcqJywgb3BhY2l0eTogMSB9KSldKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIGFuaW1hdGUoQ09NUExFWF9TVEFOREFSRCkpLFxuICAgIF0pLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTXRuYVdmUmVwZWF0YWJsZUl0ZW1Db250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBNdG5hV2ZCYXNlUGFyZW50VmFsdWVJdGVtPFJlcGVhdGFibGVJdGVtLCBGb3JtR3JvdXA+IHtcbiAgX2FkZFRleHQgPSAkbG9jYWxpemVgQUREYDtcblxuICBjb25zdHJ1Y3RvcihjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIG1hbmFnZXI6IE10bmFXZk1hbmFnZXJTZXJ2aWNlKSB7XG4gICAgc3VwZXIoY2RyKTtcbiAgfVxuXG4gIGFkZEl0ZW0oKSB7XG4gICAgdGhpcy5tYW5hZ2VyLmNoYW5nZU10bmFGb3JtSXRlbShcbiAgICAgIG5ldyBNdG5hV2ZGb3JtSXRlbUNoYW5nZSh0aGlzLml0ZW0ucmVwZWF0YWJsZVRlbXBsYXRlSWQsIHRoaXMuaXRlbS5yZXBlYXRhYmxlVGVtcGxhdGVJZCwgdGhpcy5wYXJlbnRJZHMsICdBREQnKVxuICAgICk7XG4gIH1cblxuICByZW1vdmVJdGVtKGl0ZW06IEZvcm1JdGVtKSB7XG4gICAgY29uc3QgY29uZGl0aW9uQ2hhbmdlcyA9IHRoaXMubWFuYWdlci5nZW5lcmF0ZUNvbmRpdGlvbkNoYW5nZUFycmF5KGl0ZW0sICdSRU1PVkUnKTtcbiAgICB0aGlzLm1hbmFnZXIuY2hhbmdlTXRuYUZvcm1JdGVtKG5ldyBNdG5hV2ZGb3JtSXRlbUNoYW5nZShpdGVtLmluc3RhbmNlSWQsIGl0ZW0udGVtcGxhdGVJZCwgdGhpcy5wYXJlbnRJZHMsICdSRU1PVkUnLCBjb25kaXRpb25DaGFuZ2VzKSk7XG4gIH1cbn1cbiIsIjxtdG5hLXdmLWl0ZW0taGVhZGVyXG4gICpuZ0lmPVwiISFpdGVtLnF1ZXN0aW9uVGV4dCB8fCAhIWl0ZW0uZGVzY3JpcHRpdmVUZXh0XCJcbiAgW2Rlc2NyaXB0aXZlVGV4dF09XCJpdGVtLmRlc2NyaXB0aXZlVGV4dFwiXG4gIFtkaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZCB8fCBmYWxzZVwiXG4gIFtxdWVzdGlvblRleHRdPVwiaXRlbS5xdWVzdGlvblRleHRcIlxuICBbcmVxdWlyZWRdPVwiaXRlbS5yZXF1aXJlZFwiXG4+PC9tdG5hLXdmLWl0ZW0taGVhZGVyPlxuPHNlY3Rpb24gW210bmFIaWdobGlnaHRdPVwiaW5kaWNhdG9yU3RhdHVzID09PSAnQUNUSVZFJyAmJiAhaXRlbS5xdWVzdGlvblRleHQgJiYgIWl0ZW0uZGVzY3JpcHRpdmVUZXh0XCI+XG4gIDxtYXQtY2FyZCAqbmdJZj1cIml0ZW0uaXRlbXMubGVuZ3RoID4gMFwiPlxuICAgIDxtdG5hLXdmLXJlcGVhdGFibGUtaXRlbVxuICAgICAgQHJlcGVhdEl0ZW1FeHBhbmRDb2xsYXBzZVxuICAgICAgKm5nRm9yPVwibGV0IHN1Yml0ZW0gb2YgaXRlbS5pdGVtczsgbGV0IGZpcnN0ID0gZmlyc3Q7IHRyYWNrQnk6ICdpbnN0YW5jZUlkJyB8IG10bmFUcmFja0J5UHJvcGVydHlcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWJpdGVtIHwgY29lcmNlRm9ybUl0ZW0gYXMgY29lcmNlZFN1Ykl0ZW1cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiIXJlYWRvbmx5ICYmIGl0ZW0uaXRlbXMubGVuZ3RoID4gaXRlbS5taW5PY2N1cnJlbmNlc1wiXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJpdGVtLXJlbW92ZS1idXR0b25cIlxuICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUl0ZW0oY29lcmNlZFN1Ykl0ZW0pXCJcbiAgICAgICAgICBtYXRUb29sdGlwPVwiUmVtb3ZlIEl0ZW1cIlxuICAgICAgICAgIGkxOG4tbWF0VG9vbHRpcFxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uPnJlbW92ZV9jaXJjbGU8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG10bmEtd2YtaXRlbVxuICAgICAgICAgIFtpc0NvbXBhY3RdPVwiaXNDb21wYWN0XCJcbiAgICAgICAgICBbaXRlbV09XCJjb2VyY2VkU3ViSXRlbVwiXG4gICAgICAgICAgW2NvbnRyb2xdPVwiISFjb250cm9sICYmICEhY29udHJvbC5jb250cm9scyA/IGNvbnRyb2wuY29udHJvbHNbY29lcmNlZFN1Ykl0ZW0uaW5zdGFuY2VJZF0gOiB1bmRlZmluZWRcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgW3BhcmVudElkc109XCJwYXJlbnRJZHNcIlxuICAgICAgICA+PC9tdG5hLXdmLWl0ZW0+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L210bmEtd2YtcmVwZWF0YWJsZS1pdGVtPlxuICA8L21hdC1jYXJkPlxuPC9zZWN0aW9uPlxuPGJ1dHRvbiAqbmdJZj1cIiFyZWFkb25seVwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJhZGRJdGVtKClcIiBjbGFzcz1cIm5ldy1pdGVtLWJ1dHRvblwiIGNvbG9yPVwicHJpbWFyeVwiPlxuICB7eyBpdGVtLmFkZGl0aW9uYWxUZXh0IHx8IF9hZGRUZXh0IHwgdXBwZXJjYXNlIH19XG48L2J1dHRvbj5cbiJdfQ==
@@ -33,8 +33,8 @@ export class MtnaWfApiService extends BaseUrlService {
33
33
  * @param formInstanceId template ID of the mtna form
34
34
  * @param itemId repeatableTemplateId of the requesting RepeatableItem
35
35
  */
36
- getRepeatableItem(formInstanceId, itemId) {
37
- return this.http.get(`${this.FORM_URL}/${formInstanceId}/new/item/${itemId}`);
36
+ getRepeatableItem(templateId, itemTemplateId) {
37
+ return this.http.get(`${this.FORM_URL}/${templateId}/item/${itemTemplateId}`);
38
38
  }
39
39
  getNewTemplate() {
40
40
  return this.http.get(this.NEW_TEMPLATE_URL);
@@ -73,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
73
73
  type: Inject,
74
74
  args: [MTNA_API_CONFIG]
75
75
  }] }, { type: i1.HttpClient }, { type: i2.MtnaLogger }]; } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ZWItZm9ybS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQTZCLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFHaEcsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGNBQWM7SUFlbEQsWUFBK0MsU0FBd0IsRUFBWSxJQUFnQixFQUFZLE1BQWtCO1FBQy9ILEtBQUssQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRGMsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQUFZLFNBQUksR0FBSixJQUFJLENBQVk7UUFBWSxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBZGpJLFlBQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUU3QixhQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxPQUFPLENBQUM7UUFFbEMsaUJBQVksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLFdBQVcsQ0FBQztRQUMxQyxxQkFBZ0IsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLE1BQU0sQ0FBQztRQUM5QyxvQkFBZSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksVUFBVSxDQUFDO1FBQ2pELGNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLFFBQVEsQ0FBQztRQUN6QyxzQkFBaUIsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLE9BQU8sQ0FBQztRQUNoRCxzQkFBaUIsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLE9BQU8sQ0FBQztRQUNoRCx3QkFBbUIsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLFNBQVMsQ0FBQztRQUVwRCxzQkFBaUIsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLFlBQVksQ0FBQztJQUloRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxJQUFhO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLGNBQXNCLEVBQUUsTUFBYztRQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksY0FBYyxhQUFhLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFXLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBVyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXNCLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWlCLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsZUFBZSxDQUFDLEVBQVU7UUFDeEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBVyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBVyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsUUFBa0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsdUJBQXVCLENBQUMsWUFBMEI7UUFDaEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3JGLENBQUM7OzhHQXZFVSxnQkFBZ0Isa0JBZVAsZUFBZTtrSEFmeEIsZ0JBQWdCLGNBREgsTUFBTTs0RkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBZ0JuQixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm0sIEZvcm0gYXMgV2ViRm9ybSwgRm9ybUl0ZW0sIEZvcm1JdGVtSW1wbCwgVGVtcGxhdGUsIFRlbXBsYXRlSXRlbSwgVGVtcGxhdGVTZWN0aW9uSW1wbCB9IGZyb20gJ0BtdG5hL3dlYi1mb3JtLXRzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQmFzZVVybFNlcnZpY2UsIE1UTkFfQVBJX0NPTkZJRywgTXRuYUFwaUNvbmZpZywgTXRuYUxvZ2dlciB9IGZyb20gJ0BtdG5hL2NvcmUtYW5ndWxhcic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTXRuYVdmQXBpU2VydmljZSBleHRlbmRzIEJhc2VVcmxTZXJ2aWNlIHtcbiAgQVBJX1VSTCA9IGAke3RoaXMuQkFTRV9VUkx9YDtcblxuICBGT1JNX1VSTCA9IGAke3RoaXMuQVBJX1VSTH0vZm9ybWA7XG5cbiAgVEVNUExBVEVfVVJMID0gYCR7dGhpcy5BUElfVVJMfS90ZW1wbGF0ZWA7XG4gIE5FV19URU1QTEFURV9VUkwgPSBgJHt0aGlzLlRFTVBMQVRFX1VSTH0vbmV3YDtcbiAgTkVXX1NFQ1RJT05fVVJMID0gYCR7dGhpcy5URU1QTEFURV9VUkx9L3NlY3Rpb25gO1xuICBJVEVNU19VUkwgPSBgJHt0aGlzLlRFTVBMQVRFX1VSTH0vaXRlbXNgO1xuICBJVEVNX0lOU1RBTkNFX1VSTCA9IGAke3RoaXMuVEVNUExBVEVfVVJMfS9pdGVtYDtcbiAgVEVNUExBVEVfU0FWRV9VUkwgPSBgJHt0aGlzLlRFTVBMQVRFX1VSTH0vc2F2ZWA7XG4gIFRFTVBMQVRFX0RFTEVURV9VUkwgPSBgJHt0aGlzLlRFTVBMQVRFX1VSTH0vZGVsZXRlYDtcblxuICBBTExfVEVNUExBVEVTX1VSTCA9IGAke3RoaXMuQVBJX1VSTH0vdGVtcGxhdGVzYDtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE1UTkFfQVBJX0NPTkZJRykgcHJvdGVjdGVkIGFwaUNvbmZpZzogTXRuYUFwaUNvbmZpZywgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsIHByb3RlY3RlZCBsb2dnZXI6IE10bmFMb2dnZXIpIHtcbiAgICBzdXBlcihhcGlDb25maWcsIGh0dHAsIGxvZ2dlcik7XG4gIH1cblxuICAvKipcbiAgICogRG93bmxvYWQgYSB3ZWIgZm9ybVxuICAgKiBAcGFyYW0gZm9ybSB0aGUgd2ViIGZvcm0gcG9qbyB0byBkb3dubG9hZFxuICAgKiBAcmV0dXJucyBGdWxsIEh0dGxSZXBvbnNlIHdpdGggdGhlIEJsb2IgYXMgdGhlIGJvZHlcbiAgICovXG4gIGRvd25sb2FkRm9ybShmb3JtOiBXZWJGb3JtKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QmxvYj4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5GT1JNX1VSTH0vZG93bmxvYWRgLCBmb3JtLCB7IG9ic2VydmU6ICdyZXNwb25zZScsIHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBuZXcgcmVwZWF0YWJsZSBGb3JtSXRlbVxuICAgKiBAcGFyYW0gZm9ybUluc3RhbmNlSWQgdGVtcGxhdGUgSUQgb2YgdGhlIG10bmEgZm9ybVxuICAgKiBAcGFyYW0gaXRlbUlkIHJlcGVhdGFibGVUZW1wbGF0ZUlkIG9mIHRoZSByZXF1ZXN0aW5nIFJlcGVhdGFibGVJdGVtXG4gICAqL1xuICBnZXRSZXBlYXRhYmxlSXRlbShmb3JtSW5zdGFuY2VJZDogc3RyaW5nLCBpdGVtSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Rm9ybUl0ZW1JbXBsPHVua25vd24+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Rm9ybUl0ZW1JbXBsPHVua25vd24+PihgJHt0aGlzLkZPUk1fVVJMfS8ke2Zvcm1JbnN0YW5jZUlkfS9uZXcvaXRlbS8ke2l0ZW1JZH1gKTtcbiAgfVxuXG4gIGdldE5ld1RlbXBsYXRlKCk6IE9ic2VydmFibGU8VGVtcGxhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUZW1wbGF0ZT4odGhpcy5ORVdfVEVNUExBVEVfVVJMKTtcbiAgfVxuXG4gIGdldEFsbFRlbXBsYXRlcygpOiBPYnNlcnZhYmxlPFRlbXBsYXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VGVtcGxhdGU+KHRoaXMuQUxMX1RFTVBMQVRFU19VUkwpO1xuICB9XG5cbiAgZ2V0TmV3U2VjdGlvbigpOiBPYnNlcnZhYmxlPFRlbXBsYXRlU2VjdGlvbkltcGw+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUZW1wbGF0ZVNlY3Rpb25JbXBsPih0aGlzLk5FV19TRUNUSU9OX1VSTCk7XG4gIH1cblxuICBnZXRJdGVtcygpOiBPYnNlcnZhYmxlPFRlbXBsYXRlSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VGVtcGxhdGVJdGVtW10+KHRoaXMuSVRFTVNfVVJMKTtcbiAgfVxuXG4gIGdldFRlbXBsYXRlSXRlbShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZUl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUZW1wbGF0ZUl0ZW0+KGAke3RoaXMuSVRFTV9JTlNUQU5DRV9VUkx9P2lkPSR7aWR9YCk7XG4gIH1cblxuICBzYXZlVGVtcGxhdGUoKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFRlbXBsYXRlPih0aGlzLlRFTVBMQVRFX1NBVkVfVVJMKTtcbiAgfVxuXG4gIGdldERlbGV0ZVRlbXBsYXRlKCk6IE9ic2VydmFibGU8VGVtcGxhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUZW1wbGF0ZT4odGhpcy5URU1QTEFURV9ERUxFVEVfVVJMKTtcbiAgfVxuXG4gIGdldFRlbXBsYXRlSW5zdGFuY2UodGVtcGxhdGU6IFRlbXBsYXRlKTogT2JzZXJ2YWJsZTxGb3JtPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEZvcm0+KGAke3RoaXMuVEVNUExBVEVfVVJMfS9jb252ZXJ0YCwgdGVtcGxhdGUpO1xuICB9XG5cbiAgZ2V0VGVtcGxhdGVJdGVtSW5zdGFuY2UodGVtcGxhdGVJdGVtOiBUZW1wbGF0ZUl0ZW0pOiBPYnNlcnZhYmxlPEZvcm1JdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEZvcm1JdGVtPihgJHt0aGlzLklURU1fSU5TVEFOQ0VfVVJMfS9jb252ZXJ0YCwgdGVtcGxhdGVJdGVtKTtcbiAgfVxufVxuIl19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ZWItZm9ybS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQTZCLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFHaEcsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGNBQWM7SUFlbEQsWUFBK0MsU0FBd0IsRUFBWSxJQUFnQixFQUFZLE1BQWtCO1FBQy9ILEtBQUssQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRGMsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQUFZLFNBQUksR0FBSixJQUFJLENBQVk7UUFBWSxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBZGpJLFlBQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUU3QixhQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxPQUFPLENBQUM7UUFFbEMsaUJBQVksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLFdBQVcsQ0FBQztRQUMxQyxxQkFBZ0IsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLE1BQU0sQ0FBQztRQUM5QyxvQkFBZSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksVUFBVSxDQUFDO1FBQ2pELGNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLFFBQVEsQ0FBQztRQUN6QyxzQkFBaUIsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLE9BQU8sQ0FBQztRQUNoRCxzQkFBaUIsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLE9BQU8sQ0FBQztRQUNoRCx3QkFBbUIsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLFNBQVMsQ0FBQztRQUVwRCxzQkFBaUIsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLFlBQVksQ0FBQztJQUloRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxJQUFhO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLFVBQWtCLEVBQUUsY0FBc0I7UUFDMUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBd0IsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLFVBQVUsU0FBUyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBVyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFzQixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFpQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGVBQWUsQ0FBQyxFQUFVO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELG1CQUFtQixDQUFDLFFBQWtCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELHVCQUF1QixDQUFDLFlBQTBCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNyRixDQUFDOzs4R0F2RVUsZ0JBQWdCLGtCQWVQLGVBQWU7a0hBZnhCLGdCQUFnQixjQURILE1BQU07NEZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQWdCbkIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtLCBGb3JtIGFzIFdlYkZvcm0sIEZvcm1JdGVtLCBGb3JtSXRlbUltcGwsIFRlbXBsYXRlLCBUZW1wbGF0ZUl0ZW0sIFRlbXBsYXRlU2VjdGlvbkltcGwgfSBmcm9tICdAbXRuYS93ZWItZm9ybS10cyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJhc2VVcmxTZXJ2aWNlLCBNVE5BX0FQSV9DT05GSUcsIE10bmFBcGlDb25maWcsIE10bmFMb2dnZXIgfSBmcm9tICdAbXRuYS9jb3JlLWFuZ3VsYXInO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE10bmFXZkFwaVNlcnZpY2UgZXh0ZW5kcyBCYXNlVXJsU2VydmljZSB7XG4gIEFQSV9VUkwgPSBgJHt0aGlzLkJBU0VfVVJMfWA7XG5cbiAgRk9STV9VUkwgPSBgJHt0aGlzLkFQSV9VUkx9L2Zvcm1gO1xuXG4gIFRFTVBMQVRFX1VSTCA9IGAke3RoaXMuQVBJX1VSTH0vdGVtcGxhdGVgO1xuICBORVdfVEVNUExBVEVfVVJMID0gYCR7dGhpcy5URU1QTEFURV9VUkx9L25ld2A7XG4gIE5FV19TRUNUSU9OX1VSTCA9IGAke3RoaXMuVEVNUExBVEVfVVJMfS9zZWN0aW9uYDtcbiAgSVRFTVNfVVJMID0gYCR7dGhpcy5URU1QTEFURV9VUkx9L2l0ZW1zYDtcbiAgSVRFTV9JTlNUQU5DRV9VUkwgPSBgJHt0aGlzLlRFTVBMQVRFX1VSTH0vaXRlbWA7XG4gIFRFTVBMQVRFX1NBVkVfVVJMID0gYCR7dGhpcy5URU1QTEFURV9VUkx9L3NhdmVgO1xuICBURU1QTEFURV9ERUxFVEVfVVJMID0gYCR7dGhpcy5URU1QTEFURV9VUkx9L2RlbGV0ZWA7XG5cbiAgQUxMX1RFTVBMQVRFU19VUkwgPSBgJHt0aGlzLkFQSV9VUkx9L3RlbXBsYXRlc2A7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChNVE5BX0FQSV9DT05GSUcpIHByb3RlY3RlZCBhcGlDb25maWc6IE10bmFBcGlDb25maWcsIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LCBwcm90ZWN0ZWQgbG9nZ2VyOiBNdG5hTG9nZ2VyKSB7XG4gICAgc3VwZXIoYXBpQ29uZmlnLCBodHRwLCBsb2dnZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIERvd25sb2FkIGEgd2ViIGZvcm1cbiAgICogQHBhcmFtIGZvcm0gdGhlIHdlYiBmb3JtIHBvam8gdG8gZG93bmxvYWRcbiAgICogQHJldHVybnMgRnVsbCBIdHRsUmVwb25zZSB3aXRoIHRoZSBCbG9iIGFzIHRoZSBib2R5XG4gICAqL1xuICBkb3dubG9hZEZvcm0oZm9ybTogV2ViRm9ybSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEJsb2I+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuRk9STV9VUkx9L2Rvd25sb2FkYCwgZm9ybSwgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICdibG9iJyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbmV3IHJlcGVhdGFibGUgRm9ybUl0ZW1cbiAgICogQHBhcmFtIGZvcm1JbnN0YW5jZUlkIHRlbXBsYXRlIElEIG9mIHRoZSBtdG5hIGZvcm1cbiAgICogQHBhcmFtIGl0ZW1JZCByZXBlYXRhYmxlVGVtcGxhdGVJZCBvZiB0aGUgcmVxdWVzdGluZyBSZXBlYXRhYmxlSXRlbVxuICAgKi9cbiAgZ2V0UmVwZWF0YWJsZUl0ZW0odGVtcGxhdGVJZDogc3RyaW5nLCBpdGVtVGVtcGxhdGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxGb3JtSXRlbUltcGw8dW5rbm93bj4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxGb3JtSXRlbUltcGw8dW5rbm93bj4+KGAke3RoaXMuRk9STV9VUkx9LyR7dGVtcGxhdGVJZH0vaXRlbS8ke2l0ZW1UZW1wbGF0ZUlkfWApO1xuICB9XG5cbiAgZ2V0TmV3VGVtcGxhdGUoKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFRlbXBsYXRlPih0aGlzLk5FV19URU1QTEFURV9VUkwpO1xuICB9XG5cbiAgZ2V0QWxsVGVtcGxhdGVzKCk6IE9ic2VydmFibGU8VGVtcGxhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUZW1wbGF0ZT4odGhpcy5BTExfVEVNUExBVEVTX1VSTCk7XG4gIH1cblxuICBnZXROZXdTZWN0aW9uKCk6IE9ic2VydmFibGU8VGVtcGxhdGVTZWN0aW9uSW1wbD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFRlbXBsYXRlU2VjdGlvbkltcGw+KHRoaXMuTkVXX1NFQ1RJT05fVVJMKTtcbiAgfVxuXG4gIGdldEl0ZW1zKCk6IE9ic2VydmFibGU8VGVtcGxhdGVJdGVtW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUZW1wbGF0ZUl0ZW1bXT4odGhpcy5JVEVNU19VUkwpO1xuICB9XG5cbiAgZ2V0VGVtcGxhdGVJdGVtKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRlbXBsYXRlSXRlbT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFRlbXBsYXRlSXRlbT4oYCR7dGhpcy5JVEVNX0lOU1RBTkNFX1VSTH0/aWQ9JHtpZH1gKTtcbiAgfVxuXG4gIHNhdmVUZW1wbGF0ZSgpOiBPYnNlcnZhYmxlPFRlbXBsYXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VGVtcGxhdGU+KHRoaXMuVEVNUExBVEVfU0FWRV9VUkwpO1xuICB9XG5cbiAgZ2V0RGVsZXRlVGVtcGxhdGUoKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFRlbXBsYXRlPih0aGlzLlRFTVBMQVRFX0RFTEVURV9VUkwpO1xuICB9XG5cbiAgZ2V0VGVtcGxhdGVJbnN0YW5jZSh0ZW1wbGF0ZTogVGVtcGxhdGUpOiBPYnNlcnZhYmxlPEZvcm0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Rm9ybT4oYCR7dGhpcy5URU1QTEFURV9VUkx9L2NvbnZlcnRgLCB0ZW1wbGF0ZSk7XG4gIH1cblxuICBnZXRUZW1wbGF0ZUl0ZW1JbnN0YW5jZSh0ZW1wbGF0ZUl0ZW06IFRlbXBsYXRlSXRlbSk6IE9ic2VydmFibGU8Rm9ybUl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Rm9ybUl0ZW0+KGAke3RoaXMuSVRFTV9JTlNUQU5DRV9VUkx9L2NvbnZlcnRgLCB0ZW1wbGF0ZUl0ZW0pO1xuICB9XG59XG4iXX0=
@@ -60,7 +60,7 @@ export class MtnaWfManagerService {
60
60
  }
61
61
  else {
62
62
  this.apiService
63
- .getRepeatableItem(this._mtnaForm.instanceId, change.id)
63
+ .getRepeatableItem(this._mtnaForm.templateId, change.templateId)
64
64
  .pipe(take(1))
65
65
  .subscribe((newItem) => {
66
66
  const newFormControl = this.serializeMtnaFormItem(newItem);
@@ -304,6 +304,7 @@ export class MtnaWfManagerService {
304
304
  * @param change The change that recently occurred in the mtnaForm
305
305
  */
306
306
  _modifyFormItemConditions(form, change) {
307
+ var _a, _b;
307
308
  let newForm = form;
308
309
  if (change.conditionChanges) {
309
310
  const formItems = {};
@@ -320,7 +321,8 @@ export class MtnaWfManagerService {
320
321
  ? [...itemConditionItemIds, cc.enablerId]
321
322
  : itemConditionItemIds.filter((i) => i !== cc.enablerId);
322
323
  const newItem = Object.assign(Object.assign({}, formItem), { condition: Object.assign(Object.assign({}, formItem.condition), { itemIds }) });
323
- const newChange = new MtnaWfFormItemChange(newItem.instanceId, (formItemComponent === null || formItemComponent === void 0 ? void 0 : formItemComponent.parentIds) || [], 'REPLACE');
324
+ const templateId = (_b = (_a = formItem) === null || _a === void 0 ? void 0 : _a.templateId) !== null && _b !== void 0 ? _b : newItem.instanceId;
325
+ const newChange = new MtnaWfFormItemChange(newItem.instanceId, templateId, (formItemComponent === null || formItemComponent === void 0 ? void 0 : formItemComponent.parentIds) || [], 'REPLACE');
324
326
  newForm = this._modifyFormItem(newForm, newChange, newItem);
325
327
  formItems[toggledId] = newItem;
326
328
  }
@@ -473,4 +475,4 @@ MtnaWfManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0",
473
475
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfManagerService, decorators: [{
474
476
  type: Injectable
475
477
  }], ctorParameters: function () { return [{ type: i1.MtnaWfApiService }, { type: i2.MtnaWfNgFormService }, { type: i3.MtnaWfUIService }]; } });
476
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ZWItZm9ybS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvZm9ybS1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFRTCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsV0FBVyxFQUNYLG9CQUFvQixHQVdyQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7O0FBaUJqRTs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUFvQi9CLFlBQXNCLFVBQTRCLEVBQVksYUFBa0MsRUFBWSxTQUEwQjtRQUFoSCxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUFZLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBbkI1SCxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFDbkQsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBMEIsQ0FBQztRQUNwRCwyQkFBc0IsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUNsRSxnRUFBZ0U7UUFDdEQsK0JBQTBCLEdBQTZDLEVBQUUsQ0FBQztRQStLcEY7Ozs7Ozs7V0FPRztRQUNPLDJCQUFzQixHQUFnQyxH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QUksQ0FBQywwQkFBMEIsR0FBRyxFQUFFLENBQUM7UUFDckMsSUFBSSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLGdCQUFnQixFQUFFO1lBQ3BDLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsRUFBRTtnQkFDOUUsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLEtBQUssUUFBUSxFQUFFO29CQUN4QywrRUFBK0U7b0JBQy9FLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDO29CQUNwRCx3REFBd0Q7b0JBQ3hELHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3ZDO2FBQ0Y7U0FDRjtRQUVELDRDQUE0QztRQUM1QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFDLElBQUksSUFBSSxFQUFFO1lBQ1IsS0FBSyxNQUFNLEVBQUUsSUFBSSxzQkFBc0IsRUFBRTtnQkFDdkMsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxPQUFPLEVBQUU7b0JBQ1gsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7aUJBQ2xDO2FBQ0Y7U0FDRjtJQUNILENBQUM7O2tIQTVqQlUsb0JBQW9CO3NIQUFwQixvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzVHlwZSB9IGZyb20gJ0BtdG5hL2NvcmUtdHMnO1xuaW1wb3J0IHtcbiAgQ29uZGl0aW9uYWxJdGVtLFxuICBDb25kaXRpb25DaGFuZ2UsXG4gIEZvcm0sXG4gIEZvcm1JdGVtLFxuICBGb3JtSXRlbUdyb3VwLFxuICBGb3JtSXRlbUltcGwsXG4gIEZvcm1JdGVtVmFsaWRhdGlvblJlc3VsdCxcbiAgaXNDb25kaXRpb25hbEl0ZW0sXG4gIGlzRm9ybSxcbiAgaXNGb3JtSXRlbUdyb3VwSW1wbCxcbiAgaXNPcHRpb25Hcm91cEl0ZW1JbXBsLFxuICBpc09wdGlvbkl0ZW1JbXBsLFxuICBpc1JlcGVhdGFibGVJdGVtLFxuICBpc1NlY3Rpb24sXG4gIGlzVGFibGVJdGVtLFxuICBNdG5hV2ZGb3JtSXRlbUNoYW5nZSxcbiAgTXRuYVdmRm9ybUl0ZW1DaGFuZ2VBY3Rpb24sXG4gIE9wdGlvbixcbiAgT3B0aW9uR3JvdXBJdGVtSW1wbCxcbiAgT3B0aW9uSXRlbUltcGwsXG4gIFByb2dyZXNzaXZlRm9ybSxcbiAgUmVwZWF0YWJsZUl0ZW0sXG4gIFNlY3Rpb24sXG4gIFRhYmxlSXRlbSxcbiAgVGFibGVSb3dJdGVtLFxuICBWYWx1ZUl0ZW0sXG59IGZyb20gJ0BtdG5hL3dlYi1mb3JtLXRzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEJhc2VGb3JtSXRlbSB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBmaW5kRm9ybUNvbnRyb2wsIE10bmFXZlNlcmlhbGl6ZXIgfSBmcm9tICcuLi91dGlsaXRpZXMnO1xuaW1wb3J0IHsgTXRuYVdmQXBpU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTXRuYVdmTmdGb3JtU2VydmljZSB9IGZyb20gJy4vbmctZm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IE10bmFXZlVJU2VydmljZSB9IGZyb20gJy4vdWkuc2VydmljZSc7XG5cbi8qKlxuICogdHlwZXMgb2YgRm9ybUl0ZW1zIHRoYXQgY2FuIGJlIHBhc3NlZCBpbnRvIHRoZSAnbW9kaWZ5TXRuYUZvcm1JdGVtJyBtZXRob2QgdG8gYWRkL3JlbW92ZSBpdGVtc1xuICovXG50eXBlIFBhcmVudEl0ZW1VbmlvbiA9XG4gIHwgRm9ybVxuICB8IFNlY3Rpb25cbiAgfCBGb3JtSXRlbUdyb3VwXG4gIHwgUmVwZWF0YWJsZUl0ZW1cbiAgfCBUYWJsZUl0ZW1cbiAgfCBPcHRpb25JdGVtSW1wbDxPcHRpb248dW5rbm93bj4sIHVua25vd24+XG4gIHwgT3B0aW9uR3JvdXBJdGVtSW1wbDxPcHRpb248dW5rbm93bj4+O1xuXG4vKipcbiAqIEFsbG93cyBhIGNhbGxlciB0byAoZGUpc2VyaWFsaXphZSBhbiBNdG5hRm9ybS4gSXQgY29udGFpbnMgdGhlIGRldGVybWluaW5nIGxvZ2ljIGZvciByZXR1cm5pbmcgc3BlY2lmaWMgZm9ybSBjb250cm9sc1xuICogYW5kIGRlc2VyaWFsaXppbmcgbmV3IE10bmFGb3JtcyBmcm9tIHRoZSByZWFjdGl2ZSB2YWx1ZXMsIGFzIHdlbGwgYXMgcmVnaXN0ZXJpbmcgY3VzdG9tIEZvcm0gSXRlbXMgJiBmdW5jdGlvbnMuXG4gKlxuICogQGV4cG9ydFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTXRuYVdmTWFuYWdlclNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgY29tcG9uZW50cyA9IG5ldyBNYXA8c3RyaW5nLCBUeXBlPEJhc2VGb3JtSXRlbT4+KCk7XG4gIHByb3RlY3RlZCBmb3JtQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PEZvcm0gfCBQcm9ncmVzc2l2ZUZvcm0+KCk7XG4gIHByb3RlY3RlZCBwcm9ncmVzc2l2ZUZvcm1DaGFuZ2UkID0gbmV3IFN1YmplY3Q8UHJvZ3Jlc3NpdmVGb3JtPigpO1xuICAvKiogQSBtYXAgb2YgYWxsIHtAbGluayBGb3JtSXRlbVZhbGlkYXRpb25SZXN1bHR9IGtleWVkIG9uIGlkICovXG4gIHByb3RlY3RlZCBfZm9ybUl0ZW1WYWxpZGF0aW9uUmVzdWx0czogUmVjb3JkPHN0cmluZywgRm9ybUl0ZW1WYWxpZGF0aW9uUmVzdWx0PiA9IHt9O1xuICAvKiogQ29uZGl0aW9uQ2hhbmdlcyBvbiAnYWRkJyBtdXN0IHdhaXQgdW50aWwgdGhlIGZvcm0gcmVyZW5kZXJzIHRvIHRvZ2dsZSBpdGVtcyAqL1xuICBwcm90ZWN0ZWQgaXRlbVRvZ2dsZVF1ZTogQXJyYXk8Q29uZGl0aW9uQ2hhbmdlPiB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBfbXRuYUZvcm06IEZvcm0gfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBfbXRuYVByb2dyZXNzaXZlRm9ybTogUHJvZ3Jlc3NpdmVGb3JtIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHN0cmVhbSBvZiBNdG5hRm9ybSBjaGFuZ2VzLiBVc2VkIHRvIGluZm9ybSBhIHN1YnNjcmliZXIgdGhhdCBhbiBNdG5hRm9ybSBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgKlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPE10bmFGb3JtPiB0byB3aGljaCBhIGNhbGxlciBjYW4gc3Vic2NyaWJlXG4gICAqL1xuICBnZXQgZm9ybUNoYW5nZXMoKTogT2JzZXJ2YWJsZTxGb3JtPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUNoYW5nZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYXBpU2VydmljZTogTXRuYVdmQXBpU2VydmljZSwgcHJvdGVjdGVkIG5nRm9ybVNlcnZpY2U6IE10bmFXZk5nRm9ybVNlcnZpY2UsIHByb3RlY3RlZCB1aVNlcnZpY2U6IE10bmFXZlVJU2VydmljZSkge31cblxuICAvKipcbiAgICogQWRkcyBvciByZW1vdmVzIGEgRm9ybUl0ZW0gZnJvbSB0aGUgZm9ybSAmIG1vZGlmaWVzIG90aGVyIGFmZmVjdGVkIEZvcm1JdGVtc1xuICAgKiBAcGFyYW0gY2hhbmdlIE10bmFXZkZvcm1JdGVtQ2hhbmdlXG4gICAqL1xuICBjaGFuZ2VNdG5hRm9ybUl0ZW0oY2hhbmdlOiBNdG5hV2ZGb3JtSXRlbUNoYW5nZSkge1xuICAgIGlmICghdGhpcy5fbXRuYUZvcm0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlLmFjdGlvblR5cGUgPT09ICdSRU1PVkUnKSB7XG4gICAgICAvLyByZW1vdmUgdGhlIHJlcGVhdGFibGUgaXRlbSBmcm9tIHRoZSBtdG5hZm9ybVxuICAgICAgbGV0IG5ld0Zvcm0gPSB0aGlzLl9tb2RpZnlGb3JtSXRlbSh0aGlzLl9tdG5hRm9ybSwgY2hhbmdlKSBhcyBGb3JtO1xuICAgICAgLy8gbW9kaWZ5IHRoZSBjb25kaXRpb25zIG9mIGFsbCBlZmZlY3RlZCBmb3JtIGl0ZW1zXG4gICAgICBuZXdGb3JtID0gdGhpcy5fbW9kaWZ5Rm9ybUl0ZW1Db25kaXRpb25zKG5ld0Zvcm0sIGNoYW5nZSk7XG5cbiAgICAgIHRoaXMubmdGb3JtU2VydmljZS5yZW1vdmVDb250cm9sKGNoYW5nZS5pZCwgY2hhbmdlLnBhcmVudElkcyk7XG4gICAgICB0aGlzLmZvcm1DaGFuZ2UkLm5leHQobmV3Rm9ybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXBpU2VydmljZVxuICAgICAgICAuZ2V0UmVwZWF0YWJsZUl0ZW0odGhpcy5fbXRuYUZvcm0uaW5zdGFuY2VJZCwgY2hhbmdlLmlkKVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKChuZXdJdGVtOiBGb3JtSXRlbUltcGw8dW5rbm93bj4pID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdGb3JtQ29udHJvbCA9IHRoaXMuc2VyaWFsaXplTXRuYUZvcm1JdGVtKG5ld0l0ZW0pO1xuICAgICAgICAgIGlmIChuZXdGb3JtQ29udHJvbCAmJiB0aGlzLl9tdG5hRm9ybSkge1xuICAgICAgICAgICAgdGhpcy5uZ0Zvcm1TZXJ2aWNlLmFkZENvbnRyb2wobmV3SXRlbS5pbnN0YW5jZUlkLCBjaGFuZ2UucGFyZW50SWRzLCBuZXdGb3JtQ29udHJvbCk7XG4gICAgICAgICAgICAvLyBBZGQgdGhlIG5ldyByZXBlYXRhYmxlIGl0ZW0gaW50byB0aGUgbXRuYWZvcm1cbiAgICAgICAgICAgIGxldCBuZXdGb3JtID0gdGhpcy5fbW9kaWZ5Rm9ybUl0ZW0oXG4gICAgICAgICAgICAgIHRoaXMuX210bmFGb3JtLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4uY2hhbmdlLFxuICAgICAgICAgICAgICAgIGlkOiBuZXdJdGVtLmluc3RhbmNlSWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG5ld0l0ZW1cbiAgICAgICAgICAgICkgYXMgRm9ybTtcblxuICAgICAgICAgICAgLy8gR2VuZXJhdGUgYSBsaXN0IG9mIGFsbCBmb3JtaXRlbSBjb25kaXRpb25zIG5lZWRpbmcgY2hhbmdlICYgbW9kaWZ5IHRob3NlIGl0ZW1zIGluIHRoZSBmb3JtXG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb25DaGFuZ2VzID0gdGhpcy5nZW5lcmF0ZUNvbmRpdGlvbkNoYW5nZUFycmF5KG5ld0l0ZW0sICdBREQnKTtcbiAgICAgICAgICAgIG5ld0Zvcm0gPSB0aGlzLl9tb2RpZnlGb3JtSXRlbUNvbmRpdGlvbnMobmV3Rm9ybSwgeyAuLi5jaGFuZ2UsIGNvbmRpdGlvbkNoYW5nZXMgfSk7XG4gICAgICAgICAgICB0aGlzLml0ZW1Ub2dnbGVRdWUgPSBjb25kaXRpb25DaGFuZ2VzO1xuICAgICAgICAgICAgLy8gZW1pdCB0aGUgbmV3IG10bmFmb3JtXG4gICAgICAgICAgICB0aGlzLmZvcm1DaGFuZ2UkLm5leHQobmV3Rm9ybSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIENvbmRpdGlvbkNoYW5nZSBhcnJheSBmb3IgaXRlbXMgZXhpc3RpbmcgaW4gdGhlIDxpdGVtPiB3aGljaCBlbmFibGUvZGlzYWJsZSBGb3JtSXRlbXMgb3V0c2lkZSB0aGUgPGl0ZW0+J3Mgc2NvcGUuXG4gICAqIEBwYXJhbSBpdGVtIEZvcm1JdGVtIHRoYXQgZWZmZWN0cyB0aGUgY29uZGl0aW9uIG9mIG90aGVyIEZvcm1JdGVtc1xuICAgKiBAcGFyYW0gYWN0aW9uIFdoZXRoZXIgdGhpcyBpdGVtIHdhcyBhZGRlZCAoQUREKSwgb3IgcmVtb3ZlZCAoUkVNT1ZFKVxuICAgKiBAcmV0dXJucyBBcnJheTxDb25kaXRpb25DaGFuZ2U+XG4gICAqL1xuICBnZW5lcmF0ZUNvbmRpdGlvbkNoYW5nZUFycmF5KGl0ZW06IEZvcm1JdGVtLCBhY3Rpb24/OiBNdG5hV2ZGb3JtSXRlbUNoYW5nZUFjdGlvbik6IEFycmF5PENvbmRpdGlvbkNoYW5nZT4ge1xuICAgIGNvbnN0IGludGVybmFsTWFwID0ge307XG4gICAgdGhpcy5fYnVpbGRJbnRlcm5hbElkc01hcChpdGVtLCBpbnRlcm5hbE1hcCk7XG4gICAgY29uc3QgY29uZGl0aW9uQ2hhbmdlcyA9IG5ldyBBcnJheTxDb25kaXRpb25DaGFuZ2U+KCk7XG4gICAgdGhpcy5fYnVpbGRDb25kaXRpb25DaGFuZ2VBcnJheShpdGVtLCBjb25kaXRpb25DaGFuZ2VzLCBpbnRlcm5hbE1hcCwgYWN0aW9uKTtcbiAgICByZXR1cm4gY29uZGl0aW9uQ2hhbmdlcztcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyBUaGUgdG9wIGxldmVsIHZhbGlkYXRpb24gcmVzdWx0cyAodXN1YWxseSB0aGUgZXJyb3JzKSwga2V5ZWQgb24gSUQuICovXG4gIGdldEZvcm1JdGVtVmFsaWRhdGlvblJlc3VsdHMoKTogUmVjb3JkPHN0cmluZywgRm9ybUl0ZW1WYWxpZGF0aW9uUmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1JdGVtVmFsaWRhdGlvblJlc3VsdHM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIG5ldyBNdG5hRm9ybSB1c2luZyB0aGUgTXRuYUZvcm0gJiByZWFjaXZlIGZvcm0gdmFsdWVzIGZyb20gdGhlIE10bmFXZk5nRm9ybVNlcnZpY2UncyBpbnRlcm5hbCBmb3JtLlxuICAgKlxuICAgKiBAcGFyYW0gbmdGb3JtVmFsdWVzIEpTT04gb2JqZWN0IG9mIG5nRm9ybVZhbHVlc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgdXBkYXRlRm9ybShuZ0Zvcm1WYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogRm9ybSB7XG4gICAgY29uc3QgY3VycmVudEZvcm0gPSB0aGlzLm5nRm9ybVNlcnZpY2UuZ2V0Rm9ybVZhbHVlKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmN1cnJlbnRGb3JtLFxuICAgICAgaXRlbXM6IE10bmFXZlNlcmlhbGl6ZXIuaW5zZXJ0Rm9ybUl0ZW1WYWx1ZXMoXG4gICAgICAgIGN1cnJlbnRGb3JtLFxuICAgICAgICBuZ0Zvcm1WYWx1ZXMsXG4gICAgICAgIHRoaXMudWlTZXJ2aWNlLmdldERpc2FibGVkU3RhdGVzKCksXG4gICAgICAgIHRoaXMuZHluYW1pY0Zvcm1Db25kaXRpb25hbCxcbiAgICAgICAgdGhpcy5keW5hbWljV2ViRm9ybUl0ZW1CdWlsZGVyXG4gICAgICApLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIG5ldyBNdG5hRm9ybSB1c2luZyB0aGUgcHJldmlvdXMgTXRuYUZvcm0gJiByZWFjdGl2ZSBmb3JtIHZhbHVlcy5cbiAgICpcbiAgICogQHBhcmFtIG10bmFGb3JtIE10bmFGb3JtIHJlcXVpcmluZyB2YWx1ZSBpbnNlcnRpb25cbiAgICogQHBhcmFtIG5nRm9ybVZhbHVlcyBKU09OIG9iamVjdCBvZiAgbmdGb3JtIHZhbHVlc1xuICAgKiBAcmV0dXJucyBuZXcgTXRuYUZvcm1cbiAgICovXG4gIGluc2VydE5ld1ZhbHVlcyhtdG5hRm9ybTogRm9ybSwgbmdGb3JtVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IEZvcm0ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5tdG5hRm9ybSxcbiAgICAgIGl0ZW1zOiBNdG5hV2ZTZXJpYWxpemVyLmluc2VydEZvcm1JdGVtVmFsdWVzKFxuICAgICAgICBtdG5hRm9ybSxcbiAgICAgICAgbmdGb3JtVmFsdWVzLFxuICAgICAgICB0aGlzLnVpU2VydmljZS5nZXREaXNhYmxlZFN0YXRlcygpLFxuICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29uZGl0aW9uYWwsXG4gICAgICAgIHRoaXMuZHluYW1pY1dlYkZvcm1JdGVtQnVpbGRlclxuICAgICAgKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZXMgYSBGb3JtIHwgRm9ybUl0ZW0gaW50byBGb3JtQ29udHJvbChzKVxuICAgKlxuICAgKiBAcGFyYW0gaXRlbSBGb3JtIHwgRm9ybUl0ZW0gcmVxdWlyaW5nIHNlcmlhbGl6YXRpb25cbiAgICogQHJldHVybnMgRm9ybUdyb3VwIHwgRm9ybUNvbnRyb2xcbiAgICovXG4gIHNlcmlhbGl6ZU10bmFGb3JtSXRlbShpdGVtOiBGb3JtIHwgRm9ybUl0ZW1JbXBsPHVua25vd24+KTogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB7XG4gICAgcmV0dXJuIE10bmFXZlNlcmlhbGl6ZXIuZGV0ZXJtaW5lU2VyaWFsaXplRnVuY3Rpb25Ub1VzZShcbiAgICAgIGl0ZW0sXG4gICAgICB0aGlzLFxuICAgICAgdGhpcy5keW5hbWljRm9ybUNvbmRpdGlvbmFsLFxuICAgICAgdGhpcy5keW5hbWljUmVhY3RpdmVGb3JtQ29udHJvbEJ1aWxkZXJcbiAgICApO1xuICB9XG5cbiAgLy8jcmVnaW9uIEN1c3RvbSBDb21wb25lbnQvRnVuY3Rpb24gUmVnaXN0cmF0aW9uXG4gIGdldER5bmFtaWNDb21wb25lbnQoaWQ6IHN0cmluZyk6IFR5cGU8QmFzZUZvcm1JdGVtPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50cy5nZXQoaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIG1hcCBvZiBjb21wb25lbnRzIHRvIGJlIGR5bmFtaWNhbGx5IHJlbmRlcmVkIGluc2lkZSBhbiBNdG5hRm9ybS5cbiAgICpcbiAgICogQHBhcmFtIGNvbXBvbmVudHMgdGhlIG1hcCBvZiBjb21wb25lbnRzIHRoYXQgYSBWYWx1ZUl0ZW0gd2lsbCB1c2UgZm9yIHJlbmRlcmluZ1xuICAgKiBAcHJvcCBzdHJpbmcgLSB0aGUgdHlwZShpdGVtSWQgc3VmZml4KSBvZiBjb21wb25lbnQsIHVzZWQgZm9yIHJldHJpZXZhbFxuICAgKiBAcHJvcCBUeXBlIC0gdGhlIGNvbXBvbmVudCB0byBiZSByZW5kZXJlZCwgYW4gZXh0ZW5zaW9uIG9mIEJhc2VGb3JtSXRlbVxuICAgKi9cbiAgcmVnaXN0ZXJEeW5hbWljQ29tcG9uZW50cyhjb21wb25lbnRzOiBNYXA8c3RyaW5nLCBUeXBlPEJhc2VGb3JtSXRlbT4+KSB7XG4gICAgdGhpcy5jb21wb25lbnRzID0gY29tcG9uZW50cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGFuIE10bmFGb3JtIG9uIHRoZSBzZXJ2aWNlXG4gICAqIEBwYXJhbSBmb3JtIE10bmFGb3JtIHRvIGJlIHVzZWQgZm9yIGludGVybmFsIG1vZGlmaWNhdGlvblxuICAgKi9cbiAgc2V0TXRuYUZvcm0oZm9ybTogRm9ybSkge1xuICAgIHRoaXMuX210bmFGb3JtID0geyAuLi5mb3JtIH07XG4gICAgaWYgKCEhdGhpcy5pdGVtVG9nZ2xlUXVlICYmICEhdGhpcy5pdGVtVG9nZ2xlUXVlLmxlbmd0aCkge1xuICAgICAgLy8gVGhlIGZvcm0gbmVlZHMgdGltZSB0byByZXJlbmRlciwgc28gd2UgcHVzaCB0aGlzIGxvb3AgdG8gdGhlIGVuZCBvZiB0aGUgc3RhY2tcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pdGVtVG9nZ2xlUXVlKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBjaGFuZ2Ugb2YgdGhpcy5pdGVtVG9nZ2xlUXVlKSB7XG4gICAgICAgICAgICB0aGlzLnVpU2VydmljZS50b2dnbGVGb3JtSXRlbXMoY2hhbmdlLmVuYWJsZWRJdGVtcywgY2hhbmdlLmRpc2FibGVkSXRlbXMsICEhY2hhbmdlLmVuYWJsZSwgY2hhbmdlLmVuYWJsZXJJZCwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXRlbVRvZ2dsZVF1ZSA9IG51bGw7XG4gICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICAvLyBLZWVwIHRyYWNrIG9mIGFueSBlcnJvcnMgY29taW5nIGZyb20gdGhlIHNlcnZlciBhbmQgcmV2YWxpZGF0ZSB0aG9zZSBjb250cm9sc1xuICAgIHRoaXMuX3VwZGF0ZVNlcnZlclNpZGVFcnJvcnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbnkgRm9ybVNlcnZpY2UgZXh0ZW5zaW9uIGNsYXNzIHNob3VsZCBvdmVycmlkZSB0aGlzIG1ldGhvZCBpbiBvcmRlciB0byBjYWxsIHRoZVxuICAgKiBkeW5hbWljV2ViRm9ybUl0ZW1CdWlsZGVyL2R5bmFtaWNSZWFjdGl2ZUZvcm1Db250cm9sQnVpbGRlciBtZXRob2RzLiBEdXJpbmcgd2ViIGZvcm0gZ2VuZXJhdGlvbiwgdGhpcyBtZXRob2QgaXMgY2hlY2tlZCAmXG4gICAqIHRoZSBjdXJyZW50IEZvcm1JdGVtIGlzIHBhc3NlZCBpbiwgd2hpY2ggY2FuIGJlIHVzZWQgYnkgdGhlIG92ZXJyaWRpbmcgbWV0aG9kLlxuICAgKlxuICAgKiBAZXhhbXBsZSBkeW5hbWljRm9ybUNvbmRpdGlvbmFsID0gKGl0ZW06IEZvcm1JdGVtKSA9PiBpdGVtLml0ZW1JZC5pbmNsdWRlcyh7c29tZSBpdGVtSWR9KVxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkIGR5bmFtaWNGb3JtQ29uZGl0aW9uYWw6IChpdGVtOiBGb3JtSXRlbSkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBiZSBvdmVycmlkZGVuIGJ5IGV4dGVuZGVkIHNlcnZpY2UgaW4gb3JkZXIgdG8gaGFuZGxlIGZvcm0gZ2VuZXJhdGlvbiBmb3IgYW55IGFwcGxpY2F0aW9uLXNwZWNpZmljIGR5bmFtaWMgZm9ybSBjb21wb25lbnRzLlxuICAgKiBTaG91bGQgcmV0dXJuIGEgbmV3IFZhbHVlSXRlbTxhbnk+LlxuICAgKiBTdGVwIDNcbiAgICpcbiAgICogQGV4YW1wbGUgZHluYW1pY1dlYkZvcm1JdGVtQnVpbGRlcihzZWN0aW9uOiBTZWN0aW9uIHwgRm9ybSwgaXRlbTogRm9ybUl0ZW0sIG5nRm9ybVZhbHVlOiBhbnkpOiBWYWx1ZUl0ZW0ge1xuICAgKiBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZ2VuZXJhdGVOZXdWYWx1ZShpdGVtLCByZlZhbHVlLCBzZWN0aW9uKTtcbiAgICogcmV0dXJuIHsgLi4uaXRlbSwgLi4ubmV3VmFsdWUgfVxuICAgKiB9XG4gICAqIEBwYXJhbSBzZWN0aW9uIHRoZSBjdXJyZW50IEZvcm1TZWN0aW9uXG4gICAqIEBwYXJhbSBpdGVtIHRoZSBjdXJyZW50IEZvcm1JdGVtXG4gICAqIEBwYXJhbSBuZ0Zvcm1WYWx1ZSB0aGUgbmdGb3JtIEpTT04gdmFsdWVcbiAgICogQHJldHVybnMgYSBuZXcgVmFsdWVJdGVtXG4gICAqL1xuICBwcm90ZWN0ZWQgZHluYW1pY1dlYkZvcm1JdGVtQnVpbGRlcihcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbiAgICBzZWN0aW9uOiBGb3JtIHwgRm9ybUl0ZW1Hcm91cCB8IFJlcGVhdGFibGVJdGVtIHwgdW5kZWZpbmVkLFxuICAgIGl0ZW06IEZvcm1JdGVtLFxuICAgIG5nRm9ybVZhbHVlOiB1bmtub3duLFxuICAgIGRpc2FibGVkU3RhdGU/OiB7IFtpbnN0YW5jZUlkOiBzdHJpbmddOiBib29sZWFuIH1cbiAgICAvKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuICApOiBWYWx1ZUl0ZW08dW5rbm93bj4gfCBudWxsIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBiZSBvdmVycmlkZGVuIGJ5IGV4dGVuZGVkIHNlcnZpY2UgaW4gb3JkZXIgdG8gaGFuZGxlIHJlYWN0aXZlIGZvcm0gZ2VuZXJhdGlvblxuICAgKiBmb3IgYW55IGFwcGxpY2F0aW9uLXNwZWNpZmljIGR5bmFtaWMgZm9ybSBjb21wb25lbnRzLlxuICAgKiBTaG91bGQgcmV0dXJuIEZvcm1Db250cm9sIHwgRm9ybUdyb3VwLlxuICAgKlxuICAgKiBAZXhhbXBsZSBkeW5hbWljUmVhY3RpdmVGb3JtQ29udHJvbEJ1aWxkZXIoaXRlbTogRm9ybUl0ZW0pIHtcbiAgICogcmV0dXJuIHRoaXMuYnVpbGRGb3JtQ29udHJvbEZvckR5bmFtaWNDb21wb25lbnQoaXRlbTogRm9ybUl0ZW0pO1xuICAgKiB9XG4gICAqIEBwYXJhbSBpdGVtIEZvcm1JdGVtIHVzZWQgdG8gZ2VuZXJhdGUgZm9ybSBjb250cm9sc1xuICAgKiBAcmV0dXJucyBGb3JtQ29udHJvbCB8IEZvcm1Hcm91cFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwcm90ZWN0ZWQgZHluYW1pY1JlYWN0aXZlRm9ybUNvbnRyb2xCdWlsZGVyKGl0ZW06IEZvcm1JdGVtKTogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gSU5URVJOQUwgTUVUSE9EU1xuICAvKipcbiAgICogUmVjdXJzaXZlbHkgdHJhdmVyc2VzIGEgRm9ybSB0byBpbnNlcnQgb3IgcmVtb3ZlIGEgZGVzaWduYXRlZCBGb3JtSXRlbS5cbiAgICogQHBhcmFtIGl0ZW0gTXRuYUZvcm0gdG8gc2VhcmNoIHRocm91Z2hcbiAgICogQHBhcmFtIGNoYW5nZTogTXRuYVdmRm9ybUl0ZW1DaGFuZ2UgZm9yIGFkZGluZyBvciByZW1vdmluZyBhIEZvcm1JdGVtXG4gICAqIEBwYXJhbSBuZXdJdGVtIEZvcm1JdGVtIHRvIGFkZCB0byBpdHMgcGFyZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgX21vZGlmeUZvcm1JdGVtPEkgZXh0ZW5kcyBGb3JtIHwgU2VjdGlvbiB8IEZvcm1JdGVtIHwgRm9ybUl0ZW1JbXBsPHVua25vd24+PihcbiAgICBpdGVtOiBJLFxuICAgIGNoYW5nZTogTXRuYVdmRm9ybUl0ZW1DaGFuZ2UsXG4gICAgbmV3SXRlbT86IEZvcm1JdGVtXG4gICk6IEZvcm0gfCBTZWN0aW9uIHwgRm9ybUl0ZW0gfCBGb3JtSXRlbUltcGw8dW5rbm93bj4ge1xuICAgIGlmICghY2hhbmdlLnBhcmVudElkcy5sZW5ndGgpIHtcbiAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlIHJlYWNoIHRoZSBQYXJlbnQgRm9ybUl0ZW1cbiAgICAgIGlmIChjaGFuZ2UuYWN0aW9uVHlwZSA9PT0gJ1JFUExBQ0UnKSB7XG4gICAgICAgIGlmICgnaXRlbXMnIGluIGl0ZW0pIHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IGl0ZW0uaXRlbXMuZmluZEluZGV4KChpKSA9PiBpLmluc3RhbmNlSWQgPT09IG5ld0l0ZW0/Lmluc3RhbmNlSWQpO1xuICAgICAgICAgIGNvbnN0IG5ld0l0ZW1zID0gWy4uLml0ZW0uaXRlbXNdO1xuICAgICAgICAgIGlmIChuZXdJdGVtKSB7XG4gICAgICAgICAgICBuZXdJdGVtcy5zcGxpY2UoaW5kZXgsIDEsIG5ld0l0ZW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4geyAuLi5pdGVtLCBpdGVtczogbmV3SXRlbXMgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0gZWxzZSBpZiAoaXNSZXBlYXRhYmxlSXRlbShpdGVtKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgaXRlbXM6IGNoYW5nZS5hY3Rpb25UeXBlID09PSAnQUREJyA/IGl0ZW0uaXRlbXMuY29uY2F0KG5ld0l0ZW0gfHwgW10pIDogaXRlbS5pdGVtcy5maWx0ZXIoKGkpID0+IGkuaW5zdGFuY2VJZCAhPT0gY2hhbmdlLmlkKSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc0Zvcm0oaXRlbSkgfHwgaXNTZWN0aW9uKGl0ZW0pIHx8IGlzRm9ybUl0ZW1Hcm91cEltcGwoaXRlbSkgfHwgaXNSZXBlYXRhYmxlSXRlbShpdGVtKSkge1xuICAgICAgY29uc3QgaXRlbXMgPSBbLi4uaXRlbS5pdGVtc107XG4gICAgICBjb25zdCBpbmRleFRvTW9kaWZ5ID0gaXRlbS5pdGVtcy5maW5kSW5kZXgoKGkpID0+IGkuaW5zdGFuY2VJZCA9PT0gY2hhbmdlLnBhcmVudElkc1swXSk7XG4gICAgICBjb25zdCBpdGVtVG9Nb2RpZnkgPSBpdGVtLml0ZW1zW2luZGV4VG9Nb2RpZnldIGFzIFBhcmVudEl0ZW1VbmlvbjtcblxuICAgICAgaXRlbXMuc3BsaWNlKFxuICAgICAgICBpbmRleFRvTW9kaWZ5LFxuICAgICAgICAxLFxuICAgICAgICB0aGlzLl9tb2RpZnlGb3JtSXRlbShcbiAgICAgICAgICBpdGVtVG9Nb2RpZnksXG4gICAgICAgICAge1xuICAgICAgICAgICAgLi4uY2hhbmdlLFxuICAgICAgICAgICAgcGFyZW50SWRzOiBjaGFuZ2UucGFyZW50SWRzLnNsaWNlKDEpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbmV3SXRlbVxuICAgICAgICApIGFzIEZvcm1JdGVtXG4gICAgICApO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgaXRlbXMsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoaXNUYWJsZUl0ZW0oaXRlbSkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9tb2RpZnlUYWJsZUl0ZW0oaXRlbSBhcyBUYWJsZUl0ZW0sIGNoYW5nZSwgbmV3SXRlbSk7XG4gICAgfSBlbHNlIGlmIChpc09wdGlvbkl0ZW1JbXBsKGl0ZW0pIHx8IGlzT3B0aW9uR3JvdXBJdGVtSW1wbChpdGVtKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX21vZGlmeU9wdGlvbkl0ZW0oXG4gICAgICAgIGl0ZW0gYXMgT3B0aW9uSXRlbUltcGw8T3B0aW9uPHVua25vd24+LCB1bmtub3duPiB8IE9wdGlvbkdyb3VwSXRlbUltcGw8T3B0aW9uPHVua25vd24+PixcbiAgICAgICAgY2hhbmdlLFxuICAgICAgICBuZXdJdGVtXG4gICAgICApWzBdO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmF2ZXJzZXMgYW4gT3B0aW9uSXRlbU1hcCBvZiBhIEZvcm1JdGVtIHRvIGluc2VydCBvciByZW1vdmUgYSBkZXNpZ25hdGVkIEZvcm1JdGVtXG4gICAqIEBwYXJhbSBvcHRpb25JdGVtIEZvcm1JdGVtIHdpdGggYW4gb3B0aW9uSXRlbU1hcCwgZS5nLiBPcHRpb25JdGVtSW1wbCB8IE9wdGlvbkdyb3VwSXRlbUltcGxcbiAgICogQHBhcmFtIGNoYW5nZSBNdG5hV2ZGb3JtSXRlbUNoYW5nZSBmb3IgYWRkaW5nIG9yIHJlbW92aW5nIGEgRm9ybUl0ZW1cbiAgICogQHBhcmFtIG5ld0l0ZW0gRm9ybUl0ZW0gdG8gYmUgYWRkZWQgdG8gaXRzIHBhcmVudFxuICAgKiBAcmV0dXJucyBGb3JtSXRlbSB3aXRoIGFuIG9wdGlvbkl0ZW1NYXAgY29udGFpbmluZyBGb3JtSXRlbXNcbiAgICovXG4gIHByaXZhdGUgX21vZGlmeU9wdGlvbkl0ZW0oXG4gICAgb3B0aW9uSXRlbTogT3B0aW9uSXRlbUltcGw8T3B0aW9uPHVua25vd24+LCB1bmtub3duPiB8IE9wdGlvbkdyb3VwSXRlbUltcGw8T3B0aW9uPHVua25vd24+PixcbiAgICBjaGFuZ2U6IE10bmFXZkZvcm1JdGVtQ2hhbmdlLFxuICAgIG5ld0l0ZW0/OiBGb3JtSXRlbVxuICApOiBbT3B0aW9uSXRlbUltcGw8T3B0aW9uPHVua25vd24+LCB1bmtub3duPiB8IE9wdGlvbkdyb3VwSXRlbUltcGw8T3B0aW9uPHVua25vd24+PiwgYm9vbGVhbl0ge1xuICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgIGNvbnN0IG9wdGlvbkl0ZW1NYXA6IHsgW2lkOiBzdHJpbmddOiBGb3JtSXRlbSB9ID0ge307XG4gICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBtYXAgYW5kIHNldCB0aGUgaXRlbXMgdG8gYSBuZXcgbWFwXG4gICAgLy8gQ2hlY2sgaWYgYW55IEZvcm1JdGVtIGluIHRoZSBtYXAgbWF0Y2hlcyB0aGUgbmV4dCBwYXJlbnQgSURcbiAgICBmb3IgKGNvbnN0IGlkIGluIG9wdGlvbkl0ZW0ub3B0aW9uSXRlbU1hcCkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvcHRpb25JdGVtLm9wdGlvbkl0ZW1NYXAsIGlkKSkge1xuICAgICAgICAvLyBJZiBvbmUgbWF0Y2hlcywgbW9kaWZ5ICYgc2V0IGl0IG9uIHRoZSBuZXcgbWFwXG4gICAgICAgIGlmIChvcHRpb25JdGVtLm9wdGlvbkl0ZW1NYXBbaWRdLmluc3RhbmNlSWQgPT09IGNoYW5nZS5wYXJlbnRJZHNbMF0pIHtcbiAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgb3B0aW9uSXRlbU1hcFtpZF0gPSB0aGlzLl9tb2RpZnlGb3JtSXRlbShcbiAgICAgICAgICAgIG9wdGlvbkl0ZW0ub3B0aW9uSXRlbU1hcFtpZF0gYXMgUGFyZW50SXRlbVVuaW9uLFxuICAgICAgICAgICAgeyAuLi5jaGFuZ2UsIHBhcmVudElkczogY2hhbmdlLnBhcmVudElkcy5zbGljZSgxKSB9LFxuICAgICAgICAgICAgbmV3SXRlbVxuICAgICAgICAgICkgYXMgRm9ybUl0ZW07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3B0aW9uSXRlbU1hcFtpZF0gPSBvcHRpb25JdGVtLm9wdGlvbkl0ZW1NYXBbaWRdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIHJldHVybiB0aGUgaXRlbSB3aXRoIGl0cyBuZXcgb3B0aW9uSXRlbU1hcCwgJiB3aGV0aGVyIHdlIGZvdW5kIHRoZSBtYXRjaGluZyBpdGVtXG4gICAgcmV0dXJuIFt7IC4uLm9wdGlvbkl0ZW0sIG9wdGlvbkl0ZW1NYXAgfSwgZm91bmRdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYXZlcnNlcyB0YWJsZSByb3dzIHRvIGluc2VydCBvciByZW1vdmUgYSBGb3JtSXRlbVxuICAgKiBAcGFyYW0gdGFibGVJdGVtIFRhYmxlSXRlbSB0byB0cmF2ZXJzZVxuICAgKiBAcGFyYW0gY2hhbmdlIE10bmFXZkZvcm1JdGVtQ2hhbmdlIGZvciBhZGRpbmcgb3IgcmVtb3ZpbmcgYSBGb3JtSXRlbVxuICAgKiBAcGFyYW0gbmV3SXRlbSBGb3JtSXRlbSB0byBiZSBhZGRlZCB0byBpdHMgcGFyZW50XG4gICAqIEByZXR1cm5zIFRhYmxlSXRlbSB3aXRoIGEgRm9ybUl0ZW0gYWRkZWQgb3IgcmVtb3ZlZFxuICAgKi9cbiAgcHJpdmF0ZSBfbW9kaWZ5VGFibGVJdGVtKHRhYmxlSXRlbTogVGFibGVJdGVtLCBjaGFuZ2U6IE10bmFXZkZvcm1JdGVtQ2hhbmdlLCBuZXdJdGVtPzogRm9ybUl0ZW0pOiBUYWJsZUl0ZW0ge1xuICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgIC8vIE1hcCB0aGUgdGFibGUgcm93cyB0byBmaW5kIHRoZSBGb3JtSXRlbSB3aXRoIG1hdGNoaW5nIGluc3RhbmNlSWRcbiAgICBjb25zdCB0YWJsZVJvd3M6IFRhYmxlUm93SXRlbVtdID0gdGFibGVJdGVtLnRhYmxlUm93cy5tYXAoKHJvdzogVGFibGVSb3dJdGVtKSA9PiB7XG4gICAgICAvLyBJZiB0aGUgaXRlbSB3YXMgZm91bmQsIHNraXAgbWFwcGluZyBmdXJ0aGVyIHJvd3NcbiAgICAgIGlmICghZm91bmQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5yb3csXG4gICAgICAgICAgaXRlbXM6IHJvdy5pdGVtcy5tYXAoKHJvd0l0ZW06IEZvcm1JdGVtKSA9PiB7XG4gICAgICAgICAgICAvLyBJZiB3ZSBmb3VuZCB0aGUgbmV4dCBtYXRjaGluZyBGb3JtSXRlbSwgdG9nZ2xlICdmb3VuZCcsIGFuZCByZXR1cm4gdGhlIG1vZGlmaWVkIEZvcm1JdGVtXG4gICAgICAgICAgICBpZiAoISFyb3dJdGVtICYmIHJvd0l0ZW0uaW5zdGFuY2VJZCA9PT0gY2hhbmdlLnBhcmVudElkc1swXSkge1xuICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb2RpZnlGb3JtSXRlbShcbiAgICAgICAgICAgICAgICByb3dJdGVtIGFzIFBhcmVudEl0ZW1VbmlvbixcbiAgICAgICAgICAgICAgICB7IC4uLmNoYW5nZSwgcGFyZW50SWRzOiBjaGFuZ2UucGFyZW50SWRzLnNsaWNlKDEpIH0sXG4gICAgICAgICAgICAgICAgbmV3SXRlbVxuICAgICAgICAgICAgICApIGFzIEZvcm1JdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgdGhlIEZvcm1JdGVtIGluc3RhbmNlSWQgZG9lc24ndCBtYXRjaCwgYnV0IGl0IGhhcyBGb3JtSXRlbXMgaW4gaXRzICdvcHRpb25JdGVtTWFwJyxcbiAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgaWYgYSBtYXRjaGluZyBGb3JtSXRlbSBleGlzdHMgaW4gaXRzIG1hcFxuICAgICAgICAgICAgaWYgKCdvcHRpb25JdGVtTWFwJyBpbiByb3dJdGVtKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJldHVybmVkID0gdGhpcy5fbW9kaWZ5T3B0aW9uSXRlbShcbiAgICAgICAgICAgICAgICByb3dJdGVtIGFzIE9wdGlvbkl0ZW1JbXBsPE9wdGlvbjx1bmtub3duPiwgdW5rbm93bj4gfCBPcHRpb25Hcm91cEl0ZW1JbXBsPE9wdGlvbjx1bmtub3duPj4sXG4gICAgICAgICAgICAgICAgY2hhbmdlLFxuICAgICAgICAgICAgICAgIG5ld0l0ZW1cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgZm91bmQgPSByZXR1cm5lZFsxXTtcbiAgICAgICAgICAgICAgcmV0dXJuIHJldHVybmVkWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJvd0l0ZW07XG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gcm93O1xuICAgIH0pO1xuICAgIHJldHVybiB7IC4uLnRhYmxlSXRlbSwgdGFibGVSb3dzIH07XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBvciByZW1vdmVzIGluc3RhbmNlSWRzIGZyb20gdGhlICdpdGVtSWRzJyBpbiBhIEZvcm1JdGVtJ3MgY29uZGl0aW9uXG4gICAqIEBwYXJhbSBmb3JtIE10bmFGb3JtIHRvIHNlYXJjaCB0aHJvdWdoICYgcmVwbGFjZSBmb3JtaXRlbXMgd2l0aCB0aGUgbmV3IGNvbmRpdGlvblxuICAgKiBAcGFyYW0gY2hhbmdlIFRoZSBjaGFuZ2UgdGhhdCByZWNlbnRseSBvY2N1cnJlZCBpbiB0aGUgbXRuYUZvcm1cbiAgICovXG4gIHByaXZhdGUgX21vZGlmeUZvcm1JdGVtQ29uZGl0aW9ucyhmb3JtOiBGb3JtLCBjaGFuZ2U6IE10bmFXZkZvcm1JdGVtQ2hhbmdlKTogRm9ybSB7XG4gICAgbGV0IG5ld0Zvcm0gPSBmb3JtO1xuICAgIGlmIChjaGFuZ2UuY29uZGl0aW9uQ2hhbmdlcykge1xuICAgICAgY29uc3QgZm9ybUl0ZW1zOiB7IFtrZXk6IHN0cmluZ106IEZvcm1JdGVtIHwgQ29uZGl0aW9uYWxJdGVtIH0gPSB7fTtcbiAgICAgIGZvciAoY29uc3QgY2Mgb2YgY2hhbmdlLmNvbmRpdGlvbkNoYW5nZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCB0b2dnbGVkSWQgb2YgWy4uLmNjLmVuYWJsZWRJdGVtcywgLi4uY2MuZGlzYWJsZWRJdGVtc10pIHtcbiAgICAgICAgICBsZXQgZm9ybUl0ZW0gPSBmb3JtSXRlbXNbdG9nZ2xlZElkXTtcbiAgICAgICAgICBjb25zdCBmb3JtSXRlbUNvbXBvbmVudCA9IHRoaXMudWlTZXJ2aWNlLmdldEl0ZW0odG9nZ2xlZElkKTtcbiAgICAgICAgICBpZiAoIWZvcm1JdGVtICYmIGZvcm1JdGVtQ29tcG9uZW50Py5pdGVtKSB7XG4gICAgICAgICAgICBmb3JtSXRlbSA9IGZvcm1JdGVtQ29tcG9uZW50Py5pdGVtO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNDb25kaXRpb25hbEl0ZW0oZm9ybUl0ZW0pICYmIGZvcm1JdGVtLmNvbmRpdGlvbikge1xuICAgICAgICAgICAgY29uc3QgaXRlbUNvbmRpdGlvbkl0ZW1JZHMgPSBmb3JtSXRlbS5jb25kaXRpb24uaXRlbUlkcyB8fCBbXTtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1JZHMgPVxuICAgICAgICAgICAgICBjaGFuZ2UuYWN0aW9uVHlwZSA9PT0gJ0FERCdcbiAgICAgICAgICAgICAgICA/IFsuLi5pdGVtQ29uZGl0aW9uSXRlbUlkcywgY2MuZW5hYmxlcklkXVxuICAgICAgICAgICAgICAgIDogaXRlbUNvbmRpdGlvbkl0ZW1JZHMuZmlsdGVyKChpKSA9PiBpICE9PSBjYy5lbmFibGVySWQpO1xuXG4gICAgICAgICAgICBjb25zdCBuZXdJdGVtOiBDb25kaXRpb25hbEl0ZW0gPSB7IC4uLmZvcm1JdGVtLCBjb25kaXRpb246IHsgLi4uZm9ybUl0ZW0uY29uZGl0aW9uLCBpdGVtSWRzIH0gfTtcbiAgICAgICAgICAgIGNvbnN0IG5ld0NoYW5nZSA9IG5ldyBNdG5hV2ZGb3JtSXRlbUNoYW5nZShuZXdJdGVtLmluc3RhbmNlSWQsIGZvcm1JdGVtQ29tcG9uZW50Py5wYXJlbnRJZHMgfHwgW10sICdSRVBMQUNFJyk7XG5cbiAgICAgICAgICAgIG5ld0Zvcm0gPSB0aGlzLl9tb2RpZnlGb3JtSXRlbShuZXdGb3JtLCBuZXdDaGFuZ2UsIG5ld0l0ZW0gYXMgRm9ybUl0ZW0gJiBDb25kaXRpb25hbEl0ZW0pIGFzIEZvcm07XG4gICAgICAgICAgICBmb3JtSXRlbXNbdG9nZ2xlZElkXSA9IG5ld0l0ZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2UuYWN0aW9uVHlwZSA9PT0gJ1JFTU9WRScpIHtcbiAgICAgICAgICB0aGlzLnVpU2VydmljZS50b2dnbGVGb3JtSXRlbXMoY2MuZW5hYmxlZEl0ZW1zLCBjYy5kaXNhYmxlZEl0ZW1zLCAhIWNjLmVuYWJsZSwgY2MuZW5hYmxlcklkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3Rm9ybTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBtYXAgb2YgYWxsIGluc3RhbmNlSWRzIGluc2lkZSBhbiBpdGVtLiBDaGVja3MgJ2l0ZW1zJyAmICdvcHRpb25JdGVtTWFwJ1xuICAgKiBAcGFyYW0gaXRlbSBJdGVtIHRvIHJlY3Vyc2VcbiAgICogQHBhcmFtIGlkTWFwIG1hcCBvZiB0aGUgaXRlbSdzIGludGVybmFsIGluc3RhbmNlSWRzXG4gICAqL1xuICBwcml2YXRlIF9idWlsZEludGVybmFsSWRzTWFwKGl0ZW06IEZvcm1JdGVtLCBpZE1hcDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4pIHtcbiAgICBpZE1hcFtpdGVtLmluc3RhbmNlSWRdID0gdHJ1ZTtcbiAgICBpZiAoaXNUeXBlPHsgaXRlbXM6IEZvcm1JdGVtW10gfT4oaXRlbSwgJ2l0ZW1zJykpIHtcbiAgICAgIGNvbnN0IGl0ZW1zOiBGb3JtSXRlbVtdID0gaXRlbS5pdGVtcztcbiAgICAgIGZvciAoY29uc3Qgc3ViSXRlbSBvZiBpdGVtcykge1xuICAgICAgICB0aGlzLl9idWlsZEludGVybmFsSWRzTWFwKHN1Ykl0ZW0sIGlkTWFwKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzVHlwZTx7IG9wdGlvbkl0ZW1NYXA6IHsgW2lkOiBzdHJpbmddOiBGb3JtSXRlbSB9IH0+KGl0ZW0sICdvcHRpb25JdGVtTWFwJykpIHtcbiAgICAgIGNvbnN0IG1hcDogeyBbaWQ6IHN0cmluZ106IEZvcm1JdGVtIH0gPSBpdGVtLm9wdGlvbkl0ZW1NYXA7XG4gICAgICBmb3IgKGNvbnN0IGlkIGluIG1hcCkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1hcCwgaWQpKSB7XG4gICAgICAgICAgdGhpcy5fYnVpbGRJbnRlcm5hbElkc01hcChtYXBbaWRdLCBpZE1hcCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIGFuIGFycmF5IG9mIENvbmRpdGlvbkNoYW5nZXMgdG8gYmUgaW1wbGVtZW50ZWQgaW4gYW4gTXRuYUZvcm0uXG4gICAqIEBwYXJhbSBpdGVtIEZvcm1JdGVtIHRoYXQgd2FzIGFkZGVkL3JlbW92ZWQsIHdoaWNoIGFmZmVjdHMgY29uZGl0aW9ucyBvZiBvdGhlciBGb3JtSXRlbXNcbiAgICogQHBhcmFtIGNoYW5nZXMgQXJyYXkgdG8gYnVpbGQgdXBcbiAgICogQHBhcmFtIGludGVybmFsSWRNYXAgTWFwIG9mIGFsbCBpbnN0YW5jZUlkcyBsb2NhdGVkIGluIHRoZSBpdGVtOyBpbiBvcmRlciB0byBleGNsdWRlIHRoZW0gZnJvbSB0aGUgY29uZGl0aW9uIGNoYW5nZXNcbiAgICogQHBhcmFtIGFjdGlvbiBXaGV0aGVyIHRoZSBpdGVtIHdhcyBhZGRlZCBvciByZW1vdmVkXG4gICAqL1xuICBwcml2YXRlIF9idWlsZENvbmRpdGlvbkNoYW5nZUFycmF5KFxuICAgIGl0ZW06IEZvcm1JdGVtLFxuICAgIGNoYW5nZXM6IEFycmF5PENvbmRpdGlvbkNoYW5nZT4sXG4gICAgaW50ZXJuYWxJZE1hcDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4sXG4gICAgYWN0aW9uPzogTXRuYVdmRm9ybUl0ZW1DaGFuZ2VBY3Rpb25cbiAgKSB7XG4gICAgaWYgKGlzT3B0aW9uSXRlbUltcGwoaXRlbSkpIHtcbiAgICAgIGNvbnN0IGVuYWJsZSA9ICEhYWN0aW9uICYmIGFjdGlvbiA9PT0gJ0FERCcgPyBpdGVtLm9wdGlvbi5zZWxlY3RlZCB8fCBpdGVtLnZhbHVlID09PSBpdGVtLm9wdGlvbi5vcHRpb24uaWQgOiBmYWxzZTtcbiAgICAgIHRoaXMuX3B1c2hDb25kaXRpb25Ub0FycmF5KGl0ZW0uaW5zdGFuY2VJZCwgaXRlbS5vcHRpb24uZW5hYmxlZEl0ZW1zLCBpdGVtLm9wdGlvbi5kaXNhYmxlZEl0ZW1zLCBjaGFuZ2VzLCBpbnRlcm5hbElkTWFwLCBlbmFibGUpO1xuICAgICAgdGhpcy5fYnVpbGRBcnJheUZyb21PcHRpb25JdGVtTWFwKGl0ZW0sIGNoYW5nZXMsIGludGVybmFsSWRNYXApO1xuICAgIH0gZWxzZSBpZiAoaXNPcHRpb25Hcm91cEl0ZW1JbXBsKGl0ZW0pKSB7XG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBpdGVtLm9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgZW5hYmxlID1cbiAgICAgICAgICAhIWFjdGlvbiAmJiBhY3Rpb24gPT09ICdBREQnID8gb3B0aW9uLnNlbGVjdGVkIHx8ICghIWl0ZW0udmFsdWUgJiYgaXRlbS52YWx1ZS5zb21lKCh2KSA9PiB2ID09PSBvcHRpb24ub3B0aW9uLmlkKSkgOiBmYWxzZTtcbiAgICAgICAgdGhpcy5fcHVzaENvbmRpdGlvblRvQXJyYXkoaXRlbS5pbnN0YW5jZUlkLCBvcHRpb24uZW5hYmxlZEl0ZW1zLCBvcHRpb24uZGlzYWJsZWRJdGVtcywgY2hhbmdlcywgaW50ZXJuYWxJZE1hcCwgZW5hYmxlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2J1aWxkQXJyYXlGcm9tT3B0aW9uSXRlbU1hcChpdGVtLCBjaGFuZ2VzLCBpbnRlcm5hbElkTWFwLCBhY3Rpb24pO1xuICAgIH0gZWxzZSBpZiAoaXNUeXBlPHsgaXRlbXM6IEZvcm1JdGVtW10gfT4oaXRlbSwgJ2l0ZW1zJykpIHtcbiAgICAgIGNvbnN0IGl0ZW1zOiBGb3JtSXRlbVtdID0gaXRlbS5pdGVtcztcbiAgICAgIGZvciAoY29uc3Qgc3ViSXRlbSBvZiBpdGVtcykge1xuICAgICAgICB0aGlzLl9idWlsZENvbmRpdGlvbkNoYW5nZUFycmF5KHN1Ykl0ZW0sIGNoYW5nZXMsIGludGVybmFsSWRNYXAsIGFjdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhbiBhcnJheSBvZiBDb25kaXRpb25DaGFuZ2VzIGZyb20gYW4gaXRlbSdzIG9wdGlvbkl0ZW1NYXBcbiAgICogQHBhcmFtIGl0ZW0gRm9ybUl0ZW0gd2l0aCBhbiBvcHRpb25JdGVtTWFwXG4gICAqIEBwYXJhbSBjb25kaXRpb25zIEFycmF5IG9mIENvbmRpdGlvbkNoYW5nZXMgdG8gcHVzaCBvbiBuZXcgY2hhbmdlc1xuICAgKiBAcGFyYW0gaXRlbU1hcCBtYXAgb2YgaW5zdGFuY2VJZHMgZXhpc2l0aW5nIGluIGFuIGl0ZW07IGluIG9yZGVyIHRvIGV4Y2x1ZGUgdGhlbSBmcm9tIHRoZSBjaGFuZ2VzXG4gICAqIEBwYXJhbSBhY3Rpb24gV2hldGhlciBhbiBpdGVtIHdhcyBhZGRlZCBvciByZW1vdmVkXG4gICAqL1xuICBwcml2YXRlIF9idWlsZEFycmF5RnJvbU9wdGlvbkl0ZW1NYXAoXG4gICAgaXRlbTogT3B0aW9uSXRlbUltcGw8T3B0aW9uPHVua25vd24+LCB1bmtub3duPiB8IE9wdGlvbkdyb3VwSXRlbUltcGw8T3B0aW9uPHVua25vd24+PixcbiAgICBjb25kaXRpb25zOiBBcnJheTxDb25kaXRpb25DaGFuZ2U+LFxuICAgIGl0ZW1NYXA6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+LFxuICAgIGFjdGlvbj86IE10bmFXZkZvcm1JdGVtQ2hhbmdlQWN0aW9uXG4gICkge1xuICAgIGlmIChpdGVtLm9wdGlvbkl0ZW1NYXApIHtcbiAgICAgIGZvciAoY29uc3QgaWQgaW4gaXRlbS5vcHRpb25JdGVtTWFwKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbS5vcHRpb25JdGVtTWFwLCBpZCkpIHtcbiAgICAgICAgICBjb25zdCBzdWJJdGVtID0gaXRlbS5vcHRpb25JdGVtTWFwW2lkXTtcbiAgICAgICAgICB0aGlzLl9idWlsZENvbmRpdGlvbkNoYW5nZUFycmF5KHN1Ykl0ZW0sIGNvbmRpdGlvbnMsIGl0ZW1NYXAsIGFjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHVzaGVzIGEgbmV3IENvbmRpdGlvbkNoYW5nZSBvbnRvIHRoZSBjb25kaXRpb25zIGFycmF5LiBJZiBhIENvbmRpdGlvbkNoYW5nZSB3aXRoIG1hdGNoaW5nIGlkIGV4aXN0cyxcbiAgICogaXQgbWVyZ2VzIHRoZSBuZXcgdmFsdWVzIGludG8gaXRcbiAgICogQHBhcmFtIGVuYWJsZXJJZCBpbnN0YW5jZUlkIG9mIHRoZSBpdGVtIHRoYXQgZW5hYmxlcyBvdGhlciBGb3JtSXRlbXNcbiAgICogQHBhcmFtIGVuYWJsZWQgdGhlIGl0ZW0ncyAnZW5hYmxlZEl0ZW1zJyBhcnJheVxuICAgKiBAcGFyYW0gZGlzYWJsZWQgdGhlIGl0ZW0ncyAnZGlzYWJsZWRJdGVtcycgYXJyYXlcbiAgICogQHBhcmFtIGNvbmRpdGlvbnMgQXJyYXkgb2YgQ29uZGl0aW9uQ2hhbmdlcyB0byBidWlsZCB1cFxuICAgKiBAcGFyYW0gaXRlbU1hcCBtYXAgb2YgaW5zdGFuY2VJZHMgaW5zaWRlIGFuIGl0ZW07IHRvIGVuc3VyZSBubyBpbnRlcm5hbCBpZHMgYXJlIGluY2x1ZGVkIGluIGEgY2hhbmdlXG4gICAqIEBwYXJhbSBlbmFibGUgV2hldGhlciB0aGUgJ2VuYWJsZWRJdGVtcycgc2hvdWxkIHRvZ2dsZWQgZW5hYmxlZFxuICAgKi9cbiAgcHJpdmF0ZSBfcHVzaENvbmRpdGlvblRvQXJyYXkoXG4gICAgZW5hYmxlcklkOiBzdHJpbmcsXG4gICAgZW5hYmxlZDogc3RyaW5nW10sXG4gICAgZGlzYWJsZWQ6IHN0cmluZ1tdLFxuICAgIGNvbmRpdGlvbnM6IEFycmF5PENvbmRpdGlvbkNoYW5nZT4sXG4gICAgaXRlbU1hcDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4sXG4gICAgZW5hYmxlOiBib29sZWFuXG4gICkge1xuICAgIGNvbnN0IGVuYWJsZWRJdGVtcyA9IGVuYWJsZWQuZmlsdGVyKChlKSA9PiAhaXRlbU1hcFtlXSk7XG4gICAgY29uc3QgZGlzYWJsZWRJdGVtcyA9IGRpc2FibGVkLmZpbHRlcigoZCkgPT4gIWl0ZW1NYXBbZF0pO1xuICAgIGlmICghIWVuYWJsZWRJdGVtcy5sZW5ndGggfHwgISFkaXNhYmxlZEl0ZW1zLmxlbmd0aCkge1xuICAgICAgY29uc3QgaW5kZXggPSBjb25kaXRpb25zLmZpbmRJbmRleCgoYykgPT4gYy5lbmFibGVySWQgPT09IGVuYWJsZXJJZCk7XG4gICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgIGNvbmRpdGlvbnMucHVzaCh7IGVuYWJsZXJJZDogZW5hYmxlcklkLCBlbmFibGVkSXRlbXMsIGRpc2FibGVkSXRlbXMsIGVuYWJsZSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHByZXYgPSBjb25kaXRpb25zW2luZGV4XTtcbiAgICAgICAgY29uc3QgbmV3SWQ6IENvbmRpdGlvbkNoYW5nZSA9IHtcbiAgICAgICAgICBlbmFibGVySWQsXG4gICAgICAgICAgZW5hYmxlZEl0ZW1zOiBbLi4ucHJldi5lbmFibGVkSXRlbXMsIC4uLmVuYWJsZWRJdGVtc10sXG4gICAgICAgICAgZGlzYWJsZWRJdGVtczogWy4uLnByZXYuZGlzYWJsZWRJdGVtcywgLi4uZGlzYWJsZWRJdGVtc10sXG4gICAgICAgICAgZW5hYmxlLFxuICAgICAgICB9O1xuICAgICAgICBjb25kaXRpb25zLnNwbGljZShpbmRleCwgMSwgbmV3SWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZSBhbGwgdmFsaWRhdGlvbiBlcnJvcnMgb24gdGhlIHNlcnZpY2UuXG4gICAqIFJldmFsaWRhdGUgZm9ybSBjb250cm9scyB0aGF0IHByZXZpb3VzbHkgaGFkIGVycm9ycyBvciBoYXZlIG5ldyBlcnJvcnMgbm93LlxuICAgKi9cbiAgcHJpdmF0ZSBfdXBkYXRlU2VydmVyU2lkZUVycm9ycygpIHtcbiAgICAvLyBLZWVwIHRyYWNrIG9mIElEcyBmb3IgZWFjaCBjb250cm9sIHRoYXQgbmVlZHMgdG8gYmUgcmV2YWxpZGF0ZWRcbiAgICBjb25zdCBjb250cm9sSWRzVG9SZXZhbGlkYXRlID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICAvLyBDb2xsZWN0IGNvbnRyb2xzIHByZXZpb3VzbHkgaW4gZXJyb3IgdG8gcmV2YWxpZGF0ZVxuICAgIGlmICh0aGlzLl9mb3JtSXRlbVZhbGlkYXRpb25SZXN1bHRzKSB7XG4gICAgICBmb3IgKGNvbnN0IGlkIGluIHRoaXMuX2Zvcm1JdGVtVmFsaWRhdGlvblJlc3VsdHMpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLl9mb3JtSXRlbVZhbGlkYXRpb25SZXN1bHRzLCBpZCkpIHtcbiAgICAgICAgICBjb250cm9sSWRzVG9SZXZhbGlkYXRlLmFkZChpZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGVhciBvdXQgYWxsIHByZXZpb3VzIHN0b3JlZCBlcnJvcnNcbiAgICB0aGlzLl9mb3JtSXRlbVZhbGlkYXRpb25SZXN1bHRzID0ge307XG4gICAgaWYgKHRoaXMuX210bmFGb3JtPy52YWxpZGF0aW9uUmVzdWx0KSB7XG4gICAgICBmb3IgKGNvbnN0IHJlc3VsdCBvZiB0aGlzLl9tdG5hRm9ybS52YWxpZGF0aW9uUmVzdWx0LmZvcm1JdGVtVmFsaWRhdGlvblJlc3VsdHMpIHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uU3RhdHVzID09PSAnRVJST1JTJykge1xuICAgICAgICAgIC8vIFN0b3JlIGVycm9ycyBzbyB0aGF0IHRoZSB2YWxpZGF0aW9uUmVzdWx0VmFsaWRhdG9yIGNhbiB2YWxpZGF0ZSBlYWNoIGNvbnRyb2xcbiAgICAgICAgICB0aGlzLl9mb3JtSXRlbVZhbGlkYXRpb25SZXN1bHRzW3Jlc3VsdC5pZF0gPSByZXN1bHQ7XG4gICAgICAgICAgLy8gV2UgbmVlZCB0byByZXZhbGlkYXRlIHRoZXNlIGNvbnRyb2xzIHRoYXQgaGF2ZSBlcnJvcnNcbiAgICAgICAgICBjb250cm9sSWRzVG9SZXZhbGlkYXRlLmFkZChyZXN1bHQuaWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gT25seSByZXZhbGlkYXRlIGNvbnRyb2xzIGFjdHVhbGx5IGNoYW5nZXNcbiAgICBjb25zdCBmb3JtID0gdGhpcy5uZ0Zvcm1TZXJ2aWNlLmdldEZvcm0oKTtcbiAgICBpZiAoZm9ybSkge1xuICAgICAgZm9yIChjb25zdCBpZCBvZiBjb250cm9sSWRzVG9SZXZhbGlkYXRlKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmaW5kRm9ybUNvbnRyb2woaWQsIGZvcm0pO1xuICAgICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iXX0=
478
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ZWItZm9ybS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvZm9ybS1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFRTCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsV0FBVyxFQUNYLG9CQUFvQixHQVdyQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7O0FBaUJqRTs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUFvQi9CLFlBQXNCLFVBQTRCLEVBQVksYUFBa0MsRUFBWSxTQUEwQjtRQUFoSCxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUFZLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBbkI1SCxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFDbkQsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBMEIsQ0FBQztRQUNwRCwyQkFBc0IsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUNsRSxnRUFBZ0U7UUFDdEQsK0JBQTBCLEdBQTZDLEVBQUUsQ0FBQztRQStLcEY7Ozs7Ozs7V0FPRztRQUNPLDJCQUFzQixHQUFnQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7SUF4SzZELENBQUM7SUFUMUk7Ozs7T0FJRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsa0JBQWtCLENBQUMsTUFBNEI7UUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTztTQUNSO1FBRUQsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUNsQywrQ0FBK0M7WUFDL0MsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBUyxDQUFDO1lBQ25FLG1EQUFtRDtZQUNuRCxPQUFPLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUUxRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNoQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVU7aUJBQ1osaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQztpQkFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDYixTQUFTLENBQUMsQ0FBQyxPQUE4QixFQUFFLEVBQUU7Z0JBQzVDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxjQUFjLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO29CQUNwRixnREFBZ0Q7b0JBQ2hELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQ2hDLElBQUksQ0FBQyxTQUFTLGtDQUVULE1BQU0sS0FDVCxFQUFFLEVBQUUsT0FBTyxDQUFDLFVBQVUsS0FFeEIsT0FBTyxDQUNBLENBQUM7b0JBRVYsNkZBQTZGO29CQUM3RixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQzNFLE9BQU8sR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxrQ0FBTyxNQUFNLEtBQUUsZ0JBQWdCLElBQUcsQ0FBQztvQkFDbkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQztvQkFDdEMsd0JBQXdCO29CQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDaEM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsNEJBQTRCLENBQUMsSUFBYyxFQUFFLE1BQW1DO1FBQzlFLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxLQUFLLEVBQW1CLENBQUM7UUFDdEQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0UsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRUQsbUZBQW1GO0lBQ25GLDRCQUE0QjtRQUMxQixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsWUFBcUM7UUFDOUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0RCx1Q0FDSyxXQUFXLEtBQ2QsS0FBSyxFQUFFLGdCQUFnQixDQUFDLG9CQUFvQixDQUMxQyxXQUFXLEVBQ1gsWUFBWSxFQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsRUFDbEMsSUFBSSxDQUFDLHNCQUFzQixFQUMzQixJQUFJLENBQUMseUJBQXlCLENBQy9CLElBQ0Q7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZUFBZSxDQUFDLFFBQWMsRUFBRSxZQUFxQztRQUNuRSx1Q0FDSyxRQUFRLEtBQ1gsS0FBSyxFQUFFLGdCQUFnQixDQUFDLG9CQUFvQixDQUMxQyxRQUFRLEVBQ1IsWUFBWSxFQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsRUFDbEMsSUFBSSxDQUFDLHNCQUFzQixFQUMzQixJQUFJLENBQUMseUJBQXlCLENBQy9CLElBQ0Q7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxxQkFBcUIsQ0FBQyxJQUFrQztRQUN0RCxPQUFPLGdCQUFnQixDQUFDLCtCQUErQixDQUNyRCxJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksQ0FBQyxzQkFBc0IsRUFDM0IsSUFBSSxDQUFDLGlDQUFpQyxDQUN2QyxDQUFDO0lBQ0osQ0FBQztJQUVELGdEQUFnRDtJQUNoRCxtQkFBbUIsQ0FBQyxFQUFVO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHlCQUF5QixDQUFDLFVBQTJDO1FBQ25FLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsSUFBVTtRQUNwQixJQUFJLENBQUMsU0FBUyxxQkFBUSxJQUFJLENBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUN2RCxnRkFBZ0Y7WUFDaEYsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ3RCLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTt3QkFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7cUJBQ3BIO2lCQUNGO2dCQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQzVCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO1FBRUQsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFZRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ08seUJBQXlCO0lBQ2pDLHNEQUFzRDtJQUN0RCxPQUEwRCxFQUMxRCxJQUFjLEVBQ2QsV0FBb0IsRUFDcEIsYUFBaUQ7SUFDakQscURBQXFEOztRQUVyRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsNkRBQTZEO0lBQ25ELGlDQUFpQyxDQUFDLElBQWM7UUFDeEQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWTtJQUVaLDBCQUEwQjtJQUMxQjs7Ozs7T0FLRztJQUNPLGVBQWUsQ0FDdkIsSUFBTyxFQUNQLE1BQTRCLEVBQzVCLE9BQWtCO1FBRWxCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUM1Qiw4Q0FBOEM7WUFDOUMsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtnQkFDbkMsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFO29CQUNuQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsTUFBSyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsVUFBVSxDQUFBLENBQUMsQ0FBQztvQkFDaEYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDakMsSUFBSSxPQUFPLEVBQUU7d0JBQ1gsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO3FCQUNwQztvQkFDRCx1Q0FBWSxJQUFJLEtBQUUsS0FBSyxFQUFFLFFBQVEsSUFBRztpQkFDckM7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTSxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNqQyx1Q0FDSyxJQUFJLEtBQ1AsS0FBSyxFQUFFLE1BQU0sQ0FBQyxVQUFVLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFDNUg7YUFDSDtpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUYsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQW9CLENBQUM7WUFFbEUsS0FBSyxDQUFDLE1BQU0sQ0FDVixhQUFhLEVBQ2IsQ0FBQyxFQUNELElBQUksQ0FBQyxlQUFlLENBQ2xCLFlBQVksa0NBRVAsTUFBTSxLQUNULFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FFdEMsT0FBTyxDQUNJLENBQ2QsQ0FBQztZQUNGLHVDQUNLLElBQUksS0FDUCxLQUFLLElBQ0w7U0FDSDthQUFNLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQWlCLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2xFO2FBQU0sSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoRSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FDM0IsSUFBdUYsRUFDdkYsTUFBTSxFQUNOLE9BQU8sQ0FDUixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxpQkFBaUIsQ0FDdkIsVUFBMkYsRUFDM0YsTUFBNEIsRUFDNUIsT0FBa0I7UUFFbEIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLE1BQU0sYUFBYSxHQUErQixFQUFFLENBQUM7UUFDckQsc0RBQXNEO1FBQ3RELDhEQUE4RDtRQUM5RCxLQUFLLE1BQU0sRUFBRSxJQUFJLFVBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDekMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsRUFBRTtnQkFDdEUsaURBQWlEO2dCQUNqRCxJQUFJLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxLQUFLLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ25FLEtBQUssR0FBRyxJQUFJLENBQUM7b0JBQ2IsYUFBYSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQ3RDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFvQixrQ0FDMUMsTUFBTSxLQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FDakQsT0FBTyxDQUNJLENBQUM7aUJBQ2Y7cUJBQU07b0JBQ0wsYUFBYSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ2xEO2FBQ0Y7U0FDRjtRQUNELG1GQUFtRjtRQUNuRixPQUFPLGlDQUFNLFVBQVUsS0FBRSxhQUFhLEtBQUksS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLGdCQUFnQixDQUFDLFNBQW9CLEVBQUUsTUFBNEIsRUFBRSxPQUFrQjtRQUM3RixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEIsbUVBQW1FO1FBQ25FLE1BQU0sU0FBUyxHQUFtQixTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQWlCLEVBQUUsRUFBRTtZQUM5RSxtREFBbUQ7WUFDbkQsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDVix1Q0FDSyxHQUFHLEtBQ04sS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBaUIsRUFBRSxFQUFFO3dCQUN6QywyRkFBMkY7d0JBQzNGLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzNELEtBQUssR0FBRyxJQUFJLENBQUM7NEJBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUN6QixPQUEwQixrQ0FDckIsTUFBTSxLQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FDakQsT0FBTyxDQUNJLENBQUM7eUJBQ2Y7d0JBQ0QseUZBQXlGO3dCQUN6Riw0REFBNEQ7d0JBQzVELElBQUksZUFBZSxJQUFJLE9BQU8sRUFBRTs0QkFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUNyQyxPQUEwRixFQUMxRixNQUFNLEVBQ04sT0FBTyxDQUNSLENBQUM7NEJBQ0YsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDcEIsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3BCO3dCQUNELE9BQU8sT0FBTyxDQUFDO29CQUNqQixDQUFDLENBQUMsSUFDRjthQUNIO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FBQztRQUNILHVDQUFZLFNBQVMsS0FBRSxTQUFTLElBQUc7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyx5QkFBeUIsQ0FBQyxJQUFVLEVBQUUsTUFBNEI7O1FBQ3hFLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRTtZQUMzQixNQUFNLFNBQVMsR0FBa0QsRUFBRSxDQUFDO1lBQ3BFLEtBQUssTUFBTSxFQUFFLElBQUksTUFBTSxDQUFDLGdCQUFnQixFQUFFO2dCQUN4QyxLQUFLLE1BQU0sU0FBUyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFO29CQUNqRSxJQUFJLFFBQVEsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3BDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQzVELElBQUksQ0FBQyxRQUFRLEtBQUksaUJBQWlCLGFBQWpCLGlCQUFpQix1QkFBakIsaUJBQWlCLENBQUUsSUFBSSxDQUFBLEVBQUU7d0JBQ3hDLFFBQVEsR0FBRyxpQkFBaUIsYUFBakIsaUJBQWlCLHVCQUFqQixpQkFBaUIsQ0FBRSxJQUFJLENBQUM7cUJBQ3BDO29CQUNELElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRTt3QkFDckQsTUFBTSxvQkFBb0IsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7d0JBQzlELE1BQU0sT0FBTyxHQUNYLE1BQU0sQ0FBQyxVQUFVLEtBQUssS0FBSzs0QkFDekIsQ0FBQyxDQUFDLENBQUMsR0FBRyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDOzRCQUN6QyxDQUFDLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3dCQUM3RCxNQUFNLE9BQU8sbUNBQXlCLFFBQVEsS0FBRSxTQUFTLGtDQUFPLFFBQVEsQ0FBQyxTQUFTLEtBQUUsT0FBTyxNQUFJLENBQUM7d0JBQ2hHLE1BQU0sVUFBVSxHQUFHLE1BQUEsTUFBQyxRQUFnQiwwQ0FBRSxVQUFVLG1DQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUM7d0JBQ3ZFLE1BQU0sU0FBUyxHQUFHLElBQUksb0JBQW9CLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQSxpQkFBaUIsYUFBakIsaUJBQWlCLHVCQUFqQixpQkFBaUIsQ0FBRSxTQUFTLEtBQUksRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO3dCQUUxSCxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQXFDLENBQVMsQ0FBQzt3QkFDbEcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztxQkFDaEM7aUJBQ0Y7Z0JBQ0QsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtvQkFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDOUY7YUFDRjtTQUNGO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxvQkFBb0IsQ0FBQyxJQUFjLEVBQUUsS0FBOEI7UUFDekUsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDOUIsSUFBSSxNQUFNLENBQXdCLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNoRCxNQUFNLEtBQUssR0FBZSxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3JDLEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxFQUFFO2dCQUMzQixJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQzNDO1NBQ0Y7YUFBTSxJQUFJLE1BQU0sQ0FBZ0QsSUFBSSxFQUFFLGVBQWUsQ0FBQyxFQUFFO1lBQ3ZGLE1BQU0sR0FBRyxHQUErQixJQUFJLENBQUMsYUFBYSxDQUFDO1lBQzNELEtBQUssTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFO2dCQUNwQixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUU7b0JBQ2pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7aUJBQzNDO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSywwQkFBMEIsQ0FDaEMsSUFBYyxFQUNkLE9BQStCLEVBQy9CLGFBQXNDLEVBQ3RDLE1BQW1DO1FBRW5DLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ25ILElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakksSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7U0FDakU7YUFBTSxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RDLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDakMsTUFBTSxNQUFNLEdBQ1YsQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDN0gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDeEg7WUFDRCxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDekU7YUFBTSxJQUFJLE1BQU0sQ0FBd0IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZELE1BQU0sS0FBSyxHQUFlLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDckMsS0FBSyxNQUFNLE9BQU8sSUFBSSxLQUFLLEVBQUU7Z0JBQzNCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUMxRTtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLDRCQUE0QixDQUNsQyxJQUFxRixFQUNyRixVQUFrQyxFQUNsQyxPQUFnQyxFQUNoQyxNQUFtQztRQUVuQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUNuQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxFQUFFO29CQUNoRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUN2QyxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7aUJBQ3ZFO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSyxxQkFBcUIsQ0FDM0IsU0FBaUIsRUFDakIsT0FBaUIsRUFDakIsUUFBa0IsRUFDbEIsVUFBa0MsRUFDbEMsT0FBZ0MsRUFDaEMsTUFBZTtRQUVmLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQ25ELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUM7WUFDckUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO2dCQUNiLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUNoRjtpQkFBTTtnQkFDTCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9CLE1BQU0sS0FBSyxHQUFvQjtvQkFDN0IsU0FBUztvQkFDVCxZQUFZLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxZQUFZLENBQUM7b0JBQ3JELGFBQWEsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLGFBQWEsQ0FBQztvQkFDeEQsTUFBTTtpQkFDUCxDQUFDO2dCQUNGLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNwQztTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLHVCQUF1Qjs7UUFDN0Isa0VBQWtFO1FBQ2xFLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUVqRCxxREFBcUQ7UUFDckQsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDbkMsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7Z0JBQ2hELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxFQUFFLENBQUMsRUFBRTtvQkFDN0Usc0JBQXNCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUNoQzthQUNGO1NBQ0Y7UUFFRCx1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEVBQUUsQ0FBQztRQUNyQyxJQUFJLE1BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsZ0JBQWdCLEVBQUU7WUFDcEMsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixFQUFFO2dCQUM5RSxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsS0FBSyxRQUFRLEVBQUU7b0JBQ3hDLCtFQUErRTtvQkFDL0UsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUM7b0JBQ3BELHdEQUF3RDtvQkFDeEQsc0JBQXNCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDdkM7YUFDRjtTQUNGO1FBRUQsNENBQTRDO1FBQzVDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUMsSUFBSSxJQUFJLEVBQUU7WUFDUixLQUFLLE1BQU0sRUFBRSxJQUFJLHNCQUFzQixFQUFFO2dCQUN2QyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLE9BQU8sRUFBRTtvQkFDWCxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztpQkFDbEM7YUFDRjtTQUNGO0lBQ0gsQ0FBQzs7a0hBNWpCVSxvQkFBb0I7c0hBQXBCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNUeXBlIH0gZnJvbSAnQG10bmEvY29yZS10cyc7XG5pbXBvcnQge1xuICBDb25kaXRpb25hbEl0ZW0sXG4gIENvbmRpdGlvbkNoYW5nZSxcbiAgRm9ybSxcbiAgRm9ybUl0ZW0sXG4gIEZvcm1JdGVtR3JvdXAsXG4gIEZvcm1JdGVtSW1wbCxcbiAgRm9ybUl0ZW1WYWxpZGF0aW9uUmVzdWx0LFxuICBpc0NvbmRpdGlvbmFsSXRlbSxcbiAgaXNGb3JtLFxuICBpc0Zvcm1JdGVtR3JvdXBJbXBsLFxuICBpc09wdGlvbkdyb3VwSXRlbUltcGwsXG4gIGlzT3B0aW9uSXRlbUltcGwsXG4gIGlzUmVwZWF0YWJsZUl0ZW0sXG4gIGlzU2VjdGlvbixcbiAgaXNUYWJsZUl0ZW0sXG4gIE10bmFXZkZvcm1JdGVtQ2hhbmdlLFxuICBNdG5hV2ZGb3JtSXRlbUNoYW5nZUFjdGlvbixcbiAgT3B0aW9uLFxuICBPcHRpb25Hcm91cEl0ZW1JbXBsLFxuICBPcHRpb25JdGVtSW1wbCxcbiAgUHJvZ3Jlc3NpdmVGb3JtLFxuICBSZXBlYXRhYmxlSXRlbSxcbiAgU2VjdGlvbixcbiAgVGFibGVJdGVtLFxuICBUYWJsZVJvd0l0ZW0sXG4gIFZhbHVlSXRlbSxcbn0gZnJvbSAnQG10bmEvd2ViLWZvcm0tdHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQmFzZUZvcm1JdGVtIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IGZpbmRGb3JtQ29udHJvbCwgTXRuYVdmU2VyaWFsaXplciB9IGZyb20gJy4uL3V0aWxpdGllcyc7XG5pbXBvcnQgeyBNdG5hV2ZBcGlTZXJ2aWNlIH0gZnJvbSAnLi9hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBNdG5hV2ZOZ0Zvcm1TZXJ2aWNlIH0gZnJvbSAnLi9uZy1mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgTXRuYVdmVUlTZXJ2aWNlIH0gZnJvbSAnLi91aS5zZXJ2aWNlJztcblxuLyoqXG4gKiB0eXBlcyBvZiBGb3JtSXRlbXMgdGhhdCBjYW4gYmUgcGFzc2VkIGludG8gdGhlICdtb2RpZnlNdG5hRm9ybUl0ZW0nIG1ldGhvZCB0byBhZGQvcmVtb3ZlIGl0ZW1zXG4gKi9cbnR5cGUgUGFyZW50SXRlbVVuaW9uID1cbiAgfCBGb3JtXG4gIHwgU2VjdGlvblxuICB8IEZvcm1JdGVtR3JvdXBcbiAgfCBSZXBlYXRhYmxlSXRlbVxuICB8IFRhYmxlSXRlbVxuICB8IE9wdGlvbkl0ZW1JbXBsPE9wdGlvbjx1bmtub3duPiwgdW5rbm93bj5cbiAgfCBPcHRpb25Hcm91cEl0ZW1JbXBsPE9wdGlvbjx1bmtub3duPj47XG5cbi8qKlxuICogQWxsb3dzIGEgY2FsbGVyIHRvIChkZSlzZXJpYWxpemFlIGFuIE10bmFGb3JtLiBJdCBjb250YWlucyB0aGUgZGV0ZXJtaW5pbmcgbG9naWMgZm9yIHJldHVybmluZyBzcGVjaWZpYyBmb3JtIGNvbnRyb2xzXG4gKiBhbmQgZGVzZXJpYWxpemluZyBuZXcgTXRuYUZvcm1zIGZyb20gdGhlIHJlYWN0aXZlIHZhbHVlcywgYXMgd2VsbCBhcyByZWdpc3RlcmluZyBjdXN0b20gRm9ybSBJdGVtcyAmIGZ1bmN0aW9ucy5cbiAqXG4gKiBAZXhwb3J0XG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNdG5hV2ZNYW5hZ2VyU2VydmljZSB7XG4gIHByb3RlY3RlZCBjb21wb25lbnRzID0gbmV3IE1hcDxzdHJpbmcsIFR5cGU8QmFzZUZvcm1JdGVtPj4oKTtcbiAgcHJvdGVjdGVkIGZvcm1DaGFuZ2UkID0gbmV3IFN1YmplY3Q8Rm9ybSB8IFByb2dyZXNzaXZlRm9ybT4oKTtcbiAgcHJvdGVjdGVkIHByb2dyZXNzaXZlRm9ybUNoYW5nZSQgPSBuZXcgU3ViamVjdDxQcm9ncmVzc2l2ZUZvcm0+KCk7XG4gIC8qKiBBIG1hcCBvZiBhbGwge0BsaW5rIEZvcm1JdGVtVmFsaWRhdGlvblJlc3VsdH0ga2V5ZWQgb24gaWQgKi9cbiAgcHJvdGVjdGVkIF9mb3JtSXRlbVZhbGlkYXRpb25SZXN1bHRzOiBSZWNvcmQ8c3RyaW5nLCBGb3JtSXRlbVZhbGlkYXRpb25SZXN1bHQ+ID0ge307XG4gIC8qKiBDb25kaXRpb25DaGFuZ2VzIG9uICdhZGQnIG11c3Qgd2FpdCB1bnRpbCB0aGUgZm9ybSByZXJlbmRlcnMgdG8gdG9nZ2xlIGl0ZW1zICovXG4gIHByb3RlY3RlZCBpdGVtVG9nZ2xlUXVlOiBBcnJheTxDb25kaXRpb25DaGFuZ2U+IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIF9tdG5hRm9ybTogRm9ybSB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIF9tdG5hUHJvZ3Jlc3NpdmVGb3JtOiBQcm9ncmVzc2l2ZUZvcm0gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgc3RyZWFtIG9mIE10bmFGb3JtIGNoYW5nZXMuIFVzZWQgdG8gaW5mb3JtIGEgc3Vic2NyaWJlciB0aGF0IGFuIE10bmFGb3JtIGhhcyBiZWVuIGNoYW5nZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8TXRuYUZvcm0+IHRvIHdoaWNoIGEgY2FsbGVyIGNhbiBzdWJzY3JpYmVcbiAgICovXG4gIGdldCBmb3JtQ2hhbmdlcygpOiBPYnNlcnZhYmxlPEZvcm0+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQ2hhbmdlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBhcGlTZXJ2aWNlOiBNdG5hV2ZBcGlTZXJ2aWNlLCBwcm90ZWN0ZWQgbmdGb3JtU2VydmljZTogTXRuYVdmTmdGb3JtU2VydmljZSwgcHJvdGVjdGVkIHVpU2VydmljZTogTXRuYVdmVUlTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBBZGRzIG9yIHJlbW92ZXMgYSBGb3JtSXRlbSBmcm9tIHRoZSBmb3JtICYgbW9kaWZpZXMgb3RoZXIgYWZmZWN0ZWQgRm9ybUl0ZW1zXG4gICAqIEBwYXJhbSBjaGFuZ2UgTXRuYVdmRm9ybUl0ZW1DaGFuZ2VcbiAgICovXG4gIGNoYW5nZU10bmFGb3JtSXRlbShjaGFuZ2U6IE10bmFXZkZvcm1JdGVtQ2hhbmdlKSB7XG4gICAgaWYgKCF0aGlzLl9tdG5hRm9ybSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2UuYWN0aW9uVHlwZSA9PT0gJ1JFTU9WRScpIHtcbiAgICAgIC8vIHJlbW92ZSB0aGUgcmVwZWF0YWJsZSBpdGVtIGZyb20gdGhlIG10bmFmb3JtXG4gICAgICBsZXQgbmV3Rm9ybSA9IHRoaXMuX21vZGlmeUZvcm1JdGVtKHRoaXMuX210bmFGb3JtLCBjaGFuZ2UpIGFzIEZvcm07XG4gICAgICAvLyBtb2RpZnkgdGhlIGNvbmRpdGlvbnMgb2YgYWxsIGVmZmVjdGVkIGZvcm0gaXRlbXNcbiAgICAgIG5ld0Zvcm0gPSB0aGlzLl9tb2RpZnlGb3JtSXRlbUNvbmRpdGlvbnMobmV3Rm9ybSwgY2hhbmdlKTtcblxuICAgICAgdGhpcy5uZ0Zvcm1TZXJ2aWNlLnJlbW92ZUNvbnRyb2woY2hhbmdlLmlkLCBjaGFuZ2UucGFyZW50SWRzKTtcbiAgICAgIHRoaXMuZm9ybUNoYW5nZSQubmV4dChuZXdGb3JtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAgIC5nZXRSZXBlYXRhYmxlSXRlbSh0aGlzLl9tdG5hRm9ybS50ZW1wbGF0ZUlkLCBjaGFuZ2UudGVtcGxhdGVJZClcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgobmV3SXRlbTogRm9ybUl0ZW1JbXBsPHVua25vd24+KSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3Rm9ybUNvbnRyb2wgPSB0aGlzLnNlcmlhbGl6ZU10bmFGb3JtSXRlbShuZXdJdGVtKTtcbiAgICAgICAgICBpZiAobmV3Rm9ybUNvbnRyb2wgJiYgdGhpcy5fbXRuYUZvcm0pIHtcbiAgICAgICAgICAgIHRoaXMubmdGb3JtU2VydmljZS5hZGRDb250cm9sKG5ld0l0ZW0uaW5zdGFuY2VJZCwgY2hhbmdlLnBhcmVudElkcywgbmV3Rm9ybUNvbnRyb2wpO1xuICAgICAgICAgICAgLy8gQWRkIHRoZSBuZXcgcmVwZWF0YWJsZSBpdGVtIGludG8gdGhlIG10bmFmb3JtXG4gICAgICAgICAgICBsZXQgbmV3Rm9ybSA9IHRoaXMuX21vZGlmeUZvcm1JdGVtKFxuICAgICAgICAgICAgICB0aGlzLl9tdG5hRm9ybSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLmNoYW5nZSxcbiAgICAgICAgICAgICAgICBpZDogbmV3SXRlbS5pbnN0YW5jZUlkLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBuZXdJdGVtXG4gICAgICAgICAgICApIGFzIEZvcm07XG5cbiAgICAgICAgICAgIC8vIEdlbmVyYXRlIGEgbGlzdCBvZiBhbGwgZm9ybWl0ZW0gY29uZGl0aW9ucyBuZWVkaW5nIGNoYW5nZSAmIG1vZGlmeSB0aG9zZSBpdGVtcyBpbiB0aGUgZm9ybVxuICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uQ2hhbmdlcyA9IHRoaXMuZ2VuZXJhdGVDb25kaXRpb25DaGFuZ2VBcnJheShuZXdJdGVtLCAnQUREJyk7XG4gICAgICAgICAgICBuZXdGb3JtID0gdGhpcy5fbW9kaWZ5Rm9ybUl0ZW1Db25kaXRpb25zKG5ld0Zvcm0sIHsgLi4uY2hhbmdlLCBjb25kaXRpb25DaGFuZ2VzIH0pO1xuICAgICAgICAgICAgdGhpcy5pdGVtVG9nZ2xlUXVlID0gY29uZGl0aW9uQ2hhbmdlcztcbiAgICAgICAgICAgIC8vIGVtaXQgdGhlIG5ldyBtdG5hZm9ybVxuICAgICAgICAgICAgdGhpcy5mb3JtQ2hhbmdlJC5uZXh0KG5ld0Zvcm0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBDb25kaXRpb25DaGFuZ2UgYXJyYXkgZm9yIGl0ZW1zIGV4aXN0aW5nIGluIHRoZSA8aXRlbT4gd2hpY2ggZW5hYmxlL2Rpc2FibGUgRm9ybUl0ZW1zIG91dHNpZGUgdGhlIDxpdGVtPidzIHNjb3BlLlxuICAgKiBAcGFyYW0gaXRlbSBGb3JtSXRlbSB0aGF0IGVmZmVjdHMgdGhlIGNvbmRpdGlvbiBvZiBvdGhlciBGb3JtSXRlbXNcbiAgICogQHBhcmFtIGFjdGlvbiBXaGV0aGVyIHRoaXMgaXRlbSB3YXMgYWRkZWQgKEFERCksIG9yIHJlbW92ZWQgKFJFTU9WRSlcbiAgICogQHJldHVybnMgQXJyYXk8Q29uZGl0aW9uQ2hhbmdlPlxuICAgKi9cbiAgZ2VuZXJhdGVDb25kaXRpb25DaGFuZ2VBcnJheShpdGVtOiBGb3JtSXRlbSwgYWN0aW9uPzogTXRuYVdmRm9ybUl0ZW1DaGFuZ2VBY3Rpb24pOiBBcnJheTxDb25kaXRpb25DaGFuZ2U+IHtcbiAgICBjb25zdCBpbnRlcm5hbE1hcCA9IHt9O1xuICAgIHRoaXMuX2J1aWxkSW50ZXJuYWxJZHNNYXAoaXRlbSwgaW50ZXJuYWxNYXApO1xuICAgIGNvbnN0IGNvbmRpdGlvbkNoYW5nZXMgPSBuZXcgQXJyYXk8Q29uZGl0aW9uQ2hhbmdlPigpO1xuICAgIHRoaXMuX2J1aWxkQ29uZGl0aW9uQ2hhbmdlQXJyYXkoaXRlbSwgY29uZGl0aW9uQ2hhbmdlcywgaW50ZXJuYWxNYXAsIGFjdGlvbik7XG4gICAgcmV0dXJuIGNvbmRpdGlvbkNoYW5nZXM7XG4gIH1cblxuICAvKiogQHJldHVybnMgVGhlIHRvcCBsZXZlbCB2YWxpZGF0aW9uIHJlc3VsdHMgKHVzdWFsbHkgdGhlIGVycm9ycyksIGtleWVkIG9uIElELiAqL1xuICBnZXRGb3JtSXRlbVZhbGlkYXRpb25SZXN1bHRzKCk6IFJlY29yZDxzdHJpbmcsIEZvcm1JdGVtVmFsaWRhdGlvblJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLl9mb3JtSXRlbVZhbGlkYXRpb25SZXN1bHRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBuZXcgTXRuYUZvcm0gdXNpbmcgdGhlIE10bmFGb3JtICYgcmVhY2l2ZSBmb3JtIHZhbHVlcyBmcm9tIHRoZSBNdG5hV2ZOZ0Zvcm1TZXJ2aWNlJ3MgaW50ZXJuYWwgZm9ybS5cbiAgICpcbiAgICogQHBhcmFtIG5nRm9ybVZhbHVlcyBKU09OIG9iamVjdCBvZiBuZ0Zvcm1WYWx1ZXNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHVwZGF0ZUZvcm0obmdGb3JtVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IEZvcm0ge1xuICAgIGNvbnN0IGN1cnJlbnRGb3JtID0gdGhpcy5uZ0Zvcm1TZXJ2aWNlLmdldEZvcm1WYWx1ZSgpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jdXJyZW50Rm9ybSxcbiAgICAgIGl0ZW1zOiBNdG5hV2ZTZXJpYWxpemVyLmluc2VydEZvcm1JdGVtVmFsdWVzKFxuICAgICAgICBjdXJyZW50Rm9ybSxcbiAgICAgICAgbmdGb3JtVmFsdWVzLFxuICAgICAgICB0aGlzLnVpU2VydmljZS5nZXREaXNhYmxlZFN0YXRlcygpLFxuICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29uZGl0aW9uYWwsXG4gICAgICAgIHRoaXMuZHluYW1pY1dlYkZvcm1JdGVtQnVpbGRlclxuICAgICAgKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBuZXcgTXRuYUZvcm0gdXNpbmcgdGhlIHByZXZpb3VzIE10bmFGb3JtICYgcmVhY3RpdmUgZm9ybSB2YWx1ZXMuXG4gICAqXG4gICAqIEBwYXJhbSBtdG5hRm9ybSBNdG5hRm9ybSByZXF1aXJpbmcgdmFsdWUgaW5zZXJ0aW9uXG4gICAqIEBwYXJhbSBuZ0Zvcm1WYWx1ZXMgSlNPTiBvYmplY3Qgb2YgIG5nRm9ybSB2YWx1ZXNcbiAgICogQHJldHVybnMgbmV3IE10bmFGb3JtXG4gICAqL1xuICBpbnNlcnROZXdWYWx1ZXMobXRuYUZvcm06IEZvcm0sIG5nRm9ybVZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBGb3JtIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubXRuYUZvcm0sXG4gICAgICBpdGVtczogTXRuYVdmU2VyaWFsaXplci5pbnNlcnRGb3JtSXRlbVZhbHVlcyhcbiAgICAgICAgbXRuYUZvcm0sXG4gICAgICAgIG5nRm9ybVZhbHVlcyxcbiAgICAgICAgdGhpcy51aVNlcnZpY2UuZ2V0RGlzYWJsZWRTdGF0ZXMoKSxcbiAgICAgICAgdGhpcy5keW5hbWljRm9ybUNvbmRpdGlvbmFsLFxuICAgICAgICB0aGlzLmR5bmFtaWNXZWJGb3JtSXRlbUJ1aWxkZXJcbiAgICAgICksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemVzIGEgRm9ybSB8IEZvcm1JdGVtIGludG8gRm9ybUNvbnRyb2wocylcbiAgICpcbiAgICogQHBhcmFtIGl0ZW0gRm9ybSB8IEZvcm1JdGVtIHJlcXVpcmluZyBzZXJpYWxpemF0aW9uXG4gICAqIEByZXR1cm5zIEZvcm1Hcm91cCB8IEZvcm1Db250cm9sXG4gICAqL1xuICBzZXJpYWxpemVNdG5hRm9ybUl0ZW0oaXRlbTogRm9ybSB8IEZvcm1JdGVtSW1wbDx1bmtub3duPik6IEFic3RyYWN0Q29udHJvbCB8IG51bGwge1xuICAgIHJldHVybiBNdG5hV2ZTZXJpYWxpemVyLmRldGVybWluZVNlcmlhbGl6ZUZ1bmN0aW9uVG9Vc2UoXG4gICAgICBpdGVtLFxuICAgICAgdGhpcyxcbiAgICAgIHRoaXMuZHluYW1pY0Zvcm1Db25kaXRpb25hbCxcbiAgICAgIHRoaXMuZHluYW1pY1JlYWN0aXZlRm9ybUNvbnRyb2xCdWlsZGVyXG4gICAgKTtcbiAgfVxuXG4gIC8vI3JlZ2lvbiBDdXN0b20gQ29tcG9uZW50L0Z1bmN0aW9uIFJlZ2lzdHJhdGlvblxuICBnZXREeW5hbWljQ29tcG9uZW50KGlkOiBzdHJpbmcpOiBUeXBlPEJhc2VGb3JtSXRlbT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudHMuZ2V0KGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBtYXAgb2YgY29tcG9uZW50cyB0byBiZSBkeW5hbWljYWxseSByZW5kZXJlZCBpbnNpZGUgYW4gTXRuYUZvcm0uXG4gICAqXG4gICAqIEBwYXJhbSBjb21wb25lbnRzIHRoZSBtYXAgb2YgY29tcG9uZW50cyB0aGF0IGEgVmFsdWVJdGVtIHdpbGwgdXNlIGZvciByZW5kZXJpbmdcbiAgICogQHByb3Agc3RyaW5nIC0gdGhlIHR5cGUoaXRlbUlkIHN1ZmZpeCkgb2YgY29tcG9uZW50LCB1c2VkIGZvciByZXRyaWV2YWxcbiAgICogQHByb3AgVHlwZSAtIHRoZSBjb21wb25lbnQgdG8gYmUgcmVuZGVyZWQsIGFuIGV4dGVuc2lvbiBvZiBCYXNlRm9ybUl0ZW1cbiAgICovXG4gIHJlZ2lzdGVyRHluYW1pY0NvbXBvbmVudHMoY29tcG9uZW50czogTWFwPHN0cmluZywgVHlwZTxCYXNlRm9ybUl0ZW0+Pikge1xuICAgIHRoaXMuY29tcG9uZW50cyA9IGNvbXBvbmVudHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBhbiBNdG5hRm9ybSBvbiB0aGUgc2VydmljZVxuICAgKiBAcGFyYW0gZm9ybSBNdG5hRm9ybSB0byBiZSB1c2VkIGZvciBpbnRlcm5hbCBtb2RpZmljYXRpb25cbiAgICovXG4gIHNldE10bmFGb3JtKGZvcm06IEZvcm0pIHtcbiAgICB0aGlzLl9tdG5hRm9ybSA9IHsgLi4uZm9ybSB9O1xuICAgIGlmICghIXRoaXMuaXRlbVRvZ2dsZVF1ZSAmJiAhIXRoaXMuaXRlbVRvZ2dsZVF1ZS5sZW5ndGgpIHtcbiAgICAgIC8vIFRoZSBmb3JtIG5lZWRzIHRpbWUgdG8gcmVyZW5kZXIsIHNvIHdlIHB1c2ggdGhpcyBsb29wIHRvIHRoZSBlbmQgb2YgdGhlIHN0YWNrXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbVRvZ2dsZVF1ZSkge1xuICAgICAgICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIHRoaXMuaXRlbVRvZ2dsZVF1ZSkge1xuICAgICAgICAgICAgdGhpcy51aVNlcnZpY2UudG9nZ2xlRm9ybUl0ZW1zKGNoYW5nZS5lbmFibGVkSXRlbXMsIGNoYW5nZS5kaXNhYmxlZEl0ZW1zLCAhIWNoYW5nZS5lbmFibGUsIGNoYW5nZS5lbmFibGVySWQsIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLml0ZW1Ub2dnbGVRdWUgPSBudWxsO1xuICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgLy8gS2VlcCB0cmFjayBvZiBhbnkgZXJyb3JzIGNvbWluZyBmcm9tIHRoZSBzZXJ2ZXIgYW5kIHJldmFsaWRhdGUgdGhvc2UgY29udHJvbHNcbiAgICB0aGlzLl91cGRhdGVTZXJ2ZXJTaWRlRXJyb3JzKCk7XG4gIH1cblxuICAvKipcbiAgICogQW55IEZvcm1TZXJ2aWNlIGV4dGVuc2lvbiBjbGFzcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QgaW4gb3JkZXIgdG8gY2FsbCB0aGVcbiAgICogZHluYW1pY1dlYkZvcm1JdGVtQnVpbGRlci9keW5hbWljUmVhY3RpdmVGb3JtQ29udHJvbEJ1aWxkZXIgbWV0aG9kcy4gRHVyaW5nIHdlYiBmb3JtIGdlbmVyYXRpb24sIHRoaXMgbWV0aG9kIGlzIGNoZWNrZWQgJlxuICAgKiB0aGUgY3VycmVudCBGb3JtSXRlbSBpcyBwYXNzZWQgaW4sIHdoaWNoIGNhbiBiZSB1c2VkIGJ5IHRoZSBvdmVycmlkaW5nIG1ldGhvZC5cbiAgICpcbiAgICogQGV4YW1wbGUgZHluYW1pY0Zvcm1Db25kaXRpb25hbCA9IChpdGVtOiBGb3JtSXRlbSkgPT4gaXRlbS5pdGVtSWQuaW5jbHVkZXMoe3NvbWUgaXRlbUlkfSlcbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCBkeW5hbWljRm9ybUNvbmRpdGlvbmFsOiAoaXRlbTogRm9ybUl0ZW0pID0+IGJvb2xlYW4gPSAoKSA9PiBmYWxzZTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gYmUgb3ZlcnJpZGRlbiBieSBleHRlbmRlZCBzZXJ2aWNlIGluIG9yZGVyIHRvIGhhbmRsZSBmb3JtIGdlbmVyYXRpb24gZm9yIGFueSBhcHBsaWNhdGlvbi1zcGVjaWZpYyBkeW5hbWljIGZvcm0gY29tcG9uZW50cy5cbiAgICogU2hvdWxkIHJldHVybiBhIG5ldyBWYWx1ZUl0ZW08YW55Pi5cbiAgICogU3RlcCAzXG4gICAqXG4gICAqIEBleGFtcGxlIGR5bmFtaWNXZWJGb3JtSXRlbUJ1aWxkZXIoc2VjdGlvbjogU2VjdGlvbiB8IEZvcm0sIGl0ZW06IEZvcm1JdGVtLCBuZ0Zvcm1WYWx1ZTogYW55KTogVmFsdWVJdGVtIHtcbiAgICogY29uc3QgbmV3VmFsdWUgPSB0aGlzLmdlbmVyYXRlTmV3VmFsdWUoaXRlbSwgcmZWYWx1ZSwgc2VjdGlvbik7XG4gICAqIHJldHVybiB7IC4uLml0ZW0sIC4uLm5ld1ZhbHVlIH1cbiAgICogfVxuICAgKiBAcGFyYW0gc2VjdGlvbiB0aGUgY3VycmVudCBGb3JtU2VjdGlvblxuICAgKiBAcGFyYW0gaXRlbSB0aGUgY3VycmVudCBGb3JtSXRlbVxuICAgKiBAcGFyYW0gbmdGb3JtVmFsdWUgdGhlIG5nRm9ybSBKU09OIHZhbHVlXG4gICAqIEByZXR1cm5zIGEgbmV3IFZhbHVlSXRlbVxuICAgKi9cbiAgcHJvdGVjdGVkIGR5bmFtaWNXZWJGb3JtSXRlbUJ1aWxkZXIoXG4gICAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4gICAgc2VjdGlvbjogRm9ybSB8IEZvcm1JdGVtR3JvdXAgfCBSZXBlYXRhYmxlSXRlbSB8IHVuZGVmaW5lZCxcbiAgICBpdGVtOiBGb3JtSXRlbSxcbiAgICBuZ0Zvcm1WYWx1ZTogdW5rbm93bixcbiAgICBkaXNhYmxlZFN0YXRlPzogeyBbaW5zdGFuY2VJZDogc3RyaW5nXTogYm9vbGVhbiB9XG4gICAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbiAgKTogVmFsdWVJdGVtPHVua25vd24+IHwgbnVsbCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gYmUgb3ZlcnJpZGRlbiBieSBleHRlbmRlZCBzZXJ2aWNlIGluIG9yZGVyIHRvIGhhbmRsZSByZWFjdGl2ZSBmb3JtIGdlbmVyYXRpb25cbiAgICogZm9yIGFueSBhcHBsaWNhdGlvbi1zcGVjaWZpYyBkeW5hbWljIGZvcm0gY29tcG9uZW50cy5cbiAgICogU2hvdWxkIHJldHVybiBGb3JtQ29udHJvbCB8IEZvcm1Hcm91cC5cbiAgICpcbiAgICogQGV4YW1wbGUgZHluYW1pY1JlYWN0aXZlRm9ybUNvbnRyb2xCdWlsZGVyKGl0ZW06IEZvcm1JdGVtKSB7XG4gICAqIHJldHVybiB0aGlzLmJ1aWxkRm9ybUNvbnRyb2xGb3JEeW5hbWljQ29tcG9uZW50KGl0ZW06IEZvcm1JdGVtKTtcbiAgICogfVxuICAgKiBAcGFyYW0gaXRlbSBGb3JtSXRlbSB1c2VkIHRvIGdlbmVyYXRlIGZvcm0gY29udHJvbHNcbiAgICogQHJldHVybnMgRm9ybUNvbnRyb2wgfCBGb3JtR3JvdXBcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHJvdGVjdGVkIGR5bmFtaWNSZWFjdGl2ZUZvcm1Db250cm9sQnVpbGRlcihpdGVtOiBGb3JtSXRlbSk6IEFic3RyYWN0Q29udHJvbCB8IG51bGwge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIElOVEVSTkFMIE1FVEhPRFNcbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IHRyYXZlcnNlcyBhIEZvcm0gdG8gaW5zZXJ0IG9yIHJlbW92ZSBhIGRlc2lnbmF0ZWQgRm9ybUl0ZW0uXG4gICAqIEBwYXJhbSBpdGVtIE10bmFGb3JtIHRvIHNlYXJjaCB0aHJvdWdoXG4gICAqIEBwYXJhbSBjaGFuZ2U6IE10bmFXZkZvcm1JdGVtQ2hhbmdlIGZvciBhZGRpbmcgb3IgcmVtb3ZpbmcgYSBGb3JtSXRlbVxuICAgKiBAcGFyYW0gbmV3SXRlbSBGb3JtSXRlbSB0byBhZGQgdG8gaXRzIHBhcmVudFxuICAgKi9cbiAgcHJvdGVjdGVkIF9tb2RpZnlGb3JtSXRlbTxJIGV4dGVuZHMgRm9ybSB8IFNlY3Rpb24gfCBGb3JtSXRlbSB8IEZvcm1JdGVtSW1wbDx1bmtub3duPj4oXG4gICAgaXRlbTogSSxcbiAgICBjaGFuZ2U6IE10bmFXZkZvcm1JdGVtQ2hhbmdlLFxuICAgIG5ld0l0ZW0/OiBGb3JtSXRlbVxuICApOiBGb3JtIHwgU2VjdGlvbiB8IEZvcm1JdGVtIHwgRm9ybUl0ZW1JbXBsPHVua25vd24+IHtcbiAgICBpZiAoIWNoYW5nZS5wYXJlbnRJZHMubGVuZ3RoKSB7XG4gICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSByZWFjaCB0aGUgUGFyZW50IEZvcm1JdGVtXG4gICAgICBpZiAoY2hhbmdlLmFjdGlvblR5cGUgPT09ICdSRVBMQUNFJykge1xuICAgICAgICBpZiAoJ2l0ZW1zJyBpbiBpdGVtKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBpdGVtLml0ZW1zLmZpbmRJbmRleCgoaSkgPT4gaS5pbnN0YW5jZUlkID09PSBuZXdJdGVtPy5pbnN0YW5jZUlkKTtcbiAgICAgICAgICBjb25zdCBuZXdJdGVtcyA9IFsuLi5pdGVtLml0ZW1zXTtcbiAgICAgICAgICBpZiAobmV3SXRlbSkge1xuICAgICAgICAgICAgbmV3SXRlbXMuc3BsaWNlKGluZGV4LCAxLCBuZXdJdGVtKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgaXRlbXM6IG5ld0l0ZW1zIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9IGVsc2UgaWYgKGlzUmVwZWF0YWJsZUl0ZW0oaXRlbSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgIGl0ZW1zOiBjaGFuZ2UuYWN0aW9uVHlwZSA9PT0gJ0FERCcgPyBpdGVtLml0ZW1zLmNvbmNhdChuZXdJdGVtIHx8IFtdKSA6IGl0ZW0uaXRlbXMuZmlsdGVyKChpKSA9PiBpLmluc3RhbmNlSWQgIT09IGNoYW5nZS5pZCksXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNGb3JtKGl0ZW0pIHx8IGlzU2VjdGlvbihpdGVtKSB8fCBpc0Zvcm1JdGVtR3JvdXBJbXBsKGl0ZW0pIHx8IGlzUmVwZWF0YWJsZUl0ZW0oaXRlbSkpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gWy4uLml0ZW0uaXRlbXNdO1xuICAgICAgY29uc3QgaW5kZXhUb01vZGlmeSA9IGl0ZW0uaXRlbXMuZmluZEluZGV4KChpKSA9PiBpLmluc3RhbmNlSWQgPT09IGNoYW5nZS5wYXJlbnRJZHNbMF0pO1xuICAgICAgY29uc3QgaXRlbVRvTW9kaWZ5ID0gaXRlbS5pdGVtc1tpbmRleFRvTW9kaWZ5XSBhcyBQYXJlbnRJdGVtVW5pb247XG5cbiAgICAgIGl0ZW1zLnNwbGljZShcbiAgICAgICAgaW5kZXhUb01vZGlmeSxcbiAgICAgICAgMSxcbiAgICAgICAgdGhpcy5fbW9kaWZ5Rm9ybUl0ZW0oXG4gICAgICAgICAgaXRlbVRvTW9kaWZ5LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLmNoYW5nZSxcbiAgICAgICAgICAgIHBhcmVudElkczogY2hhbmdlLnBhcmVudElkcy5zbGljZSgxKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG5ld0l0ZW1cbiAgICAgICAgKSBhcyBGb3JtSXRlbVxuICAgICAgKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLml0ZW0sXG4gICAgICAgIGl0ZW1zLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGlzVGFibGVJdGVtKGl0ZW0pKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbW9kaWZ5VGFibGVJdGVtKGl0ZW0gYXMgVGFibGVJdGVtLCBjaGFuZ2UsIG5ld0l0ZW0pO1xuICAgIH0gZWxzZSBpZiAoaXNPcHRpb25JdGVtSW1wbChpdGVtKSB8fCBpc09wdGlvbkdyb3VwSXRlbUltcGwoaXRlbSkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9tb2RpZnlPcHRpb25JdGVtKFxuICAgICAgICBpdGVtIGFzIE9wdGlvbkl0ZW1JbXBsPE9wdGlvbjx1bmtub3duPiwgdW5rbm93bj4gfCBPcHRpb25Hcm91cEl0ZW1JbXBsPE9wdGlvbjx1bmtub3duPj4sXG4gICAgICAgIGNoYW5nZSxcbiAgICAgICAgbmV3SXRlbVxuICAgICAgKVswXTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICAvKipcbiAgICogVHJhdmVyc2VzIGFuIE9wdGlvbkl0ZW1NYXAgb2YgYSBGb3JtSXRlbSB0byBpbnNlcnQgb3IgcmVtb3ZlIGEgZGVzaWduYXRlZCBGb3JtSXRlbVxuICAgKiBAcGFyYW0gb3B0aW9uSXRlbSBGb3JtSXRlbSB3aXRoIGFuIG9wdGlvbkl0ZW1NYXAsIGUuZy4gT3B0aW9uSXRlbUltcGwgfCBPcHRpb25Hcm91cEl0ZW1JbXBsXG4gICAqIEBwYXJhbSBjaGFuZ2UgTXRuYVdmRm9ybUl0ZW1DaGFuZ2UgZm9yIGFkZGluZyBvciByZW1vdmluZyBhIEZvcm1JdGVtXG4gICAqIEBwYXJhbSBuZXdJdGVtIEZvcm1JdGVtIHRvIGJlIGFkZGVkIHRvIGl0cyBwYXJlbnRcbiAgICogQHJldHVybnMgRm9ybUl0ZW0gd2l0aCBhbiBvcHRpb25JdGVtTWFwIGNvbnRhaW5pbmcgRm9ybUl0ZW1zXG4gICAqL1xuICBwcml2YXRlIF9tb2RpZnlPcHRpb25JdGVtKFxuICAgIG9wdGlvbkl0ZW06IE9wdGlvbkl0ZW1JbXBsPE9wdGlvbjx1bmtub3duPiwgdW5rbm93bj4gfCBPcHRpb25Hcm91cEl0ZW1JbXBsPE9wdGlvbjx1bmtub3duPj4sXG4gICAgY2hhbmdlOiBNdG5hV2ZGb3JtSXRlbUNoYW5nZSxcbiAgICBuZXdJdGVtPzogRm9ybUl0ZW1cbiAgKTogW09wdGlvbkl0ZW1JbXBsPE9wdGlvbjx1bmtub3duPiwgdW5rbm93bj4gfCBPcHRpb25Hcm91cEl0ZW1JbXBsPE9wdGlvbjx1bmtub3duPj4sIGJvb2xlYW5dIHtcbiAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICBjb25zdCBvcHRpb25JdGVtTWFwOiB7IFtpZDogc3RyaW5nXTogRm9ybUl0ZW0gfSA9IHt9O1xuICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgbWFwIGFuZCBzZXQgdGhlIGl0ZW1zIHRvIGEgbmV3IG1hcFxuICAgIC8vIENoZWNrIGlmIGFueSBGb3JtSXRlbSBpbiB0aGUgbWFwIG1hdGNoZXMgdGhlIG5leHQgcGFyZW50IElEXG4gICAgZm9yIChjb25zdCBpZCBpbiBvcHRpb25JdGVtLm9wdGlvbkl0ZW1NYXApIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob3B0aW9uSXRlbS5vcHRpb25JdGVtTWFwLCBpZCkpIHtcbiAgICAgICAgLy8gSWYgb25lIG1hdGNoZXMsIG1vZGlmeSAmIHNldCBpdCBvbiB0aGUgbmV3IG1hcFxuICAgICAgICBpZiAob3B0aW9uSXRlbS5vcHRpb25JdGVtTWFwW2lkXS5pbnN0YW5jZUlkID09PSBjaGFuZ2UucGFyZW50SWRzWzBdKSB7XG4gICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgIG9wdGlvbkl0ZW1NYXBbaWRdID0gdGhpcy5fbW9kaWZ5Rm9ybUl0ZW0oXG4gICAgICAgICAgICBvcHRpb25JdGVtLm9wdGlvbkl0ZW1NYXBbaWRdIGFzIFBhcmVudEl0ZW1VbmlvbixcbiAgICAgICAgICAgIHsgLi4uY2hhbmdlLCBwYXJlbnRJZHM6IGNoYW5nZS5wYXJlbnRJZHMuc2xpY2UoMSkgfSxcbiAgICAgICAgICAgIG5ld0l0ZW1cbiAgICAgICAgICApIGFzIEZvcm1JdGVtO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9wdGlvbkl0ZW1NYXBbaWRdID0gb3B0aW9uSXRlbS5vcHRpb25JdGVtTWFwW2lkXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyByZXR1cm4gdGhlIGl0ZW0gd2l0aCBpdHMgbmV3IG9wdGlvbkl0ZW1NYXAsICYgd2hldGhlciB3ZSBmb3VuZCB0aGUgbWF0Y2hpbmcgaXRlbVxuICAgIHJldHVybiBbeyAuLi5vcHRpb25JdGVtLCBvcHRpb25JdGVtTWFwIH0sIGZvdW5kXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmF2ZXJzZXMgdGFibGUgcm93cyB0byBpbnNlcnQgb3IgcmVtb3ZlIGEgRm9ybUl0ZW1cbiAgICogQHBhcmFtIHRhYmxlSXRlbSBUYWJsZUl0ZW0gdG8gdHJhdmVyc2VcbiAgICogQHBhcmFtIGNoYW5nZSBNdG5hV2ZGb3JtSXRlbUNoYW5nZSBmb3IgYWRkaW5nIG9yIHJlbW92aW5nIGEgRm9ybUl0ZW1cbiAgICogQHBhcmFtIG5ld0l0ZW0gRm9ybUl0ZW0gdG8gYmUgYWRkZWQgdG8gaXRzIHBhcmVudFxuICAgKiBAcmV0dXJucyBUYWJsZUl0ZW0gd2l0aCBhIEZvcm1JdGVtIGFkZGVkIG9yIHJlbW92ZWRcbiAgICovXG4gIHByaXZhdGUgX21vZGlmeVRhYmxlSXRlbSh0YWJsZUl0ZW06IFRhYmxlSXRlbSwgY2hhbmdlOiBNdG5hV2ZGb3JtSXRlbUNoYW5nZSwgbmV3SXRlbT86IEZvcm1JdGVtKTogVGFibGVJdGVtIHtcbiAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAvLyBNYXAgdGhlIHRhYmxlIHJvd3MgdG8gZmluZCB0aGUgRm9ybUl0ZW0gd2l0aCBtYXRjaGluZyBpbnN0YW5jZUlkXG4gICAgY29uc3QgdGFibGVSb3dzOiBUYWJsZVJvd0l0ZW1bXSA9IHRhYmxlSXRlbS50YWJsZVJvd3MubWFwKChyb3c6IFRhYmxlUm93SXRlbSkgPT4ge1xuICAgICAgLy8gSWYgdGhlIGl0ZW0gd2FzIGZvdW5kLCBza2lwIG1hcHBpbmcgZnVydGhlciByb3dzXG4gICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucm93LFxuICAgICAgICAgIGl0ZW1zOiByb3cuaXRlbXMubWFwKChyb3dJdGVtOiBGb3JtSXRlbSkgPT4ge1xuICAgICAgICAgICAgLy8gSWYgd2UgZm91bmQgdGhlIG5leHQgbWF0Y2hpbmcgRm9ybUl0ZW0sIHRvZ2dsZSAnZm91bmQnLCBhbmQgcmV0dXJuIHRoZSBtb2RpZmllZCBGb3JtSXRlbVxuICAgICAgICAgICAgaWYgKCEhcm93SXRlbSAmJiByb3dJdGVtLmluc3RhbmNlSWQgPT09IGNoYW5nZS5wYXJlbnRJZHNbMF0pIHtcbiAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9kaWZ5Rm9ybUl0ZW0oXG4gICAgICAgICAgICAgICAgcm93SXRlbSBhcyBQYXJlbnRJdGVtVW5pb24sXG4gICAgICAgICAgICAgICAgeyAuLi5jaGFuZ2UsIHBhcmVudElkczogY2hhbmdlLnBhcmVudElkcy5zbGljZSgxKSB9LFxuICAgICAgICAgICAgICAgIG5ld0l0ZW1cbiAgICAgICAgICAgICAgKSBhcyBGb3JtSXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZSBGb3JtSXRlbSBpbnN0YW5jZUlkIGRvZXNuJ3QgbWF0Y2gsIGJ1dCBpdCBoYXMgRm9ybUl0ZW1zIGluIGl0cyAnb3B0aW9uSXRlbU1hcCcsXG4gICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGlmIGEgbWF0Y2hpbmcgRm9ybUl0ZW0gZXhpc3RzIGluIGl0cyBtYXBcbiAgICAgICAgICAgIGlmICgnb3B0aW9uSXRlbU1hcCcgaW4gcm93SXRlbSkge1xuICAgICAgICAgICAgICBjb25zdCByZXR1cm5lZCA9IHRoaXMuX21vZGlmeU9wdGlvbkl0ZW0oXG4gICAgICAgICAgICAgICAgcm93SXRlbSBhcyBPcHRpb25JdGVtSW1wbDxPcHRpb248dW5rbm93bj4sIHVua25vd24+IHwgT3B0aW9uR3JvdXBJdGVtSW1wbDxPcHRpb248dW5rbm93bj4+LFxuICAgICAgICAgICAgICAgIGNoYW5nZSxcbiAgICAgICAgICAgICAgICBuZXdJdGVtXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGZvdW5kID0gcmV0dXJuZWRbMV07XG4gICAgICAgICAgICAgIHJldHVybiByZXR1cm5lZFswXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByb3dJdGVtO1xuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJvdztcbiAgICB9KTtcbiAgICByZXR1cm4geyAuLi50YWJsZUl0ZW0sIHRhYmxlUm93cyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgb3IgcmVtb3ZlcyBpbnN0YW5jZUlkcyBmcm9tIHRoZSAnaXRlbUlkcycgaW4gYSBGb3JtSXRlbSdzIGNvbmRpdGlvblxuICAgKiBAcGFyYW0gZm9ybSBNdG5hRm9ybSB0byBzZWFyY2ggdGhyb3VnaCAmIHJlcGxhY2UgZm9ybWl0ZW1zIHdpdGggdGhlIG5ldyBjb25kaXRpb25cbiAgICogQHBhcmFtIGNoYW5nZSBUaGUgY2hhbmdlIHRoYXQgcmVjZW50bHkgb2NjdXJyZWQgaW4gdGhlIG10bmFGb3JtXG4gICAqL1xuICBwcml2YXRlIF9tb2RpZnlGb3JtSXRlbUNvbmRpdGlvbnMoZm9ybTogRm9ybSwgY2hhbmdlOiBNdG5hV2ZGb3JtSXRlbUNoYW5nZSk6IEZvcm0ge1xuICAgIGxldCBuZXdGb3JtID0gZm9ybTtcbiAgICBpZiAoY2hhbmdlLmNvbmRpdGlvbkNoYW5nZXMpIHtcbiAgICAgIGNvbnN0IGZvcm1JdGVtczogeyBba2V5OiBzdHJpbmddOiBGb3JtSXRlbSB8IENvbmRpdGlvbmFsSXRlbSB9ID0ge307XG4gICAgICBmb3IgKGNvbnN0IGNjIG9mIGNoYW5nZS5jb25kaXRpb25DaGFuZ2VzKSB7XG4gICAgICAgIGZvciAoY29uc3QgdG9nZ2xlZElkIG9mIFsuLi5jYy5lbmFibGVkSXRlbXMsIC4uLmNjLmRpc2FibGVkSXRlbXNdKSB7XG4gICAgICAgICAgbGV0IGZvcm1JdGVtID0gZm9ybUl0ZW1zW3RvZ2dsZWRJZF07XG4gICAgICAgICAgY29uc3QgZm9ybUl0ZW1Db21wb25lbnQgPSB0aGlzLnVpU2VydmljZS5nZXRJdGVtKHRvZ2dsZWRJZCk7XG4gICAgICAgICAgaWYgKCFmb3JtSXRlbSAmJiBmb3JtSXRlbUNvbXBvbmVudD8uaXRlbSkge1xuICAgICAgICAgICAgZm9ybUl0ZW0gPSBmb3JtSXRlbUNvbXBvbmVudD8uaXRlbTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzQ29uZGl0aW9uYWxJdGVtKGZvcm1JdGVtKSAmJiBmb3JtSXRlbS5jb25kaXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1Db25kaXRpb25JdGVtSWRzID0gZm9ybUl0ZW0uY29uZGl0aW9uLml0ZW1JZHMgfHwgW107XG4gICAgICAgICAgICBjb25zdCBpdGVtSWRzID1cbiAgICAgICAgICAgICAgY2hhbmdlLmFjdGlvblR5cGUgPT09ICdBREQnXG4gICAgICAgICAgICAgICAgPyBbLi4uaXRlbUNvbmRpdGlvbkl0ZW1JZHMsIGNjLmVuYWJsZXJJZF1cbiAgICAgICAgICAgICAgICA6IGl0ZW1Db25kaXRpb25JdGVtSWRzLmZpbHRlcigoaSkgPT4gaSAhPT0gY2MuZW5hYmxlcklkKTtcbiAgICAgICAgICAgIGNvbnN0IG5ld0l0ZW06IENvbmRpdGlvbmFsSXRlbSA9IHsgLi4uZm9ybUl0ZW0sIGNvbmRpdGlvbjogeyAuLi5mb3JtSXRlbS5jb25kaXRpb24sIGl0ZW1JZHMgfSB9O1xuICAgICAgICAgICAgY29uc3QgdGVtcGxhdGVJZCA9IChmb3JtSXRlbSBhcyBhbnkpPy50ZW1wbGF0ZUlkID8/IG5ld0l0ZW0uaW5zdGFuY2VJZDtcbiAgICAgICAgICAgIGNvbnN0IG5ld0NoYW5nZSA9IG5ldyBNdG5hV2ZGb3JtSXRlbUNoYW5nZShuZXdJdGVtLmluc3RhbmNlSWQsIHRlbXBsYXRlSWQsIGZvcm1JdGVtQ29tcG9uZW50Py5wYXJlbnRJZHMgfHwgW10sICdSRVBMQUNFJyk7XG5cbiAgICAgICAgICAgIG5ld0Zvcm0gPSB0aGlzLl9tb2RpZnlGb3JtSXRlbShuZXdGb3JtLCBuZXdDaGFuZ2UsIG5ld0l0ZW0gYXMgRm9ybUl0ZW0gJiBDb25kaXRpb25hbEl0ZW0pIGFzIEZvcm07XG4gICAgICAgICAgICBmb3JtSXRlbXNbdG9nZ2xlZElkXSA9IG5ld0l0ZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2UuYWN0aW9uVHlwZSA9PT0gJ1JFTU9WRScpIHtcbiAgICAgICAgICB0aGlzLnVpU2VydmljZS50b2dnbGVGb3JtSXRlbXMoY2MuZW5hYmxlZEl0ZW1zLCBjYy5kaXNhYmxlZEl0ZW1zLCAhIWNjLmVuYWJsZSwgY2MuZW5hYmxlcklkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3Rm9ybTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBtYXAgb2YgYWxsIGluc3RhbmNlSWRzIGluc2lkZSBhbiBpdGVtLiBDaGVja3MgJ2l0ZW1zJyAmICdvcHRpb25JdGVtTWFwJ1xuICAgKiBAcGFyYW0gaXRlbSBJdGVtIHRvIHJlY3Vyc2VcbiAgICogQHBhcmFtIGlkTWFwIG1hcCBvZiB0aGUgaXRlbSdzIGludGVybmFsIGluc3RhbmNlSWRzXG4gICAqL1xuICBwcml2YXRlIF9idWlsZEludGVybmFsSWRzTWFwKGl0ZW06IEZvcm1JdGVtLCBpZE1hcDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4pIHtcbiAgICBpZE1hcFtpdGVtLmluc3RhbmNlSWRdID0gdHJ1ZTtcbiAgICBpZiAoaXNUeXBlPHsgaXRlbXM6IEZvcm1JdGVtW10gfT4oaXRlbSwgJ2l0ZW1zJykpIHtcbiAgICAgIGNvbnN0IGl0ZW1zOiBGb3JtSXRlbVtdID0gaXRlbS5pdGVtcztcbiAgICAgIGZvciAoY29uc3Qgc3ViSXRlbSBvZiBpdGVtcykge1xuICAgICAgICB0aGlzLl9idWlsZEludGVybmFsSWRzTWFwKHN1Ykl0ZW0sIGlkTWFwKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzVHlwZTx7IG9wdGlvbkl0ZW1NYXA6IHsgW2lkOiBzdHJpbmddOiBGb3JtSXRlbSB9IH0+KGl0ZW0sICdvcHRpb25JdGVtTWFwJykpIHtcbiAgICAgIGNvbnN0IG1hcDogeyBbaWQ6IHN0cmluZ106IEZvcm1JdGVtIH0gPSBpdGVtLm9wdGlvbkl0ZW1NYXA7XG4gICAgICBmb3IgKGNvbnN0IGlkIGluIG1hcCkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1hcCwgaWQpKSB7XG4gICAgICAgICAgdGhpcy5fYnVpbGRJbnRlcm5hbElkc01hcChtYXBbaWRdLCBpZE1hcCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIGFuIGFycmF5IG9mIENvbmRpdGlvbkNoYW5nZXMgdG8gYmUgaW1wbGVtZW50ZWQgaW4gYW4gTXRuYUZvcm0uXG4gICAqIEBwYXJhbSBpdGVtIEZvcm1JdGVtIHRoYXQgd2FzIGFkZGVkL3JlbW92ZWQsIHdoaWNoIGFmZmVjdHMgY29uZGl0aW9ucyBvZiBvdGhlciBGb3JtSXRlbXNcbiAgICogQHBhcmFtIGNoYW5nZXMgQXJyYXkgdG8gYnVpbGQgdXBcbiAgICogQHBhcmFtIGludGVybmFsSWRNYXAgTWFwIG9mIGFsbCBpbnN0YW5jZUlkcyBsb2NhdGVkIGluIHRoZSBpdGVtOyBpbiBvcmRlciB0byBleGNsdWRlIHRoZW0gZnJvbSB0aGUgY29uZGl0aW9uIGNoYW5nZXNcbiAgICogQHBhcmFtIGFjdGlvbiBXaGV0aGVyIHRoZSBpdGVtIHdhcyBhZGRlZCBvciByZW1vdmVkXG4gICAqL1xuICBwcml2YXRlIF9idWlsZENvbmRpdGlvbkNoYW5nZUFycmF5KFxuICAgIGl0ZW06IEZvcm1JdGVtLFxuICAgIGNoYW5nZXM6IEFycmF5PENvbmRpdGlvbkNoYW5nZT4sXG4gICAgaW50ZXJuYWxJZE1hcDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4sXG4gICAgYWN0aW9uPzogTXRuYVdmRm9ybUl0ZW1DaGFuZ2VBY3Rpb25cbiAgKSB7XG4gICAgaWYgKGlzT3B0aW9uSXRlbUltcGwoaXRlbSkpIHtcbiAgICAgIGNvbnN0IGVuYWJsZSA9ICEhYWN0aW9uICYmIGFjdGlvbiA9PT0gJ0FERCcgPyBpdGVtLm9wdGlvbi5zZWxlY3RlZCB8fCBpdGVtLnZhbHVlID09PSBpdGVtLm9wdGlvbi5vcHRpb24uaWQgOiBmYWxzZTtcbiAgICAgIHRoaXMuX3B1c2hDb25kaXRpb25Ub0FycmF5KGl0ZW0uaW5zdGFuY2VJZCwgaXRlbS5vcHRpb24uZW5hYmxlZEl0ZW1zLCBpdGVtLm9wdGlvbi5kaXNhYmxlZEl0ZW1zLCBjaGFuZ2VzLCBpbnRlcm5hbElkTWFwLCBlbmFibGUpO1xuICAgICAgdGhpcy5fYnVpbGRBcnJheUZyb21PcHRpb25JdGVtTWFwKGl0ZW0sIGNoYW5nZXMsIGludGVybmFsSWRNYXApO1xuICAgIH0gZWxzZSBpZiAoaXNPcHRpb25Hcm91cEl0ZW1JbXBsKGl0ZW0pKSB7XG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBpdGVtLm9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgZW5hYmxlID1cbiAgICAgICAgICAhIWFjdGlvbiAmJiBhY3Rpb24gPT09ICdBREQnID8gb3B0aW9uLnNlbGVjdGVkIHx8ICghIWl0ZW0udmFsdWUgJiYgaXRlbS52YWx1ZS5zb21lKCh2KSA9PiB2ID09PSBvcHRpb24ub3B0aW9uLmlkKSkgOiBmYWxzZTtcbiAgICAgICAgdGhpcy5fcHVzaENvbmRpdGlvblRvQXJyYXkoaXRlbS5pbnN0YW5jZUlkLCBvcHRpb24uZW5hYmxlZEl0ZW1zLCBvcHRpb24uZGlzYWJsZWRJdGVtcywgY2hhbmdlcywgaW50ZXJuYWxJZE1hcCwgZW5hYmxlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2J1aWxkQXJyYXlGcm9tT3B0aW9uSXRlbU1hcChpdGVtLCBjaGFuZ2VzLCBpbnRlcm5hbElkTWFwLCBhY3Rpb24pO1xuICAgIH0gZWxzZSBpZiAoaXNUeXBlPHsgaXRlbXM6IEZvcm1JdGVtW10gfT4oaXRlbSwgJ2l0ZW1zJykpIHtcbiAgICAgIGNvbnN0IGl0ZW1zOiBGb3JtSXRlbVtdID0gaXRlbS5pdGVtcztcbiAgICAgIGZvciAoY29uc3Qgc3ViSXRlbSBvZiBpdGVtcykge1xuICAgICAgICB0aGlzLl9idWlsZENvbmRpdGlvbkNoYW5nZUFycmF5KHN1Ykl0ZW0sIGNoYW5nZXMsIGludGVybmFsSWRNYXAsIGFjdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhbiBhcnJheSBvZiBDb25kaXRpb25DaGFuZ2VzIGZyb20gYW4gaXRlbSdzIG9wdGlvbkl0ZW1NYXBcbiAgICogQHBhcmFtIGl0ZW0gRm9ybUl0ZW0gd2l0aCBhbiBvcHRpb25JdGVtTWFwXG4gICAqIEBwYXJhbSBjb25kaXRpb25zIEFycmF5IG9mIENvbmRpdGlvbkNoYW5nZXMgdG8gcHVzaCBvbiBuZXcgY2hhbmdlc1xuICAgKiBAcGFyYW0gaXRlbU1hcCBtYXAgb2YgaW5zdGFuY2VJZHMgZXhpc2l0aW5nIGluIGFuIGl0ZW07IGluIG9yZGVyIHRvIGV4Y2x1ZGUgdGhlbSBmcm9tIHRoZSBjaGFuZ2VzXG4gICAqIEBwYXJhbSBhY3Rpb24gV2hldGhlciBhbiBpdGVtIHdhcyBhZGRlZCBvciByZW1vdmVkXG4gICAqL1xuICBwcml2YXRlIF9idWlsZEFycmF5RnJvbU9wdGlvbkl0ZW1NYXAoXG4gICAgaXRlbTogT3B0aW9uSXRlbUltcGw8T3B0aW9uPHVua25vd24+LCB1bmtub3duPiB8IE9wdGlvbkdyb3VwSXRlbUltcGw8T3B0aW9uPHVua25vd24+PixcbiAgICBjb25kaXRpb25zOiBBcnJheTxDb25kaXRpb25DaGFuZ2U+LFxuICAgIGl0ZW1NYXA6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+LFxuICAgIGFjdGlvbj86IE10bmFXZkZvcm1JdGVtQ2hhbmdlQWN0aW9uXG4gICkge1xuICAgIGlmIChpdGVtLm9wdGlvbkl0ZW1NYXApIHtcbiAgICAgIGZvciAoY29uc3QgaWQgaW4gaXRlbS5vcHRpb25JdGVtTWFwKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbS5vcHRpb25JdGVtTWFwLCBpZCkpIHtcbiAgICAgICAgICBjb25zdCBzdWJJdGVtID0gaXRlbS5vcHRpb25JdGVtTWFwW2lkXTtcbiAgICAgICAgICB0aGlzLl9idWlsZENvbmRpdGlvbkNoYW5nZUFycmF5KHN1Ykl0ZW0sIGNvbmRpdGlvbnMsIGl0ZW1NYXAsIGFjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHVzaGVzIGEgbmV3IENvbmRpdGlvbkNoYW5nZSBvbnRvIHRoZSBjb25kaXRpb25zIGFycmF5LiBJZiBhIENvbmRpdGlvbkNoYW5nZSB3aXRoIG1hdGNoaW5nIGlkIGV4aXN0cyxcbiAgICogaXQgbWVyZ2VzIHRoZSBuZXcgdmFsdWVzIGludG8gaXRcbiAgICogQHBhcmFtIGVuYWJsZXJJZCBpbnN0YW5jZUlkIG9mIHRoZSBpdGVtIHRoYXQgZW5hYmxlcyBvdGhlciBGb3JtSXRlbXNcbiAgICogQHBhcmFtIGVuYWJsZWQgdGhlIGl0ZW0ncyAnZW5hYmxlZEl0ZW1zJyBhcnJheVxuICAgKiBAcGFyYW0gZGlzYWJsZWQgdGhlIGl0ZW0ncyAnZGlzYWJsZWRJdGVtcycgYXJyYXlcbiAgICogQHBhcmFtIGNvbmRpdGlvbnMgQXJyYXkgb2YgQ29uZGl0aW9uQ2hhbmdlcyB0byBidWlsZCB1cFxuICAgKiBAcGFyYW0gaXRlbU1hcCBtYXAgb2YgaW5zdGFuY2VJZHMgaW5zaWRlIGFuIGl0ZW07IHRvIGVuc3VyZSBubyBpbnRlcm5hbCBpZHMgYXJlIGluY2x1ZGVkIGluIGEgY2hhbmdlXG4gICAqIEBwYXJhbSBlbmFibGUgV2hldGhlciB0aGUgJ2VuYWJsZWRJdGVtcycgc2hvdWxkIHRvZ2dsZWQgZW5hYmxlZFxuICAgKi9cbiAgcHJpdmF0ZSBfcHVzaENvbmRpdGlvblRvQXJyYXkoXG4gICAgZW5hYmxlcklkOiBzdHJpbmcsXG4gICAgZW5hYmxlZDogc3RyaW5nW10sXG4gICAgZGlzYWJsZWQ6IHN0cmluZ1tdLFxuICAgIGNvbmRpdGlvbnM6IEFycmF5PENvbmRpdGlvbkNoYW5nZT4sXG4gICAgaXRlbU1hcDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4sXG4gICAgZW5hYmxlOiBib29sZWFuXG4gICkge1xuICAgIGNvbnN0IGVuYWJsZWRJdGVtcyA9IGVuYWJsZWQuZmlsdGVyKChlKSA9PiAhaXRlbU1hcFtlXSk7XG4gICAgY29uc3QgZGlzYWJsZWRJdGVtcyA9IGRpc2FibGVkLmZpbHRlcigoZCkgPT4gIWl0ZW1NYXBbZF0pO1xuICAgIGlmICghIWVuYWJsZWRJdGVtcy5sZW5ndGggfHwgISFkaXNhYmxlZEl0ZW1zLmxlbmd0aCkge1xuICAgICAgY29uc3QgaW5kZXggPSBjb25kaXRpb25zLmZpbmRJbmRleCgoYykgPT4gYy5lbmFibGVySWQgPT09IGVuYWJsZXJJZCk7XG4gICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgIGNvbmRpdGlvbnMucHVzaCh7IGVuYWJsZXJJZDogZW5hYmxlcklkLCBlbmFibGVkSXRlbXMsIGRpc2FibGVkSXRlbXMsIGVuYWJsZSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHByZXYgPSBjb25kaXRpb25zW2luZGV4XTtcbiAgICAgICAgY29uc3QgbmV3SWQ6IENvbmRpdGlvbkNoYW5nZSA9IHtcbiAgICAgICAgICBlbmFibGVySWQsXG4gICAgICAgICAgZW5hYmxlZEl0ZW1zOiBbLi4ucHJldi5lbmFibGVkSXRlbXMsIC4uLmVuYWJsZWRJdGVtc10sXG4gICAgICAgICAgZGlzYWJsZWRJdGVtczogWy4uLnByZXYuZGlzYWJsZWRJdGVtcywgLi4uZGlzYWJsZWRJdGVtc10sXG4gICAgICAgICAgZW5hYmxlLFxuICAgICAgICB9O1xuICAgICAgICBjb25kaXRpb25zLnNwbGljZShpbmRleCwgMSwgbmV3SWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZSBhbGwgdmFsaWRhdGlvbiBlcnJvcnMgb24gdGhlIHNlcnZpY2UuXG4gICAqIFJldmFsaWRhdGUgZm9ybSBjb250cm9scyB0aGF0IHByZXZpb3VzbHkgaGFkIGVycm9ycyBvciBoYXZlIG5ldyBlcnJvcnMgbm93LlxuICAgKi9cbiAgcHJpdmF0ZSBfdXBkYXRlU2VydmVyU2lkZUVycm9ycygpIHtcbiAgICAvLyBLZWVwIHRyYWNrIG9mIElEcyBmb3IgZWFjaCBjb250cm9sIHRoYXQgbmVlZHMgdG8gYmUgcmV2YWxpZGF0ZWRcbiAgICBjb25zdCBjb250cm9sSWRzVG9SZXZhbGlkYXRlID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICAvLyBDb2xsZWN0IGNvbnRyb2xzIHByZXZpb3VzbHkgaW4gZXJyb3IgdG8gcmV2YWxpZGF0ZVxuICAgIGlmICh0aGlzLl9mb3JtSXRlbVZhbGlkYXRpb25SZXN1bHRzKSB7XG4gICAgICBmb3IgKGNvbnN0IGlkIGluIHRoaXMuX2Zvcm1JdGVtVmFsaWRhdGlvblJlc3VsdHMpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLl9mb3JtSXRlbVZhbGlkYXRpb25SZXN1bHRzLCBpZCkpIHtcbiAgICAgICAgICBjb250cm9sSWRzVG9SZXZhbGlkYXRlLmFkZChpZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGVhciBvdXQgYWxsIHByZXZpb3VzIHN0b3JlZCBlcnJvcnNcbiAgICB0aGlzLl9mb3JtSXRlbVZhbGlkYXRpb25SZXN1bHRzID0ge307XG4gICAgaWYgKHRoaXMuX210bmFGb3JtPy52YWxpZGF0aW9uUmVzdWx0KSB7XG4gICAgICBmb3IgKGNvbnN0IHJlc3VsdCBvZiB0aGlzLl9tdG5hRm9ybS52YWxpZGF0aW9uUmVzdWx0LmZvcm1JdGVtVmFsaWRhdGlvblJlc3VsdHMpIHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uU3RhdHVzID09PSAnRVJST1JTJykge1xuICAgICAgICAgIC8vIFN0b3JlIGVycm9ycyBzbyB0aGF0IHRoZSB2YWxpZGF0aW9uUmVzdWx0VmFsaWRhdG9yIGNhbiB2YWxpZGF0ZSBlYWNoIGNvbnRyb2xcbiAgICAgICAgICB0aGlzLl9mb3JtSXRlbVZhbGlkYXRpb25SZXN1bHRzW3Jlc3VsdC5pZF0gPSByZXN1bHQ7XG4gICAgICAgICAgLy8gV2UgbmVlZCB0byByZXZhbGlkYXRlIHRoZXNlIGNvbnRyb2xzIHRoYXQgaGF2ZSBlcnJvcnNcbiAgICAgICAgICBjb250cm9sSWRzVG9SZXZhbGlkYXRlLmFkZChyZXN1bHQuaWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gT25seSByZXZhbGlkYXRlIGNvbnRyb2xzIGFjdHVhbGx5IGNoYW5nZXNcbiAgICBjb25zdCBmb3JtID0gdGhpcy5uZ0Zvcm1TZXJ2aWNlLmdldEZvcm0oKTtcbiAgICBpZiAoZm9ybSkge1xuICAgICAgZm9yIChjb25zdCBpZCBvZiBjb250cm9sSWRzVG9SZXZhbGlkYXRlKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmaW5kRm9ybUNvbnRyb2woaWQsIGZvcm0pO1xuICAgICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iXX0=
@@ -4879,8 +4879,8 @@ class MtnaWfApiService extends BaseUrlService {
4879
4879
  * @param formInstanceId template ID of the mtna form
4880
4880
  * @param itemId repeatableTemplateId of the requesting RepeatableItem
4881
4881
  */
4882
- getRepeatableItem(formInstanceId, itemId) {
4883
- return this.http.get(`${this.FORM_URL}/${formInstanceId}/new/item/${itemId}`);
4882
+ getRepeatableItem(templateId, itemTemplateId) {
4883
+ return this.http.get(`${this.FORM_URL}/${templateId}/item/${itemTemplateId}`);
4884
4884
  }
4885
4885
  getNewTemplate() {
4886
4886
  return this.http.get(this.NEW_TEMPLATE_URL);
@@ -5188,7 +5188,7 @@ class MtnaWfManagerService {
5188
5188
  }
5189
5189
  else {
5190
5190
  this.apiService
5191
- .getRepeatableItem(this._mtnaForm.instanceId, change.id)
5191
+ .getRepeatableItem(this._mtnaForm.templateId, change.templateId)
5192
5192
  .pipe(take(1))
5193
5193
  .subscribe((newItem) => {
5194
5194
  const newFormControl = this.serializeMtnaFormItem(newItem);
@@ -5432,6 +5432,7 @@ class MtnaWfManagerService {
5432
5432
  * @param change The change that recently occurred in the mtnaForm
5433
5433
  */
5434
5434
  _modifyFormItemConditions(form, change) {
5435
+ var _a, _b;
5435
5436
  let newForm = form;
5436
5437
  if (change.conditionChanges) {
5437
5438
  const formItems = {};
@@ -5448,7 +5449,8 @@ class MtnaWfManagerService {
5448
5449
  ? [...itemConditionItemIds, cc.enablerId]
5449
5450
  : itemConditionItemIds.filter((i) => i !== cc.enablerId);
5450
5451
  const newItem = Object.assign(Object.assign({}, formItem), { condition: Object.assign(Object.assign({}, formItem.condition), { itemIds }) });
5451
- const newChange = new MtnaWfFormItemChange(newItem.instanceId, (formItemComponent === null || formItemComponent === void 0 ? void 0 : formItemComponent.parentIds) || [], 'REPLACE');
5452
+ const templateId = (_b = (_a = formItem) === null || _a === void 0 ? void 0 : _a.templateId) !== null && _b !== void 0 ? _b : newItem.instanceId;
5453
+ const newChange = new MtnaWfFormItemChange(newItem.instanceId, templateId, (formItemComponent === null || formItemComponent === void 0 ? void 0 : formItemComponent.parentIds) || [], 'REPLACE');
5452
5454
  newForm = this._modifyFormItem(newForm, newChange, newItem);
5453
5455
  formItems[toggledId] = newItem;
5454
5456
  }
@@ -6925,7 +6927,7 @@ class MtnaWfFormGroupComponent extends MtnaWfBaseGroupItem {
6925
6927
  }
6926
6928
  }
6927
6929
  MtnaWfFormGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6928
- MtnaWfFormGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfFormGroupComponent, selector: "mtna-wf-group", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"item && control\">\n <mtna-wf-item-header\n *ngIf=\"!!item.questionText || !!item.descriptiveText\"\n [descriptiveText]=\"item.descriptiveText\"\n [disabled]=\"control.disabled\"\n [questionText]=\"item.questionText\"\n [required]=\"item.required\"\n ></mtna-wf-item-header>\n <ng-template #fullLayout>\n <div\n class=\"item-group-container\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !item.questionText && !item.descriptiveText\"\n [formGroup]=\"control\"\n [ngClass]=\"item.layout\"\n >\n <mtna-wf-item\n *ngFor=\"let subItem of item.items; trackBy: _trackByInstanceId\"\n [class.row-item]=\"item.layout === 'ROW' && !fullWidth[subItem.itemId]\"\n [ngClass.lt-md]=\"'width-100'\"\n [isCompact]=\"isCompact\"\n [item]=\"subItem\"\n [control]=\"control.controls[subItem.instanceId]\"\n [parentIds]=\"parentIds\"\n [readonly]=\"readonly\"\n ></mtna-wf-item>\n </div>\n </ng-template>\n\n <!-- When readonly, && all child items should be displayed in a mat-list-->\n <mat-list *ngIf=\"readonly && inList; else fullLayout\" [ngClass]=\"item.layout\">\n <mtna-wf-item\n *ngFor=\"let subItem of item.items | mtnaWfItemsWithValue; let index = index; trackBy: _trackByInstanceId\"\n [class.row-item]=\"item.layout === 'ROW'\"\n [ngClass.lt-md]=\"'width-100'\"\n [item]=\"subItem\"\n [inList]=\"true\"\n [parentIds]=\"parentIds\"\n [readonly]=\"true\"\n ></mtna-wf-item>\n </mat-list>\n</ng-container>\n", styles: ["mtna-annotations-indicator+mtna-wf-item-injector+mtna-wf-group .item-group-container{padding-top:24px}mtna-wf-group .mtna-wf-group-header{margin-top:1rem}mtna-wf-group .mtna-wf-group-description{margin-bottom:1rem}mtna-wf-group mat-list mat-list-item [mat-line]{letter-spacing:.5px}mtna-wf-group mtna-wf-multiple-choice-item{display:block}mtna-wf-group .item-group-container>.mtna-wf-group{margin-top:1rem}mtna-wf-group .item-group-container>mtna-wf-item.mtna-wf-title~mtna-wf-item:not(.mtna-wf-title):not(.row-item){padding-left:16px}mtna-wf-group .item-group-container>mtna-wf-item.mtna-wf-title~mtna-wf-item:not(.mtna-wf-title):not(.row-item).width-100{width:calc(100% - 16px)}mtna-wf-group .item-group-container>mtna-wf-item:first-of-type{margin-top:0}mtna-wf-group .item-group-container.ROW>mtna-wf-item{margin-top:0}mtna-wf-group .item-group-container.ROW>*{display:block}mtna-wf-group .item-group-container .row-item{width:calc(50% - 16px);display:inline-block;margin:0 8px}mtna-wf-group .item-group-container .width-100{width:100%}mtna-wf-group .item-group-container .width-100.row-item{width:calc(100% - 16px)}mtna-wf-group mtna-wf-item-header+.item-group-container{padding:.35em .75em .625em}mtna-wf-group mtna-wf-item-header+.item-group-container>mtna-wf-item{margin-top:0}\n"], components: [{ type: MtnaWfItemHeaderComponent, selector: "mtna-wf-item-header", inputs: ["descriptiveText", "disabled", "hideRequiredMarker", "invalid", "questionText", "required"] }, { type: MtnaWfFormItemComponent, selector: "mtna-wf-item", inputs: ["color", "control", "header", "isCompact", "inList", "item", "parentIds", "readonly", "step"], outputs: ["focusedSection"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.MtnaHighlightDirective, selector: "[mtnaHighlight]", inputs: ["mtnaHighlight", "mtnaHighlightColor"], exportAs: ["mtnaHighlight"] }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6$1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "mtnaWfItemsWithValue": MtnaWfItemsWithValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
6930
+ MtnaWfFormGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfFormGroupComponent, selector: "mtna-wf-group", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"item && control\">\n <mtna-wf-item-header\n *ngIf=\"!!item.questionText || !!item.descriptiveText\"\n [descriptiveText]=\"item.descriptiveText\"\n [disabled]=\"control.disabled\"\n [questionText]=\"item.questionText\"\n [required]=\"item.required\"\n ></mtna-wf-item-header>\n <ng-template #fullLayout>\n <div\n class=\"item-group-container\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !item.questionText && !item.descriptiveText\"\n [formGroup]=\"control\"\n [ngClass]=\"item.layout\"\n >\n <mtna-wf-item\n *ngFor=\"let subItem of item.items; trackBy: _trackByInstanceId\"\n [class.row-item]=\"item.layout === 'ROW' && !fullWidth[subItem.itemId]\"\n [ngClass.lt-md]=\"'width-100'\"\n [isCompact]=\"isCompact\"\n [item]=\"subItem\"\n [control]=\"control.controls[subItem.instanceId]\"\n [parentIds]=\"parentIds.concat(item.instanceId)\"\n [readonly]=\"readonly\"\n ></mtna-wf-item>\n </div>\n </ng-template>\n\n <!-- When readonly, && all child items should be displayed in a mat-list-->\n <mat-list *ngIf=\"readonly && inList; else fullLayout\" [ngClass]=\"item.layout\">\n <mtna-wf-item\n *ngFor=\"let subItem of item.items | mtnaWfItemsWithValue; let index = index; trackBy: _trackByInstanceId\"\n [class.row-item]=\"item.layout === 'ROW'\"\n [ngClass.lt-md]=\"'width-100'\"\n [item]=\"subItem\"\n [inList]=\"true\"\n [parentIds]=\"parentIds.concat(item.instanceId)\"\n [readonly]=\"true\"\n ></mtna-wf-item>\n </mat-list>\n</ng-container>\n", styles: ["mtna-annotations-indicator+mtna-wf-item-injector+mtna-wf-group .item-group-container{padding-top:24px}mtna-wf-group .mtna-wf-group-header{margin-top:1rem}mtna-wf-group .mtna-wf-group-description{margin-bottom:1rem}mtna-wf-group mat-list mat-list-item [mat-line]{letter-spacing:.5px}mtna-wf-group mtna-wf-multiple-choice-item{display:block}mtna-wf-group .item-group-container>.mtna-wf-group{margin-top:1rem}mtna-wf-group .item-group-container>mtna-wf-item.mtna-wf-title~mtna-wf-item:not(.mtna-wf-title):not(.row-item){padding-left:16px}mtna-wf-group .item-group-container>mtna-wf-item.mtna-wf-title~mtna-wf-item:not(.mtna-wf-title):not(.row-item).width-100{width:calc(100% - 16px)}mtna-wf-group .item-group-container>mtna-wf-item:first-of-type{margin-top:0}mtna-wf-group .item-group-container.ROW>mtna-wf-item{margin-top:0}mtna-wf-group .item-group-container.ROW>*{display:block}mtna-wf-group .item-group-container .row-item{width:calc(50% - 16px);display:inline-block;margin:0 8px}mtna-wf-group .item-group-container .width-100{width:100%}mtna-wf-group .item-group-container .width-100.row-item{width:calc(100% - 16px)}mtna-wf-group mtna-wf-item-header+.item-group-container{padding:.35em .75em .625em}mtna-wf-group mtna-wf-item-header+.item-group-container>mtna-wf-item{margin-top:0}\n"], components: [{ type: MtnaWfItemHeaderComponent, selector: "mtna-wf-item-header", inputs: ["descriptiveText", "disabled", "hideRequiredMarker", "invalid", "questionText", "required"] }, { type: MtnaWfFormItemComponent, selector: "mtna-wf-item", inputs: ["color", "control", "header", "isCompact", "inList", "item", "parentIds", "readonly", "step"], outputs: ["focusedSection"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.MtnaHighlightDirective, selector: "[mtnaHighlight]", inputs: ["mtnaHighlight", "mtnaHighlightColor"], exportAs: ["mtnaHighlight"] }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6$1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "mtnaWfItemsWithValue": MtnaWfItemsWithValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
6929
6931
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormGroupComponent, decorators: [{
6930
6932
  type: Component,
6931
6933
  args: [{
@@ -6979,7 +6981,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
6979
6981
  class MtnaWfFormSectionComponent extends MtnaWfBaseSectionItem {
6980
6982
  }
6981
6983
  MtnaWfFormSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6982
- MtnaWfFormSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfFormSectionComponent, selector: "mtna-wf-section", usesInheritance: true, ngImport: i0, template: "<mtna-wf-step-card\n [step]=\"step\"\n [subtitle]=\"item.descriptiveText\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE'\"\n (focused)=\"focused.emit($event)\"\n>\n <div cardContent>\n <ng-container *ngFor=\"let subItem of item.items; trackBy: _trackByInstanceId\">\n <mat-divider\n *ngIf=\"(subItem.itemId | mtnaWfGetObjectType) === 'formitemgroupimpl' && item.items.indexOf(subItem) !== 0\"\n class=\"section-item-divider\"\n [inset]=\"true\"\n ></mat-divider>\n\n <mtna-wf-item\n [isCompact]=\"isCompact\"\n [item]=\"subItem\"\n [readonly]=\"readonly\"\n [parentIds]=\"parentIds\"\n [control]=\"!!control && !!control.controls ? control.controls[subItem.instanceId] : undefined\"\n (focusedSection)=\"focused.emit($event)\"\n ></mtna-wf-item>\n </ng-container>\n </div>\n</mtna-wf-step-card>\n", styles: ["mtna-wf-section{display:block}mtna-wf-section mat-divider.mat-divider-horizontal.mat-divider-inset.section-item-divider{margin-top:8px;margin-bottom:8px}\n"], components: [{ type: MtnaWfStepCardComponent, selector: "mtna-wf-step-card", inputs: ["color", "step", "subtitle"], outputs: ["focused"] }, { type: i2$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: MtnaWfFormItemComponent, selector: "mtna-wf-item", inputs: ["color", "control", "header", "isCompact", "inList", "item", "parentIds", "readonly", "step"], outputs: ["focusedSection"] }], directives: [{ type: i1$1.MtnaHighlightDirective, selector: "[mtnaHighlight]", inputs: ["mtnaHighlight", "mtnaHighlightColor"], exportAs: ["mtnaHighlight"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "mtnaWfGetObjectType": MtnaWfGetObjectTypePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
6984
+ MtnaWfFormSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfFormSectionComponent, selector: "mtna-wf-section", usesInheritance: true, ngImport: i0, template: "<mtna-wf-step-card\n [step]=\"step\"\n [subtitle]=\"item.descriptiveText\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE'\"\n (focused)=\"focused.emit($event)\"\n>\n <div cardContent>\n <ng-container *ngFor=\"let subItem of item.items; trackBy: _trackByInstanceId\">\n <mat-divider\n *ngIf=\"(subItem.itemId | mtnaWfGetObjectType) === 'formitemgroupimpl' && item.items.indexOf(subItem) !== 0\"\n class=\"section-item-divider\"\n [inset]=\"true\"\n ></mat-divider>\n\n <mtna-wf-item\n [isCompact]=\"isCompact\"\n [item]=\"subItem\"\n [readonly]=\"readonly\"\n [parentIds]=\"parentIds.concat(item.instanceId)\"\n [control]=\"!!control && !!control.controls ? control.controls[subItem.instanceId] : undefined\"\n (focusedSection)=\"focused.emit($event)\"\n ></mtna-wf-item>\n </ng-container>\n </div>\n</mtna-wf-step-card>\n", styles: ["mtna-wf-section{display:block}mtna-wf-section mat-divider.mat-divider-horizontal.mat-divider-inset.section-item-divider{margin-top:8px;margin-bottom:8px}\n"], components: [{ type: MtnaWfStepCardComponent, selector: "mtna-wf-step-card", inputs: ["color", "step", "subtitle"], outputs: ["focused"] }, { type: i2$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: MtnaWfFormItemComponent, selector: "mtna-wf-item", inputs: ["color", "control", "header", "isCompact", "inList", "item", "parentIds", "readonly", "step"], outputs: ["focusedSection"] }], directives: [{ type: i1$1.MtnaHighlightDirective, selector: "[mtnaHighlight]", inputs: ["mtnaHighlight", "mtnaHighlightColor"], exportAs: ["mtnaHighlight"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "mtnaWfGetObjectType": MtnaWfGetObjectTypePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
6983
6985
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormSectionComponent, decorators: [{
6984
6986
  type: Component,
6985
6987
  args: [{
@@ -7292,11 +7294,11 @@ class MtnaWfRepeatableItemContainerComponent extends MtnaWfBaseParentValueItem {
7292
7294
  this._addText = $localize `ADD`;
7293
7295
  }
7294
7296
  addItem() {
7295
- this.manager.changeMtnaFormItem(new MtnaWfFormItemChange(this.item.repeatableTemplateId, this.parentIds, 'ADD'));
7297
+ this.manager.changeMtnaFormItem(new MtnaWfFormItemChange(this.item.repeatableTemplateId, this.item.repeatableTemplateId, this.parentIds, 'ADD'));
7296
7298
  }
7297
7299
  removeItem(item) {
7298
7300
  const conditionChanges = this.manager.generateConditionChangeArray(item, 'REMOVE');
7299
- this.manager.changeMtnaFormItem(new MtnaWfFormItemChange(item.instanceId, this.parentIds, 'REMOVE', conditionChanges));
7301
+ this.manager.changeMtnaFormItem(new MtnaWfFormItemChange(item.instanceId, item.templateId, this.parentIds, 'REMOVE', conditionChanges));
7300
7302
  }
7301
7303
  }
7302
7304
  MtnaWfRepeatableItemContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfRepeatableItemContainerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: MtnaWfManagerService }], target: i0.ɵɵFactoryTarget.Component });