@firestitch/list 9.9.12 → 9.11.0

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.
@@ -624,6 +624,9 @@ var List = /** @class */ (function (_super) {
624
624
  if (((_c = this.emptyState) === null || _c === void 0 ? void 0 : _c.validate) && this.emptyStateTemplate) {
625
625
  this.emptyStateEnabled = this.emptyState.validate(query, cloneDeep(response.data));
626
626
  }
627
+ if (this.afterFetchFn) {
628
+ this.afterFetchFn(query, this.dataController.visibleRowsData);
629
+ }
627
630
  this.fetchComplete$.next();
628
631
  this.loading$.next(false);
629
632
  };
@@ -743,7 +746,11 @@ var List = /** @class */ (function (_super) {
743
746
  Alias('fetch'),
744
747
  __metadata("design:type", Function)
745
748
  ], List.prototype, "fetchFn", void 0);
749
+ __decorate([
750
+ Alias('afterFetch'),
751
+ __metadata("design:type", Function)
752
+ ], List.prototype, "afterFetchFn", void 0);
746
753
  return List;
747
754
  }(Model));
748
755
  export { List };
749
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvbGlzdC8iLCJzb3VyY2VzIjpbImFwcC9jbGFzc2VzL2xpc3QtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFxRCxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUlqRyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixJQUFJLEVBQ0osVUFBVSxFQUNWLEVBQUUsRUFDRixPQUFPLEVBRVIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFDWixHQUFHLEVBQ0gsS0FBSyxFQUNMLFNBQVMsRUFDVCxJQUFJLEVBQ0osU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFpQjFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlC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QUFSLEtBQUssRUFBRTs7NENBQTJCO0lBQzFCO1FBQVIsS0FBSyxFQUFFOzsrQ0FBMkI7SUFFZDtRQUFwQixLQUFLLENBQUMsWUFBWSxDQUFDOzsrQ0FBNkI7SUFFOUI7UUFBbEIsS0FBSyxDQUFDLFVBQVUsQ0FBQzs7MENBQWlCO0lBQzFCO1FBQVIsS0FBSyxFQUFFOzsyQ0FBdUI7SUFDdEI7UUFBUixLQUFLLEVBQUU7O3lDQUFxQztJQUNwQztRQUFSLEtBQUssRUFBRTs7aURBQTZCO0lBQzVCO1FBQVIsS0FBSyxFQUFFOzt5Q0FBeUI7SUFDeEI7UUFBUixLQUFLLEVBQUU7O3lDQUFxQjtJQUNSO1FBQXBCLEtBQUssQ0FBQyxZQUFZLENBQUM7OzhDQUErQjtJQUM1QjtRQUF0QixLQUFLLENBQUMsY0FBYyxDQUFDOztnREFBaUM7SUFDOUM7UUFBUixLQUFLLEVBQUU7OzhDQUFnRDtJQUMvQztRQUFSLEtBQUssRUFBRTs7NENBQTJEO0lBQzFEO1FBQVIsS0FBSyxFQUFFOzsyQ0FBeUM7SUFDeEM7UUFBUixLQUFLLEVBQUU7OzRDQUEyQztJQUVuQztRQUFmLEtBQUssQ0FBQyxPQUFPLENBQUM7O3lDQUErQjtJQTZ6QmhELFdBQUM7Q0FBQSxBQWwxQkQsQ0FBMEIsS0FBSyxHQWsxQjlCO1NBbDFCWSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2hhbmdlRm4sIEZpbHRlckNvbmZpZywgSUZpbHRlclNhdmVkRmlsdGVyc0NvbmZpZywgSXRlbVR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuaW1wb3J0IHsgRnNTY3JvbGxJbnN0YW5jZSwgRnNTY3JvbGxTZXJ2aWNlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvc2Nyb2xsJztcbmltcG9ydCB7IFNlbGVjdGlvbkRpYWxvZyB9IGZyb20gJ0BmaXJlc3RpdGNoL3NlbGVjdGlvbic7XG5cbmltcG9ydCB7IEFsaWFzLCBNb2RlbCB9IGZyb20gJ3RzbW9kZWxzJztcblxuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBmcm9tLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZGVib3VuY2VUaW1lLFxuICBtYXAsXG4gIG1hcFRvLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBTb3J0aW5nRGlyZWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5cbi8vIEludGVyZmFjZXNcbmltcG9ydCB7XG4gIEZzTGlzdENvbmZpZyxcbiAgRnNMaXN0RW1wdHlTdGF0ZUNvbmZpZywgRnNMaXN0RmV0Y2hGbiwgRnNMaXN0RmV0Y2hPcHRpb25zLFxuICBGc0xpc3RGZXRjaFN1YnNjcmlwdGlvbixcbiAgRnNMaXN0R3JvdXBDb25maWcsXG4gIEZzTGlzdExvYWRNb3JlQ29uZmlnLFxuICBGc0xpc3ROb1Jlc3VsdHNDb25maWcsXG4gIEZzTGlzdFJlc3RvcmVDb25maWcsXG4gIEZzTGlzdFNjcm9sbGFibGVDb25maWcsXG4gIEZzTGlzdFNlbGVjdGlvbkNvbmZpZyxcbiAgRnNMaXN0VHJhY2tCeUZuLFxuICBGc1BhZ2luZyxcbiAgUGFnZUNoYW5nZVxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFN0eWxlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL3N0eWxlQ29uZmlnLm1vZGVsJztcbmltcG9ydCB7IFJvd0FjdGlvbiB9IGZyb20gJy4uL21vZGVscy9yb3ctYWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbHVtbnNDb250cm9sbGVyIH0gZnJvbSAnLi9jb2x1bW5zLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgUGFnZUNoYW5nZVR5cGUgfSBmcm9tICcuLi9lbnVtcy9wYWdlLWNoYW5nZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgQWN0aW9uc0NvbnRyb2xsZXIgfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IERhdGFDb250cm9sbGVyIH0gZnJvbSAnLi9kYXRhLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbnRyb2xsZXIgfSBmcm9tICcuL3BhZ2luYXRpb24tY29udHJvbGxlcic7XG5pbXBvcnQgeyBTZWxlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnLi9zZWxlY3Rpb24tY29udHJvbGxlcic7XG5pbXBvcnQgeyBTb3J0aW5nQ29udHJvbGxlciB9IGZyb20gJy4vc29ydGluZy1jb250cm9sbGVyJztcblxuaW1wb3J0IHsgRnNMaXN0U3RhdGUgfSBmcm9tICcuLi9lbnVtcy9zdGF0ZS5lbnVtJztcbmltcG9ydCB7IFBlcnNpc3RhbmNlQ29udHJvbGxlciB9IGZyb20gJy4vcGVyc2lzdGFuY2UtY29udHJvbGxlcic7XG5pbXBvcnQgeyBFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXIgfSBmcm9tICcuL2V4dGVybmFsLXBhcmFtcy1jb250cm9sbGVyJztcblxuY29uc3QgU0hPV19ERUxFVEVEX0ZJTFRFUlNfS0VZID0gJyQkX3Nob3dfZGVsZXRlZF8kJCc7XG5cblxuZXhwb3J0IGNsYXNzIExpc3QgZXh0ZW5kcyBNb2RlbCB7XG4gIEBBbGlhcygpIHB1YmxpYyBoZWFkaW5nOiBzdHJpbmc7XG4gIEBBbGlhcygpIHB1YmxpYyB0cmFja0J5OiBzdHJpbmc7XG4gIEBBbGlhcygpIHB1YmxpYyBzdWJoZWFkaW5nOiBzdHJpbmc7XG4gIEBBbGlhcygpIHB1YmxpYyBpbmxpbmVGaWx0ZXJzOiBhbnk7XG4gIC8vIEBBbGlhcygnYWN0aW9ucycsIEFjdGlvbikgcHVibGljIGFjdGlvbnM6IEFjdGlvbltdO1xuICBAQWxpYXMoJ3Jvd0FjdGlvbnMnKSBwdWJsaWMgcm93QWN0aW9uc1JhdzogYW55W107XG4gIHB1YmxpYyBncm91cEFjdGlvbnNSYXc6IGFueVtdO1xuICBAQWxpYXMoJ3Jvd0NsYXNzJykgcHVibGljIHJvd0NsYXNzO1xuICBAQWxpYXMoKSBwdWJsaWMgcm93RXZlbnRzOiBhbnk7XG4gIEBBbGlhcygpIHB1YmxpYyByZXN0b3JlOiBGc0xpc3RSZXN0b3JlQ29uZmlnO1xuICBAQWxpYXMoKSBwdWJsaWMgY29sdW1uVGVtcGxhdGVzOiBhbnk7XG4gIEBBbGlhcygpIHB1YmxpYyBwZXJzaXN0OiBib29sZWFuO1xuICBAQWxpYXMoKSBwdWJsaWMgZmlsdGVycyA9IFtdO1xuICBAQWxpYXMoJ2ZpbHRlckluaXQnKSBwdWJsaWMgZmlsdGVySW5pdENiOiBDaGFuZ2VGbjtcbiAgQEFsaWFzKCdmaWx0ZXJDaGFuZ2UnKSBwdWJsaWMgZmlsdGVyQ2hhbmdlQ2I6IENoYW5nZUZuO1xuICBAQWxpYXMoKSBwdWJsaWMgc2F2ZWRGaWx0ZXJzOiBJRmlsdGVyU2F2ZWRGaWx0ZXJzQ29uZmlnO1xuICBAQWxpYXMoKSBwdWJsaWMgc2Nyb2xsYWJsZTogRnNMaXN0U2Nyb2xsYWJsZUNvbmZpZyB8IGZhbHNlID0gZmFsc2U7XG4gIEBBbGlhcygpIHB1YmxpYyBub1Jlc3VsdHM6IEZzTGlzdE5vUmVzdWx0c0NvbmZpZztcbiAgQEFsaWFzKCkgcHVibGljIGVtcHR5U3RhdGU6IEZzTGlzdEVtcHR5U3RhdGVDb25maWc7XG4gIC8vIEBBbGlhcygpIHB1YmxpYyBpbml0aWFsRmV0Y2ggPSB0cnVlOyAvL1RPRE8gZml4bWVcbiAgQEFsaWFzKCdmZXRjaCcpIHB1YmxpYyBmZXRjaEZuOiBGc0xpc3RGZXRjaEZuO1xuICAvLyBAQWxpYXMoJ3Jvd3MnKSBwcml2YXRlIF9yb3dzOiBhbnk7XG5cbiAgcHVibGljIGluaXRpYWxpemVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwdWJsaWMgbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAvLyBwdWJsaWMgb3BlcmF0aW9uOiBPcGVyYXRpb247XG4gIHB1YmxpYyBmaWx0ZXJzUXVlcnk6IGFueTtcblxuICBwdWJsaWMgaGFzUm93QWN0aW9ucztcbiAgcHVibGljIHBhZ2luZyA9IG5ldyBQYWdpbmF0aW9uQ29udHJvbGxlcigpO1xuXG4gIHB1YmxpYyBjb2x1bW5zID0gbmV3IENvbHVtbnNDb250cm9sbGVyKCk7XG4gIHB1YmxpYyBhY3Rpb25zID0gbmV3IEFjdGlvbnNDb250cm9sbGVyKCk7XG4gIHB1YmxpYyBkYXRhQ29udHJvbGxlciA9IG5ldyBEYXRhQ29udHJvbGxlcigpO1xuICBwdWJsaWMgc29ydGluZyA9IG5ldyBTb3J0aW5nQ29udHJvbGxlcigpO1xuICBwdWJsaWMgZXh0ZXJuYWxQYXJhbXM6IEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcjtcbiAgcHVibGljIHNlbGVjdGlvbjogU2VsZWN0aW9uQ29udHJvbGxlcjtcblxuICBwdWJsaWMgZmlsdGVyQ29uZmlnOiBGaWx0ZXJDb25maWcgPSBudWxsO1xuXG4gIHB1YmxpYyBmZXRjaCQgPSBuZXcgU3ViamVjdDxGc0xpc3RGZXRjaFN1YnNjcmlwdGlvbiB8IHZvaWQ+KCk7XG4gIHB1YmxpYyBmZXRjaENvbXBsZXRlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBmaWx0ZXJzUmVhZHkkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgc3RhdHVzID0gdHJ1ZTtcbiAgcHVibGljIGNoaXBzID0gZmFsc2U7XG4gIHB1YmxpYyBmaWx0ZXJJbnB1dCA9IHRydWU7XG4gIHB1YmxpYyBxdWVyeVBhcmFtID0gZmFsc2U7XG4gIHB1YmxpYyByZXN0b3JlTW9kZSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpbml0aWFsRmV0Y2ggPSB0cnVlO1xuXG4gIC8vIEVtcHR5IHN0YXRlXG4gIHB1YmxpYyBlbXB0eVN0YXRlRW5hYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgZW1wdHlTdGF0ZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHB1YmxpYyBmc1Njcm9sbEluc3RhbmNlOiBGc1Njcm9sbEluc3RhbmNlO1xuXG4gIHB1YmxpYyBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9oZWFkZXJDb25maWc6IFN0eWxlQ29uZmlnO1xuICBwcml2YXRlIHJlYWRvbmx5IF9ncm91cENlbGxDb25maWc6IFN0eWxlQ29uZmlnO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jZWxsQ29uZmlnOiBTdHlsZUNvbmZpZztcbiAgcHJpdmF0ZSByZWFkb25seSBfZm9vdGVyQ29uZmlnOiBTdHlsZUNvbmZpZztcblxuICBwcml2YXRlIF9mc1Njcm9sbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjb25maWc6IEZzTGlzdENvbmZpZyA9IHt9LFxuICAgIHByaXZhdGUgZnNTY3JvbGw6IEZzU2Nyb2xsU2VydmljZSxcbiAgICBwcml2YXRlIHNlbGVjdGlvbkRpYWxvZzogU2VsZWN0aW9uRGlhbG9nLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBwZXJzaXN0YW5jZTogUGVyc2lzdGFuY2VDb250cm9sbGVyLFxuICAgIHByaXZhdGUgaW5EaWFsb2c6IGJvb2xlYW4sXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fZnJvbUpTT04oY29uZmlnKTtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZShjb25maWcpO1xuXG4gICAgdGhpcy5faGVhZGVyQ29uZmlnID0gbmV3IFN0eWxlQ29uZmlnKGNvbmZpZy5oZWFkZXIpO1xuICAgIHRoaXMuX2dyb3VwQ2VsbENvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZyhjb25maWcuY2VsbCk7XG4gICAgdGhpcy5fY2VsbENvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZyhjb25maWcuY2VsbCk7XG4gICAgdGhpcy5fZm9vdGVyQ29uZmlnID0gbmV3IFN0eWxlQ29uZmlnKGNvbmZpZy5mb290ZXIpO1xuXG4gICAgdGhpcy5pbml0aWFsaXplZCQubmV4dCh0cnVlKTtcblxuICAgIHRoaXMuc3Vic2NyaWJlKCk7XG5cbiAgICBpZiAodGhpcy5pbml0aWFsRmV0Y2gpIHtcbiAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLkxvYWQpO1xuICAgICAgdGhpcy5mZXRjaCQubmV4dCgpO1xuICAgIH1cblxuICB9XG5cbiAgcHVibGljIGdldCBoYXNTYXZlZEZpbHRlcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5maWx0ZXJDb25maWcuc2F2ZWRGaWx0ZXJzO1xuICB9XG5cbiAgcHVibGljIGZldGNoUmVtb3RlKHF1ZXJ5KSB7XG4gICAgY29uc3Qgb3B0aW9uczogRnNMaXN0RmV0Y2hPcHRpb25zID0ge1xuICAgICAgc3RhdGU6IHRoaXMuZGF0YUNvbnRyb2xsZXIub3BlcmF0aW9uLFxuICAgIH07XG5cbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IHRoaXMuZmV0Y2hGbihxdWVyeSwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4gcmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSA/IGZyb20ocmVzdWx0KSA6IHJlc3VsdDtcbiAgfVxuXG4gIC8vIHB1YmxpYyBsb2FkTG9jYWwoKSB7XG4gIC8vICAgdGhpcy5wYWdpbmcudXBkYXRlUGFnaW5nTWFudWFsKHRoaXMuX3Jvd3MpO1xuICAvLyAgIGNvbnN0IGZyb20gPSAodGhpcy5wYWdpbmcucGFnZSAtIDEpICogdGhpcy5wYWdpbmcubGltaXQ7XG4gIC8vICAgY29uc3QgdG8gPSAodGhpcy5wYWdpbmcucGFnZSA9PT0gMSkgPyB0aGlzLnBhZ2luZy5saW1pdCA6IHRoaXMucGFnaW5nLmxpbWl0ICogdGhpcy5wYWdpbmcucGFnZTtcbiAgLy8gICBjb25zdCBzbGljZU9mUm93cyA9IHRoaXMuX3Jvd3Muc2xpY2UoZnJvbSwgdG8pO1xuICAvLyAgIHRoaXMuZGF0YSQubmV4dChzbGljZU9mUm93cyk7XG4gIC8vIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIHRlbXBsYXRlcyBmb3IgdXNpbmdcbiAgICogQHBhcmFtIHRlbXBsYXRlc1xuICAgKi9cbiAgcHVibGljIHRyYW5mb3JtVGVtcGxhdGVzVG9Db2x1bW5zKHRlbXBsYXRlcykge1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWdzID0ge1xuICAgICAgaGVhZGVyOiB0aGlzLl9oZWFkZXJDb25maWcsXG4gICAgICBncm91cENlbGw6IHRoaXMuX2dyb3VwQ2VsbENvbmZpZyxcbiAgICAgIGNlbGw6IHRoaXMuX2NlbGxDb25maWcsXG4gICAgICBmb290ZXI6IHRoaXMuX2Zvb3RlckNvbmZpZyxcbiAgICB9O1xuXG4gICAgdGhpcy5jb2x1bW5zLnNldERlZmF1bHRzKGRlZmF1bHRDb25maWdzKTtcbiAgICB0aGlzLmNvbHVtbnMuaW5pdGlhbGl6ZUNvbHVtbnModGVtcGxhdGVzKTtcblxuICAgIC8vIFNldCBzb3J0QnkgZGVmYXVsdCBjb2x1bW5cbiAgICB0aGlzLnNvcnRpbmcuY2xlYXJTb3J0YWJsZUNvbHVtbnMoKTtcbiAgICB0aGlzLmNvbHVtbnMuY29sdW1uc1xuICAgICAgLmZpbHRlcigoY29sdW1uKSA9PiBjb2x1bW4uc29ydGFibGUgJiYgY29sdW1uLnNob3cpXG4gICAgICAuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgIHRoaXMuc29ydGluZy5hZGRTb3J0YWJsZUNvbHVtbihjb2x1bW4pO1xuICAgICAgfSk7XG5cbiAgICAvLyBEZWZhdWx0IHNvcnQgYnlcbiAgICBjb25zdCBleHRlcm5hbFNvcnRpbmcgPSB0aGlzLmV4dGVybmFsUGFyYW1zLmV4dGVybmFsU29ydGluZztcbiAgICBjb25zdCBpbml0aWFsU29ydENvbmZpZyA9IGV4dGVybmFsU29ydGluZyB8fCB0aGlzLmNvbmZpZy5zb3J0O1xuICAgIHRoaXMuc29ydGluZy5pbml0aWFsU29ydEJ5KGluaXRpYWxTb3J0Q29uZmlnKTtcblxuICAgIGlmIChleHRlcm5hbFNvcnRpbmcgJiYgIXRoaXMuc29ydGluZy5pc0RlZmluZWQpIHtcbiAgICAgIHRoaXMuZXh0ZXJuYWxQYXJhbXMuY2xlYXJTb3J0aW5nUGFyYW1zKCk7XG5cbiAgICAgIGNvbnNvbGUud2FybignTm90IGFibGUgdG8gcmVzdG9yZSBwZXJzaXN0ZWQgc29ydGluZyBwYXJhbXMuJywgZXh0ZXJuYWxTb3J0aW5nKTtcbiAgICB9XG5cbiAgICB0aGlzLmluaXRGaWx0ZXJzKCk7XG4gICAgdGhpcy5pbml0SW5maW5pdHlTY3JvbGwoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWQoKSB7XG4gICAgdGhpcy5sb2FkaW5nJC5uZXh0KHRydWUpO1xuXG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuUmVsb2FkKTtcblxuICAgIGlmICh0aGlzLmZzU2Nyb2xsSW5zdGFuY2UpIHtcbiAgICAgIHRoaXMucGFnaW5nLnJlc2V0UGFnaW5nKCk7XG4gICAgICB0aGlzLmRhdGFDb250cm9sbGVyLmNsZWFyUm93cygpO1xuICAgICAgdGhpcy5mc1Njcm9sbEluc3RhbmNlLnJlbG9hZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZldGNoJC5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdhdGNoIHBhZ2UgY2hhbmdlc1xuICAgKi9cbiAgcHVibGljIHN1YnNjcmliZSgpIHtcbiAgICB0aGlzLnBhZ2luZy5wYWdlQ2hhbmdlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBQYWdlQ2hhbmdlKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLlBhZ2VDaGFuZ2UpO1xuXG4gICAgICAgIC8vIFJlbW92ZSBhbGwgcm93cyBpZiBsaW1pdHMgd2FzIGNoYW5nZWRcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IFBhZ2VDaGFuZ2VUeXBlLkxpbWl0Q2hhbmdlZCAmJiB0aGlzLnBhZ2luZy5oYXNQYWdlU3RyYXRlZ3kpIHtcbiAgICAgICAgICB0aGlzLmRhdGFDb250cm9sbGVyLmNsZWFyUm93cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucGFnaW5nLmhhc09mZnNldFN0cmF0ZWd5KSB7XG4gICAgICAgICAgdGhpcy5wYWdpbmcudXBkYXRlUGFnaW5hdGlvbigpO1xuXG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVWaXNpYmxlUmVjb3Jkc0NvdW50KHRoaXMucGFnaW5nLmdldFZpc2libGVSZWNvcmRzKCkpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24udXBkYXRlVG90YWxSZWNvcmRzQ291bnQodGhpcy5wYWdpbmcucmVjb3Jkcyk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5wYWdlQ2hhbmdlZCh0aGlzLnNjcm9sbGFibGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5zY3JvbGxhYmxlICYmICF0aGlzLnBhZ2luZy5sb2FkTW9yZUVuYWJsZWQpIHtcblxuICAgICAgICAgIGNvbnN0IGNvbnRhaW5zID0gW10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY2RrLW92ZXJsYXktY29udGFpbmVyJykpLnNvbWUob3ZlcmxheSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKG92ZXJsYXkpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgbGV0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgaWYgKCFjb250YWlucykge1xuICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGlmICgocmVjdC50b3AgKyB3aW5kb3cucGFnZVlPZmZzZXQpIDwgd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgICAgICAgICAgIGVsID0gZG9jdW1lbnQuYm9keTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmZldGNoQ29tcGxldGUkLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JClcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBlbC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmV0Y2gkLm5leHQoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zb3J0aW5nLnNvcnRpbmdDaGFuZ2VkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLlNvcnQpO1xuICAgICAgICB0aGlzLnBhZ2luZy5wYWdlID0gMTtcblxuICAgICAgICBpZiAodGhpcy5mc1Njcm9sbEluc3RhbmNlKSB7XG4gICAgICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5jbGVhclJvd3MoKTtcbiAgICAgICAgICB0aGlzLmZzU2Nyb2xsSW5zdGFuY2UucmVsb2FkKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mZXRjaCQubmV4dCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMubGlzdGVuUm93c1JlbW92ZSgpO1xuICAgIHRoaXMubGlzdGVuRmV0Y2goKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREYXRhKHRyYWNrQnk/OiBGc0xpc3RUcmFja0J5Rm4pIHtcbiAgICBsZXQgcm93c0RhdGEgPSB0aGlzLmRhdGFDb250cm9sbGVyXG4gICAgICAudmlzaWJsZVJvd3NEYXRhO1xuXG4gICAgaWYgKHRyYWNrQnkpIHtcbiAgICAgIHJvd3NEYXRhID0gcm93c0RhdGFcbiAgICAgICAgLmZpbHRlcih0cmFja0J5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcm93c0RhdGFcbiAgICAgIC5tYXAoKGRhdGEpID0+IHtcbiAgICAgICAgcmV0dXJuIGNsb25lRGVlcChkYXRhKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGhhc0RhdGEodHJhY2tCeTogRnNMaXN0VHJhY2tCeUZuKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YUNvbnRyb2xsZXIudmlzaWJsZVJvd3NEYXRhLnNvbWUodHJhY2tCeSk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIGdyb3VwIG1vZGUgc3RhdHVzXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgcHVibGljIGdyb3VwRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmRhdGFDb250cm9sbGVyLmdyb3VwRW5hYmxlZCAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuZ3JvdXBFbmFibGVkID0gdmFsdWU7XG5cbiAgICAgIC8vIENvbW1lbnRlZCBvdXQgYmVjYXVzZSBSYXkgd2FudHMgdG8gY2hhbmdlIGdyb3VwIHN0YXR1cyBpbiBmZXRjaCBtYXAgcGlwZVxuICAgICAgLy8gYW5kIGl0IHRyaWdnZXJzIGV4dHJhIHJlcXVlc3RzXG4gICAgICAvLyB0aGlzLnJlbG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCkge1xuICAgIGlmICh0aGlzLl9mc1Njcm9sbFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5fZnNTY3JvbGxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYWdpbmcpIHtcbiAgICAgIHRoaXMucGFnaW5nLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zb3J0aW5nKSB7XG4gICAgICB0aGlzLnNvcnRpbmcuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3Rpb24uZGVzdHJveSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZpbHRlckNvbmZpZykge1xuICAgICAgdGhpcy5maWx0ZXJDb25maWcgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmV4dGVybmFsUGFyYW1zKSB7XG4gICAgICB0aGlzLmV4dGVybmFsUGFyYW1zLmRlc3Ryb3koKVxuICAgIH1cblxuICAgIHRoaXMuY29sdW1ucy5kZXN0cm95KCk7XG5cbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5kZXN0cm95KCk7XG4gIH1cblxuICAvKipcbiAgICogRG8gaW5pdGlhbGl6YXRpb24gb2YgdGFibGVcbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplKGNvbmZpZzogRnNMaXN0Q29uZmlnKSB7XG4gICAgdGhpcy5jb2x1bW5zLmluaXRDb25maWcoY29uZmlnLmNvbHVtbik7XG4gICAgdGhpcy5pbml0RGVmYXVsdE9wdGlvbnMoY29uZmlnKTtcbiAgICB0aGlzLmluaXRSZXN0b3JlKCk7XG4gICAgdGhpcy5pbml0QWN0aW9ucyhjb25maWcuYWN0aW9ucyk7XG4gICAgdGhpcy5pbml0UGFnaW5nKGNvbmZpZy5wYWdpbmcsIGNvbmZpZy5sb2FkTW9yZSk7XG4gICAgdGhpcy5pbml0U2VsZWN0aW9uKGNvbmZpZy5zZWxlY3Rpb24sIHRoaXMuc2VsZWN0aW9uRGlhbG9nKTtcbiAgICB0aGlzLmluaXRHcm91cHMoY29uZmlnLmdyb3VwKTtcbiAgICB0aGlzLmluaXRFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXIoKTtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBKdXN0IGluaXQgb3B0aW9ucyBieSBkZWZhdWx0IGl0IGl0IHdhc24ndCBzcGVjaWZpZWRcbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKi9cbiAgcHJpdmF0ZSBpbml0RGVmYXVsdE9wdGlvbnMoY29uZmlnKSB7XG4gICAgLy8gV2Ugc2hvdWxkIHByZXZlbnQgaW5pdGlhbCBmZXRjaCBpbiBjYXNlcyB3aGVuIGl0IHdpbGwgYmUgZmV0Y2hlZCBpbiBhbnkgY2FzZVxuICAgIC8vIEFzIGV4LiBzY3JvbGxhYmxlIG9yIGZpbHRlciB3aWxsIGRvIGZldGNoIGluIGFueSBjYXNlc1xuICAgIGlmIChjb25maWcuaW5pdGlhbEZldGNoID09PSBmYWxzZSB8fCBjb25maWcuc2Nyb2xsYWJsZSkgeyAvLyBUT0RPIGZpeG1lIGFmdGVyIHRzbW9kZWwgdmVyc2lvbiB1cGRhdGVcbiAgICAgIHRoaXMuaW5pdGlhbEZldGNoID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChjb25maWcuc3RhdHVzID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5zdGF0dXMgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5jaGlwcykge1xuICAgICAgdGhpcy5jaGlwcyA9IGNvbmZpZy5jaGlwcztcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5maWx0ZXJJbnB1dCA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuZmlsdGVySW5wdXQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbkRpYWxvZykge1xuICAgICAgdGhpcy5xdWVyeVBhcmFtID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlcnlQYXJhbSA9IChjb25maWcucXVlcnlQYXJhbSA9PT0gdm9pZCAwKVxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiBjb25maWcucXVlcnlQYXJhbTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnNvcnRzKSB7XG4gICAgICB0aGlzLnNvcnRpbmcuaW5pdEZha2VDb2x1bW5zKGNvbmZpZy5zb3J0cyk7XG4gICAgfVxuICAgIGlmICghY29uZmlnLnRyYWNrQnkpIHtcbiAgICAgIHRoaXMudHJhY2tCeSA9ICdpZCc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXQgcmVzdG9yZSByb3cgYWN0aW9uIGFuZCBhcHBlbmQgU2hvdyBEZWxldGVkIG9wdGlvbiBpbnRvIGZpbHRlcnNcbiAgICovXG4gIHByaXZhdGUgaW5pdFJlc3RvcmUoKSB7XG4gICAgaWYgKHRoaXMucmVzdG9yZSkge1xuICAgICAgY29uc3QgcmVzdG9yZUFjdGlvbiA9IG5ldyBSb3dBY3Rpb24oe1xuICAgICAgICBsYWJlbDogdGhpcy5yZXN0b3JlLm1lbnVMYWJlbCB8fCAnUmVzdG9yZScsXG4gICAgICAgIG1lbnU6IHRydWUsXG4gICAgICAgIGNsaWNrOiAocm93KSA9PiB7IHRoaXMucmVzdG9yZUNsaWNrKHRoaXMucmVzdG9yZS5jbGljaywgcm93KSB9LCAvLyBUT0RPIGZpeCBtZSwgbW92ZSB0byBzcGVjaWFsIGZpbGVcbiAgICAgICAgcmVzdG9yZTogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIGlmICghdGhpcy5yb3dBY3Rpb25zUmF3KSB7XG4gICAgICAgIHRoaXMucm93QWN0aW9uc1JhdyA9IFtdO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJvd0FjdGlvbnNSYXcucHVzaChyZXN0b3JlQWN0aW9uKTtcblxuICAgICAgaWYgKCF0aGlzLmZpbHRlcnMpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gW107XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnJlc3RvcmUuZmlsdGVyICE9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLmZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgbmFtZTogU0hPV19ERUxFVEVEX0ZJTFRFUlNfS0VZLFxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLkNoZWNrYm94LFxuICAgICAgICAgIGxhYmVsOiB0aGlzLnJlc3RvcmUuZmlsdGVyTGFiZWwgfHwgJ1Nob3cgRGVsZXRlZCdcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAvKipcbiAgICogSW5pdCBwYWdpbmdcbiAgICogQHBhcmFtIHBhZ2luZ0NvbmZpZ1xuICAgKiBAcGFyYW0gbG9hZE1vcmVcbiAgICovXG4gIHByaXZhdGUgaW5pdFBhZ2luZyhwYWdpbmdDb25maWc6IEZzUGFnaW5nIHwgZmFsc2UsIGxvYWRNb3JlOiBGc0xpc3RMb2FkTW9yZUNvbmZpZyB8IGJvb2xlYW4pIHtcbiAgICB0aGlzLnBhZ2luZy5pbml0V2l0aENvbmZpZyhwYWdpbmdDb25maWcsIGxvYWRNb3JlLCAhIXRoaXMuc2Nyb2xsYWJsZSk7XG4gIH1cblxuICAvKipcbiAgICogU3BsaXQgYWN0aW9ucyBieSBjYXRlZ29yaWVzXG4gICAqL1xuICBwcml2YXRlIGluaXRBY3Rpb25zKGFjdGlvbnMpIHtcbiAgICBpZiAoYWN0aW9ucykge1xuICAgICAgdGhpcy5hY3Rpb25zLnNldEFjdGlvbnMoYWN0aW9ucyk7XG4gICAgfVxuXG4gICAgdGhpcy5oYXNSb3dBY3Rpb25zID1cbiAgICAgICh0aGlzLnJvd0FjdGlvbnNSYXcgJiYgdGhpcy5yb3dBY3Rpb25zUmF3Lmxlbmd0aCA+IDApXG4gICAgICB8fCAodGhpcy5ncm91cEFjdGlvbnNSYXcgJiYgdGhpcy5ncm91cEFjdGlvbnNSYXcubGVuZ3RoID4gMCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRTZWxlY3Rpb24oXG4gICAgc2VsZWN0aW9uQ29uZmlnOiBGc0xpc3RTZWxlY3Rpb25Db25maWcsXG4gICAgc2VsZWN0aW9uRGlhbG9nOiBTZWxlY3Rpb25EaWFsb2csXG4gICkge1xuICAgIGlmIChzZWxlY3Rpb25Db25maWcpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbkNvbnRyb2xsZXIoc2VsZWN0aW9uQ29uZmlnLCB0aGlzLnRyYWNrQnksIHNlbGVjdGlvbkRpYWxvZyk7XG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZXRSb3dzQ2FsbGJhY2soKCkgPT4gdGhpcy5kYXRhQ29udHJvbGxlci52aXNpYmxlUm93cyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRGF0YSgpIHtcbiAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldEFkZGl0aW9uYWxDb25maWdzKHtcbiAgICAgIHNjcm9sbGFibGU6ICEhdGhpcy5zY3JvbGxhYmxlLFxuICAgICAgbG9hZE1vcmVFbmFibGVkOiB0aGlzLnBhZ2luZy5sb2FkTW9yZUVuYWJsZWRcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEdyb3Vwcyhncm91cENvbmZpZzogRnNMaXN0R3JvdXBDb25maWcpIHtcbiAgICBpZiAoZ3JvdXBDb25maWcpIHtcbiAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0R3JvdXBDb25maWcoZ3JvdXBDb25maWcpO1xuICAgICAgdGhpcy5ncm91cEFjdGlvbnNSYXcgPSBncm91cENvbmZpZy5hY3Rpb25zO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcigpIHtcbiAgICB0aGlzLmV4dGVybmFsUGFyYW1zID0gbmV3IEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcihcbiAgICAgIHRoaXMucm91dGVyLFxuICAgICAgdGhpcy5yb3V0ZSxcbiAgICAgIHRoaXMucGVyc2lzdGFuY2UsXG4gICAgICB0aGlzLnBhZ2luZyxcbiAgICAgIHRoaXMuc29ydGluZyxcbiAgICAgIHRoaXMucXVlcnlQYXJhbVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIGZldGNoJCBldmVudCB3aXRoIGRlYm91bmNlXG4gICAqL1xuICBwcml2YXRlIGxpc3RlbkZldGNoKCkge1xuICAgIGxldCBmZXRjaCQgPSB0aGlzLmZldGNoJC5hc09ic2VydmFibGUoKTtcblxuICAgIC8vIFNob3VsZCB3YWl0IHVudGlsIHNhdmVkIGZpbHRlcnMgbm90IGxvYWRlZFxuICAgIGlmICghIXRoaXMuZmlsdGVycyAmJiAhIXRoaXMuc2F2ZWRGaWx0ZXJzKSB7XG4gICAgICBmZXRjaCQgPSBjb21iaW5lTGF0ZXN0KFtmZXRjaCQsIHRoaXMuZmlsdGVyc1JlYWR5JF0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoW3BhcmFtc10pID0+IHBhcmFtcyksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZmV0Y2gkXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uPy5jbG9zZVNlbGVjdGlvbkRpYWxvZygpO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChwYXJhbXM6IEZzTGlzdEZldGNoU3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLnBhZ2luZy5oYXNPZmZzZXRTdHJhdGVneSAmJiBwYXJhbXMgJiYgcGFyYW1zLmxvYWRPZmZzZXRcbiAgICAgICAgICAgID8gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5maWx0ZXJzUXVlcnksIHRoaXMucGFnaW5nLmxvYWREZWxldGVkT2Zmc2V0UXVlcnkpXG4gICAgICAgICAgICA6IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZmlsdGVyc1F1ZXJ5LCB0aGlzLnBhZ2luZy5xdWVyeSk7XG5cbiAgICAgICAgICBpZiAodGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4pIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IGAke3RoaXMuc29ydGluZy5zb3J0aW5nQ29sdW1uLm5hbWV9LCR7dGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4uZGlyZWN0aW9ufWBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBxdWVyeTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgocXVlcnkpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5jb2x1bW5zLmxvYWRGbkNvbmZpZ3VyZWQgJiYgIXRoaXMuY29sdW1ucy5jb2x1bW5zRmV0Y2hlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1ucy5sb2FkUmVtb3RlQ29sdW1uQ29uZmlncygpXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcFRvKHF1ZXJ5KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YocXVlcnkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgocXVlcnkpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5jb2x1bW5zLmNvbmZpZ3VyZWQpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zLnZpc2libGVDb2x1bW5zTmFtZXMsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbb2YocXVlcnkpLCB0aGlzLmZldGNoUmVtb3RlKHF1ZXJ5KV0pO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IsIHNvdXJjZSQpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcblxuICAgICAgICAgIHJldHVybiBzb3VyY2UkO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmNvbXBsZXRlRmV0Y2gocmVzcG9uc2UpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblJvd3NSZW1vdmUoKSB7XG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5yb3dzUmVtb3ZlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHJvd3M6IGFueVtdKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luZy5lbmFibGVkKSB7XG5cbiAgICAgICAgICBjb25zdCByZW1vdmVkQ291bnQgPSByb3dzLmxlbmd0aDtcblxuICAgICAgICAgIGlmICh0aGlzLnBhZ2luZy5oYXNQYWdlU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIHRoaXMubm9EYXRhUGFnaW5hdGlvblVwZGF0ZShyZW1vdmVkQ291bnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGZXRjaCBtb3JlIGlmIGhhcyBzb21ldGhpbmcgZm9yIGZldGNoXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhQ29udHJvbGxlci5oYXNEYXRhIHx8IHRoaXMucGFnaW5nLmhhc05leHRQYWdlKSB7XG4gICAgICAgICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLkxvYWRNb3JlKTtcblxuICAgICAgICAgICAgICB0aGlzLnBhZ2luZy5yZW1vdmVSb3dzKHJlbW92ZWRDb3VudCk7XG4gICAgICAgICAgICAgIHRoaXMuZmV0Y2gkLm5leHQoeyBsb2FkT2Zmc2V0OiB0cnVlIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5ub0RhdGFQYWdpbmF0aW9uVXBkYXRlKHJlbW92ZWRDb3VudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIGZyb20gc2VsZWN0aW9uXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgICAgIHJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5yZW1vdmVSb3cocm93LmRhdGEpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEluZmluaXR5U2Nyb2xsKCkge1xuICAgIGlmICh0aGlzLmZzU2Nyb2xsSW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zY3JvbGxhYmxlKSB7XG4gICAgICAvLyBTY3JvbGxhYmxlIHN0YXR1cyBieSBkZWZhdWx0XG4gICAgICBpZiAodGhpcy5zY3JvbGxhYmxlLnN0YXR1cyA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsYWJsZS5zdGF0dXMgPSB0cnVlO1xuICAgICAgfVxuXG5cbiAgICAgIHRoaXMuZnNTY3JvbGxcbiAgICAgICAgLmNvbXBvbmVudCh0aGlzLnNjcm9sbGFibGUubmFtZSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChmc1Njcm9sbEluc3RhbmNlOiBGc1Njcm9sbEluc3RhbmNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5mc1Njcm9sbEluc3RhbmNlID0gZnNTY3JvbGxJbnN0YW5jZTtcbiAgICAgICAgICB0aGlzLl9mc1Njcm9sbFN1YnNjcmlwdGlvbiA9IGZzU2Nyb2xsSW5zdGFuY2VcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICBsZXQgc3RhcnRMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IHRoaXMuZGF0YUNvbnRyb2xsZXIub3BlcmF0aW9uO1xuXG4gICAgICAgICAgICAgIC8vIEluaXRpYWwgbG9hZGluZyBpZiBpbml0aWFsRmV0Y2ggZXF1YWxzIGZhbHNlXG4gICAgICAgICAgICAgIGlmICghdGhpcy5pbml0aWFsRmV0Y2hcbiAgICAgICAgICAgICAgICAmJiAhdGhpcy5wYWdpbmcuaW5pdGlhbGl6ZWRcbiAgICAgICAgICAgICAgICAmJiBvcGVyYXRpb24gIT09IEZzTGlzdFN0YXRlLlJlbG9hZFxuICAgICAgICAgICAgICApIHtcblxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLkxvYWQpO1xuICAgICAgICAgICAgICAgIHN0YXJ0TG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24gPT09IEZzTGlzdFN0YXRlLlJlbG9hZCB8fFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9PT0gRnNMaXN0U3RhdGUuRmlsdGVyIHx8XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uID09PSBGc0xpc3RTdGF0ZS5Tb3J0XG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHN0YXJ0TG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5wYWdpbmcuaW5pdGlhbGl6ZWQgJiYgdGhpcy5wYWdpbmcuaGFzTmV4dFBhZ2UpIHtcbiAgICAgICAgICAgICAgICAvLyBMb2FkaW5nIGlmIGNvbnRlbnQgaGFzIGJlZW4gc2Nyb2xsZWRcbiAgICAgICAgICAgICAgICBzdGFydExvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLkxvYWQpO1xuICAgICAgICAgICAgICAgIHRoaXMucGFnaW5nLmdvTmV4dCgpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKHN0YXJ0TG9hZGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2gkLm5leHQoKTtcbiAgICAgICAgICAgICAgICBmc1Njcm9sbEluc3RhbmNlLmxvYWRpbmcoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5yZW1vdGVSb3dzQ2hhbmdlJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIGZzU2Nyb2xsSW5zdGFuY2UubG9hZGVkKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYW5kIHdhdGNoIGZpbHRlciBjaGFuZ2VzXG4gICAqL1xuICBwcml2YXRlIGluaXRGaWx0ZXJzKCkge1xuICAgIGlmICh0aGlzLmZpbHRlckNvbmZpZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIE1lcmdlIHNvcnRpbmcgYW5kIGZha2Ugc29ydGluZyBjb2xzXG4gICAgLy8gRmFrZSBzb3J0aW5nIGNvbHMgaXQncyBjb2xzIHdoaWNoIGRvbid0IHJlcHJlc2VudGVkIGluIHRhYmxlIGNvbHMsIGxpa2UgYWJzdHJhY3QgY29sc1xuICAgIGNvbnN0IHNvcnRWYWx1ZXMgPVxuICAgICAgW1xuICAgICAgICAuLi50aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbnMsXG4gICAgICAgIC4uLnRoaXMuc29ydGluZy5mYWtlU29ydGluZ0NvbHVtbnNcbiAgICAgIF0ucmVkdWNlKChhY2MsIGNvbHVtbikgPT4ge1xuXG4gICAgICAgIGNvbnN0IHNvcnRpbmdJdGVtID0ge1xuICAgICAgICAgIG5hbWU6IGNvbHVtbi50aXRsZSxcbiAgICAgICAgICB2YWx1ZTogY29sdW1uLm5hbWUsXG4gICAgICAgICAgZGVmYXVsdDogdGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4gJiYgdGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4ubmFtZSA9PT0gY29sdW1uLm5hbWVcbiAgICAgICAgfTtcblxuICAgICAgICBhY2MucHVzaChzb3J0aW5nSXRlbSk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBzb3J0Q29uZmlnID0gdGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW5cbiAgICAgID8geyB2YWx1ZTogdGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4ubmFtZSwgZGlyZWN0aW9uOiB0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbi5kaXJlY3Rpb259XG4gICAgICA6IG51bGw7XG5cbiAgICAvLyBDb25maWdcbiAgICB0aGlzLmZpbHRlckNvbmZpZyA9IHtcbiAgICAgIHBlcnNpc3Q6IHRoaXMucGVyc2lzdCxcbiAgICAgIGl0ZW1zOiB0aGlzLmZpbHRlcnMgfHwgW10sXG4gICAgICBzYXZlZEZpbHRlcnM6IHRoaXMuc2F2ZWRGaWx0ZXJzLFxuICAgICAgaW5saW5lOiB0aGlzLmlubGluZUZpbHRlcnMsXG4gICAgICBhY3Rpb25zOiB0aGlzLmFjdGlvbnMuYWN0aW9ucyxcbiAgICAgIHF1ZXJ5UGFyYW06IHRoaXMucXVlcnlQYXJhbSxcbiAgICAgIHNvcnRzOiBzb3J0VmFsdWVzLFxuICAgICAgc29ydDogc29ydENvbmZpZyxcbiAgICAgIGNoaXBzOiB0aGlzLmNoaXBzLFxuICAgICAgaW5pdDogdGhpcy5maWx0ZXJJbml0LmJpbmQodGhpcyksXG4gICAgICBjaGFuZ2U6IHRoaXMuZmlsdGVyQ2hhbmdlLmJpbmQodGhpcyksXG4gICAgICByZWxvYWQ6IHRoaXMucmVsb2FkLmJpbmQodGhpcyksXG4gICAgICBzb3J0Q2hhbmdlOiB0aGlzLmZpbHRlclNvcnQuYmluZCh0aGlzKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gRmlsdGVyIGhhcyBiZWVuIGluaXRpYWxpemVkXG4gICAqIEBwYXJhbSBmaWx0ZXJzXG4gICAqL1xuICBwcml2YXRlIGZpbHRlckluaXQoZmlsdGVycykge1xuICAgIGlmICh0aGlzLmZpbHRlckluaXRDYikge1xuICAgICAgdGhpcy5maWx0ZXJJbml0Q2IoZmlsdGVycyk7XG4gICAgfVxuXG4gICAgdGhpcy5maWx0ZXJzUXVlcnkgPSBmaWx0ZXJzO1xuXG4gICAgdGhpcy5jaGVja1Jlc3RvcmVGaWx0ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIEZpbHRlciBoYXMgYmVlbiBjaGFuZ2VkXG4gICAqIEBwYXJhbSBmaWx0ZXJRdWVyeVxuICAgKiBAcGFyYW0gZmlsdGVyU29ydFxuICAgKi9cbiAgcHJpdmF0ZSBmaWx0ZXJDaGFuZ2UoZmlsdGVyUXVlcnksIGZpbHRlclNvcnQpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJDaGFuZ2VDYikge1xuICAgICAgdGhpcy5maWx0ZXJDaGFuZ2VDYihmaWx0ZXJRdWVyeSwgZmlsdGVyU29ydCk7XG4gICAgfVxuXG4gICAgdGhpcy5maWx0ZXJzUXVlcnkgPSBmaWx0ZXJRdWVyeTtcblxuICAgIHRoaXMucmVzdG9yZU1vZGUgPSBmYWxzZTtcblxuICAgIC8vIFJlc3RvcmUgb3B0aW9uXG4gICAgdGhpcy5jaGVja1Jlc3RvcmVGaWx0ZXIoKTtcblxuICAgIGlmICh0aGlzLnJlc3RvcmUgJiYgdGhpcy5yZXN0b3JlLnJlbG9hZCkge1xuICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldE9wZXJhdGlvbihGc0xpc3RTdGF0ZS5GaWx0ZXIpO1xuXG4gICAgLy8gUmVzZXQgcGFnaW5nIGZvciByZXF1ZXN0IHdpdGggY29ycmVjdCBvZmZzZXRcbiAgICB0aGlzLnBhZ2luZy5yZXNldFBhZ2luZygpO1xuXG4gICAgaWYgKHRoaXMuZnNTY3JvbGxJbnN0YW5jZSkge1xuICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5jbGVhclJvd3MoKTtcbiAgICAgIHRoaXMuZnNTY3JvbGxJbnN0YW5jZS5yZWxvYWQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mZXRjaCQubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tSZXN0b3JlRmlsdGVyKCkge1xuICAgIC8vIFJlc3RvcmUgb3B0aW9uXG4gICAgaWYgKHRoaXMucmVzdG9yZSAmJiB0aGlzLmZpbHRlcnNRdWVyeVtTSE9XX0RFTEVURURfRklMVEVSU19LRVldKSB7XG4gICAgICBkZWxldGUgdGhpcy5maWx0ZXJzUXVlcnlbU0hPV19ERUxFVEVEX0ZJTFRFUlNfS0VZXTtcblxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmZpbHRlcnNRdWVyeSwgdGhpcy5yZXN0b3JlLnF1ZXJ5KTtcblxuICAgICAgdGhpcy5yZXN0b3JlTW9kZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsbGJhY2sgd2hlbiBGaWx0ZXIgc29ydCBoYXMgYmVlbiBjaGFuZ2VkXG4gIHByaXZhdGUgZmlsdGVyU29ydChmaWx0ZXJRdWVyeSwgZmlsdGVyU29ydCkge1xuICAgIGlmIChmaWx0ZXJTb3J0KSB7XG4gICAgICB0aGlzLnNvcnRpbmcuc29ydEJ5Q29sdW1uV2l0aE5hbWUoZmlsdGVyU29ydC52YWx1ZSk7XG5cbiAgICAgIGNvbnN0IHNvcnREaXJlY3Rpb24gPSBmaWx0ZXJTb3J0LmRpcmVjdGlvbiA9PT0gJ2FzYycgPyBTb3J0aW5nRGlyZWN0aW9uLmFzYyA6IFNvcnRpbmdEaXJlY3Rpb24uZGVzYztcbiAgICAgIHRoaXMuc29ydGluZy5zb3J0RGlyZWN0aW9uKHNvcnREaXJlY3Rpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGSVhNRSBuZWVkIHRvIGJlIHJlZmFjdG9yZWQuLi5cbiAgICAgIHRoaXMuc29ydGluZy5zb3J0aW5nQ29sdW1uID0gdm9pZCAwO1xuICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbXBsZXRlRmV0Y2goW3F1ZXJ5LCByZXNwb25zZV0pIHtcblxuICAgIGlmICghdGhpcy5wYWdpbmcucGFnZSkge1xuICAgICAgdGhpcy5wYWdpbmcucGFnZSA9IDE7XG4gICAgfVxuXG4gICAgaWYgKHJlc3BvbnNlLnBhZ2luZykge1xuICAgICAgY29uc3QgZGlzcGxheWVkID0gKEFycmF5LmlzQXJyYXkocmVzcG9uc2UuZGF0YSkgJiYgcmVzcG9uc2UuZGF0YS5sZW5ndGgpIHx8IDA7XG4gICAgICB0aGlzLnBhZ2luZy51cGRhdGVQYWdpbmcoXG4gICAgICAgIHJlc3BvbnNlLnBhZ2luZyxcbiAgICAgICAgZGlzcGxheWVkLFxuICAgICAgICB0aGlzLmRhdGFDb250cm9sbGVyLm9wZXJhdGlvbiA9PT0gRnNMaXN0U3RhdGUuTG9hZE1vcmVcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnBhZ2luZy5lbmFibGVkKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgJyVjIEZzTGlzdCBXYXJuaW5nICcsXG4gICAgICAgICdjb2xvcjogd2hpdGU7IGJhY2tncm91bmQtY29sb3I6ICNmZmNjMGInLFxuICAgICAgICAnUGFnaW5hdGlvbiBkb2VzIG5vdCBjb25maWd1cmVkIHByb3Blcmx5LiAnICtcbiAgICAgICAgJ1BhZ2luYXRpb24gaXMgZW5hYmxlZCwgYnV0IGh0dHAgcmVzcG9uc2UgZG9lcyBub3QgY29udGFpbiBcInBhZ2luZ1wiIGZpZWxkLiAnICtcbiAgICAgICAgJ1lvdSBoYXZlIHRvIHNldCBcInBhZ2luZzogZmFsc2VcIiBpbiBjb25maWcgb3IgYWRkIFwicGFnaW5nXCIgZmllbGQgdG8gcmVzcG9uc2UuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLy8gbXVzdCBiZSBiZWZvcmUgc2VsZWN0aW9uLCBiZWNhdXNlIHNlbGV0aW9uIHVzZSByZWNvcmRzXG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRSb3dzRnJvbVJlc3BvbnNlKHJlc3BvbnNlLmRhdGEpO1xuICAgIC8vL1xuXG4gICAgLy8gVXBkYXRlIHNlbGVjdGlvbiBwYXJhbXNcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcblxuICAgICAgaWYgKHRoaXMucGFnaW5nLmVuYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24ucGFnZUNoYW5nZWQodGhpcy5zY3JvbGxhYmxlKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24udXBkYXRlVmlzaWJsZVJlY29yZHNDb3VudCh0aGlzLnBhZ2luZy5nZXRWaXNpYmxlUmVjb3JkcygpKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24udXBkYXRlVG90YWxSZWNvcmRzQ291bnQodGhpcy5wYWdpbmcucmVjb3Jkcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjb3VudCA9IHJlc3BvbnNlLnBhZ2luZyAmJiByZXNwb25zZS5wYWdpbmcucmVjb3Jkc1xuICAgICAgICAgIHx8IEFycmF5LmlzQXJyYXkocmVzcG9uc2UuZGF0YSkgJiYgcmVzcG9uc2UuZGF0YS5sZW5ndGg7XG5cbiAgICAgICAgdGhpcy5zZWxlY3Rpb24udXBkYXRlVmlzaWJsZVJlY29yZHNDb3VudChjb3VudCk7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnVwZGF0ZVRvdGFsUmVjb3Jkc0NvdW50KGNvdW50KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRSb3dzSW50ZXJzZWN0aW9uKHRoaXMuZGF0YUNvbnRyb2xsZXIudmlzaWJsZVJvd3NEYXRhKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lbXB0eVN0YXRlPy52YWxpZGF0ZSAmJiB0aGlzLmVtcHR5U3RhdGVUZW1wbGF0ZSkge1xuICAgICAgdGhpcy5lbXB0eVN0YXRlRW5hYmxlZCA9IHRoaXMuZW1wdHlTdGF0ZS52YWxpZGF0ZShxdWVyeSwgY2xvbmVEZWVwKHJlc3BvbnNlLmRhdGEpKTtcbiAgICB9XG5cbiAgICB0aGlzLmZldGNoQ29tcGxldGUkLm5leHQoKTtcbiAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdpbGwgZG8gc29tZSBhY3Rpb25zIGlmIHlvdSByZW1vdmVkIGl0ZW0gYW5kIGl0ZW0gd2FzIGxhc3Qgb24gaGlzIG93biBwYWdlXG4gICAqXG4gICAqIEV4OiBpZiBsaXN0IGhhcyAzIHBhZ2VzIGFuZCBvbiB0aGlyZCBwYWdlIHlvdSBoYXZlIG9ubHkgb25lIGl0ZW0uIEFuZCB5b3UganVzdCBkZWxldGVkIHRoaXMgaXRlbS5cbiAgICogWW91IG11c3QgZ28gdG8gc2Vjb25kIHBhZ2UsIGJ1dCBpZiBpdCB3YXMgbGFzdCBwYWdlIGFuZCB5b3UgY2FuJ3QgZ28gYmFjayAtPiBqdXN0IHJlbG9hZFxuICAgKlxuICAgKiBAcGFyYW0gZGVsZXRlZENvdW50XG4gICAqL1xuICBwcml2YXRlIG5vRGF0YVBhZ2luYXRpb25VcGRhdGUoZGVsZXRlZENvdW50KSB7XG4gICAgaWYgKCF0aGlzLmRhdGFDb250cm9sbGVyLmhhc0RhdGEpIHtcbiAgICAgIGlmICh0aGlzLnBhZ2luZy5wYWdlID4gMSkge1xuICAgICAgICB0aGlzLnBhZ2luZy5nb1RvUGFnZSh0aGlzLnBhZ2luZy5wYWdlIC0gMSB8fCAxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wYWdpbmcucmVjb3JkcyAtPSBkZWxldGVkQ291bnQ7XG4gICAgdGhpcy5wYWdpbmcudXBkYXRlUGFnaW5hdGlvbigpO1xuXG4gICAgaWYgKHRoaXMuZGF0YUNvbnRyb2xsZXIuaGFzRGF0YSAmJiB0aGlzLnNlbGVjdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3Rpb24udXBkYXRlVmlzaWJsZVJlY29yZHNDb3VudCh0aGlzLmRhdGFDb250cm9sbGVyLnZpc2libGVSb3dzQ291bnQpO1xuICAgICAgdGhpcy5zZWxlY3Rpb24udXBkYXRlVG90YWxSZWNvcmRzQ291bnQodGhpcy5wYWdpbmcucmVjb3Jkcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRlbXBvcmFyeSBzb2x1dGlvbiwgd2lsbCBkbyBhdXRvIHN1YnNjcmliZSBpZiB3YXMgcmV0dXJuZWQgT2JzZXJ2YWJsZS5cbiAgICpcbiAgICogVE9ETzogTU9WRSBUSElTIFBFQUNFIE9GIENPREUgVE8gU1BFQ0lBTCBQTEFDRVxuICAgKlxuICAgKiBAcGFyYW0gcmVzdG9yZUNsaWNrQ2FsbGJhY2tcbiAgICogQHBhcmFtIHJvd1xuICAgKi9cbiAgcHJpdmF0ZSByZXN0b3JlQ2xpY2socmVzdG9yZUNsaWNrQ2FsbGJhY2ssIHJvdykge1xuICAgIGNvbnN0IHJlc3RvcmVDbGlja1Jlc3VsdCA9IHJlc3RvcmVDbGlja0NhbGxiYWNrKHJvdyk7XG5cbiAgICBpZiAocmVzdG9yZUNsaWNrUmVzdWx0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgcmVzdG9yZUNsaWNrUmVzdWx0XG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4gdGhpcy5yZWxvYWQoKSxcbiAgICAgICAgICBlcnJvcjogKCkgPT4ge30sXG4gICAgICAgIH0pXG4gICAgfVxuICB9XG59XG4iXX0=
756
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvbGlzdC8iLCJzb3VyY2VzIjpbImFwcC9jbGFzc2VzL2xpc3QtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFxRCxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUlqRyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixJQUFJLEVBQ0osVUFBVSxFQUNWLEVBQUUsRUFDRixPQUFPLEVBRVIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFDWixHQUFHLEVBQ0gsS0FBSyxFQUNMLFNBQVMsRUFDVCxJQUFJLEVBQ0osU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFrQjFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlC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Y0FBTyxDQUFDO2FBQ2hCLENBQUMsQ0FBQTtTQUNMO0lBQ0gsQ0FBQztJQXIxQlE7UUFBUixLQUFLLEVBQUU7O3lDQUF3QjtJQUN2QjtRQUFSLEtBQUssRUFBRTs7eUNBQXdCO0lBQ3ZCO1FBQVIsS0FBSyxFQUFFOzs0Q0FBMkI7SUFDMUI7UUFBUixLQUFLLEVBQUU7OytDQUEyQjtJQUVkO1FBQXBCLEtBQUssQ0FBQyxZQUFZLENBQUM7OytDQUE2QjtJQUU5QjtRQUFsQixLQUFLLENBQUMsVUFBVSxDQUFDOzswQ0FBaUI7SUFDMUI7UUFBUixLQUFLLEVBQUU7OzJDQUF1QjtJQUN0QjtRQUFSLEtBQUssRUFBRTs7eUNBQXFDO0lBQ3BDO1FBQVIsS0FBSyxFQUFFOztpREFBNkI7SUFDNUI7UUFBUixLQUFLLEVBQUU7O3lDQUF5QjtJQUN4QjtRQUFSLEtBQUssRUFBRTs7eUNBQXFCO0lBQ1I7UUFBcEIsS0FBSyxDQUFDLFlBQVksQ0FBQzs7OENBQStCO0lBQzVCO1FBQXRCLEtBQUssQ0FBQyxjQUFjLENBQUM7O2dEQUFpQztJQUM5QztRQUFSLEtBQUssRUFBRTs7OENBQWdEO0lBQy9DO1FBQVIsS0FBSyxFQUFFOzs0Q0FBMkQ7SUFDMUQ7UUFBUixLQUFLLEVBQUU7OzJDQUF5QztJQUN4QztRQUFSLEtBQUssRUFBRTs7NENBQTJDO0lBRW5DO1FBQWYsS0FBSyxDQUFDLE9BQU8sQ0FBQzs7eUNBQStCO0lBQ3pCO1FBQXBCLEtBQUssQ0FBQyxZQUFZLENBQUM7OzhDQUF5QztJQWkwQi9ELFdBQUM7Q0FBQSxBQXYxQkQsQ0FBMEIsS0FBSyxHQXUxQjlCO1NBdjFCWSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2hhbmdlRm4sIEZpbHRlckNvbmZpZywgSUZpbHRlclNhdmVkRmlsdGVyc0NvbmZpZywgSXRlbVR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuaW1wb3J0IHsgRnNTY3JvbGxJbnN0YW5jZSwgRnNTY3JvbGxTZXJ2aWNlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvc2Nyb2xsJztcbmltcG9ydCB7IFNlbGVjdGlvbkRpYWxvZyB9IGZyb20gJ0BmaXJlc3RpdGNoL3NlbGVjdGlvbic7XG5cbmltcG9ydCB7IEFsaWFzLCBNb2RlbCB9IGZyb20gJ3RzbW9kZWxzJztcblxuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBmcm9tLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZGVib3VuY2VUaW1lLFxuICBtYXAsXG4gIG1hcFRvLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBTb3J0aW5nRGlyZWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5cbi8vIEludGVyZmFjZXNcbmltcG9ydCB7XG4gIEZzTGlzdEFmdGVyRmV0Y2hGbixcbiAgRnNMaXN0Q29uZmlnLFxuICBGc0xpc3RFbXB0eVN0YXRlQ29uZmlnLCBGc0xpc3RGZXRjaEZuLCBGc0xpc3RGZXRjaE9wdGlvbnMsXG4gIEZzTGlzdEZldGNoU3Vic2NyaXB0aW9uLFxuICBGc0xpc3RHcm91cENvbmZpZyxcbiAgRnNMaXN0TG9hZE1vcmVDb25maWcsXG4gIEZzTGlzdE5vUmVzdWx0c0NvbmZpZyxcbiAgRnNMaXN0UmVzdG9yZUNvbmZpZyxcbiAgRnNMaXN0U2Nyb2xsYWJsZUNvbmZpZyxcbiAgRnNMaXN0U2VsZWN0aW9uQ29uZmlnLFxuICBGc0xpc3RUcmFja0J5Rm4sXG4gIEZzUGFnaW5nLFxuICBQYWdlQ2hhbmdlXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgU3R5bGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvc3R5bGVDb25maWcubW9kZWwnO1xuaW1wb3J0IHsgUm93QWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3Jvdy1hY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgQ29sdW1uc0NvbnRyb2xsZXIgfSBmcm9tICcuL2NvbHVtbnMtY29udHJvbGxlcic7XG5pbXBvcnQgeyBQYWdlQ2hhbmdlVHlwZSB9IGZyb20gJy4uL2VudW1zL3BhZ2UtY2hhbmdlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBBY3Rpb25zQ29udHJvbGxlciB9IGZyb20gJy4vaW5kZXgnO1xuaW1wb3J0IHsgRGF0YUNvbnRyb2xsZXIgfSBmcm9tICcuL2RhdGEtY29udHJvbGxlcic7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29udHJvbGxlciB9IGZyb20gJy4vcGFnaW5hdGlvbi1jb250cm9sbGVyJztcbmltcG9ydCB7IFNlbGVjdGlvbkNvbnRyb2xsZXIgfSBmcm9tICcuL3NlbGVjdGlvbi1jb250cm9sbGVyJztcbmltcG9ydCB7IFNvcnRpbmdDb250cm9sbGVyIH0gZnJvbSAnLi9zb3J0aW5nLWNvbnRyb2xsZXInO1xuXG5pbXBvcnQgeyBGc0xpc3RTdGF0ZSB9IGZyb20gJy4uL2VudW1zL3N0YXRlLmVudW0nO1xuaW1wb3J0IHsgUGVyc2lzdGFuY2VDb250cm9sbGVyIH0gZnJvbSAnLi9wZXJzaXN0YW5jZS1jb250cm9sbGVyJztcbmltcG9ydCB7IEV4dGVybmFsUGFyYW1zQ29udHJvbGxlciB9IGZyb20gJy4vZXh0ZXJuYWwtcGFyYW1zLWNvbnRyb2xsZXInO1xuXG5jb25zdCBTSE9XX0RFTEVURURfRklMVEVSU19LRVkgPSAnJCRfc2hvd19kZWxldGVkXyQkJztcblxuXG5leHBvcnQgY2xhc3MgTGlzdCBleHRlbmRzIE1vZGVsIHtcbiAgQEFsaWFzKCkgcHVibGljIGhlYWRpbmc6IHN0cmluZztcbiAgQEFsaWFzKCkgcHVibGljIHRyYWNrQnk6IHN0cmluZztcbiAgQEFsaWFzKCkgcHVibGljIHN1YmhlYWRpbmc6IHN0cmluZztcbiAgQEFsaWFzKCkgcHVibGljIGlubGluZUZpbHRlcnM6IGFueTtcbiAgLy8gQEFsaWFzKCdhY3Rpb25zJywgQWN0aW9uKSBwdWJsaWMgYWN0aW9uczogQWN0aW9uW107XG4gIEBBbGlhcygncm93QWN0aW9ucycpIHB1YmxpYyByb3dBY3Rpb25zUmF3OiBhbnlbXTtcbiAgcHVibGljIGdyb3VwQWN0aW9uc1JhdzogYW55W107XG4gIEBBbGlhcygncm93Q2xhc3MnKSBwdWJsaWMgcm93Q2xhc3M7XG4gIEBBbGlhcygpIHB1YmxpYyByb3dFdmVudHM6IGFueTtcbiAgQEFsaWFzKCkgcHVibGljIHJlc3RvcmU6IEZzTGlzdFJlc3RvcmVDb25maWc7XG4gIEBBbGlhcygpIHB1YmxpYyBjb2x1bW5UZW1wbGF0ZXM6IGFueTtcbiAgQEFsaWFzKCkgcHVibGljIHBlcnNpc3Q6IGJvb2xlYW47XG4gIEBBbGlhcygpIHB1YmxpYyBmaWx0ZXJzID0gW107XG4gIEBBbGlhcygnZmlsdGVySW5pdCcpIHB1YmxpYyBmaWx0ZXJJbml0Q2I6IENoYW5nZUZuO1xuICBAQWxpYXMoJ2ZpbHRlckNoYW5nZScpIHB1YmxpYyBmaWx0ZXJDaGFuZ2VDYjogQ2hhbmdlRm47XG4gIEBBbGlhcygpIHB1YmxpYyBzYXZlZEZpbHRlcnM6IElGaWx0ZXJTYXZlZEZpbHRlcnNDb25maWc7XG4gIEBBbGlhcygpIHB1YmxpYyBzY3JvbGxhYmxlOiBGc0xpc3RTY3JvbGxhYmxlQ29uZmlnIHwgZmFsc2UgPSBmYWxzZTtcbiAgQEFsaWFzKCkgcHVibGljIG5vUmVzdWx0czogRnNMaXN0Tm9SZXN1bHRzQ29uZmlnO1xuICBAQWxpYXMoKSBwdWJsaWMgZW1wdHlTdGF0ZTogRnNMaXN0RW1wdHlTdGF0ZUNvbmZpZztcbiAgLy8gQEFsaWFzKCkgcHVibGljIGluaXRpYWxGZXRjaCA9IHRydWU7IC8vVE9ETyBmaXhtZVxuICBAQWxpYXMoJ2ZldGNoJykgcHVibGljIGZldGNoRm46IEZzTGlzdEZldGNoRm47XG4gIEBBbGlhcygnYWZ0ZXJGZXRjaCcpIHB1YmxpYyBhZnRlckZldGNoRm46IEZzTGlzdEFmdGVyRmV0Y2hGbjtcbiAgLy8gQEFsaWFzKCdyb3dzJykgcHJpdmF0ZSBfcm93czogYW55O1xuXG4gIHB1YmxpYyBpbml0aWFsaXplZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgLy8gcHVibGljIG9wZXJhdGlvbjogT3BlcmF0aW9uO1xuICBwdWJsaWMgZmlsdGVyc1F1ZXJ5OiBhbnk7XG5cbiAgcHVibGljIGhhc1Jvd0FjdGlvbnM7XG4gIHB1YmxpYyBwYWdpbmcgPSBuZXcgUGFnaW5hdGlvbkNvbnRyb2xsZXIoKTtcblxuICBwdWJsaWMgY29sdW1ucyA9IG5ldyBDb2x1bW5zQ29udHJvbGxlcigpO1xuICBwdWJsaWMgYWN0aW9ucyA9IG5ldyBBY3Rpb25zQ29udHJvbGxlcigpO1xuICBwdWJsaWMgZGF0YUNvbnRyb2xsZXIgPSBuZXcgRGF0YUNvbnRyb2xsZXIoKTtcbiAgcHVibGljIHNvcnRpbmcgPSBuZXcgU29ydGluZ0NvbnRyb2xsZXIoKTtcbiAgcHVibGljIGV4dGVybmFsUGFyYW1zOiBFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXI7XG4gIHB1YmxpYyBzZWxlY3Rpb246IFNlbGVjdGlvbkNvbnRyb2xsZXI7XG5cbiAgcHVibGljIGZpbHRlckNvbmZpZzogRmlsdGVyQ29uZmlnID0gbnVsbDtcblxuICBwdWJsaWMgZmV0Y2gkID0gbmV3IFN1YmplY3Q8RnNMaXN0RmV0Y2hTdWJzY3JpcHRpb24gfCB2b2lkPigpO1xuICBwdWJsaWMgZmV0Y2hDb21wbGV0ZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgZmlsdGVyc1JlYWR5JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIHN0YXR1cyA9IHRydWU7XG4gIHB1YmxpYyBjaGlwcyA9IGZhbHNlO1xuICBwdWJsaWMgZmlsdGVySW5wdXQgPSB0cnVlO1xuICBwdWJsaWMgcXVlcnlQYXJhbSA9IGZhbHNlO1xuICBwdWJsaWMgcmVzdG9yZU1vZGUgPSBmYWxzZTtcblxuICBwdWJsaWMgaW5pdGlhbEZldGNoID0gdHJ1ZTtcblxuICAvLyBFbXB0eSBzdGF0ZVxuICBwdWJsaWMgZW1wdHlTdGF0ZUVuYWJsZWQgPSBmYWxzZTtcbiAgcHVibGljIGVtcHR5U3RhdGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgZnNTY3JvbGxJbnN0YW5jZTogRnNTY3JvbGxJbnN0YW5jZTtcblxuICBwdWJsaWMgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaGVhZGVyQ29uZmlnOiBTdHlsZUNvbmZpZztcbiAgcHJpdmF0ZSByZWFkb25seSBfZ3JvdXBDZWxsQ29uZmlnOiBTdHlsZUNvbmZpZztcbiAgcHJpdmF0ZSByZWFkb25seSBfY2VsbENvbmZpZzogU3R5bGVDb25maWc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zvb3RlckNvbmZpZzogU3R5bGVDb25maWc7XG5cbiAgcHJpdmF0ZSBfZnNTY3JvbGxTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY29uZmlnOiBGc0xpc3RDb25maWcgPSB7fSxcbiAgICBwcml2YXRlIGZzU2Nyb2xsOiBGc1Njcm9sbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWxlY3Rpb25EaWFsb2c6IFNlbGVjdGlvbkRpYWxvZyxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcGVyc2lzdGFuY2U6IFBlcnNpc3RhbmNlQ29udHJvbGxlcixcbiAgICBwcml2YXRlIGluRGlhbG9nOiBib29sZWFuLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2Zyb21KU09OKGNvbmZpZyk7XG5cbiAgICB0aGlzLmluaXRpYWxpemUoY29uZmlnKTtcblxuICAgIHRoaXMuX2hlYWRlckNvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZyhjb25maWcuaGVhZGVyKTtcbiAgICB0aGlzLl9ncm91cENlbGxDb25maWcgPSBuZXcgU3R5bGVDb25maWcoY29uZmlnLmNlbGwpO1xuICAgIHRoaXMuX2NlbGxDb25maWcgPSBuZXcgU3R5bGVDb25maWcoY29uZmlnLmNlbGwpO1xuICAgIHRoaXMuX2Zvb3RlckNvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZyhjb25maWcuZm9vdGVyKTtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZWQkLm5leHQodHJ1ZSk7XG5cbiAgICB0aGlzLnN1YnNjcmliZSgpO1xuXG4gICAgaWYgKHRoaXMuaW5pdGlhbEZldGNoKSB7XG4gICAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldE9wZXJhdGlvbihGc0xpc3RTdGF0ZS5Mb2FkKTtcbiAgICAgIHRoaXMuZmV0Y2gkLm5leHQoKTtcbiAgICB9XG5cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzU2F2ZWRGaWx0ZXJzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZmlsdGVyQ29uZmlnLnNhdmVkRmlsdGVycztcbiAgfVxuXG4gIHB1YmxpYyBmZXRjaFJlbW90ZShxdWVyeSkge1xuICAgIGNvbnN0IG9wdGlvbnM6IEZzTGlzdEZldGNoT3B0aW9ucyA9IHtcbiAgICAgIHN0YXRlOiB0aGlzLmRhdGFDb250cm9sbGVyLm9wZXJhdGlvbixcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB0aGlzLmZldGNoRm4ocXVlcnksIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UgPyBmcm9tKHJlc3VsdCkgOiByZXN1bHQ7XG4gIH1cblxuICAvLyBwdWJsaWMgbG9hZExvY2FsKCkge1xuICAvLyAgIHRoaXMucGFnaW5nLnVwZGF0ZVBhZ2luZ01hbnVhbCh0aGlzLl9yb3dzKTtcbiAgLy8gICBjb25zdCBmcm9tID0gKHRoaXMucGFnaW5nLnBhZ2UgLSAxKSAqIHRoaXMucGFnaW5nLmxpbWl0O1xuICAvLyAgIGNvbnN0IHRvID0gKHRoaXMucGFnaW5nLnBhZ2UgPT09IDEpID8gdGhpcy5wYWdpbmcubGltaXQgOiB0aGlzLnBhZ2luZy5saW1pdCAqIHRoaXMucGFnaW5nLnBhZ2U7XG4gIC8vICAgY29uc3Qgc2xpY2VPZlJvd3MgPSB0aGlzLl9yb3dzLnNsaWNlKGZyb20sIHRvKTtcbiAgLy8gICB0aGlzLmRhdGEkLm5leHQoc2xpY2VPZlJvd3MpO1xuICAvLyB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB0ZW1wbGF0ZXMgZm9yIHVzaW5nXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZXNcbiAgICovXG4gIHB1YmxpYyB0cmFuZm9ybVRlbXBsYXRlc1RvQ29sdW1ucyh0ZW1wbGF0ZXMpIHtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlncyA9IHtcbiAgICAgIGhlYWRlcjogdGhpcy5faGVhZGVyQ29uZmlnLFxuICAgICAgZ3JvdXBDZWxsOiB0aGlzLl9ncm91cENlbGxDb25maWcsXG4gICAgICBjZWxsOiB0aGlzLl9jZWxsQ29uZmlnLFxuICAgICAgZm9vdGVyOiB0aGlzLl9mb290ZXJDb25maWcsXG4gICAgfTtcblxuICAgIHRoaXMuY29sdW1ucy5zZXREZWZhdWx0cyhkZWZhdWx0Q29uZmlncyk7XG4gICAgdGhpcy5jb2x1bW5zLmluaXRpYWxpemVDb2x1bW5zKHRlbXBsYXRlcyk7XG5cbiAgICAvLyBTZXQgc29ydEJ5IGRlZmF1bHQgY29sdW1uXG4gICAgdGhpcy5zb3J0aW5nLmNsZWFyU29ydGFibGVDb2x1bW5zKCk7XG4gICAgdGhpcy5jb2x1bW5zLmNvbHVtbnNcbiAgICAgIC5maWx0ZXIoKGNvbHVtbikgPT4gY29sdW1uLnNvcnRhYmxlICYmIGNvbHVtbi5zaG93KVxuICAgICAgLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICB0aGlzLnNvcnRpbmcuYWRkU29ydGFibGVDb2x1bW4oY29sdW1uKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gRGVmYXVsdCBzb3J0IGJ5XG4gICAgY29uc3QgZXh0ZXJuYWxTb3J0aW5nID0gdGhpcy5leHRlcm5hbFBhcmFtcy5leHRlcm5hbFNvcnRpbmc7XG4gICAgY29uc3QgaW5pdGlhbFNvcnRDb25maWcgPSBleHRlcm5hbFNvcnRpbmcgfHwgdGhpcy5jb25maWcuc29ydDtcbiAgICB0aGlzLnNvcnRpbmcuaW5pdGlhbFNvcnRCeShpbml0aWFsU29ydENvbmZpZyk7XG5cbiAgICBpZiAoZXh0ZXJuYWxTb3J0aW5nICYmICF0aGlzLnNvcnRpbmcuaXNEZWZpbmVkKSB7XG4gICAgICB0aGlzLmV4dGVybmFsUGFyYW1zLmNsZWFyU29ydGluZ1BhcmFtcygpO1xuXG4gICAgICBjb25zb2xlLndhcm4oJ05vdCBhYmxlIHRvIHJlc3RvcmUgcGVyc2lzdGVkIHNvcnRpbmcgcGFyYW1zLicsIGV4dGVybmFsU29ydGluZyk7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0RmlsdGVycygpO1xuICAgIHRoaXMuaW5pdEluZmluaXR5U2Nyb2xsKCk7XG4gIH1cblxuICBwdWJsaWMgcmVsb2FkKCkge1xuICAgIHRoaXMubG9hZGluZyQubmV4dCh0cnVlKTtcblxuICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLlJlbG9hZCk7XG5cbiAgICBpZiAodGhpcy5mc1Njcm9sbEluc3RhbmNlKSB7XG4gICAgICB0aGlzLnBhZ2luZy5yZXNldFBhZ2luZygpO1xuICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5jbGVhclJvd3MoKTtcbiAgICAgIHRoaXMuZnNTY3JvbGxJbnN0YW5jZS5yZWxvYWQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mZXRjaCQubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXYXRjaCBwYWdlIGNoYW5nZXNcbiAgICovXG4gIHB1YmxpYyBzdWJzY3JpYmUoKSB7XG4gICAgdGhpcy5wYWdpbmcucGFnZUNoYW5nZWQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogUGFnZUNoYW5nZSkgPT4ge1xuICAgICAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldE9wZXJhdGlvbihGc0xpc3RTdGF0ZS5QYWdlQ2hhbmdlKTtcblxuICAgICAgICAvLyBSZW1vdmUgYWxsIHJvd3MgaWYgbGltaXRzIHdhcyBjaGFuZ2VkXG4gICAgICAgIGlmIChldmVudC50eXBlID09PSBQYWdlQ2hhbmdlVHlwZS5MaW1pdENoYW5nZWQgJiYgdGhpcy5wYWdpbmcuaGFzUGFnZVN0cmF0ZWd5KSB7XG4gICAgICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5jbGVhclJvd3MoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBhZ2luZy5oYXNPZmZzZXRTdHJhdGVneSkge1xuICAgICAgICAgIHRoaXMucGFnaW5nLnVwZGF0ZVBhZ2luYXRpb24oKTtcblxuICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24udXBkYXRlVmlzaWJsZVJlY29yZHNDb3VudCh0aGlzLnBhZ2luZy5nZXRWaXNpYmxlUmVjb3JkcygpKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnVwZGF0ZVRvdGFsUmVjb3Jkc0NvdW50KHRoaXMucGFnaW5nLnJlY29yZHMpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24ucGFnZUNoYW5nZWQodGhpcy5zY3JvbGxhYmxlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuc2Nyb2xsYWJsZSAmJiAhdGhpcy5wYWdpbmcubG9hZE1vcmVFbmFibGVkKSB7XG5cbiAgICAgICAgICBjb25zdCBjb250YWlucyA9IFtdLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmNkay1vdmVybGF5LWNvbnRhaW5lcicpKS5zb21lKG92ZXJsYXkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jb250YWlucyhvdmVybGF5KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGxldCBlbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcblxuICAgICAgICAgIGlmICghY29udGFpbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBpZiAoKHJlY3QudG9wICsgd2luZG93LnBhZ2VZT2Zmc2V0KSA8IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgICAgICAgICAgICBlbCA9IGRvY3VtZW50LmJvZHk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5mZXRjaENvbXBsZXRlJC5hc09ic2VydmFibGUoKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgZWwuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZldGNoJC5uZXh0KCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuc29ydGluZy5zb3J0aW5nQ2hhbmdlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldE9wZXJhdGlvbihGc0xpc3RTdGF0ZS5Tb3J0KTtcbiAgICAgICAgdGhpcy5wYWdpbmcucGFnZSA9IDE7XG5cbiAgICAgICAgaWYgKHRoaXMuZnNTY3JvbGxJbnN0YW5jZSkge1xuICAgICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuY2xlYXJSb3dzKCk7XG4gICAgICAgICAgdGhpcy5mc1Njcm9sbEluc3RhbmNlLnJlbG9hZCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZmV0Y2gkLm5leHQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLmxpc3RlblJvd3NSZW1vdmUoKTtcbiAgICB0aGlzLmxpc3RlbkZldGNoKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGF0YSh0cmFja0J5PzogRnNMaXN0VHJhY2tCeUZuKSB7XG4gICAgbGV0IHJvd3NEYXRhID0gdGhpcy5kYXRhQ29udHJvbGxlclxuICAgICAgLnZpc2libGVSb3dzRGF0YTtcblxuICAgIGlmICh0cmFja0J5KSB7XG4gICAgICByb3dzRGF0YSA9IHJvd3NEYXRhXG4gICAgICAgIC5maWx0ZXIodHJhY2tCeSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJvd3NEYXRhXG4gICAgICAubWFwKChkYXRhKSA9PiB7XG4gICAgICAgIHJldHVybiBjbG9uZURlZXAoZGF0YSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNEYXRhKHRyYWNrQnk6IEZzTGlzdFRyYWNrQnlGbikge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb250cm9sbGVyLnZpc2libGVSb3dzRGF0YS5zb21lKHRyYWNrQnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSBncm91cCBtb2RlIHN0YXR1c1xuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIHB1YmxpYyBncm91cEVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5kYXRhQ29udHJvbGxlci5ncm91cEVuYWJsZWQgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLmRhdGFDb250cm9sbGVyLmdyb3VwRW5hYmxlZCA9IHZhbHVlO1xuXG4gICAgICAvLyBDb21tZW50ZWQgb3V0IGJlY2F1c2UgUmF5IHdhbnRzIHRvIGNoYW5nZSBncm91cCBzdGF0dXMgaW4gZmV0Y2ggbWFwIHBpcGVcbiAgICAgIC8vIGFuZCBpdCB0cmlnZ2VycyBleHRyYSByZXF1ZXN0c1xuICAgICAgLy8gdGhpcy5yZWxvYWQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5fZnNTY3JvbGxTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuX2ZzU2Nyb2xsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGFnaW5nKSB7XG4gICAgICB0aGlzLnBhZ2luZy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc29ydGluZykge1xuICAgICAgdGhpcy5zb3J0aW5nLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWx0ZXJDb25maWcpIHtcbiAgICAgIHRoaXMuZmlsdGVyQ29uZmlnID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5leHRlcm5hbFBhcmFtcykge1xuICAgICAgdGhpcy5leHRlcm5hbFBhcmFtcy5kZXN0cm95KClcbiAgICB9XG5cbiAgICB0aGlzLmNvbHVtbnMuZGVzdHJveSgpO1xuXG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcblxuICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuZGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERvIGluaXRpYWxpemF0aW9uIG9mIHRhYmxlXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHByaXZhdGUgaW5pdGlhbGl6ZShjb25maWc6IEZzTGlzdENvbmZpZykge1xuICAgIHRoaXMuY29sdW1ucy5pbml0Q29uZmlnKGNvbmZpZy5jb2x1bW4pO1xuICAgIHRoaXMuaW5pdERlZmF1bHRPcHRpb25zKGNvbmZpZyk7XG4gICAgdGhpcy5pbml0UmVzdG9yZSgpO1xuICAgIHRoaXMuaW5pdEFjdGlvbnMoY29uZmlnLmFjdGlvbnMpO1xuICAgIHRoaXMuaW5pdFBhZ2luZyhjb25maWcucGFnaW5nLCBjb25maWcubG9hZE1vcmUpO1xuICAgIHRoaXMuaW5pdFNlbGVjdGlvbihjb25maWcuc2VsZWN0aW9uLCB0aGlzLnNlbGVjdGlvbkRpYWxvZyk7XG4gICAgdGhpcy5pbml0R3JvdXBzKGNvbmZpZy5ncm91cCk7XG4gICAgdGhpcy5pbml0RXh0ZXJuYWxQYXJhbXNDb250cm9sbGVyKCk7XG5cbiAgICB0aGlzLmluaXRpYWxpemVEYXRhKCk7XG4gIH1cblxuICAvKipcbiAgICogSnVzdCBpbml0IG9wdGlvbnMgYnkgZGVmYXVsdCBpdCBpdCB3YXNuJ3Qgc3BlY2lmaWVkXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHByaXZhdGUgaW5pdERlZmF1bHRPcHRpb25zKGNvbmZpZykge1xuICAgIC8vIFdlIHNob3VsZCBwcmV2ZW50IGluaXRpYWwgZmV0Y2ggaW4gY2FzZXMgd2hlbiBpdCB3aWxsIGJlIGZldGNoZWQgaW4gYW55IGNhc2VcbiAgICAvLyBBcyBleC4gc2Nyb2xsYWJsZSBvciBmaWx0ZXIgd2lsbCBkbyBmZXRjaCBpbiBhbnkgY2FzZXNcbiAgICBpZiAoY29uZmlnLmluaXRpYWxGZXRjaCA9PT0gZmFsc2UgfHwgY29uZmlnLnNjcm9sbGFibGUpIHsgLy8gVE9ETyBmaXhtZSBhZnRlciB0c21vZGVsIHZlcnNpb24gdXBkYXRlXG4gICAgICB0aGlzLmluaXRpYWxGZXRjaCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnN0YXR1cyA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuc3RhdHVzID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChjb25maWcuY2hpcHMpIHtcbiAgICAgIHRoaXMuY2hpcHMgPSBjb25maWcuY2hpcHM7XG4gICAgfVxuICAgIGlmIChjb25maWcuZmlsdGVySW5wdXQgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmZpbHRlcklucHV0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5EaWFsb2cpIHtcbiAgICAgIHRoaXMucXVlcnlQYXJhbSA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1ZXJ5UGFyYW0gPSAoY29uZmlnLnF1ZXJ5UGFyYW0gPT09IHZvaWQgMClcbiAgICAgICAgPyB0cnVlXG4gICAgICAgIDogY29uZmlnLnF1ZXJ5UGFyYW07XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5zb3J0cykge1xuICAgICAgdGhpcy5zb3J0aW5nLmluaXRGYWtlQ29sdW1ucyhjb25maWcuc29ydHMpO1xuICAgIH1cbiAgICBpZiAoIWNvbmZpZy50cmFja0J5KSB7XG4gICAgICB0aGlzLnRyYWNrQnkgPSAnaWQnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0IHJlc3RvcmUgcm93IGFjdGlvbiBhbmQgYXBwZW5kIFNob3cgRGVsZXRlZCBvcHRpb24gaW50byBmaWx0ZXJzXG4gICAqL1xuICBwcml2YXRlIGluaXRSZXN0b3JlKCkge1xuICAgIGlmICh0aGlzLnJlc3RvcmUpIHtcbiAgICAgIGNvbnN0IHJlc3RvcmVBY3Rpb24gPSBuZXcgUm93QWN0aW9uKHtcbiAgICAgICAgbGFiZWw6IHRoaXMucmVzdG9yZS5tZW51TGFiZWwgfHwgJ1Jlc3RvcmUnLFxuICAgICAgICBtZW51OiB0cnVlLFxuICAgICAgICBjbGljazogKHJvdykgPT4geyB0aGlzLnJlc3RvcmVDbGljayh0aGlzLnJlc3RvcmUuY2xpY2ssIHJvdykgfSwgLy8gVE9ETyBmaXggbWUsIG1vdmUgdG8gc3BlY2lhbCBmaWxlXG4gICAgICAgIHJlc3RvcmU6IHRydWVcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIXRoaXMucm93QWN0aW9uc1Jhdykge1xuICAgICAgICB0aGlzLnJvd0FjdGlvbnNSYXcgPSBbXTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5yb3dBY3Rpb25zUmF3LnB1c2gocmVzdG9yZUFjdGlvbik7XG5cbiAgICAgIGlmICghdGhpcy5maWx0ZXJzKSB7XG4gICAgICAgIHRoaXMuZmlsdGVycyA9IFtdO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5yZXN0b3JlLmZpbHRlciAhPT0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJzLnB1c2goe1xuICAgICAgICAgIG5hbWU6IFNIT1dfREVMRVRFRF9GSUxURVJTX0tFWSxcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5DaGVja2JveCxcbiAgICAgICAgICBsYWJlbDogdGhpcy5yZXN0b3JlLmZpbHRlckxhYmVsIHx8ICdTaG93IERlbGV0ZWQnXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgLyoqXG4gICAqIEluaXQgcGFnaW5nXG4gICAqIEBwYXJhbSBwYWdpbmdDb25maWdcbiAgICogQHBhcmFtIGxvYWRNb3JlXG4gICAqL1xuICBwcml2YXRlIGluaXRQYWdpbmcocGFnaW5nQ29uZmlnOiBGc1BhZ2luZyB8IGZhbHNlLCBsb2FkTW9yZTogRnNMaXN0TG9hZE1vcmVDb25maWcgfCBib29sZWFuKSB7XG4gICAgdGhpcy5wYWdpbmcuaW5pdFdpdGhDb25maWcocGFnaW5nQ29uZmlnLCBsb2FkTW9yZSwgISF0aGlzLnNjcm9sbGFibGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0IGFjdGlvbnMgYnkgY2F0ZWdvcmllc1xuICAgKi9cbiAgcHJpdmF0ZSBpbml0QWN0aW9ucyhhY3Rpb25zKSB7XG4gICAgaWYgKGFjdGlvbnMpIHtcbiAgICAgIHRoaXMuYWN0aW9ucy5zZXRBY3Rpb25zKGFjdGlvbnMpO1xuICAgIH1cblxuICAgIHRoaXMuaGFzUm93QWN0aW9ucyA9XG4gICAgICAodGhpcy5yb3dBY3Rpb25zUmF3ICYmIHRoaXMucm93QWN0aW9uc1Jhdy5sZW5ndGggPiAwKVxuICAgICAgfHwgKHRoaXMuZ3JvdXBBY3Rpb25zUmF3ICYmIHRoaXMuZ3JvdXBBY3Rpb25zUmF3Lmxlbmd0aCA+IDApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U2VsZWN0aW9uKFxuICAgIHNlbGVjdGlvbkNvbmZpZzogRnNMaXN0U2VsZWN0aW9uQ29uZmlnLFxuICAgIHNlbGVjdGlvbkRpYWxvZzogU2VsZWN0aW9uRGlhbG9nLFxuICApIHtcbiAgICBpZiAoc2VsZWN0aW9uQ29uZmlnKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Db250cm9sbGVyKHNlbGVjdGlvbkNvbmZpZywgdGhpcy50cmFja0J5LCBzZWxlY3Rpb25EaWFsb2cpO1xuICAgICAgdGhpcy5zZWxlY3Rpb24uc2V0Um93c0NhbGxiYWNrKCgpID0+IHRoaXMuZGF0YUNvbnRyb2xsZXIudmlzaWJsZVJvd3MpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURhdGEoKSB7XG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRBZGRpdGlvbmFsQ29uZmlncyh7XG4gICAgICBzY3JvbGxhYmxlOiAhIXRoaXMuc2Nyb2xsYWJsZSxcbiAgICAgIGxvYWRNb3JlRW5hYmxlZDogdGhpcy5wYWdpbmcubG9hZE1vcmVFbmFibGVkXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRHcm91cHMoZ3JvdXBDb25maWc6IEZzTGlzdEdyb3VwQ29uZmlnKSB7XG4gICAgaWYgKGdyb3VwQ29uZmlnKSB7XG4gICAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldEdyb3VwQ29uZmlnKGdyb3VwQ29uZmlnKTtcbiAgICAgIHRoaXMuZ3JvdXBBY3Rpb25zUmF3ID0gZ3JvdXBDb25maWcuYWN0aW9ucztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXIoKSB7XG4gICAgdGhpcy5leHRlcm5hbFBhcmFtcyA9IG5ldyBFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXIoXG4gICAgICB0aGlzLnJvdXRlcixcbiAgICAgIHRoaXMucm91dGUsXG4gICAgICB0aGlzLnBlcnNpc3RhbmNlLFxuICAgICAgdGhpcy5wYWdpbmcsXG4gICAgICB0aGlzLnNvcnRpbmcsXG4gICAgICB0aGlzLnF1ZXJ5UGFyYW1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBmZXRjaCQgZXZlbnQgd2l0aCBkZWJvdW5jZVxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5GZXRjaCgpIHtcbiAgICBsZXQgZmV0Y2gkID0gdGhpcy5mZXRjaCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICAvLyBTaG91bGQgd2FpdCB1bnRpbCBzYXZlZCBmaWx0ZXJzIG5vdCBsb2FkZWRcbiAgICBpZiAoISF0aGlzLmZpbHRlcnMgJiYgISF0aGlzLnNhdmVkRmlsdGVycykge1xuICAgICAgZmV0Y2gkID0gY29tYmluZUxhdGVzdChbZmV0Y2gkLCB0aGlzLmZpbHRlcnNSZWFkeSRdKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKFtwYXJhbXNdKSA9PiBwYXJhbXMpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZldGNoJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KHRydWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbj8uY2xvc2VTZWxlY3Rpb25EaWFsb2coKTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgocGFyYW1zOiBGc0xpc3RGZXRjaFN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5wYWdpbmcuaGFzT2Zmc2V0U3RyYXRlZ3kgJiYgcGFyYW1zICYmIHBhcmFtcy5sb2FkT2Zmc2V0XG4gICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZmlsdGVyc1F1ZXJ5LCB0aGlzLnBhZ2luZy5sb2FkRGVsZXRlZE9mZnNldFF1ZXJ5KVxuICAgICAgICAgICAgOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmZpbHRlcnNRdWVyeSwgdGhpcy5wYWdpbmcucXVlcnkpO1xuXG4gICAgICAgICAgaWYgKHRoaXMuc29ydGluZy5zb3J0aW5nQ29sdW1uKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yZGVyOiBgJHt0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbi5uYW1lfSwke3RoaXMuc29ydGluZy5zb3J0aW5nQ29sdW1uLmRpcmVjdGlvbn1gXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcXVlcnk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKHF1ZXJ5KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuY29sdW1ucy5sb2FkRm5Db25maWd1cmVkICYmICF0aGlzLmNvbHVtbnMuY29sdW1uc0ZldGNoZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbHVtbnMubG9hZFJlbW90ZUNvbHVtbkNvbmZpZ3MoKVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXBUbyhxdWVyeSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHF1ZXJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKHF1ZXJ5KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuY29sdW1ucy5jb25maWd1cmVkKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucy52aXNpYmxlQ29sdW1uc05hbWVzLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW29mKHF1ZXJ5KSwgdGhpcy5mZXRjaFJlbW90ZShxdWVyeSldKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yLCBzb3VyY2UkKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG5cbiAgICAgICAgICByZXR1cm4gc291cmNlJDtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5jb21wbGV0ZUZldGNoKHJlc3BvbnNlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Sb3dzUmVtb3ZlKCkge1xuICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIucm93c1JlbW92ZWQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChyb3dzOiBhbnlbXSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5wYWdpbmcuZW5hYmxlZCkge1xuXG4gICAgICAgICAgY29uc3QgcmVtb3ZlZENvdW50ID0gcm93cy5sZW5ndGg7XG5cbiAgICAgICAgICBpZiAodGhpcy5wYWdpbmcuaGFzUGFnZVN0cmF0ZWd5KSB7XG4gICAgICAgICAgICB0aGlzLm5vRGF0YVBhZ2luYXRpb25VcGRhdGUocmVtb3ZlZENvdW50KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRmV0Y2ggbW9yZSBpZiBoYXMgc29tZXRoaW5nIGZvciBmZXRjaFxuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUNvbnRyb2xsZXIuaGFzRGF0YSB8fCB0aGlzLnBhZ2luZy5oYXNOZXh0UGFnZSkge1xuICAgICAgICAgICAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldE9wZXJhdGlvbihGc0xpc3RTdGF0ZS5Mb2FkTW9yZSk7XG5cbiAgICAgICAgICAgICAgdGhpcy5wYWdpbmcucmVtb3ZlUm93cyhyZW1vdmVkQ291bnQpO1xuICAgICAgICAgICAgICB0aGlzLmZldGNoJC5uZXh0KHsgbG9hZE9mZnNldDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMubm9EYXRhUGFnaW5hdGlvblVwZGF0ZShyZW1vdmVkQ291bnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlbW92ZSBmcm9tIHNlbGVjdGlvblxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgICAgICByb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24ucmVtb3ZlUm93KHJvdy5kYXRhKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRJbmZpbml0eVNjcm9sbCgpIHtcbiAgICBpZiAodGhpcy5mc1Njcm9sbEluc3RhbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2Nyb2xsYWJsZSkge1xuICAgICAgLy8gU2Nyb2xsYWJsZSBzdGF0dXMgYnkgZGVmYXVsdFxuICAgICAgaWYgKHRoaXMuc2Nyb2xsYWJsZS5zdGF0dXMgPT09IHZvaWQgMCkge1xuICAgICAgICB0aGlzLnNjcm9sbGFibGUuc3RhdHVzID0gdHJ1ZTtcbiAgICAgIH1cblxuXG4gICAgICB0aGlzLmZzU2Nyb2xsXG4gICAgICAgIC5jb21wb25lbnQodGhpcy5zY3JvbGxhYmxlLm5hbWUpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZnNTY3JvbGxJbnN0YW5jZTogRnNTY3JvbGxJbnN0YW5jZSkgPT4ge1xuICAgICAgICAgIHRoaXMuZnNTY3JvbGxJbnN0YW5jZSA9IGZzU2Nyb2xsSW5zdGFuY2U7XG4gICAgICAgICAgdGhpcy5fZnNTY3JvbGxTdWJzY3JpcHRpb24gPSBmc1Njcm9sbEluc3RhbmNlXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgbGV0IHN0YXJ0TG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICBjb25zdCBvcGVyYXRpb24gPSB0aGlzLmRhdGFDb250cm9sbGVyLm9wZXJhdGlvbjtcblxuICAgICAgICAgICAgICAvLyBJbml0aWFsIGxvYWRpbmcgaWYgaW5pdGlhbEZldGNoIGVxdWFscyBmYWxzZVxuICAgICAgICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbEZldGNoXG4gICAgICAgICAgICAgICAgJiYgIXRoaXMucGFnaW5nLmluaXRpYWxpemVkXG4gICAgICAgICAgICAgICAgJiYgb3BlcmF0aW9uICE9PSBGc0xpc3RTdGF0ZS5SZWxvYWRcbiAgICAgICAgICAgICAgKSB7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldE9wZXJhdGlvbihGc0xpc3RTdGF0ZS5Mb2FkKTtcbiAgICAgICAgICAgICAgICBzdGFydExvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uID09PSBGc0xpc3RTdGF0ZS5SZWxvYWQgfHxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24gPT09IEZzTGlzdFN0YXRlLkZpbHRlciB8fFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9PT0gRnNMaXN0U3RhdGUuU29ydFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBzdGFydExvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucGFnaW5nLmluaXRpYWxpemVkICYmIHRoaXMucGFnaW5nLmhhc05leHRQYWdlKSB7XG4gICAgICAgICAgICAgICAgLy8gTG9hZGluZyBpZiBjb250ZW50IGhhcyBiZWVuIHNjcm9sbGVkXG4gICAgICAgICAgICAgICAgc3RhcnRMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldE9wZXJhdGlvbihGc0xpc3RTdGF0ZS5Mb2FkKTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2luZy5nb05leHQoKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChzdGFydExvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZldGNoJC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgZnNTY3JvbGxJbnN0YW5jZS5sb2FkaW5nKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIucmVtb3RlUm93c0NoYW5nZSRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICBmc1Njcm9sbEluc3RhbmNlLmxvYWRlZCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGFuZCB3YXRjaCBmaWx0ZXIgY2hhbmdlc1xuICAgKi9cbiAgcHJpdmF0ZSBpbml0RmlsdGVycygpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJDb25maWcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBNZXJnZSBzb3J0aW5nIGFuZCBmYWtlIHNvcnRpbmcgY29sc1xuICAgIC8vIEZha2Ugc29ydGluZyBjb2xzIGl0J3MgY29scyB3aGljaCBkb24ndCByZXByZXNlbnRlZCBpbiB0YWJsZSBjb2xzLCBsaWtlIGFic3RyYWN0IGNvbHNcbiAgICBjb25zdCBzb3J0VmFsdWVzID1cbiAgICAgIFtcbiAgICAgICAgLi4udGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW5zLFxuICAgICAgICAuLi50aGlzLnNvcnRpbmcuZmFrZVNvcnRpbmdDb2x1bW5zXG4gICAgICBdLnJlZHVjZSgoYWNjLCBjb2x1bW4pID0+IHtcblxuICAgICAgICBjb25zdCBzb3J0aW5nSXRlbSA9IHtcbiAgICAgICAgICBuYW1lOiBjb2x1bW4udGl0bGUsXG4gICAgICAgICAgdmFsdWU6IGNvbHVtbi5uYW1lLFxuICAgICAgICAgIGRlZmF1bHQ6IHRoaXMuc29ydGluZy5zb3J0aW5nQ29sdW1uICYmIHRoaXMuc29ydGluZy5zb3J0aW5nQ29sdW1uLm5hbWUgPT09IGNvbHVtbi5uYW1lXG4gICAgICAgIH07XG5cbiAgICAgICAgYWNjLnB1c2goc29ydGluZ0l0ZW0pO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10pO1xuXG4gICAgY29uc3Qgc29ydENvbmZpZyA9IHRoaXMuc29ydGluZy5zb3J0aW5nQ29sdW1uXG4gICAgICA/IHsgdmFsdWU6IHRoaXMuc29ydGluZy5zb3J0aW5nQ29sdW1uLm5hbWUsIGRpcmVjdGlvbjogdGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4uZGlyZWN0aW9ufVxuICAgICAgOiBudWxsO1xuXG4gICAgLy8gQ29uZmlnXG4gICAgdGhpcy5maWx0ZXJDb25maWcgPSB7XG4gICAgICBwZXJzaXN0OiB0aGlzLnBlcnNpc3QsXG4gICAgICBpdGVtczogdGhpcy5maWx0ZXJzIHx8IFtdLFxuICAgICAgc2F2ZWRGaWx0ZXJzOiB0aGlzLnNhdmVkRmlsdGVycyxcbiAgICAgIGlubGluZTogdGhpcy5pbmxpbmVGaWx0ZXJzLFxuICAgICAgYWN0aW9uczogdGhpcy5hY3Rpb25zLmFjdGlvbnMsXG4gICAgICBxdWVyeVBhcmFtOiB0aGlzLnF1ZXJ5UGFyYW0sXG4gICAgICBzb3J0czogc29ydFZhbHVlcyxcbiAgICAgIHNvcnQ6IHNvcnRDb25maWcsXG4gICAgICBjaGlwczogdGhpcy5jaGlwcyxcbiAgICAgIGluaXQ6IHRoaXMuZmlsdGVySW5pdC5iaW5kKHRoaXMpLFxuICAgICAgY2hhbmdlOiB0aGlzLmZpbHRlckNoYW5nZS5iaW5kKHRoaXMpLFxuICAgICAgcmVsb2FkOiB0aGlzLnJlbG9hZC5iaW5kKHRoaXMpLFxuICAgICAgc29ydENoYW5nZTogdGhpcy5maWx0ZXJTb3J0LmJpbmQodGhpcyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIEZpbHRlciBoYXMgYmVlbiBpbml0aWFsaXplZFxuICAgKiBAcGFyYW0gZmlsdGVyc1xuICAgKi9cbiAgcHJpdmF0ZSBmaWx0ZXJJbml0KGZpbHRlcnMpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJJbml0Q2IpIHtcbiAgICAgIHRoaXMuZmlsdGVySW5pdENiKGZpbHRlcnMpO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyc1F1ZXJ5ID0gZmlsdGVycztcblxuICAgIHRoaXMuY2hlY2tSZXN0b3JlRmlsdGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGJhY2sgd2hlbiBGaWx0ZXIgaGFzIGJlZW4gY2hhbmdlZFxuICAgKiBAcGFyYW0gZmlsdGVyUXVlcnlcbiAgICogQHBhcmFtIGZpbHRlclNvcnRcbiAgICovXG4gIHByaXZhdGUgZmlsdGVyQ2hhbmdlKGZpbHRlclF1ZXJ5LCBmaWx0ZXJTb3J0KSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyQ2hhbmdlQ2IpIHtcbiAgICAgIHRoaXMuZmlsdGVyQ2hhbmdlQ2IoZmlsdGVyUXVlcnksIGZpbHRlclNvcnQpO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyc1F1ZXJ5ID0gZmlsdGVyUXVlcnk7XG5cbiAgICB0aGlzLnJlc3RvcmVNb2RlID0gZmFsc2U7XG5cbiAgICAvLyBSZXN0b3JlIG9wdGlvblxuICAgIHRoaXMuY2hlY2tSZXN0b3JlRmlsdGVyKCk7XG5cbiAgICBpZiAodGhpcy5yZXN0b3JlICYmIHRoaXMucmVzdG9yZS5yZWxvYWQpIHtcbiAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgfVxuXG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuRmlsdGVyKTtcblxuICAgIC8vIFJlc2V0IHBhZ2luZyBmb3IgcmVxdWVzdCB3aXRoIGNvcnJlY3Qgb2Zmc2V0XG4gICAgdGhpcy5wYWdpbmcucmVzZXRQYWdpbmcoKTtcblxuICAgIGlmICh0aGlzLmZzU2Nyb2xsSW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuY2xlYXJSb3dzKCk7XG4gICAgICB0aGlzLmZzU2Nyb2xsSW5zdGFuY2UucmVsb2FkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmV0Y2gkLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrUmVzdG9yZUZpbHRlcigpIHtcbiAgICAvLyBSZXN0b3JlIG9wdGlvblxuICAgIGlmICh0aGlzLnJlc3RvcmUgJiYgdGhpcy5maWx0ZXJzUXVlcnlbU0hPV19ERUxFVEVEX0ZJTFRFUlNfS0VZXSkge1xuICAgICAgZGVsZXRlIHRoaXMuZmlsdGVyc1F1ZXJ5W1NIT1dfREVMRVRFRF9GSUxURVJTX0tFWV07XG5cbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5maWx0ZXJzUXVlcnksIHRoaXMucmVzdG9yZS5xdWVyeSk7XG5cbiAgICAgIHRoaXMucmVzdG9yZU1vZGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHdoZW4gRmlsdGVyIHNvcnQgaGFzIGJlZW4gY2hhbmdlZFxuICBwcml2YXRlIGZpbHRlclNvcnQoZmlsdGVyUXVlcnksIGZpbHRlclNvcnQpIHtcbiAgICBpZiAoZmlsdGVyU29ydCkge1xuICAgICAgdGhpcy5zb3J0aW5nLnNvcnRCeUNvbHVtbldpdGhOYW1lKGZpbHRlclNvcnQudmFsdWUpO1xuXG4gICAgICBjb25zdCBzb3J0RGlyZWN0aW9uID0gZmlsdGVyU29ydC5kaXJlY3Rpb24gPT09ICdhc2MnID8gU29ydGluZ0RpcmVjdGlvbi5hc2MgOiBTb3J0aW5nRGlyZWN0aW9uLmRlc2M7XG4gICAgICB0aGlzLnNvcnRpbmcuc29ydERpcmVjdGlvbihzb3J0RGlyZWN0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRklYTUUgbmVlZCB0byBiZSByZWZhY3RvcmVkLi4uXG4gICAgICB0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbiA9IHZvaWQgMDtcbiAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb21wbGV0ZUZldGNoKFtxdWVyeSwgcmVzcG9uc2VdKSB7XG5cbiAgICBpZiAoIXRoaXMucGFnaW5nLnBhZ2UpIHtcbiAgICAgIHRoaXMucGFnaW5nLnBhZ2UgPSAxO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5wYWdpbmcpIHtcbiAgICAgIGNvbnN0IGRpc3BsYXllZCA9IChBcnJheS5pc0FycmF5KHJlc3BvbnNlLmRhdGEpICYmIHJlc3BvbnNlLmRhdGEubGVuZ3RoKSB8fCAwO1xuICAgICAgdGhpcy5wYWdpbmcudXBkYXRlUGFnaW5nKFxuICAgICAgICByZXNwb25zZS5wYWdpbmcsXG4gICAgICAgIGRpc3BsYXllZCxcbiAgICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5vcGVyYXRpb24gPT09IEZzTGlzdFN0YXRlLkxvYWRNb3JlXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wYWdpbmcuZW5hYmxlZCkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICclYyBGc0xpc3QgV2FybmluZyAnLFxuICAgICAgICAnY29sb3I6IHdoaXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjYzBiJyxcbiAgICAgICAgJ1BhZ2luYXRpb24gZG9lcyBub3QgY29uZmlndXJlZCBwcm9wZXJseS4gJyArXG4gICAgICAgICdQYWdpbmF0aW9uIGlzIGVuYWJsZWQsIGJ1dCBodHRwIHJlc3BvbnNlIGRvZXMgbm90IGNvbnRhaW4gXCJwYWdpbmdcIiBmaWVsZC4gJyArXG4gICAgICAgICdZb3UgaGF2ZSB0byBzZXQgXCJwYWdpbmc6IGZhbHNlXCIgaW4gY29uZmlnIG9yIGFkZCBcInBhZ2luZ1wiIGZpZWxkIHRvIHJlc3BvbnNlLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8vIG11c3QgYmUgYmVmb3JlIHNlbGVjdGlvbiwgYmVjYXVzZSBzZWxldGlvbiB1c2UgcmVjb3Jkc1xuICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0Um93c0Zyb21SZXNwb25zZShyZXNwb25zZS5kYXRhKTtcbiAgICAvLy9cblxuICAgIC8vIFVwZGF0ZSBzZWxlY3Rpb24gcGFyYW1zXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG5cbiAgICAgIGlmICh0aGlzLnBhZ2luZy5lbmFibGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnBhZ2VDaGFuZ2VkKHRoaXMuc2Nyb2xsYWJsZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnVwZGF0ZVZpc2libGVSZWNvcmRzQ291bnQodGhpcy5wYWdpbmcuZ2V0VmlzaWJsZVJlY29yZHMoKSk7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnVwZGF0ZVRvdGFsUmVjb3Jkc0NvdW50KHRoaXMucGFnaW5nLnJlY29yZHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY291bnQgPSByZXNwb25zZS5wYWdpbmcgJiYgcmVzcG9uc2UucGFnaW5nLnJlY29yZHNcbiAgICAgICAgICB8fCBBcnJheS5pc0FycmF5KHJlc3BvbnNlLmRhdGEpICYmIHJlc3BvbnNlLmRhdGEubGVuZ3RoO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnVwZGF0ZVZpc2libGVSZWNvcmRzQ291bnQoY291bnQpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVUb3RhbFJlY29yZHNDb3VudChjb3VudCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkUm93c0ludGVyc2VjdGlvbih0aGlzLmRhdGFDb250cm9sbGVyLnZpc2libGVSb3dzRGF0YSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZW1wdHlTdGF0ZT8udmFsaWRhdGUgJiYgdGhpcy5lbXB0eVN0YXRlVGVtcGxhdGUpIHtcbiAgICAgIHRoaXMuZW1wdHlTdGF0ZUVuYWJsZWQgPSB0aGlzLmVtcHR5U3RhdGUudmFsaWRhdGUocXVlcnksIGNsb25lRGVlcChyZXNwb25zZS5kYXRhKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYWZ0ZXJGZXRjaEZuKSB7XG4gICAgICB0aGlzLmFmdGVyRmV0Y2hGbihxdWVyeSwgdGhpcy5kYXRhQ29udHJvbGxlci52aXNpYmxlUm93c0RhdGEpO1xuICAgIH1cblxuICAgIHRoaXMuZmV0Y2hDb21wbGV0ZSQubmV4dCgpO1xuICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogV2lsbCBkbyBzb21lIGFjdGlvbnMgaWYgeW91IHJlbW92ZWQgaXRlbSBhbmQgaXRlbSB3YXMgbGFzdCBvbiBoaXMgb3duIHBhZ2VcbiAgICpcbiAgICogRXg6IGlmIGxpc3QgaGFzIDMgcGFnZXMgYW5kIG9uIHRoaXJkIHBhZ2UgeW91IGhhdmUgb25seSBvbmUgaXRlbS4gQW5kIHlvdSBqdXN0IGRlbGV0ZWQgdGhpcyBpdGVtLlxuICAgKiBZb3UgbXVzdCBnbyB0byBzZWNvbmQgcGFnZSwgYnV0IGlmIGl0IHdhcyBsYXN0IHBhZ2UgYW5kIHlvdSBjYW4ndCBnbyBiYWNrIC0+IGp1c3QgcmVsb2FkXG4gICAqXG4gICAqIEBwYXJhbSBkZWxldGVkQ291bnRcbiAgICovXG4gIHByaXZhdGUgbm9EYXRhUGFnaW5hdGlvblVwZGF0ZShkZWxldGVkQ291bnQpIHtcbiAgICBpZiAoIXRoaXMuZGF0YUNvbnRyb2xsZXIuaGFzRGF0YSkge1xuICAgICAgaWYgKHRoaXMucGFnaW5nLnBhZ2UgPiAxKSB7XG4gICAgICAgIHRoaXMucGFnaW5nLmdvVG9QYWdlKHRoaXMucGFnaW5nLnBhZ2UgLSAxIHx8IDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnBhZ2luZy5yZWNvcmRzIC09IGRlbGV0ZWRDb3VudDtcbiAgICB0aGlzLnBhZ2luZy51cGRhdGVQYWdpbmF0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5kYXRhQ29udHJvbGxlci5oYXNEYXRhICYmIHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVWaXNpYmxlUmVjb3Jkc0NvdW50KHRoaXMuZGF0YUNvbnRyb2xsZXIudmlzaWJsZVJvd3NDb3VudCk7XG4gICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVUb3RhbFJlY29yZHNDb3VudCh0aGlzLnBhZ2luZy5yZWNvcmRzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGVtcG9yYXJ5IHNvbHV0aW9uLCB3aWxsIGRvIGF1dG8gc3Vic2NyaWJlIGlmIHdhcyByZXR1cm5lZCBPYnNlcnZhYmxlLlxuICAgKlxuICAgKiBUT0RPOiBNT1ZFIFRISVMgUEVBQ0UgT0YgQ09ERSBUTyBTUEVDSUFMIFBMQUNFXG4gICAqXG4gICAqIEBwYXJhbSByZXN0b3JlQ2xpY2tDYWxsYmFja1xuICAgKiBAcGFyYW0gcm93XG4gICAqL1xuICBwcml2YXRlIHJlc3RvcmVDbGljayhyZXN0b3JlQ2xpY2tDYWxsYmFjaywgcm93KSB7XG4gICAgY29uc3QgcmVzdG9yZUNsaWNrUmVzdWx0ID0gcmVzdG9yZUNsaWNrQ2FsbGJhY2socm93KTtcblxuICAgIGlmIChyZXN0b3JlQ2xpY2tSZXN1bHQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICByZXN0b3JlQ2xpY2tSZXN1bHRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAoKSA9PiB0aGlzLnJlbG9hZCgpLFxuICAgICAgICAgIGVycm9yOiAoKSA9PiB7fSxcbiAgICAgICAgfSlcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -44,7 +44,10 @@ var FsRowActionsComponent = /** @class */ (function () {
44
44
  return index;
45
45
  };
46
46
  FsRowActionsComponent.prototype.clickOnTrigger = function (event) {
47
+ var _this = this;
47
48
  event.stopPropagation();
49
+ this.rowActions
50
+ .forEach(function (action) { return action.updateLabel(_this.row.data); });
48
51
  };
49
52
  /**
50
53
  * Emit that some row must be removed
@@ -110,4 +113,4 @@ var FsRowActionsComponent = /** @class */ (function () {
110
113
  return FsRowActionsComponent;
111
114
  }());
112
115
  export { FsRowActionsComponent };
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9saXN0LyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvYm9keS9yb3cvYWN0aW9ucy9hY3Rpb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBUWhFO0lBNEJFLCtCQUNVLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFwQnRCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBR3BCLGVBQVUsR0FBZ0IsRUFBRSxDQUFDO1FBTTdCLG1CQUFjLEdBQWdCLEVBQUUsQ0FBQztRQUdqQyxxQkFBZ0IsR0FBZ0IsRUFBRSxDQUFDO1FBS2xDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSS9CLENBQUM7SUFFRywyQ0FBVyxHQUFsQixVQUFtQixNQUFpQixFQUFFLEdBQVEsRUFBRSxLQUFVLEVBQUUsT0FBUTtRQUFwRSxpQkFxQkM7UUFwQkMsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2pCLElBQUksT0FBTyxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3hEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO29CQUNyQixLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLO29CQUMxQixRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRO2lCQUNqQyxDQUFDLENBQUMsSUFBSSxDQUNMLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQixDQUFDLFNBQVMsQ0FBQztvQkFDVixJQUFJLEVBQUU7d0JBQ0osS0FBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN6RCxDQUFDO29CQUNELEtBQUssRUFBRSxjQUFPLENBQUM7aUJBQ2hCLENBQUMsQ0FBQTthQUNIO1NBQ0Y7YUFBTTtZQUNMLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSx5Q0FBUyxHQUFoQixVQUFpQixLQUFLO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLDhDQUFjLEdBQXJCLFVBQXNCLEtBQUs7UUFDekIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyw0Q0FBWSxHQUFwQixVQUFxQixNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLO1FBQTlDLGlCQWFDO1FBWkMsSUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFekQsSUFBSSxnQkFBZ0IsSUFBSSxnQkFBZ0IsWUFBWSxVQUFVLEVBQUU7WUFDOUQsZ0JBQWdCO2lCQUNiLElBQUksQ0FDSCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7aUJBQ0EsU0FBUyxDQUFDO2dCQUNULEtBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDOztnQkExRG9CLFFBQVE7O0lBMUI3QjtRQURDLEtBQUssRUFBRTtrQ0FDSSxHQUFHO3NEQUFDO0lBR2hCO1FBREMsS0FBSyxFQUFFOzt3REFDYTtJQUdyQjtRQURDLEtBQUssRUFBRTs7OERBQ21CO0lBRzNCO1FBREMsS0FBSyxFQUFFOzs2REFDNEI7SUFHcEM7UUFEQyxLQUFLLEVBQUU7a0NBQ1csWUFBWTs2REFBTTtJQUdyQztRQURDLEtBQUssRUFBRTs7aUVBQ2dDO0lBR3hDO1FBREMsS0FBSyxFQUFFOzttRUFDa0M7SUFHMUM7UUFEQyxLQUFLLEVBQUU7a0NBQ2MsU0FBUztnRUFBQztJQXhCckIscUJBQXFCO1FBTGpDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsMHRHQUF1QztZQUN2QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtTQUNoRCxDQUFDO3lDQThCcUIsUUFBUTtPQTdCbEIscUJBQXFCLENBd0ZqQztJQUFELDRCQUFDO0NBQUEsQUF4RkQsSUF3RkM7U0F4RlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZzUHJvbXB0IH0gZnJvbSAnQGZpcmVzdGl0Y2gvcHJvbXB0JztcblxuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3Jvdyc7XG5pbXBvcnQgeyBSb3dBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcm93LWFjdGlvbi5tb2RlbCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtbGlzdC1yb3ctYWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzUm93QWN0aW9uc0NvbXBvbmVudCB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJvdzogUm93O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmRleDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXN0b3JlTW9kZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByb3dBY3Rpb25zOiBSb3dBY3Rpb25bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByb3dSZW1vdmVkOiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWVudVJvd0FjdGlvbnM6IFJvd0FjdGlvbltdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlubGluZVJvd0FjdGlvbnM6IFJvd0FjdGlvbltdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3RvcmVBY3Rpb246IFJvd0FjdGlvbjtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZnNQcm9tcHQ6IEZzUHJvbXB0LFxuICApIHt9XG5cbiAgcHVibGljIGFjdGlvbkNsaWNrKGFjdGlvbjogUm93QWN0aW9uLCByb3c6IGFueSwgZXZlbnQ6IGFueSwgbWVudVJlZj8pIHtcbiAgICBpZiAoYWN0aW9uLnJlbW92ZSkge1xuICAgICAgaWYgKHR5cGVvZiBhY3Rpb24ucmVtb3ZlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBY3Rpb24oYWN0aW9uLCByb3cuZGF0YSwgZXZlbnQsIHRoaXMuaW5kZXgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fZnNQcm9tcHQuY29uZmlybSh7XG4gICAgICAgICAgdGl0bGU6IGFjdGlvbi5yZW1vdmUudGl0bGUsXG4gICAgICAgICAgdGVtcGxhdGU6IGFjdGlvbi5yZW1vdmUudGVtcGxhdGUsXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVBY3Rpb24oYWN0aW9uLCByb3cuZGF0YSwgZXZlbnQsIHRoaXMuaW5kZXgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6ICgpID0+IHt9LFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhY3Rpb24uY2xpY2socm93LmRhdGEsIGV2ZW50LCB0aGlzLmluZGV4LCBtZW51UmVmKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJhY2sgQnkgZm9yIGltcHJvdmUgY2hhbmdlIGRldGVjdGlvblxuICAgKiBAcGFyYW0gaW5kZXhcbiAgICovXG4gIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXgpIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBwdWJsaWMgY2xpY2tPblRyaWdnZXIoZXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0IHRoYXQgc29tZSByb3cgbXVzdCBiZSByZW1vdmVkXG4gICAqIEBwYXJhbSBhY3Rpb25cbiAgICogQHBhcmFtIHJvd1xuICAgKiBAcGFyYW0gZXZlbnRcbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICBwcml2YXRlIHJlbW92ZUFjdGlvbihhY3Rpb24sIHJvdywgZXZlbnQsIGluZGV4KSB7XG4gICAgY29uc3QgcmVtb3ZlT2JzZXJ2YWJsZSA9IGFjdGlvbi5jbGljayhyb3csIGV2ZW50LCBpbmRleCk7XG5cbiAgICBpZiAocmVtb3ZlT2JzZXJ2YWJsZSAmJiByZW1vdmVPYnNlcnZhYmxlIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgcmVtb3ZlT2JzZXJ2YWJsZVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yb3dSZW1vdmVkLmVtaXQocm93KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9saXN0LyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvYm9keS9yb3cvYWN0aW9ucy9hY3Rpb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBUWhFO0lBNEJFLCtCQUNVLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFwQnRCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBR3BCLGVBQVUsR0FBZ0IsRUFBRSxDQUFDO1FBTTdCLG1CQUFjLEdBQWdCLEVBQUUsQ0FBQztRQUdqQyxxQkFBZ0IsR0FBZ0IsRUFBRSxDQUFDO1FBS2xDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSS9CLENBQUM7SUFFRywyQ0FBVyxHQUFsQixVQUFtQixNQUFpQixFQUFFLEdBQVEsRUFBRSxLQUFVLEVBQUUsT0FBUTtRQUFwRSxpQkFxQkM7UUFwQkMsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2pCLElBQUksT0FBTyxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3hEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO29CQUNyQixLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLO29CQUMxQixRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRO2lCQUNqQyxDQUFDLENBQUMsSUFBSSxDQUNMLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQixDQUFDLFNBQVMsQ0FBQztvQkFDVixJQUFJLEVBQUU7d0JBQ0osS0FBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN6RCxDQUFDO29CQUNELEtBQUssRUFBRSxjQUFPLENBQUM7aUJBQ2hCLENBQUMsQ0FBQTthQUNIO1NBQ0Y7YUFBTTtZQUNMLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSx5Q0FBUyxHQUFoQixVQUFpQixLQUFLO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLDhDQUFjLEdBQXJCLFVBQXNCLEtBQUs7UUFBM0IsaUJBS0M7UUFKQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLFVBQVU7YUFDWixPQUFPLENBQUMsVUFBQyxNQUFNLElBQUssT0FBQSxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQWpDLENBQWlDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssNENBQVksR0FBcEIsVUFBcUIsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSztRQUE5QyxpQkFhQztRQVpDLElBQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXpELElBQUksZ0JBQWdCLElBQUksZ0JBQWdCLFlBQVksVUFBVSxFQUFFO1lBQzlELGdCQUFnQjtpQkFDYixJQUFJLENBQ0gsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2lCQUNBLFNBQVMsQ0FBQztnQkFDVCxLQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQzs7Z0JBN0RvQixRQUFROztJQTFCN0I7UUFEQyxLQUFLLEVBQUU7a0NBQ0ksR0FBRztzREFBQztJQUdoQjtRQURDLEtBQUssRUFBRTs7d0RBQ2E7SUFHckI7UUFEQyxLQUFLLEVBQUU7OzhEQUNtQjtJQUczQjtRQURDLEtBQUssRUFBRTs7NkRBQzRCO0lBR3BDO1FBREMsS0FBSyxFQUFFO2tDQUNXLFlBQVk7NkRBQU07SUFHckM7UUFEQyxLQUFLLEVBQUU7O2lFQUNnQztJQUd4QztRQURDLEtBQUssRUFBRTs7bUVBQ2tDO0lBRzFDO1FBREMsS0FBSyxFQUFFO2tDQUNjLFNBQVM7Z0VBQUM7SUF4QnJCLHFCQUFxQjtRQUxqQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLDB0R0FBdUM7WUFDdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07U0FDaEQsQ0FBQzt5Q0E4QnFCLFFBQVE7T0E3QmxCLHFCQUFxQixDQTJGakM7SUFBRCw0QkFBQztDQUFBLEFBM0ZELElBMkZDO1NBM0ZZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGc1Byb21wdCB9IGZyb20gJ0BmaXJlc3RpdGNoL3Byb21wdCc7XG5cbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9yb3cnO1xuaW1wb3J0IHsgUm93QWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3Jvdy1hY3Rpb24ubW9kZWwnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWxpc3Qtcm93LWFjdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc1Jvd0FjdGlvbnNDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByb3c6IFJvdztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaW5kZXg6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVzdG9yZU1vZGUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcm93QWN0aW9uczogUm93QWN0aW9uW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcm93UmVtb3ZlZDogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1lbnVSb3dBY3Rpb25zOiBSb3dBY3Rpb25bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmxpbmVSb3dBY3Rpb25zOiBSb3dBY3Rpb25bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXN0b3JlQWN0aW9uOiBSb3dBY3Rpb247XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2ZzUHJvbXB0OiBGc1Byb21wdCxcbiAgKSB7fVxuXG4gIHB1YmxpYyBhY3Rpb25DbGljayhhY3Rpb246IFJvd0FjdGlvbiwgcm93OiBhbnksIGV2ZW50OiBhbnksIG1lbnVSZWY/KSB7XG4gICAgaWYgKGFjdGlvbi5yZW1vdmUpIHtcbiAgICAgIGlmICh0eXBlb2YgYWN0aW9uLnJlbW92ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQWN0aW9uKGFjdGlvbiwgcm93LmRhdGEsIGV2ZW50LCB0aGlzLmluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2ZzUHJvbXB0LmNvbmZpcm0oe1xuICAgICAgICAgIHRpdGxlOiBhY3Rpb24ucmVtb3ZlLnRpdGxlLFxuICAgICAgICAgIHRlbXBsYXRlOiBhY3Rpb24ucmVtb3ZlLnRlbXBsYXRlLFxuICAgICAgICB9KS5waXBlKFxuICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQWN0aW9uKGFjdGlvbiwgcm93LmRhdGEsIGV2ZW50LCB0aGlzLmluZGV4KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoKSA9PiB7fSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYWN0aW9uLmNsaWNrKHJvdy5kYXRhLCBldmVudCwgdGhpcy5pbmRleCwgbWVudVJlZik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYWNrIEJ5IGZvciBpbXByb3ZlIGNoYW5nZSBkZXRlY3Rpb25cbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4KSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgcHVibGljIGNsaWNrT25UcmlnZ2VyKGV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLnJvd0FjdGlvbnNcbiAgICAgIC5mb3JFYWNoKChhY3Rpb24pID0+IGFjdGlvbi51cGRhdGVMYWJlbCh0aGlzLnJvdy5kYXRhKSk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdCB0aGF0IHNvbWUgcm93IG11c3QgYmUgcmVtb3ZlZFxuICAgKiBAcGFyYW0gYWN0aW9uXG4gICAqIEBwYXJhbSByb3dcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqIEBwYXJhbSBpbmRleFxuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVBY3Rpb24oYWN0aW9uLCByb3csIGV2ZW50LCBpbmRleCkge1xuICAgIGNvbnN0IHJlbW92ZU9ic2VydmFibGUgPSBhY3Rpb24uY2xpY2socm93LCBldmVudCwgaW5kZXgpO1xuXG4gICAgaWYgKHJlbW92ZU9ic2VydmFibGUgJiYgcmVtb3ZlT2JzZXJ2YWJsZSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgIHJlbW92ZU9ic2VydmFibGVcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucm93UmVtb3ZlZC5lbWl0KHJvdyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1 +1 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGNvbmZpZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9saXN0LyIsInNvdXJjZXMiOlsiYXBwL2ludGVyZmFjZXMvbGlzdGNvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEZzU2VsZWN0aW9uQWN0aW9uU2VsZWN0ZWQsXG4gIEZzU2VsZWN0aW9uRGlhbG9nQ29uZmlnQWN0aW9uLFxuICBTZWxlY3Rpb25SZWZcbn0gZnJvbSAnQGZpcmVzdGl0Y2gvc2VsZWN0aW9uJ1xuaW1wb3J0IHtcbiAgSUZpbHRlckNvbmZpZ0l0ZW0sXG4gIElGaWx0ZXJDb25maWdEYXRlSXRlbSxcbiAgRnNGaWx0ZXJQZXJzaXN0YW5jZSxcbiAgSUZpbHRlclNhdmVkRmlsdGVyc0NvbmZpZyxcbiAgRnNGaWx0ZXJBY3Rpb24sXG4gIENoYW5nZUZuLFxufSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuXG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvYnV0dG9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBSZW9yZGVyUG9zaXRpb24sIFJlb3JkZXJTdHJhdGVneSB9IGZyb20gJy4uL2NsYXNzZXMvcmVvcmRlci1jb250cm9sbGVyJztcbmltcG9ydCB7IFBhZ2luYXRpb25TdHJhdGVneSB9IGZyb20gJy4uL2VudW1zL3BhZ2luYXRpb24tc3RyYXRlZ3kuZW51bSc7XG5pbXBvcnQgeyBSb3dUeXBlIH0gZnJvbSAnLi4vZW51bXMvcm93LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBGc0xpc3RTdGF0ZSB9IGZyb20gJy4uL2VudW1zL3N0YXRlLmVudW0nO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNQYWdpbmcge1xuICBsaW1pdHM/OiBudW1iZXJbXTtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIHBhZ2U/OiBudW1iZXI7XG4gIHBhZ2VzPzogbnVtYmVyO1xuICByZWNvcmRzPzogbnVtYmVyO1xuICBzdHJhdGVneT86IFBhZ2luYXRpb25TdHJhdGVneTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RDb25maWcge1xuICBoZWFkaW5nPzogc3RyaW5nO1xuICB0cmFja0J5Pzogc3RyaW5nO1xuICBzdWJoZWFkaW5nPzogc3RyaW5nO1xuICBzdGF0dXM/OiBib29sZWFuO1xuICBjaGlwcz86IGJvb2xlYW47XG4gIGNvbHVtbj86IEZzTGlzdENvbHVtbkNvbmZpZztcbiAgZmlsdGVySW5wdXQ/OiBib29sZWFuO1xuICBxdWVyeVBhcmFtPzogYm9vbGVhbjtcbiAgcGFnaW5nPzogRnNQYWdpbmcgfCBmYWxzZTtcbiAgbG9hZE1vcmU/OiBGc0xpc3RMb2FkTW9yZUNvbmZpZyB8IGJvb2xlYW47XG4gIGNvbHVtbkRlZmF1bHRzPzogT2JqZWN0O1xuICBmaWx0ZXJzPzogKElGaWx0ZXJDb25maWdJdGVtIHwgSUZpbHRlckNvbmZpZ0RhdGVJdGVtKVtdO1xuICBzYXZlZEZpbHRlcnM/OiBJRmlsdGVyU2F2ZWRGaWx0ZXJzQ29uZmlnO1xuICBwZXJzaXN0PzogRnNMaXN0UGVyc2l0YW5jZTtcbiAgcm93QWN0aW9ucz86IChGc0xpc3RSb3dBY3Rpb25Hcm91cCB8IEZzTGlzdFJvd0FjdGlvbilbXSA7XG4gIHJvd0NsYXNzPzogKHJvdzogYW55KSA9PiBzdHJpbmc7XG4gIGFjdGlvbnM/OiBGc0xpc3RBY3Rpb25bXTtcbiAgZmV0Y2g/OiBGc0xpc3RGZXRjaEZuO1xuICBzY3JvbGxhYmxlPzogRnNMaXN0U2Nyb2xsYWJsZUNvbmZpZyB8IGJvb2xlYW47XG4gIHNlbGVjdGlvbj86IEZzTGlzdFNlbGVjdGlvbkNvbmZpZztcbiAgaW5pdGlhbEZldGNoPzogYm9vbGVhbjtcbiAgcm93RXZlbnRzPzogeyBbbmFtZTogc3RyaW5nXTogKGV2ZW50KSA9PiB2b2lkIH07XG4gIGhlYWRlcj86IEZzTGlzdEhlYWRlckNvbmZpZztcbiAgY2VsbD86IEZzTGlzdENlbGxDb25maWc7XG4gIGZvb3Rlcj86IEZzTGlzdEZvb3RlckNvbmZpZztcbiAgcmVvcmRlcj86IEZzTGlzdFJlb3JkZXJDb25maWc7XG4gIHNvcnRzPzogRnNMaXN0U29ydHNDb25maWdbXTtcbiAgZ3JvdXA/OiBGc0xpc3RHcm91cENvbmZpZztcbiAgc29ydD86IEZzTGlzdFNvcnRDb25maWc7XG4gIHJlc3RvcmU/OiBGc0xpc3RSZXN0b3JlQ29uZmlnO1xuICBub1Jlc3VsdHM/OiBGc0xpc3ROb1Jlc3VsdHNDb25maWdcbiAgZW1wdHlTdGF0ZT86IEZzTGlzdEVtcHR5U3RhdGVDb25maWc7XG4gIGZpbHRlckluaXQ/OiBDaGFuZ2VGbjtcbiAgZmlsdGVyQ2hhbmdlPzogQ2hhbmdlRm47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0R3JvdXBDb25maWcge1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgaW5pdGlhbEV4cGFuZD86IGJvb2xlYW47XG4gIGdyb3VwQnk/OiAocm93OiBhbnkpID0+IGFueTtcbiAgY29tcGFyZUJ5PzogKHJvdzogYW55KSA9PiBhbnk7XG4gIGFjdGlvbnM/OiAoRnNMaXN0Um93QWN0aW9uR3JvdXAgfCBGc0xpc3RSb3dBY3Rpb24pW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0TG9hZE1vcmVDb25maWcge1xuICBsYWJlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RSZW9yZGVyQ29uZmlnIHtcbiAgc3RhcnQ/OiAoKSA9PiB2b2lkO1xuICBtb3ZlZD86IEZzTGlzdFJlb3JkZXJNb3ZlZENhbGxiYWNrO1xuICBkb25lPzogRnNMaXN0UmVvcmRlckRvbmVDYWxsYmFjaztcbiAgbW92ZURyb3A/OiBGc0xpc3RSZW9yZGVyTW92ZUluR3JvdXBDYWxsYmFjaztcbiAgcG9zaXRpb24/OiBSZW9yZGVyUG9zaXRpb247XG4gIHN0cmF0ZWd5PzogUmVvcmRlclN0cmF0ZWd5O1xuICBsYWJlbD86IHN0cmluZztcbiAgbWVudT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIEZzTGlzdFJlb3JkZXJNb3ZlZENhbGxiYWNrXG4gID0gKHJvd3M6IEZzTGlzdFJlb3JkZXJEYXRhW10pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIEZzTGlzdFJlb3JkZXJEb25lQ2FsbGJhY2tcbiAgPSAocm93czogRnNMaXN0UmVvcmRlckRhdGFbXSkgPT4gdm9pZCB8IE9ic2VydmFibGU8YW55PjtcblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RSZW9yZGVyRGF0YSB7XG4gIHR5cGU6IFJvd1R5cGUsXG4gIGRhdGE6IGFueSxcbiAgcGFyZW50OiBGc0xpc3RSZW9yZGVyRGF0YSxcbn1cblxuZXhwb3J0IHR5cGUgRnNMaXN0UmVvcmRlck1vdmVJbkdyb3VwQ2FsbGJhY2sgPVxuICAoZGF0YTogeyByb3cxOiBhbnksIHJvdzI6IGFueSwgZ3JvdXAxOiBhbnksIGdyb3VwMjogYW55fSkgPT4gYm9vbGVhbjtcblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RIZWFkZXJDb25maWcge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGFsaWduPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENlbGxDb25maWcge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGFsaWduPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdEZvb3RlckNvbmZpZyB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgYWxpZ24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0U29ydHNDb25maWcge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGRpcmVjdGlvbj86ICdhc2MnIHwgJ2Rlc2MnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFNvcnRDb25maWcge1xuICB2YWx1ZTogc3RyaW5nO1xuICBkaXJlY3Rpb24/OiAnYXNjJyB8ICdkZXNjJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RTY3JvbGxhYmxlQ29uZmlnIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhY3RpdmF0aW9uRG93bj86IG51bWJlcjtcbiAgbG9hZGVyRGlhbWV0cj86IG51bWJlcjtcbiAgc3RhdHVzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RSZXN0b3JlQ29uZmlnIHtcbiAgcXVlcnk/OiBhbnk7XG4gIGZpbHRlcj86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIGZpbHRlckxhYmVsPzogc3RyaW5nO1xuICBtZW51TGFiZWw/OiBzdHJpbmc7XG4gIGNsaWNrPzogKHJvdzogRnNMaXN0QWJzdHJhY3RSb3csIGV2ZW50PzogYW55KSA9PiB2b2lkIHwgT2JzZXJ2YWJsZTxhbnk+O1xuICByZWxvYWQ/OiBib29sZWFuO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Tm9SZXN1bHRzQ29uZmlnIHtcbiAgbWVzc2FnZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RTZWxlY3Rpb25Db25maWcge1xuICBhY3Rpb25zPzogRnNTZWxlY3Rpb25EaWFsb2dDb25maWdBY3Rpb25bXTtcbiAgYWN0aW9uU2VsZWN0ZWQ/OiAoYWN0aW9uOiBGc0xpc3RBY3Rpb25TZWxlY3RlZCkgPT4gT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgYWxsU2VsZWN0ZWQ/OiAoKSA9PiB2b2lkO1xuICBjYW5jZWxsZWQ/OiAoKSA9PiB2b2lkO1xuICBzZWxlY3RBbGw/OiBib29sZWFuO1xuICBzZWxlY3Rpb25DaGFuZ2VkPzogKGRhdGE6IGFueSwgc2VsZWN0ZWRBbGw6IGJvb2xlYW4sIHNlbGVjdGlvblJlZjogU2VsZWN0aW9uUmVmKSA9PlxuICAgIEZzU2VsZWN0aW9uRGlhbG9nQ29uZmlnQWN0aW9uW10gfCBPYnNlcnZhYmxlPEZzU2VsZWN0aW9uRGlhbG9nQ29uZmlnQWN0aW9uW10gfCB2b2lkPiB8IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0RmV0Y2hTdWJzY3JpcHRpb24ge1xuICBsb2FkT2Zmc2V0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgRnNMaXN0QWN0aW9uICA9IHtjdXN0b21pemU/OiBib29sZWFufSAmIEZzRmlsdGVyQWN0aW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFJvd0FjdGlvbkdyb3VwIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHJvd0FjdGlvbnM6IEZzTGlzdFJvd0FjdGlvbltdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Um93QWN0aW9uIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHR5cGU/OiBBY3Rpb25UeXBlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIG1lbnU/OiBib29sZWFuO1xuICBjbGljaz86IChyb3csIGV2ZW50LCBpbmRleCkgPT4gdm9pZDtcbiAgbGluaz86IEZzTGlzdFJvd0FjdGlvbkxpbmtGbjtcbiAgc2hvdz86IChyb3csIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW47XG4gIHJlbW92ZT86IHsgdGl0bGU/OiBzdHJpbmc7IHRlbXBsYXRlPzogc3RyaW5nOyB9IHwgYm9vbGVhbjtcbiAgcmVzdG9yZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Um93QWN0aW9uTGlua0ZuIHtcbiAgKHJvdzogRnNMaXN0QWJzdHJhY3RSb3cpOiBGc0xpc3RSb3dBY3Rpb25MaW5rXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Um93QWN0aW9uTGluayB7XG4gIGxpbms6IGFueVtdIHwgc3RyaW5nO1xuICBxdWVyeVBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHRhcmdldD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RBYnN0cmFjdFJvdyB7XG4gIFtuYW1lOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0VHJhY2tCeUZuIHtcbiAgKHJvdzogRnNMaXN0QWJzdHJhY3RSb3csIGluZGV4PzogbnVtYmVyKTogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFRyYWNrQnlUYXJnZXRSb3dGbiB7XG4gIChsaXN0Um93OiBGc0xpc3RBYnN0cmFjdFJvdywgdGFyZ2V0Um93PzogRnNMaXN0QWJzdHJhY3RSb3cpOiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Q29sdW1uTG9hZEZuIHtcbiAgKCk6IE9ic2VydmFibGU8RnNMaXN0Q29sdW1uW10+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENvbHVtbkNoYW5nZUZuIHtcbiAgKGxpc3RDb2x1bW5zOiBGc0xpc3RDb2x1bW5bXSk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Q29sdW1uVGl0bGVGbiB7XG4gIChuYW1lOiBzdHJpbmcsIGRlZmF1bHRUaXRsZTogc3RyaW5nKTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENvbHVtblRvb2x0aXBGbiB7XG4gIChuYW1lOiBzdHJpbmcsIHNob3c6IGJvb2xlYW4sIGRpc2FibGVkOiBib29sZWFuKTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENvbHVtbkRpc2FibGVkRm4ge1xuICAobmFtZTogc3RyaW5nKTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RDb2x1bW5TZWxlY3RlZEZuIHtcbiAgKG5hbWU6IHN0cmluZywgc2hvdzogYm9vbGVhbik6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Q29sdW1uQ29uZmlnIHtcbiAgbG9hZD86IEZzTGlzdENvbHVtbkxvYWRGbjtcbiAgY2hhbmdlPzogRnNMaXN0Q29sdW1uQ2hhbmdlRm47XG4gIHRpdGxlPzogRnNMaXN0Q29sdW1uVGl0bGVGbjtcbiAgdG9vbHRpcD86IEZzTGlzdENvbHVtblRvb2x0aXBGbjtcbiAgZGlzYWJsZWQ/OiBGc0xpc3RDb2x1bW5EaXNhYmxlZEZuO1xuICBzZWxlY3RlZD86IEZzTGlzdENvbHVtblNlbGVjdGVkRm47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Q29sdW1uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBzaG93OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdEFjdGlvblNlbGVjdGVkIGV4dGVuZHMgRnNTZWxlY3Rpb25BY3Rpb25TZWxlY3RlZCB7XG4gIHNlbGVjdGVkOiBhbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RFbXB0eVN0YXRlQ29uZmlnIHtcbiAgdmFsaWRhdGU6IEZzTGlzdFN0YXRlVmFsaWRhdGlvbkZuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdEZldGNoT3B0aW9ucyB7XG4gIHN0YXRlOiBGc0xpc3RTdGF0ZSxcbn1cblxuZXhwb3J0IHR5cGUgRnNMaXN0UGVyc2l0YW5jZSA9IEZzRmlsdGVyUGVyc2lzdGFuY2U7XG5leHBvcnQgdHlwZSBGc0xpc3RTdGF0ZVZhbGlkYXRpb25GbiA9IChmaWx0ZXJzOiBhbnksIHJvd3M6IEZzTGlzdEFic3RyYWN0Um93W10pID0+IGJvb2xlYW47XG5leHBvcnQgdHlwZSBGc0xpc3RGZXRjaEZuID1cbiAgKHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBvcHRpb25zOiBGc0xpc3RGZXRjaE9wdGlvbnMpID0+XG4gICAgT2JzZXJ2YWJsZTx7IGRhdGE6IHVua25vd25bXSwgcGFnaW5nPzogRnNQYWdpbmcgfT47XG4iXX0=
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGNvbmZpZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9saXN0LyIsInNvdXJjZXMiOlsiYXBwL2ludGVyZmFjZXMvbGlzdGNvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEZzU2VsZWN0aW9uQWN0aW9uU2VsZWN0ZWQsXG4gIEZzU2VsZWN0aW9uRGlhbG9nQ29uZmlnQWN0aW9uLFxuICBTZWxlY3Rpb25SZWZcbn0gZnJvbSAnQGZpcmVzdGl0Y2gvc2VsZWN0aW9uJ1xuaW1wb3J0IHtcbiAgSUZpbHRlckNvbmZpZ0l0ZW0sXG4gIElGaWx0ZXJDb25maWdEYXRlSXRlbSxcbiAgRnNGaWx0ZXJQZXJzaXN0YW5jZSxcbiAgSUZpbHRlclNhdmVkRmlsdGVyc0NvbmZpZyxcbiAgRnNGaWx0ZXJBY3Rpb24sXG4gIENoYW5nZUZuLFxufSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuXG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvYnV0dG9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBSZW9yZGVyUG9zaXRpb24sIFJlb3JkZXJTdHJhdGVneSB9IGZyb20gJy4uL2NsYXNzZXMvcmVvcmRlci1jb250cm9sbGVyJztcbmltcG9ydCB7IFBhZ2luYXRpb25TdHJhdGVneSB9IGZyb20gJy4uL2VudW1zL3BhZ2luYXRpb24tc3RyYXRlZ3kuZW51bSc7XG5pbXBvcnQgeyBSb3dUeXBlIH0gZnJvbSAnLi4vZW51bXMvcm93LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBGc0xpc3RTdGF0ZSB9IGZyb20gJy4uL2VudW1zL3N0YXRlLmVudW0nO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNQYWdpbmcge1xuICBsaW1pdHM/OiBudW1iZXJbXTtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIHBhZ2U/OiBudW1iZXI7XG4gIHBhZ2VzPzogbnVtYmVyO1xuICByZWNvcmRzPzogbnVtYmVyO1xuICBzdHJhdGVneT86IFBhZ2luYXRpb25TdHJhdGVneTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RDb25maWcge1xuICBoZWFkaW5nPzogc3RyaW5nO1xuICB0cmFja0J5Pzogc3RyaW5nO1xuICBzdWJoZWFkaW5nPzogc3RyaW5nO1xuICBzdGF0dXM/OiBib29sZWFuO1xuICBjaGlwcz86IGJvb2xlYW47XG4gIGNvbHVtbj86IEZzTGlzdENvbHVtbkNvbmZpZztcbiAgZmlsdGVySW5wdXQ/OiBib29sZWFuO1xuICBxdWVyeVBhcmFtPzogYm9vbGVhbjtcbiAgcGFnaW5nPzogRnNQYWdpbmcgfCBmYWxzZTtcbiAgbG9hZE1vcmU/OiBGc0xpc3RMb2FkTW9yZUNvbmZpZyB8IGJvb2xlYW47XG4gIGNvbHVtbkRlZmF1bHRzPzogT2JqZWN0O1xuICBmaWx0ZXJzPzogKElGaWx0ZXJDb25maWdJdGVtIHwgSUZpbHRlckNvbmZpZ0RhdGVJdGVtKVtdO1xuICBzYXZlZEZpbHRlcnM/OiBJRmlsdGVyU2F2ZWRGaWx0ZXJzQ29uZmlnO1xuICBwZXJzaXN0PzogRnNMaXN0UGVyc2l0YW5jZTtcbiAgcm93QWN0aW9ucz86IChGc0xpc3RSb3dBY3Rpb25Hcm91cCB8IEZzTGlzdFJvd0FjdGlvbilbXSA7XG4gIHJvd0NsYXNzPzogKHJvdzogYW55KSA9PiBzdHJpbmc7XG4gIGFjdGlvbnM/OiBGc0xpc3RBY3Rpb25bXTtcbiAgZmV0Y2g/OiBGc0xpc3RGZXRjaEZuO1xuICBhZnRlckZldGNoPzogRnNMaXN0QWZ0ZXJGZXRjaEZuO1xuICBzY3JvbGxhYmxlPzogRnNMaXN0U2Nyb2xsYWJsZUNvbmZpZyB8IGJvb2xlYW47XG4gIHNlbGVjdGlvbj86IEZzTGlzdFNlbGVjdGlvbkNvbmZpZztcbiAgaW5pdGlhbEZldGNoPzogYm9vbGVhbjtcbiAgcm93RXZlbnRzPzogeyBbbmFtZTogc3RyaW5nXTogKGV2ZW50KSA9PiB2b2lkIH07XG4gIGhlYWRlcj86IEZzTGlzdEhlYWRlckNvbmZpZztcbiAgY2VsbD86IEZzTGlzdENlbGxDb25maWc7XG4gIGZvb3Rlcj86IEZzTGlzdEZvb3RlckNvbmZpZztcbiAgcmVvcmRlcj86IEZzTGlzdFJlb3JkZXJDb25maWc7XG4gIHNvcnRzPzogRnNMaXN0U29ydHNDb25maWdbXTtcbiAgZ3JvdXA/OiBGc0xpc3RHcm91cENvbmZpZztcbiAgc29ydD86IEZzTGlzdFNvcnRDb25maWc7XG4gIHJlc3RvcmU/OiBGc0xpc3RSZXN0b3JlQ29uZmlnO1xuICBub1Jlc3VsdHM/OiBGc0xpc3ROb1Jlc3VsdHNDb25maWdcbiAgZW1wdHlTdGF0ZT86IEZzTGlzdEVtcHR5U3RhdGVDb25maWc7XG4gIGZpbHRlckluaXQ/OiBDaGFuZ2VGbjtcbiAgZmlsdGVyQ2hhbmdlPzogQ2hhbmdlRm47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0R3JvdXBDb25maWcge1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgaW5pdGlhbEV4cGFuZD86IGJvb2xlYW47XG4gIGdyb3VwQnk/OiAocm93OiBhbnkpID0+IGFueTtcbiAgY29tcGFyZUJ5PzogKHJvdzogYW55KSA9PiBhbnk7XG4gIGFjdGlvbnM/OiAoRnNMaXN0Um93QWN0aW9uR3JvdXAgfCBGc0xpc3RSb3dBY3Rpb24pW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0TG9hZE1vcmVDb25maWcge1xuICBsYWJlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RSZW9yZGVyQ29uZmlnIHtcbiAgc3RhcnQ/OiAoKSA9PiB2b2lkO1xuICBtb3ZlZD86IEZzTGlzdFJlb3JkZXJNb3ZlZENhbGxiYWNrO1xuICBkb25lPzogRnNMaXN0UmVvcmRlckRvbmVDYWxsYmFjaztcbiAgbW92ZURyb3A/OiBGc0xpc3RSZW9yZGVyTW92ZUluR3JvdXBDYWxsYmFjaztcbiAgcG9zaXRpb24/OiBSZW9yZGVyUG9zaXRpb247XG4gIHN0cmF0ZWd5PzogUmVvcmRlclN0cmF0ZWd5O1xuICBsYWJlbD86IHN0cmluZztcbiAgbWVudT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIEZzTGlzdFJlb3JkZXJNb3ZlZENhbGxiYWNrXG4gID0gKHJvd3M6IEZzTGlzdFJlb3JkZXJEYXRhW10pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIEZzTGlzdFJlb3JkZXJEb25lQ2FsbGJhY2tcbiAgPSAocm93czogRnNMaXN0UmVvcmRlckRhdGFbXSkgPT4gdm9pZCB8IE9ic2VydmFibGU8YW55PjtcblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RSZW9yZGVyRGF0YSB7XG4gIHR5cGU6IFJvd1R5cGUsXG4gIGRhdGE6IGFueSxcbiAgcGFyZW50OiBGc0xpc3RSZW9yZGVyRGF0YSxcbn1cblxuZXhwb3J0IHR5cGUgRnNMaXN0UmVvcmRlck1vdmVJbkdyb3VwQ2FsbGJhY2sgPVxuICAoZGF0YTogeyByb3cxOiBhbnksIHJvdzI6IGFueSwgZ3JvdXAxOiBhbnksIGdyb3VwMjogYW55fSkgPT4gYm9vbGVhbjtcblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RIZWFkZXJDb25maWcge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGFsaWduPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENlbGxDb25maWcge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGFsaWduPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdEZvb3RlckNvbmZpZyB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgYWxpZ24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0U29ydHNDb25maWcge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGRpcmVjdGlvbj86ICdhc2MnIHwgJ2Rlc2MnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFNvcnRDb25maWcge1xuICB2YWx1ZTogc3RyaW5nO1xuICBkaXJlY3Rpb24/OiAnYXNjJyB8ICdkZXNjJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RTY3JvbGxhYmxlQ29uZmlnIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhY3RpdmF0aW9uRG93bj86IG51bWJlcjtcbiAgbG9hZGVyRGlhbWV0cj86IG51bWJlcjtcbiAgc3RhdHVzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RSZXN0b3JlQ29uZmlnIHtcbiAgcXVlcnk/OiBhbnk7XG4gIGZpbHRlcj86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIGZpbHRlckxhYmVsPzogc3RyaW5nO1xuICBtZW51TGFiZWw/OiBzdHJpbmc7XG4gIGNsaWNrPzogKHJvdzogRnNMaXN0QWJzdHJhY3RSb3csIGV2ZW50PzogYW55KSA9PiB2b2lkIHwgT2JzZXJ2YWJsZTxhbnk+O1xuICByZWxvYWQ/OiBib29sZWFuO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Tm9SZXN1bHRzQ29uZmlnIHtcbiAgbWVzc2FnZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RTZWxlY3Rpb25Db25maWcge1xuICBhY3Rpb25zPzogRnNTZWxlY3Rpb25EaWFsb2dDb25maWdBY3Rpb25bXTtcbiAgYWN0aW9uU2VsZWN0ZWQ/OiAoYWN0aW9uOiBGc0xpc3RBY3Rpb25TZWxlY3RlZCkgPT4gT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgYWxsU2VsZWN0ZWQ/OiAoKSA9PiB2b2lkO1xuICBjYW5jZWxsZWQ/OiAoKSA9PiB2b2lkO1xuICBzZWxlY3RBbGw/OiBib29sZWFuO1xuICBzZWxlY3Rpb25DaGFuZ2VkPzogKGRhdGE6IGFueSwgc2VsZWN0ZWRBbGw6IGJvb2xlYW4sIHNlbGVjdGlvblJlZjogU2VsZWN0aW9uUmVmKSA9PlxuICAgIEZzU2VsZWN0aW9uRGlhbG9nQ29uZmlnQWN0aW9uW10gfCBPYnNlcnZhYmxlPEZzU2VsZWN0aW9uRGlhbG9nQ29uZmlnQWN0aW9uW10gfCB2b2lkPiB8IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0RmV0Y2hTdWJzY3JpcHRpb24ge1xuICBsb2FkT2Zmc2V0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgRnNMaXN0QWN0aW9uICA9IHtjdXN0b21pemU/OiBib29sZWFufSAmIEZzRmlsdGVyQWN0aW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFJvd0FjdGlvbkdyb3VwIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHJvd0FjdGlvbnM6IEZzTGlzdFJvd0FjdGlvbltdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Um93QWN0aW9uIHtcbiAgbGFiZWw/OiBzdHJpbmcgfCBGc0xpc3RSb3dBY3Rpb25MYWJlbEZuO1xuICB0eXBlPzogQWN0aW9uVHlwZTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBtZW51PzogYm9vbGVhbjtcbiAgY2xpY2s/OiAocm93LCBldmVudCwgaW5kZXgpID0+IHZvaWQ7XG4gIGxpbms/OiBGc0xpc3RSb3dBY3Rpb25MaW5rRm47XG4gIHNob3c/OiAocm93LCBpbmRleDogbnVtYmVyKSA9PiBib29sZWFuO1xuICByZW1vdmU/OiB7IHRpdGxlPzogc3RyaW5nOyB0ZW1wbGF0ZT86IHN0cmluZzsgfSB8IGJvb2xlYW47XG4gIHJlc3RvcmU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFJvd0FjdGlvbkxpbmtGbiB7XG4gIChyb3c6IEZzTGlzdEFic3RyYWN0Um93KTogRnNMaXN0Um93QWN0aW9uTGlua1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFJvd0FjdGlvbkxhYmVsRm4ge1xuICAocm93OiBGc0xpc3RBYnN0cmFjdFJvdyk6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFJvd0FjdGlvbkxpbmsge1xuICBsaW5rOiBhbnlbXSB8IHN0cmluZztcbiAgcXVlcnlQYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICB0YXJnZXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0QWJzdHJhY3RSb3cge1xuICBbbmFtZTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFRyYWNrQnlGbiB7XG4gIChyb3c6IEZzTGlzdEFic3RyYWN0Um93LCBpbmRleD86IG51bWJlcik6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RUcmFja0J5VGFyZ2V0Um93Rm4ge1xuICAobGlzdFJvdzogRnNMaXN0QWJzdHJhY3RSb3csIHRhcmdldFJvdz86IEZzTGlzdEFic3RyYWN0Um93KTogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENvbHVtbkxvYWRGbiB7XG4gICgpOiBPYnNlcnZhYmxlPEZzTGlzdENvbHVtbltdPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RDb2x1bW5DaGFuZ2VGbiB7XG4gIChsaXN0Q29sdW1uczogRnNMaXN0Q29sdW1uW10pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENvbHVtblRpdGxlRm4ge1xuICAobmFtZTogc3RyaW5nLCBkZWZhdWx0VGl0bGU6IHN0cmluZyk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RDb2x1bW5Ub29sdGlwRm4ge1xuICAobmFtZTogc3RyaW5nLCBzaG93OiBib29sZWFuLCBkaXNhYmxlZDogYm9vbGVhbik6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RDb2x1bW5EaXNhYmxlZEZuIHtcbiAgKG5hbWU6IHN0cmluZyk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Q29sdW1uU2VsZWN0ZWRGbiB7XG4gIChuYW1lOiBzdHJpbmcsIHNob3c6IGJvb2xlYW4pOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENvbHVtbkNvbmZpZyB7XG4gIGxvYWQ/OiBGc0xpc3RDb2x1bW5Mb2FkRm47XG4gIGNoYW5nZT86IEZzTGlzdENvbHVtbkNoYW5nZUZuO1xuICB0aXRsZT86IEZzTGlzdENvbHVtblRpdGxlRm47XG4gIHRvb2x0aXA/OiBGc0xpc3RDb2x1bW5Ub29sdGlwRm47XG4gIGRpc2FibGVkPzogRnNMaXN0Q29sdW1uRGlzYWJsZWRGbjtcbiAgc2VsZWN0ZWQ/OiBGc0xpc3RDb2x1bW5TZWxlY3RlZEZuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENvbHVtbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgc2hvdzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RBY3Rpb25TZWxlY3RlZCBleHRlbmRzIEZzU2VsZWN0aW9uQWN0aW9uU2VsZWN0ZWQge1xuICBzZWxlY3RlZDogYW55W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0RW1wdHlTdGF0ZUNvbmZpZyB7XG4gIHZhbGlkYXRlOiBGc0xpc3RTdGF0ZVZhbGlkYXRpb25Gbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RGZXRjaE9wdGlvbnMge1xuICBzdGF0ZTogRnNMaXN0U3RhdGUsXG59XG5cbmV4cG9ydCB0eXBlIEZzTGlzdFBlcnNpdGFuY2UgPSBGc0ZpbHRlclBlcnNpc3RhbmNlO1xuZXhwb3J0IHR5cGUgRnNMaXN0U3RhdGVWYWxpZGF0aW9uRm4gPSAoZmlsdGVyczogYW55LCByb3dzOiBGc0xpc3RBYnN0cmFjdFJvd1tdKSA9PiBib29sZWFuO1xuZXhwb3J0IHR5cGUgRnNMaXN0RmV0Y2hGbiA9XG4gIChxdWVyeTogUmVjb3JkPHN0cmluZywgYW55Piwgb3B0aW9uczogRnNMaXN0RmV0Y2hPcHRpb25zKSA9PlxuICAgIE9ic2VydmFibGU8eyBkYXRhOiB1bmtub3duW10sIHBhZ2luZz86IEZzUGFnaW5nIH0+O1xuXG5leHBvcnQgdHlwZSBGc0xpc3RBZnRlckZldGNoRm4gPVxuICAocXVlcnk6IFJlY29yZDxzdHJpbmcsIGFueT4sIGRhdGE6IHVua25vd25bXSkgPT4gdm9pZDtcbiJdfQ==
@@ -6,6 +6,7 @@ var RowAction = /** @class */ (function (_super) {
6
6
  function RowAction(config) {
7
7
  if (config === void 0) { config = {}; }
8
8
  var _this = _super.call(this) || this;
9
+ _this.label = '';
9
10
  _this.classArray = [];
10
11
  _this.isShown = true;
11
12
  _this._isGroup = false;
@@ -38,6 +39,13 @@ var RowAction = /** @class */ (function (_super) {
38
39
  return _this.clickEvent(row, event, index, rowActionsRef, clickFn);
39
40
  };
40
41
  this._linkFn = value.link;
42
+ if (typeof value.label === 'function') {
43
+ this._labelFn = value.label;
44
+ this.label = '';
45
+ }
46
+ else {
47
+ this.label = value.label;
48
+ }
41
49
  if (this.className) {
42
50
  this.classArray = this.className.split(' ').reduce(function (acc, elem) {
43
51
  acc.push(elem);
@@ -72,6 +80,19 @@ var RowAction = /** @class */ (function (_super) {
72
80
  }
73
81
  }
74
82
  };
83
+ RowAction.prototype.updateLabel = function (row) {
84
+ if (!this.isShown) {
85
+ return;
86
+ }
87
+ if (this.isGroup) {
88
+ this.rowActions.forEach(function (action) {
89
+ action.updateLabel(row);
90
+ });
91
+ }
92
+ else if (this._labelFn) {
93
+ this.label = this._labelFn(row);
94
+ }
95
+ };
75
96
  RowAction.prototype.clickEvent = function (row, event, index, rowActionsRef, clickFn) {
76
97
  // Stop event propagation for parent
77
98
  event.stopPropagation();
@@ -88,10 +109,6 @@ var RowAction = /** @class */ (function (_super) {
88
109
  Alias(),
89
110
  __metadata("design:type", String)
90
111
  ], RowAction.prototype, "icon", void 0);
91
- __decorate([
92
- Alias(),
93
- __metadata("design:type", String)
94
- ], RowAction.prototype, "label", void 0);
95
112
  __decorate([
96
113
  Alias(),
97
114
  __metadata("design:type", Boolean)
@@ -123,4 +140,4 @@ var RowAction = /** @class */ (function (_super) {
123
140
  return RowAction;
124
141
  }(Model));
125
142
  export { RowAction };
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWFjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2xpc3QvIiwic291cmNlcyI6WyJhcHAvbW9kZWxzL3Jvdy1hY3Rpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUl2RDtJQUErQiw2QkFBSztJQW9CbEMsbUJBQVksTUFBZ0I7UUFBaEIsdUJBQUEsRUFBQSxXQUFnQjtRQUE1QixZQUNFLGlCQUFPLFNBT1I7UUFmTSxnQkFBVSxHQUFhLEVBQUUsQ0FBQztRQUMxQixhQUFPLEdBQUcsSUFBSSxDQUFDO1FBSUwsY0FBUSxHQUFZLEtBQUssQ0FBQztRQUt6QyxLQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXZCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbEMsS0FBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDdEI7O0lBQ0gsQ0FBQztJQUVELHNCQUFJLDhCQUFPO2FBQVg7WUFDRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQzs7O09BQUE7SUFFTSw2QkFBUyxHQUFoQixVQUFpQixLQUFVO1FBQTNCLGlCQTBCQztRQXpCQyxpQkFBTSxTQUFTLFlBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztTQUM5QjtRQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtZQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNsQjtRQUVELDJCQUEyQjtRQUMz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LEVBQUU7O2dEQUEwQjtJQUN6QjtRQUFSLEtBQUssRUFBRTs7MkNBQXlCO0lBQ3hCO1FBQVIsS0FBSyxFQUFFO2tDQUFjLFFBQVE7MkNBQUM7SUFDdEI7UUFBUixLQUFLLEVBQUU7OzhDQUF5QjtJQUNEO1FBQS9CLEtBQUssQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDOztpREFBZ0M7SUFnR2pFLGdCQUFDO0NBQUEsQUExR0QsQ0FBK0IsS0FBSyxHQTBHbkM7U0ExR1ksU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFsaWFzLCBNb2RlbCB9IGZyb20gJ3RzbW9kZWxzJztcbmltcG9ydCB7IEFjdGlvblR5cGUgfSBmcm9tICcuLi9lbnVtcy9idXR0b24tdHlwZS5lbnVtJztcbmltcG9ydCB7IEZzTGlzdFJvd0FjdGlvbkxpbmssIEZzTGlzdFJvd0FjdGlvbkxpbmtGbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5cbmV4cG9ydCBjbGFzcyBSb3dBY3Rpb24gZXh0ZW5kcyBNb2RlbCB7XG5cbiAgQEFsaWFzKCkgcHVibGljIGljb246IHN0cmluZztcbiAgQEFsaWFzKCkgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gIEBBbGlhcygpIHB1YmxpYyBtZW51OiBib29sZWFuO1xuICBAQWxpYXMoKSBwdWJsaWMgcmVtb3ZlOiB7IHRpdGxlOiBzdHJpbmc7IHRlbXBsYXRlOiBzdHJpbmc7IH07XG4gIEBBbGlhcygpIHB1YmxpYyBjbGFzc05hbWU6IHN0cmluZztcbiAgQEFsaWFzKCkgcHVibGljIHR5cGU6IEFjdGlvblR5cGU7XG4gIEBBbGlhcygpIHB1YmxpYyBzaG93OiBGdW5jdGlvbjtcbiAgQEFsaWFzKCkgcHVibGljIHJlc3RvcmU6IGJvb2xlYW47XG4gIEBBbGlhcygncm93QWN0aW9ucycsIFJvd0FjdGlvbikgcHVibGljIHJvd0FjdGlvbnM6IFJvd0FjdGlvbltdO1xuXG4gIHB1YmxpYyByb3V0ZXJMaW5rOiBGc0xpc3RSb3dBY3Rpb25MaW5rO1xuICBwdWJsaWMgY2xhc3NBcnJheTogc3RyaW5nW10gPSBbXTtcbiAgcHVibGljIGlzU2hvd24gPSB0cnVlO1xuICBwdWJsaWMgY2xpY2s6IEZ1bmN0aW9uO1xuXG4gIHByaXZhdGUgX2xpbmtGbjogRnNMaXN0Um93QWN0aW9uTGlua0ZuO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc0dyb3VwOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBhbnkgPSB7fSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLl9mcm9tSlNPTihjb25maWcpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5yb3dBY3Rpb25zKSkge1xuICAgICAgdGhpcy5faXNHcm91cCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzR3JvdXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzR3JvdXA7XG4gIH1cblxuICBwdWJsaWMgX2Zyb21KU09OKHZhbHVlOiBhbnkpIHtcbiAgICBzdXBlci5fZnJvbUpTT04odmFsdWUpO1xuXG4gICAgaWYgKHZhbHVlLnR5cGUgPT09IHZvaWQgMCkge1xuICAgICAgdGhpcy50eXBlID0gQWN0aW9uVHlwZS5CYXNpYztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tZW51ID09PSB2b2lkIDApIHtcbiAgICAgIHRoaXMubWVudSA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gUmUtYXNzaWduIGNsaWNrIGZ1bmN0aW9uXG4gICAgY29uc3QgY2xpY2tGbiA9IHZhbHVlLmNsaWNrO1xuICAgIHRoaXMuY2xpY2sgPSAocm93LCBldmVudCwgaW5kZXgsIHJvd0FjdGlvbnNSZWYgPSBudWxsKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jbGlja0V2ZW50KHJvdywgZXZlbnQsIGluZGV4LCByb3dBY3Rpb25zUmVmLCBjbGlja0ZuKTtcbiAgICB9O1xuXG4gICAgdGhpcy5fbGlua0ZuID0gdmFsdWUubGluaztcblxuICAgIGlmICh0aGlzLmNsYXNzTmFtZSkge1xuICAgICAgdGhpcy5jbGFzc0FycmF5ID0gdGhpcy5jbGFzc05hbWUuc3BsaXQoJyAnKS5yZWR1Y2UoKGFjYywgZWxlbSkgPT4ge1xuICAgICAgICBhY2MucHVzaChlbGVtKTtcblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGVja1Nob3dTdGF0dXMocm93LCBpbmRleCkge1xuICAgIGlmICh0aGlzLmlzR3JvdXApIHtcbiAgICAgIHRoaXMucm93QWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgYWN0aW9uLmNoZWNrU2hvd1N0YXR1cyhyb3csIGluZGV4KTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmlzU2hvd24gPSB0aGlzLnJvd0FjdGlvbnMuc29tZSgoYWN0aW9uKSA9PiBhY3Rpb24uaXNTaG93bik7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNob3cpIHtcbiAgICAgIHRoaXMuaXNTaG93biA9IHRoaXMuc2hvdyhyb3csIGluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTGluayhyb3cpIHtcbiAgICBpZiAoIXRoaXMuaXNTaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzR3JvdXApIHtcbiAgICAgIHRoaXMucm93QWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgYWN0aW9uLnVwZGF0ZUxpbmsocm93KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fbGlua0ZuKSB7XG4gICAgICB0aGlzLnJvdXRlckxpbmsgPSB0aGlzLl9saW5rRm4ocm93KTtcblxuICAgICAgaWYgKHRoaXMucm91dGVyTGluayAmJiAhdGhpcy5yb3V0ZXJMaW5rLnRhcmdldCkge1xuICAgICAgICB0aGlzLnJvdXRlckxpbmsudGFyZ2V0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsaWNrRXZlbnQocm93LCBldmVudCwgaW5kZXgsIHJvd0FjdGlvbnNSZWYsIGNsaWNrRm4pIHtcbiAgICAvLyBTdG9wIGV2ZW50IHByb3BhZ2F0aW9uIGZvciBwYXJlbnRcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIC8vIENsb3NlIG1lbnVcbiAgICBpZiAocm93QWN0aW9uc1JlZikge1xuICAgICAgcm93QWN0aW9uc1JlZi5jbG9zZU1lbnUoKTtcbiAgICB9XG5cbiAgICBpZiAoY2xpY2tGbikge1xuICAgICAgLy8gRmlyZSBwYXNzZWQgY2FsbGJhY2tcbiAgICAgIHJldHVybiBjbGlja0ZuKHJvdywgZXZlbnQsIGluZGV4KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWFjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2xpc3QvIiwic291cmNlcyI6WyJhcHAvbW9kZWxzL3Jvdy1hY3Rpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUl2RDtJQUErQiw2QkFBSztJQXFCbEMsbUJBQVksTUFBZ0I7UUFBaEIsdUJBQUEsRUFBQSxXQUFnQjtRQUE1QixZQUNFLGlCQUFPLFNBT1I7UUFsQk0sV0FBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLGdCQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzFCLGFBQU8sR0FBRyxJQUFJLENBQUM7UUFLTCxjQUFRLEdBQVksS0FBSyxDQUFDO1FBS3pDLEtBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdkIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNsQyxLQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0Qjs7SUFDSCxDQUFDO0lBRUQsc0JBQUksOEJBQU87YUFBWDtZQUNFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixDQUFDOzs7T0FBQTtJQUVNLDZCQUFTLEdBQWhCLFVBQWlCLEtBQVU7UUFBM0IsaUJBa0NDO1FBakNDLGlCQUFNLFNBQVMsWUFBQyxLQUFLLENBQUMsQ0FBQztRQUV2QixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1NBQzlCO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxD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QzFCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVPLDhCQUFVLEdBQWxCLFVBQW1CLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxPQUFPO1FBQzFELG9DQUFvQztRQUNwQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsYUFBYTtRQUNiLElBQUksYUFBYSxFQUFFO1lBQ2pCLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUMzQjtRQUVELElBQUksT0FBTyxFQUFFO1lBQ1gsdUJBQXVCO1lBQ3ZCLE9BQU8sT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBOUhRO1FBQVIsS0FBSyxFQUFFOzsyQ0FBcUI7SUFDcEI7UUFBUixLQUFLLEVBQUU7OzJDQUFzQjtJQUNyQjtRQUFSLEtBQUssRUFBRTs7NkNBQXFEO0lBQ3BEO1FBQVIsS0FBSyxFQUFFOztnREFBMEI7SUFDekI7UUFBUixLQUFLLEVBQUU7OzJDQUF5QjtJQUN4QjtRQUFSLEtBQUssRUFBRTtrQ0FBYyxRQUFROzJDQUFDO0lBQ3RCO1FBQVIsS0FBSyxFQUFFOzs4Q0FBeUI7SUFDRDtRQUEvQixLQUFLLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQzs7aURBQWdDO0lBd0hqRSxnQkFBQztDQUFBLEFBaklELENBQStCLEtBQUssR0FpSW5DO1NBaklZLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbGlhcywgTW9kZWwgfSBmcm9tICd0c21vZGVscyc7XG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvYnV0dG9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBGc0xpc3RSb3dBY3Rpb25MYWJlbEZuLCBGc0xpc3RSb3dBY3Rpb25MaW5rLCBGc0xpc3RSb3dBY3Rpb25MaW5rRm4gfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuXG5leHBvcnQgY2xhc3MgUm93QWN0aW9uIGV4dGVuZHMgTW9kZWwge1xuXG4gIEBBbGlhcygpIHB1YmxpYyBpY29uOiBzdHJpbmc7XG4gIEBBbGlhcygpIHB1YmxpYyBtZW51OiBib29sZWFuO1xuICBAQWxpYXMoKSBwdWJsaWMgcmVtb3ZlOiB7IHRpdGxlOiBzdHJpbmc7IHRlbXBsYXRlOiBzdHJpbmc7IH07XG4gIEBBbGlhcygpIHB1YmxpYyBjbGFzc05hbWU6IHN0cmluZztcbiAgQEFsaWFzKCkgcHVibGljIHR5cGU6IEFjdGlvblR5cGU7XG4gIEBBbGlhcygpIHB1YmxpYyBzaG93OiBGdW5jdGlvbjtcbiAgQEFsaWFzKCkgcHVibGljIHJlc3RvcmU6IGJvb2xlYW47XG4gIEBBbGlhcygncm93QWN0aW9ucycsIFJvd0FjdGlvbikgcHVibGljIHJvd0FjdGlvbnM6IFJvd0FjdGlvbltdO1xuXG4gIHB1YmxpYyBsYWJlbCA9ICcnO1xuICBwdWJsaWMgcm91dGVyTGluazogRnNMaXN0Um93QWN0aW9uTGluaztcbiAgcHVibGljIGNsYXNzQXJyYXk6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBpc1Nob3duID0gdHJ1ZTtcbiAgcHVibGljIGNsaWNrOiBGdW5jdGlvbjtcblxuICBwcml2YXRlIF9saW5rRm46IEZzTGlzdFJvd0FjdGlvbkxpbmtGbjtcbiAgcHJpdmF0ZSBfbGFiZWxGbjogRnNMaXN0Um93QWN0aW9uTGFiZWxGbjtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNHcm91cDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogYW55ID0ge30pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5fZnJvbUpTT04oY29uZmlnKTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucm93QWN0aW9ucykpIHtcbiAgICAgIHRoaXMuX2lzR3JvdXAgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc0dyb3VwKCkge1xuICAgIHJldHVybiB0aGlzLl9pc0dyb3VwO1xuICB9XG5cbiAgcHVibGljIF9mcm9tSlNPTih2YWx1ZTogYW55KSB7XG4gICAgc3VwZXIuX2Zyb21KU09OKHZhbHVlKTtcblxuICAgIGlmICh2YWx1ZS50eXBlID09PSB2b2lkIDApIHtcbiAgICAgIHRoaXMudHlwZSA9IEFjdGlvblR5cGUuQmFzaWM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubWVudSA9PT0gdm9pZCAwKSB7XG4gICAgICB0aGlzLm1lbnUgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIFJlLWFzc2lnbiBjbGljayBmdW5jdGlvblxuICAgIGNvbnN0IGNsaWNrRm4gPSB2YWx1ZS5jbGljaztcbiAgICB0aGlzLmNsaWNrID0gKHJvdywgZXZlbnQsIGluZGV4LCByb3dBY3Rpb25zUmVmID0gbnVsbCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY2xpY2tFdmVudChyb3csIGV2ZW50LCBpbmRleCwgcm93QWN0aW9uc1JlZiwgY2xpY2tGbik7XG4gICAgfTtcblxuICAgIHRoaXMuX2xpbmtGbiA9IHZhbHVlLmxpbms7XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlLmxhYmVsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLl9sYWJlbEZuID0gdmFsdWUubGFiZWxcblxuICAgICAgdGhpcy5sYWJlbCA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxhYmVsID0gdmFsdWUubGFiZWw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2xhc3NOYW1lKSB7XG4gICAgICB0aGlzLmNsYXNzQXJyYXkgPSB0aGlzLmNsYXNzTmFtZS5zcGxpdCgnICcpLnJlZHVjZSgoYWNjLCBlbGVtKSA9PiB7XG4gICAgICAgIGFjYy5wdXNoKGVsZW0pO1xuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNoZWNrU2hvd1N0YXR1cyhyb3csIGluZGV4KSB7XG4gICAgaWYgKHRoaXMuaXNHcm91cCkge1xuICAgICAgdGhpcy5yb3dBY3Rpb25zLmZvckVhY2goKGFjdGlvbikgPT4ge1xuICAgICAgICBhY3Rpb24uY2hlY2tTaG93U3RhdHVzKHJvdywgaW5kZXgpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaXNTaG93biA9IHRoaXMucm93QWN0aW9ucy5zb21lKChhY3Rpb24pID0+IGFjdGlvbi5pc1Nob3duKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2hvdykge1xuICAgICAgdGhpcy5pc1Nob3duID0gdGhpcy5zaG93KHJvdywgaW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVMaW5rKHJvdykge1xuICAgIGlmICghdGhpcy5pc1Nob3duKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNHcm91cCkge1xuICAgICAgdGhpcy5yb3dBY3Rpb25zLmZvckVhY2goKGFjdGlvbikgPT4ge1xuICAgICAgICBhY3Rpb24udXBkYXRlTGluayhyb3cpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9saW5rRm4pIHtcbiAgICAgIHRoaXMucm91dGVyTGluayA9IHRoaXMuX2xpbmtGbihyb3cpO1xuXG4gICAgICBpZiAodGhpcy5yb3V0ZXJMaW5rICYmICF0aGlzLnJvdXRlckxpbmsudGFyZ2V0KSB7XG4gICAgICAgIHRoaXMucm91dGVyTGluay50YXJnZXQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVMYWJlbChyb3cpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNTaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzR3JvdXApIHtcbiAgICAgIHRoaXMucm93QWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgYWN0aW9uLnVwZGF0ZUxhYmVsKHJvdyk7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2xhYmVsRm4pIHtcbiAgICAgIHRoaXMubGFiZWwgPSB0aGlzLl9sYWJlbEZuKHJvdyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGlja0V2ZW50KHJvdywgZXZlbnQsIGluZGV4LCByb3dBY3Rpb25zUmVmLCBjbGlja0ZuKSB7XG4gICAgLy8gU3RvcCBldmVudCBwcm9wYWdhdGlvbiBmb3IgcGFyZW50XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAvLyBDbG9zZSBtZW51XG4gICAgaWYgKHJvd0FjdGlvbnNSZWYpIHtcbiAgICAgIHJvd0FjdGlvbnNSZWYuY2xvc2VNZW51KCk7XG4gICAgfVxuXG4gICAgaWYgKGNsaWNrRm4pIHtcbiAgICAgIC8vIEZpcmUgcGFzc2VkIGNhbGxiYWNrXG4gICAgICByZXR1cm4gY2xpY2tGbihyb3csIGV2ZW50LCBpbmRleCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -299,6 +299,7 @@ var ActionType;
299
299
  class RowAction extends Model {
300
300
  constructor(config = {}) {
301
301
  super();
302
+ this.label = '';
302
303
  this.classArray = [];
303
304
  this.isShown = true;
304
305
  this._isGroup = false;
@@ -324,6 +325,13 @@ class RowAction extends Model {
324
325
  return this.clickEvent(row, event, index, rowActionsRef, clickFn);
325
326
  };
326
327
  this._linkFn = value.link;
328
+ if (typeof value.label === 'function') {
329
+ this._labelFn = value.label;
330
+ this.label = '';
331
+ }
332
+ else {
333
+ this.label = value.label;
334
+ }
327
335
  if (this.className) {
328
336
  this.classArray = this.className.split(' ').reduce((acc, elem) => {
329
337
  acc.push(elem);
@@ -358,6 +366,19 @@ class RowAction extends Model {
358
366
  }
359
367
  }
360
368
  }
369
+ updateLabel(row) {
370
+ if (!this.isShown) {
371
+ return;
372
+ }
373
+ if (this.isGroup) {
374
+ this.rowActions.forEach((action) => {
375
+ action.updateLabel(row);
376
+ });
377
+ }
378
+ else if (this._labelFn) {
379
+ this.label = this._labelFn(row);
380
+ }
381
+ }
361
382
  clickEvent(row, event, index, rowActionsRef, clickFn) {
362
383
  // Stop event propagation for parent
363
384
  event.stopPropagation();
@@ -375,10 +396,6 @@ __decorate([
375
396
  Alias(),
376
397
  __metadata("design:type", String)
377
398
  ], RowAction.prototype, "icon", void 0);
378
- __decorate([
379
- Alias(),
380
- __metadata("design:type", String)
381
- ], RowAction.prototype, "label", void 0);
382
399
  __decorate([
383
400
  Alias(),
384
401
  __metadata("design:type", Boolean)
@@ -2969,6 +2986,9 @@ class List extends Model {
2969
2986
  if (((_a = this.emptyState) === null || _a === void 0 ? void 0 : _a.validate) && this.emptyStateTemplate) {
2970
2987
  this.emptyStateEnabled = this.emptyState.validate(query, cloneDeep(response.data));
2971
2988
  }
2989
+ if (this.afterFetchFn) {
2990
+ this.afterFetchFn(query, this.dataController.visibleRowsData);
2991
+ }
2972
2992
  this.fetchComplete$.next();
2973
2993
  this.loading$.next(false);
2974
2994
  }
@@ -3088,6 +3108,10 @@ __decorate([
3088
3108
  Alias('fetch'),
3089
3109
  __metadata("design:type", Function)
3090
3110
  ], List.prototype, "fetchFn", void 0);
3111
+ __decorate([
3112
+ Alias('afterFetch'),
3113
+ __metadata("design:type", Function)
3114
+ ], List.prototype, "afterFetchFn", void 0);
3091
3115
 
3092
3116
  var ReorderPosition;
3093
3117
  (function (ReorderPosition) {
@@ -4944,6 +4968,8 @@ let FsRowActionsComponent = class FsRowActionsComponent {
4944
4968
  }
4945
4969
  clickOnTrigger(event) {
4946
4970
  event.stopPropagation();
4971
+ this.rowActions
4972
+ .forEach((action) => action.updateLabel(this.row.data));
4947
4973
  }
4948
4974
  /**
4949
4975
  * Emit that some row must be removed