@elderbyte/ngx-starter 15.6.2 → 15.6.4

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.
@@ -1,6 +1,6 @@
1
1
  import { RequiredFilterEvaluator } from '../required-filter-evaluator';
2
2
  import { DataContextLifeCycleBinding } from './data-context-life-cycle-binding';
3
- import { filter, map } from 'rxjs/operators';
3
+ import { filter, map, takeUntil, tap } from 'rxjs/operators';
4
4
  import { LoggerFactory } from '@elderbyte/ts-logger';
5
5
  export class AutoStartSpec {
6
6
  constructor(requiredFilters, initialSort) {
@@ -54,8 +54,10 @@ export class DataContextAutoStarter extends DataContextLifeCycleBinding {
54
54
  * *
55
55
  **************************************************************************/
56
56
  subscribe() {
57
- if (this._autoStartConditionFulfilled$) {
58
- this._subscription = this._autoStartConditionFulfilled$.pipe(filter(fulfilled => !!fulfilled)).subscribe(() => this.startDataContext());
57
+ const hasRequiredFilters = !!this._autoStartConditionFulfilled$;
58
+ if (hasRequiredFilters) {
59
+ const startedTrue$ = this._dataContext.isStarted$.pipe(filter(t => t));
60
+ this._subscription = this._autoStartConditionFulfilled$.pipe(takeUntil(startedTrue$), tap(fulfilled => this.logger.debug(`Got fulfilled event: ${fulfilled}`)), filter(fulfilled => !!fulfilled)).subscribe(() => this.startDataContext());
59
61
  }
60
62
  }
61
63
  /***************************************************************************
@@ -71,4 +73,4 @@ export class DataContextAutoStarter extends DataContextLifeCycleBinding {
71
73
  this._dataContext.start(this._autoStartSpec.initialSort);
72
74
  }
73
75
  }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWF1dG8tc3RhcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQtYXV0by1zdGFydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTlFLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBR25ELE1BQU0sT0FBTyxhQUFhO0lBbUJ4QixZQUNTLGVBQWlDLEVBQ2pDLFdBQW9CO1FBRHBCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUNqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBUztJQUU3QixDQUFDO0lBckJNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBYTtRQUM5QixPQUFPLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQWlCLEVBQUUsSUFBYTtRQUM5RCxPQUFPLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQWlCLEVBQUUsSUFBYTtRQUM5RCxNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDekUsT0FBTyxhQUFhLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQXdCLEVBQUUsSUFBYTtRQUNsRSxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBT0Y7QUFFRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsMkJBQTJCO0lBWXJFOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFdBQThCLEVBQ2IsY0FBNkI7UUFFOUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRkYsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFsQmhEOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBZ0J2RSxJQUFJLGNBQWMsSUFBSSxJQUFJLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsSUFBSSxjQUFjLENBQUMsZUFBZSxFQUFFO1lBQ2xDLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUMsc0NBQXNDLEVBQUUsQ0FBQztTQUNwRjthQUFNO1lBQ0wsaURBQWlEO1lBQ2pELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFbEUsU0FBUztRQUNqQixJQUFJLElBQUksQ0FBQyw2QkFBNkIsRUFBRTtZQUN0QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQzFELE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FDakMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsc0NBQXNDO1FBQzVDLE9BQU8sSUFBSSx1QkFBdUIsQ0FDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUNwQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2IsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQge0lEYXRhQ29udGV4dH0gZnJvbSAnLi9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtSZXF1aXJlZEZpbHRlckV2YWx1YXRvcn0gZnJvbSAnLi4vcmVxdWlyZWQtZmlsdGVyLWV2YWx1YXRvcic7XG5pbXBvcnQge0RhdGFDb250ZXh0TGlmZUN5Y2xlQmluZGluZ30gZnJvbSAnLi9kYXRhLWNvbnRleHQtbGlmZS1jeWNsZS1iaW5kaW5nJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vc29ydCc7XG5cbmV4cG9ydCBjbGFzcyBBdXRvU3RhcnRTcGVjIHtcblxuICBwdWJsaWMgc3RhdGljIGFzYXAoc29ydD86IFNvcnRbXSk6IEF1dG9TdGFydFNwZWMge1xuICAgIHJldHVybiBuZXcgQXV0b1N0YXJ0U3BlYyhudWxsLCBzb3J0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcmVxdWlyZUZpbHRlcnNBbGwoZmlsdGVyczogc3RyaW5nW10sIHNvcnQ/OiBTb3J0W10pOiBBdXRvU3RhcnRTcGVjIHtcbiAgICByZXR1cm4gQXV0b1N0YXJ0U3BlYy5yZXF1aXJlRmlsdGVycyhbZmlsdGVyc10sIHNvcnQpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyByZXF1aXJlRmlsdGVyc0FueShmaWx0ZXJzOiBzdHJpbmdbXSwgc29ydD86IFNvcnRbXSk6IEF1dG9TdGFydFNwZWMge1xuICAgIGNvbnN0IHNlcGFyYXRlRmlsdGVyQXJyYXlzID0gZmlsdGVycy5tYXAoc2luZ2xlRmlsdGVyID0+IFtzaW5nbGVGaWx0ZXJdKTtcbiAgICByZXR1cm4gQXV0b1N0YXJ0U3BlYy5yZXF1aXJlRmlsdGVycyhzZXBhcmF0ZUZpbHRlckFycmF5cywgc29ydCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlcXVpcmVGaWx0ZXJzKGZpbHRlcnM6IEFycmF5PHN0cmluZ1tdPiwgc29ydD86IFNvcnRbXSk6IEF1dG9TdGFydFNwZWMge1xuICAgIHJldHVybiBuZXcgQXV0b1N0YXJ0U3BlYyhmaWx0ZXJzLCBzb3J0KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZXF1aXJlZEZpbHRlcnM/OiBBcnJheTxzdHJpbmdbXT4sXG4gICAgcHVibGljIGluaXRpYWxTb3J0PzogU29ydFtdXG4gICkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhQ29udGV4dEF1dG9TdGFydGVyIGV4dGVuZHMgRGF0YUNvbnRleHRMaWZlQ3ljbGVCaW5kaW5nIHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYXV0b1N0YXJ0Q29uZGl0aW9uRnVsZmlsbGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhQ29udGV4dDogSURhdGFDb250ZXh0PGFueT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBfYXV0b1N0YXJ0U3BlYzogQXV0b1N0YXJ0U3BlY1xuICApIHtcbiAgICBzdXBlcihkYXRhQ29udGV4dCk7XG5cbiAgICBpZiAoX2F1dG9TdGFydFNwZWMgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhdXRvU3RhcnRTcGVjIG11c3Qgbm90IGJlIG51bGwhJyk7XG4gICAgfVxuXG4gICAgaWYgKF9hdXRvU3RhcnRTcGVjLnJlcXVpcmVkRmlsdGVycykge1xuICAgICAgdGhpcy5fYXV0b1N0YXJ0Q29uZGl0aW9uRnVsZmlsbGVkJCA9IHRoaXMuYnVpbGRSZXF1aXJlZEZpbHRlckNvbmRpdGlvbk9ic2VydmFibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gbm8gY29uZGl0aW9uIGRlZmluZWQsIHRyeSB0byBzdGFydCBpbW1lZGlhdGVseVxuICAgICAgdGhpcy5zdGFydERhdGFDb250ZXh0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2F1dG9TdGFydENvbmRpdGlvbkZ1bGZpbGxlZCQpIHtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuX2F1dG9TdGFydENvbmRpdGlvbkZ1bGZpbGxlZCQucGlwZShcbiAgICAgICAgZmlsdGVyKGZ1bGZpbGxlZCA9PiAhIWZ1bGZpbGxlZClcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3RhcnREYXRhQ29udGV4dCgpKTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGJ1aWxkUmVxdWlyZWRGaWx0ZXJDb25kaXRpb25PYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUmVxdWlyZWRGaWx0ZXJFdmFsdWF0b3IoXG4gICAgICB0aGlzLl9kYXRhQ29udGV4dC5maWx0ZXIsXG4gICAgICB0aGlzLl9hdXRvU3RhcnRTcGVjLnJlcXVpcmVkRmlsdGVyc1xuICAgICkuY29udGV4dCQucGlwZShcbiAgICAgIG1hcChldmVudCA9PiBldmVudC5pc1ZhbGlkKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0RGF0YUNvbnRleHQoKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0F1dG8gc3RhcnRpbmcgZGF0YSBjb250ZXh0Li4uJyk7XG4gICAgdGhpcy5fZGF0YUNvbnRleHQuc3RhcnQodGhpcy5fYXV0b1N0YXJ0U3BlYy5pbml0aWFsU29ydCk7XG4gIH1cblxufVxuIl19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWF1dG8tc3RhcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQtYXV0by1zdGFydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTlFLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHbkQsTUFBTSxPQUFPLGFBQWE7SUFtQnhCLFlBQ1MsZUFBaUMsRUFDakMsV0FBb0I7UUFEcEIsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ2pDLGdCQUFXLEdBQVgsV0FBVyxDQUFTO0lBRTdCLENBQUM7SUFyQk0sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFhO1FBQzlCLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBaUIsRUFBRSxJQUFhO1FBQzlELE9BQU8sYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBaUIsRUFBRSxJQUFhO1FBQzlELE1BQU0sb0JBQW9CLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUN6RSxPQUFPLGFBQWEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBd0IsRUFBRSxJQUFhO1FBQ2xFLE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FPRjtBQUVELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSwyQkFBMkI7SUFZckU7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ0UsV0FBOEIsRUFDYixjQUE2QjtRQUU5QyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFGRixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQWxCaEQ7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFnQnZFLElBQUksY0FBYyxJQUFJLElBQUksRUFBRTtZQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxJQUFJLGNBQWMsQ0FBQyxlQUFlLEVBQUU7WUFDbEMsSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksQ0FBQyxzQ0FBc0MsRUFBRSxDQUFDO1NBQ3BGO2FBQU07WUFDTCxpREFBaUQ7WUFDakQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDekI7UUFFRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVsRSxTQUFTO1FBQ2pCLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQztRQUNoRSxJQUFJLGtCQUFrQixFQUFFO1lBQ3RCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FDMUQsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUN2QixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUN4RSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQ2pDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXBFLHNDQUFzQztRQUM1QyxPQUFPLElBQUksdUJBQXVCLENBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FDcEMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNiLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtJRGF0YUNvbnRleHR9IGZyb20gJy4vZGF0YS1jb250ZXh0JztcbmltcG9ydCB7UmVxdWlyZWRGaWx0ZXJFdmFsdWF0b3J9IGZyb20gJy4uL3JlcXVpcmVkLWZpbHRlci1ldmFsdWF0b3InO1xuaW1wb3J0IHtEYXRhQ29udGV4dExpZmVDeWNsZUJpbmRpbmd9IGZyb20gJy4vZGF0YS1jb250ZXh0LWxpZmUtY3ljbGUtYmluZGluZyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgdGFrZVVudGlsLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtTb3J0fSBmcm9tICcuLi9zb3J0JztcblxuZXhwb3J0IGNsYXNzIEF1dG9TdGFydFNwZWMge1xuXG4gIHB1YmxpYyBzdGF0aWMgYXNhcChzb3J0PzogU29ydFtdKTogQXV0b1N0YXJ0U3BlYyB7XG4gICAgcmV0dXJuIG5ldyBBdXRvU3RhcnRTcGVjKG51bGwsIHNvcnQpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyByZXF1aXJlRmlsdGVyc0FsbChmaWx0ZXJzOiBzdHJpbmdbXSwgc29ydD86IFNvcnRbXSk6IEF1dG9TdGFydFNwZWMge1xuICAgIHJldHVybiBBdXRvU3RhcnRTcGVjLnJlcXVpcmVGaWx0ZXJzKFtmaWx0ZXJzXSwgc29ydCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlcXVpcmVGaWx0ZXJzQW55KGZpbHRlcnM6IHN0cmluZ1tdLCBzb3J0PzogU29ydFtdKTogQXV0b1N0YXJ0U3BlYyB7XG4gICAgY29uc3Qgc2VwYXJhdGVGaWx0ZXJBcnJheXMgPSBmaWx0ZXJzLm1hcChzaW5nbGVGaWx0ZXIgPT4gW3NpbmdsZUZpbHRlcl0pO1xuICAgIHJldHVybiBBdXRvU3RhcnRTcGVjLnJlcXVpcmVGaWx0ZXJzKHNlcGFyYXRlRmlsdGVyQXJyYXlzLCBzb3J0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcmVxdWlyZUZpbHRlcnMoZmlsdGVyczogQXJyYXk8c3RyaW5nW10+LCBzb3J0PzogU29ydFtdKTogQXV0b1N0YXJ0U3BlYyB7XG4gICAgcmV0dXJuIG5ldyBBdXRvU3RhcnRTcGVjKGZpbHRlcnMsIHNvcnQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlcXVpcmVkRmlsdGVycz86IEFycmF5PHN0cmluZ1tdPixcbiAgICBwdWJsaWMgaW5pdGlhbFNvcnQ/OiBTb3J0W11cbiAgKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGFDb250ZXh0QXV0b1N0YXJ0ZXIgZXh0ZW5kcyBEYXRhQ29udGV4dExpZmVDeWNsZUJpbmRpbmcge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hdXRvU3RhcnRDb25kaXRpb25GdWxmaWxsZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhdGFDb250ZXh0OiBJRGF0YUNvbnRleHQ8YW55PixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hdXRvU3RhcnRTcGVjOiBBdXRvU3RhcnRTcGVjXG4gICkge1xuICAgIHN1cGVyKGRhdGFDb250ZXh0KTtcblxuICAgIGlmIChfYXV0b1N0YXJ0U3BlYyA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2F1dG9TdGFydFNwZWMgbXVzdCBub3QgYmUgbnVsbCEnKTtcbiAgICB9XG5cbiAgICBpZiAoX2F1dG9TdGFydFNwZWMucmVxdWlyZWRGaWx0ZXJzKSB7XG4gICAgICB0aGlzLl9hdXRvU3RhcnRDb25kaXRpb25GdWxmaWxsZWQkID0gdGhpcy5idWlsZFJlcXVpcmVkRmlsdGVyQ29uZGl0aW9uT2JzZXJ2YWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBubyBjb25kaXRpb24gZGVmaW5lZCwgdHJ5IHRvIHN0YXJ0IGltbWVkaWF0ZWx5XG4gICAgICB0aGlzLnN0YXJ0RGF0YUNvbnRleHQoKTtcbiAgICB9XG5cbiAgICB0aGlzLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIHN1YnNjcmliZSgpOiB2b2lkIHtcbiAgICBjb25zdCBoYXNSZXF1aXJlZEZpbHRlcnMgPSAhIXRoaXMuX2F1dG9TdGFydENvbmRpdGlvbkZ1bGZpbGxlZCQ7XG4gICAgaWYgKGhhc1JlcXVpcmVkRmlsdGVycykge1xuICAgICAgY29uc3Qgc3RhcnRlZFRydWUkID0gdGhpcy5fZGF0YUNvbnRleHQuaXNTdGFydGVkJC5waXBlKGZpbHRlcih0ID0+IHQpKTtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuX2F1dG9TdGFydENvbmRpdGlvbkZ1bGZpbGxlZCQucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHN0YXJ0ZWRUcnVlJCksXG4gICAgICAgIHRhcChmdWxmaWxsZWQgPT4gdGhpcy5sb2dnZXIuZGVidWcoYEdvdCBmdWxmaWxsZWQgZXZlbnQ6ICR7ZnVsZmlsbGVkfWApKSxcbiAgICAgICAgZmlsdGVyKGZ1bGZpbGxlZCA9PiAhIWZ1bGZpbGxlZClcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3RhcnREYXRhQ29udGV4dCgpKTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGJ1aWxkUmVxdWlyZWRGaWx0ZXJDb25kaXRpb25PYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUmVxdWlyZWRGaWx0ZXJFdmFsdWF0b3IoXG4gICAgICB0aGlzLl9kYXRhQ29udGV4dC5maWx0ZXIsXG4gICAgICB0aGlzLl9hdXRvU3RhcnRTcGVjLnJlcXVpcmVkRmlsdGVyc1xuICAgICkuY29udGV4dCQucGlwZShcbiAgICAgIG1hcChldmVudCA9PiBldmVudC5pc1ZhbGlkKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0RGF0YUNvbnRleHQoKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0F1dG8gc3RhcnRpbmcgZGF0YSBjb250ZXh0Li4uJyk7XG4gICAgdGhpcy5fZGF0YUNvbnRleHQuc3RhcnQodGhpcy5fYXV0b1N0YXJ0U3BlYy5pbml0aWFsU29ydCk7XG4gIH1cblxufVxuIl19
@@ -34,7 +34,7 @@ export class DataContextBase extends DataSource {
34
34
  this._reloadQueue = new Subject();
35
35
  this.unsubscribe$ = new Subject();
36
36
  this._dataSource = dataSource;
37
- this._data = new IndexedEntities(e => dataSource.getId(e), _localSort);
37
+ this._data = new IndexedEntities(e => dataSource.getId(e), _localSort, this._sort);
38
38
  this._loading = this._status.pipe(map(status => status.loading));
39
39
  this._filter.filters.pipe(filter(() => this.started), takeUntil(this.unsubscribe$)).subscribe(filters => this.onFiltersChanged(filters));
40
40
  this._sort.sorts.pipe(filter(() => this.started), takeUntil(this.unsubscribe$)).subscribe(sorts => this.onSortsChanged(sorts));
@@ -299,4 +299,4 @@ export class DataContextBase extends DataSource {
299
299
  this._customIndex.clear();
300
300
  }
301
301
  }
302
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzNELE9BQU8sRUFBbUIsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxLQUFLLEVBQWtCLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFDLG1CQUFtQixFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE1BQU0sT0FBZ0IsZUFBOEIsU0FBUSxVQUFhO0lBOEJ2RTs7OztnRkFJNEU7SUFFNUUsWUFDRSxVQUEwQixFQUNsQixRQUE0QixFQUM1QixXQUFpQyxFQUNqQyxVQUErQztRQUV2RCxLQUFLLEVBQUUsQ0FBQztRQUpBLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtRQUNqQyxlQUFVLEdBQVYsVUFBVSxDQUFxQztRQXRDekQ7Ozs7b0ZBSTRFO1FBRTNELFlBQU8sR0FBVyxhQUFhLENB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QUFFO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNmO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxnQkFBZ0IsQ0FBQyxPQUFpQjtRQUMxQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVTLE9BQU8sQ0FBQyxHQUFRO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLE1BQU07UUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVTLFNBQVM7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFUyxRQUFRLENBQUMsTUFBeUI7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQWlCRDs7OztnRkFJNEU7SUFFcEUsVUFBVTtRQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9nZ2VyLCBMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi4vZmlsdGVycy9maWx0ZXInO1xuaW1wb3J0IHtTb3J0fSBmcm9tICcuLi9zb3J0JztcbmltcG9ydCB7Q29sbGVjdGlvblZpZXdlciwgRGF0YVNvdXJjZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7RGF0YUNvbnRleHRTdGF0dXN9IGZyb20gJy4vZGF0YS1jb250ZXh0LXN0YXR1cyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgRU1QVFksIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RmlsdGVyQ29udGV4dH0gZnJvbSAnLi4vZmlsdGVycy9maWx0ZXItY29udGV4dCc7XG5pbXBvcnQge0RhdGFDb250ZXh0U25hcHNob3QsIElEYXRhQ29udGV4dH0gZnJvbSAnLi9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U29ydENvbnRleHR9IGZyb20gJy4uL3NvcnQtY29udGV4dCc7XG5pbXBvcnQge0lEYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJztcbmltcG9ydCB7SW5kZXhlZEVudGl0aWVzfSBmcm9tICcuL2luZGV4ZWQtZW50aXRpZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YUNvbnRleHRCYXNlPFQsIFRJZCA9IGFueT4gZXh0ZW5kcyBEYXRhU291cmNlPFQ+IGltcGxlbWVudHMgSURhdGFDb250ZXh0PFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGJhc2Vsb2c6IExvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKCdEYXRhQ29udGV4dEJhc2UnKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhU291cmNlOiBJRGF0YVNvdXJjZTxUPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9maWx0ZXIgPSBuZXcgRmlsdGVyQ29udGV4dCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zb3J0ID0gbmV3IFNvcnRDb250ZXh0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGluZzogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhOiBJbmRleGVkRW50aXRpZXM8VCwgVElkPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfdG90YWwgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdHVzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhQ29udGV4dFN0YXR1cz4oRGF0YUNvbnRleHRTdGF0dXMuaWRsZSgpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGFydGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nsb3NlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1c3RvbUluZGV4ID0gbmV3IE1hcDxhbnksIFQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVsb2FkUXVldWUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBkYXRhU291cmNlOiBJRGF0YVNvdXJjZTxUPixcbiAgICBwcml2YXRlIF9pbmRleEZuOiAoKGl0ZW06IFQpID0+IGFueSksXG4gICAgcHJpdmF0ZSBfbG9jYWxBcHBseTogKChkYXRhOiBUW10pID0+IFRbXSksXG4gICAgcHJpdmF0ZSBfbG9jYWxTb3J0OiAoKGRhdGE6IFRbXSwgc29ydHM6IFNvcnRbXSkgPT4gVFtdKSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuX2RhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMuX2RhdGEgPSBuZXcgSW5kZXhlZEVudGl0aWVzKGUgPT4gZGF0YVNvdXJjZS5nZXRJZChlKSwgX2xvY2FsU29ydCk7XG5cbiAgICB0aGlzLl9sb2FkaW5nID0gdGhpcy5fc3RhdHVzLnBpcGUoXG4gICAgICBtYXAoc3RhdHVzID0+IHN0YXR1cy5sb2FkaW5nKVxuICAgICk7XG5cbiAgICB0aGlzLl9maWx0ZXIuZmlsdGVycy5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+IHRoaXMuc3RhcnRlZCksXG4gICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICBmaWx0ZXJzID0+IHRoaXMub25GaWx0ZXJzQ2hhbmdlZChmaWx0ZXJzKVxuICAgICk7XG5cbiAgICB0aGlzLl9zb3J0LnNvcnRzLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zdGFydGVkKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJClcbiAgICApLnN1YnNjcmliZShcbiAgICAgIHNvcnRzID0+IHRoaXMub25Tb3J0c0NoYW5nZWQoc29ydHMpXG4gICAgKTtcblxuICAgIHRoaXMuX3JlbG9hZFF1ZXVlLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zdGFydGVkKSxcbiAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgY2F0Y2hFcnJvcihlcnIgPT4geyAgLy8gRG9udCBkaWUgb24gZXJyb3JzXG4gICAgICAgIHRoaXMuYmFzZWxvZy5lcnJvcignUmVsb2FkIHF1ZXVlIGRldGVjdGVkIGVycm9yLCBiYWQhJywgZXJyKTtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbG9hZE5vdygpKTtcbiAgICAvLyBNYXliZSBza2lwTWFwIHRoZSByZWFsIHJlcXVlc3RzIGZvciBhdXRvIGFib3J0IHBlbmRpbmcgKGV4Y2VwdCBmb3IgY29udGludWF0aW9uIC8gcGFnZWQpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSBNYXRlcmlhbCBEQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY29ubmVjdChjb2xsZWN0aW9uVmlld2VyOiBDb2xsZWN0aW9uVmlld2VyKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhO1xuICB9XG5cbiAgcHVibGljIGRpc2Nvbm5lY3QoY29sbGVjdGlvblZpZXdlcjogQ29sbGVjdGlvblZpZXdlcik6IHZvaWQge1xuICAgIC8vIHRoaXMuY2xvc2UoKTsgQ2xvc2luZyB3aWxsIGRlc3Ryb3kgdGhlIERDXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGRhdGFTb3VyY2UoKTogSURhdGFTb3VyY2U8VD4ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlO1xuICB9XG5cbiAgcHVibGljIGdldCBzbmFwc2hvdCgpOiBEYXRhQ29udGV4dFNuYXBzaG90PFQ+IHtcbiAgICByZXR1cm4gbmV3IERhdGFDb250ZXh0U25hcHNob3QoXG4gICAgICB0aGlzLmRhdGFTbmFwc2hvdCxcbiAgICAgIHRoaXMuaXNFbXB0eSxcbiAgICAgIHRoaXMubG9hZGluZ1NuYXBzaG90LFxuICAgICAgdGhpcy50b3RhbFNuYXBzaG90LFxuICAgICAgdGhpcy5zdGF0dXNTbmFwc2hvdFxuICAgICk7XG4gIH1cblxuXG4gIHB1YmxpYyBnZXQgdG90YWwoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fdG90YWwuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvdGFsU25hcHNob3QoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdG90YWwuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc29ydCgpOiBTb3J0Q29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuX3NvcnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpbHRlcigpOiBGaWx0ZXJDb250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyO1xuICB9XG5cbiAgcHVibGljIGdldCBsb2FkaW5nKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nO1xuICB9XG5cbiAgcHVibGljIGdldCBsb2FkaW5nU25hcHNob3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzU25hcHNob3Q/LmxvYWRpbmc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRhdGEoKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5lbnRpdGllcyQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRhdGFTbmFwc2hvdCgpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmVudGl0aWVzU25hcHNob3Q7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXR1cygpOiBPYnNlcnZhYmxlPERhdGFDb250ZXh0U3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXR1cztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdHVzU25hcHNob3QoKTogRGF0YUNvbnRleHRTdGF0dXMge1xuICAgIHJldHVybiB0aGlzLl9zdGF0dXMuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU25hcHNob3QubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1N0YXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnRlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTdGFydGVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNDbG9zZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlZC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBzdGFydGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdGFydGVkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0IHN0YXJ0ZWQoc3RhcnRlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX3N0YXJ0ZWQubmV4dChzdGFydGVkKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBzdGFydChzb3J0cz86IFNvcnRbXSwgZmlsdGVycz86IEZpbHRlcltdKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIGlmICh0aGlzLmlzQ2xvc2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Jlc3RhcnRpbmcgYSBjbG9zZWQgRGF0YUNvbnRleHQgaXMgbm90IHBvc3NpYmxlIScpOyAvLyBTZWUgdW5zdWJzY3JpYmUkXG4gICAgfVxuXG4gICAgdGhpcy5iYXNlbG9nLmRlYnVnKCdTdGFydGluZyBmcmVzaCBkYXRhQ29udGV4dCAuLi4nKTtcblxuICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5fc29ydC5yZXBsYWNlU29ydHMoc29ydHMgfHwgdGhpcy5zb3J0LnNvcnRzU25hcHNob3QpO1xuICAgIHRoaXMuX2ZpbHRlci5yZXBsYWNlRmlsdGVycyhmaWx0ZXJzIHx8IHRoaXMuZmlsdGVyLmZpbHRlcnNTbmFwc2hvdCk7XG5cbiAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlO1xuXG4gICAgcmV0dXJuIHRoaXMucmVsb2FkTm93KCk7XG4gIH1cblxuICBwdWJsaWMgcmVsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuYmFzZWxvZy5kZWJ1ZygnUmVxdWVzdGluZyBhIHJlbG9hZCBvZiB0aGUgRGF0YUNvbnRleHQgZnJvbSB0aGUgRGF0YVNvdXJjZS4nKVxuICAgIHRoaXMuX3JlbG9hZFF1ZXVlLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJbmRleChrZXk6IGFueSk6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5faW5kZXhGbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdmaW5kQnlJbmRleCByZXF1aXJlcyB5b3UgdG8gcGFzcyBhIGluZGV4IGZ1bmN0aW9uIScpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY3VzdG9tSW5kZXguZ2V0KGtleSk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWQoaWQ6IGFueSk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmdldEJ5SWQoaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGlzIERhdGFDb250ZXh0IGFuZCBjbGVhbnMgdXAgYWxsIHVzZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuXG4gICAgdGhpcy5zdGFydGVkID0gZmFsc2U7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fY2xvc2VkLm5leHQodHJ1ZSk7XG5cbiAgICB0aGlzLl9kYXRhLmRlc3Ryb3koKTtcbiAgICB0aGlzLl90b3RhbC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3N0YXR1cy5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy5jbGVhckFsbCgpO1xuICAgIHRoaXMuYmFzZWxvZy5kZWJ1ZygnRGF0YUNvbnRleHQgaGFzIGJlZW4gY2xvc2VkIGFuZCByZXNvdXJjZXMgY2xlYW5lZCB1cCEnKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuX2RhdGEubm90aWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKGVudGl0aWVzOiBUW10pOiB2b2lkIHtcbiAgICB0aGlzLl9kYXRhLnVwZGF0ZVNvbWUoZW50aXRpZXMpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3RlY3RlZCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIHJlbG9hZE5vdygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnJlbG9hZEludGVybmFsKCk7IC8vIFRPRE8gVGhpcyBzaG91bGQgYWN0dWFsbHkgcmV0dXJuIHRoZSByZWFsIChodHRwKSByZXF1ZXN0XG4gIH1cblxuICAvKipcbiAgICogQXBwZW5kIHRoZSBnaXZlbiByb3dzIHRvIHRoZSBleGlzdGluZyBvbmVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFwcGVuZERhdGEoYWRkaXRpb25hbERhdGE6IFRbXSk6IHZvaWQge1xuICAgIGFkZGl0aW9uYWxEYXRhID0gdGhpcy5sb2NhbEFwcGx5KGFkZGl0aW9uYWxEYXRhKTtcbiAgICB0aGlzLmluZGV4QWxsKGFkZGl0aW9uYWxEYXRhKTtcbiAgICB0aGlzLl9kYXRhLmFwcGVuZChhZGRpdGlvbmFsRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogSW5zZXJ0IHRoZSBnaXZlbiByb3dzIGF0IHRoZSBnaXZlbiBsb2NhdGlvbi5cbiAgICovXG4gIHByb3RlY3RlZCBpbnNlcnREYXRhKGFkZGl0aW9uYWxEYXRhOiBUW10sIG9mZnNldDogbnVtYmVyKTogdm9pZCB7XG4gICAgYWRkaXRpb25hbERhdGEgPSB0aGlzLmxvY2FsQXBwbHkoYWRkaXRpb25hbERhdGEpO1xuICAgIHRoaXMuaW5kZXhBbGwoYWRkaXRpb25hbERhdGEpO1xuICAgIHRoaXMuX2RhdGEuaW5zZXJ0KGFkZGl0aW9uYWxEYXRhLCBvZmZzZXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIHRoZSBleGlzdGluZyBkYXRhIHdpdGggdGhlIG5ldyBzZXQuXG4gICAqIEBwYXJhbSBuZXdEYXRhIFRoZSBuZXcgZGF0YSBzZXQuXG4gICAqIEBwYXJhbSBhbHJlYWR5SW5kZXhlZCBUaGUgcm93cyB3aWxsIGJlIGluZGV4ZWQgdW5sZXNzIHRoZXkgYWxyZWFkeSBoYXZlIGJlZW4uXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0RGF0YShuZXdEYXRhOiBUW10sIGFscmVhZHlJbmRleGVkID0gZmFsc2UpOiB2b2lkIHtcbiAgICBuZXdEYXRhID0gdGhpcy5sb2NhbEFwcGx5KG5ld0RhdGEpO1xuICAgIGlmICghYWxyZWFkeUluZGV4ZWQpIHtcbiAgICAgIHRoaXMuY2xlYXJJbmRleCgpO1xuICAgICAgdGhpcy5pbmRleEFsbChuZXdEYXRhKTtcbiAgICB9XG4gICAgdGhpcy5fZGF0YS5yZXBsYWNlQWxsKG5ld0RhdGEpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldERhdGEoW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2NhbEFwcGx5KGRhdGE6IFRbXSk6IFRbXSB7XG4gICAgaWYgKHRoaXMuX2xvY2FsQXBwbHkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9sb2NhbEFwcGx5KGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0VG90YWwodG90YWw6IG51bWJlciB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuX3RvdGFsLm5leHQodG90YWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgY3VycmVudCBkYXRhLWNvbnRleHQgY2FjaGVkIGRhdGEuXG4gICAqIFN0YXRlIHN1Y2ggYXMgY3VycmVudCBzb3J0aW5nIGFuZCBmaWx0ZXJzU25hcHNob3QgYXJlIGtlcHQuXG4gICAqL1xuICBwcm90ZWN0ZWQgY2xlYXJBbGwoc2lsZW50ID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFySW5kZXgoKTtcblxuICAgIGlmICghc2lsZW50KSB7XG4gICAgICB0aGlzLnNldFRvdGFsKDApO1xuICAgICAgdGhpcy5jbGVhckRhdGEoKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uSWRsZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUluZGV4KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJJbmRleCgpO1xuICAgIHRoaXMuaW5kZXhBbGwodGhpcy5kYXRhU25hcHNob3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGV4ZXMgdGhlIGdpdmVuIGl0ZW0gYnkga2V5IGlmIHRoZXJlIGlzIGFuIGluZGV4IGZ1bmN0aW9uIGRlZmluZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5kZXhJdGVtKGl0ZW06IFQpOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmdldEl0ZW1LZXkoaXRlbSk7XG4gICAgaWYgKGtleSkge1xuICAgICAgdGhpcy5fY3VzdG9tSW5kZXguc2V0KGtleSwgaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluZGV4ZXMgYWxsIHRoZSBnaXZlbiBpdGVtcyBieSBrZXkgaWYgdGhlcmUgaXMgYW4gaW5kZXggZnVuY3Rpb24gZGVmaW5lZC5cbiAgICovXG4gIHByb3RlY3RlZCBpbmRleEFsbChpdGVtczogVFtdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2luZGV4Rm4pIHtcbiAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB0aGlzLmluZGV4SXRlbShpdGVtKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldEl0ZW1LZXkoaXRlbTogVCk6IGFueSB7XG4gICAgaWYgKHRoaXMuX2luZGV4Rm4pIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbmRleEZuKGl0ZW0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJdGVtSWQoaXRlbTogVCk6IFRJZCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5nZXRJZChpdGVtKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBFdmVudCBoYW5kbGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBPY2N1cnMgd2hlbiB0aGUgc29ydCBoYXMgY2hhbmdlZC5cbiAgICovXG4gIHByb3RlY3RlZCBvblNvcnRzQ2hhbmdlZChzb3J0czogU29ydFtdKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9sb2NhbFNvcnQpIHtcbiAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RGF0YSh0aGlzLmRhdGFTbmFwc2hvdCwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9jY3VycyB3aGVuIHRoZSBmaWx0ZXIgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25GaWx0ZXJzQ2hhbmdlZChmaWx0ZXJzOiBGaWx0ZXJbXSk6IHZvaWQge1xuICAgIHRoaXMucmVsb2FkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25FcnJvcihlcnI6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25TdGF0dXMoRGF0YUNvbnRleHRTdGF0dXMuZXJyb3IoZXJyKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25JZGxlKCk6IHZvaWQge1xuICAgIHRoaXMub25TdGF0dXMoRGF0YUNvbnRleHRTdGF0dXMuaWRsZSgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkxvYWRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5vblN0YXR1cyhEYXRhQ29udGV4dFN0YXR1cy5sb2FkaW5nKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uU3RhdHVzKHN0YXR1czogRGF0YUNvbnRleHRTdGF0dXMpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0dXMubmV4dChzdGF0dXMpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEFic3RyYWN0IG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QgYW5kXG4gICAqIHJlbG9hZCB0aGUgY3VycmVudGx5IGhlbGQgZGF0YS5cbiAgICogSWYgcG9zc2libGUsIHRoZSBjdXJyZW50IHZpZXcgc3RhdGUgc2hvdWxkIGJlIGtlcHQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSByZWxvYWQgam9iLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlbG9hZEludGVybmFsKCk6IE9ic2VydmFibGU8YW55PjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGNsZWFySW5kZXgoKTogdm9pZCB7XG4gICAgdGhpcy5fY3VzdG9tSW5kZXguY2xlYXIoKTtcbiAgfVxufVxuIl19
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzNELE9BQU8sRUFBbUIsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsbUJBQW1CLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFbkQsTUFBTSxPQUFnQixlQUE4QixTQUFRLFVBQWE7SUE4QnZFOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFVBQTBCLEVBQ2xCLFFBQTRCLEVBQzVCLFdBQWlDLEVBQ2pDLFVBQStDO1FBRXZELEtBQUssRUFBRSxDQUFDO1FBSkEsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQXFDO1FBdEN6RDs7OztvRkFJNEU7UUFFM0QsWUFBTyxHQUFXLGFBQWEsQ0FB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QUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDZjthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ08sZ0JBQWdCLENBQUMsT0FBaUI7UUFDMUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFUyxPQUFPLENBQUMsR0FBUTtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFUyxNQUFNO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFUyxTQUFTO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRVMsUUFBUSxDQUFDLE1BQXlCO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFpQkQ7Ozs7Z0ZBSTRFO0lBRXBFLFVBQVU7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvZ2dlciwgTG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uL2ZpbHRlcnMvZmlsdGVyJztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vc29ydCc7XG5pbXBvcnQge0NvbGxlY3Rpb25WaWV3ZXIsIERhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge0RhdGFDb250ZXh0U3RhdHVzfSBmcm9tICcuL2RhdGEtY29udGV4dC1zdGF0dXMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIEVNUFRZLCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RmlsdGVyQ29udGV4dH0gZnJvbSAnLi4vZmlsdGVycy9maWx0ZXItY29udGV4dCc7XG5pbXBvcnQge0RhdGFDb250ZXh0U25hcHNob3QsIElEYXRhQ29udGV4dH0gZnJvbSAnLi9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U29ydENvbnRleHR9IGZyb20gJy4uL3NvcnQtY29udGV4dCc7XG5pbXBvcnQge0lEYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJztcbmltcG9ydCB7SW5kZXhlZEVudGl0aWVzfSBmcm9tICcuL2luZGV4ZWQtZW50aXRpZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YUNvbnRleHRCYXNlPFQsIFRJZCA9IGFueT4gZXh0ZW5kcyBEYXRhU291cmNlPFQ+IGltcGxlbWVudHMgSURhdGFDb250ZXh0PFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGJhc2Vsb2c6IExvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKCdEYXRhQ29udGV4dEJhc2UnKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhU291cmNlOiBJRGF0YVNvdXJjZTxUPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9maWx0ZXIgPSBuZXcgRmlsdGVyQ29udGV4dCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zb3J0ID0gbmV3IFNvcnRDb250ZXh0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGluZzogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhOiBJbmRleGVkRW50aXRpZXM8VCwgVElkPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfdG90YWwgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdHVzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhQ29udGV4dFN0YXR1cz4oRGF0YUNvbnRleHRTdGF0dXMuaWRsZSgpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGFydGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nsb3NlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1c3RvbUluZGV4ID0gbmV3IE1hcDxhbnksIFQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVsb2FkUXVldWUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBkYXRhU291cmNlOiBJRGF0YVNvdXJjZTxUPixcbiAgICBwcml2YXRlIF9pbmRleEZuOiAoKGl0ZW06IFQpID0+IGFueSksXG4gICAgcHJpdmF0ZSBfbG9jYWxBcHBseTogKChkYXRhOiBUW10pID0+IFRbXSksXG4gICAgcHJpdmF0ZSBfbG9jYWxTb3J0OiAoKGRhdGE6IFRbXSwgc29ydHM6IFNvcnRbXSkgPT4gVFtdKSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuX2RhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMuX2RhdGEgPSBuZXcgSW5kZXhlZEVudGl0aWVzKGUgPT4gZGF0YVNvdXJjZS5nZXRJZChlKSwgX2xvY2FsU29ydCwgdGhpcy5fc29ydCk7XG5cbiAgICB0aGlzLl9sb2FkaW5nID0gdGhpcy5fc3RhdHVzLnBpcGUoXG4gICAgICBtYXAoc3RhdHVzID0+IHN0YXR1cy5sb2FkaW5nKVxuICAgICk7XG5cbiAgICB0aGlzLl9maWx0ZXIuZmlsdGVycy5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+IHRoaXMuc3RhcnRlZCksXG4gICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICBmaWx0ZXJzID0+IHRoaXMub25GaWx0ZXJzQ2hhbmdlZChmaWx0ZXJzKVxuICAgICk7XG5cbiAgICB0aGlzLl9zb3J0LnNvcnRzLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zdGFydGVkKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJClcbiAgICApLnN1YnNjcmliZShcbiAgICAgIHNvcnRzID0+IHRoaXMub25Tb3J0c0NoYW5nZWQoc29ydHMpXG4gICAgKTtcblxuICAgIHRoaXMuX3JlbG9hZFF1ZXVlLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zdGFydGVkKSxcbiAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgY2F0Y2hFcnJvcihlcnIgPT4geyAgLy8gRG9udCBkaWUgb24gZXJyb3JzXG4gICAgICAgIHRoaXMuYmFzZWxvZy5lcnJvcignUmVsb2FkIHF1ZXVlIGRldGVjdGVkIGVycm9yLCBiYWQhJywgZXJyKTtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbG9hZE5vdygpKTtcbiAgICAvLyBNYXliZSBza2lwTWFwIHRoZSByZWFsIHJlcXVlc3RzIGZvciBhdXRvIGFib3J0IHBlbmRpbmcgKGV4Y2VwdCBmb3IgY29udGludWF0aW9uIC8gcGFnZWQpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSBNYXRlcmlhbCBEQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY29ubmVjdChjb2xsZWN0aW9uVmlld2VyOiBDb2xsZWN0aW9uVmlld2VyKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhO1xuICB9XG5cbiAgcHVibGljIGRpc2Nvbm5lY3QoY29sbGVjdGlvblZpZXdlcjogQ29sbGVjdGlvblZpZXdlcik6IHZvaWQge1xuICAgIC8vIHRoaXMuY2xvc2UoKTsgQ2xvc2luZyB3aWxsIGRlc3Ryb3kgdGhlIERDXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGRhdGFTb3VyY2UoKTogSURhdGFTb3VyY2U8VD4ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlO1xuICB9XG5cbiAgcHVibGljIGdldCBzbmFwc2hvdCgpOiBEYXRhQ29udGV4dFNuYXBzaG90PFQ+IHtcbiAgICByZXR1cm4gbmV3IERhdGFDb250ZXh0U25hcHNob3QoXG4gICAgICB0aGlzLmRhdGFTbmFwc2hvdCxcbiAgICAgIHRoaXMuaXNFbXB0eSxcbiAgICAgIHRoaXMubG9hZGluZ1NuYXBzaG90LFxuICAgICAgdGhpcy50b3RhbFNuYXBzaG90LFxuICAgICAgdGhpcy5zdGF0dXNTbmFwc2hvdFxuICAgICk7XG4gIH1cblxuXG4gIHB1YmxpYyBnZXQgdG90YWwoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fdG90YWwuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvdGFsU25hcHNob3QoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdG90YWwuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc29ydCgpOiBTb3J0Q29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuX3NvcnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpbHRlcigpOiBGaWx0ZXJDb250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyO1xuICB9XG5cbiAgcHVibGljIGdldCBsb2FkaW5nKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nO1xuICB9XG5cbiAgcHVibGljIGdldCBsb2FkaW5nU25hcHNob3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzU25hcHNob3Q/LmxvYWRpbmc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRhdGEoKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5lbnRpdGllcyQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRhdGFTbmFwc2hvdCgpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmVudGl0aWVzU25hcHNob3Q7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXR1cygpOiBPYnNlcnZhYmxlPERhdGFDb250ZXh0U3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXR1cztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdHVzU25hcHNob3QoKTogRGF0YUNvbnRleHRTdGF0dXMge1xuICAgIHJldHVybiB0aGlzLl9zdGF0dXMuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU25hcHNob3QubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1N0YXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnRlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTdGFydGVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNDbG9zZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlZC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBzdGFydGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdGFydGVkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0IHN0YXJ0ZWQoc3RhcnRlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX3N0YXJ0ZWQubmV4dChzdGFydGVkKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBzdGFydChzb3J0cz86IFNvcnRbXSwgZmlsdGVycz86IEZpbHRlcltdKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIGlmICh0aGlzLmlzQ2xvc2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Jlc3RhcnRpbmcgYSBjbG9zZWQgRGF0YUNvbnRleHQgaXMgbm90IHBvc3NpYmxlIScpOyAvLyBTZWUgdW5zdWJzY3JpYmUkXG4gICAgfVxuXG4gICAgdGhpcy5iYXNlbG9nLmRlYnVnKCdTdGFydGluZyBmcmVzaCBkYXRhQ29udGV4dCAuLi4nKTtcblxuICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5fc29ydC5yZXBsYWNlU29ydHMoc29ydHMgfHwgdGhpcy5zb3J0LnNvcnRzU25hcHNob3QpO1xuICAgIHRoaXMuX2ZpbHRlci5yZXBsYWNlRmlsdGVycyhmaWx0ZXJzIHx8IHRoaXMuZmlsdGVyLmZpbHRlcnNTbmFwc2hvdCk7XG5cbiAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlO1xuXG4gICAgcmV0dXJuIHRoaXMucmVsb2FkTm93KCk7XG4gIH1cblxuICBwdWJsaWMgcmVsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuYmFzZWxvZy5kZWJ1ZygnUmVxdWVzdGluZyBhIHJlbG9hZCBvZiB0aGUgRGF0YUNvbnRleHQgZnJvbSB0aGUgRGF0YVNvdXJjZS4nKVxuICAgIHRoaXMuX3JlbG9hZFF1ZXVlLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJbmRleChrZXk6IGFueSk6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5faW5kZXhGbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdmaW5kQnlJbmRleCByZXF1aXJlcyB5b3UgdG8gcGFzcyBhIGluZGV4IGZ1bmN0aW9uIScpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY3VzdG9tSW5kZXguZ2V0KGtleSk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWQoaWQ6IGFueSk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmdldEJ5SWQoaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGlzIERhdGFDb250ZXh0IGFuZCBjbGVhbnMgdXAgYWxsIHVzZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuXG4gICAgdGhpcy5zdGFydGVkID0gZmFsc2U7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fY2xvc2VkLm5leHQodHJ1ZSk7XG5cbiAgICB0aGlzLl9kYXRhLmRlc3Ryb3koKTtcbiAgICB0aGlzLl90b3RhbC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3N0YXR1cy5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy5jbGVhckFsbCgpO1xuICAgIHRoaXMuYmFzZWxvZy5kZWJ1ZygnRGF0YUNvbnRleHQgaGFzIGJlZW4gY2xvc2VkIGFuZCByZXNvdXJjZXMgY2xlYW5lZCB1cCEnKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuX2RhdGEubm90aWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKGVudGl0aWVzOiBUW10pOiB2b2lkIHtcbiAgICB0aGlzLl9kYXRhLnVwZGF0ZVNvbWUoZW50aXRpZXMpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3RlY3RlZCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIHJlbG9hZE5vdygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnJlbG9hZEludGVybmFsKCk7IC8vIFRPRE8gVGhpcyBzaG91bGQgYWN0dWFsbHkgcmV0dXJuIHRoZSByZWFsIChodHRwKSByZXF1ZXN0XG4gIH1cblxuICAvKipcbiAgICogQXBwZW5kIHRoZSBnaXZlbiByb3dzIHRvIHRoZSBleGlzdGluZyBvbmVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFwcGVuZERhdGEoYWRkaXRpb25hbERhdGE6IFRbXSk6IHZvaWQge1xuICAgIGFkZGl0aW9uYWxEYXRhID0gdGhpcy5sb2NhbEFwcGx5KGFkZGl0aW9uYWxEYXRhKTtcbiAgICB0aGlzLmluZGV4QWxsKGFkZGl0aW9uYWxEYXRhKTtcbiAgICB0aGlzLl9kYXRhLmFwcGVuZChhZGRpdGlvbmFsRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogSW5zZXJ0IHRoZSBnaXZlbiByb3dzIGF0IHRoZSBnaXZlbiBsb2NhdGlvbi5cbiAgICovXG4gIHByb3RlY3RlZCBpbnNlcnREYXRhKGFkZGl0aW9uYWxEYXRhOiBUW10sIG9mZnNldDogbnVtYmVyKTogdm9pZCB7XG4gICAgYWRkaXRpb25hbERhdGEgPSB0aGlzLmxvY2FsQXBwbHkoYWRkaXRpb25hbERhdGEpO1xuICAgIHRoaXMuaW5kZXhBbGwoYWRkaXRpb25hbERhdGEpO1xuICAgIHRoaXMuX2RhdGEuaW5zZXJ0KGFkZGl0aW9uYWxEYXRhLCBvZmZzZXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIHRoZSBleGlzdGluZyBkYXRhIHdpdGggdGhlIG5ldyBzZXQuXG4gICAqIEBwYXJhbSBuZXdEYXRhIFRoZSBuZXcgZGF0YSBzZXQuXG4gICAqIEBwYXJhbSBhbHJlYWR5SW5kZXhlZCBUaGUgcm93cyB3aWxsIGJlIGluZGV4ZWQgdW5sZXNzIHRoZXkgYWxyZWFkeSBoYXZlIGJlZW4uXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0RGF0YShuZXdEYXRhOiBUW10sIGFscmVhZHlJbmRleGVkID0gZmFsc2UpOiB2b2lkIHtcbiAgICBuZXdEYXRhID0gdGhpcy5sb2NhbEFwcGx5KG5ld0RhdGEpO1xuICAgIGlmICghYWxyZWFkeUluZGV4ZWQpIHtcbiAgICAgIHRoaXMuY2xlYXJJbmRleCgpO1xuICAgICAgdGhpcy5pbmRleEFsbChuZXdEYXRhKTtcbiAgICB9XG4gICAgdGhpcy5fZGF0YS5yZXBsYWNlQWxsKG5ld0RhdGEpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldERhdGEoW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2NhbEFwcGx5KGRhdGE6IFRbXSk6IFRbXSB7XG4gICAgaWYgKHRoaXMuX2xvY2FsQXBwbHkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9sb2NhbEFwcGx5KGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0VG90YWwodG90YWw6IG51bWJlciB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuX3RvdGFsLm5leHQodG90YWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgY3VycmVudCBkYXRhLWNvbnRleHQgY2FjaGVkIGRhdGEuXG4gICAqIFN0YXRlIHN1Y2ggYXMgY3VycmVudCBzb3J0aW5nIGFuZCBmaWx0ZXJzU25hcHNob3QgYXJlIGtlcHQuXG4gICAqL1xuICBwcm90ZWN0ZWQgY2xlYXJBbGwoc2lsZW50ID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFySW5kZXgoKTtcblxuICAgIGlmICghc2lsZW50KSB7XG4gICAgICB0aGlzLnNldFRvdGFsKDApO1xuICAgICAgdGhpcy5jbGVhckRhdGEoKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uSWRsZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUluZGV4KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJJbmRleCgpO1xuICAgIHRoaXMuaW5kZXhBbGwodGhpcy5kYXRhU25hcHNob3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGV4ZXMgdGhlIGdpdmVuIGl0ZW0gYnkga2V5IGlmIHRoZXJlIGlzIGFuIGluZGV4IGZ1bmN0aW9uIGRlZmluZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5kZXhJdGVtKGl0ZW06IFQpOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmdldEl0ZW1LZXkoaXRlbSk7XG4gICAgaWYgKGtleSkge1xuICAgICAgdGhpcy5fY3VzdG9tSW5kZXguc2V0KGtleSwgaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluZGV4ZXMgYWxsIHRoZSBnaXZlbiBpdGVtcyBieSBrZXkgaWYgdGhlcmUgaXMgYW4gaW5kZXggZnVuY3Rpb24gZGVmaW5lZC5cbiAgICovXG4gIHByb3RlY3RlZCBpbmRleEFsbChpdGVtczogVFtdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2luZGV4Rm4pIHtcbiAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB0aGlzLmluZGV4SXRlbShpdGVtKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldEl0ZW1LZXkoaXRlbTogVCk6IGFueSB7XG4gICAgaWYgKHRoaXMuX2luZGV4Rm4pIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbmRleEZuKGl0ZW0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJdGVtSWQoaXRlbTogVCk6IFRJZCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5nZXRJZChpdGVtKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBFdmVudCBoYW5kbGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBPY2N1cnMgd2hlbiB0aGUgc29ydCBoYXMgY2hhbmdlZC5cbiAgICovXG4gIHByb3RlY3RlZCBvblNvcnRzQ2hhbmdlZChzb3J0czogU29ydFtdKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9sb2NhbFNvcnQpIHtcbiAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RGF0YSh0aGlzLmRhdGFTbmFwc2hvdCwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9jY3VycyB3aGVuIHRoZSBmaWx0ZXIgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25GaWx0ZXJzQ2hhbmdlZChmaWx0ZXJzOiBGaWx0ZXJbXSk6IHZvaWQge1xuICAgIHRoaXMucmVsb2FkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25FcnJvcihlcnI6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25TdGF0dXMoRGF0YUNvbnRleHRTdGF0dXMuZXJyb3IoZXJyKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25JZGxlKCk6IHZvaWQge1xuICAgIHRoaXMub25TdGF0dXMoRGF0YUNvbnRleHRTdGF0dXMuaWRsZSgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkxvYWRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5vblN0YXR1cyhEYXRhQ29udGV4dFN0YXR1cy5sb2FkaW5nKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uU3RhdHVzKHN0YXR1czogRGF0YUNvbnRleHRTdGF0dXMpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0dXMubmV4dChzdGF0dXMpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEFic3RyYWN0IG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QgYW5kXG4gICAqIHJlbG9hZCB0aGUgY3VycmVudGx5IGhlbGQgZGF0YS5cbiAgICogSWYgcG9zc2libGUsIHRoZSBjdXJyZW50IHZpZXcgc3RhdGUgc2hvdWxkIGJlIGtlcHQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSByZWxvYWQgam9iLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlbG9hZEludGVybmFsKCk6IE9ic2VydmFibGU8YW55PjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGNsZWFySW5kZXgoKTogdm9pZCB7XG4gICAgdGhpcy5fY3VzdG9tSW5kZXguY2xlYXIoKTtcbiAgfVxufVxuIl19
@@ -27,4 +27,4 @@ export function isContinuableDataContext(object) {
27
27
  export function isActivePagedDataContext(object) {
28
28
  return object.setActivePage !== undefined;
29
29
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQ2tCLElBQVMsRUFDVCxPQUFnQixFQUNoQixTQUFrQixFQUNsQixLQUF5QixFQUN6QixNQUF5QjtRQUp6QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ1QsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFTO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBQ3pCLFdBQU0sR0FBTixNQUFNLENBQW1CO0lBQ3ZDLENBQUM7Q0FDTjtBQWlMRDs7Ozs0RUFJNEU7QUFFNUUsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFXO0lBRXZDLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFBRSxPQUFPLEtBQUssQ0FBQztLQUFFO0lBRTlCLE9BQVEsTUFBNEIsQ0FBQyxJQUFJLEtBQUssU0FBUztXQUNqRCxNQUE0QixDQUFDLEtBQUssS0FBSyxTQUFTO1dBQ2hELE1BQTRCLENBQUMsTUFBTSxLQUFLLFNBQVM7V0FDakQsTUFBNEIsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO0FBQzNELENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsTUFBeUI7SUFDaEUsT0FBUSxNQUF1QyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUM7QUFDekUsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxNQUF5QjtJQUNoRSxPQUFRLE1BQXNDLENBQUMsYUFBYSxLQUFLLFNBQVMsQ0FBQztBQUM3RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhQ29udGV4dFN0YXR1c30gZnJvbSAnLi9kYXRhLWNvbnRleHQtc3RhdHVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uL3NvcnQnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uL2ZpbHRlcnMvZmlsdGVyJztcbmltcG9ydCB7RmlsdGVyQ29udGV4dH0gZnJvbSAnLi4vZmlsdGVycy9maWx0ZXItY29udGV4dCc7XG5pbXBvcnQge1BhZ2VSZXF1ZXN0fSBmcm9tICcuLi9wYWdlJztcbmltcG9ydCB7U29ydENvbnRleHR9IGZyb20gJy4uL3NvcnQtY29udGV4dCc7XG5pbXBvcnQge0lEYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJztcblxuXG5leHBvcnQgY2xhc3MgRGF0YUNvbnRleHRTbmFwc2hvdDxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBkYXRhOiBUW10sXG4gICAgcHVibGljIHJlYWRvbmx5IGlzRW1wdHk6IGJvb2xlYW4sXG4gICAgcHVibGljIHJlYWRvbmx5IGlzTG9hZGluZzogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG90YWw6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzOiBEYXRhQ29udGV4dFN0YXR1c1xuICApIHsgfVxufVxuXG4vKipcbiAqIE1hbmFnZXMgYSBzZXQgb2YgZGF0YSAocm93cykgd2hpY2ggYXJlIHRvIGJlIGRpc3BsYXllZCBpbiBhIFVJIENvbXBvbmVudC5cbiAqXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFDb250ZXh0PFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogR2V0cyB0aGUgdW5kZXJseWluZyBEYXRhU291cmNlIG9mIHRoaXMgRGF0YUNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBkYXRhU291cmNlOiBJRGF0YVNvdXJjZTxUPjtcblxuICAvKipcbiAgICogR2V0cyBhIHNuYXBzaG90IG9mIHRoZSBjdXJyZW50IHN0YXRlIGluIHRoaXMgZGF0YS1jb250ZXh0XG4gICAqL1xuICByZWFkb25seSBzbmFwc2hvdDogRGF0YUNvbnRleHRTbmFwc2hvdDxUPjtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB0aGUgY3VycmVudCBkYXRhIG92ZXIgdGltZS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGE6IE9ic2VydmFibGU8VFtdPjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBjb250ZXh0IGN1cnJlbnRseSBob2xkcyBubyBkYXRhXG4gICAqL1xuICByZWFkb25seSBpc0VtcHR5OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbnRleHQgaGFzIGJlZW4gc3RhcnRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzU3RhcnRlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBjb250ZXh0IGhhcyBiZWVuIHN0YXJ0ZWQuXG4gICAqL1xuICByZWFkb25seSBpc1N0YXJ0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbnRleHQgaGFzIGJlZW4gY2xvc2VkLlxuICAgKiBEZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uLCByZXN0YXJ0aW5nIG1pZ2h0IG5vdCBiZSBwb3NzaWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGlzQ2xvc2VkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgZGF0YSBpcyBsb2FkaW5nIG92ZXIgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZGluZzogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKipcbiAgICogVGhlIHRvdGFsIGNvdW50IG9mIGFsbCBlbGVtZW50cyBvdmVyIHRpbWVcbiAgICogKEkuZS4gdGhlIGV4cGVjdGVkIGNvdW50IHdoZW4gdGhlIGRhdGEgY29udGV4IGlzIGNvbXBsZXRlZClcbiAgICovXG4gIHJlYWRvbmx5IHRvdGFsOiBPYnNlcnZhYmxlPG51bWJlciB8IHVuZGVmaW5lZD47XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgd2hpY2ggZW1pdHMgd2hlbiB0aGUgc3RhdHVzIGNoYW5nZXMgKGkuZS4gZXJyb3IpXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM6IE9ic2VydmFibGU8RGF0YUNvbnRleHRTdGF0dXM+O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzb3J0IGNvbnRleHQuIENoYW5nZXMgaW4gdGhpcyBjb250ZXh0IGFyZSByZWZsZWN0ZWQgYnkgdGhlIGRhdGEtY29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IHNvcnQ6IFNvcnRDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBmaWx0ZXIgY29udGV4dC4gQ2hhbmdlcyBpbiB0aGlzIGNvbnRleHQgYXJlIHJlZmxlY3RlZCBieSB0aGUgZGF0YS1jb250ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyOiBGaWx0ZXJDb250ZXh0O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBTdGFydHMgcG9wdWxhdGluZyBkYXRhIGNvbnRleHQgYnkgbG9hZGluZyBmaXJzdFxuICAgKiBiYXRjaCBvZiBkYXRhLlxuICAgKi9cbiAgc3RhcnQoc29ydHM/OiBTb3J0W10sIGZpbHRlcnM/OiBGaWx0ZXJbXSk6IE9ic2VydmFibGU8YW55PjtcblxuICAvKipcbiAgICogUmVxdWVzdHMgYSByZWxvYWQgb2YgdGhlIGN1cnJlbnQgZGF0YSAvIGNodW5rLlxuICAgKiBBdHRlbXB0cyB0byBrZWVwIHRoZSBjdXJyZW50IHBvc2l0aW9uLlxuICAgKi9cbiAgcmVsb2FkKCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggdGhlIGRhdGEgdmlldyBmcm9tIHRoZSBsb2NhbCBkYXRhIG1vZGVsLiAoRG9lcyBub3QgcmVxdWVzdCBuZXcgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIpXG4gICAqIFVzZWZ1bCBpZiB0aGUgZGF0YSBtb2RlbCBoYXMgY2hhbmdlcyB0aGF0IG5lZWQgdG8gYmUgcmVmbGVjdGVkIGluIHRoZSBVSS5cbiAgICovXG4gIHJlZnJlc2goKTogdm9pZDtcblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBkYXRhLWNvbnRleHQgYW5kIGNsZWFucyB1cCByZXNvdXJjZXNcbiAgICovXG4gIGNsb3NlKCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGl0ZW0gYnkgYSBjdXN0b20gaW5kZXgga2V5LlxuICAgKiBSZXF1aXJlcyB0aGF0IGN1c3RvbSBpbmRleCBmdW5jdGlvbmFsaXR5IGlzIGVuYWJsZWQuXG4gICAqXG4gICAqIEZvciBpZCBiYXNlZCBsb29rdXAsIHJlZmVyIHRvIGZpbmRCeUlkKCkuXG4gICAqXG4gICAqIEBwYXJhbSBrZXlcbiAgICovXG4gIGZpbmRCeUluZGV4KGtleTogYW55KTogVCB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogTG9va3VwIGFuIGVudGl0eSBieSBpdHMgaWQuIFRoaXMgbWV0aG9kIGlzIGd1YXJhbnRlZWQgdG8gYmUgYmFja2VkIGJ5IGEgZmFzdCBpbmRleC5cbiAgICogQHBhcmFtIGlkIFRoZSBFbnRpdHkgSWQuXG4gICAqL1xuICBmaW5kQnlJZChpZDogYW55KTogVCB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBnaXZlbiBlbnRpdGllcyBpbiB0aGlzIGRhdGEtY29udGV4dFxuICAgKi9cbiAgdXBkYXRlKGVudGl0aWVzOiBUW10pOiB2b2lkO1xuXG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGRhdGEtY29udGV4dCB3aGljaCBiYWNrcyBhIGluZmluaXRlIGxpa2UgZGF0YSBzdHJlYW1cbiAqIHdoZXJlIG1vcmUgZGF0YSB3aWxsIGJlIGxvYWRlZCBhbmQgYWRkZWQgdG8gdGhlIGJhY2tpbmcgcm93cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGF0YUNvbnRleHRDb250aW51YWJsZTxUPiBleHRlbmRzIElEYXRhQ29udGV4dDxUPiB7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGRhdGEtY29udGV4dCBjYW4gbG9hZCBtb3JlIGRhdGFcbiAgICovXG4gIHJlYWRvbmx5IGhhc01vcmVEYXRhU25hcHNob3Q6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGRhdGEtY29udGV4dCBjYW4gbG9hZCBtb3JlIGRhdGEgb3ZlciB0aW1lXG4gICAqL1xuICByZWFkb25seSBoYXNNb3JlRGF0YTogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKipcbiAgICogTG9hZHMgbW9yZSBkYXRhIGlmIGFueSBhdmFpbGFibGUuXG4gICAqIEUuZy4gbmV4dCBwYWdlLlxuICAgKlxuICAgKi9cbiAgbG9hZE1vcmUoKTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBMb2FkcyBhbGwgYXZhaWxhYmxlIGRhdGEuIEluIGNhc2Ugb2ZcbiAgICogcGFnZWQgY29udGV4dCBsb2FkcyBwYWdlIGJ5IHBhZ2UgdW50aWwgZmluaXNoZWQuXG4gICAqL1xuICBsb2FkQWxsKHNvcnRzPzogU29ydFtdLCBmaWx0ZXJzPzogRmlsdGVyW10pOiB2b2lkO1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiBleHRlbmRzIElEYXRhQ29udGV4dDxUPiB7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGFjdGl2ZSBwYWdlIG92ZXIgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgcGFnZTogT2JzZXJ2YWJsZTxQYWdlUmVxdWVzdD47XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgYWN0aXZlIHBhZ2VcbiAgICovXG4gIHJlYWRvbmx5IHBhZ2VTbmFwc2hvdDogUGFnZVJlcXVlc3Q7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjdGl2ZSBwYWdlXG4gICAqL1xuICBzZXRBY3RpdmVQYWdlKHBhZ2U6IFBhZ2VSZXF1ZXN0KTogdm9pZDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICogVHlwZSBQcmVkaWNhdGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRhQ29udGV4dChvYmplY3Q6IGFueSk6IG9iamVjdCBpcyBJRGF0YUNvbnRleHQ8YW55PiB7XG5cbiAgaWYgKCFvYmplY3QpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgcmV0dXJuIChvYmplY3QgYXMgSURhdGFDb250ZXh0PGFueT4pLmRhdGEgIT09IHVuZGVmaW5lZFxuICAgICYmIChvYmplY3QgYXMgSURhdGFDb250ZXh0PGFueT4pLnN0YXJ0ICE9PSB1bmRlZmluZWRcbiAgICAmJiAob2JqZWN0IGFzIElEYXRhQ29udGV4dDxhbnk+KS5yZWxvYWQgIT09IHVuZGVmaW5lZFxuICAgICYmIChvYmplY3QgYXMgSURhdGFDb250ZXh0PGFueT4pLnJlZnJlc2ggIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGludWFibGVEYXRhQ29udGV4dChvYmplY3Q6IElEYXRhQ29udGV4dDxhbnk+KTogb2JqZWN0IGlzIElEYXRhQ29udGV4dENvbnRpbnVhYmxlPGFueT4ge1xuICByZXR1cm4gKG9iamVjdCBhcyBJRGF0YUNvbnRleHRDb250aW51YWJsZTxhbnk+KS5sb2FkTW9yZSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBY3RpdmVQYWdlZERhdGFDb250ZXh0KG9iamVjdDogSURhdGFDb250ZXh0PGFueT4pOiBvYmplY3QgaXMgSURhdGFDb250ZXh0QWN0aXZlUGFnZTxhbnk+IHtcbiAgcmV0dXJuIChvYmplY3QgYXMgSURhdGFDb250ZXh0QWN0aXZlUGFnZTxhbnk+KS5zZXRBY3RpdmVQYWdlICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQ2tCLElBQVMsRUFDVCxPQUFnQixFQUNoQixTQUFrQixFQUNsQixLQUF5QixFQUN6QixNQUF5QjtRQUp6QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ1QsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFTO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBQ3pCLFdBQU0sR0FBTixNQUFNLENBQW1CO0lBQ3ZDLENBQUM7Q0FDTjtBQWlMRDs7Ozs0RUFJNEU7QUFFNUUsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFXO0lBRXZDLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFBRSxPQUFPLEtBQUssQ0FBQztLQUFFO0lBRTlCLE9BQVEsTUFBNEIsQ0FBQyxJQUFJLEtBQUssU0FBUztXQUNqRCxNQUE0QixDQUFDLEtBQUssS0FBSyxTQUFTO1dBQ2hELE1BQTRCLENBQUMsTUFBTSxLQUFLLFNBQVM7V0FDakQsTUFBNEIsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO0FBQzNELENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsTUFBeUI7SUFDaEUsT0FBUSxNQUF1QyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUM7QUFDekUsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxNQUF5QjtJQUNoRSxPQUFRLE1BQXNDLENBQUMsYUFBYSxLQUFLLFNBQVMsQ0FBQztBQUM3RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhQ29udGV4dFN0YXR1c30gZnJvbSAnLi9kYXRhLWNvbnRleHQtc3RhdHVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uL3NvcnQnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uL2ZpbHRlcnMvZmlsdGVyJztcbmltcG9ydCB7RmlsdGVyQ29udGV4dH0gZnJvbSAnLi4vZmlsdGVycy9maWx0ZXItY29udGV4dCc7XG5pbXBvcnQge1BhZ2VSZXF1ZXN0fSBmcm9tICcuLi9wYWdlJztcbmltcG9ydCB7U29ydENvbnRleHR9IGZyb20gJy4uL3NvcnQtY29udGV4dCc7XG5pbXBvcnQge0lEYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJztcblxuXG5leHBvcnQgY2xhc3MgRGF0YUNvbnRleHRTbmFwc2hvdDxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBkYXRhOiBUW10sXG4gICAgcHVibGljIHJlYWRvbmx5IGlzRW1wdHk6IGJvb2xlYW4sXG4gICAgcHVibGljIHJlYWRvbmx5IGlzTG9hZGluZzogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG90YWw6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzOiBEYXRhQ29udGV4dFN0YXR1c1xuICApIHsgfVxufVxuXG4vKipcbiAqIE1hbmFnZXMgYSBzZXQgb2YgZGF0YSAocm93cykgd2hpY2ggYXJlIHRvIGJlIGRpc3BsYXllZCBpbiBhIFVJIENvbXBvbmVudC5cbiAqXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFDb250ZXh0PFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogR2V0cyB0aGUgdW5kZXJseWluZyBEYXRhU291cmNlIG9mIHRoaXMgRGF0YUNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBkYXRhU291cmNlOiBJRGF0YVNvdXJjZTxUPjtcblxuICAvKipcbiAgICogR2V0cyBhIHNuYXBzaG90IG9mIHRoZSBjdXJyZW50IHN0YXRlIGluIHRoaXMgZGF0YS1jb250ZXh0XG4gICAqL1xuICByZWFkb25seSBzbmFwc2hvdDogRGF0YUNvbnRleHRTbmFwc2hvdDxUPjtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB0aGUgY3VycmVudCBkYXRhIG92ZXIgdGltZS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGE6IE9ic2VydmFibGU8VFtdPjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBjb250ZXh0IGN1cnJlbnRseSBob2xkcyBubyBkYXRhXG4gICAqL1xuICByZWFkb25seSBpc0VtcHR5OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbnRleHQgaGFzIGJlZW4gc3RhcnRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzU3RhcnRlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBjb250ZXh0IGhhcyBiZWVuIHN0YXJ0ZWQuXG4gICAqL1xuICByZWFkb25seSBpc1N0YXJ0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbnRleHQgaGFzIGJlZW4gY2xvc2VkLlxuICAgKiBEZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uLCByZXN0YXJ0aW5nIG1pZ2h0IG5vdCBiZSBwb3NzaWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGlzQ2xvc2VkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgZGF0YSBpcyBsb2FkaW5nIG92ZXIgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZGluZzogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKipcbiAgICogVGhlIHRvdGFsIGNvdW50IG9mIGFsbCBlbGVtZW50cyBvdmVyIHRpbWVcbiAgICogKEkuZS4gdGhlIGV4cGVjdGVkIGNvdW50IHdoZW4gdGhlIGRhdGEgY29udGV4dCBpcyBjb21wbGV0ZWQpXG4gICAqL1xuICByZWFkb25seSB0b3RhbDogT2JzZXJ2YWJsZTxudW1iZXIgfCB1bmRlZmluZWQ+O1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHdoaWNoIGVtaXRzIHdoZW4gdGhlIHN0YXR1cyBjaGFuZ2VzIChpLmUuIGVycm9yKVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzOiBPYnNlcnZhYmxlPERhdGFDb250ZXh0U3RhdHVzPjtcblxuICAvKipcbiAgICogR2V0cyB0aGUgc29ydCBjb250ZXh0LiBDaGFuZ2VzIGluIHRoaXMgY29udGV4dCBhcmUgcmVmbGVjdGVkIGJ5IHRoZSBkYXRhLWNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBzb3J0OiBTb3J0Q29udGV4dDtcblxuICAvKipcbiAgICogR2V0cyB0aGUgZmlsdGVyIGNvbnRleHQuIENoYW5nZXMgaW4gdGhpcyBjb250ZXh0IGFyZSByZWZsZWN0ZWQgYnkgdGhlIGRhdGEtY29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IGZpbHRlcjogRmlsdGVyQ29udGV4dDtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogU3RhcnRzIHBvcHVsYXRpbmcgZGF0YSBjb250ZXh0IGJ5IGxvYWRpbmcgZmlyc3RcbiAgICogYmF0Y2ggb2YgZGF0YS5cbiAgICovXG4gIHN0YXJ0KHNvcnRzPzogU29ydFtdLCBmaWx0ZXJzPzogRmlsdGVyW10pOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgLyoqXG4gICAqIFJlcXVlc3RzIGEgcmVsb2FkIG9mIHRoZSBjdXJyZW50IGRhdGEgLyBjaHVuay5cbiAgICogQXR0ZW1wdHMgdG8ga2VlcCB0aGUgY3VycmVudCBwb3NpdGlvbi5cbiAgICovXG4gIHJlbG9hZCgpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWZyZXNoIHRoZSBkYXRhIHZpZXcgZnJvbSB0aGUgbG9jYWwgZGF0YSBtb2RlbC4gKERvZXMgbm90IHJlcXVlc3QgbmV3IGRhdGEgZnJvbSB0aGUgc2VydmVyKVxuICAgKiBVc2VmdWwgaWYgdGhlIGRhdGEgbW9kZWwgaGFzIGNoYW5nZXMgdGhhdCBuZWVkIHRvIGJlIHJlZmxlY3RlZCBpbiB0aGUgVUkuXG4gICAqL1xuICByZWZyZXNoKCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgZGF0YS1jb250ZXh0IGFuZCBjbGVhbnMgdXAgcmVzb3VyY2VzXG4gICAqL1xuICBjbG9zZSgpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBpdGVtIGJ5IGEgY3VzdG9tIGluZGV4IGtleS5cbiAgICogUmVxdWlyZXMgdGhhdCBjdXN0b20gaW5kZXggZnVuY3Rpb25hbGl0eSBpcyBlbmFibGVkLlxuICAgKlxuICAgKiBGb3IgaWQgYmFzZWQgbG9va3VwLCByZWZlciB0byBmaW5kQnlJZCgpLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5XG4gICAqL1xuICBmaW5kQnlJbmRleChrZXk6IGFueSk6IFQgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIExvb2t1cCBhbiBlbnRpdHkgYnkgaXRzIGlkLiBUaGlzIG1ldGhvZCBpcyBndWFyYW50ZWVkIHRvIGJlIGJhY2tlZCBieSBhIGZhc3QgaW5kZXguXG4gICAqIEBwYXJhbSBpZCBUaGUgRW50aXR5IElkLlxuICAgKi9cbiAgZmluZEJ5SWQoaWQ6IGFueSk6IFQgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgZ2l2ZW4gZW50aXRpZXMgaW4gdGhpcyBkYXRhLWNvbnRleHRcbiAgICovXG4gIHVwZGF0ZShlbnRpdGllczogVFtdKTogdm9pZDtcblxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBkYXRhLWNvbnRleHQgd2hpY2ggYmFja3MgYSBpbmZpbml0ZSBsaWtlIGRhdGEgc3RyZWFtXG4gKiB3aGVyZSBtb3JlIGRhdGEgd2lsbCBiZSBsb2FkZWQgYW5kIGFkZGVkIHRvIHRoZSBiYWNraW5nIHJvd3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFDb250ZXh0Q29udGludWFibGU8VD4gZXh0ZW5kcyBJRGF0YUNvbnRleHQ8VD4ge1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBkYXRhLWNvbnRleHQgY2FuIGxvYWQgbW9yZSBkYXRhXG4gICAqL1xuICByZWFkb25seSBoYXNNb3JlRGF0YVNuYXBzaG90OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBkYXRhLWNvbnRleHQgY2FuIGxvYWQgbW9yZSBkYXRhIG92ZXIgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgaGFzTW9yZURhdGE6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIExvYWRzIG1vcmUgZGF0YSBpZiBhbnkgYXZhaWxhYmxlLlxuICAgKiBFLmcuIG5leHQgcGFnZS5cbiAgICpcbiAgICovXG4gIGxvYWRNb3JlKCk6IE9ic2VydmFibGU8YW55PjtcblxuICAvKipcbiAgICogTG9hZHMgYWxsIGF2YWlsYWJsZSBkYXRhLiBJbiBjYXNlIG9mXG4gICAqIHBhZ2VkIGNvbnRleHQgbG9hZHMgcGFnZSBieSBwYWdlIHVudGlsIGZpbmlzaGVkLlxuICAgKi9cbiAgbG9hZEFsbChzb3J0cz86IFNvcnRbXSwgZmlsdGVycz86IEZpbHRlcltdKTogdm9pZDtcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4gZXh0ZW5kcyBJRGF0YUNvbnRleHQ8VD4ge1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBhY3RpdmUgcGFnZSBvdmVyIHRpbWVcbiAgICovXG4gIHJlYWRvbmx5IHBhZ2U6IE9ic2VydmFibGU8UGFnZVJlcXVlc3Q+O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGFjdGl2ZSBwYWdlXG4gICAqL1xuICByZWFkb25seSBwYWdlU25hcHNob3Q6IFBhZ2VSZXF1ZXN0O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY3RpdmUgcGFnZVxuICAgKi9cbiAgc2V0QWN0aXZlUGFnZShwYWdlOiBQYWdlUmVxdWVzdCk6IHZvaWQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAqIFR5cGUgUHJlZGljYXRlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YUNvbnRleHQob2JqZWN0OiBhbnkpOiBvYmplY3QgaXMgSURhdGFDb250ZXh0PGFueT4ge1xuXG4gIGlmICghb2JqZWN0KSB7IHJldHVybiBmYWxzZTsgfVxuXG4gIHJldHVybiAob2JqZWN0IGFzIElEYXRhQ29udGV4dDxhbnk+KS5kYXRhICE9PSB1bmRlZmluZWRcbiAgICAmJiAob2JqZWN0IGFzIElEYXRhQ29udGV4dDxhbnk+KS5zdGFydCAhPT0gdW5kZWZpbmVkXG4gICAgJiYgKG9iamVjdCBhcyBJRGF0YUNvbnRleHQ8YW55PikucmVsb2FkICE9PSB1bmRlZmluZWRcbiAgICAmJiAob2JqZWN0IGFzIElEYXRhQ29udGV4dDxhbnk+KS5yZWZyZXNoICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRpbnVhYmxlRGF0YUNvbnRleHQob2JqZWN0OiBJRGF0YUNvbnRleHQ8YW55Pik6IG9iamVjdCBpcyBJRGF0YUNvbnRleHRDb250aW51YWJsZTxhbnk+IHtcbiAgcmV0dXJuIChvYmplY3QgYXMgSURhdGFDb250ZXh0Q29udGludWFibGU8YW55PikubG9hZE1vcmUgIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWN0aXZlUGFnZWREYXRhQ29udGV4dChvYmplY3Q6IElEYXRhQ29udGV4dDxhbnk+KTogb2JqZWN0IGlzIElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8YW55PiB7XG4gIHJldHVybiAob2JqZWN0IGFzIElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8YW55Pikuc2V0QWN0aXZlUGFnZSAhPT0gdW5kZWZpbmVkO1xufVxuIl19
@@ -1,5 +1,4 @@
1
1
  import { BehaviorSubject } from 'rxjs';
2
- import { SortContext } from '../sort-context';
3
2
  import { LoggerFactory } from '@elderbyte/ts-logger';
4
3
  export class IndexedEntities {
5
4
  /***************************************************************************
@@ -7,7 +6,7 @@ export class IndexedEntities {
7
6
  * Constructor *
8
7
  * *
9
8
  **************************************************************************/
10
- constructor(idFn, localSortFn, sortContext = new SortContext()) {
9
+ constructor(idFn, localSortFn, sortContext) {
11
10
  this.idFn = idFn;
12
11
  this.localSortFn = localSortFn;
13
12
  this.sortContext = sortContext;
@@ -140,4 +139,4 @@ export class IndexedEntities {
140
139
  }
141
140
  }
142
141
  }
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZC1lbnRpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9pbmRleGVkLWVudGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFFakQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxNQUFNLE9BQU8sZUFBZTtJQWExQjs7OztnRkFJNEU7SUFFNUUsWUFDbUIsSUFBbUIsRUFDbkIsV0FBNEQsRUFDNUQsY0FBYyxJQUFJLFdBQVcsRUFBRTtRQUYvQixTQUFJLEdBQUosSUFBSSxDQUFlO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFpRDtRQUM1RCxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFwQmxEOzs7O29GQUk0RTtRQUUzRCxRQUFHLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRWpELGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUMxQyxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7SUFZdEQsQ0FBQztJQUVMOzs7O2dGQUk0RTtJQUU1RSxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RTs7O09BR0c7SUFDSSxVQUFVLENBQUMsY0FBbUIsRUFBRTtRQUNyQyxJQUFJLElBQUks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LENBQUM7SUFDaEMsQ0FBQztJQUVPLFdBQVcsQ0FBQyxRQUFhLEVBQUUsVUFBa0I7UUFDbkQsS0FBSyxJQUFJLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDckQ7U0FDRjtJQUNILENBQUM7SUFFTyxTQUFTLENBQUMsRUFBTztRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyxTQUFTLENBQUMsSUFBTztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxRQUFhO1FBQy9CLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDbEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNoQztJQUNILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vc29ydCc7XG5pbXBvcnQge1NvcnRDb250ZXh0fSBmcm9tICcuLi9zb3J0LWNvbnRleHQnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5cbmV4cG9ydCBjbGFzcyBJbmRleGVkRW50aXRpZXM8VCwgVElkPWFueT4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoJ0luZGV4ZWRFbnRpdGllcycpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2VudGl0aWVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFtdPihbXSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2lkVG9BcnJheUluZGV4ID0gbmV3IE1hcDxUSWQsIG51bWJlcj4oKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlkRm46IChlOiBUKSA9PiBUSWQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2NhbFNvcnRGbjogKChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXSkgfCB1bmRlZmluZWQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3J0Q29udGV4dCA9IG5ldyBTb3J0Q29udGV4dCgpXG4gICkgeyB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBlbnRpdGllcyQoKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXRpZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBlbnRpdGllc1NuYXBzaG90KCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0aWVzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCBleGlzdGluZyBlbnRpdGllcyB3aXRoIHRoZSBuZXcgb25lcy5cbiAgICogVGhlIGluZGV4IGlzIHJlYnVpbHQuIE8obilcbiAgICovXG4gIHB1YmxpYyByZXBsYWNlQWxsKG5ld0VudGl0aWVzOiBUW10gPSBbXSkge1xuICAgIGlmICh0aGlzLmxvY2FsU29ydEZuKSB7XG4gICAgICBuZXdFbnRpdGllcyA9IHRoaXMubG9jYWxTb3J0Rm4obmV3RW50aXRpZXMsIHRoaXMuc29ydENvbnRleHQuc29ydHNTbmFwc2hvdCk7XG4gICAgfVxuICAgIHRoaXMucmVidWlsZEluZGV4KG5ld0VudGl0aWVzKTtcbiAgICB0aGlzLnNldEVudGl0aWVzKG5ld0VudGl0aWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBLZWVwcyBhbGwgZXhpc3RpbmcgZW50aXRpZXMsIGJ1dCByZXBsYWNlcyB0aG9zZSB3aGljaCBhcmUgdXBkYXRlZCB3aXRoIHRoZSBuZXcgZGF0YS5cbiAgICogUHJvdmlkZWQgdXBkYXRlZCBlbnRpdGllcyB3aGljaCBhcmUgY3VycmVudGx5IG5vdCBpbiB0aGlzIGluZGV4IGFyZSBpZ25vcmVkLlxuICAgKiBAcGFyYW0gdXBkYXRlZFxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVNvbWUodXBkYXRlZDogVFtdKSB7XG4gICAgY29uc3QgbmV3RGF0YSA9IFsuLi50aGlzLmVudGl0aWVzU25hcHNob3RdO1xuICAgIHVwZGF0ZWQuZm9yRWFjaChcbiAgICAgIHVwZGF0ZSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5nZXRJdGVtSWQodXBkYXRlKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmluZGV4QnlJZChpZCk7XG4gICAgICAgIGlmIChpbmRleCAhPSAtMSkge1xuICAgICAgICAgIG5ld0RhdGFbaW5kZXhdID0gdXBkYXRlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnNldEVudGl0aWVzKG5ld0RhdGEpO1xuICB9XG5cblxuICBwdWJsaWMgYXBwZW5kKGFwcGVuZDogVFtdKTogdm9pZCB7XG4gICAgdGhpcy5pbnNlcnQoYXBwZW5kLCB0aGlzLmVudGl0aWVzU25hcHNob3QubGVuZ3RoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmRzIHRoZSBnaXZlbiBlbnRpdGllcyB0byB0aGlzIGluZGV4LlxuICAgKiBUaGUgbmV3IGFwcGVuZGVkIGVudGl0aWVzIGFyZSBpbmNsdWRlZCBpbiB0aGUgaW5kZXguXG4gICAqIE8obikgd2hlcmUgbiA9IG51bWJlciBvZiBhcHBlbmRlZCBlbnRpdGllc1xuICAgKiBAcGFyYW0gaW5zZXJ0ZWRcbiAgICogQHBhcmFtIG9mZnNldFxuICAgKi9cbiAgcHVibGljIGluc2VydChpbnNlcnRlZDogVFtdLCBvZmZzZXQ6IG51bWJlcik6IHZvaWQge1xuICAgIGlmIChpbnNlcnRlZCAmJiBpbnNlcnRlZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBlbnRpdGllcyA9IHRoaXMuZW50aXRpZXNTbmFwc2hvdDtcbiAgICAgIGNvbnN0IG5ld0RhdGEgPSBbLi4uZW50aXRpZXNdO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGluc2VydGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIG5ld0RhdGFbaSArIG9mZnNldF0gPSBpbnNlcnRlZFtpXTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubG9jYWxTb3J0Rm4pIHtcbiAgICAgICAgLy8gbG9jYWwgc29ydCBjYW4gcmUtb3JkZXIgYWxsIGl0ZW1zXG4gICAgICAgIHRoaXMucmVwbGFjZUFsbChuZXdEYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdpdGhvdXQgYSBzb3J0LCB3ZSBjYW4gb3B0aW1pemUgaW5kZXhpbmdcbiAgICAgICAgdGhpcy5yZUluZGV4RnJvbShuZXdEYXRhLCBvZmZzZXQpO1xuICAgICAgICB0aGlzLnNldEVudGl0aWVzKG5ld0RhdGEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb29rdXAgYW4gZW50aXR5IGJ5IGl0cyBpZC5cbiAgICogVGhpcyB3aWxsIHVzZSBhbiBpbmRleCBPKDEpXG4gICAqIEBwYXJhbSBpZFxuICAgKi9cbiAgcHVibGljIGdldEJ5SWQoaWQ6IFRJZCk6IFQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGVudGl0aWVzID0gdGhpcy5lbnRpdGllc1NuYXBzaG90O1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbmRleEJ5SWQoaWQpO1xuICAgIGlmIChpbmRleCAhPSAtMSkge1xuICAgICAgcmV0dXJuIGVudGl0aWVzW2luZGV4XTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbm90aWZ5KCk6IHZvaWQge1xuICAgIHRoaXMuX2VudGl0aWVzJC5uZXh0KFxuICAgICAgdGhpcy5fZW50aXRpZXMkLmdldFZhbHVlKClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZW50aXRpZXMkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5faWRUb0FycmF5SW5kZXguY2xlYXIoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVidWlsZEluZGV4KGVudGl0aWVzOiBUW10pOiB2b2lkIHtcbiAgICB0aGlzLl9pZFRvQXJyYXlJbmRleC5jbGVhcigpO1xuICAgIHRoaXMucmVJbmRleEZyb20oZW50aXRpZXMsIDApO1xuICB9XG5cbiAgcHJpdmF0ZSByZUluZGV4RnJvbShlbnRpdGllczogVFtdLCBzdGFydEluZGV4OiBudW1iZXIpIHtcbiAgICBmb3IgKGxldCBpID0gc3RhcnRJbmRleDsgaSA8IGVudGl0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlbnRpdHkgPSBlbnRpdGllc1tpXTtcbiAgICAgIGlmIChlbnRpdHkpIHtcbiAgICAgICAgdGhpcy5faWRUb0FycmF5SW5kZXguc2V0KHRoaXMuZ2V0SXRlbUlkKGVudGl0eSksIGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5kZXhCeUlkKGlkOiBUSWQpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9pZFRvQXJyYXlJbmRleC5nZXQoaWQpID8/IC0xO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJdGVtSWQoaXRlbTogVCk6IFRJZCB7XG4gICAgcmV0dXJuIHRoaXMuaWRGbihpdGVtKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RW50aXRpZXMoZW50aXRpZXM6IFRbXSk6IHZvaWQge1xuICAgIGlmICghKHRoaXMuZW50aXRpZXNTbmFwc2hvdC5sZW5ndGggPT09IDAgJiYgZW50aXRpZXMubGVuZ3RoID09PSAwKSkge1xuICAgICAgdGhpcy5sb2cuZGVidWcoJ0VudGl0aWVzIGNoYW5nZWQ6ICcgKyBlbnRpdGllcy5sZW5ndGgsIGVudGl0aWVzKTtcbiAgICAgIHRoaXMuX2VudGl0aWVzJC5uZXh0KGVudGl0aWVzKTtcbiAgICB9XG4gIH1cblxufVxuIl19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZC1lbnRpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9pbmRleGVkLWVudGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFHakQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxlQUFlO0lBYTFCOzs7O2dGQUk0RTtJQUU1RSxZQUNtQixJQUFtQixFQUNuQixXQUE0RCxFQUM1RCxXQUF3QjtRQUZ4QixTQUFJLEdBQUosSUFBSSxDQUFlO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFpRDtRQUM1RCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXBCM0M7Ozs7b0ZBSTRFO1FBRTNELFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFakQsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztJQVl0RCxDQUFDO0lBRUw7Ozs7Z0ZBSTRFO0lBRTVFLElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxjQUFtQixFQUFFO1FBQ3JDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVB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LElBQUksQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNyRDtTQUNGO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxFQUFPO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxJQUFPO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU8sV0FBVyxDQUFDLFFBQWE7UUFDL0IsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNsRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtTb3J0fSBmcm9tICcuLi9zb3J0JztcbmltcG9ydCB7U29ydENvbnRleHR9IGZyb20gJy4uL3NvcnQtY29udGV4dCc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcblxuZXhwb3J0IGNsYXNzIEluZGV4ZWRFbnRpdGllczxULCBUSWQ9YW55PiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcignSW5kZXhlZEVudGl0aWVzJyk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZW50aXRpZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaWRUb0FycmF5SW5kZXggPSBuZXcgTWFwPFRJZCwgbnVtYmVyPigpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWRGbjogKGU6IFQpID0+IFRJZCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsU29ydEZuOiAoKGRhdGE6IFRbXSwgc29ydHM6IFNvcnRbXSkgPT4gVFtdKSB8IHVuZGVmaW5lZCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNvcnRDb250ZXh0OiBTb3J0Q29udGV4dFxuICApIHsgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZW50aXRpZXMkKCk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0aWVzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW50aXRpZXNTbmFwc2hvdCgpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdGllcyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyBhbGwgZXhpc3RpbmcgZW50aXRpZXMgd2l0aCB0aGUgbmV3IG9uZXMuXG4gICAqIFRoZSBpbmRleCBpcyByZWJ1aWx0LiBPKG4pXG4gICAqL1xuICBwdWJsaWMgcmVwbGFjZUFsbChuZXdFbnRpdGllczogVFtdID0gW10pIHtcbiAgICBpZiAodGhpcy5sb2NhbFNvcnRGbikge1xuICAgICAgbmV3RW50aXRpZXMgPSB0aGlzLmxvY2FsU29ydEZuKG5ld0VudGl0aWVzLCB0aGlzLnNvcnRDb250ZXh0LnNvcnRzU25hcHNob3QpO1xuICAgIH1cbiAgICB0aGlzLnJlYnVpbGRJbmRleChuZXdFbnRpdGllcyk7XG4gICAgdGhpcy5zZXRFbnRpdGllcyhuZXdFbnRpdGllcyk7XG4gIH1cblxuICAvKipcbiAgICogS2VlcHMgYWxsIGV4aXN0aW5nIGVudGl0aWVzLCBidXQgcmVwbGFjZXMgdGhvc2Ugd2hpY2ggYXJlIHVwZGF0ZWQgd2l0aCB0aGUgbmV3IGRhdGEuXG4gICAqIFByb3ZpZGVkIHVwZGF0ZWQgZW50aXRpZXMgd2hpY2ggYXJlIGN1cnJlbnRseSBub3QgaW4gdGhpcyBpbmRleCBhcmUgaWdub3JlZC5cbiAgICogQHBhcmFtIHVwZGF0ZWRcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVTb21lKHVwZGF0ZWQ6IFRbXSkge1xuICAgIGNvbnN0IG5ld0RhdGEgPSBbLi4udGhpcy5lbnRpdGllc1NuYXBzaG90XTtcbiAgICB1cGRhdGVkLmZvckVhY2goXG4gICAgICB1cGRhdGUgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IHRoaXMuZ2V0SXRlbUlkKHVwZGF0ZSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbmRleEJ5SWQoaWQpO1xuICAgICAgICBpZiAoaW5kZXggIT0gLTEpIHtcbiAgICAgICAgICBuZXdEYXRhW2luZGV4XSA9IHVwZGF0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5zZXRFbnRpdGllcyhuZXdEYXRhKTtcbiAgfVxuXG5cbiAgcHVibGljIGFwcGVuZChhcHBlbmQ6IFRbXSk6IHZvaWQge1xuICAgIHRoaXMuaW5zZXJ0KGFwcGVuZCwgdGhpcy5lbnRpdGllc1NuYXBzaG90Lmxlbmd0aCk7XG4gIH1cblxuICAvKipcbiAgICogQXBwZW5kcyB0aGUgZ2l2ZW4gZW50aXRpZXMgdG8gdGhpcyBpbmRleC5cbiAgICogVGhlIG5ldyBhcHBlbmRlZCBlbnRpdGllcyBhcmUgaW5jbHVkZWQgaW4gdGhlIGluZGV4LlxuICAgKiBPKG4pIHdoZXJlIG4gPSBudW1iZXIgb2YgYXBwZW5kZWQgZW50aXRpZXNcbiAgICogQHBhcmFtIGluc2VydGVkXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICovXG4gIHB1YmxpYyBpbnNlcnQoaW5zZXJ0ZWQ6IFRbXSwgb2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoaW5zZXJ0ZWQgJiYgaW5zZXJ0ZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZW50aXRpZXMgPSB0aGlzLmVudGl0aWVzU25hcHNob3Q7XG4gICAgICBjb25zdCBuZXdEYXRhID0gWy4uLmVudGl0aWVzXTtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnNlcnRlZC5sZW5ndGg7IGkrKykge1xuICAgICAgICBuZXdEYXRhW2kgKyBvZmZzZXRdID0gaW5zZXJ0ZWRbaV07XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmxvY2FsU29ydEZuKSB7XG4gICAgICAgIC8vIGxvY2FsIHNvcnQgY2FuIHJlLW9yZGVyIGFsbCBpdGVtc1xuICAgICAgICB0aGlzLnJlcGxhY2VBbGwobmV3RGF0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXaXRob3V0IGEgc29ydCwgd2UgY2FuIG9wdGltaXplIGluZGV4aW5nXG4gICAgICAgIHRoaXMucmVJbmRleEZyb20obmV3RGF0YSwgb2Zmc2V0KTtcbiAgICAgICAgdGhpcy5zZXRFbnRpdGllcyhuZXdEYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9va3VwIGFuIGVudGl0eSBieSBpdHMgaWQuXG4gICAqIFRoaXMgd2lsbCB1c2UgYW4gaW5kZXggTygxKVxuICAgKiBAcGFyYW0gaWRcbiAgICovXG4gIHB1YmxpYyBnZXRCeUlkKGlkOiBUSWQpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBlbnRpdGllcyA9IHRoaXMuZW50aXRpZXNTbmFwc2hvdDtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuaW5kZXhCeUlkKGlkKTtcbiAgICBpZiAoaW5kZXggIT0gLTEpIHtcbiAgICAgIHJldHVybiBlbnRpdGllc1tpbmRleF07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5vdGlmeSgpOiB2b2lkIHtcbiAgICB0aGlzLl9lbnRpdGllcyQubmV4dChcbiAgICAgIHRoaXMuX2VudGl0aWVzJC5nZXRWYWx1ZSgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCkge1xuICAgIHRoaXMuX2VudGl0aWVzJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2lkVG9BcnJheUluZGV4LmNsZWFyKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYnVpbGRJbmRleChlbnRpdGllczogVFtdKTogdm9pZCB7XG4gICAgdGhpcy5faWRUb0FycmF5SW5kZXguY2xlYXIoKTtcbiAgICB0aGlzLnJlSW5kZXhGcm9tKGVudGl0aWVzLCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVJbmRleEZyb20oZW50aXRpZXM6IFRbXSwgc3RhcnRJbmRleDogbnVtYmVyKSB7XG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXg7IGkgPCBlbnRpdGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZW50aXR5ID0gZW50aXRpZXNbaV07XG4gICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgIHRoaXMuX2lkVG9BcnJheUluZGV4LnNldCh0aGlzLmdldEl0ZW1JZChlbnRpdHkpLCBpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluZGV4QnlJZChpZDogVElkKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5faWRUb0FycmF5SW5kZXguZ2V0KGlkKSA/PyAtMTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SXRlbUlkKGl0ZW06IFQpOiBUSWQge1xuICAgIHJldHVybiB0aGlzLmlkRm4oaXRlbSk7XG4gIH1cblxuICBwcml2YXRlIHNldEVudGl0aWVzKGVudGl0aWVzOiBUW10pOiB2b2lkIHtcbiAgICBpZiAoISh0aGlzLmVudGl0aWVzU25hcHNob3QubGVuZ3RoID09PSAwICYmIGVudGl0aWVzLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdFbnRpdGllcyBjaGFuZ2VkOiAnICsgZW50aXRpZXMubGVuZ3RoLCBlbnRpdGllcyk7XG4gICAgICB0aGlzLl9lbnRpdGllcyQubmV4dChlbnRpdGllcyk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -6,7 +6,7 @@ import * as i1 from '@angular/platform-browser';
6
6
  import { Duration, Period, TemporalQueries, LocalTime, Instant, LocalDate, nativeJs, ZoneId, ZonedDateTime, Temporal } from '@js-joda/core';
7
7
  import { LoggerFactory } from '@elderbyte/ts-logger';
8
8
  import { BehaviorSubject, Subject, EMPTY, combineLatest, merge, of, forkJoin, throwError, mergeWith, switchMap as switchMap$1, Observable, ReplaySubject, fromEvent, NEVER } from 'rxjs';
9
- import { distinctUntilChanged, map, filter, takeUntil, debounceTime, catchError, first, take, switchMap, mergeMap, takeWhile, tap, expand, reduce, startWith, skip, delay, share, throttleTime, combineLatestWith, timeout, skipWhile } from 'rxjs/operators';
9
+ import { distinctUntilChanged, map, filter, takeUntil, debounceTime, catchError, first, take, switchMap, mergeMap, tap, takeWhile, expand, reduce, startWith, skip, delay, share, throttleTime, combineLatestWith, timeout, skipWhile } from 'rxjs/operators';
10
10
  import * as i1$2 from '@angular/common/http';
11
11
  import { HttpParams, HttpEventType, HttpRequest, HttpClient, HttpErrorResponse, HTTP_INTERCEPTORS } from '@angular/common/http';
12
12
  import { DataSource } from '@angular/cdk/collections';
@@ -3035,87 +3035,13 @@ class TokenChunkRequest {
3035
3035
  }
3036
3036
  }
3037
3037
 
3038
- class SortContext {
3039
- constructor() {
3040
- /***************************************************************************
3041
- * *
3042
- * Fields *
3043
- * *
3044
- **************************************************************************/
3045
- this._sorts = new BehaviorSubject([]);
3046
- /***************************************************************************
3047
- * *
3048
- * Private methods *
3049
- * *
3050
- **************************************************************************/
3051
- }
3052
- /***************************************************************************
3053
- * *
3054
- * Read API *
3055
- * *
3056
- **************************************************************************/
3057
- get sorts() {
3058
- return this._sorts.asObservable();
3059
- }
3060
- get sortsSnapshot() {
3061
- return this._sorts.getValue();
3062
- }
3063
- findSortDirection(prop) {
3064
- const f = this.findSort(prop);
3065
- return f ? f.dir : undefined;
3066
- }
3067
- findSort(prop) {
3068
- return this.sortsSnapshot
3069
- .filter(f => f.prop === prop)
3070
- .find(first => true);
3071
- }
3072
- /***************************************************************************
3073
- * *
3074
- * Public API *
3075
- * *
3076
- **************************************************************************/
3077
- /**
3078
- * This method updatees / adds the given sort, leaving
3079
- * existing ones untouched.
3080
- * @param updatedSort
3081
- */
3082
- updateSort(updatedSort) {
3083
- if (updatedSort) {
3084
- this.updateSorts([updatedSort]);
3085
- }
3086
- }
3087
- /**
3088
- * This method updates / adds the given filters, leaving
3089
- * existing ones untouched.
3090
- * @param updatedSorts
3091
- */
3092
- updateSorts(updatedSorts) {
3093
- if (updatedSorts && updatedSorts.length > 0) {
3094
- const sortMap = new Map();
3095
- this.sortsSnapshot.forEach(s => sortMap.set(s.prop, s));
3096
- updatedSorts.forEach(s => sortMap.set(s.prop, s));
3097
- this.replaceSorts(Array.from(updatedSorts.values()));
3098
- }
3099
- }
3100
- /**
3101
- * Replace all existing filters with the given new ones.
3102
- * @param newSorts
3103
- */
3104
- replaceSorts(newSorts) {
3105
- this._sorts.next(newSorts || []);
3106
- }
3107
- clear() {
3108
- this.replaceSorts([]);
3109
- }
3110
- }
3111
-
3112
3038
  class IndexedEntities {
3113
3039
  /***************************************************************************
3114
3040
  * *
3115
3041
  * Constructor *
3116
3042
  * *
3117
3043
  **************************************************************************/
3118
- constructor(idFn, localSortFn, sortContext = new SortContext()) {
3044
+ constructor(idFn, localSortFn, sortContext) {
3119
3045
  this.idFn = idFn;
3120
3046
  this.localSortFn = localSortFn;
3121
3047
  this.sortContext = sortContext;
@@ -3326,6 +3252,80 @@ function isActivePagedDataContext(object) {
3326
3252
  return object.setActivePage !== undefined;
3327
3253
  }
3328
3254
 
3255
+ class SortContext {
3256
+ constructor() {
3257
+ /***************************************************************************
3258
+ * *
3259
+ * Fields *
3260
+ * *
3261
+ **************************************************************************/
3262
+ this._sorts = new BehaviorSubject([]);
3263
+ /***************************************************************************
3264
+ * *
3265
+ * Private methods *
3266
+ * *
3267
+ **************************************************************************/
3268
+ }
3269
+ /***************************************************************************
3270
+ * *
3271
+ * Read API *
3272
+ * *
3273
+ **************************************************************************/
3274
+ get sorts() {
3275
+ return this._sorts.asObservable();
3276
+ }
3277
+ get sortsSnapshot() {
3278
+ return this._sorts.getValue();
3279
+ }
3280
+ findSortDirection(prop) {
3281
+ const f = this.findSort(prop);
3282
+ return f ? f.dir : undefined;
3283
+ }
3284
+ findSort(prop) {
3285
+ return this.sortsSnapshot
3286
+ .filter(f => f.prop === prop)
3287
+ .find(first => true);
3288
+ }
3289
+ /***************************************************************************
3290
+ * *
3291
+ * Public API *
3292
+ * *
3293
+ **************************************************************************/
3294
+ /**
3295
+ * This method updatees / adds the given sort, leaving
3296
+ * existing ones untouched.
3297
+ * @param updatedSort
3298
+ */
3299
+ updateSort(updatedSort) {
3300
+ if (updatedSort) {
3301
+ this.updateSorts([updatedSort]);
3302
+ }
3303
+ }
3304
+ /**
3305
+ * This method updates / adds the given filters, leaving
3306
+ * existing ones untouched.
3307
+ * @param updatedSorts
3308
+ */
3309
+ updateSorts(updatedSorts) {
3310
+ if (updatedSorts && updatedSorts.length > 0) {
3311
+ const sortMap = new Map();
3312
+ this.sortsSnapshot.forEach(s => sortMap.set(s.prop, s));
3313
+ updatedSorts.forEach(s => sortMap.set(s.prop, s));
3314
+ this.replaceSorts(Array.from(updatedSorts.values()));
3315
+ }
3316
+ }
3317
+ /**
3318
+ * Replace all existing filters with the given new ones.
3319
+ * @param newSorts
3320
+ */
3321
+ replaceSorts(newSorts) {
3322
+ this._sorts.next(newSorts || []);
3323
+ }
3324
+ clear() {
3325
+ this.replaceSorts([]);
3326
+ }
3327
+ }
3328
+
3329
3329
  class DataContextBase extends DataSource {
3330
3330
  /***************************************************************************
3331
3331
  * *
@@ -3353,7 +3353,7 @@ class DataContextBase extends DataSource {
3353
3353
  this._reloadQueue = new Subject();
3354
3354
  this.unsubscribe$ = new Subject();
3355
3355
  this._dataSource = dataSource;
3356
- this._data = new IndexedEntities(e => dataSource.getId(e), _localSort);
3356
+ this._data = new IndexedEntities(e => dataSource.getId(e), _localSort, this._sort);
3357
3357
  this._loading = this._status.pipe(map(status => status.loading));
3358
3358
  this._filter.filters.pipe(filter(() => this.started), takeUntil(this.unsubscribe$)).subscribe(filters => this.onFiltersChanged(filters));
3359
3359
  this._sort.sorts.pipe(filter(() => this.started), takeUntil(this.unsubscribe$)).subscribe(sorts => this.onSortsChanged(sorts));
@@ -4420,8 +4420,10 @@ class DataContextAutoStarter extends DataContextLifeCycleBinding {
4420
4420
  * *
4421
4421
  **************************************************************************/
4422
4422
  subscribe() {
4423
- if (this._autoStartConditionFulfilled$) {
4424
- this._subscription = this._autoStartConditionFulfilled$.pipe(filter(fulfilled => !!fulfilled)).subscribe(() => this.startDataContext());
4423
+ const hasRequiredFilters = !!this._autoStartConditionFulfilled$;
4424
+ if (hasRequiredFilters) {
4425
+ const startedTrue$ = this._dataContext.isStarted$.pipe(filter(t => t));
4426
+ this._subscription = this._autoStartConditionFulfilled$.pipe(takeUntil(startedTrue$), tap(fulfilled => this.logger.debug(`Got fulfilled event: ${fulfilled}`)), filter(fulfilled => !!fulfilled)).subscribe(() => this.startDataContext());
4425
4427
  }
4426
4428
  }
4427
4429
  /***************************************************************************