@elderbyte/ngx-starter 16.2.6 → 16.2.8

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.
@@ -72,7 +72,9 @@ export class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
72
72
  this.entities$,
73
73
  this.entityIds$,
74
74
  this.state$,
75
- this.displayPropertyResolver$
75
+ this.displayPropertyResolver$,
76
+ this.readonly$,
77
+ this.disabled$
76
78
  ]).pipe(map(([entities, entityIds, state, dPR]) => this.buildChipModelsOrFallback(entities, entityIds, state, dPR)));
77
79
  this.templates$ = combineLatest([
78
80
  this.chipTemplate$,
@@ -284,4 +286,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
284
286
  }], customInputTemplate: [{
285
287
  type: Input
286
288
  }] } });
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L211bHRpL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBRVosVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBRUwsUUFBUSxFQUNSLElBQUksRUFDSixXQUFXLEVBQUUsU0FBUyxFQUN2QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBa0IsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsOEJBQThCLEVBQUUsd0JBQXdCLEVBQUUsK0JBQStCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUU1SSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsaUJBQWlCLEVBQTRDLE1BQU0seUJBQXlCLENBQUM7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OlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG4gIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyTXVsdGlTZWxlY3RCYXNlfSBmcm9tICcuLi9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7RWxkZXJTZWxlY3RDaGlwQXZhdGFyRGlyZWN0aXZlLCBFbGRlclNlbGVjdENoaXBEaXJlY3RpdmUsIEVsZGVyU2VsZWN0Q3VzdG9tSW5wdXREaXJlY3RpdmV9IGZyb20gJy4uLy4uL2VsZGVyLXNlbGVjdC1jaGlwLmRpcmVjdGl2ZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNYXRGb3JtRmllbGRDb250cm9sfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7RUxERVJfU0VMRUNUX0JBU0UsIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUsIFRleHRSZXNvbHZlckZufSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3QtYmFzZSc7XG5pbXBvcnQge0ZvY3VzTW9uaXRvcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtFbGRlckRpYWxvZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2RpYWxvZ3MvZWxkZXItZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RWxkZXJTZWxlY3RDb21wb25lbnR9IGZyb20gJy4uLy4uL3NpbmdsZS9lbGRlci1zZWxlY3QvZWxkZXItc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQge0Nka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtDaGlwQXZhdGFyU3BlYywgQ2hpcENvbG9yU3BlYywgU2VsZWN0Q2hpcFNwZWMsIFRyYWlsaW5nU3BlY30gZnJvbSAnLi9zZWxlY3QtY2hpcC1zcGVjJztcblxuY2xhc3MgQ2hpcE1vZGVsPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBULFxuICAgIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VGV4dDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBjb2xvclNwZWM6IENoaXBDb2xvclNwZWMsXG4gICAgcHVibGljIHJlYWRvbmx5IHJlbW92YWJsZTogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgYXZhdGFyU3BlYzogQ2hpcEF2YXRhclNwZWMsXG4gICAgcHVibGljIHJlYWRvbmx5IHRyYWlsaW5nU3BlYzogVHJhaWxpbmdTcGVjLFxuICApIHtcbiAgfVxufVxuXG5pbnRlcmZhY2UgVGVtcGxhdGVXcmFwcGVyIHtcbiAgY2hpcDogVGVtcGxhdGVSZWY8YW55PjtcbiAgYXZhdGFyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGlucHV0OiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzLmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7cHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IEVsZGVyTXVsdGlTZWxlY3RDaGlwc0NvbXBvbmVudH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRUxERVJfU0VMRUNUX0JBU0UsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFbGRlck11bHRpU2VsZWN0Q2hpcHNDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyTXVsdGlTZWxlY3RDaGlwc0NvbXBvbmVudDxUSWQgPSBhbnksIFRFbnRpdHkgPSBhbnksIFRWYWx1ZSA9IGFueT5cbiAgZXh0ZW5kcyBFbGRlck11bHRpU2VsZWN0QmFzZTxUSWQsIFRFbnRpdHksIFRWYWx1ZT4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RDaGlwcyQ6IE9ic2VydmFibGU8Q2hpcE1vZGVsPFRFbnRpdHk+W10+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZWZhdWx0Q2hpcFNwZWM6IFNlbGVjdENoaXBTcGVjID0ge1xuICAgIGNvbG9yU3BlYzoge1xuICAgICAgdGhlbWVDb2xvcjogdW5kZWZpbmVkLFxuICAgICAgc3RhdGVDb2xvcjogdW5kZWZpbmVkLFxuICAgICAgbGV2ZWxDb2xvcjogdW5kZWZpbmVkXG4gICAgfSxcbiAgICByZW1vdmFibGU6IHVuZGVmaW5lZCxcbiAgICBhdmF0YXJTcGVjOiB7XG4gICAgICBoaWRlOiBmYWxzZSxcbiAgICAgIGxhcmdlOiBmYWxzZVxuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQWxsb3dzIHRvIGN1c3RvbWl6ZSBlYWNoIGNoaXAgaW5kaXZpZHVhbGx5IChDb2xvciwgUmVtb3ZhYmxlLCBBdmF0YXIpLlxuICAgKlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNoaXBTcGVjRm46IChlOiBURW50aXR5KSA9PiBTZWxlY3RDaGlwU3BlYyA9IGUgPT4gdGhpcy5kZWZhdWx0Q2hpcFNwZWM7XG5cbiAgcHVibGljIHNlbGVjdGFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhbGxvd1JlbW92ZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFsbG93U29ydGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFja2VkID0gZmFsc2U7XG5cbiAgQENvbnRlbnRDaGlsZChNYXRGb3JtRmllbGRDb250cm9sKSBfY3VzdG9tQ2hpcElucHV0OiBNYXRGb3JtRmllbGRDb250cm9sPGFueT47XG4gIEBWaWV3Q2hpbGQoRWxkZXJTZWxlY3RDb21wb25lbnQpIF9jaGlwSW5wdXQ6IE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PjtcblxuICByZWFkb25seSB0ZW1wbGF0ZXMkOiBPYnNlcnZhYmxlPFRlbXBsYXRlV3JhcHBlcj47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjaGlwVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGlwQXZhdGFyVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21JbnB1dFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4obnVsbCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGhvc3RSZWY6IEVsZW1lbnRSZWYsXG4gICAgem9uZTogTmdab25lLFxuICAgIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgZGlhbG9nU2VydmljZTogRWxkZXJEaWFsb2dTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgc3VwZXIoem9uZSwgaG9zdFJlZiwgJ211bHRpLXNlbGVjdC1jaGlwcycsIGZvY3VzTW9uaXRvciwgdHJhbnNsYXRlU2VydmljZSwgZGlhbG9nU2VydmljZSwgbmdDb250cm9sKTtcblxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSAnLi4uJztcblxuICAgIHRoaXMuc2VsZWN0Q2hpcHMkID0gY29tYmluZUxhdGVzdChcbiAgICAgIFtcbiAgICAgICAgdGhpcy5lbnRpdGllcyQsXG4gICAgICAgIHRoaXMuZW50aXR5SWRzJCxcbiAgICAgICAgdGhpcy5zdGF0ZSQsXG4gICAgICAgIHRoaXMuZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkXG4gICAgICBdXG4gICAgKS5waXBlKFxuICAgICAgbWFwKChbZW50aXRpZXMsIGVudGl0eUlkcywgc3RhdGUsIGRQUl0pID0+XG4gICAgICAgIHRoaXMuYnVpbGRDaGlwTW9kZWxzT3JGYWxsYmFjayhlbnRpdGllcywgZW50aXR5SWRzLCBzdGF0ZSwgZFBSKVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLnRlbXBsYXRlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hpcFRlbXBsYXRlJCxcbiAgICAgIHRoaXMuY2hpcEF2YXRhclRlbXBsYXRlJCxcbiAgICAgIHRoaXMuY3VzdG9tSW5wdXRUZW1wbGF0ZSRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbY2hpcCwgYXZhdGFyLCBpbnB1dF0pID0+IHtcbiAgICAgICAgcmV0dXJuIDxUZW1wbGF0ZVdyYXBwZXI+e1xuICAgICAgICAgIGNoaXAsXG4gICAgICAgICAgYXZhdGFyLFxuICAgICAgICAgIGlucHV0XG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogSG9zdCBCaW5kaW5ncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZWxkZXItc2VsZWN0LWJhc2UgZWxkZXItbXVsdGktc2VsZWN0JztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubWF0LXNlbGVjdC1kaXNhYmxlZCcpIGdldCBkaXNhYmxlZENsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYXQtc2VsZWN0LWludmFsaWQnKSBnZXQgZXJyb3JTdGF0ZUNsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVycm9yU3RhdGU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1hdC1zZWxlY3QtcmVxdWlyZWQnKSBnZXQgcmVxdWlyZWRDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubWF0LXNlbGVjdC1lbXB0eScpIGdldCBlbXB0eUNsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVtcHR5O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQENvbnRlbnRDaGlsZChFbGRlclNlbGVjdENoaXBEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZX0pXG4gIHB1YmxpYyBzZXQgY2hpcFRlbXBsYXRlUXVlcnkodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGlwVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBUZW1wbGF0ZSQubmV4dCh0ZW1wbGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGlwVGVtcGxhdGUkLmdldFZhbHVlKCk7XG4gIH1cblxuICBAQ29udGVudENoaWxkKEVsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlfSlcbiAgcHVibGljIHNldCBjaGlwQXZhdGFyVGVtcGxhdGVRdWVyeSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcEF2YXRhclRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBBdmF0YXJUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcEF2YXRhclRlbXBsYXRlJC5uZXh0KHRlbXBsYXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hpcEF2YXRhclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDdXN0b21JbnB1dERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlfSlcbiAgcHVibGljIHNldCBjdXN0b21JbnB1dFRlbXBsYXRlUXVlcnkodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmN1c3RvbUlucHV0VGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY3VzdG9tSW5wdXRUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY3VzdG9tSW5wdXRUZW1wbGF0ZSQubmV4dCh0ZW1wbGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1c3RvbUlucHV0VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tSW5wdXRUZW1wbGF0ZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxhbnk+KTogdm9pZCB7XG4gICAgY29uc3QgcmVvcmRlcmVkID0gWy4uLnRoaXMuZW50aXRpZXNdO1xuICAgIG1vdmVJdGVtSW5BcnJheShyZW9yZGVyZWQsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgdGhpcy5lbnRpdGllcyA9IHJlb3JkZXJlZDtcbiAgfVxuXG4gIHB1YmxpYyByZXNvbHZlQ2hpcFZhbHVlKGUxOiBURW50aXR5KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRFbnRpdHlJZChlMSk7XG4gIH1cblxuICBwdWJsaWMgb25DaGlwS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgdG9SZW1vdmU6IFRFbnRpdHkpOiB2b2lkIHtcbiAgICB0aGlzLmxvZy53YXJuKCdvbkNoaXBLZXlEb3duJywgZXZlbnQpO1xuICAgIGlmIChldmVudC5rZXkgPT0gJ0JhY2tzcGFjZScgfHwgZXZlbnQua2V5ID09ICdEZWxldGUnKSB7XG4gICAgICB0aGlzLnJlcXVlc3RSZW1vdmVFbnRpdHkodG9SZW1vdmUsIGV2ZW50LnNoaWZ0S2V5KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25DbGlja1JlbW92ZUNoaXAoXG4gICAgZXZlbnQ6IE1vdXNlRXZlbnQsXG4gICAgdG9SZW1vdmU6IFRFbnRpdHlcbiAgKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnJlcXVlc3RSZW1vdmVFbnRpdHkodG9SZW1vdmUsIGV2ZW50LnNoaWZ0S2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKSB7XG5cbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuX2N1c3RvbUNoaXBJbnB1dCA/PyB0aGlzLl9jaGlwSW5wdXQ7XG5cbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIGlucHV0Lm9uQ29udGFpbmVyQ2xpY2sobmV3IE1vdXNlRXZlbnQoJycpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2cud2FybignQ2FudCBmb2N1cyBzaW5jZSBubyBjaGlwLWlucHV0LWNvbnRyb2wgZm91bmQhJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJsdXIoKSB7XG4gICAgdGhpcy5sb2cud2FybignYmx1cigpIG5vdCB5ZXQgc3VwcG9ydGVkIScpO1xuICAgIC8vIFRPRE8gdGhpcy5pbnB1dENvbnRyb2w/LmJsdXIoKTtcbiAgICAvLyB0aGlzLmN1c3RvbUlucHV0VGVtcGxhdGUuYmx1cigpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGJ1aWxkQ2hpcE1vZGVsc09yRmFsbGJhY2soXG4gICAgZW50aXRpZXM6IFRFbnRpdHlbXSxcbiAgICBlbnRpdHlJZHM6IFRJZFtdLFxuICAgIHN0YXRlOiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLFxuICAgIGRQUjogVGV4dFJlc29sdmVyRm5cbiAgKTogQ2hpcE1vZGVsPFRFbnRpdHk+W10ge1xuXG4gICAgaWYgKHN0YXRlLmVycm9yKSB7XG4gICAgICByZXR1cm4gdGhpcy5idWlsZENoaXBGYWxsYmFja01vZGVscyhlbnRpdHlJZHMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5idWlsZENoaXBNb2RlbHMoZW50aXRpZXMsIGRQUik7XG4gIH1cblxuXG4gIHByaXZhdGUgYnVpbGRDaGlwRmFsbGJhY2tNb2RlbHMoZW50aXR5SWRzOiBUSWRbXSk6IENoaXBNb2RlbDxURW50aXR5PltdIHtcbiAgICByZXR1cm4gZW50aXR5SWRzLm1hcChcbiAgICAgIGlkID0+IHRoaXMuYnVpbGRDaGlwQnlTcGVjKFxuICAgICAgICA8YW55PntpZDogaWR9LFxuICAgICAgICAoKSA9PiBTdHJpbmcoaWQpLFxuICAgICAgICB7XG4gICAgICAgICAgY29sb3JTcGVjOiB7XG4gICAgICAgICAgICB0aGVtZUNvbG9yOiAnd2FybidcbiAgICAgICAgICB9LFxuICAgICAgICAgIGF2YXRhclNwZWM6IHtcbiAgICAgICAgICAgIGhpZGU6IGZhbHNlLFxuICAgICAgICAgICAgbGFyZ2U6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2hpcE1vZGVscyhcbiAgICBlbnRpdGllczogVEVudGl0eVtdLFxuICAgIGRQUjogVGV4dFJlc29sdmVyRm5cbiAgKTogQ2hpcE1vZGVsPFRFbnRpdHk+W10ge1xuICAgIGlmIChlbnRpdGllcykge1xuICAgICAgcmV0dXJuIGVudGl0aWVzLm1hcChcbiAgICAgICAgZSA9PiB0aGlzLmJ1aWxkQ2hpcEJ5U3BlYyhcbiAgICAgICAgICBlLFxuICAgICAgICAgIGRQUixcbiAgICAgICAgICB0aGlzLmNoaXBTcGVjRm4oZSkgPz8gdGhpcy5kZWZhdWx0Q2hpcFNwZWNcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDxDaGlwTW9kZWw8VEVudGl0eT5bXT5bXTtcbiAgICB9XG4gIH1cblxuXG4gIHByaXZhdGUgYnVpbGRDaGlwQnlTcGVjKFxuICAgIGU6IFRFbnRpdHksXG4gICAgZFBSOiBUZXh0UmVzb2x2ZXJGbixcbiAgICBjaGlwU3BlYzogU2VsZWN0Q2hpcFNwZWNcbiAgKTogQ2hpcE1vZGVsPFRFbnRpdHk+IHtcblxuICAgIGxldCByZW1vdmFibGUgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5hbGxvd1JlbW92ZSAmJiAhdGhpcy5pc0xvY2tlZCkge1xuICAgICAgaWYgKGNoaXBTcGVjLnJlbW92YWJsZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgcmVtb3ZhYmxlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBDaGlwTW9kZWw8VEVudGl0eT4oXG4gICAgICBlLFxuICAgICAgZFBSKGUpLFxuICAgICAgY2hpcFNwZWM/LmNvbG9yU3BlYyxcbiAgICAgIHJlbW92YWJsZSxcbiAgICAgIGNoaXBTcGVjLmF2YXRhclNwZWMsXG4gICAgICBjaGlwU3BlYy50cmFpbGluZ1NwZWNcbiAgICApO1xuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCIoc2VsZWN0Q2hpcHMkIHwgYXN5bmMpIGFzIGNoaXBWYWx1ZXNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItZmxleC1jb250cm9sXCJcbiAgICAgW21hdFRvb2x0aXBdPVwiKHN0YXRlJCB8IGFzeW5jKT8uZXJyb3JcIlxuPlxuICA8bWF0LWNoaXAtc2V0ICNjaGlwc1xuICAgICAgICAgICAgICAgIFtjbGFzcy5tYXQtbWRjLWNoaXAtc2V0LXN0YWNrZWRdPVwic3RhY2tlZFwiXG4gICAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RPcmllbnRhdGlvbl09XCJzdGFja2VkID8gJ3ZlcnRpY2FsJyA6ICdob3Jpem9udGFsJ1wiXG4gICAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERpc2FibGVkXT1cIiFhbGxvd1NvcnRpbmdcIlxuICA+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKG1lcmdlZFN0YXRlJCB8IGFzeW5jKSBhcyBzdGF0ZVwiPlxuICAgICAgPGRpdiAqbmdJZj1cImljb25cIlxuICAgICAgICAgICBjbGFzcz1cImVsZGVyLWlucHV0LXByZWZpeC1pY29uLWNvbnRhaW5lciBmbGV4LW5vbmVcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uXCIgZGlzYWJsZWRcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItcHJlZml4LWljb24gZWxkZXItbWRjLWNvbnRyb2wtaWNvbiBlbGRlci1pY29uLXNtYWxsIG5vc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5sb2FkaW5nXT1cInN0YXRlLmxvYWRpbmdcIlxuICAgICAgICA+XG4gICAgICAgICAge3tpY29ufX1cbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlcyQgfCBhc3luYyBhcyB0ZW1wbGF0ZXNcIj5cbiAgICAgIDxtYXQtY2hpcC1yb3cgZWxkZXJDaGlwTGFiZWwgKm5nRm9yPVwibGV0IGNoaXBNb2RlbCBvZiBjaGlwVmFsdWVzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5vc2VsZWN0IGNsaWNrYWJsZS1jaGlwXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwicmVzb2x2ZUNoaXBWYWx1ZShjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiY2hpcE1vZGVsLmNvbG9yU3BlYz8udGhlbWVDb2xvclwiXG4gICAgICAgICAgICAgICAgW2xldmVsQ29sb3JdPVwiY2hpcE1vZGVsLmNvbG9yU3BlYz8ubGV2ZWxDb2xvclwiXG4gICAgICAgICAgICAgICAgW3N0YXRlQ29sb3JdPVwiY2hpcE1vZGVsLmNvbG9yU3BlYz8uc3RhdGVDb2xvclwiXG4gICAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJjaGlwTW9kZWwucmVtb3ZhYmxlXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkNoaXBLZXlEb3duKCRldmVudCwgY2hpcE1vZGVsLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ3VycmVudENsaWNrZWQoY2hpcE1vZGVsLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwiY2hpcE1vZGVsLnZhbHVlXCIgW2Nka0RyYWdEaXNhYmxlZF09XCIhYWxsb3dTb3J0aW5nXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1jaGlwLWF2YXRhclxuICAgICAgICAgICpuZ0lmPVwidGVtcGxhdGVzLmF2YXRhciAmJiAhY2hpcE1vZGVsLmF2YXRhclNwZWM/LmhpZGVcIlxuICAgICAgICAgIFtjbGFzcy5jaGlwLWF2YXRhci14bF09XCJjaGlwTW9kZWwuYXZhdGFyU3BlYz8ubGFyZ2VcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXMuYXZhdGFyOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjaGlwTW9kZWx9XCI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbWF0LWNoaXAtYXZhdGFyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlcy5jaGlwIHx8IHNpbXBsZUNoaXBUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogY2hpcE1vZGVsfVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFRyYWlsaW5nSWNvbiBjbGFzcz1cImVsZGVyLXRyYWlsaW5nLWljb25cIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGlwTW9kZWwudHJhaWxpbmdTcGVjPy5pY29uXCJcbiAgICAgICAgICAgICAgICAgIFtmb250U2V0XT1cImNoaXBNb2RlbC50cmFpbGluZ1NwZWM/Lmljb25Gb250U2V0XCJcbiAgICAgICAgPnt7Y2hpcE1vZGVsLnRyYWlsaW5nU3BlYz8uaWNvbn19PC9tYXQtaWNvbj5cblxuICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZVxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGlwTW9kZWwucmVtb3ZhYmxlXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrUmVtb3ZlQ2hpcCgkZXZlbnQsIGNoaXBNb2RlbC52YWx1ZSlcIj5cbiAgICAgICAgICBjYW5jZWxcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvbWF0LWNoaXAtcm93PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXIgZWxkZXItY2hpcC1pbnB1dFwiPlxuXG4gICAgICAgIDwhLS0gW21hdENoaXBJbnB1dEZvcl09XCJjaGlwc1wiIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXMuaW5wdXQgfHwgc2VsZWN0SW5wdXQ7XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImVsZGVyLWNvbnRyb2wtaWNvbi1idXR0b24gZWxkZXItYnJvd3NlLWljb25cIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0aW9uUG9wdXBcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZWxlY3Rpb25Qb3B1cCgkZXZlbnQpXCIgYXJpYS1sYWJlbD1cIlNlYXJjaFwiXG4gICAgICAgICAgICAgICAgZWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvblxuICAgICAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZWxkZXItbWRjLWNvbnRyb2wtaWNvblwiPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbWF0LWNoaXAtc2V0PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2VsZWN0SW5wdXQ+XG4gIDwhLS0gbWF0LW1kYy1jaGlwLWlucHV0IC0tPlxuICA8ZWxkZXItc2VsZWN0IGF1dG9jb21wbGV0ZSBlbGRlckNsZWFyU2VsZWN0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1jaGlwLWlucHV0LXNlbGVjdCBmbGV4XCJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhQ29udGV4dCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCIhIXJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiISFyZWFkb25seVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAoZW50aXR5VXBkYXRlZCk9XCJhcHBlbmRFbnRpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2Rpc3BsYXlQcm9wZXJ0eVJlc29sdmVyXT1cImRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVUZW1wbGF0ZV09XCJ2YWx1ZVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICBbcXVlcnlGaWx0ZXJdPVwicXVlcnlGaWx0ZXJcIiBbZmlsdGVyc109XCJmaWx0ZXJzXCIgW3NvcnRzXT1cInNvcnRzXCJcbiAgICAgICAgICAgICAgICBbaXNPcHRpb25EaXNhYmxlZEZuXT1cImlzT3B0aW9uRGlzYWJsZWRJbnRlcm5hbEZuXCJcbiAgICAgICAgICAgICAgICBbaXNPcHRpb25IaWRkZW5Gbl09XCJpc09wdGlvbkhpZGRlbkludGVybmFsRm5cIlxuICA+PC9lbGRlci1zZWxlY3Q+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NpbXBsZUNoaXBUZW1wbGF0ZSBsZXQtY2hpcE1vZGVsPlxuICA8c3BhbiBjbGFzcz1cImVsZGVyLWNoaXAtdGV4dFwiPnt7Y2hpcE1vZGVsLmRpc3BsYXlUZXh0IHwgZWxkZXJUcnVuY2F0ZToyMH19PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuIl19
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L211bHRpL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBRVosVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBRUwsUUFBUSxFQUNSLElBQUksRUFDSixXQUFXLEVBQUUsU0FBUyxFQUN2QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBa0IsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsOEJBQThCLEVBQUUsd0JBQXdCLEVBQUUsK0JBQStCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUU1SSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsaUJBQWlCLEVBQTRDLE1BQU0seUJBQXlCLENBQUM7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TXRFLG1CQUFtQjtzQkFEN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxuICBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbGRlck11bHRpU2VsZWN0QmFzZX0gZnJvbSAnLi4vZWxkZXItbXVsdGktc2VsZWN0LWJhc2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSwgRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlLCBFbGRlclNlbGVjdEN1c3RvbUlucHV0RGlyZWN0aXZlfSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3QtY2hpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQge0VMREVSX1NFTEVDVF9CQVNFLCBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLCBUZXh0UmVzb2x2ZXJGbn0gZnJvbSAnLi4vLi4vZWxkZXItc2VsZWN0LWJhc2UnO1xuaW1wb3J0IHtGb2N1c01vbml0b3J9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7RWxkZXJEaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9kaWFsb2dzL2VsZGVyLWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0VsZGVyU2VsZWN0Q29tcG9uZW50fSBmcm9tICcuLi8uLi9zaW5nbGUvZWxkZXItc2VsZWN0L2VsZGVyLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5fSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7Q2hpcEF2YXRhclNwZWMsIENoaXBDb2xvclNwZWMsIFNlbGVjdENoaXBTcGVjLCBUcmFpbGluZ1NwZWN9IGZyb20gJy4vc2VsZWN0LWNoaXAtc3BlYyc7XG5cbmNsYXNzIENoaXBNb2RlbDxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZTogVCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVRleHQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sb3JTcGVjOiBDaGlwQ29sb3JTcGVjLFxuICAgIHB1YmxpYyByZWFkb25seSByZW1vdmFibGU6IGJvb2xlYW4sXG4gICAgcHVibGljIHJlYWRvbmx5IGF2YXRhclNwZWM6IENoaXBBdmF0YXJTcGVjLFxuICAgIHB1YmxpYyByZWFkb25seSB0cmFpbGluZ1NwZWM6IFRyYWlsaW5nU3BlYyxcbiAgKSB7XG4gIH1cbn1cblxuaW50ZXJmYWNlIFRlbXBsYXRlV3JhcHBlciB7XG4gIGNoaXA6IFRlbXBsYXRlUmVmPGFueT47XG4gIGF2YXRhcjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBpbnB1dDogVGVtcGxhdGVSZWY8YW55Pjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuc2NzcyddLFxuICAvLyBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge3Byb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBFbGRlck11bHRpU2VsZWN0Q2hpcHNDb21wb25lbnR9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVMREVSX1NFTEVDVF9CQVNFLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50KVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlck11bHRpU2VsZWN0Q2hpcHNDb21wb25lbnQ8VElkID0gYW55LCBURW50aXR5ID0gYW55LCBUVmFsdWUgPSBhbnk+XG4gIGV4dGVuZHMgRWxkZXJNdWx0aVNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWU+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0Q2hpcHMkOiBPYnNlcnZhYmxlPENoaXBNb2RlbDxURW50aXR5PltdPjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGVmYXVsdENoaXBTcGVjOiBTZWxlY3RDaGlwU3BlYyA9IHtcbiAgICBjb2xvclNwZWM6IHtcbiAgICAgIHRoZW1lQ29sb3I6IHVuZGVmaW5lZCxcbiAgICAgIHN0YXRlQ29sb3I6IHVuZGVmaW5lZCxcbiAgICAgIGxldmVsQ29sb3I6IHVuZGVmaW5lZFxuICAgIH0sXG4gICAgcmVtb3ZhYmxlOiB1bmRlZmluZWQsXG4gICAgYXZhdGFyU3BlYzoge1xuICAgICAgaGlkZTogZmFsc2UsXG4gICAgICBsYXJnZTogZmFsc2VcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0byBjdXN0b21pemUgZWFjaCBjaGlwIGluZGl2aWR1YWxseSAoQ29sb3IsIFJlbW92YWJsZSwgQXZhdGFyKS5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjaGlwU3BlY0ZuOiAoZTogVEVudGl0eSkgPT4gU2VsZWN0Q2hpcFNwZWMgPSBlID0+IHRoaXMuZGVmYXVsdENoaXBTcGVjO1xuXG4gIHB1YmxpYyBzZWxlY3RhYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWxsb3dSZW1vdmUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhbGxvd1NvcnRpbmcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc3RhY2tlZCA9IGZhbHNlO1xuXG4gIEBDb250ZW50Q2hpbGQoTWF0Rm9ybUZpZWxkQ29udHJvbCkgX2N1c3RvbUNoaXBJbnB1dDogTWF0Rm9ybUZpZWxkQ29udHJvbDxhbnk+O1xuICBAVmlld0NoaWxkKEVsZGVyU2VsZWN0Q29tcG9uZW50KSBfY2hpcElucHV0OiBNYXRGb3JtRmllbGRDb250cm9sPGFueT47XG5cbiAgcmVhZG9ubHkgdGVtcGxhdGVzJDogT2JzZXJ2YWJsZTxUZW1wbGF0ZVdyYXBwZXI+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpcFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpcEF2YXRhclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VzdG9tSW5wdXRUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPGFueT4+KG51bGwpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBob3N0UmVmOiBFbGVtZW50UmVmLFxuICAgIHpvbmU6IE5nWm9uZSxcbiAgICBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIGRpYWxvZ1NlcnZpY2U6IEVsZGVyRGlhbG9nU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sXG4gICkge1xuICAgIHN1cGVyKHpvbmUsIGhvc3RSZWYsICdtdWx0aS1zZWxlY3QtY2hpcHMnLCBmb2N1c01vbml0b3IsIHRyYW5zbGF0ZVNlcnZpY2UsIGRpYWxvZ1NlcnZpY2UsIG5nQ29udHJvbCk7XG5cbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gJy4uLic7XG5cbiAgICB0aGlzLnNlbGVjdENoaXBzJCA9IGNvbWJpbmVMYXRlc3QoXG4gICAgICBbXG4gICAgICAgIHRoaXMuZW50aXRpZXMkLFxuICAgICAgICB0aGlzLmVudGl0eUlkcyQsXG4gICAgICAgIHRoaXMuc3RhdGUkLFxuICAgICAgICB0aGlzLmRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCxcbiAgICAgICAgdGhpcy5yZWFkb25seSQsXG4gICAgICAgIHRoaXMuZGlzYWJsZWQkXG4gICAgICBdXG4gICAgKS5waXBlKFxuICAgICAgbWFwKChbZW50aXRpZXMsIGVudGl0eUlkcywgc3RhdGUsIGRQUl0pID0+XG4gICAgICAgIHRoaXMuYnVpbGRDaGlwTW9kZWxzT3JGYWxsYmFjayhlbnRpdGllcywgZW50aXR5SWRzLCBzdGF0ZSwgZFBSKVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLnRlbXBsYXRlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hpcFRlbXBsYXRlJCxcbiAgICAgIHRoaXMuY2hpcEF2YXRhclRlbXBsYXRlJCxcbiAgICAgIHRoaXMuY3VzdG9tSW5wdXRUZW1wbGF0ZSRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbY2hpcCwgYXZhdGFyLCBpbnB1dF0pID0+IHtcbiAgICAgICAgcmV0dXJuIDxUZW1wbGF0ZVdyYXBwZXI+e1xuICAgICAgICAgIGNoaXAsXG4gICAgICAgICAgYXZhdGFyLFxuICAgICAgICAgIGlucHV0XG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogSG9zdCBCaW5kaW5ncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZWxkZXItc2VsZWN0LWJhc2UgZWxkZXItbXVsdGktc2VsZWN0JztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubWF0LXNlbGVjdC1kaXNhYmxlZCcpIGdldCBkaXNhYmxlZENsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYXQtc2VsZWN0LWludmFsaWQnKSBnZXQgZXJyb3JTdGF0ZUNsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVycm9yU3RhdGU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1hdC1zZWxlY3QtcmVxdWlyZWQnKSBnZXQgcmVxdWlyZWRDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubWF0LXNlbGVjdC1lbXB0eScpIGdldCBlbXB0eUNsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVtcHR5O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQENvbnRlbnRDaGlsZChFbGRlclNlbGVjdENoaXBEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZX0pXG4gIHB1YmxpYyBzZXQgY2hpcFRlbXBsYXRlUXVlcnkodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGlwVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBUZW1wbGF0ZSQubmV4dCh0ZW1wbGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGlwVGVtcGxhdGUkLmdldFZhbHVlKCk7XG4gIH1cblxuICBAQ29udGVudENoaWxkKEVsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlfSlcbiAgcHVibGljIHNldCBjaGlwQXZhdGFyVGVtcGxhdGVRdWVyeSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcEF2YXRhclRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBBdmF0YXJUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcEF2YXRhclRlbXBsYXRlJC5uZXh0KHRlbXBsYXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hpcEF2YXRhclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDdXN0b21JbnB1dERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlfSlcbiAgcHVibGljIHNldCBjdXN0b21JbnB1dFRlbXBsYXRlUXVlcnkodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmN1c3RvbUlucHV0VGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY3VzdG9tSW5wdXRUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY3VzdG9tSW5wdXRUZW1wbGF0ZSQubmV4dCh0ZW1wbGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1c3RvbUlucHV0VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tSW5wdXRUZW1wbGF0ZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxhbnk+KTogdm9pZCB7XG4gICAgY29uc3QgcmVvcmRlcmVkID0gWy4uLnRoaXMuZW50aXRpZXNdO1xuICAgIG1vdmVJdGVtSW5BcnJheShyZW9yZGVyZWQsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgdGhpcy5lbnRpdGllcyA9IHJlb3JkZXJlZDtcbiAgfVxuXG4gIHB1YmxpYyByZXNvbHZlQ2hpcFZhbHVlKGUxOiBURW50aXR5KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRFbnRpdHlJZChlMSk7XG4gIH1cblxuICBwdWJsaWMgb25DaGlwS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgdG9SZW1vdmU6IFRFbnRpdHkpOiB2b2lkIHtcbiAgICB0aGlzLmxvZy53YXJuKCdvbkNoaXBLZXlEb3duJywgZXZlbnQpO1xuICAgIGlmIChldmVudC5rZXkgPT0gJ0JhY2tzcGFjZScgfHwgZXZlbnQua2V5ID09ICdEZWxldGUnKSB7XG4gICAgICB0aGlzLnJlcXVlc3RSZW1vdmVFbnRpdHkodG9SZW1vdmUsIGV2ZW50LnNoaWZ0S2V5KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25DbGlja1JlbW92ZUNoaXAoXG4gICAgZXZlbnQ6IE1vdXNlRXZlbnQsXG4gICAgdG9SZW1vdmU6IFRFbnRpdHlcbiAgKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnJlcXVlc3RSZW1vdmVFbnRpdHkodG9SZW1vdmUsIGV2ZW50LnNoaWZ0S2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKSB7XG5cbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuX2N1c3RvbUNoaXBJbnB1dCA/PyB0aGlzLl9jaGlwSW5wdXQ7XG5cbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIGlucHV0Lm9uQ29udGFpbmVyQ2xpY2sobmV3IE1vdXNlRXZlbnQoJycpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2cud2FybignQ2FudCBmb2N1cyBzaW5jZSBubyBjaGlwLWlucHV0LWNvbnRyb2wgZm91bmQhJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJsdXIoKSB7XG4gICAgdGhpcy5sb2cud2FybignYmx1cigpIG5vdCB5ZXQgc3VwcG9ydGVkIScpO1xuICAgIC8vIFRPRE8gdGhpcy5pbnB1dENvbnRyb2w/LmJsdXIoKTtcbiAgICAvLyB0aGlzLmN1c3RvbUlucHV0VGVtcGxhdGUuYmx1cigpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGJ1aWxkQ2hpcE1vZGVsc09yRmFsbGJhY2soXG4gICAgZW50aXRpZXM6IFRFbnRpdHlbXSxcbiAgICBlbnRpdHlJZHM6IFRJZFtdLFxuICAgIHN0YXRlOiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLFxuICAgIGRQUjogVGV4dFJlc29sdmVyRm5cbiAgKTogQ2hpcE1vZGVsPFRFbnRpdHk+W10ge1xuXG4gICAgaWYgKHN0YXRlLmVycm9yKSB7XG4gICAgICByZXR1cm4gdGhpcy5idWlsZENoaXBGYWxsYmFja01vZGVscyhlbnRpdHlJZHMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5idWlsZENoaXBNb2RlbHMoZW50aXRpZXMsIGRQUik7XG4gIH1cblxuXG4gIHByaXZhdGUgYnVpbGRDaGlwRmFsbGJhY2tNb2RlbHMoZW50aXR5SWRzOiBUSWRbXSk6IENoaXBNb2RlbDxURW50aXR5PltdIHtcbiAgICByZXR1cm4gZW50aXR5SWRzLm1hcChcbiAgICAgIGlkID0+IHRoaXMuYnVpbGRDaGlwQnlTcGVjKFxuICAgICAgICA8YW55PntpZDogaWR9LFxuICAgICAgICAoKSA9PiBTdHJpbmcoaWQpLFxuICAgICAgICB7XG4gICAgICAgICAgY29sb3JTcGVjOiB7XG4gICAgICAgICAgICB0aGVtZUNvbG9yOiAnd2FybidcbiAgICAgICAgICB9LFxuICAgICAgICAgIGF2YXRhclNwZWM6IHtcbiAgICAgICAgICAgIGhpZGU6IGZhbHNlLFxuICAgICAgICAgICAgbGFyZ2U6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2hpcE1vZGVscyhcbiAgICBlbnRpdGllczogVEVudGl0eVtdLFxuICAgIGRQUjogVGV4dFJlc29sdmVyRm5cbiAgKTogQ2hpcE1vZGVsPFRFbnRpdHk+W10ge1xuICAgIGlmIChlbnRpdGllcykge1xuICAgICAgcmV0dXJuIGVudGl0aWVzLm1hcChcbiAgICAgICAgZSA9PiB0aGlzLmJ1aWxkQ2hpcEJ5U3BlYyhcbiAgICAgICAgICBlLFxuICAgICAgICAgIGRQUixcbiAgICAgICAgICB0aGlzLmNoaXBTcGVjRm4oZSkgPz8gdGhpcy5kZWZhdWx0Q2hpcFNwZWNcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDxDaGlwTW9kZWw8VEVudGl0eT5bXT5bXTtcbiAgICB9XG4gIH1cblxuXG4gIHByaXZhdGUgYnVpbGRDaGlwQnlTcGVjKFxuICAgIGU6IFRFbnRpdHksXG4gICAgZFBSOiBUZXh0UmVzb2x2ZXJGbixcbiAgICBjaGlwU3BlYzogU2VsZWN0Q2hpcFNwZWNcbiAgKTogQ2hpcE1vZGVsPFRFbnRpdHk+IHtcblxuICAgIGxldCByZW1vdmFibGUgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5hbGxvd1JlbW92ZSAmJiAhdGhpcy5pc0xvY2tlZCkge1xuICAgICAgaWYgKGNoaXBTcGVjLnJlbW92YWJsZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgcmVtb3ZhYmxlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBDaGlwTW9kZWw8VEVudGl0eT4oXG4gICAgICBlLFxuICAgICAgZFBSKGUpLFxuICAgICAgY2hpcFNwZWM/LmNvbG9yU3BlYyxcbiAgICAgIHJlbW92YWJsZSxcbiAgICAgIGNoaXBTcGVjLmF2YXRhclNwZWMsXG4gICAgICBjaGlwU3BlYy50cmFpbGluZ1NwZWNcbiAgICApO1xuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCIoc2VsZWN0Q2hpcHMkIHwgYXN5bmMpIGFzIGNoaXBWYWx1ZXNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItZmxleC1jb250cm9sXCJcbiAgICAgW21hdFRvb2x0aXBdPVwiKHN0YXRlJCB8IGFzeW5jKT8uZXJyb3JcIlxuPlxuICA8bWF0LWNoaXAtc2V0ICNjaGlwc1xuICAgICAgICAgICAgICAgIFtjbGFzcy5tYXQtbWRjLWNoaXAtc2V0LXN0YWNrZWRdPVwic3RhY2tlZFwiXG4gICAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RPcmllbnRhdGlvbl09XCJzdGFja2VkID8gJ3ZlcnRpY2FsJyA6ICdob3Jpem9udGFsJ1wiXG4gICAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERpc2FibGVkXT1cIiFhbGxvd1NvcnRpbmdcIlxuICA+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKG1lcmdlZFN0YXRlJCB8IGFzeW5jKSBhcyBzdGF0ZVwiPlxuICAgICAgPGRpdiAqbmdJZj1cImljb25cIlxuICAgICAgICAgICBjbGFzcz1cImVsZGVyLWlucHV0LXByZWZpeC1pY29uLWNvbnRhaW5lciBmbGV4LW5vbmVcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uXCIgZGlzYWJsZWRcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItcHJlZml4LWljb24gZWxkZXItbWRjLWNvbnRyb2wtaWNvbiBlbGRlci1pY29uLXNtYWxsIG5vc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5sb2FkaW5nXT1cInN0YXRlLmxvYWRpbmdcIlxuICAgICAgICA+XG4gICAgICAgICAge3tpY29ufX1cbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlcyQgfCBhc3luYyBhcyB0ZW1wbGF0ZXNcIj5cbiAgICAgIDxtYXQtY2hpcC1yb3cgZWxkZXJDaGlwTGFiZWwgKm5nRm9yPVwibGV0IGNoaXBNb2RlbCBvZiBjaGlwVmFsdWVzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5vc2VsZWN0IGNsaWNrYWJsZS1jaGlwXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwicmVzb2x2ZUNoaXBWYWx1ZShjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiY2hpcE1vZGVsLmNvbG9yU3BlYz8udGhlbWVDb2xvclwiXG4gICAgICAgICAgICAgICAgW2xldmVsQ29sb3JdPVwiY2hpcE1vZGVsLmNvbG9yU3BlYz8ubGV2ZWxDb2xvclwiXG4gICAgICAgICAgICAgICAgW3N0YXRlQ29sb3JdPVwiY2hpcE1vZGVsLmNvbG9yU3BlYz8uc3RhdGVDb2xvclwiXG4gICAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJjaGlwTW9kZWwucmVtb3ZhYmxlXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkNoaXBLZXlEb3duKCRldmVudCwgY2hpcE1vZGVsLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ3VycmVudENsaWNrZWQoY2hpcE1vZGVsLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwiY2hpcE1vZGVsLnZhbHVlXCIgW2Nka0RyYWdEaXNhYmxlZF09XCIhYWxsb3dTb3J0aW5nXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1jaGlwLWF2YXRhclxuICAgICAgICAgICpuZ0lmPVwidGVtcGxhdGVzLmF2YXRhciAmJiAhY2hpcE1vZGVsLmF2YXRhclNwZWM/LmhpZGVcIlxuICAgICAgICAgIFtjbGFzcy5jaGlwLWF2YXRhci14bF09XCJjaGlwTW9kZWwuYXZhdGFyU3BlYz8ubGFyZ2VcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXMuYXZhdGFyOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjaGlwTW9kZWx9XCI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbWF0LWNoaXAtYXZhdGFyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlcy5jaGlwIHx8IHNpbXBsZUNoaXBUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogY2hpcE1vZGVsfVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFRyYWlsaW5nSWNvbiBjbGFzcz1cImVsZGVyLXRyYWlsaW5nLWljb25cIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGlwTW9kZWwudHJhaWxpbmdTcGVjPy5pY29uXCJcbiAgICAgICAgICAgICAgICAgIFtmb250U2V0XT1cImNoaXBNb2RlbC50cmFpbGluZ1NwZWM/Lmljb25Gb250U2V0XCJcbiAgICAgICAgPnt7Y2hpcE1vZGVsLnRyYWlsaW5nU3BlYz8uaWNvbn19PC9tYXQtaWNvbj5cblxuICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZVxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGlwTW9kZWwucmVtb3ZhYmxlXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrUmVtb3ZlQ2hpcCgkZXZlbnQsIGNoaXBNb2RlbC52YWx1ZSlcIj5cbiAgICAgICAgICBjYW5jZWxcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvbWF0LWNoaXAtcm93PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXIgZWxkZXItY2hpcC1pbnB1dFwiPlxuXG4gICAgICAgIDwhLS0gW21hdENoaXBJbnB1dEZvcl09XCJjaGlwc1wiIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXMuaW5wdXQgfHwgc2VsZWN0SW5wdXQ7XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImVsZGVyLWNvbnRyb2wtaWNvbi1idXR0b24gZWxkZXItYnJvd3NlLWljb25cIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0aW9uUG9wdXBcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZWxlY3Rpb25Qb3B1cCgkZXZlbnQpXCIgYXJpYS1sYWJlbD1cIlNlYXJjaFwiXG4gICAgICAgICAgICAgICAgZWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvblxuICAgICAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZWxkZXItbWRjLWNvbnRyb2wtaWNvblwiPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbWF0LWNoaXAtc2V0PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2VsZWN0SW5wdXQ+XG4gIDwhLS0gbWF0LW1kYy1jaGlwLWlucHV0IC0tPlxuICA8ZWxkZXItc2VsZWN0IGF1dG9jb21wbGV0ZSBlbGRlckNsZWFyU2VsZWN0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1jaGlwLWlucHV0LXNlbGVjdCBmbGV4XCJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhQ29udGV4dCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCIhIXJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiISFyZWFkb25seVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAoZW50aXR5VXBkYXRlZCk9XCJhcHBlbmRFbnRpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2Rpc3BsYXlQcm9wZXJ0eVJlc29sdmVyXT1cImRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVUZW1wbGF0ZV09XCJ2YWx1ZVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICBbcXVlcnlGaWx0ZXJdPVwicXVlcnlGaWx0ZXJcIiBbZmlsdGVyc109XCJmaWx0ZXJzXCIgW3NvcnRzXT1cInNvcnRzXCJcbiAgICAgICAgICAgICAgICBbaXNPcHRpb25EaXNhYmxlZEZuXT1cImlzT3B0aW9uRGlzYWJsZWRJbnRlcm5hbEZuXCJcbiAgICAgICAgICAgICAgICBbaXNPcHRpb25IaWRkZW5Gbl09XCJpc09wdGlvbkhpZGRlbkludGVybmFsRm5cIlxuICA+PC9lbGRlci1zZWxlY3Q+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NpbXBsZUNoaXBUZW1wbGF0ZSBsZXQtY2hpcE1vZGVsPlxuICA8c3BhbiBjbGFzcz1cImVsZGVyLWNoaXAtdGV4dFwiPnt7Y2hpcE1vZGVsLmRpc3BsYXlUZXh0IHwgZWxkZXJUcnVuY2F0ZToyMH19PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuIl19
@@ -6348,9 +6348,9 @@ class ElderFormFieldControlBase extends ValueAccessorBase {
6348
6348
  constructor(hostRef, controlType, focusMonitor, translateService, ngControl) {
6349
6349
  super();
6350
6350
  this.hostRef = hostRef;
6351
- this._disabled = false;
6352
- this._required = false;
6353
- this._readonly = false;
6351
+ this.disabled$ = new BehaviorSubject(false);
6352
+ this.required$ = new BehaviorSubject(false);
6353
+ this.readonly$ = new BehaviorSubject(false);
6354
6354
  this._focused = false;
6355
6355
  this.stateChangePusher$ = new Subject();
6356
6356
  this.destroy$ = new Subject();
@@ -6404,28 +6404,37 @@ class ElderFormFieldControlBase extends ValueAccessorBase {
6404
6404
  return this._placeholder;
6405
6405
  }
6406
6406
  set required(value) {
6407
- this._required = coerceBooleanProperty(value);
6408
- this.emitStateChange();
6407
+ const newValue = coerceBooleanProperty(value);
6408
+ if (this.required != newValue) {
6409
+ this.required$.next(newValue);
6410
+ this.emitStateChange();
6411
+ }
6409
6412
  }
6410
6413
  get required() {
6411
- return this._required;
6414
+ return this.required$.getValue();
6412
6415
  }
6413
6416
  set disabled(value) {
6414
- this._disabled = coerceBooleanProperty(value);
6415
- this.emitStateChange();
6417
+ const newValue = coerceBooleanProperty(value);
6418
+ if (this.disabled != newValue) {
6419
+ this.disabled$.next(newValue);
6420
+ this.emitStateChange();
6421
+ }
6416
6422
  }
6417
6423
  get disabled() {
6418
- return this._disabled;
6424
+ return this.disabled$.getValue();
6419
6425
  }
6420
6426
  set readonly(value) {
6421
- this._readonly = coerceBooleanProperty(value);
6422
- this.emitStateChange();
6427
+ const newValue = coerceBooleanProperty(value);
6428
+ if (this.readonly != newValue) {
6429
+ this.readonly$.next(newValue);
6430
+ this.emitStateChange();
6431
+ }
6423
6432
  }
6424
6433
  get readonly() {
6425
- return this._readonly;
6434
+ return this.readonly$.getValue();
6426
6435
  }
6427
6436
  get isLocked() {
6428
- return this._disabled || this._readonly;
6437
+ return this.disabled || this.readonly;
6429
6438
  }
6430
6439
  get stateChanges() {
6431
6440
  return this.value$.pipe(map(x => x), mergeWith(this.stateChangePusher$));
@@ -6466,7 +6475,8 @@ class ElderFormFieldControlBase extends ValueAccessorBase {
6466
6475
  emitStateChange() {
6467
6476
  this.stateChangePusher$.next();
6468
6477
  }
6469
- writeToControl(value) { }
6478
+ writeToControl(value) {
6479
+ }
6470
6480
  onFocusInternal() {
6471
6481
  if (!this.disabled) {
6472
6482
  this._focused = true;
@@ -21647,7 +21657,9 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
21647
21657
  this.entities$,
21648
21658
  this.entityIds$,
21649
21659
  this.state$,
21650
- this.displayPropertyResolver$
21660
+ this.displayPropertyResolver$,
21661
+ this.readonly$,
21662
+ this.disabled$
21651
21663
  ]).pipe(map(([entities, entityIds, state, dPR]) => this.buildChipModelsOrFallback(entities, entityIds, state, dPR)));
21652
21664
  this.templates$ = combineLatest([
21653
21665
  this.chipTemplate$,
@@ -25876,6 +25888,7 @@ class ElderSearchContextDirective {
25876
25888
  this.parentContext = parentContext;
25877
25889
  this.childSearchInputs$ = new BehaviorSubject$1([]);
25878
25890
  this.forcedFilters$ = new BehaviorSubject$1([]);
25891
+ this.startFilters$ = new BehaviorSubject$1([]);
25879
25892
  this.log = LoggerFactory.getLogger(this.constructor.name);
25880
25893
  this._unsubscribe$ = new Subject$1();
25881
25894
  this._searchStates = new BehaviorSubject$1([]);
@@ -25925,6 +25938,9 @@ class ElderSearchContextDirective {
25925
25938
  get forcedFilters() {
25926
25939
  return this.forcedFilters$.getValue();
25927
25940
  }
25941
+ set startFilters(filters) {
25942
+ this.startFilters$.next(filters);
25943
+ }
25928
25944
  get attributes() {
25929
25945
  return this.searchInputs.changes.pipe(map(inputs => inputs), map(inputs => inputs.toArray()));
25930
25946
  }
@@ -26007,9 +26023,10 @@ class ElderSearchContextDirective {
26007
26023
  return [...inputs, ...childInputs];
26008
26024
  }
26009
26025
  subscribeInitialFilters() {
26010
- this.initialFilters$.pipe(takeUntil(this._unsubscribe$), combineLatestWith(this.childSearchInputs$), skip(1)).subscribe(([initialFilters, childSearchInputs]) => {
26026
+ this.initialFilters$.pipe(takeUntil(this._unsubscribe$), combineLatestWith(this.childSearchInputs$, this.startFilters$)).subscribe(([initialFilters, childSearchInputs, startFilters]) => {
26011
26027
  var searchInputs = this.zipInputsWithChildInputs(this.searchInputs.toArray(), childSearchInputs);
26012
- searchInputs.forEach(input => input.setInitialFilter(initialFilters));
26028
+ var filters = [...initialFilters, ...startFilters];
26029
+ searchInputs.forEach(input => input.setInitialFilter(filters));
26013
26030
  });
26014
26031
  }
26015
26032
  convertToFilters(states) {
@@ -26025,7 +26042,7 @@ class ElderSearchContextDirective {
26025
26042
  }
26026
26043
  }
26027
26044
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchContextDirective, deps: [{ token: ElderSearchContextDirective, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
26028
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: { filterContext: ["elderSearchContext", "filterContext"], forcedFilters: "forcedFilters" }, queries: [{ propertyName: "searchInputs", predicate: ElderSearchInputDirective, descendants: true }], exportAs: ["elderSearchContext"], ngImport: i0 }); }
26045
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: { filterContext: ["elderSearchContext", "filterContext"], forcedFilters: "forcedFilters", startFilters: "startFilters" }, queries: [{ propertyName: "searchInputs", predicate: ElderSearchInputDirective, descendants: true }], exportAs: ["elderSearchContext"], ngImport: i0 }); }
26029
26046
  }
26030
26047
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchContextDirective, decorators: [{
26031
26048
  type: Directive,
@@ -26045,6 +26062,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
26045
26062
  args: ["elderSearchContext"]
26046
26063
  }], forcedFilters: [{
26047
26064
  type: Input
26065
+ }], startFilters: [{
26066
+ type: Input
26048
26067
  }] } });
26049
26068
 
26050
26069
  class ElderSearchPanelComponent {
@@ -26440,7 +26459,7 @@ class ElderSearchBoxComponent {
26440
26459
  this.searchModel.reset();
26441
26460
  }
26442
26461
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchBoxComponent, deps: [{ token: ElderSearchContextDirective }], target: i0.ɵɵFactoryTarget.Component }); }
26443
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchBoxComponent, selector: "elder-search-box", inputs: { autoPanel: "autoPanel", name: "name", queryKey: "queryKey", placeholder: "placeholder", label: "label", hint: "hint", autocomplete: "autocomplete", appearance: "appearance", dense: "dense" }, host: { classAttribute: "elder-form-field-host" }, queries: [{ propertyName: "advancedSearch", first: true, predicate: ElderSearchPanelComponent, descendants: true }], viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true }], exportAs: ["elderSearchBox"], ngImport: i0, template: "<div class=\"layout-row place-stretch-center full flex\" style=\"overflow: hidden\" elderSearchContext>\n <mat-form-field\n *ngIf=\"overlayState$ | async as overlayState\"\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto\" subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\">\n\n <button matPrefix mat-icon-button type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input matInput type=\"text\" [name]=\"name\" [placeholder]=\"placeholder\" #search cdkFocusInitial\n ngModel\n elderSearchInput [elderSearchInputKey]=\"queryKey\" #searchInput=\"elderSearchInput\"\n [autocomplete]=\"(autoPanel && overlayState.hasOverlay) ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"autoPanel && overlayState.hasOverlay && (searchInput?.state$ | async)?.pristine\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n\n <div class=\"layout-row\" matSuffix *ngIf=\"searchModel.userDefinedAttributes$ | async as userDefinedFilters\">\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"userDefinedFilters.length > 0\"\n (click)=\"clearSearch($event)\"\n name=\"clear\" aria-label=\"Clear\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"overlayState.hasOverlay\" name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\">\n <mat-icon\n [matBadge]=\"userDefinedFilters.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"userDefinedFilters.length == 0\"\n matBadgeColor=\"accent\"\n [color]=\"userDefinedFilters.length > 0 ? 'accent' : undefined\"\n >\n filter_list\n </mat-icon>\n </button>\n </div>\n </mat-form-field>\n</div>\n\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n\n <!-- Project the users search inputs here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-raised-button type=\"button\" name=\"clear\"\n (click)=\"clearSearch($event)\">{{'context.reset' | translate}}\n </button>\n\n <button mat-raised-button type=\"button\" name=\"ok\" color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\">Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-box-field{margin-top:4px;margin-bottom:4px}.elder-search-panel-container{min-width:250px}\n"], dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$3.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "directive", type: ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "directive", type: ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }, { kind: "component", type: ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "directive", type: ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "directive", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: ["elderSearchContext", "forcedFilters"], exportAs: ["elderSearchContext"] }, { kind: "directive", type: ElderSearchInputDirective, selector: "[elderSearchInput]", inputs: ["elderSearchInputKey", "elderSearchInputTransform", "elderSearchInput", "dataSource", "elderSearchInputFallback", "valueAsId"], exportAs: ["elderSearchInput"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26462
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchBoxComponent, selector: "elder-search-box", inputs: { autoPanel: "autoPanel", name: "name", queryKey: "queryKey", placeholder: "placeholder", label: "label", hint: "hint", autocomplete: "autocomplete", appearance: "appearance", dense: "dense" }, host: { classAttribute: "elder-form-field-host" }, queries: [{ propertyName: "advancedSearch", first: true, predicate: ElderSearchPanelComponent, descendants: true }], viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true }], exportAs: ["elderSearchBox"], ngImport: i0, template: "<div class=\"layout-row place-stretch-center full flex\" style=\"overflow: hidden\" elderSearchContext>\n <mat-form-field\n *ngIf=\"overlayState$ | async as overlayState\"\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto\" subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\">\n\n <button matPrefix mat-icon-button type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input matInput type=\"text\" [name]=\"name\" [placeholder]=\"placeholder\" #search cdkFocusInitial\n ngModel\n elderSearchInput [elderSearchInputKey]=\"queryKey\" #searchInput=\"elderSearchInput\"\n [autocomplete]=\"(autoPanel && overlayState.hasOverlay) ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"autoPanel && overlayState.hasOverlay && (searchInput?.state$ | async)?.pristine\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n\n <div class=\"layout-row\" matSuffix *ngIf=\"searchModel.userDefinedAttributes$ | async as userDefinedFilters\">\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"userDefinedFilters.length > 0\"\n (click)=\"clearSearch($event)\"\n name=\"clear\" aria-label=\"Clear\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"overlayState.hasOverlay\" name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\">\n <mat-icon\n [matBadge]=\"userDefinedFilters.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"userDefinedFilters.length == 0\"\n matBadgeColor=\"accent\"\n [color]=\"userDefinedFilters.length > 0 ? 'accent' : undefined\"\n >\n filter_list\n </mat-icon>\n </button>\n </div>\n </mat-form-field>\n</div>\n\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n\n <!-- Project the users search inputs here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-raised-button type=\"button\" name=\"clear\"\n (click)=\"clearSearch($event)\">{{'context.reset' | translate}}\n </button>\n\n <button mat-raised-button type=\"button\" name=\"ok\" color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\">Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-box-field{margin-top:4px;margin-bottom:4px}.elder-search-panel-container{min-width:250px}\n"], dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$3.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "directive", type: ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "directive", type: ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }, { kind: "component", type: ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "directive", type: ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "directive", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: ["elderSearchContext", "forcedFilters", "startFilters"], exportAs: ["elderSearchContext"] }, { kind: "directive", type: ElderSearchInputDirective, selector: "[elderSearchInput]", inputs: ["elderSearchInputKey", "elderSearchInputTransform", "elderSearchInput", "dataSource", "elderSearchInputFallback", "valueAsId"], exportAs: ["elderSearchInput"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26444
26463
  }
26445
26464
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchBoxComponent, decorators: [{
26446
26465
  type: Component,
@@ -26670,8 +26689,7 @@ class ElderSearchContextUrlBindingDirective {
26670
26689
  this.urlBindingService.initialSearchMap$.pipe(first(), takeUntil(this._unsubscribe$), filter(searchMap => searchMap.has(this._urlBinding)), map(searchMap => searchMap.get(this._urlBinding)), map(filterMap => Array.from(filterMap.filters.values()))).subscribe(filters => {
26671
26690
  this.searchContext.registerInitialFilters(filters);
26672
26691
  });
26673
- this.searchContext.filters$.pipe(takeUntil(this._unsubscribe$), skip(2) //Skip empty and skip initial filter
26674
- ).subscribe(filters => this.urlBindingService.updateFiltersForContext(this._urlBinding, filters));
26692
+ this.searchContext.filters$.pipe(takeUntil(this._unsubscribe$)).subscribe(filters => this.urlBindingService.updateFiltersForContext(this._urlBinding, filters));
26675
26693
  }
26676
26694
  ngOnDestroy() {
26677
26695
  this._unsubscribe$.next();