@messaia/cdk 18.2.3-rc09 → 18.2.3-rc11

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.
@@ -145,6 +145,7 @@ export class GenericEmbeddedListComponent extends GenericListComponent {
145
145
  this.form?.controls[this.itemsPropertyName]?.removeAt(index);
146
146
  /* Remove item from the data source */
147
147
  this.dataSource.items?.splice(index, 1);
148
+ this.items?.splice(index, 1);
148
149
  if (this.parent?.id) {
149
150
  /* Refresh data source if associated with a parent */
150
151
  this.dataSource.connect().subscribe();
@@ -156,6 +157,7 @@ export class GenericEmbeddedListComponent extends GenericListComponent {
156
157
  clearItems() {
157
158
  /* Clear the items from the data source */
158
159
  this.dataSource.items = [];
160
+ this.dataSource.data = [];
159
161
  /* Clear the form array */
160
162
  this.form?.controls[this.itemsPropertyName]?.clear();
161
163
  }
@@ -192,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
192
194
  }], pageSize: [{
193
195
  type: Input
194
196
  }] } });
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1lbWJlZGRlZC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Jhc2UvY29tcG9uZW50cy9nZW5lcmljLWVtYmVkZGVkLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUUvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUVoRTs7Ozs7R0FLRztBQUVILE1BQU0sT0FBZ0IsNEJBSXBCLFNBQVEsb0JBQXVDO0lBb0VyQztJQUNIO0lBQ0c7SUFDQTtJQUNBO0lBdkVYOztPQUVHO0lBRUksSUFBSSxDQUFhO0lBRXhCOztPQUVHO0lBRUksTUFBTSxDQUFXO0lBRXhCOztPQUVHO0lBRUksVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUUvQjs7O09BR0c7SUFFSSxTQUFTLEdBQVksS0FBSyxDQUFDO0lBRWxDOzs7OztPQUtHO0lBRUksUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUU3Qjs7T0FFRztJQUNPLGlCQUFpQixHQUFHLE9BQU8sQ0FBQztJQUV0Qzs7T0FFRztJQUNJLFlBQVksR0FBMEI7UUFDNUM7WUFDQyxzREFBc0Q7WUFDdEQsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxF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LE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNPLGVBQWU7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7MEhBck1vQiw0QkFBNEI7OEdBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEakQsU0FBUzt1TEFVRixJQUFJO3NCQURWLEtBQUs7Z0JBT0MsTUFBTTtzQkFEWixLQUFLO2dCQU9DLFVBQVU7c0JBRGhCLEtBQUs7Z0JBUUMsU0FBUztzQkFEZixLQUFLO2dCQVVDLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIElucHV0LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBY3Rpb25JdGVtLCBJRW50aXR5IH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvbW1vbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBSeEZvcm1BcnJheSB9IGZyb20gJy4uLy4uL2Zvcm0tdmFsaWRhdG9ycy9zZXJ2aWNlcy9yeC1mb3JtLWFycmF5JztcclxuaW1wb3J0IHsgUnhGb3JtQnVpbGRlciB9IGZyb20gJy4uLy4uL2Zvcm0tdmFsaWRhdG9ycy9zZXJ2aWNlcy9yeC1mb3JtLWJ1aWxkZXInO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uLy4uL2h0dHAvaHR0cC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBUYWJsZVN0YXRpY0RhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi90YWJsZS90YWJsZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBHZW5lcmljTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZ2VuZXJpYy1saXN0LmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQGNsYXNzIEdlbmVyaWNFbWJlZGRlZExpc3RDb21wb25lbnRcclxuICogXHJcbiAqIEEgYmFzZSBjbGFzcyBmb3IgbWFuYWdpbmcgYSBsaXN0IG9mIGVtYmVkZGVkIGl0ZW1zIHdpdGhpbiBhIGZvcm0uXHJcbiAqIEl0IHByb3ZpZGVzIGNvbW1vbiBmdW5jdGlvbmFsaXRpZXMgZm9yIGFkZGluZywgcmVtb3ZpbmcsIGFuZCBtYW5hZ2luZyBpdGVtcy5cclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2VuZXJpY0VtYmVkZGVkTGlzdENvbXBvbmVudDxcclxuXHRURW50aXR5IGV4dGVuZHMgSUVudGl0eSxcclxuXHRUUGFyZW50IGV4dGVuZHMgSUVudGl0eSxcclxuXHRUU2VydmljZSBleHRlbmRzIEdlbmVyaWNTZXJ2aWNlPFRFbnRpdHk+XHJcbj4gZXh0ZW5kcyBHZW5lcmljTGlzdENvbXBvbmVudDxURW50aXR5LCBUU2VydmljZT4ge1xyXG5cdC8qKlxyXG5cdCAqIFRoZSByZWFjdGl2ZSBmb3JtIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbXBvbmVudC5cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBmb3JtPzogRm9ybUdyb3VwO1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgcGFyZW50IGVudGl0eSB0aGF0IHRoaXMgY29tcG9uZW50IGlzIGFzc29jaWF0ZWQgd2l0aC5cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBwYXJlbnQ/OiBUUGFyZW50O1xyXG5cclxuXHQvKipcclxuXHQgKiBBIHByZWZpeCBmb3IgaGFzaGluZyBwdXJwb3NlcywgZGVmYXVsdCBpcyBhbiBlbXB0eSBzdHJpbmcuXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgaGFzaFByZWZpeDogc3RyaW5nID0gJyc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIERldGVybWluZXMgd2hldGhlciB0aGUgbGlzdCBzdXBwb3J0cyBwYWdpbmF0aW9uLlxyXG5cdCAqIElmIHRydWUsIHBhZ2luYXRpb24gY29udHJvbHMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIG5hdmlnYXRpbmcgdGhyb3VnaCB0aGUgZGF0YS5cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBwYWdpbmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IHBhZ2VTaXplXHJcblx0ICogQGRlc2NyaXB0aW9uIFRoZSBudW1iZXIgb2YgaXRlbXMgZGlzcGxheWVkIHBlciBwYWdlIGluIHRoZSBkYXRhLXRhYmxlLlxyXG5cdCAqIEl0IGNvbnRyb2xzIGhvdyBtYW55IHJlY29yZHMgYXJlIHNob3duIG9uIGEgc2luZ2xlIHBhZ2UuXHJcblx0ICogQHR5cGUge251bWJlcn1cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyID0gMTA7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSByZXByZXNlbnRpbmcgdGhlIGxpc3Qgb2YgaXRlbXMuXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGl0ZW1zUHJvcGVydHlOYW1lID0gJ2l0ZW1zJztcclxuXHJcblx0LyoqXHJcblx0ICogTWVudSBvcHRpb25zIGZvciBtYW5hZ2luZyBhIGxpc3Qgb2YgaXRlbXMsIGluY2x1ZGluZyBkZWxldGUgYW5kIG1vcmUgb3B0aW9ucy5cclxuXHQgKi9cclxuXHRwdWJsaWMgaXRlbUxpc3RNZW51OiBBY3Rpb25JdGVtPFRFbnRpdHk+W10gPSBbXHJcblx0XHR7XHJcblx0XHRcdC8qIE9wdGlvbiB0byByZW1vdmUgdGhlIHNlbGVjdGVkIGl0ZW0gZnJvbSB0aGUgbGlzdCAqL1xyXG5cdFx0XHRpY29uOiAnZGVsZXRlX2ZvcmV2ZXInLFxyXG5cdFx0XHRldmVudDogKF8sIF9fLCBpKSA9PiB0aGlzLnJlbW92ZUl0ZW0oaSEpLFxyXG5cdFx0XHRoaWRlOiAoaXRlbSkgPT4gKGl0ZW0/LmlkID8/IDApID4gMFxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0LyogQWN0aW9uIHRvIHNob3cgYWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgaXRlbSAqL1xyXG5cdFx0XHRpY29uOiAnbW9yZV92ZXJ0JyxcclxuXHRcdFx0aGlkZTogKGl0ZW0pID0+IChpdGVtPy5pZCA/PyAwKSA8PSAwLFxyXG5cdFx0XHRpdGVtczogdGhpcy5yb3dNZW51SXRlbXNcclxuXHRcdH1cclxuXHRdO1xyXG5cclxuXHQvKipcclxuXHQgKiBDb25zdHJ1Y3RvciBmb3IgaW5pdGlhbGl6aW5nIHRoZSBjb21wb25lbnQuXHJcblx0ICogXHJcblx0ICogQHBhcmFtIGVudGl0eSBUaGUgdHlwZSBvZiBlbnRpdHkgYmVpbmcgbWFuYWdlZC5cclxuXHQgKiBAcGFyYW0gc2VydmljZSBUaGUgc2VydmljZSBmb3IgbWFuYWdpbmcgZW50aXR5IG9wZXJhdGlvbnMuXHJcblx0ICogQHBhcmFtIGZvcm1CdWlsZGVyIFRoZSBidWlsZGVyIGZvciBjcmVhdGluZyByZWFjdGl2ZSBmb3Jtcy5cclxuXHQgKiBAcGFyYW0gcm91dGUgVGhlIGFjdGl2YXRlZCByb3V0ZSBmb3IgbmF2aWdhdGlvbi5cclxuXHQgKiBAcGFyYW0gY2hhbmdlRGV0ZWN0b3JSZWYgVGhlIGNoYW5nZSBkZXRlY3RvciBmb3IgbWFuYWdpbmcgdmlldyB1cGRhdGVzLlxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJvdGVjdGVkIGVudGl0eTogVHlwZTxURW50aXR5PixcclxuXHRcdHB1YmxpYyBzZXJ2aWNlOiBUU2VydmljZSxcclxuXHRcdHByb3RlY3RlZCBmb3JtQnVpbGRlcjogUnhGb3JtQnVpbGRlcixcclxuXHRcdHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcblx0XHRwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcblx0KSB7XHJcblx0XHRzdXBlcihzZXJ2aWNlLCByb3V0ZSwgY2hhbmdlRGV0ZWN0b3JSZWYsIDxhbnk+bnVsbClcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIExpZmVjeWNsZSBob29rIGNhbGxlZCBhZnRlciB0aGUgY29uc3RydWN0b3IuXHJcblx0ICogSW5pdGlhbGl6ZXMgaW5wdXQgcHJvcGVydGllcyBhbmQgc2V0cyB1cCBkYXRhIGZldGNoaW5nLlxyXG5cdCAqL1xyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0c3VwZXIubmdPbkluaXQoKTtcclxuXHRcdGlmICh0aGlzLnBhcmVudD8uaWQpIHtcclxuXHRcdFx0LyogU2V0cyB0aGUgcGFnaW5hdG9yIGZvciB0aGUgZGF0YVNvdXJjZSAqL1xyXG5cdFx0XHR0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3IhO1xyXG5cclxuXHRcdFx0LyogXHJcblx0XHRcdElmIGEgcGFyZW50IGVudGl0eSBleGlzdHMgKGkuZS4sIGl0IGhhcyBhbiBJRCksIGNvbm5lY3QgdG8gdGhlIGRhdGEgc291cmNlIFxyXG5cdFx0XHR3aXRoIHRoZSBzcGVjaWZpZWQgcGFnZSBzaXplIGFuZCBhbnkgYWRkaXRpb25hbCBmZXRjaCBkYXRhLlxyXG5cdFx0XHQqL1xyXG5cdFx0XHR0aGlzLmNvbm5lY3QoT2JqZWN0LmFzc2lnbih7IHBhZ2VTaXplOiAxMCB9LCB0aGlzLmdldEZldGNoRGF0YSgpLCB7IGlkOiBudWxsIH0pKTtcclxuXHRcdH0gZWxzZSBpZiAodGhpcy5kYXRhU291cmNlLml0ZW1zLmxlbmd0aCA8PSAwKSB7XHJcblx0XHRcdC8qIFxyXG5cdFx0XHRJZiB0aGVyZSBpcyBubyBwYXJlbnQgZW50aXR5IGFuZCB0aGUgZGF0YSBzb3VyY2UgaXRlbXMgYXJlIGVtcHR5LFxyXG5cdFx0XHRwb3B1bGF0ZSB0aGUgZGF0YSBzb3VyY2Ugd2l0aCBpbml0aWFsIGl0ZW1zIGZyb20gdGhlIGZvcm0ncyB2YWx1ZS5cclxuXHRcdFx0Ki9cclxuXHRcdFx0dGhpcy5kYXRhU291cmNlLml0ZW1zPy5wdXNoKC4uLnRoaXMuZm9ybT8udmFsdWVbdGhpcy5pdGVtc1Byb3BlcnR5TmFtZV0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICghdGhpcy5wYXJlbnQ/LmlkICYmIHRoaXMucGFnaW5hYmxlKSB7XHJcblx0XHRcdC8qIEluaXRpYWxpemVzIHRoZSBkYXRhU291cmNlIHdpdGggdGhlIGVudGl0aWVzICovXHJcblx0XHRcdHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBUYWJsZVN0YXRpY0RhdGFTb3VyY2UoLi4udGhpcy5mb3JtPy52YWx1ZVt0aGlzLml0ZW1zUHJvcGVydHlOYW1lXSk7XHJcblxyXG5cdFx0XHQvKiBTZXQgdGhlIGRlZmF1bHQgcGFnZSBzaXplICovXHJcblx0XHRcdHRoaXMuZGF0YVNvdXJjZS5wYWdlU2l6ZSA9IHRoaXMucGFnZVNpemU7XHJcblxyXG5cdFx0XHQvKiBTZXRzIHRoZSBwYWdpbmF0b3IgZm9yIHRoZSBkYXRhU291cmNlICovXHJcblx0XHRcdHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcclxuXHJcblx0XHRcdC8qIFN1YnNjcmliZXMgdG8gdGhlIGRhdGFTb3VyY2UgY29ubmVjdGlvbiBhbmQgYXNzaWducyB0aGUgcmVzdWx0IHRvIHRoZSBpdGVtcyBhcnJheSAqL1xyXG5cdFx0XHR0aGlzLmNvbm5lY3QoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEFkZHMgYSBuZXcgaXRlbSB0byB0aGUgY3VycmVudCBsaXN0LlxyXG5cdCAqIFxyXG5cdCAqIEBwYXJhbSBpbml0IE9wdGlvbmFsIGluaXRpYWwgdmFsdWVzIGZvciB0aGUgbmV3IGVudGl0eS5cclxuXHQgKi9cclxuXHRwdWJsaWMgYWRkSXRlbShpbml0PzogUGFydGlhbDxURW50aXR5Pik6IHZvaWQge1xyXG5cdFx0LyogQ3JlYXRlIGEgbmV3IGVudGl0eSBpbnN0YW5jZSB3aXRoIG9wdGlvbmFsIGluaXRpYWwgdmFsdWVzICovXHJcblx0XHR2YXIgZW50aXR5ID0gPFRFbnRpdHk+dGhpcy5uZXdJbnN0YW5jZShpbml0IHx8IHt9KTtcclxuXHJcblx0XHQvKiBBZGQgdGhlIG5ldyBpdGVtIHRvIHRoZSBkYXRhIHNvdXJjZSB0byBzaG93IGl0IGluIHRoZSBleHBhbnNpb24gcGFuZWwgKi9cclxuXHRcdHRoaXMuZGF0YVNvdXJjZS5pdGVtcz8ucHVzaChlbnRpdHkpO1xyXG5cclxuXHRcdC8qIFVwZGF0ZSB0aGUgZGF0YSBzb3VyY2Ugd2l0aCB0aGUgbW9kaWZpZWQgaXRlbXMgYXJyYXkgKi9cclxuXHRcdHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5kYXRhU291cmNlLml0ZW1zO1xyXG5cclxuXHRcdC8qIEFkZCB0aGUgZW50aXR5IHRvIHRoZSBmb3JtIGFycmF5IGluICdhZGQgbW9kZScgKi9cclxuXHRcdGlmICghdGhpcy5wYXJlbnQ/LmlkKSB7XHJcblx0XHRcdCh0aGlzLmZvcm0/LmNvbnRyb2xzW3RoaXMuaXRlbXNQcm9wZXJ0eU5hbWVdIGFzIFJ4Rm9ybUFycmF5KT8ucHVzaCh0aGlzLmZvcm1CdWlsZGVyLmZvcm1Hcm91cDxURW50aXR5PihlbnRpdHkpKTtcclxuXHJcblx0XHRcdC8qIEVuc3VyZSB0aGUgZm9ybSBpcyB2YWxpZCBhZnRlciBhZGRpbmcgdGhlIGl0ZW0gKi9cclxuXHRcdFx0dGhpcy5mb3JtPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcblx0XHR9XHJcblxyXG5cdFx0LyogVHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIHRvIHVwZGF0ZSB0aGUgdmlldyAqL1xyXG5cdFx0dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZW1vdmVzIGFuIGl0ZW0gZnJvbSB0aGUgbGlzdCBhbmQgdGhlIGZvcm0uXHJcblx0ICogXHJcblx0ICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBvZiB0aGUgaXRlbSB0byByZW1vdmUuXHJcblx0ICovXHJcblx0cHVibGljIHJlbW92ZUl0ZW0oaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG5cdFx0LyogUmVtb3ZlIGl0ZW0gZnJvbSB0aGUgZm9ybSBhcnJheSAqL1xyXG5cdFx0KHRoaXMuZm9ybT8uY29udHJvbHNbdGhpcy5pdGVtc1Byb3BlcnR5TmFtZV0gYXMgUnhGb3JtQXJyYXkpPy5yZW1vdmVBdChpbmRleCk7XHJcblxyXG5cdFx0LyogUmVtb3ZlIGl0ZW0gZnJvbSB0aGUgZGF0YSBzb3VyY2UgKi9cclxuXHRcdHRoaXMuZGF0YVNvdXJjZS5pdGVtcz8uc3BsaWNlKGluZGV4LCAxKTtcclxuXHRcdGlmICh0aGlzLnBhcmVudD8uaWQpIHtcclxuXHRcdFx0LyogUmVmcmVzaCBkYXRhIHNvdXJjZSBpZiBhc3NvY2lhdGVkIHdpdGggYSBwYXJlbnQgKi9cclxuXHRcdFx0dGhpcy5kYXRhU291cmNlLmNvbm5lY3QoKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENsZWFycyBhbGwgaXRlbXMgZnJvbSB0aGUgbGlzdCBhbmQgdGhlIGZvcm0uXHJcblx0ICovXHJcblx0cHVibGljIGNsZWFySXRlbXMoKTogdm9pZCB7XHJcblx0XHQvKiBDbGVhciB0aGUgaXRlbXMgZnJvbSB0aGUgZGF0YSBzb3VyY2UgKi9cclxuXHRcdHRoaXMuZGF0YVNvdXJjZS5pdGVtcyA9IFtdO1xyXG5cclxuXHRcdC8qIENsZWFyIHRoZSBmb3JtIGFycmF5ICovXHJcblx0XHQodGhpcy5mb3JtPy5jb250cm9sc1t0aGlzLml0ZW1zUHJvcGVydHlOYW1lXSBhcyBSeEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBBYnN0cmFjdCBtZXRob2QgdG8gZmV0Y2ggZGF0YSBmb3IgdGhlIGxpc3QuXHJcblx0ICogTXVzdCBiZSBpbXBsZW1lbnRlZCBieSBkZXJpdmVkIGNsYXNzZXMuXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGFic3RyYWN0IGdldEZldGNoRGF0YSgpOiBhbnk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIFRFbnRpdHkuXHJcblx0ICogXHJcblx0ICogQHBhcmFtIGluaXQgT3B0aW9uYWwgaW5pdGlhbCB2YWx1ZXMgZm9yIHRoZSBlbnRpdHkuXHJcblx0ICogQHJldHVybnMgQSBuZXcgaW5zdGFuY2Ugb2YgVEVudGl0eS5cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgbmV3SW5zdGFuY2UoaW5pdDogUGFydGlhbDxURW50aXR5Pik6IFRFbnRpdHkge1xyXG5cdFx0LyogQ3JlYXRlIGEgbmV3IGVudGl0eSBpbnN0YW5jZSAqL1xyXG5cdFx0cmV0dXJuIG5ldyB0aGlzLmVudGl0eShpbml0KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEFkZHMgbWVudSBpdGVtcyB0byB0aGUgcm93IG9wdGlvbnMgZm9yIG1hbmFnaW5nIGluZGl2aWR1YWwgaXRlbXMuXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGFkZFJvd01lbnVJdGVtcygpOiB2b2lkIHtcclxuXHRcdHRoaXMuZWRpdGFibGUgPSBmYWxzZTtcclxuXHRcdHN1cGVyLmFkZFJvd01lbnVJdGVtcygpO1xyXG5cdH1cclxufSJdfQ==
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1lbWJlZGRlZC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Jhc2UvY29tcG9uZW50cy9nZW5lcmljLWVtYmVkZGVkLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUUvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUVoRTs7Ozs7R0FLRztBQUVILE1BQU0sT0FBZ0IsNEJBSXBCLFNBQVEsb0JBQXVDO0lBb0VyQztJQUNIO0lBQ0c7SUFDQTtJQUNBO0lBdkVYOztPQUVHO0lBRUksSUFBSSxDQUFhO0lBRXhCOztPQUVHO0lBRUksTUFBTSxDQUFXO0lBRXhCOztPQUVHO0lBRUksVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUUvQjs7O09BR0c7SUFFSSxTQUFTLEdBQVksS0FBSyxDQUFDO0lBRWxDOzs7OztPQUtHO0lBRUksUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUU3Qjs7T0FFRztJQUNPLGlCQUFpQixHQUFHLE9BQU8sQ0FBQztJQUV0Qzs7T0FFRztJQUNJLFlBQVksR0FBMEI7UUFDNUM7WUFDQyxzREFBc0Q7WUFDdEQsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxF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SUFBSSxDQUFDLGlCQUFpQixDQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFRRDs7Ozs7T0FLRztJQUNPLFdBQVcsQ0FBQyxJQUFzQjtRQUMzQyxrQ0FBa0M7UUFDbEMsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ08sZUFBZTtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQzswSEF4TW9CLDRCQUE0Qjs4R0FBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQURqRCxTQUFTO3VMQVVGLElBQUk7c0JBRFYsS0FBSztnQkFPQyxNQUFNO3NCQURaLEtBQUs7Z0JBT0MsVUFBVTtzQkFEaEIsS0FBSztnQkFRQyxTQUFTO3NCQURmLEtBQUs7Z0JBVUMsUUFBUTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgSW5wdXQsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFjdGlvbkl0ZW0sIElFbnRpdHkgfSBmcm9tICcuLi8uLi9jb21tb24vY29tbW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7IFJ4Rm9ybUFycmF5IH0gZnJvbSAnLi4vLi4vZm9ybS12YWxpZGF0b3JzL3NlcnZpY2VzL3J4LWZvcm0tYXJyYXknO1xyXG5pbXBvcnQgeyBSeEZvcm1CdWlsZGVyIH0gZnJvbSAnLi4vLi4vZm9ybS12YWxpZGF0b3JzL3NlcnZpY2VzL3J4LWZvcm0tYnVpbGRlcic7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaHR0cC9odHRwLm1vZHVsZSc7XHJcbmltcG9ydCB7IFRhYmxlU3RhdGljRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL3RhYmxlL3RhYmxlLm1vZHVsZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9nZW5lcmljLWxpc3QuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3MgR2VuZXJpY0VtYmVkZGVkTGlzdENvbXBvbmVudFxyXG4gKiBcclxuICogQSBiYXNlIGNsYXNzIGZvciBtYW5hZ2luZyBhIGxpc3Qgb2YgZW1iZWRkZWQgaXRlbXMgd2l0aGluIGEgZm9ybS5cclxuICogSXQgcHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdGllcyBmb3IgYWRkaW5nLCByZW1vdmluZywgYW5kIG1hbmFnaW5nIGl0ZW1zLlxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHZW5lcmljRW1iZWRkZWRMaXN0Q29tcG9uZW50PFxyXG5cdFRFbnRpdHkgZXh0ZW5kcyBJRW50aXR5LFxyXG5cdFRQYXJlbnQgZXh0ZW5kcyBJRW50aXR5LFxyXG5cdFRTZXJ2aWNlIGV4dGVuZHMgR2VuZXJpY1NlcnZpY2U8VEVudGl0eT5cclxuPiBleHRlbmRzIEdlbmVyaWNMaXN0Q29tcG9uZW50PFRFbnRpdHksIFRTZXJ2aWNlPiB7XHJcblx0LyoqXHJcblx0ICogVGhlIHJlYWN0aXZlIGZvcm0gYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29tcG9uZW50LlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGZvcm0/OiBGb3JtR3JvdXA7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBwYXJlbnQgZW50aXR5IHRoYXQgdGhpcyBjb21wb25lbnQgaXMgYXNzb2NpYXRlZCB3aXRoLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHBhcmVudD86IFRQYXJlbnQ7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgcHJlZml4IGZvciBoYXNoaW5nIHB1cnBvc2VzLCBkZWZhdWx0IGlzIGFuIGVtcHR5IHN0cmluZy5cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBoYXNoUHJlZml4OiBzdHJpbmcgPSAnJztcclxuXHJcblx0LyoqXHJcblx0ICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBsaXN0IHN1cHBvcnRzIHBhZ2luYXRpb24uXHJcblx0ICogSWYgdHJ1ZSwgcGFnaW5hdGlvbiBjb250cm9scyB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgbmF2aWdhdGluZyB0aHJvdWdoIHRoZSBkYXRhLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHBhZ2luYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcGFnZVNpemVcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIG51bWJlciBvZiBpdGVtcyBkaXNwbGF5ZWQgcGVyIHBhZ2UgaW4gdGhlIGRhdGEtdGFibGUuXHJcblx0ICogSXQgY29udHJvbHMgaG93IG1hbnkgcmVjb3JkcyBhcmUgc2hvd24gb24gYSBzaW5nbGUgcGFnZS5cclxuXHQgKiBAdHlwZSB7bnVtYmVyfVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHBhZ2VTaXplOiBudW1iZXIgPSAxMDtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHJlcHJlc2VudGluZyB0aGUgbGlzdCBvZiBpdGVtcy5cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgaXRlbXNQcm9wZXJ0eU5hbWUgPSAnaXRlbXMnO1xyXG5cclxuXHQvKipcclxuXHQgKiBNZW51IG9wdGlvbnMgZm9yIG1hbmFnaW5nIGEgbGlzdCBvZiBpdGVtcywgaW5jbHVkaW5nIGRlbGV0ZSBhbmQgbW9yZSBvcHRpb25zLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBpdGVtTGlzdE1lbnU6IEFjdGlvbkl0ZW08VEVudGl0eT5bXSA9IFtcclxuXHRcdHtcclxuXHRcdFx0LyogT3B0aW9uIHRvIHJlbW92ZSB0aGUgc2VsZWN0ZWQgaXRlbSBmcm9tIHRoZSBsaXN0ICovXHJcblx0XHRcdGljb246ICdkZWxldGVfZm9yZXZlcicsXHJcblx0XHRcdGV2ZW50OiAoXywgX18sIGkpID0+IHRoaXMucmVtb3ZlSXRlbShpISksXHJcblx0XHRcdGhpZGU6IChpdGVtKSA9PiAoaXRlbT8uaWQgPz8gMCkgPiAwXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHQvKiBBY3Rpb24gdG8gc2hvdyBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSBpdGVtICovXHJcblx0XHRcdGljb246ICdtb3JlX3ZlcnQnLFxyXG5cdFx0XHRoaWRlOiAoaXRlbSkgPT4gKGl0ZW0/LmlkID8/IDApIDw9IDAsXHJcblx0XHRcdGl0ZW1zOiB0aGlzLnJvd01lbnVJdGVtc1xyXG5cdFx0fVxyXG5cdF07XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbnN0cnVjdG9yIGZvciBpbml0aWFsaXppbmcgdGhlIGNvbXBvbmVudC5cclxuXHQgKiBcclxuXHQgKiBAcGFyYW0gZW50aXR5IFRoZSB0eXBlIG9mIGVudGl0eSBiZWluZyBtYW5hZ2VkLlxyXG5cdCAqIEBwYXJhbSBzZXJ2aWNlIFRoZSBzZXJ2aWNlIGZvciBtYW5hZ2luZyBlbnRpdHkgb3BlcmF0aW9ucy5cclxuXHQgKiBAcGFyYW0gZm9ybUJ1aWxkZXIgVGhlIGJ1aWxkZXIgZm9yIGNyZWF0aW5nIHJlYWN0aXZlIGZvcm1zLlxyXG5cdCAqIEBwYXJhbSByb3V0ZSBUaGUgYWN0aXZhdGVkIHJvdXRlIGZvciBuYXZpZ2F0aW9uLlxyXG5cdCAqIEBwYXJhbSBjaGFuZ2VEZXRlY3RvclJlZiBUaGUgY2hhbmdlIGRldGVjdG9yIGZvciBtYW5hZ2luZyB2aWV3IHVwZGF0ZXMuXHJcblx0ICovXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcm90ZWN0ZWQgZW50aXR5OiBUeXBlPFRFbnRpdHk+LFxyXG5cdFx0cHVibGljIHNlcnZpY2U6IFRTZXJ2aWNlLFxyXG5cdFx0cHJvdGVjdGVkIGZvcm1CdWlsZGVyOiBSeEZvcm1CdWlsZGVyLFxyXG5cdFx0cHJvdGVjdGVkIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuXHRcdHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuXHQpIHtcclxuXHRcdHN1cGVyKHNlcnZpY2UsIHJvdXRlLCBjaGFuZ2VEZXRlY3RvclJlZiwgPGFueT5udWxsKVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTGlmZWN5Y2xlIGhvb2sgY2FsbGVkIGFmdGVyIHRoZSBjb25zdHJ1Y3Rvci5cclxuXHQgKiBJbml0aWFsaXplcyBpbnB1dCBwcm9wZXJ0aWVzIGFuZCBzZXRzIHVwIGRhdGEgZmV0Y2hpbmcuXHJcblx0ICovXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHRzdXBlci5uZ09uSW5pdCgpO1xyXG5cdFx0aWYgKHRoaXMucGFyZW50Py5pZCkge1xyXG5cdFx0XHQvKiBTZXRzIHRoZSBwYWdpbmF0b3IgZm9yIHRoZSBkYXRhU291cmNlICovXHJcblx0XHRcdHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvciE7XHJcblxyXG5cdFx0XHQvKiBcclxuXHRcdFx0SWYgYSBwYXJlbnQgZW50aXR5IGV4aXN0cyAoaS5lLiwgaXQgaGFzIGFuIElEKSwgY29ubmVjdCB0byB0aGUgZGF0YSBzb3VyY2UgXHJcblx0XHRcdHdpdGggdGhlIHNwZWNpZmllZCBwYWdlIHNpemUgYW5kIGFueSBhZGRpdGlvbmFsIGZldGNoIGRhdGEuXHJcblx0XHRcdCovXHJcblx0XHRcdHRoaXMuY29ubmVjdChPYmplY3QuYXNzaWduKHsgcGFnZVNpemU6IDEwIH0sIHRoaXMuZ2V0RmV0Y2hEYXRhKCksIHsgaWQ6IG51bGwgfSkpO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLmRhdGFTb3VyY2UuaXRlbXMubGVuZ3RoIDw9IDApIHtcclxuXHRcdFx0LyogXHJcblx0XHRcdElmIHRoZXJlIGlzIG5vIHBhcmVudCBlbnRpdHkgYW5kIHRoZSBkYXRhIHNvdXJjZSBpdGVtcyBhcmUgZW1wdHksXHJcblx0XHRcdHBvcHVsYXRlIHRoZSBkYXRhIHNvdXJjZSB3aXRoIGluaXRpYWwgaXRlbXMgZnJvbSB0aGUgZm9ybSdzIHZhbHVlLlxyXG5cdFx0XHQqL1xyXG5cdFx0XHR0aGlzLmRhdGFTb3VyY2UuaXRlbXM/LnB1c2goLi4udGhpcy5mb3JtPy52YWx1ZVt0aGlzLml0ZW1zUHJvcGVydHlOYW1lXSk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCF0aGlzLnBhcmVudD8uaWQgJiYgdGhpcy5wYWdpbmFibGUpIHtcclxuXHRcdFx0LyogSW5pdGlhbGl6ZXMgdGhlIGRhdGFTb3VyY2Ugd2l0aCB0aGUgZW50aXRpZXMgKi9cclxuXHRcdFx0dGhpcy5kYXRhU291cmNlID0gbmV3IFRhYmxlU3RhdGljRGF0YVNvdXJjZSguLi50aGlzLmZvcm0/LnZhbHVlW3RoaXMuaXRlbXNQcm9wZXJ0eU5hbWVdKTtcclxuXHJcblx0XHRcdC8qIFNldCB0aGUgZGVmYXVsdCBwYWdlIHNpemUgKi9cclxuXHRcdFx0dGhpcy5kYXRhU291cmNlLnBhZ2VTaXplID0gdGhpcy5wYWdlU2l6ZTtcclxuXHJcblx0XHRcdC8qIFNldHMgdGhlIHBhZ2luYXRvciBmb3IgdGhlIGRhdGFTb3VyY2UgKi9cclxuXHRcdFx0dGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG5cclxuXHRcdFx0LyogU3Vic2NyaWJlcyB0byB0aGUgZGF0YVNvdXJjZSBjb25uZWN0aW9uIGFuZCBhc3NpZ25zIHRoZSByZXN1bHQgdG8gdGhlIGl0ZW1zIGFycmF5ICovXHJcblx0XHRcdHRoaXMuY29ubmVjdCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQWRkcyBhIG5ldyBpdGVtIHRvIHRoZSBjdXJyZW50IGxpc3QuXHJcblx0ICogXHJcblx0ICogQHBhcmFtIGluaXQgT3B0aW9uYWwgaW5pdGlhbCB2YWx1ZXMgZm9yIHRoZSBuZXcgZW50aXR5LlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBhZGRJdGVtKGluaXQ/OiBQYXJ0aWFsPFRFbnRpdHk+KTogdm9pZCB7XHJcblx0XHQvKiBDcmVhdGUgYSBuZXcgZW50aXR5IGluc3RhbmNlIHdpdGggb3B0aW9uYWwgaW5pdGlhbCB2YWx1ZXMgKi9cclxuXHRcdHZhciBlbnRpdHkgPSA8VEVudGl0eT50aGlzLm5ld0luc3RhbmNlKGluaXQgfHwge30pO1xyXG5cclxuXHRcdC8qIEFkZCB0aGUgbmV3IGl0ZW0gdG8gdGhlIGRhdGEgc291cmNlIHRvIHNob3cgaXQgaW4gdGhlIGV4cGFuc2lvbiBwYW5lbCAqL1xyXG5cdFx0dGhpcy5kYXRhU291cmNlLml0ZW1zPy5wdXNoKGVudGl0eSk7XHJcblxyXG5cdFx0LyogVXBkYXRlIHRoZSBkYXRhIHNvdXJjZSB3aXRoIHRoZSBtb2RpZmllZCBpdGVtcyBhcnJheSAqL1xyXG5cdFx0dGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLmRhdGFTb3VyY2UuaXRlbXM7XHJcblxyXG5cdFx0LyogQWRkIHRoZSBlbnRpdHkgdG8gdGhlIGZvcm0gYXJyYXkgaW4gJ2FkZCBtb2RlJyAqL1xyXG5cdFx0aWYgKCF0aGlzLnBhcmVudD8uaWQpIHtcclxuXHRcdFx0KHRoaXMuZm9ybT8uY29udHJvbHNbdGhpcy5pdGVtc1Byb3BlcnR5TmFtZV0gYXMgUnhGb3JtQXJyYXkpPy5wdXNoKHRoaXMuZm9ybUJ1aWxkZXIuZm9ybUdyb3VwPFRFbnRpdHk+KGVudGl0eSkpO1xyXG5cclxuXHRcdFx0LyogRW5zdXJlIHRoZSBmb3JtIGlzIHZhbGlkIGFmdGVyIGFkZGluZyB0aGUgaXRlbSAqL1xyXG5cdFx0XHR0aGlzLmZvcm0/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBUcmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gdG8gdXBkYXRlIHRoZSB2aWV3ICovXHJcblx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlbW92ZXMgYW4gaXRlbSBmcm9tIHRoZSBsaXN0IGFuZCB0aGUgZm9ybS5cclxuXHQgKiBcclxuXHQgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBpdGVtIHRvIHJlbW92ZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgcmVtb3ZlSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcblx0XHQvKiBSZW1vdmUgaXRlbSBmcm9tIHRoZSBmb3JtIGFycmF5ICovXHJcblx0XHQodGhpcy5mb3JtPy5jb250cm9sc1t0aGlzLml0ZW1zUHJvcGVydHlOYW1lXSBhcyBSeEZvcm1BcnJheSk/LnJlbW92ZUF0KGluZGV4KTtcclxuXHJcblx0XHQvKiBSZW1vdmUgaXRlbSBmcm9tIHRoZSBkYXRhIHNvdXJjZSAqL1xyXG5cdFx0dGhpcy5kYXRhU291cmNlLml0ZW1zPy5zcGxpY2UoaW5kZXgsIDEpO1xyXG5cdFx0dGhpcy5pdGVtcz8uc3BsaWNlKGluZGV4LCAxKTtcclxuXHJcblx0XHRpZiAodGhpcy5wYXJlbnQ/LmlkKSB7XHJcblx0XHRcdC8qIFJlZnJlc2ggZGF0YSBzb3VyY2UgaWYgYXNzb2NpYXRlZCB3aXRoIGEgcGFyZW50ICovXHJcblx0XHRcdHRoaXMuZGF0YVNvdXJjZS5jb25uZWN0KCkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDbGVhcnMgYWxsIGl0ZW1zIGZyb20gdGhlIGxpc3QgYW5kIHRoZSBmb3JtLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBjbGVhckl0ZW1zKCk6IHZvaWQge1xyXG5cdFx0LyogQ2xlYXIgdGhlIGl0ZW1zIGZyb20gdGhlIGRhdGEgc291cmNlICovXHJcblx0XHR0aGlzLmRhdGFTb3VyY2UuaXRlbXMgPSBbXTtcclxuXHRcdHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gW107XHJcblxyXG5cdFx0LyogQ2xlYXIgdGhlIGZvcm0gYXJyYXkgKi9cclxuXHRcdCh0aGlzLmZvcm0/LmNvbnRyb2xzW3RoaXMuaXRlbXNQcm9wZXJ0eU5hbWVdIGFzIFJ4Rm9ybUFycmF5KT8uY2xlYXIoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEFic3RyYWN0IG1ldGhvZCB0byBmZXRjaCBkYXRhIGZvciB0aGUgbGlzdC5cclxuXHQgKiBNdXN0IGJlIGltcGxlbWVudGVkIGJ5IGRlcml2ZWQgY2xhc3Nlcy5cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RmV0Y2hEYXRhKCk6IGFueTtcclxuXHJcblx0LyoqXHJcblx0ICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgVEVudGl0eS5cclxuXHQgKiBcclxuXHQgKiBAcGFyYW0gaW5pdCBPcHRpb25hbCBpbml0aWFsIHZhbHVlcyBmb3IgdGhlIGVudGl0eS5cclxuXHQgKiBAcmV0dXJucyBBIG5ldyBpbnN0YW5jZSBvZiBURW50aXR5LlxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBuZXdJbnN0YW5jZShpbml0OiBQYXJ0aWFsPFRFbnRpdHk+KTogVEVudGl0eSB7XHJcblx0XHQvKiBDcmVhdGUgYSBuZXcgZW50aXR5IGluc3RhbmNlICovXHJcblx0XHRyZXR1cm4gbmV3IHRoaXMuZW50aXR5KGluaXQpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQWRkcyBtZW51IGl0ZW1zIHRvIHRoZSByb3cgb3B0aW9ucyBmb3IgbWFuYWdpbmcgaW5kaXZpZHVhbCBpdGVtcy5cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgYWRkUm93TWVudUl0ZW1zKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5lZGl0YWJsZSA9IGZhbHNlO1xyXG5cdFx0c3VwZXIuYWRkUm93TWVudUl0ZW1zKCk7XHJcblx0fVxyXG59Il19
@@ -13,124 +13,181 @@ export class TableDataSource extends DataSource {
13
13
  paginator;
14
14
  sorter;
15
15
  /**
16
- * Represents a value that changes over time.
17
- * Observers can subscribe to the subject to receive filter changes
16
+ * @property _filterChange
17
+ * @description Represents a value that changes over time.
18
+ * Observers can subscribe to this BehaviorSubject to receive filter changes.
19
+ * @type {BehaviorSubject<string>}
18
20
  */
19
21
  _filterChange = new BehaviorSubject('');
20
22
  /**
21
- * onDataLoaded: function($event)
22
- * Event emitted after the data is loaded
23
+ * @property _reloadChange
24
+ * @description Represents a value that triggers reload actions.
25
+ * It is used to notify when a reload should occur by emitting a new value.
26
+ * @type {BehaviorSubject<number>}
23
27
  */
24
28
  _reloadChange = new BehaviorSubject(0);
25
29
  /**
26
- * onDataLoaded: function($event)
27
- * Event emitted after the data is loaded
30
+ * @property onDataLoaded
31
+ * @description Event emitted after the data is loaded.
32
+ * It is a BehaviorSubject that holds pagination data or a null value if no data is loaded.
33
+ * @type {BehaviorSubject<Pagination<TEntity> | any>}
28
34
  */
29
35
  onDataLoaded = new BehaviorSubject(null);
30
36
  /**
31
- * Used to power selecting one or more options from a list.
37
+ * @property selectionModel
38
+ * @description Used to power selecting one or more options from a list.
39
+ * @type {SelectionModel<TEntity>}
32
40
  */
33
41
  selectionModel = new SelectionModel(true, []);
34
42
  /**
35
- * Gets filter
43
+ * @property filter
44
+ * @description Gets the current filter applied to the data.
45
+ * @type {string}
36
46
  */
37
47
  get filter() { return this._filterChange.value; }
38
48
  /**
39
- * Sets filter
49
+ * @property filter
50
+ * @description Sets the filter and resets the page index if the paginator exists.
51
+ * @param {string} filter - The filter value to be applied.
40
52
  */
41
53
  set filter(filter) {
54
+ /* If paginator exists, reset the page index */
42
55
  if (this.paginator) {
43
56
  this.paginator.pageIndex = 0;
44
57
  this.pageIndex = 0;
45
58
  }
59
+ /* Trigger filter change */
46
60
  this._filterChange.next(filter);
47
61
  }
48
62
  /**
49
- * Sort change event emitter
63
+ * @property onSortChange
64
+ * @description Sort change event emitter used to notify changes in sorting.
65
+ * @type {EventEmitter<Sort>}
50
66
  */
51
67
  onSortChange = new EventEmitter();
52
68
  /**
53
- * _sort: MatSort | null
69
+ * @property _sort
70
+ * @description Private instance of MatSort used to control the sorting of the table.
71
+ * @type {MatSort | null}
54
72
  */
55
73
  _sort = new MatSort();
56
74
  /**
57
- * Instance of the MatSort directive used by the table to control its sorting. Sort changes
58
- * emitted by the MatSort will trigger an update to the table's rendered data.
75
+ * @property sort
76
+ * @description Gets or sets the MatSort instance used to control the sorting of the table.
77
+ * Changes in sorting will trigger an update to the table’s rendered data.
78
+ * @type {MatSort | undefined}
59
79
  */
60
80
  get sort() { return this._sort; }
61
81
  set sort(sort) {
82
+ /* Set the sort and subscribe to sort changes */
62
83
  this._sort = sort;
63
84
  this._sort?.sortChange.subscribe(x => this.onSortChange.emit(x));
64
85
  }
65
86
  /**
66
- * Gets reload token
87
+ * @property reloadToken
88
+ * @description Gets the current reload token, used to trigger reload events.
89
+ * @type {number}
67
90
  */
68
91
  get reloadToken() { return this._reloadChange.value; }
69
92
  /**
70
- * isConnected: boolean
93
+ * @property isConnected
94
+ * @description Flag indicating whether the data source is connected.
95
+ * @type {boolean}
71
96
  */
72
97
  isConnected = false;
73
98
  /**
74
- * The navigations to includes
99
+ * @property includes
100
+ * @description The list of navigations to be included in the data query.
101
+ * @type {Array<string>}
75
102
  */
76
103
  includes = [];
77
104
  /**
78
- * The endpoint path
105
+ * @property path
106
+ * @description The endpoint path for the data source.
107
+ * @type {string | undefined}
79
108
  */
80
109
  path;
81
110
  /**
82
- * projection: string | string[]
111
+ * @property projection
112
+ * @description Defines the fields to be included in the data query projection.
113
+ * @type {string | string[]}
83
114
  */
84
115
  projection = '';
85
116
  /**
86
- * The list of items
117
+ * @property items
118
+ * @description The list of items to be displayed in the data table.
119
+ * @type {TEntity[]}
87
120
  */
88
121
  items = [];
89
122
  /**
90
- * The parameters for pagination and sorting.
123
+ * @property parameters
124
+ * @description The parameters for pagination and sorting.
125
+ * @type {any}
91
126
  */
92
127
  parameters;
93
128
  /**
94
- * The list of facets for filtering items.
129
+ * @property facets
130
+ * @description The list of facets for filtering items.
131
+ * @type {Facet[] | undefined}
95
132
  */
96
133
  facets;
97
134
  /**
98
- * Used to add some field filters
135
+ * @property fieldFilters
136
+ * @description A set of field filters applied to the data.
137
+ * @type {any}
99
138
  */
100
139
  fieldFilters = {};
101
140
  /**
102
- * Used to add some field operators
141
+ * @property fieldOperators
142
+ * @description A set of field operators used for filtering.
143
+ * @type {any}
103
144
  */
104
145
  fieldOperators = {};
105
146
  /**
106
- * Used to add some static field filters
147
+ * @property staticFieldFilters
148
+ * @description A set of static field filters applied to the data.
149
+ * @type {any}
107
150
  */
108
151
  staticFieldFilters = {};
109
152
  /**
110
- * The current page index.
153
+ * @property pageIndex
154
+ * @description The current page index for pagination.
155
+ * @type {number}
111
156
  */
112
157
  pageIndex = 0;
113
158
  /**
114
- * The current total number of items being paged
159
+ * @property total
160
+ * @description The current total number of items being paged.
161
+ * @type {number}
115
162
  */
116
163
  total = 0;
117
164
  /**
118
- * The current page size
165
+ * @property pageSize
166
+ * @description The number of items displayed per page in the data-table.
167
+ * It controls how many records are shown on a single page.
168
+ * @type {number}
119
169
  */
120
170
  pageSize = 15;
121
171
  /**
122
- * Number of pages
172
+ * @property pageCount
173
+ * @description The total number of pages based on pagination.
174
+ * @type {number}
123
175
  */
124
176
  pageCount = 0;
125
177
  /**
126
- * A flag to show loading process
178
+ * @property isLoading
179
+ * @description Flag to show the loading process when the data is being fetched.
180
+ * @type {boolean}
127
181
  */
128
182
  isLoading = false;
129
183
  /**
130
- * Constructor
131
- * @param service
132
- * @param paginator
133
- * @param sort
184
+ * @constructor
185
+ * @description Initializes a new instance of the class and sets up the service, paginator, and sorter.
186
+ * The paginator and sorter are optional parameters used for handling pagination and sorting logic
187
+ * for the data displayed in the table.
188
+ * @param {TService} service - The service used for fetching and managing data.
189
+ * @param {MatPaginator} [paginator] - The paginator instance used for pagination functionality.
190
+ * @param {MatSort} [sorter] - The MatSort instance used for sorting functionality.
134
191
  */
135
192
  constructor(service, paginator, sorter) {
136
193
  super();
@@ -266,4 +323,4 @@ export class TableDataSource extends DataSource {
266
323
  */
267
324
  getSelectedIds = () => this.getSelected('id');
268
325
  }
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi90YWJsZS90YWJsZS5kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdDLE9BQU8sRUFBRSxPQUFPLEVBQVEsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFjLEtBQUssRUFBRSxFQUFFLElBQUksWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFLbEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBbUUsU0FBUSxVQUFtQjtJQXFKbEc7SUFDQTtJQUNBO0lBckpSOzs7T0FHRztJQUNLLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVoRDs7O09BR0c7SUFDSSxhQUFhLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFFdEQ7OztPQUdHO0lBQ0ksWUFBWSxHQUFHLElBQUksZUFBZSxDQUE0QixJQUFJLENBQUMsQ0FBQztJQUUzRTs7T0FFRztJQUNJLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBVSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFOUQ7O09BRUc7SUFDSCxJQUFJLE1BQU0sS0FBYSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUV6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Q0FBQztpQkFDL0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBRSxDQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFcEQsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN4RCxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDakMsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLEdBQUcsQ0FBUSxHQUFXLEVBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLENBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRTdHOztPQUVHO0lBQ0ksY0FBYyxHQUFHLEdBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQVMsSUFBSSxDQUFDLENBQUM7Q0FDdkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uVmlld2VyLCBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xyXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNvcnQsIFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBtZXJnZSwgb2YgYXMgb2JzZXJ2YWJsZU9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc2tpcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uL2NvbW1vbi9mdW5jdGlvbnMvdXRpbHMnO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uL2h0dHAvc2VydmljZXMvZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFjZXQgfSBmcm9tICcuL21vZGVscy9mYWNldCc7XHJcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuL21vZGVscy9wYWdpbmF0aW9uJztcclxuXHJcbi8qKlxyXG4gKiBBIGdlbmVyaWMgZGF0YXNvdXJjZSBmb3IgZGF0YS10YWJsZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRhYmxlRGF0YVNvdXJjZTxURW50aXR5LCBUU2VydmljZSBleHRlbmRzIEdlbmVyaWNTZXJ2aWNlPFRFbnRpdHk+PiBleHRlbmRzIERhdGFTb3VyY2U8VEVudGl0eT4ge1xyXG5cclxuXHQvKipcclxuXHQgKiBSZXByZXNlbnRzIGEgdmFsdWUgdGhhdCBjaGFuZ2VzIG92ZXIgdGltZS4gXHJcblx0ICogT2JzZXJ2ZXJzIGNhbiBzdWJzY3JpYmUgdG8gdGhlIHN1YmplY3QgdG8gcmVjZWl2ZSBmaWx0ZXIgY2hhbmdlc1xyXG5cdCAqL1xyXG5cdHByaXZhdGUgX2ZpbHRlckNoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xyXG5cclxuXHQvKipcclxuXHQgKiBvbkRhdGFMb2FkZWQ6IGZ1bmN0aW9uKCRldmVudClcclxuXHQgKiBFdmVudCBlbWl0dGVkIGFmdGVyIHRoZSBkYXRhIGlzIGxvYWRlZFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBfcmVsb2FkQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG5cclxuXHQvKipcclxuXHQgKiBvbkRhdGFMb2FkZWQ6IGZ1bmN0aW9uKCRldmVudClcclxuXHQgKiBFdmVudCBlbWl0dGVkIGFmdGVyIHRoZSBkYXRhIGlzIGxvYWRlZFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBvbkRhdGFMb2FkZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhZ2luYXRpb248VEVudGl0eT4gfCBhbnk+KG51bGwpO1xyXG5cclxuXHQvKipcclxuXHQgKiBVc2VkIHRvIHBvd2VyIHNlbGVjdGluZyBvbmUgb3IgbW9yZSBvcHRpb25zIGZyb20gYSBsaXN0LlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxURW50aXR5Pih0cnVlLCBbXSk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgZmlsdGVyXHJcblx0ICovXHJcblx0Z2V0IGZpbHRlcigpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fZmlsdGVyQ2hhbmdlLnZhbHVlOyB9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldHMgZmlsdGVyXHJcblx0ICovXHJcblx0c2V0IGZpbHRlcihmaWx0ZXI6IHN0cmluZykge1xyXG5cdFx0aWYgKHRoaXMucGFnaW5hdG9yKSB7XHJcblx0XHRcdHRoaXMucGFnaW5hdG9yLnBhZ2VJbmRleCA9IDA7XHJcblx0XHRcdHRoaXMucGFnZUluZGV4ID0gMDtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLl9maWx0ZXJDaGFuZ2UubmV4dChmaWx0ZXIpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU29ydCBjaGFuZ2UgZXZlbnQgZW1pdHRlclxyXG5cdCAqL1xyXG5cdHByaXZhdGUgb25Tb3J0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8U29ydD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIF9zb3J0OiBNYXRTb3J0IHwgbnVsbFxyXG5cdCAqL1xyXG5cdHByaXZhdGUgX3NvcnQ/OiBNYXRTb3J0ID0gbmV3IE1hdFNvcnQoKTtcclxuXHJcblx0LyoqXHJcblx0ICogSW5zdGFuY2Ugb2YgdGhlIE1hdFNvcnQgZGlyZWN0aXZlIHVzZWQgYnkgdGhlIHRhYmxlIHRvIGNvbnRyb2wgaXRzIHNvcnRpbmcuIFNvcnQgY2hhbmdlc1xyXG5cdCAqIGVtaXR0ZWQgYnkgdGhlIE1hdFNvcnQgd2lsbCB0cmlnZ2VyIGFuIHVwZGF0ZSB0byB0aGUgdGFibGUncyByZW5kZXJlZCBkYXRhLlxyXG5cdCAqL1xyXG5cdGdldCBzb3J0KCk6IE1hdFNvcnQgfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5fc29ydDsgfVxyXG5cdHNldCBzb3J0KHNvcnQ6IE1hdFNvcnQgfCB1bmRlZmluZWQpIHtcclxuXHRcdHRoaXMuX3NvcnQgPSBzb3J0O1xyXG5cdFx0dGhpcy5fc29ydD8uc29ydENoYW5nZS5zdWJzY3JpYmUoeCA9PiB0aGlzLm9uU29ydENoYW5nZS5lbWl0KHgpKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgcmVsb2FkIHRva2VuXHJcblx0ICovXHJcblx0Z2V0IHJlbG9hZFRva2VuKCk6IG51bWJlciB7IHJldHVybiB0aGlzLl9yZWxvYWRDaGFuZ2UudmFsdWU7IH1cclxuXHJcblx0LyoqXHJcblx0ICogaXNDb25uZWN0ZWQ6IGJvb2xlYW5cclxuXHQgKi9cclxuXHRwdWJsaWMgaXNDb25uZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIG5hdmlnYXRpb25zIHRvIGluY2x1ZGVzXHJcblx0ICovXHJcblx0cHVibGljIGluY2x1ZGVzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBlbmRwb2ludCBwYXRoXHJcblx0ICovXHJcblx0cHVibGljIHBhdGg/OiBzdHJpbmc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHByb2plY3Rpb246IHN0cmluZyB8IHN0cmluZ1tdXHJcblx0ICovXHJcblx0cHVibGljIHByb2plY3Rpb246IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBsaXN0IG9mIGl0ZW1zXHJcblx0ICovXHJcblx0cHVibGljIGl0ZW1zOiBURW50aXR5W10gPSBbXTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIHBhcmFtZXRlcnMgZm9yIHBhZ2luYXRpb24gYW5kIHNvcnRpbmcuXHJcblx0ICovXHJcblx0cHVibGljIHBhcmFtZXRlcnM/OiBhbnk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBsaXN0IG9mIGZhY2V0cyBmb3IgZmlsdGVyaW5nIGl0ZW1zLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBmYWNldHM/OiBGYWNldFtdO1xyXG5cclxuXHQvKipcclxuXHQgKiBVc2VkIHRvIGFkZCBzb21lIGZpZWxkIGZpbHRlcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgZmllbGRGaWx0ZXJzOiBhbnkgPSB7fTtcclxuXHJcblx0LyoqXHJcblx0ICogVXNlZCB0byBhZGQgc29tZSBmaWVsZCBvcGVyYXRvcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgZmllbGRPcGVyYXRvcnM6IGFueSA9IHt9O1xyXG5cclxuXHQvKipcclxuXHQgKiBVc2VkIHRvIGFkZCBzb21lIHN0YXRpYyBmaWVsZCBmaWx0ZXJzXHJcblx0ICovXHJcblx0cHVibGljIHN0YXRpY0ZpZWxkRmlsdGVyczogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBjdXJyZW50IHBhZ2UgaW5kZXguXHJcblx0ICovXHJcblx0cHVibGljIHBhZ2VJbmRleDogbnVtYmVyID0gMDtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIGN1cnJlbnQgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIGJlaW5nIHBhZ2VkXHJcblx0ICovXHJcblx0cHVibGljIHRvdGFsOiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgY3VycmVudCBwYWdlIHNpemVcclxuXHQgKi9cclxuXHRwdWJsaWMgcGFnZVNpemU6IG51bWJlciA9IDE1O1xyXG5cclxuXHQvKipcclxuXHQgKiBOdW1iZXIgb2YgcGFnZXNcclxuXHQgKi9cclxuXHRwdWJsaWMgcGFnZUNvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBBIGZsYWcgdG8gc2hvdyBsb2FkaW5nIHByb2Nlc3NcclxuXHQgKi9cclxuXHRwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbnN0cnVjdG9yXHJcblx0ICogQHBhcmFtIHNlcnZpY2UgXHJcblx0ICogQHBhcmFtIHBhZ2luYXRvciBcclxuXHQgKiBAcGFyYW0gc29ydCBcclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyBzZXJ2aWNlOiBUU2VydmljZSxcclxuXHRcdHB1YmxpYyBwYWdpbmF0b3I/OiBNYXRQYWdpbmF0b3IsXHJcblx0XHRwdWJsaWMgc29ydGVyPzogTWF0U29ydFxyXG5cdCkge1xyXG5cdFx0c3VwZXIoKTtcclxuXHRcdHRoaXMuc29ydCA9IHNvcnRlcjtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbm5lY3RzIGEgY29sbGVjdGlvbiB2aWV3ZXIgKHN1Y2ggYXMgYSBkYXRhLXRhYmxlKSB0byB0aGlzIGRhdGEgc291cmNlLlxyXG5cdCAqIEBwYXJhbSBfIFRoZSBjb21wb25lbnQgdGhhdCBleHBvc2VzIGEgdmlldyBvdmVyIHRoZSBkYXRhIHByb3ZpZGVkIGJ5IHRoaXNcclxuXHQgKiAgICAgZGF0YSBzb3VyY2UuXHJcblx0ICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGEgbmV3IHZhbHVlIHdoZW4gdGhlIGRhdGEgY2hhbmdlcy5cclxuXHQgKi9cclxuXHRwdWJsaWMgY29ubmVjdChfPzogQ29sbGVjdGlvblZpZXdlcik6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XHJcblx0XHR0aGlzLmlzQ29ubmVjdGVkID0gdHJ1ZTtcclxuXHJcblx0XHQvKiBBIGxpc3Qgb2YgZmllbGRzIHRvIG9ic2VydmUgICovXHJcblx0XHRjb25zdCBkaXNwbGF5RGF0YUNoYW5nZXMgPSBbXHJcblx0XHRcdHRoaXMub25Tb3J0Q2hhbmdlLFxyXG5cdFx0XHR0aGlzLnBhZ2luYXRvcj8ucGFnZSxcclxuXHRcdFx0dGhpcy5fZmlsdGVyQ2hhbmdlLFxyXG5cdFx0XHR0aGlzLl9yZWxvYWRDaGFuZ2VcclxuXHRcdF07XHJcblxyXG5cdFx0LyogSWYgdGhlIHVzZXIgY2hhbmdlcyB0aGUgc29ydCBvcmRlciwgcmVzZXQgYmFjayB0byB0aGUgZmlyc3QgcGFnZSAqL1xyXG5cdFx0aWYgKHRoaXMucGFnaW5hdG9yKSB7XHJcblx0XHRcdHRoaXMub25Tb3J0Q2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7IHRoaXMucGFnaW5hdG9yIS5wYWdlSW5kZXggPSAwOyB9KTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gbWVyZ2UoLi4uZGlzcGxheURhdGFDaGFuZ2VzKVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRza2lwKDEpLFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgoKSA9PiB7XHJcblx0XHRcdFx0XHQvKiBGbGlwIGZsYWcgdG8gc2hvdyB0aGF0IGxvYWRpbmcgaGFzIGJlZ3VuICovXHJcblx0XHRcdFx0XHR0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG5cdFx0XHRcdFx0LyogUmVtb3ZlIGVtcHR5IGZpbHRlcnMgKi9cclxuXHRcdFx0XHRcdFV0aWxzLmNsZWFuT2JqZWN0KHRoaXMuZmllbGRGaWx0ZXJzKTtcclxuXHRcdFx0XHRcdFV0aWxzLmNsZWFuT2JqZWN0KHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzKTtcclxuXHJcblx0XHRcdFx0XHQvKiBMb2FkIGRhdGEgYW5kIHJldHVybiBpdCAqL1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuc2VydmljZS5nZXRMaXN0KFV0aWxzLmNsZWFuT2JqZWN0KE9iamVjdC5hc3NpZ24oe1xyXG5cdFx0XHRcdFx0XHRpbmNsdWRlczogdGhpcy5pbmNsdWRlcyxcclxuXHRcdFx0XHRcdFx0cHJvamVjdGlvbjogQXJyYXkuaXNBcnJheSh0aGlzLnByb2plY3Rpb24pID8gdGhpcy5wcm9qZWN0aW9uLmpvaW4oJywnKSA6IHRoaXMucHJvamVjdGlvbixcclxuXHRcdFx0XHRcdFx0cGFnZTogKHRoaXMucGFnaW5hdG9yPy5wYWdlSW5kZXggPz8gMCkgKyAxLFxyXG5cdFx0XHRcdFx0XHRwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3I/LnBhZ2VTaXplID8/IDE1LFxyXG5cdFx0XHRcdFx0XHRzZWFyY2g6IHRoaXMuZmlsdGVyLnRvTG93ZXJDYXNlKCksXHJcblx0XHRcdFx0XHRcdHNvcnRCeTogdGhpcy5zb3J0Py5hY3RpdmUsXHJcblx0XHRcdFx0XHRcdHNvcnRPcmRlcjogdGhpcy5zb3J0Py5kaXJlY3Rpb25cclxuXHRcdFx0XHRcdH0sIHRoaXMuZmllbGRGaWx0ZXJzID8/IHt9LCB0aGlzLnN0YXRpY0ZpZWxkRmlsdGVycyA/PyB7fSkpLCB0aGlzLnBhdGggPz8gJycsIHsgJ0NoZWNrT3V0JzogJ1llcycgfSk7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0bWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0LyogRmxpcCBmbGFnIHRvIHNob3cgdGhhdCBsb2FkaW5nIGhhcyBmaW5pc2hlZCAqL1xyXG5cdFx0XHRcdFx0dGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0XHQvKiBVcGRhdGUgcGFnaW5hdGlvbiBmaWVsZHMgKi9cclxuXHRcdFx0XHRcdHRoaXMucGFnZUluZGV4ID0gTWF0aC5tYXgoTWF0aC5taW4ocmVzdWx0LnBhZ2UgLSAxLCByZXN1bHQucGFnZUNvdW50IC0gMSksIDApO1xyXG5cdFx0XHRcdFx0dGhpcy50b3RhbCA9IHJlc3VsdC50b3RhbDtcclxuXHRcdFx0XHRcdHRoaXMucGFnZVNpemUgPSByZXN1bHQucGFnZVNpemU7XHJcblx0XHRcdFx0XHR0aGlzLnBhZ2VDb3VudCA9IHJlc3VsdC5wYWdlQ291bnQ7XHJcblx0XHRcdFx0XHR0aGlzLml0ZW1zID0gcmVzdWx0Lml0ZW1zO1xyXG5cdFx0XHRcdFx0dGhpcy5mYWNldHMgPSByZXN1bHQuZmFjZXRzO1xyXG5cdFx0XHRcdFx0dGhpcy5wYXJhbWV0ZXJzID0gcmVzdWx0LnBhcmFtZXRlcnM7XHJcblxyXG5cdFx0XHRcdFx0LyogUmFpc2Ugb25sb2FkIGV2ZW50ICovXHJcblx0XHRcdFx0XHR0aGlzLm9uRGF0YUxvYWRlZC5uZXh0KHJlc3VsdCk7XHJcblxyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuaXRlbXM7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0Y2F0Y2hFcnJvcigoKSA9PiB7XHJcblx0XHRcdFx0XHQvKiBGbGlwIGZsYWcgdG8gc2hvdyB0aGF0IGxvYWRpbmcgaGFzIGZpbmlzaGVkICovXHJcblx0XHRcdFx0XHR0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuXHRcdFx0XHRcdHJldHVybiBvYnNlcnZhYmxlT2YoW10pO1xyXG5cdFx0XHRcdH0pKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIERpc2Nvbm5lY3RzIGEgY29sbGVjdGlvbiB2aWV3ZXIgKHN1Y2ggYXMgYSBkYXRhLXRhYmxlKSBmcm9tIHRoaXMgZGF0YSBzb3VyY2UuIENhbiBiZSB1c2VkXHJcblx0ICogdG8gcGVyZm9ybSBhbnkgY2xlYW4tdXAgb3IgdGVhci1kb3duIG9wZXJhdGlvbnMgd2hlbiBhIHZpZXcgaXMgYmVpbmcgZGVzdHJveWVkLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIF8gVGhlIGNvbXBvbmVudCB0aGF0IGV4cG9zZXMgYSB2aWV3IG92ZXIgdGhlIGRhdGEgcHJvdmlkZWQgYnkgdGhpc1xyXG5cdCAqICAgICBkYXRhIHNvdXJjZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgZGlzY29ubmVjdChfOiBDb2xsZWN0aW9uVmlld2VyKTogdm9pZCB7XHJcblx0XHR0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZWxvYWRzIGl0ZW1zXHJcblx0ICogQHBhcmFtIGNsZWFyU2VsZWN0aW9uIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyByZWxvYWQoY2xlYXJTZWxlY3Rpb246IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcblx0XHR0aGlzLl9yZWxvYWRDaGFuZ2UubmV4dChNYXRoLnJhbmRvbSgpKTtcclxuXHJcblx0XHRpZiAoY2xlYXJTZWxlY3Rpb24pIHtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2xlYXJzIGZpZWxkIGZpbHRlcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgYXBwbHlGaWx0ZXJzKG5ld0ZpbHRlcnM6IGFueSA9IHt9KTogdm9pZCB7XHJcblx0XHR0aGlzLmZpZWxkRmlsdGVycyA9IG5ld0ZpbHRlcnMgfHwge307XHJcblx0XHR0aGlzLnJlbG9hZCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2xlYXJzIGZpZWxkIGZpbHRlcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgY2xlYXJGaWx0ZXJzKG5ld0ZpbHRlcnM6IGFueSA9IHt9KTogdm9pZCB7XHJcblx0XHR0aGlzLmZpZWxkRmlsdGVycyA9IG5ld0ZpbHRlcnMgfHwge307XHJcblx0XHR0aGlzLnJlbG9hZCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2tzLCB3aGV0aGVyIGFsbCBpdGVtcyBhcmUgc2VsZWN0ZWRcclxuXHQgKi9cclxuXHRwdWJsaWMgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuXHRcdGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLnRvdGFsO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVG9nZ2xlcyBzZWxlY3RlZCBpdGVtc1xyXG5cdCAqIEBwYXJhbSBjaGVja2JveCBcclxuXHQgKiBAcGFyYW0gcHJlZGljYXRlXHJcblx0ICovXHJcblx0cHVibGljIHRvZ2dsZVNlbGVjdChjaGVja2JveDogTWF0Q2hlY2tib3hDaGFuZ2UsIHByZWRpY2F0ZT86ICh2YWx1ZTogVEVudGl0eSwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRFbnRpdHlbXSkgPT4gdW5rbm93bikge1xyXG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwuaGFzVmFsdWUoKSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XHJcblx0XHRcdGNoZWNrYm94LnNvdXJjZS5jaGVja2VkID0gZmFsc2U7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLml0ZW1zLmZpbHRlcihwcmVkaWNhdGUgPyBwcmVkaWNhdGUgOiB4ID0+IHgpXHJcblx0XHRcdFx0LmZpbHRlcih4ID0+ICEoeCBhcyBhbnkpWydsb2NrZWQnXSlcclxuXHRcdFx0XHQuZm9yRWFjaChkYXRhID0+IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KGRhdGEpKTtcclxuXHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmxlbmd0aCAhPT0gdGhpcy50b3RhbCkge1xyXG5cdFx0XHRcdGNoZWNrYm94LnNvdXJjZS5jaGVja2VkID0gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldCBzZWxlY3RlZCBJdGVtc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXRTZWxlY3RlZCA9IDxUVHlwZT4oa2V5OiBzdHJpbmcpOiBUVHlwZVtdID0+IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubWFwKHggPT4gKHggYXMgYW55KVtrZXldKTtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0IHNlbGVjdGVkIEl0ZW1zXHJcblx0ICovXHJcblx0cHVibGljIGdldFNlbGVjdGVkSWRzID0gKCk6IG51bWJlcltdID0+IHRoaXMuZ2V0U2VsZWN0ZWQ8bnVtYmVyPignaWQnKTtcclxufSJdfQ==
326
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi90YWJsZS90YWJsZS5kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdDLE9BQU8sRUFBRSxPQUFPLEVBQVEsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFjLEtBQUssRUFBRSxFQUFFLElBQUksWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFLbEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBbUUsU0FBUSxVQUFtQjtJQTZNbEc7SUFDQTtJQUNBO0lBOU1SOzs7OztPQUtHO0lBQ0ssYUFBYSxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBRXhEOzs7OztPQUtHO0lBQ0ksYUFBYSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBRXREOzs7OztPQUtHO0lBQ0ksWUFBWSxHQUFHLElBQUksZUFBZSxDQUE0QixJQUFJLENBQUMsQ0FBQztJQUUzRTs7OztPQUlHO0lBQ0ksY0FBYyxHQUFHLElBQUksY0FBYyxDQUFVLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU5RDs7OztPQUlHO0lBQ0gsSUFBSSxNQUFNLEtBQWEsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFD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QUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDL0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBRSxDQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFcEQsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN4RCxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDakMsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLEdBQUcsQ0FBUSxHQUFXLEVBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLENBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRTdHOztPQUVHO0lBQ0ksY0FBYyxHQUFHLEdBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQVMsSUFBSSxDQUFDLENBQUM7Q0FDdkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uVmlld2VyLCBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xyXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNvcnQsIFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBtZXJnZSwgb2YgYXMgb2JzZXJ2YWJsZU9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc2tpcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uL2NvbW1vbi9mdW5jdGlvbnMvdXRpbHMnO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uL2h0dHAvc2VydmljZXMvZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFjZXQgfSBmcm9tICcuL21vZGVscy9mYWNldCc7XHJcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuL21vZGVscy9wYWdpbmF0aW9uJztcclxuXHJcbi8qKlxyXG4gKiBBIGdlbmVyaWMgZGF0YXNvdXJjZSBmb3IgZGF0YS10YWJsZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRhYmxlRGF0YVNvdXJjZTxURW50aXR5LCBUU2VydmljZSBleHRlbmRzIEdlbmVyaWNTZXJ2aWNlPFRFbnRpdHk+PiBleHRlbmRzIERhdGFTb3VyY2U8VEVudGl0eT4ge1xyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBfZmlsdGVyQ2hhbmdlXHJcblx0ICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgYSB2YWx1ZSB0aGF0IGNoYW5nZXMgb3ZlciB0aW1lLiBcclxuXHQgKiBPYnNlcnZlcnMgY2FuIHN1YnNjcmliZSB0byB0aGlzIEJlaGF2aW9yU3ViamVjdCB0byByZWNlaXZlIGZpbHRlciBjaGFuZ2VzLlxyXG5cdCAqIEB0eXBlIHtCZWhhdmlvclN1YmplY3Q8c3RyaW5nPn1cclxuXHQgKi9cclxuXHRwcml2YXRlIF9maWx0ZXJDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgX3JlbG9hZENoYW5nZVxyXG5cdCAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIGEgdmFsdWUgdGhhdCB0cmlnZ2VycyByZWxvYWQgYWN0aW9ucy4gXHJcblx0ICogSXQgaXMgdXNlZCB0byBub3RpZnkgd2hlbiBhIHJlbG9hZCBzaG91bGQgb2NjdXIgYnkgZW1pdHRpbmcgYSBuZXcgdmFsdWUuXHJcblx0ICogQHR5cGUge0JlaGF2aW9yU3ViamVjdDxudW1iZXI+fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBfcmVsb2FkQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgb25EYXRhTG9hZGVkXHJcblx0ICogQGRlc2NyaXB0aW9uIEV2ZW50IGVtaXR0ZWQgYWZ0ZXIgdGhlIGRhdGEgaXMgbG9hZGVkLiBcclxuXHQgKiBJdCBpcyBhIEJlaGF2aW9yU3ViamVjdCB0aGF0IGhvbGRzIHBhZ2luYXRpb24gZGF0YSBvciBhIG51bGwgdmFsdWUgaWYgbm8gZGF0YSBpcyBsb2FkZWQuXHJcblx0ICogQHR5cGUge0JlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPFRFbnRpdHk+IHwgYW55Pn1cclxuXHQgKi9cclxuXHRwdWJsaWMgb25EYXRhTG9hZGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPFRFbnRpdHk+IHwgYW55PihudWxsKTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IHNlbGVjdGlvbk1vZGVsXHJcblx0ICogQGRlc2NyaXB0aW9uIFVzZWQgdG8gcG93ZXIgc2VsZWN0aW5nIG9uZSBvciBtb3JlIG9wdGlvbnMgZnJvbSBhIGxpc3QuXHJcblx0ICogQHR5cGUge1NlbGVjdGlvbk1vZGVsPFRFbnRpdHk+fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxURW50aXR5Pih0cnVlLCBbXSk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBmaWx0ZXJcclxuXHQgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgY3VycmVudCBmaWx0ZXIgYXBwbGllZCB0byB0aGUgZGF0YS5cclxuXHQgKiBAdHlwZSB7c3RyaW5nfVxyXG5cdCAqL1xyXG5cdGdldCBmaWx0ZXIoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX2ZpbHRlckNoYW5nZS52YWx1ZTsgfVxyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgZmlsdGVyXHJcblx0ICogQGRlc2NyaXB0aW9uIFNldHMgdGhlIGZpbHRlciBhbmQgcmVzZXRzIHRoZSBwYWdlIGluZGV4IGlmIHRoZSBwYWdpbmF0b3IgZXhpc3RzLlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBmaWx0ZXIgLSBUaGUgZmlsdGVyIHZhbHVlIHRvIGJlIGFwcGxpZWQuXHJcblx0ICovXHJcblx0c2V0IGZpbHRlcihmaWx0ZXI6IHN0cmluZykge1xyXG5cdFx0LyogSWYgcGFnaW5hdG9yIGV4aXN0cywgcmVzZXQgdGhlIHBhZ2UgaW5kZXggKi9cclxuXHRcdGlmICh0aGlzLnBhZ2luYXRvcikge1xyXG5cdFx0XHR0aGlzLnBhZ2luYXRvci5wYWdlSW5kZXggPSAwO1xyXG5cdFx0XHR0aGlzLnBhZ2VJbmRleCA9IDA7XHJcblx0XHR9XHJcblxyXG5cdFx0LyogVHJpZ2dlciBmaWx0ZXIgY2hhbmdlICovXHJcblx0XHR0aGlzLl9maWx0ZXJDaGFuZ2UubmV4dChmaWx0ZXIpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IG9uU29ydENoYW5nZVxyXG5cdCAqIEBkZXNjcmlwdGlvbiBTb3J0IGNoYW5nZSBldmVudCBlbWl0dGVyIHVzZWQgdG8gbm90aWZ5IGNoYW5nZXMgaW4gc29ydGluZy5cclxuXHQgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPFNvcnQ+fVxyXG5cdCAqL1xyXG5cdHByaXZhdGUgb25Tb3J0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8U29ydD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBfc29ydFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBQcml2YXRlIGluc3RhbmNlIG9mIE1hdFNvcnQgdXNlZCB0byBjb250cm9sIHRoZSBzb3J0aW5nIG9mIHRoZSB0YWJsZS5cclxuXHQgKiBAdHlwZSB7TWF0U29ydCB8IG51bGx9XHJcblx0ICovXHJcblx0cHJpdmF0ZSBfc29ydD86IE1hdFNvcnQgPSBuZXcgTWF0U29ydCgpO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgc29ydFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBHZXRzIG9yIHNldHMgdGhlIE1hdFNvcnQgaW5zdGFuY2UgdXNlZCB0byBjb250cm9sIHRoZSBzb3J0aW5nIG9mIHRoZSB0YWJsZS5cclxuXHQgKiBDaGFuZ2VzIGluIHNvcnRpbmcgd2lsbCB0cmlnZ2VyIGFuIHVwZGF0ZSB0byB0aGUgdGFibGXigJlzIHJlbmRlcmVkIGRhdGEuXHJcblx0ICogQHR5cGUge01hdFNvcnQgfCB1bmRlZmluZWR9XHJcblx0ICovXHJcblx0Z2V0IHNvcnQoKTogTWF0U29ydCB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLl9zb3J0OyB9XHJcblx0c2V0IHNvcnQoc29ydDogTWF0U29ydCB8IHVuZGVmaW5lZCkge1xyXG5cdFx0LyogU2V0IHRoZSBzb3J0IGFuZCBzdWJzY3JpYmUgdG8gc29ydCBjaGFuZ2VzICovXHJcblx0XHR0aGlzLl9zb3J0ID0gc29ydDtcclxuXHRcdHRoaXMuX3NvcnQ/LnNvcnRDaGFuZ2Uuc3Vic2NyaWJlKHggPT4gdGhpcy5vblNvcnRDaGFuZ2UuZW1pdCh4KSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcmVsb2FkVG9rZW5cclxuXHQgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgY3VycmVudCByZWxvYWQgdG9rZW4sIHVzZWQgdG8gdHJpZ2dlciByZWxvYWQgZXZlbnRzLlxyXG5cdCAqIEB0eXBlIHtudW1iZXJ9XHJcblx0ICovXHJcblx0Z2V0IHJlbG9hZFRva2VuKCk6IG51bWJlciB7IHJldHVybiB0aGlzLl9yZWxvYWRDaGFuZ2UudmFsdWU7IH1cclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IGlzQ29ubmVjdGVkXHJcblx0ICogQGRlc2NyaXB0aW9uIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBkYXRhIHNvdXJjZSBpcyBjb25uZWN0ZWQuXHJcblx0ICogQHR5cGUge2Jvb2xlYW59XHJcblx0ICovXHJcblx0cHVibGljIGlzQ29ubmVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBpbmNsdWRlc1xyXG5cdCAqIEBkZXNjcmlwdGlvbiBUaGUgbGlzdCBvZiBuYXZpZ2F0aW9ucyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgZGF0YSBxdWVyeS5cclxuXHQgKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cclxuXHQgKi9cclxuXHRwdWJsaWMgaW5jbHVkZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IHBhdGhcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIGVuZHBvaW50IHBhdGggZm9yIHRoZSBkYXRhIHNvdXJjZS5cclxuXHQgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYXRoPzogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcHJvamVjdGlvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIHRoZSBmaWVsZHMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGRhdGEgcXVlcnkgcHJvamVjdGlvbi5cclxuXHQgKiBAdHlwZSB7c3RyaW5nIHwgc3RyaW5nW119XHJcblx0ICovXHJcblx0cHVibGljIHByb2plY3Rpb246IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBpdGVtc1xyXG5cdCAqIEBkZXNjcmlwdGlvbiBUaGUgbGlzdCBvZiBpdGVtcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGRhdGEgdGFibGUuXHJcblx0ICogQHR5cGUge1RFbnRpdHlbXX1cclxuXHQgKi9cclxuXHRwdWJsaWMgaXRlbXM6IFRFbnRpdHlbXSA9IFtdO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcGFyYW1ldGVyc1xyXG5cdCAqIEBkZXNjcmlwdGlvbiBUaGUgcGFyYW1ldGVycyBmb3IgcGFnaW5hdGlvbiBhbmQgc29ydGluZy5cclxuXHQgKiBAdHlwZSB7YW55fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYXJhbWV0ZXJzPzogYW55O1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgZmFjZXRzXHJcblx0ICogQGRlc2NyaXB0aW9uIFRoZSBsaXN0IG9mIGZhY2V0cyBmb3IgZmlsdGVyaW5nIGl0ZW1zLlxyXG5cdCAqIEB0eXBlIHtGYWNldFtdIHwgdW5kZWZpbmVkfVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBmYWNldHM/OiBGYWNldFtdO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgZmllbGRGaWx0ZXJzXHJcblx0ICogQGRlc2NyaXB0aW9uIEEgc2V0IG9mIGZpZWxkIGZpbHRlcnMgYXBwbGllZCB0byB0aGUgZGF0YS5cclxuXHQgKiBAdHlwZSB7YW55fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBmaWVsZEZpbHRlcnM6IGFueSA9IHt9O1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgZmllbGRPcGVyYXRvcnNcclxuXHQgKiBAZGVzY3JpcHRpb24gQSBzZXQgb2YgZmllbGQgb3BlcmF0b3JzIHVzZWQgZm9yIGZpbHRlcmluZy5cclxuXHQgKiBAdHlwZSB7YW55fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBmaWVsZE9wZXJhdG9yczogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBzdGF0aWNGaWVsZEZpbHRlcnNcclxuXHQgKiBAZGVzY3JpcHRpb24gQSBzZXQgb2Ygc3RhdGljIGZpZWxkIGZpbHRlcnMgYXBwbGllZCB0byB0aGUgZGF0YS5cclxuXHQgKiBAdHlwZSB7YW55fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzdGF0aWNGaWVsZEZpbHRlcnM6IGFueSA9IHt9O1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcGFnZUluZGV4XHJcblx0ICogQGRlc2NyaXB0aW9uIFRoZSBjdXJyZW50IHBhZ2UgaW5kZXggZm9yIHBhZ2luYXRpb24uXHJcblx0ICogQHR5cGUge251bWJlcn1cclxuXHQgKi9cclxuXHRwdWJsaWMgcGFnZUluZGV4OiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgdG90YWxcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIGN1cnJlbnQgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIGJlaW5nIHBhZ2VkLlxyXG5cdCAqIEB0eXBlIHtudW1iZXJ9XHJcblx0ICovXHJcblx0cHVibGljIHRvdGFsOiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcGFnZVNpemVcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIG51bWJlciBvZiBpdGVtcyBkaXNwbGF5ZWQgcGVyIHBhZ2UgaW4gdGhlIGRhdGEtdGFibGUuXHJcblx0ICogSXQgY29udHJvbHMgaG93IG1hbnkgcmVjb3JkcyBhcmUgc2hvd24gb24gYSBzaW5nbGUgcGFnZS5cclxuXHQgKiBAdHlwZSB7bnVtYmVyfVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyID0gMTU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBwYWdlQ291bnRcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIHRvdGFsIG51bWJlciBvZiBwYWdlcyBiYXNlZCBvbiBwYWdpbmF0aW9uLlxyXG5cdCAqIEB0eXBlIHtudW1iZXJ9XHJcblx0ICovXHJcblx0cHVibGljIHBhZ2VDb3VudDogbnVtYmVyID0gMDtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IGlzTG9hZGluZ1xyXG5cdCAqIEBkZXNjcmlwdGlvbiBGbGFnIHRvIHNob3cgdGhlIGxvYWRpbmcgcHJvY2VzcyB3aGVuIHRoZSBkYXRhIGlzIGJlaW5nIGZldGNoZWQuXHJcblx0ICogQHR5cGUge2Jvb2xlYW59XHJcblx0ICovXHJcblx0cHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBAY29uc3RydWN0b3JcclxuXHQgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGNsYXNzIGFuZCBzZXRzIHVwIHRoZSBzZXJ2aWNlLCBwYWdpbmF0b3IsIGFuZCBzb3J0ZXIuXHJcblx0ICogVGhlIHBhZ2luYXRvciBhbmQgc29ydGVyIGFyZSBvcHRpb25hbCBwYXJhbWV0ZXJzIHVzZWQgZm9yIGhhbmRsaW5nIHBhZ2luYXRpb24gYW5kIHNvcnRpbmcgbG9naWNcclxuXHQgKiBmb3IgdGhlIGRhdGEgZGlzcGxheWVkIGluIHRoZSB0YWJsZS5cclxuXHQgKiBAcGFyYW0ge1RTZXJ2aWNlfSBzZXJ2aWNlIC0gVGhlIHNlcnZpY2UgdXNlZCBmb3IgZmV0Y2hpbmcgYW5kIG1hbmFnaW5nIGRhdGEuXHJcblx0ICogQHBhcmFtIHtNYXRQYWdpbmF0b3J9IFtwYWdpbmF0b3JdIC0gVGhlIHBhZ2luYXRvciBpbnN0YW5jZSB1c2VkIGZvciBwYWdpbmF0aW9uIGZ1bmN0aW9uYWxpdHkuXHJcblx0ICogQHBhcmFtIHtNYXRTb3J0fSBbc29ydGVyXSAtIFRoZSBNYXRTb3J0IGluc3RhbmNlIHVzZWQgZm9yIHNvcnRpbmcgZnVuY3Rpb25hbGl0eS5cclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyBzZXJ2aWNlOiBUU2VydmljZSxcclxuXHRcdHB1YmxpYyBwYWdpbmF0b3I/OiBNYXRQYWdpbmF0b3IsXHJcblx0XHRwdWJsaWMgc29ydGVyPzogTWF0U29ydFxyXG5cdCkge1xyXG5cdFx0c3VwZXIoKTtcclxuXHRcdHRoaXMuc29ydCA9IHNvcnRlcjtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbm5lY3RzIGEgY29sbGVjdGlvbiB2aWV3ZXIgKHN1Y2ggYXMgYSBkYXRhLXRhYmxlKSB0byB0aGlzIGRhdGEgc291cmNlLlxyXG5cdCAqIEBwYXJhbSBfIFRoZSBjb21wb25lbnQgdGhhdCBleHBvc2VzIGEgdmlldyBvdmVyIHRoZSBkYXRhIHByb3ZpZGVkIGJ5IHRoaXNcclxuXHQgKiAgICAgZGF0YSBzb3VyY2UuXHJcblx0ICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGEgbmV3IHZhbHVlIHdoZW4gdGhlIGRhdGEgY2hhbmdlcy5cclxuXHQgKi9cclxuXHRwdWJsaWMgY29ubmVjdChfPzogQ29sbGVjdGlvblZpZXdlcik6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XHJcblx0XHR0aGlzLmlzQ29ubmVjdGVkID0gdHJ1ZTtcclxuXHJcblx0XHQvKiBBIGxpc3Qgb2YgZmllbGRzIHRvIG9ic2VydmUgICovXHJcblx0XHRjb25zdCBkaXNwbGF5RGF0YUNoYW5nZXMgPSBbXHJcblx0XHRcdHRoaXMub25Tb3J0Q2hhbmdlLFxyXG5cdFx0XHR0aGlzLnBhZ2luYXRvcj8ucGFnZSxcclxuXHRcdFx0dGhpcy5fZmlsdGVyQ2hhbmdlLFxyXG5cdFx0XHR0aGlzLl9yZWxvYWRDaGFuZ2VcclxuXHRcdF07XHJcblxyXG5cdFx0LyogSWYgdGhlIHVzZXIgY2hhbmdlcyB0aGUgc29ydCBvcmRlciwgcmVzZXQgYmFjayB0byB0aGUgZmlyc3QgcGFnZSAqL1xyXG5cdFx0aWYgKHRoaXMucGFnaW5hdG9yKSB7XHJcblx0XHRcdHRoaXMub25Tb3J0Q2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7IHRoaXMucGFnaW5hdG9yIS5wYWdlSW5kZXggPSAwOyB9KTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gbWVyZ2UoLi4uZGlzcGxheURhdGFDaGFuZ2VzKVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRza2lwKDEpLFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgoKSA9PiB7XHJcblx0XHRcdFx0XHQvKiBGbGlwIGZsYWcgdG8gc2hvdyB0aGF0IGxvYWRpbmcgaGFzIGJlZ3VuICovXHJcblx0XHRcdFx0XHR0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG5cdFx0XHRcdFx0LyogUmVtb3ZlIGVtcHR5IGZpbHRlcnMgKi9cclxuXHRcdFx0XHRcdFV0aWxzLmNsZWFuT2JqZWN0KHRoaXMuZmllbGRGaWx0ZXJzKTtcclxuXHRcdFx0XHRcdFV0aWxzLmNsZWFuT2JqZWN0KHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzKTtcclxuXHJcblx0XHRcdFx0XHQvKiBMb2FkIGRhdGEgYW5kIHJldHVybiBpdCAqL1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuc2VydmljZS5nZXRMaXN0KFV0aWxzLmNsZWFuT2JqZWN0KE9iamVjdC5hc3NpZ24oe1xyXG5cdFx0XHRcdFx0XHRpbmNsdWRlczogdGhpcy5pbmNsdWRlcyxcclxuXHRcdFx0XHRcdFx0cHJvamVjdGlvbjogQXJyYXkuaXNBcnJheSh0aGlzLnByb2plY3Rpb24pID8gdGhpcy5wcm9qZWN0aW9uLmpvaW4oJywnKSA6IHRoaXMucHJvamVjdGlvbixcclxuXHRcdFx0XHRcdFx0cGFnZTogKHRoaXMucGFnaW5hdG9yPy5wYWdlSW5kZXggPz8gMCkgKyAxLFxyXG5cdFx0XHRcdFx0XHRwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3I/LnBhZ2VTaXplID8/IDE1LFxyXG5cdFx0XHRcdFx0XHRzZWFyY2g6IHRoaXMuZmlsdGVyLnRvTG93ZXJDYXNlKCksXHJcblx0XHRcdFx0XHRcdHNvcnRCeTogdGhpcy5zb3J0Py5hY3RpdmUsXHJcblx0XHRcdFx0XHRcdHNvcnRPcmRlcjogdGhpcy5zb3J0Py5kaXJlY3Rpb25cclxuXHRcdFx0XHRcdH0sIHRoaXMuZmllbGRGaWx0ZXJzID8/IHt9LCB0aGlzLnN0YXRpY0ZpZWxkRmlsdGVycyA/PyB7fSkpLCB0aGlzLnBhdGggPz8gJycsIHsgJ0NoZWNrT3V0JzogJ1llcycgfSk7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0bWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0LyogRmxpcCBmbGFnIHRvIHNob3cgdGhhdCBsb2FkaW5nIGhhcyBmaW5pc2hlZCAqL1xyXG5cdFx0XHRcdFx0dGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0XHQvKiBVcGRhdGUgcGFnaW5hdGlvbiBmaWVsZHMgKi9cclxuXHRcdFx0XHRcdHRoaXMucGFnZUluZGV4ID0gTWF0aC5tYXgoTWF0aC5taW4ocmVzdWx0LnBhZ2UgLSAxLCByZXN1bHQucGFnZUNvdW50IC0gMSksIDApO1xyXG5cdFx0XHRcdFx0dGhpcy50b3RhbCA9IHJlc3VsdC50b3RhbDtcclxuXHRcdFx0XHRcdHRoaXMucGFnZVNpemUgPSByZXN1bHQucGFnZVNpemU7XHJcblx0XHRcdFx0XHR0aGlzLnBhZ2VDb3VudCA9IHJlc3VsdC5wYWdlQ291bnQ7XHJcblx0XHRcdFx0XHR0aGlzLml0ZW1zID0gcmVzdWx0Lml0ZW1zO1xyXG5cdFx0XHRcdFx0dGhpcy5mYWNldHMgPSByZXN1bHQuZmFjZXRzO1xyXG5cdFx0XHRcdFx0dGhpcy5wYXJhbWV0ZXJzID0gcmVzdWx0LnBhcmFtZXRlcnM7XHJcblxyXG5cdFx0XHRcdFx0LyogUmFpc2Ugb25sb2FkIGV2ZW50ICovXHJcblx0XHRcdFx0XHR0aGlzLm9uRGF0YUxvYWRlZC5uZXh0KHJlc3VsdCk7XHJcblxyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuaXRlbXM7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0Y2F0Y2hFcnJvcigoKSA9PiB7XHJcblx0XHRcdFx0XHQvKiBGbGlwIGZsYWcgdG8gc2hvdyB0aGF0IGxvYWRpbmcgaGFzIGZpbmlzaGVkICovXHJcblx0XHRcdFx0XHR0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuXHRcdFx0XHRcdHJldHVybiBvYnNlcnZhYmxlT2YoW10pO1xyXG5cdFx0XHRcdH0pKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIERpc2Nvbm5lY3RzIGEgY29sbGVjdGlvbiB2aWV3ZXIgKHN1Y2ggYXMgYSBkYXRhLXRhYmxlKSBmcm9tIHRoaXMgZGF0YSBzb3VyY2UuIENhbiBiZSB1c2VkXHJcblx0ICogdG8gcGVyZm9ybSBhbnkgY2xlYW4tdXAgb3IgdGVhci1kb3duIG9wZXJhdGlvbnMgd2hlbiBhIHZpZXcgaXMgYmVpbmcgZGVzdHJveWVkLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIF8gVGhlIGNvbXBvbmVudCB0aGF0IGV4cG9zZXMgYSB2aWV3IG92ZXIgdGhlIGRhdGEgcHJvdmlkZWQgYnkgdGhpc1xyXG5cdCAqICAgICBkYXRhIHNvdXJjZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgZGlzY29ubmVjdChfOiBDb2xsZWN0aW9uVmlld2VyKTogdm9pZCB7XHJcblx0XHR0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZWxvYWRzIGl0ZW1zXHJcblx0ICogQHBhcmFtIGNsZWFyU2VsZWN0aW9uIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyByZWxvYWQoY2xlYXJTZWxlY3Rpb246IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcblx0XHR0aGlzLl9yZWxvYWRDaGFuZ2UubmV4dChNYXRoLnJhbmRvbSgpKTtcclxuXHJcblx0XHRpZiAoY2xlYXJTZWxlY3Rpb24pIHtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2xlYXJzIGZpZWxkIGZpbHRlcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgYXBwbHlGaWx0ZXJzKG5ld0ZpbHRlcnM6IGFueSA9IHt9KTogdm9pZCB7XHJcblx0XHR0aGlzLmZpZWxkRmlsdGVycyA9IG5ld0ZpbHRlcnMgfHwge307XHJcblx0XHR0aGlzLnJlbG9hZCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2xlYXJzIGZpZWxkIGZpbHRlcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgY2xlYXJGaWx0ZXJzKG5ld0ZpbHRlcnM6IGFueSA9IHt9KTogdm9pZCB7XHJcblx0XHR0aGlzLmZpZWxkRmlsdGVycyA9IG5ld0ZpbHRlcnMgfHwge307XHJcblx0XHR0aGlzLnJlbG9hZCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2tzLCB3aGV0aGVyIGFsbCBpdGVtcyBhcmUgc2VsZWN0ZWRcclxuXHQgKi9cclxuXHRwdWJsaWMgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuXHRcdGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLnRvdGFsO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVG9nZ2xlcyBzZWxlY3RlZCBpdGVtc1xyXG5cdCAqIEBwYXJhbSBjaGVja2JveCBcclxuXHQgKiBAcGFyYW0gcHJlZGljYXRlXHJcblx0ICovXHJcblx0cHVibGljIHRvZ2dsZVNlbGVjdChjaGVja2JveDogTWF0Q2hlY2tib3hDaGFuZ2UsIHByZWRpY2F0ZT86ICh2YWx1ZTogVEVudGl0eSwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRFbnRpdHlbXSkgPT4gdW5rbm93bikge1xyXG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwuaGFzVmFsdWUoKSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XHJcblx0XHRcdGNoZWNrYm94LnNvdXJjZS5jaGVja2VkID0gZmFsc2U7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLml0ZW1zLmZpbHRlcihwcmVkaWNhdGUgPyBwcmVkaWNhdGUgOiB4ID0+IHgpXHJcblx0XHRcdFx0LmZpbHRlcih4ID0+ICEoeCBhcyBhbnkpWydsb2NrZWQnXSlcclxuXHRcdFx0XHQuZm9yRWFjaChkYXRhID0+IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KGRhdGEpKTtcclxuXHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmxlbmd0aCAhPT0gdGhpcy50b3RhbCkge1xyXG5cdFx0XHRcdGNoZWNrYm94LnNvdXJjZS5jaGVja2VkID0gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldCBzZWxlY3RlZCBJdGVtc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXRTZWxlY3RlZCA9IDxUVHlwZT4oa2V5OiBzdHJpbmcpOiBUVHlwZVtdID0+IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubWFwKHggPT4gKHggYXMgYW55KVtrZXldKTtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0IHNlbGVjdGVkIEl0ZW1zXHJcblx0ICovXHJcblx0cHVibGljIGdldFNlbGVjdGVkSWRzID0gKCk6IG51bWJlcltdID0+IHRoaXMuZ2V0U2VsZWN0ZWQ8bnVtYmVyPignaWQnKTtcclxufSJdfQ==
@@ -22,6 +22,12 @@ export class TableStaticDataSource extends MatTableDataSource {
22
22
  * @type {BehaviorSubject<Pagination<TEntity> | any>}
23
23
  */
24
24
  onDataLoaded = new BehaviorSubject(null);
25
+ /**
26
+ * @property items
27
+ * @description The list of items to be displayed in the data table.
28
+ * @type {TEntity[]}
29
+ */
30
+ items = [];
25
31
  /**
26
32
  * @property selectionModel
27
33
  * @description A SelectionModel to handle selection of one or more items from the data-table.
@@ -189,4 +195,4 @@ export class TableStaticDataSource extends MatTableDataSource {
189
195
  */
190
196
  getSelected = (key = 'id') => this.selectionModel.selected.map(x => x[key]);
191
197
  }
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuc3RhdGljLWRhdGEtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvdGFibGUvdGFibGUuc3RhdGljLWRhdGEtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8scUJBQStCLFNBQVEsa0JBQTJCO0lBRTlFOzs7OztPQUtHO0lBQ0ksYUFBYSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBRXREOzs7Ozs7T0FNRztJQUNJLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBNEIsSUFBSSxDQUFDLENBQUM7SUFFM0U7Ozs7O09BS0c7SUFDSSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQVUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTlEOzs7OztPQUtHO0lBQ0gsSUFBSSxXQUFXLEtBQWEsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFOUQ7Ozs7O09BS0c7SUFDSSxZQUFZLEdBQVEsRUFBRSxDQUFDO0lBRTlCOzs7OztPQUtHO0lBQ0ksY0FBYyxHQUFRLEVBQUUsQ0FBQztJQUVoQzs7Ozs7T0FLRztJQUNJLGtCQUFrQixHQUFRLEVBQUUsQ0FBQztJQUVwQzs7Ozs7T0FLRztJQUNJLFNBQVMsR0FBVyxDQUFDLENBQUM7SUFFN0I7Ozs7O09BS0c7SUFDSSxLQUFLLEdBQVcsQ0FBQyxDQUFDO0lBRXpCOzs7OztPQUtHO0lBQ0ksUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUU3Qjs7Ozs7T0FLRztJQUNJLFNBQVMsR0FBVyxDQUFDLENB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RUFBVyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Q0FDcEgiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uIH0gZnJvbSAnLi9tb2RlbHMvcGFnaW5hdGlvbic7XHJcblxyXG4vKipcclxuICogQSBnZW5lcmljIGRhdGFzb3VyY2UgY2xhc3MgZm9yIHdvcmtpbmcgd2l0aCBkYXRhLXRhYmxlcyBpbiBBbmd1bGFyIE1hdGVyaWFsLlxyXG4gKiBUaGlzIGNsYXNzIGV4dGVuZHMgTWF0VGFibGVEYXRhU291cmNlIHRvIHByb3ZpZGUgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IGxpa2UgXHJcbiAqIHNlbGVjdGlvbiBtYW5hZ2VtZW50LCBwYWdpbmF0aW9uLCBhbmQgZmlsdGVyaW5nLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRhYmxlU3RhdGljRGF0YVNvdXJjZTxURW50aXR5PiBleHRlbmRzIE1hdFRhYmxlRGF0YVNvdXJjZTxURW50aXR5PiB7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBfcmVsb2FkQ2hhbmdlXHJcblx0ICogQGRlc2NyaXB0aW9uIEEgQmVoYXZpb3JTdWJqZWN0IHRoYXQgdHJpZ2dlcnMgYSByZWxvYWQgb2YgdGhlIHRhYmxlIGRhdGEuIFxyXG5cdCAqIFRoZSB2YWx1ZSBpcyB1c2VkIGFzIGEgcmVsb2FkIHRva2VuLCBlbnN1cmluZyB0aGUgZGF0YSBpcyByZWxvYWRlZCB3aGVuIGl0IGNoYW5nZXMuXHJcblx0ICogQHR5cGUge0JlaGF2aW9yU3ViamVjdDxudW1iZXI+fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBfcmVsb2FkQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgb25EYXRhTG9hZGVkXHJcblx0ICogQGRlc2NyaXB0aW9uIEEgQmVoYXZpb3JTdWJqZWN0IHRoYXQgaG9sZHMgdGhlIGxvYWRlZCBkYXRhIG9yIHBhZ2luYXRpb24gaW5mb3JtYXRpb24uXHJcblx0ICogVGhpcyBpcyBlbWl0dGVkIGFmdGVyIHRoZSBkYXRhIGlzIHN1Y2Nlc3NmdWxseSBsb2FkZWQsIHByb3ZpZGluZyBhIG1lY2hhbmlzbSBcclxuXHQgKiB0byB0cmFjayB0aGUgbG9hZGluZyBzdGF0ZSBhbmQgYW55IHVwZGF0ZXMgdG8gdGhlIGRhdGEuXHJcblx0ICogQHR5cGUge0JlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPFRFbnRpdHk+IHwgYW55Pn1cclxuXHQgKi9cclxuXHRwdWJsaWMgb25EYXRhTG9hZGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPFRFbnRpdHk+IHwgYW55PihudWxsKTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IHNlbGVjdGlvbk1vZGVsXHJcblx0ICogQGRlc2NyaXB0aW9uIEEgU2VsZWN0aW9uTW9kZWwgdG8gaGFuZGxlIHNlbGVjdGlvbiBvZiBvbmUgb3IgbW9yZSBpdGVtcyBmcm9tIHRoZSBkYXRhLXRhYmxlLlxyXG5cdCAqIEl0IGFsbG93cyBtYW5hZ2luZyB0aGUgc2VsZWN0ZWQgaXRlbXMgaW4gdGhlIHRhYmxlIGFuZCBzdXBwb3J0cyBtdWx0aXBsZSBzZWxlY3Rpb24uXHJcblx0ICogQHR5cGUge1NlbGVjdGlvbk1vZGVsPFRFbnRpdHk+fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxURW50aXR5Pih0cnVlLCBbXSk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSByZWxvYWRUb2tlblxyXG5cdCAqIEBkZXNjcmlwdGlvbiBBIGdldHRlciB0byByZXR1cm4gdGhlIGN1cnJlbnQgcmVsb2FkIHRva2VuLiBcclxuXHQgKiBUaGUgcmVsb2FkIHRva2VuIGlzIHVzZWQgdG8gdHJpZ2dlciByZWxvYWRpbmcgb2YgZGF0YS5cclxuXHQgKiBAdHlwZSB7bnVtYmVyfVxyXG5cdCAqL1xyXG5cdGdldCByZWxvYWRUb2tlbigpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fcmVsb2FkQ2hhbmdlLnZhbHVlOyB9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBmaWVsZEZpbHRlcnNcclxuXHQgKiBAZGVzY3JpcHRpb24gQW4gb2JqZWN0IHVzZWQgdG8gc3RvcmUgZmlsdGVycyBmb3Igc3BlY2lmaWMgZmllbGRzIGluIHRoZSBkYXRhLXRhYmxlLlxyXG5cdCAqIEl0IGFsbG93cyBmaWx0ZXJpbmcgb2YgZGF0YSBiYXNlZCBvbiBzcGVjaWZpYyBmaWVsZCB2YWx1ZXMuXHJcblx0ICogQHR5cGUge2FueX1cclxuXHQgKi9cclxuXHRwdWJsaWMgZmllbGRGaWx0ZXJzOiBhbnkgPSB7fTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IGZpZWxkT3BlcmF0b3JzXHJcblx0ICogQGRlc2NyaXB0aW9uIEFuIG9iamVjdCB0aGF0IHN0b3JlcyBvcGVyYXRvcnMgdG8gYmUgYXBwbGllZCBvbiBmaWVsZHMgZm9yIGZpbHRlcmluZy5cclxuXHQgKiBJdCBhbGxvd3MgY29tcGxleCBmaWx0ZXJpbmcgb3BlcmF0aW9ucyAoZS5nLiwgZXF1YWxzLCBjb250YWlucywgZ3JlYXRlciB0aGFuKS5cclxuXHQgKiBAdHlwZSB7YW55fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBmaWVsZE9wZXJhdG9yczogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBzdGF0aWNGaWVsZEZpbHRlcnNcclxuXHQgKiBAZGVzY3JpcHRpb24gQW4gb2JqZWN0IHRvIHN0b3JlIHN0YXRpYyBmaWx0ZXJzIHRoYXQgYXJlIGFwcGxpZWQgdG8gdGhlIGRhdGEtdGFibGUuXHJcblx0ICogVGhlc2UgZmlsdGVycyBhcmUgbm90IGR5bmFtaWNhbGx5IHNldCBieSB0aGUgdXNlciBidXQgYXJlIGFsd2F5cyBhY3RpdmUuXHJcblx0ICogQHR5cGUge2FueX1cclxuXHQgKi9cclxuXHRwdWJsaWMgc3RhdGljRmllbGRGaWx0ZXJzOiBhbnkgPSB7fTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IHBhZ2VJbmRleFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBUaGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgcGFnZSBiZWluZyB2aWV3ZWQgaW4gdGhlIGRhdGEtdGFibGUuIFxyXG5cdCAqIEl0IHN0YXJ0cyBmcm9tIDAgYW5kIGluY3JlbWVudHMgd2l0aCBlYWNoIHBhZ2UgY2hhbmdlLlxyXG5cdCAqIEB0eXBlIHtudW1iZXJ9XHJcblx0ICovXHJcblx0cHVibGljIHBhZ2VJbmRleDogbnVtYmVyID0gMDtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IHRvdGFsXHJcblx0ICogQGRlc2NyaXB0aW9uIFRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIGRhdGEgc291cmNlLiBcclxuXHQgKiBUaGlzIGlzIHR5cGljYWxseSB1c2VkIHRvIGNhbGN1bGF0ZSBwYWdpbmF0aW9uLlxyXG5cdCAqIEB0eXBlIHtudW1iZXJ9XHJcblx0ICovXHJcblx0cHVibGljIHRvdGFsOiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcGFnZVNpemVcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIG51bWJlciBvZiBpdGVtcyBkaXNwbGF5ZWQgcGVyIHBhZ2UgaW4gdGhlIGRhdGEtdGFibGUuXHJcblx0ICogSXQgY29udHJvbHMgaG93IG1hbnkgcmVjb3JkcyBhcmUgc2hvd24gb24gYSBzaW5nbGUgcGFnZS5cclxuXHQgKiBAdHlwZSB7bnVtYmVyfVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyID0gMTU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBwYWdlQ291bnRcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIHRvdGFsIG51bWJlciBvZiBwYWdlcyBiYXNlZCBvbiB0aGUgY3VycmVudCBwYWdlIHNpemUgYW5kIHRvdGFsIGl0ZW1zLlxyXG5cdCAqIFRoaXMgaXMgY2FsY3VsYXRlZCBkeW5hbWljYWxseSB3aGVuZXZlciBkYXRhIGNoYW5nZXMuXHJcblx0ICogQHR5cGUge251bWJlcn1cclxuXHQgKi9cclxuXHRwdWJsaWMgcGFnZUNvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgaXNMb2FkaW5nXHJcblx0ICogQGRlc2NyaXB0aW9uIEEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGRhdGEgaXMgY3VycmVudGx5IGJlaW5nIGxvYWRlZC5cclxuXHQgKiBJdCBpcyB1c2VkIHRvIHNob3cgYSBsb2FkaW5nIHNwaW5uZXIgb3IgaW5kaWNhdG9yIHdoaWxlIGRhdGEgaXMgYmVpbmcgZmV0Y2hlZC5cclxuXHQgKiBAdHlwZSB7Ym9vbGVhbn1cclxuXHQgKi9cclxuXHRwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBtZXRob2QgcmVsb2FkXHJcblx0ICogQGRlc2NyaXB0aW9uIFJlbG9hZHMgdGhlIHRhYmxlIGRhdGEgYnkgdHJpZ2dlcmluZyBhIG5ldyByYW5kb20gcmVsb2FkIHRva2VuLlxyXG5cdCAqIE9wdGlvbmFsbHkgY2xlYXJzIHRoZSBzZWxlY3Rpb24gaWYgdGhlIGBjbGVhclNlbGVjdGlvbmAgZmxhZyBpcyBzZXQgdG8gdHJ1ZS5cclxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGNsZWFyU2VsZWN0aW9uIC0gSWYgdHJ1ZSwgY2xlYXJzIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBhZnRlciByZWxvYWQuXHJcblx0ICovXHJcblx0cHVibGljIHJlbG9hZChjbGVhclNlbGVjdGlvbjogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuXHRcdC8qIEVtaXQgYSBuZXcgcmVsb2FkIHRva2VuIHRvIHRyaWdnZXIgZGF0YSByZWxvYWQgKi9cclxuXHRcdHRoaXMuX3JlbG9hZENoYW5nZS5uZXh0KE1hdGgucmFuZG9tKCkpO1xyXG5cclxuXHRcdC8qIENsZWFyIHRoZSBzZWxlY3Rpb24gaWYgc3BlY2lmaWVkICovXHJcblx0XHRpZiAoY2xlYXJTZWxlY3Rpb24pIHtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQG1ldGhvZCBjb25uZWN0XHJcblx0ICogQGRlc2NyaXB0aW9uIENhbGxlZCB3aGVuIHRoZSBNYXRUYWJsZSBjb25uZWN0cyB0byB0aGUgZGF0YSBzb3VyY2UuIFxyXG5cdCAqIFRoaXMgbWV0aG9kIHN1YnNjcmliZXMgdG8gdGhlIHJlbG9hZCB0b2tlbiB0byB0cmlnZ2VyIGEgZmlsdGVyIHVwZGF0ZSBhbmQgZGF0YSByZWZyZXNoLlxyXG5cdCAqIEBkb2NzLXByaXZhdGVcclxuXHQgKiBAcmV0dXJucyB7QmVoYXZpb3JTdWJqZWN0PFRFbnRpdHlbXT59IEEgQmVoYXZpb3JTdWJqZWN0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgZGF0YSBhcnJheS5cclxuXHQgKi9cclxuXHRjb25uZWN0KCk6IEJlaGF2aW9yU3ViamVjdDxURW50aXR5W10+IHtcclxuXHRcdC8qIFN1YnNjcmliZSB0byB0aGUgcmVsb2FkIHRva2VuIGFuZCB1cGRhdGUgZmlsdGVycyBhY2NvcmRpbmdseSAqL1xyXG5cdFx0dGhpcy5fcmVsb2FkQ2hhbmdlLnN1YnNjcmliZSh4ID0+IHtcclxuXHRcdFx0LyogQ2xlYW4gdXAgYW55IGVtcHR5IGZpbHRlcnMgYmVmb3JlIGFwcGx5aW5nIHRoZW0gKi9cclxuXHRcdFx0T2JqZWN0LmtleXModGhpcy5maWVsZEZpbHRlcnMpLmZvckVhY2goKGtleSkgPT5cclxuXHRcdFx0XHQoKHRoaXMuZmllbGRGaWx0ZXJzW2tleV0gPT0gbnVsbCB8fCB0aGlzLmZpZWxkRmlsdGVyc1trZXldID09PSAnJyB8fCB0aGlzLmZpZWxkRmlsdGVyc1trZXldID09PSAndW5kZWZpbmVkJykpICYmIHRoaXMuZmllbGRGaWx0ZXJzW2tleV0gIT09IDAgJiYgZGVsZXRlIHRoaXMuZmllbGRGaWx0ZXJzW2tleV0pO1xyXG5cdFx0XHRPYmplY3Qua2V5cyh0aGlzLnN0YXRpY0ZpZWxkRmlsdGVycykuZm9yRWFjaCgoa2V5KSA9PlxyXG5cdFx0XHRcdCgodGhpcy5zdGF0aWNGaWVsZEZpbHRlcnNba2V5XSA9PSBudWxsIHx8IHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzW2tleV0gPT09ICcnIHx8IHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzW2tleV0gPT09ICd1bmRlZmluZWQnKSkgJiYgdGhpcy5zdGF0aWNGaWVsZEZpbHRlcnNba2V5XSAhPT0gMCAmJiBkZWxldGUgdGhpcy5zdGF0aWNGaWVsZEZpbHRlcnNba2V5XSk7XHJcblxyXG5cdFx0XHQvKiBBcHBseSBmaWx0ZXJzIGR5bmFtaWNhbGx5IHRvIHRoZSB0YWJsZSBkYXRhICovXHJcblx0XHRcdE9iamVjdC5rZXlzKHRoaXMuZmllbGRGaWx0ZXJzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuXHRcdFx0XHR0aGlzLmZpbHRlclByZWRpY2F0ZSA9IChkYXRhOiBURW50aXR5LCBmaWx0ZXI6IHN0cmluZykgPT4gIWZpbHRlciB8fCBgJHsoZGF0YSBhcyBhbnkpW2tleV19YC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGAke3RoaXMuZmlsdGVyfWA/LnRvTG93ZXJDYXNlKCkpO1xyXG5cdFx0XHRcdHRoaXMuZmlsdGVyID0gdGhpcy5maWVsZEZpbHRlcnNba2V5XTtcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHJcblx0XHQvKiBSZXR1cm4gdGhlIGRhdGEgZm9yIHRoZSBNYXRUYWJsZSB0byBkaXNwbGF5ICovXHJcblx0XHRyZXR1cm4gc3VwZXIuY29ubmVjdCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQG1ldGhvZCBjbGVhckZpbHRlcnNcclxuXHQgKiBAZGVzY3JpcHRpb24gQ2xlYXJzIGFsbCBjdXJyZW50IGZpZWxkIGZpbHRlcnMgYW5kIHJlc2V0cyBwYWdpbmF0aW9uIHRvIHRoZSBmaXJzdCBwYWdlLlxyXG5cdCAqIE9wdGlvbmFsbHkgYWNjZXB0cyBuZXcgZmlsdGVycyB0byByZXBsYWNlIHRoZSBleGlzdGluZyBvbmVzLlxyXG5cdCAqIEBwYXJhbSB7YW55fSBuZXdGaWx0ZXJzIC0gTmV3IGZpbHRlcnMgdG8gYXBwbHkgYWZ0ZXIgY2xlYXJpbmcgdGhlIHByZXZpb3VzIG9uZXMuXHJcblx0ICovXHJcblx0cHVibGljIGNsZWFyRmlsdGVycyhuZXdGaWx0ZXJzOiBhbnkgPSB7fSk6IHZvaWQge1xyXG5cdFx0LyogUmVzZXQgcGFnaW5hdGlvbiB0byB0aGUgZmlyc3QgcGFnZSAqL1xyXG5cdFx0aWYgKHRoaXMucGFnaW5hdG9yKSB7XHJcblx0XHRcdHRoaXMucGFnaW5hdG9yLnBhZ2VJbmRleCA9IDA7XHJcblx0XHR9XHJcblxyXG5cdFx0LyogQXBwbHkgdGhlIG5ldyBmaWx0ZXJzICovXHJcblx0XHR0aGlzLmZpZWxkRmlsdGVycyA9IG5ld0ZpbHRlcnMgfHwge307XHJcblx0XHR0aGlzLmZpbHRlciA9ICcnO1xyXG5cdFx0dGhpcy5yZWxvYWQoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBtZXRob2QgaXNBbGxTZWxlY3RlZFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBDaGVja3MgaWYgYWxsIGl0ZW1zIGluIHRoZSBjdXJyZW50IHBhZ2UgYXJlIHNlbGVjdGVkLlxyXG5cdCAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIGFsbCBpdGVtcyBhcmUgc2VsZWN0ZWQsIGZhbHNlIG90aGVyd2lzZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuXHRcdC8qIElmIHRoZXJlIGFyZSBubyBzZWxlY3RlZCBpdGVtcywgcmV0dXJuIGZhbHNlICovXHJcblx0XHRpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KCkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qIFJldHVybiB0cnVlIGlmIHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgaXRlbXMgbWF0Y2hlcyB0aGUgbnVtYmVyIG9mIGl0ZW1zIG9uIHRoZSBjdXJyZW50IHBhZ2UgKi9cclxuXHRcdHJldHVybiB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmxlbmd0aCA9PT0gdGhpcy5wYWdpbmF0b3I/Lmxlbmd0aDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBtZXRob2QgdG9nZ2xlU2VsZWN0XHJcblx0ICogQGRlc2NyaXB0aW9uIFRvZ2dsZXMgdGhlIHNlbGVjdGlvbiBvZiBhbGwgaXRlbXMgaW4gdGhlIGN1cnJlbnQgcGFnZS5cclxuXHQgKiBJZiBpdGVtcyBhcmUgYWxyZWFkeSBzZWxlY3RlZCwgdGhleSBhcmUgY2xlYXJlZC4gSWYgbm90LCB0aGV5IGFyZSBzZWxlY3RlZC5cclxuXHQgKiBAcGFyYW0ge01hdENoZWNrYm94Q2hhbmdlfSBjaGVja2JveCAtIFRoZSBjaGVja2JveCBjaGFuZ2UgZXZlbnQuXHJcblx0ICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIC0gT3B0aW9uYWwgcHJlZGljYXRlIHRvIGZpbHRlciB0aGUgaXRlbXMgYmVmb3JlIHNlbGVjdGlvbi5cclxuXHQgKi9cclxuXHRwdWJsaWMgdG9nZ2xlU2VsZWN0KGNoZWNrYm94OiBNYXRDaGVja2JveENoYW5nZSwgcHJlZGljYXRlPzogKHZhbHVlOiBURW50aXR5LCBpbmRleDogbnVtYmVyLCBhcnJheTogVEVudGl0eVtdKSA9PiB1bmtub3duKSB7XHJcblx0XHQvKiBJZiBhbnkgaXRlbXMgYXJlIHNlbGVjdGVkLCBjbGVhciB0aGUgc2VsZWN0aW9uICovXHJcblx0XHRpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbC5oYXNWYWx1ZSgpKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uTW9kZWwuY2xlYXIoKTtcclxuXHRcdFx0Y2hlY2tib3guc291cmNlLmNoZWNrZWQgPSBmYWxzZTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8qIE90aGVyd2lzZSwgc2VsZWN0IGFsbCBpdGVtcyB0aGF0IG1hdGNoIHRoZSBwcmVkaWNhdGUgKi9cclxuXHRcdFx0dGhpcy5kYXRhLmZpbHRlcihwcmVkaWNhdGUgPyBwcmVkaWNhdGUgOiB4ID0+IHgpXHJcblx0XHRcdFx0LmZpbHRlcih4ID0+ICEoeCBhcyBhbnkpWydsb2NrZWQnXSlcclxuXHRcdFx0XHQuZm9yRWFjaChkYXRhID0+IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KGRhdGEpKTtcclxuXHJcblx0XHRcdC8qIElmIG5vdCBhbGwgaXRlbXMgYXJlIHNlbGVjdGVkLCB1bmNoZWNrIHRoZSBjaGVja2JveCAqL1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZC5sZW5ndGggIT09IHRoaXMucGFnaW5hdG9yPy5sZW5ndGgpIHtcclxuXHRcdFx0XHRjaGVja2JveC5zb3VyY2UuY2hlY2tlZCA9IGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAbWV0aG9kIGdldFNlbGVjdGVkXHJcblx0ICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyB0aGUgc2VsZWN0ZWQgaXRlbXMgYmFzZWQgb24gYSBzcGVjaWZpYyBrZXkgKGUuZy4sICdpZCcpLlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IHRvIGV4dHJhY3QgZnJvbSB0aGUgc2VsZWN0ZWQgaXRlbXMuXHJcblx0ICogQHJldHVybnMge1RUeXBlW119IEFuIGFycmF5IG9mIHNlbGVjdGVkIGl0ZW1zLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXRTZWxlY3RlZCA9IDxUVHlwZT4oa2V5OiBzdHJpbmcgPSAnaWQnKTogVFR5cGVbXSA9PiB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLm1hcCh4ID0+ICh4IGFzIGFueSlba2V5XSk7XHJcbn0iXX0=
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuc3RhdGljLWRhdGEtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvdGFibGUvdGFibGUuc3RhdGljLWRhdGEtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8scUJBQStCLFNBQVEsa0JBQTJCO0lBRTlFOzs7OztPQUtHO0lBQ0ksYUFBYSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBRXREOzs7Ozs7T0FNRztJQUNJLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBNEIsSUFBSSxDQUFDLENBQUM7SUFFM0U7Ozs7T0FJRztJQUNJLEtBQUssR0FBYyxFQUFFLENBQUM7SUFFN0I7Ozs7O09BS0c7SUFDSSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQVUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTlEOzs7OztPQUtHO0lBQ0gsSUFBSSxXQUFXLEtBQWEsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFOUQ7Ozs7O09BS0c7SUFDSSxZQUFZLEdBQVEsRUFBRSxDQUFDO0lBRTlCOzs7OztPQUtHO0lBQ0ksY0FBYyxHQUFRLEVBQUUsQ0FBQztJQUVoQzs7Ozs7T0FLRztJQUNJLGtCQUFrQixHQUFRLEVBQUUsQ0FBQztJQUVwQzs7Ozs7T0FLRztJQUNJLFNBQVMsR0FBVyxDQUFDLENBQUM7SUFFN0I7Ozs7O09BS0c7SUFDSSxLQUFLLEdBQVcsQ0FBQyxDQUFDO0lBRXpCOzs7OztPQUtHO0lBQ0ksUUFBUSxHQUFXLEVBQUUsQ0FB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Ozs7O09BS0c7SUFDSSxXQUFXLEdBQUcsQ0FBUSxNQUFjLElBQUksRUFBVyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Q0FDcEgiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uIH0gZnJvbSAnLi9tb2RlbHMvcGFnaW5hdGlvbic7XHJcblxyXG4vKipcclxuICogQSBnZW5lcmljIGRhdGFzb3VyY2UgY2xhc3MgZm9yIHdvcmtpbmcgd2l0aCBkYXRhLXRhYmxlcyBpbiBBbmd1bGFyIE1hdGVyaWFsLlxyXG4gKiBUaGlzIGNsYXNzIGV4dGVuZHMgTWF0VGFibGVEYXRhU291cmNlIHRvIHByb3ZpZGUgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IGxpa2UgXHJcbiAqIHNlbGVjdGlvbiBtYW5hZ2VtZW50LCBwYWdpbmF0aW9uLCBhbmQgZmlsdGVyaW5nLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRhYmxlU3RhdGljRGF0YVNvdXJjZTxURW50aXR5PiBleHRlbmRzIE1hdFRhYmxlRGF0YVNvdXJjZTxURW50aXR5PiB7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBfcmVsb2FkQ2hhbmdlXHJcblx0ICogQGRlc2NyaXB0aW9uIEEgQmVoYXZpb3JTdWJqZWN0IHRoYXQgdHJpZ2dlcnMgYSByZWxvYWQgb2YgdGhlIHRhYmxlIGRhdGEuIFxyXG5cdCAqIFRoZSB2YWx1ZSBpcyB1c2VkIGFzIGEgcmVsb2FkIHRva2VuLCBlbnN1cmluZyB0aGUgZGF0YSBpcyByZWxvYWRlZCB3aGVuIGl0IGNoYW5nZXMuXHJcblx0ICogQHR5cGUge0JlaGF2aW9yU3ViamVjdDxudW1iZXI+fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBfcmVsb2FkQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgb25EYXRhTG9hZGVkXHJcblx0ICogQGRlc2NyaXB0aW9uIEEgQmVoYXZpb3JTdWJqZWN0IHRoYXQgaG9sZHMgdGhlIGxvYWRlZCBkYXRhIG9yIHBhZ2luYXRpb24gaW5mb3JtYXRpb24uXHJcblx0ICogVGhpcyBpcyBlbWl0dGVkIGFmdGVyIHRoZSBkYXRhIGlzIHN1Y2Nlc3NmdWxseSBsb2FkZWQsIHByb3ZpZGluZyBhIG1lY2hhbmlzbSBcclxuXHQgKiB0byB0cmFjayB0aGUgbG9hZGluZyBzdGF0ZSBhbmQgYW55IHVwZGF0ZXMgdG8gdGhlIGRhdGEuXHJcblx0ICogQHR5cGUge0JlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPFRFbnRpdHk+IHwgYW55Pn1cclxuXHQgKi9cclxuXHRwdWJsaWMgb25EYXRhTG9hZGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPFRFbnRpdHk+IHwgYW55PihudWxsKTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IGl0ZW1zXHJcblx0ICogQGRlc2NyaXB0aW9uIFRoZSBsaXN0IG9mIGl0ZW1zIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZGF0YSB0YWJsZS5cclxuXHQgKiBAdHlwZSB7VEVudGl0eVtdfVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBpdGVtczogVEVudGl0eVtdID0gW107XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBzZWxlY3Rpb25Nb2RlbFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBBIFNlbGVjdGlvbk1vZGVsIHRvIGhhbmRsZSBzZWxlY3Rpb24gb2Ygb25lIG9yIG1vcmUgaXRlbXMgZnJvbSB0aGUgZGF0YS10YWJsZS5cclxuXHQgKiBJdCBhbGxvd3MgbWFuYWdpbmcgdGhlIHNlbGVjdGVkIGl0ZW1zIGluIHRoZSB0YWJsZSBhbmQgc3VwcG9ydHMgbXVsdGlwbGUgc2VsZWN0aW9uLlxyXG5cdCAqIEB0eXBlIHtTZWxlY3Rpb25Nb2RlbDxURW50aXR5Pn1cclxuXHQgKi9cclxuXHRwdWJsaWMgc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWw8VEVudGl0eT4odHJ1ZSwgW10pO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcmVsb2FkVG9rZW5cclxuXHQgKiBAZGVzY3JpcHRpb24gQSBnZXR0ZXIgdG8gcmV0dXJuIHRoZSBjdXJyZW50IHJlbG9hZCB0b2tlbi4gXHJcblx0ICogVGhlIHJlbG9hZCB0b2tlbiBpcyB1c2VkIHRvIHRyaWdnZXIgcmVsb2FkaW5nIG9mIGRhdGEuXHJcblx0ICogQHR5cGUge251bWJlcn1cclxuXHQgKi9cclxuXHRnZXQgcmVsb2FkVG9rZW4oKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX3JlbG9hZENoYW5nZS52YWx1ZTsgfVxyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgZmllbGRGaWx0ZXJzXHJcblx0ICogQGRlc2NyaXB0aW9uIEFuIG9iamVjdCB1c2VkIHRvIHN0b3JlIGZpbHRlcnMgZm9yIHNwZWNpZmljIGZpZWxkcyBpbiB0aGUgZGF0YS10YWJsZS5cclxuXHQgKiBJdCBhbGxvd3MgZmlsdGVyaW5nIG9mIGRhdGEgYmFzZWQgb24gc3BlY2lmaWMgZmllbGQgdmFsdWVzLlxyXG5cdCAqIEB0eXBlIHthbnl9XHJcblx0ICovXHJcblx0cHVibGljIGZpZWxkRmlsdGVyczogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBmaWVsZE9wZXJhdG9yc1xyXG5cdCAqIEBkZXNjcmlwdGlvbiBBbiBvYmplY3QgdGhhdCBzdG9yZXMgb3BlcmF0b3JzIHRvIGJlIGFwcGxpZWQgb24gZmllbGRzIGZvciBmaWx0ZXJpbmcuXHJcblx0ICogSXQgYWxsb3dzIGNvbXBsZXggZmlsdGVyaW5nIG9wZXJhdGlvbnMgKGUuZy4sIGVxdWFscywgY29udGFpbnMsIGdyZWF0ZXIgdGhhbikuXHJcblx0ICogQHR5cGUge2FueX1cclxuXHQgKi9cclxuXHRwdWJsaWMgZmllbGRPcGVyYXRvcnM6IGFueSA9IHt9O1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgc3RhdGljRmllbGRGaWx0ZXJzXHJcblx0ICogQGRlc2NyaXB0aW9uIEFuIG9iamVjdCB0byBzdG9yZSBzdGF0aWMgZmlsdGVycyB0aGF0IGFyZSBhcHBsaWVkIHRvIHRoZSBkYXRhLXRhYmxlLlxyXG5cdCAqIFRoZXNlIGZpbHRlcnMgYXJlIG5vdCBkeW5hbWljYWxseSBzZXQgYnkgdGhlIHVzZXIgYnV0IGFyZSBhbHdheXMgYWN0aXZlLlxyXG5cdCAqIEB0eXBlIHthbnl9XHJcblx0ICovXHJcblx0cHVibGljIHN0YXRpY0ZpZWxkRmlsdGVyczogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBwYWdlSW5kZXhcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIGluZGV4IG9mIHRoZSBjdXJyZW50IHBhZ2UgYmVpbmcgdmlld2VkIGluIHRoZSBkYXRhLXRhYmxlLiBcclxuXHQgKiBJdCBzdGFydHMgZnJvbSAwIGFuZCBpbmNyZW1lbnRzIHdpdGggZWFjaCBwYWdlIGNoYW5nZS5cclxuXHQgKiBAdHlwZSB7bnVtYmVyfVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYWdlSW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSB0b3RhbFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBUaGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBkYXRhIHNvdXJjZS4gXHJcblx0ICogVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCB0byBjYWxjdWxhdGUgcGFnaW5hdGlvbi5cclxuXHQgKiBAdHlwZSB7bnVtYmVyfVxyXG5cdCAqL1xyXG5cdHB1YmxpYyB0b3RhbDogbnVtYmVyID0gMDtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IHBhZ2VTaXplXHJcblx0ICogQGRlc2NyaXB0aW9uIFRoZSBudW1iZXIgb2YgaXRlbXMgZGlzcGxheWVkIHBlciBwYWdlIGluIHRoZSBkYXRhLXRhYmxlLlxyXG5cdCAqIEl0IGNvbnRyb2xzIGhvdyBtYW55IHJlY29yZHMgYXJlIHNob3duIG9uIGEgc2luZ2xlIHBhZ2UuXHJcblx0ICogQHR5cGUge251bWJlcn1cclxuXHQgKi9cclxuXHRwdWJsaWMgcGFnZVNpemU6IG51bWJlciA9IDE1O1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcGFnZUNvdW50XHJcblx0ICogQGRlc2NyaXB0aW9uIFRoZSB0b3RhbCBudW1iZXIgb2YgcGFnZXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgcGFnZSBzaXplIGFuZCB0b3RhbCBpdGVtcy5cclxuXHQgKiBUaGlzIGlzIGNhbGN1bGF0ZWQgZHluYW1pY2FsbHkgd2hlbmV2ZXIgZGF0YSBjaGFuZ2VzLlxyXG5cdCAqIEB0eXBlIHtudW1iZXJ9XHJcblx0ICovXHJcblx0cHVibGljIHBhZ2VDb3VudDogbnVtYmVyID0gMDtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IGlzTG9hZGluZ1xyXG5cdCAqIEBkZXNjcmlwdGlvbiBBIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBkYXRhIGlzIGN1cnJlbnRseSBiZWluZyBsb2FkZWQuXHJcblx0ICogSXQgaXMgdXNlZCB0byBzaG93IGEgbG9hZGluZyBzcGlubmVyIG9yIGluZGljYXRvciB3aGlsZSBkYXRhIGlzIGJlaW5nIGZldGNoZWQuXHJcblx0ICogQHR5cGUge2Jvb2xlYW59XHJcblx0ICovXHJcblx0cHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBAbWV0aG9kIHJlbG9hZFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBSZWxvYWRzIHRoZSB0YWJsZSBkYXRhIGJ5IHRyaWdnZXJpbmcgYSBuZXcgcmFuZG9tIHJlbG9hZCB0b2tlbi5cclxuXHQgKiBPcHRpb25hbGx5IGNsZWFycyB0aGUgc2VsZWN0aW9uIGlmIHRoZSBgY2xlYXJTZWxlY3Rpb25gIGZsYWcgaXMgc2V0IHRvIHRydWUuXHJcblx0ICogQHBhcmFtIHtib29sZWFufSBjbGVhclNlbGVjdGlvbiAtIElmIHRydWUsIGNsZWFycyB0aGUgY3VycmVudCBzZWxlY3Rpb24gYWZ0ZXIgcmVsb2FkLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyByZWxvYWQoY2xlYXJTZWxlY3Rpb246IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcblx0XHQvKiBFbWl0IGEgbmV3IHJlbG9hZCB0b2tlbiB0byB0cmlnZ2VyIGRhdGEgcmVsb2FkICovXHJcblx0XHR0aGlzLl9yZWxvYWRDaGFuZ2UubmV4dChNYXRoLnJhbmRvbSgpKTtcclxuXHJcblx0XHQvKiBDbGVhciB0aGUgc2VsZWN0aW9uIGlmIHNwZWNpZmllZCAqL1xyXG5cdFx0aWYgKGNsZWFyU2VsZWN0aW9uKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uTW9kZWwuY2xlYXIoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBtZXRob2QgY29ubmVjdFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBDYWxsZWQgd2hlbiB0aGUgTWF0VGFibGUgY29ubmVjdHMgdG8gdGhlIGRhdGEgc291cmNlLiBcclxuXHQgKiBUaGlzIG1ldGhvZCBzdWJzY3JpYmVzIHRvIHRoZSByZWxvYWQgdG9rZW4gdG8gdHJpZ2dlciBhIGZpbHRlciB1cGRhdGUgYW5kIGRhdGEgcmVmcmVzaC5cclxuXHQgKiBAZG9jcy1wcml2YXRlXHJcblx0ICogQHJldHVybnMge0JlaGF2aW9yU3ViamVjdDxURW50aXR5W10+fSBBIEJlaGF2aW9yU3ViamVjdCBjb250YWluaW5nIHRoZSBjdXJyZW50IGRhdGEgYXJyYXkuXHJcblx0ICovXHJcblx0Y29ubmVjdCgpOiBCZWhhdmlvclN1YmplY3Q8VEVudGl0eVtdPiB7XHJcblx0XHQvKiBTdWJzY3JpYmUgdG8gdGhlIHJlbG9hZCB0b2tlbiBhbmQgdXBkYXRlIGZpbHRlcnMgYWNjb3JkaW5nbHkgKi9cclxuXHRcdHRoaXMuX3JlbG9hZENoYW5nZS5zdWJzY3JpYmUoeCA9PiB7XHJcblx0XHRcdC8qIENsZWFuIHVwIGFueSBlbXB0eSBmaWx0ZXJzIGJlZm9yZSBhcHBseWluZyB0aGVtICovXHJcblx0XHRcdE9iamVjdC5rZXlzKHRoaXMuZmllbGRGaWx0ZXJzKS5mb3JFYWNoKChrZXkpID0+XHJcblx0XHRcdFx0KCh0aGlzLmZpZWxkRmlsdGVyc1trZXldID09IG51bGwgfHwgdGhpcy5maWVsZEZpbHRlcnNba2V5XSA9PT0gJycgfHwgdGhpcy5maWVsZEZpbHRlcnNba2V5XSA9PT0gJ3VuZGVmaW5lZCcpKSAmJiB0aGlzLmZpZWxkRmlsdGVyc1trZXldICE9PSAwICYmIGRlbGV0ZSB0aGlzLmZpZWxkRmlsdGVyc1trZXldKTtcclxuXHRcdFx0T2JqZWN0LmtleXModGhpcy5zdGF0aWNGaWVsZEZpbHRlcnMpLmZvckVhY2goKGtleSkgPT5cclxuXHRcdFx0XHQoKHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzW2tleV0gPT0gbnVsbCB8fCB0aGlzLnN0YXRpY0ZpZWxkRmlsdGVyc1trZXldID09PSAnJyB8fCB0aGlzLnN0YXRpY0ZpZWxkRmlsdGVyc1trZXldID09PSAndW5kZWZpbmVkJykpICYmIHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzW2tleV0gIT09IDAgJiYgZGVsZXRlIHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzW2tleV0pO1xyXG5cclxuXHRcdFx0LyogQXBwbHkgZmlsdGVycyBkeW5hbWljYWxseSB0byB0aGUgdGFibGUgZGF0YSAqL1xyXG5cdFx0XHRPYmplY3Qua2V5cyh0aGlzLmZpZWxkRmlsdGVycykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5maWx0ZXJQcmVkaWNhdGUgPSAoZGF0YTogVEVudGl0eSwgZmlsdGVyOiBzdHJpbmcpID0+ICFmaWx0ZXIgfHwgYCR7KGRhdGEgYXMgYW55KVtrZXldfWAudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhgJHt0aGlzLmZpbHRlcn1gPy50b0xvd2VyQ2FzZSgpKTtcclxuXHRcdFx0XHR0aGlzLmZpbHRlciA9IHRoaXMuZmllbGRGaWx0ZXJzW2tleV07XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0LyogUmV0dXJuIHRoZSBkYXRhIGZvciB0aGUgTWF0VGFibGUgdG8gZGlzcGxheSAqL1xyXG5cdFx0cmV0dXJuIHN1cGVyLmNvbm5lY3QoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBtZXRob2QgY2xlYXJGaWx0ZXJzXHJcblx0ICogQGRlc2NyaXB0aW9uIENsZWFycyBhbGwgY3VycmVudCBmaWVsZCBmaWx0ZXJzIGFuZCByZXNldHMgcGFnaW5hdGlvbiB0byB0aGUgZmlyc3QgcGFnZS5cclxuXHQgKiBPcHRpb25hbGx5IGFjY2VwdHMgbmV3IGZpbHRlcnMgdG8gcmVwbGFjZSB0aGUgZXhpc3Rpbmcgb25lcy5cclxuXHQgKiBAcGFyYW0ge2FueX0gbmV3RmlsdGVycyAtIE5ldyBmaWx0ZXJzIHRvIGFwcGx5IGFmdGVyIGNsZWFyaW5nIHRoZSBwcmV2aW91cyBvbmVzLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBjbGVhckZpbHRlcnMobmV3RmlsdGVyczogYW55ID0ge30pOiB2b2lkIHtcclxuXHRcdC8qIFJlc2V0IHBhZ2luYXRpb24gdG8gdGhlIGZpcnN0IHBhZ2UgKi9cclxuXHRcdGlmICh0aGlzLnBhZ2luYXRvcikge1xyXG5cdFx0XHR0aGlzLnBhZ2luYXRvci5wYWdlSW5kZXggPSAwO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qIEFwcGx5IHRoZSBuZXcgZmlsdGVycyAqL1xyXG5cdFx0dGhpcy5maWVsZEZpbHRlcnMgPSBuZXdGaWx0ZXJzIHx8IHt9O1xyXG5cdFx0dGhpcy5maWx0ZXIgPSAnJztcclxuXHRcdHRoaXMucmVsb2FkKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAbWV0aG9kIGlzQWxsU2VsZWN0ZWRcclxuXHQgKiBAZGVzY3JpcHRpb24gQ2hlY2tzIGlmIGFsbCBpdGVtcyBpbiB0aGUgY3VycmVudCBwYWdlIGFyZSBzZWxlY3RlZC5cclxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBhbGwgaXRlbXMgYXJlIHNlbGVjdGVkLCBmYWxzZSBvdGhlcndpc2UuXHJcblx0ICovXHJcblx0cHVibGljIGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcblx0XHQvKiBJZiB0aGVyZSBhcmUgbm8gc2VsZWN0ZWQgaXRlbXMsIHJldHVybiBmYWxzZSAqL1xyXG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgbnVtYmVyIG9mIHNlbGVjdGVkIGl0ZW1zIG1hdGNoZXMgdGhlIG51bWJlciBvZiBpdGVtcyBvbiB0aGUgY3VycmVudCBwYWdlICovXHJcblx0XHRyZXR1cm4gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZC5sZW5ndGggPT09IHRoaXMucGFnaW5hdG9yPy5sZW5ndGg7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAbWV0aG9kIHRvZ2dsZVNlbGVjdFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBUb2dnbGVzIHRoZSBzZWxlY3Rpb24gb2YgYWxsIGl0ZW1zIGluIHRoZSBjdXJyZW50IHBhZ2UuXHJcblx0ICogSWYgaXRlbXMgYXJlIGFscmVhZHkgc2VsZWN0ZWQsIHRoZXkgYXJlIGNsZWFyZWQuIElmIG5vdCwgdGhleSBhcmUgc2VsZWN0ZWQuXHJcblx0ICogQHBhcmFtIHtNYXRDaGVja2JveENoYW5nZX0gY2hlY2tib3ggLSBUaGUgY2hlY2tib3ggY2hhbmdlIGV2ZW50LlxyXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSAtIE9wdGlvbmFsIHByZWRpY2F0ZSB0byBmaWx0ZXIgdGhlIGl0ZW1zIGJlZm9yZSBzZWxlY3Rpb24uXHJcblx0ICovXHJcblx0cHVibGljIHRvZ2dsZVNlbGVjdChjaGVja2JveDogTWF0Q2hlY2tib3hDaGFuZ2UsIHByZWRpY2F0ZT86ICh2YWx1ZTogVEVudGl0eSwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRFbnRpdHlbXSkgPT4gdW5rbm93bikge1xyXG5cdFx0LyogSWYgYW55IGl0ZW1zIGFyZSBzZWxlY3RlZCwgY2xlYXIgdGhlIHNlbGVjdGlvbiAqL1xyXG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwuaGFzVmFsdWUoKSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XHJcblx0XHRcdGNoZWNrYm94LnNvdXJjZS5jaGVja2VkID0gZmFsc2U7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHQvKiBPdGhlcndpc2UsIHNlbGVjdCBhbGwgaXRlbXMgdGhhdCBtYXRjaCB0aGUgcHJlZGljYXRlICovXHJcblx0XHRcdHRoaXMuZGF0YS5maWx0ZXIocHJlZGljYXRlID8gcHJlZGljYXRlIDogeCA9PiB4KVxyXG5cdFx0XHRcdC5maWx0ZXIoeCA9PiAhKHggYXMgYW55KVsnbG9ja2VkJ10pXHJcblx0XHRcdFx0LmZvckVhY2goZGF0YSA9PiB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdChkYXRhKSk7XHJcblxyXG5cdFx0XHQvKiBJZiBub3QgYWxsIGl0ZW1zIGFyZSBzZWxlY3RlZCwgdW5jaGVjayB0aGUgY2hlY2tib3ggKi9cclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubGVuZ3RoICE9PSB0aGlzLnBhZ2luYXRvcj8ubGVuZ3RoKSB7XHJcblx0XHRcdFx0Y2hlY2tib3guc291cmNlLmNoZWNrZWQgPSBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQG1ldGhvZCBnZXRTZWxlY3RlZFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgdGhlIHNlbGVjdGVkIGl0ZW1zIGJhc2VkIG9uIGEgc3BlY2lmaWMga2V5IChlLmcuLCAnaWQnKS5cclxuXHQgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSB0byBleHRyYWN0IGZyb20gdGhlIHNlbGVjdGVkIGl0ZW1zLlxyXG5cdCAqIEByZXR1cm5zIHtUVHlwZVtdfSBBbiBhcnJheSBvZiBzZWxlY3RlZCBpdGVtcy5cclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0U2VsZWN0ZWQgPSA8VFR5cGU+KGtleTogc3RyaW5nID0gJ2lkJyk6IFRUeXBlW10gPT4gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZC5tYXAoeCA9PiAoeCBhcyBhbnkpW2tleV0pO1xyXG59Il19